Commit Graph
1206 Commits
Author SHA1 Message Date
zhangtao 1e9e12489d security(deploy): 生产凭据轮换 + 镜像不再携带口令
轮换(MySQL 应用用户 / MySQL root / Redis,实测旧值被拒)
- 旧 MySQL app 口令 → ERROR 1045 (28000) Access denied;旧 root 同被拒
- 旧 Redis 口令 → AUTH failed: WRONGPASS
- 新口令:容器内直连成功;应用健康 db_status=1 / redis_status=1;四端 200;容器全 healthy
- .env 保持 600,轮换前备份 .env.bak-rotate-*

镜像卫生(审计 B3 根治)
- deploy-artifacts.sh 构建时剔除 DATABASE_PASSWORD / REDIS_PASSWORD /
  SECRET_KEY / DATA_ENCRYPTION_KEY / DATA_ENCRYPTION_OLD_KEYS / MYSQL_* 口令键,
  仅保留主机、端口等非敏感项;口令全部由 compose 运行时注入
- 重建后镜像内 /home/env/.env.prod 口令类键命中 0 条;容器 env 仍持有 4 个密钥且应用正常
- 本地 backend/env/.env.prod 中泄露值清空并 chmod 600

文档
- DEPLOYMENT.md 新增「凭据轮换」标准步骤(含 mysql/redis 健康检查需一并重建、
  docker exec -i 会吞脚本 stdin 的排查提示)
- AUDIT-REPORT.md 记录公开仓库历史暴露面与待用户侧吊销项(OpenAI Key)

说明:仓库为 public,历史中真实出现过 OpenAI Key 与旧口令;旧口令本轮已失效,
OpenAI Key 需到控制台吊销(第三方无法代办)。是否用 git-filter-repo 清洗历史见报告 §10。
2026-10-04 06:39:30 +08:00
zhangtao 07795461cd ci(frontend): 类型检查前先执行生产构建以生成自动导入声明
干净检出下 src/types/{auto-imports,components}.d.ts 不存在(由 unplugin-* 在 vite
运行时生成、仓库不跟踪),vue-tsc 会因缺少自动导入声明报大量 TS2304
(ref / h / onMounted / ElMessage / useTable…),导致 web job 在 CI 上必然失败;
本地因存在生成文件而一直为绿。

修复:在「类型检查」前增加「生产构建」步骤(顺便把生产构建纳入 CI 校验)。
已验证:清空生成文件 → build:prod 退出码 0 且重新生成 d.ts → type-check 0 错误
→ vitest 41 passed;app job 不需要生成文件,保持不变。
2026-10-04 06:16:59 +08:00
zhangtao 896320c83e docs(audit): 补充收尾状态(提交/部署版本、最终验证结果、团队归档与遗留人工项) 2026-10-04 06:02:08 +08:00
zhangtao a4e8727a86 chore(backend): 新增 basedpyright 校准配置,并修复它暴露的三处真缺陷
背景:仓库此前没有 pyright/basedpyright 配置,basedpyright 使用自身默认(≈recommended),
在 app/ 下产生 247 errors / 3799 warnings,其中 143 条是 reportMissingTypeArgument
(未参数化泛型)这类注解完整度噪音,会把真缺陷淹没(例如 OSS 的 Client.uploader 方法误用)。

配置(backend/pyrightconfig.json)
- typeCheckingMode: basic;显式把能抓真缺陷的规则保持为 error
  (reportAttributeAccessIssue / reportArgumentType / reportOptionalMemberAccess /
  reportIncompatibleMethodOverride / reportConstantRedefinition / reportMissingImports 等)
- 关闭注解完整度与风格类规则;tests/ 用 executionEnvironments 单独放宽(extraPaths 保证 app 可解析)
- 结果:app + main.py + tests 全量 0 errors
- 红绿验证:合成「str | None 传参」「MethodType 上取属性」「Optional 成员访问」三类
  仍全部报 error,证明校准没有把真缺陷一起关掉

