Files
Neo-ZQYY/docs/audit/changes/2026-02-15__admin-web-console-db-migration-audit-reorg.md

156 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 审计记录:管理后台全量实现 + DB Schema 迁移 + 审计产物重组
- 日期2026-02-15Asia/Shanghai
- Prompt-IDP20260215-232501及前序 ~50 个 prompt 的累积变更)
- 类型:多主题大型变更(新功能 + 数据库迁移 + 仓库治理)
- 风险等级:高
## 变更概述
本次未提交变更涵盖三大主题,共 241 个文件(+2713/-8186 行):
1. **admin-web-console spec 全量实现**FastAPI 后端 API + React 前端管理后台
2. **DB Schema 引用迁移**:全项目 450+ 处旧 schema 名替换 + 数据迁移到新库
3. **审计产物重组 + .kiro 清理**:审计落地点统一到 `docs/audit/`,清理旧 specs/脚本
---
## 主题 1admin-web-console新功能高风险
### 后端 APIapps/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 |
---
## 主题 2DB 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 个旧 specsbd-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 个旧 hookschange-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 -- <file>` 恢复所有 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 迁移为机械替换(无业务逻辑变更);后端/前端为全新代码(无"修改"语义)。