6.8 KiB
6.8 KiB
审计记录:管理后台全量实现 + DB Schema 迁移 + 审计产物重组
- 日期:2026-02-15(Asia/Shanghai)
- Prompt-ID:P20260215-232501(及前序 ~50 个 prompt 的累积变更)
- 类型:多主题大型变更(新功能 + 数据库迁移 + 仓库治理)
- 风险等级:高
变更概述
本次未提交变更涵盖三大主题,共 241 个文件(+2713/-8186 行):
- admin-web-console spec 全量实现:FastAPI 后端 API + React 前端管理后台
- DB Schema 引用迁移:全项目 450+ 处旧 schema 名替换 + 数据迁移到新库
- 审计产物重组 + .kiro 清理:审计落地点统一到
docs/audit/,清理旧 specs/脚本
主题 1:admin-web-console(新功能,高风险)
后端 API(apps/backend/app/)
| 文件/目录 | 变更类型 | 说明 |
|---|---|---|
app/main.py |
修改 | 注册所有路由、CORS、WebSocket |
app/config.py |
修改 | 数据库连接配置更新 |
app/database.py |
修改 | 连接池管理 |
app/auth/ |
新建 | JWT 鉴权模块(依赖项、JWT 工具) |
app/routers/auth.py |
新建 | 登录/注册/刷新 token |
app/routers/tasks.py |
新建 | 任务配置 CRUD |
app/routers/execution.py |
新建 | 任务执行(CLI 构建 + 子进程) |
app/routers/schedules.py |
新建 | 调度管理 |
app/routers/env_config.py |
新建 | 环境变量配置 |
app/routers/db_viewer.py |
新建 | 数据库查看器 |
app/routers/etl_status.py |
新建 | ETL 运行状态 |
app/schemas/ |
新建 | Pydantic 请求/响应模型(6 个文件) |
app/services/ |
新建 | 业务逻辑层 |
app/ws/ |
新建 | WebSocket 日志推送 |
pyproject.toml |
修改 | 补全 fastapi/uvicorn 等运行依赖 |
tests/ |
新建 | 20+ 测试文件(含 hypothesis 属性测试) |
风险点:
- 鉴权模块(JWT)为新建,需验证 token 过期/刷新/权限隔离逻辑
- 任务执行路由直接调用子进程运行 CLI,需关注命令注入防护
- DB 查看器允许执行 SQL 查询,需确认只读权限约束
前端(apps/admin-web/)
| 文件/目录 | 变更类型 | 说明 |
|---|---|---|
index.html |
新建 | Vite 入口 |
package.json |
新建 | React + Vite + TypeScript |
src/ |
新建 | 6 个页面(TaskConfig/TaskManager/EnvConfig/DBViewer/ETLStatus/LogViewer)+ 组件 + API 客户端 + 路由 |
vite.config.ts |
新建 | Vite 配置(代理后端 API) |
主题 2:DB Schema 引用迁移(高风险)
迁移规则
billiards_ods→odsbilliards_dwd→dwdbilliards_dws→dwsetl_admin→meta- 数据库名:
LLZQ-test→etl_feiqiu/zqyy_app
受影响的高风险路径
| 路径 | 变更数 | 说明 |
|---|---|---|
apps/etl/pipelines/feiqiu/tasks/ |
~30 文件 | ODS/DWD/DWS/utility/verification 任务中的 SQL schema 前缀 |
apps/etl/pipelines/feiqiu/orchestration/ |
6 文件 | cursor_manager/pipeline_runner/run_tracker/scheduler/task_executor/task_registry |
apps/etl/pipelines/feiqiu/quality/ |
1 文件 | integrity_checker SQL |
apps/etl/pipelines/feiqiu/config/ |
1 文件 | defaults.py schema 配置 |
apps/etl/pipelines/feiqiu/cli/ |
1 文件 | main.py |
apps/etl/pipelines/feiqiu/utils/ |
1 文件 | reporting.py |
apps/etl/pipelines/feiqiu/scripts/ |
~15 文件 | 各类运维/检查/导出脚本 |
gui/ |
~10 文件 | 桌面 GUI 中的 SQL 查询和 schema 引用 |
db/ |
8 文件 | DDL/种子/FDW 配置 |
apps/backend/ |
2 文件 | .env.local + etl_status 路由 |
DB 结构变更
| 文件 | 变更类型 | 说明 |
|---|---|---|
db/etl_feiqiu/schemas/app.sql |
修改 | app schema DDL 更新 |
db/etl_feiqiu/seeds/seed_dws_config.sql |
修改 | schema 引用更新 |
db/etl_feiqiu/seeds/seed_index_parameters.sql |
修改 | schema 引用更新 |
db/etl_feiqiu/seeds/seed_ods_tasks.sql |
修改 | schema 引用更新 |
db/etl_feiqiu/seeds/seed_scheduler_tasks.sql |
修改 | schema 引用更新 |
db/fdw/setup_fdw.sql |
修改 | FDW 映射配置更新 |
db/fdw/setup_fdw_test.sql |
新建 | 测试环境 FDW 配置 |
db/zqyy_app/schemas/init.sql |
修改 | 业务库 schema 更新 |
db/zqyy_app/migrations/20250715_create_admin_web_tables.sql |
新建 | 管理后台所需表 |
db/zqyy_app/seeds/admin_web_seed.sql |
新建 | 管理后台种子数据 |
风险点:
- 450+ 处 schema 名替换,任何遗漏都会导致运行时 SQL 错误
- 数据已从旧库迁移到新库,需确认行数一致性
- FDW 映射需在两个库都正确配置
主题 3:审计产物重组 + .kiro 清理
审计产物迁移
- 从
apps/etl/pipelines/feiqiu/docs/audit/删除全部旧审计记录(27 条 changes + 40+ prompt_logs + dashboard) - 在
docs/audit/重建(已有 29 条 changes + 68 条 prompt_logs) scripts/audit/gen_audit_dashboard.py新建(项目级审计一览表生成器)
.kiro 清理
- 删除 6 个旧 specs(bd-manual-docs-consolidation/docs-optimization/etl-task-documentation/monorepo-migration/repo-audit/scheduler-refactor)
- 删除 3 个 PowerShell 脚本(audit_flagger.ps1/audit_reminder.ps1/prompt_audit_log.ps1),替换为 Python 版本
- 删除 2 个旧 hooks(change-impact-review/db-schema-doc-enforcer)
- 新增 admin-web-console spec
- 新增 MCP 配置(.kiro/settings/mcp.json)
根目录散文件
.env.template:大幅扩展(+266 行),覆盖后端/管理后台配置.gitignore:更新排除规则NeoZQYY.code-workspace:更新工作区配置README.md:更新项目说明uv.lock:依赖锁文件更新(+1090 行)
回滚要点
- 后端 API:删除
apps/backend/app/auth/、app/routers/、app/schemas/、app/services/、app/ws/,恢复 main.py/config.py/database.py - 前端:删除
apps/admin-web/全部新建文件 - Schema 迁移:使用
git checkout HEAD -- <file>恢复所有 450+ 处替换;数据库层面需手动回滚(数据已在新库) - DB 新表:回滚
db/zqyy_app/migrations/20250715_create_admin_web_tables.sql
验证建议
# 后端测试
cd apps/backend && uv run python -m pytest tests/ -v
# ETL 单元测试(验证 schema 迁移无回归)
cd apps/etl/pipelines/feiqiu && pytest tests/unit
# 前端测试
cd apps/admin-web && pnpm exec vitest run
# 前端类型检查
cd apps/admin-web && pnpm exec tsc --noEmit
# 属性测试
cd C:\NeoZQYY && pytest tests/ -v
内联注释决策
- AI_CHANGELOG:不添加。变更文件数量过多(241 个),逐文件添加会产生大量噪音。本审计记录已按主题分类覆盖全部高风险路径。
- CHANGE 注释:不添加。Schema 迁移为机械替换(无业务逻辑变更);后端/前端为全新代码(无"修改"语义)。