修复配置暴露的三处真缺陷
1) template_safety.py:_SQLALCHEMY_TYPE_WHITELIST 对全大写常量二次赋值 → 合并为一次成型
2) template_safety.py:normalize_column_type 假定 _TYPE_BASE_RE 必命中(用 # type: ignore 盖住,
   None 时 .group() 会崩)→ 改为 None 安全,去掉 type-ignore
3) node/service.py ×2:CustomException(msg=reason) 中 reason 为 str | None,客户端可能收到空文案
   → 新增 SchedulerUtil.require_schedulable() 收敛「判定 + 抛异常 + 兜底文案」,调用点改为一行

验证:basedpyright 0 errors(原 247);ruff All checks passed;pytest 97 passed;
      已部署并线上复验(四端 200、Host 收窄、伪造令牌被拒、验证码过期 400 保留业务文案、
      容器内 require_schedulable 与 OSS 调用修正均已生效)
2026-10-04 06:00:16 +08:00
zhangtao b3882559de fix(storage): 修复类型检查暴露的三处缺陷(含 OSS 上传运行时 bug)
basedpyright 报出的三处,逐条定位后发现都不是「标注问题」:

1) oss_adapter.py:70 —— 真运行时 bug
   SDK 里 `Client.uploader` 是**方法**(`def uploader(self, **kwargs) -> Uploader`),
   原写法 `self.client.uploader.upload_file(...)` 是在绑定方法上取属性,运行时必抛
   AttributeError —— 即 OSS 上传链路从未成功过(生产未配 OSS 源,故未暴露)。
   已改为 `self.client.uploader().upload_file(...)`,并按 SDK 签名核对
   `upload_file(request, filepath, part_size=..., parallel_num=...)` 参数正确。

2) sftp_adapter.py:45 —— 缺主机校验
   `config.host` 为 `str | None`(对象存储可不填),却直接传给 paramiko
   `connect(hostname: str)`。已把 host 并入既有的用户名/密码守卫,
   缺主机时返回业务异常 400「SFTP 存储源必须配置主机、用户名与密码」。

3) ftp_ftps_adapter.py:58 —— 同上
   `_new_client()` 增加主机守卫(400「FTP 存储源必须配置主机地址」,并补 CustomException 导入);
   顺带修复同文件 `_ImplicitFTP_TLS.connect` 覆写签名与 ftplib.FTP 不兼容
   (timeout: float、source_address: tuple[str, int] | None),消除该文件最后一条 error。

验证:basedpyright 这三个文件 0 errors(修复前 4 条);ruff 全绿;pytest 97 passed;
      运行时探针:缺主机 → 拦截为 400 业务异常;配主机 → 守卫放行并进入真实连接(ConnectionRefused 如期)。
2026-10-04 05:49:27 +08:00
zhangtao a8c992cdd3 docs(audit): 更新修复进展——错误码收敛、异常写法统一、前端文案修复与残余项 2026-10-04 05:44:26 +08:00
zhangtao b95e24618e fix(web): 错误提示改为后端 msg 优先,去掉业务码白名单耦合
- 普通错误分支与 handleError 统一为「data.msg → 业务码兜底 → 状态码兜底 → 通用」,
  不再只在 code ∈ {1, 401, -1} 时展示后端文案(此前 4500/404/409 会退化为通用「请求失败」)
- Blob 下载错误分支同样优先解析错误体 msg;401 显式排除在解析外,避免影响令牌静默续期;
  非 JSON Blob / 读取失败仍按状态码兜底且不抛额外异常
- 成功下载分支零改动(diff 中 responseType 判断增删行为 0)

背景:后端把错误码收敛为单一事实来源后,内部故障 code 由 -1 变为 4500、资源不存在变为 404,
旧的前端白名单会吞掉这些文案;此处改为 msg 优先后,后端可保持单一事实来源而不牺牲诊断信息。

