Files
Neo-ZQYY/docs/audit/changes/2026-03-18__rns1-e2e-fdw-direct-connect-bugfix.md
Neo 14a12342b5 chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。

按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。

涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
   召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
   DDL 基线合并 / Kiro 到 Claude Code 迁移

阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 06:35:42 +08:00

57 lines
2.4 KiB
Markdown
Raw 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.
# RNS1.1 E2E 测试 — FDW 直连改造 + performance_service bug 修复
> 日期2026-03-18
> 触发RNS1.1 端到端测试发现 postgres_fdw 不传递自定义 GUC 参数
## 变更概述
### 1. fdw_queries.py — FDW → 直连 ETL 库(架构变更)
**根因**`postgres_fdw` 不传递自定义 GUC 参数(`app.current_site_id`)到远端连接,导致 ETL 库的 RLS 视图 `current_setting('app.current_site_id')` 在远端未设置而报错。
**方案**`_fdw_context()` 改为通过 `get_etl_readonly_connection(site_id)` 直连 ETL 库,在同一连接上 `SET LOCAL app.current_site_id`,然后查询 `app.v_*` RLS 视图。
**影响**
- 所有 SQL 表引用从 `fdw_etl.v_*` 改为 `app.v_*`
- `conn` 参数保留(调用方仍需它查 `biz.*` 表),但 ETL 查询使用独立连接
- ETL 连接在 `_fdw_context` yield 后自动关闭
### 2. performance_service.py — 两个 bug 修复
**Bug A**`_build_customer_lists()` 残留 `fdw_etl.v_dwd_assistant_service_log` 引用 + 错误列名
- `fdw_etl.v_dwd_assistant_service_log``app.v_dwd_assistant_service_log`
- `member_id``tenant_member_id`
- `assistant_id``site_assistant_id`
- `is_trash = false``is_delete = 0`RLS 视图基于 dwd_assistant_service_log 基表,用 is_delete 整数)
- `settle_time``create_time`
**Bug B**`get_overview()` 查询不存在的表/列
- `auth.sites` 表不存在 → 移除 LEFT JOIN
- `users.display_name``users.nickname`
- `uab.role_label``uab.binding_type`
## 验证
E2E 测试脚本 `scripts/ops/e2e_test_rns1.py`4/4 接口通过:
- TASK-1 任务列表 ✅
- TASK-2 任务详情 ✅(列表为空,跳过)
- PERF-1 绩效概览 ✅
- PERF-2 绩效明细 ✅
## 受影响文件
| 文件 | 变更类型 |
|------|----------|
| `apps/backend/app/services/fdw_queries.py` | 架构变更FDW → 直连 ETL |
| `apps/backend/app/services/performance_service.py` | Bug 修复SQL 表名/列名 |
| `docs/architecture/backend-architecture.md` | 文档同步 |
| `scripts/ops/e2e_test_rns1.py` | 新增 E2E 测试脚本 |
## 已知遗留
以下文件仍有 `fdw_etl.` 引用,但不在本次 E2E 测试范围内,需后续修复:
- `apps/backend/app/services/task_manager.py`
- `apps/backend/app/services/task_generator.py`
- `apps/backend/app/services/recall_detector.py`
- `apps/backend/app/services/matching.py`