走查发现 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>
docs/database/ — 数据库文档中心
DDL 基线(ddl/ 子目录)
从测试库自动导出的完整 DDL,按 schema 分文件。权威副本在 db/*/schemas/,本目录为文档视角镜像。
重新生成:PYTHONUTF8=1 python tools/db/gen_consolidated_ddl.py
最近一次刷新:2026-04-05(v1 全部 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/approvals,8 表) |
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_jobs,12 字段) |
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/