验证:type-check exit 0;vitest 41 用例(含 HTTP 500+4500 → 「分页查询失败: 连接已断开」、
HTTP 404+404 → 「数据表 tables_0 不存在」、409+未知码 4090、Blob 各态、401 续期不回归)。
2026-10-04 05:44:26 +08:00
zhangtao 644d262cad refactor(backend): 错误码收敛为单一事实来源,统一异常写法
错误码(t16)
- HTTP 语义只由 core/exceptions.py 的 RET.code → fastapi.status 映射决定;
  映射表显式登记 -1→400 与全部「数值即 HTTP 状态」的 RET 成员,_DEFAULT_BUSINESS_STATUS
  降为「新增码忘登记」的安全网
- 移除冗余 status_code:131 处调用点改为纯 code 表达;security.py/dependencies.py
  的 status_code=401/403 去除(映射表已给);get_or_404 → code=RET.NOT_FOUND.code
- 新增静态护栏(AST):app/ 下除 exceptions.py 外不得出现 status_code 传参,
  路由装饰器 201 白名单显式放行并断言白名单非空

异常写法统一(t19)
- 删除 CustomException.internal 及 132 处包装:意外异常直接冒泡,由全局
  @app.exception_handler(Exception) 统一映射 5xx + 通用文案 + 日志;
  需要运维上下文处改为 logger.exception("<业务动作>失败") + raise
- 构造器不再接受 status_code 参数(属性保留,由 code 派生)→ 结构上杜绝第二来源
- 修复 6 处「宽泛 except 把 400 包成 500」的语义反转(补 except CustomException: raise),
  并加 AST 护栏防止回潮
- 全局 SQLAlchemyError:非完整性错误由 400 改为 503(连接类)/500(其它),
  不再把驱动原文/异常类型拼进客户端 msg;顺带修掉不存在的
  status.HTTP_403_SERVICE_UNAVAILABLE 常量(命中即 AttributeError→500)

验证:pytest 97 passed / ruff 全绿;AST 审计残留 0;护栏红绿测试通过;
线上实测验证码过期仍 400 并保留业务文案、无令牌 401。
2026-10-04 05:44:21 +08:00
zhangtao c73daa7eae chore(deploy): 健康检查发正确 Host、list 型配置改 JSON、Host 校验收窄
- backend 健康检查改为发送正确的 Host 头(而非放宽 ALLOWED_HOSTS);
  配合 ALLOW_LOCALHOST_HOSTS=false,Host: localhost 现在返回 400,容器自检仍 exit 0
- OAUTH_ALLOWED_HOSTS / CORS_STRICT_STARTUP / SCHEDULER_ALLOW_CODE_EXEC 接入 compose 注入
- ⚠️ OAUTH_ALLOWED_HOSTS 是 list[str],必须写 JSON 数组:本次部署曾因写成逗号分隔字符串
  导致启动期 SettingsError、容器重启、网关 502(已修复,并在 compose 默认值中固化 JSON 形态)
- DEPLOYMENT.md 新增「配置取值格式」章节记录该坑与排查方法
- AUDIT-REPORT.md 更新修复进展(含复核 t12 驳回与 t13/t14 通过、残余项)

线上验证:四端 200;Host=localhost → 400;健康检查 exit 0;公网 docs/.DS_Store → 403
2026-10-04 05:12:37 +08:00
zhangtao 07fa789d2e fix(backend): 安全默认值、异常语义、代码生成注入面与定时任务内置处理器
本批为 t10 → t13 → t15 三轮实现 + 一轮复核驳回整改的最终形态(pytest 83 passed / ruff clean,
已部署并线上验证)。

异常语义
- CustomException 默认状态码 500 → 400(约 433 处裸调用不再被计为服务端故障),
  且「包装底层异常」的 130 处显式恢复 500;get_or_404 → 404;响应体结构不变

代码生成注入面(复核 blocker F1,二次修复)
- column_type 不再做字符串拼接:改为常量白名单派生(类型名 ∈ DB_TO_SQLALCHEMY ∪ {Boolean},
  长度仅取数字/正则捕获),彻底移除 split("(")[1]
