# 审计记录:管理后台全量实现 + DB Schema 迁移 + 审计产物重组 - 日期:2026-02-15(Asia/Shanghai) - Prompt-ID:P20260215-232501(及前序 ~50 个 prompt 的累积变更) - 类型:多主题大型变更(新功能 + 数据库迁移 + 仓库治理) - 风险等级:高 ## 变更概述 本次未提交变更涵盖三大主题,共 241 个文件(+2713/-8186 行): 1. **admin-web-console spec 全量实现**:FastAPI 后端 API + React 前端管理后台 2. **DB Schema 引用迁移**:全项目 450+ 处旧 schema 名替换 + 数据迁移到新库 3. **审计产物重组 + .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` → `ods` - `billiards_dwd` → `dwd` - `billiards_dws` → `dws` - `etl_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 行) --- ## 回滚要点 1. **后端 API**:删除 `apps/backend/app/auth/`、`app/routers/`、`app/schemas/`、`app/services/`、`app/ws/`,恢复 main.py/config.py/database.py 2. **前端**:删除 `apps/admin-web/` 全部新建文件 3. **Schema 迁移**:使用 `git checkout HEAD -- ` 恢复所有 450+ 处替换;数据库层面需手动回滚(数据已在新库) 4. **DB 新表**:回滚 `db/zqyy_app/migrations/20250715_create_admin_web_tables.sql` ## 验证建议 ```bash # 后端测试 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 迁移为机械替换(无业务逻辑变更);后端/前端为全新代码(无"修改"语义)。