Files
Neo-ZQYY/docs/database
Neo 18fbb2fddf refactor(auth): F1-5b BE-1 manager 角色移除 view_tasks 权限 (W1)
走查发现 manager(店长)进入小程序"任务"tab 收到 403 "权限不足"。
根因不在 require_permission(权限校验通过,missing=set()),而在
task_manager._get_assistant_id() 因 user_assistant_binding 无有效绑定
抛 403 "权限不足"(detail 与权限错误同名,误导走查方向)。

设计层冲突:task-list 是助教个人工作台业务概念,manager 没有"我自己
的任务"业务场景,监督需求由 board-coach 等汇总看板覆盖。

Neo 决策(2026-05-05):
> "任务的 tab 只有助教身份的用户可以进入并查看,让管理身份的用户
> 进入没有意义。因为他们使用业务场景中不存在任务方面的场景。"

→ 选 B 方案:权限矩阵层移除 manager 的 view_tasks。

变更:
- db/zqyy_app/migrations/20260505__remove_manager_view_tasks.sql
  DELETE FROM auth.role_permissions WHERE role_id=manager AND permission_id=view_tasks
- docs/database/changes/2026-05-05__remove_manager_view_tasks.md
  完整变更说明 + 兼容性 + 4 条校验 SQL + 幂等回滚

测试库执行 + 4 条校验全 PASS:
- manager 改前 5 项权限,改后 4 项(view_board* 保留)
- view_tasks 现绑定到 [coach, head_coach](manager 已剥离)
- coach / head_coach 助教工作台不受影响
- 典型 manager 用户 Neo (8778) 实际权限不再含 view_tasks

双口径走查(weixin-devtools-mcp):
- 4a live: relaunch 后 visibleTabs 从 [task, board, my] → [board, my]
  小程序 tabBar"任务"tab 自动隐藏(getVisibleTabs 基于权限自动重算)
- 强制调 GET /api/xcx/tasks 仍 403,但根因从 _get_assistant_id 错位
  转为 require_permission 正确拦截,语义清晰

不改的部分:
- task_manager._get_assistant_id() 不动(仍用于 coach/head_coach)
- require_permission("view_tasks") 路由保护不动(仍合理)
- 前端 auth-guard.ts 不改(getVisibleTabs 已基于 permissions 自动)

正式库同步说明:
- 本次仅在测试库执行,生产环境同步时 psql 执行 migration + 跑校验 SQL

审计:
- docs/audit/changes/2026-05-05__wave1_f1_5b_be1_task_list_403_root_cause.md
  含完整证据链 + 三方案 ABC 业务影响对比 + B 实施记录

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 18:43:35 +08:00
..

docs/database/ — 数据库文档中心

DDL 基线(ddl/ 子目录)

从测试库自动导出的完整 DDL按 schema 分文件。权威副本在 db/*/schemas/,本目录为文档视角镜像。

重新生成:PYTHONUTF8=1 python tools/db/gen_consolidated_ddl.py

最近一次刷新:2026-04-05v1 全部 39 个迁移已合并,归档至 db/_archived/migrations_v1_merged/)。

文件 数据库 Schema 内容
etl_feiqiu__meta.sql etl_feiqiu meta 调度元数据3 表)
etl_feiqiu__ods.sql etl_feiqiu ods 原始数据层23 表)
etl_feiqiu__dwd.sql etl_feiqiu dwd 明细数据层42 表)
etl_feiqiu__core.sql etl_feiqiu core 跨门店标准化7 表)
etl_feiqiu__dws.sql etl_feiqiu dws 汇总数据层38 表)
etl_feiqiu__app.sql etl_feiqiu app RLS 视图层(仅视图,无表)
zqyy_app__public.sql zqyy_app public 小程序业务表12 表)
zqyy_app__auth.sql zqyy_app auth 用户认证与权限9 表)
zqyy_app__biz.sql zqyy_app biz 核心业务表21 表)
fdw.sql FDW 正向映射zqyy_app → etl_feiqiu.app
fdw_reverse.sql FDW 反向映射etl_feiqiu → zqyy_app

业务库文档BD_Manual — zqyy_app / 跨模块)

本目录仅保留业务库zqyy_app和跨模块的 BD_Manual。ETL 专属文档ODS→DWD 映射、DWS 表文档)已迁移至 apps/etl/connectors/feiqiu/docs/database/

文件 说明
BD_manual_public_rbac_tables.md zqyy_app public schema RBAC 与工作流admin_users/users/roles/permissions/user_roles/tasks/approvals8 表)
BD_manual_scheduled_tasks.md zqyy_app public schema 调度任务表scheduled_tasks/task_queue/task_execution_log
BD_manual_auth_tables.md zqyy_app auth schema 表结构9 表)
BD_manual_auth_biz_schemas.md auth + biz schema 建库说明
BD_manual_biz_tables.md zqyy_app biz schema 核心业务表coach_tasks/notes/trigger_jobs12 字段)
BD_manual_biz_registry_tables.md zqyy_app biz schema 注册体系connectors/tenants/sites/site_code_history
BD_manual_ai_tables.md zqyy_app biz schema AI 相关表ai_conversations/ai_messages/ai_cache/ai_run_logs/ai_trigger_jobs
BD_manual_tenant_admin_tables.md zqyy_app auth/biz 租户管理后台表tenant_admins/excel_upload_log/salary_adjustments/stg_*
BD_manual_member_retention_clue.md zqyy_app 维客线索表
BD_manual_dws_assistant_task_monthly.md biz.dws_assistant_task_monthly 汇总表
BD_manual_app_schema_rls_views.md ETL app schema RLS 视图49 视图)
BD_manual_fdw_etl_setup.md FDW 正向跨库映射配置zqyy_app → etl_feiqiu
BD_manual_fdw_reverse_retention_clue.md FDW 反向映射etl_feiqiu → zqyy_app 维客线索)

归档(_archived/ 子目录)

v1 开发过程中的增量变更记录,已合并进完整 DDL仅供历史参考

  • BD_manual_auth_users_avatar.md — avatar_url 字段增加
  • BD_manual_soft_delete_user_site_roles.md — 软删除迁移
  • BD_manual_idx_coach_tasks_rb_unique_active.md — 索引创建
  • BD_manual_fdw_finance_area.md — FDW 财务区域映射变更
  • 其他迁移变更类 BD_Manual加列、改约束、删表、tenant_id 类型变更等)
  • etl_feiqiu_schema_migration.md(旧迁移汇总)
  • zqyy_app_admin_web_tables.md(建表记录)

文档分工

位置 管辖范围
docs/database/(本目录) 业务库(zqyy_app) BD_Manual + 跨模块(FDW/RLS) + DDL 基线
apps/etl/connectors/feiqiu/docs/database/ ETL 专属(ODS/DWD/DWS 表级文档、API 映射)
db/ 运行时资产(迁移脚本/FDW 配置/建库脚本)
tools/db/ 数据库工具(DDL 生成/验证/一致性检查)

相关资源

  • 种子数据:已合并进各 DDL 文件末尾(不再单独维护)
  • FDW 配置(可执行):db/fdw/(含正向 + 反向 + 测试环境版本)
  • DDL 生成脚本:tools/db/gen_consolidated_ddl.py
  • 迁移归档v1 全部 39 个):db/_archived/migrations_v1_merged/
  • 旧基线归档:db/_archived/ddl_baseline_2026-02-22/