- 列类型加形状白名单;字符串/注释/文档字符串用 \uXXXX,标识符过 safe_ident(含 Python/JS 关键字),
  .vue 文本与静态属性改 HTML 实体
- 落盘闸门由 ast.parse 升级为 assert_python_structure(语法 + 顶层语句白名单 + 与哨兵骨架逐节点比对)
  与 assert_text_structure(.vue/.ts/.toml 行结构);U+2028/2029 与 C1 控制符纳入转义

安全默认值
- 生产 CORS 不再回落 ["*"](未配置即拒绝跨域,可选 CORS_STRICT_STARTUP 直接启动失败)
- OAUTH_ALLOWED_HOSTS 不再默认 "*";新增 ALLOW_LOCALHOST_HOSTS 控制 Host 校验范围
- ALLOWED_HOSTS 收窄为按配置派生;健康检查暴露 code_exec_enabled / cors_origins_configured

定时任务
- SCHEDULER_ALLOW_CODE_EXEC 默认 False;新增 builtin:<模块名>[.<函数名>] 内置处理器路线(不经 exec)
- 判定收敛到 describe_schedulability;列表返回 schedulable / unschedulable_reason;
  启动 reconcile 与状态查询对「已启用但不可调度」打 WARN(去重、恢复后清除)
- 加固:内置处理器必须在本模块内定义或经 HANDLERS 声明,拒绝模块内导入的外部对象(复核 R1)
- 顺带修复:_WARNED_UNSCHEDULABLE 的 set.pop TypeError、job.next_run_time 缺失导致的列表 500

测试:新增 tests/test_generator_template_safety.py、test_security_defaults.py、
test_scheduler_schedulability.py(含恶意载荷、闸门红绿、静态护栏)
2026-10-04 05:12:32 +08:00
zhangtao 007864051a fix(frontend): 修复 5 条 P0(生产构建开关、令牌刷新、上传路径、WS 与开发地址)
- web/vite.config.ts:生产判据由 `mode === "prod"`(恒 false)改为 `production || prod`,
  压缩/去 console/剔除 vue-devtools 插件真正生效;同时修正 terser `comments: true`
  (是「保留全部注释」,与注释文字相反)为 `"some"`,保留 @license 等版权声明
- app 刷新令牌:改为发送 JSON 字符串(后端为 Body(str)),与 web 端已知可用实现一致,
  修掉移动端 token 过期必然 422 强制登出
- app 上传:路径补 /common(真实路径 /api/v1/common/file/upload),并改走统一 http 层的
  wd-upload upload-method 钩子,Authorization 由 http 层注入,不再页面自拼 URL
- app 生产 WS:ws://localhost:5180/ws → wss://service.fastapiadmin.com;开发 WS 指向本机
- app 开发接口地址:改为 http://127.0.0.1:8001,与 web 端开发策略一致

复核证据(队长独立执行):web/app type-check 均 exit 0;build:prod 与 build:h5 均 exit 0;
生产包内第一方 console 特征串 9/9 全部 0 命中(剩余 5 处 console 为字符串文案或
第三方 typeof 守卫,非可执行调用);H5 产物内 localhost:5180 命中 0、wss 域名命中 1、
裸 /file/upload 命中 0、/common/file/upload 命中 1。
2026-10-04 04:33:42 +08:00
zhangtao fb05defb82 docs(env): 补齐密钥与安全相关占位项
compose 现在强制要求 SECRET_KEY 等键(fail-closed),.env.example 必须同步提供
占位项,否则照抄示例启动会直接失败。同时移除未被 compose 使用的 HEALTHCHECK_START_PERIOD。
2026-10-04 04:26:27 +08:00
zhangtao 28bf232761 docs(audit): 全栈审计报告(7 份分报告 + 总报告)
由 7 名成员并行审计 + 队长线上实测复核产出,合计约 3,600 行:
- backend/audit-backend.md      后端架构与代码质量(22 条)
- backend/audit-security.md     认证/授权/敏感信息(23 条)
- backend/audit-testing.md      测试与可验证性(含真实命令输出)
- backend/audit-requirements.md 需求覆盖对照(多租户规格错位)
- frontend/audit-frontend.md    前端与移动端工程(32 条)
- frontend/audit-uxui.md        交互与视觉一致性
- docker/audit-deploy.md        容器化与部署链路
- AUDIT-REPORT.md               总报告:止血项、修复路线、待决策事项、对既有结论的修正

各报告均标注级别、文件:行号、影响、建议修法,并单列未验证项与抽样边界。
2026-10-04 04:26:11 +08:00
zhangtao ce9401196a chore(deploy): 成品部署链路、依赖分组与运维基建
部署方式:服务器不再接收源码、不执行构建,改为本地构建成品后交付
- deploy-artifacts.sh:构建→备份→校验→原子替换,支持回滚、镜像/备份轮转、
  mysql 与 postgres 双变体镜像;后端以 docker save|ssh|docker load 交付
- 依赖分组:requirements/{base,storage}.txt + db/{mysql,postgres,sqlite}.txt,
  镜像按所选数据库只装对应驱动(MySQL 变体 565MB → 521MB)

编排与运行时加固
- compose:MySQL/Redis/backend 端口仅绑 127.0.0.1;密钥(SECRET_KEY、
  DATA_ENCRYPTION_KEY、DATA_ENCRYPTION_OLD_KEYS)、PROD_CORS_ORIGINS、
  FORWARDED_ALLOW_IPS、DEMO_ENABLE 一律由 docker/.env 注入
- Dockerfile:对齐依赖分组、以非 root(uid=1000) 运行;.dockerignore 排除全部真实 .env.*
- nginx:静态资源长缓存、隐藏文件拒绝、接口文档仅内网可访问、放行 ACME http-01 校验路径

工程基建
- 新增 CI:backend(uv sync + ruff + pytest)与 frontend(web type-check+vitest、app type-check)
- 新增 DEPLOYMENT.md 运维手册(部署/回滚/密钥轮换/每日巡检/证书/排查)
2026-10-04 04:26:03 +08:00
zhangtao 0cf2e24b92 fix(frontend,backend): 修复两处配置与逻辑问题
1. 修复前端节点选择框选项显示异常问题,将字符串数组转为标准label-value格式
2. 简化后端alembic配置文件,移除冗余注释与废弃配置项
2026-09-17 20:56:18 +08:00
zhangtao 740e334d9e feat(router): add route invariant checks for deep skip rendering
1. add route config check for directory nodes with component in dev mode
2. add runtime guard in page content layout
3. add comprehensive unit tests for route invariants
4. fix vitest config to match vite alias and define app info
2026-09-14 01:18:18 +08:00
zhangtao 24589ad9cd refactor(router): simplify route cache logic, remove nested parent component
重写多级目录路由处理逻辑,移除冗余的NestedRouterParent壳组件,改用RouterView深度跳级直接渲染叶子页面,简化KeepAlive缓存实现,修复多缓存实例导致的重复请求问题。
2026-09-14 01:06:20 +08:00
zhangtao 2d393247cc refactor(frontend): 统一组件名匹配KeepAlive缓存逻辑,重构路由缓存机制
1.  调整所有页面组件的name为路由/菜单对应的route_name,适配KeepAlive匹配规则
2.  重构路由嵌套缓存逻辑,修复多标签页下重复挂载页面导致接口并发请求的问题
3.  移除冗余的onMounted自动请求代码,统一数据加载逻辑
4.  优化缓存键生成和KeepAlive包含排除规则,确保缓存精准生效
2026-09-14 00:30:06 +08:00
zhangtao f12a40090a fix: 修复主键类型非Integer时的模型生成与导入问题
1. 前端将MySQL主键默认类型从bigint改为int,同步后端代码适配
2. 增加SQLAlchemy主键类型自动导入逻辑,当主键类型不是Integer时自动添加对应导入
3. 重构模型模板,当主键类型与基类不一致时显式覆盖id字段定义
2026-09-13 22:17:49 +08:00
zhangtao 8291c1a494 refactor(frontend): 优化列表页缓存与数据刷新逻辑
1. 为详情、评论接口添加禁用缓存配置,获取实时数据
2. 重构useListPage,新增refreshData和reload方法统一数据刷新逻辑
3. 替换原有loadData调用,统一列表页数据更新流程
4. 移除冗余的force缓存配置,通过method.config自定义缓存策略
2026-09-13 14:40:14 +08:00
zhangtao f15fdb86c0 feat(ticket,monitor): add ticket stats api and optimize server ip fetch
1. add TicketStatsSchema for work status aggregate
2. add stats method to TicketService to count pending/processing/done tickets
3. add ticket stats api endpoint
4. optimize server local ip detection with fallback logic
2026-09-12 12:33:00 +08:00
zhangtao 8d7efb6c58 refactor: 移除数据大屏页面及相关组件,更新滚动容器逻辑与配置
1. 移除dashboard数据大屏页面及全部依赖的图表、统计组件
2. 重构主滚动容器选择逻辑,统一使用getMainScrollEl获取滚动元素
3. 更新配置项,添加TRUSTED_PROXY_HOPS与IP2REGION相关配置
4. 替换IP归属地查询为离线本地解析,移除相关HTTP请求配置
5. 简化OAuth与微信小程序登录的background_tasks参数传递
6. 修复系统参数描述与前端提示文案,更新alembic版本清理逻辑
7. 简化页面滚动重置逻辑,过滤隐藏标签页
2026-09-12 01:16:03 +08:00
zhangtao 8b63042ecf feat(generator): add python plugin template and fix frontend static path
1. 新增python包初始化模板和插件元数据模板
2. 修复前端静态文件挂载路径硬编码问题,使用配置中的FRONTEND_DIST_DIR
3. 优化代码生成模板中日期验证器的计算逻辑,改用jinja2过滤器一次性计算
4. 新增toml文件的文件图标适配
5. 更新文档说明代码生成后需要重启后端以及静态托管的注意事项
2026-09-10 21:22:09 +08:00
zhangtao e39a369bac refactor: 优化前端缓存与WebSocket连接处理,新增开发指南文档
1. 调整FastAPI前端挂载配置,简化目录路径并添加目录检查关闭注释
2. 修复工作标签页清空时的KeepAlive缓存泄漏问题,正确驱逐非固定标签缓存
3. 优化AI聊天页WebSocket连接逻辑,避免连接泄漏与竞态问题,添加生命周期缓存清理
4. 新增全栈开发指南SKILL.md,覆盖工程结构、命令、约定与常见坑点
2026-09-10 00:35:17 +08:00
zhangtao 8cb5f17811 chore: 移除全局 API 与 WS 限流并修复代理配置
移除 fastapi-limiter 依赖及相关限流逻辑,更新健康检查请求头并信任反向代理转发头,避免生产环境 HTTPS 误判导致 301 循环。
2026-09-07 01:54:13 +08:00
zhangtao 37b7b8e09c chore(docker): 调整 dockerignore 排除上传目录 2026-09-07 01:38:38 +08:00
zhangtao bddb177d36 chore: 移除 deploy.bat 和 deploy.sh 部署脚本 2026-09-07 01:00:27 +08:00
zhangtao 14428bffb3 feat(work): 支持工单、公告、AI模型页面下拉刷新 2026-09-07 00:22:02 +08:00
zhangtao 594c3f63fa fix(frontend): 修复 el-tabs 受控绑定方式 2026-09-07 00:13:15 +08:00
zhangtao a8d29d4ab4 fix: 修复多项后端缺陷并加固安全与限流
- 修正 AI 会话表初始化及异步数据库 URI 处理
- 新增全局 API 与 WS 聊天限流,健康检查豁免
- 修复忘记密码接口防用户枚举与参数校验
- 修复 SSE 推送数据重复编码问题
- 修复 Cron 表达式 Quartz 问号兼容
- 修复存储模块权限标识前缀
- 新增过期日志清理与任务错误中文提示
2026-09-07 00:08:00 +08:00
zhangtao 30dfc7097b docs: 更新贡献指南,补充小程序开发说明 2026-09-06 21:19:58 +08:00
zhangtao 45a00334c0 docs: add SaaS multi-tenant platform requirements 2026-09-06 21:19:50 +08:00
zhangtao e340053efa docs(readme): 更新项目说明与界面截图
补充移动端截图、Docker 部署说明与 Star History,同时更新后端技术栈版本和项目结构描述。
2026-09-06 20:52:11 +08:00
zhangtao 9e80f970d0 refactor(task): 重构定时任务与存储路由
- 移除各路由文件顶部冗余注释
- 将 JobRouter/NodeRouter 重命名为 CornJobRouter/CornJobNodeRouter
- 新增存储浏览、节点、传输、工作流路由注册
- 调整路由导入来源与任务表名
- 优化 main.py 启动方式及环境配置加载
2026-09-06 04:14:17 +08:00
zhangtao d470c7eb1f refactor(backend): 调整模块结构、调度器逻辑与健康检查路由 2026-09-06 00:54:24 +08:00
zhangtao 92081815f4 refactor(backend): 将模块从 api/v1 移至 backend 根目录 2026-09-06 00:54:11 +08:00
zhangtao 3f472d1e89 refactor: 重构存储与工作流模块,调整目录结构与初始化逻辑
1.  迁移存储模块功能到工作流模块,合并冗余代码
2.  调整环境配置加载路径与初始化脚本目录
3.  更新文档与前端组件代码适配重构
4.  新增工作流相关CRUD、模型与迁移文件
5.  移除过期模块与冗余代码,优化日志配置
2026-09-03 21:55:31 +08:00
zhangtao 001d1bdf4c feat: add storage module, internal chat and workflow enhancements
- 新增多协议存储模块(支持FTP/SFTP/S3/OBS/OSS/COS/本地存储),包含存储源管理、文件操作、传输任务功能
- 新增系统内部聊天模块,支持WebSocket实时通信与未读统计
- 优化工作流节点系统,支持内置业务节点并完善配置面板
- 修复健康检查接口路径与菜单角标显示逻辑
- 新增SQLite WAL模式与busy_timeout配置优化并发性能
- 更新依赖与文档,支持模块裁剪配置
2026-08-19 23:20:39 +08:00
zhangtao 11160b05e4 refactor(auth): 优化IP归属地处理逻辑,调整缓存与展示
1. 调整IP归属地缓存TTL从7天改为30天
2. 优化登录IP列展示,增加whitespace-nowrap类并加宽最小宽度
3. 新增异步补全OAuth/微信登录会话归属地逻辑
4. 重构IP归属地工具类,统一降级文案与查询决策逻辑
5. 修复部分类型检查与异常处理问题
2026-08-16 02:57:19 +08:00
zhangtao 61336936a0 refactor: 项目整体优化与功能迭代
主要变更:
1. 移除冗余代码:删除重复的CommonUtil、旧主题管理、缓存请求等模块
2. 依赖升级:更新vite-plugin-uni-components到0.3.2版本
3. 样式优化:调整卡片高度、主题色配置、隐私弹窗样式
4. 代码重构:简化用户store、请求类型、列表分页逻辑
5. 新增功能:添加工单统计、tabbar高亮、通用工具类等新模块
6. 修复细节:调整排版顺序、修复水印主题store引用、优化表单样式
2026-08-16 02:30:56 +08:00
zhangtao 85de5c350e refactor(frontend): 统一使用设计令牌替换硬编码颜色值
1.  新增全局设计令牌系统,支持明暗主题切换
2.  替换所有页面组件中的硬编码颜色为语义化变量
3.  调整页面动画配置与导航钩子顺序
4.  删除临时生成的 vite 配置缓存文件
2026-08-13 21:10:48 +08:00
zhangtao 7bbc489c59 refactor(frontend): 统一使用wd-text组件替换原生text标签,优化页面配置
1.  全局替换普通text标签为wd-text组件,统一文本样式与功能
2.  调整页面全局配置与tabBar配置,按平台动态裁剪无效配置
3.  修复微信小程序端表单item样式兼容问题,添加自定义样式隐藏空left区域
4.  移除登录页冗余的微信一键登录相关代码
2026-08-11 00:49:00 +08:00
zhangtao 50eac1872b chore: 初始化项目基础结构与配置
添加了nvm配置、静态资源、项目配置文件、工具类、api模块、状态管理、国际化、路由配置等基础代码,搭建了uniapp前端项目的初始框架。
2026-08-10 22:23:32 +08:00
zhangtao 9e41358945 feat(console): add database type display in startup status
1. 新增database_type参数传递到控制台启动函数
2. 在启动状态面板中显示实际数据库类型替代硬编码的MySQL
3. 更新函数文档注释说明新增的参数
2026-08-10 20:49:08 +08:00
zhangtao e4cd0bc82a chore: 清理废弃文档与旧版静态资源
清理了小程序相关的三份交付文档、两张旧的后端静态资源文件,并更新了前端首页、我的页的三张应用截图资源
2026-08-09 21:03:28 +08:00
zhangtao 1b67314e30 chore: 清理项目冗余文件与配置,移除示例代码与无关依赖
删除了包括文档、示例分包、CI配置、构建脚本、类型定义、工具函数、样式配置、本地化文件在内的大量冗余代码和配置文件,将项目恢复为最小可开发状态。
2026-08-06 00:42:29 +08:00
zhangtao a4dff8c897 chore: 移除 frontend/app 私有代码,仅保留 .gitkeep
该目录为私有移动端项目,不应开源。从 git 跟踪中移除并加入 .gitignore。
2026-08-06 00:42:08 +08:00
zhangtao 5ff25fe28c refactor: 全量代码优化与品牌视觉统一
- 移除冗余的引导页逻辑与代码
- 优化多处代码写法:简化箭头函数、清理无用注释、修复类型兼容问题
- 统一暗色模式全局样式与用户信息卡视觉风格
- 完善小程序配置与水印开关容错处理
- 更新自动导入类型声明
2026-08-06 00:37:14 +08:00
zhangtao ffbe2453f2 refactor: 小程序端代码瘦身与功能补齐
- 清理冗余代码与配置:
  - 删除废弃的 mock 适配器、通用 mock 模块与示例API
  - 移除冗余的 ts 类型文件与 patch 目录
  - 简化 tsconfig 组件路径配置
- 新增功能与优化:
  - 新增全局水印组件与水印配置
  - 接入微信小程序登录/手机号登录
  - 新增系统参数配置 store 与国际化支持
  - 新增 markdown 渲染插件与样式配置
  - 优化 pinia 持久化逻辑修复
  - 新增微信小程序 access_token 缓存配置
  - 修复登录趋势数据结构定义
  - 优化全局请求防抖重定向逻辑
- 页面与路由优化:
  - 补全引导页首次启动逻辑
  - 统一页面底部安全区适配
  - 更新页面路由类型声明
- 代码质量优化:
  - 移除无用 console.log 调试代码
  - 修复全局弹窗重复重登录问题
  - 优化 mp-html 组件配置
2026-08-05 23:47:49 +08:00
zhangtao 372b277a9f feat: 新增12个业务页面功能
- 新增模块监控模块:在线用户页、登录日志页、操作日志页、数据概览页
- 新增AI助手模块:AI模型配置页、聊天会话页
- 新增系统管理模块:通知公告页、用户详情页、用户管理页、工单管理页、工单详情页
2026-08-05 23:47:27 +08:00