整理文档及修改配置

This commit is contained in:
not-like-juvenile
2026-03-16 14:58:00 +08:00
parent e70211f1d2
commit dac730474b
12 changed files with 3019 additions and 11 deletions

View File

@@ -150,3 +150,23 @@ CREATE POLICY user_owns_address ON user_addresses
- 选项 3列出仓库内所有前端写入点并按“必须走后端 / 可保留直写”分级清单(便于逐步迁移)。
请回复 `1``2``3` 选项,或告诉我需要调整的文档内容/格式。
---
## 附录:前端不得直接连接数据库(简明实施指南)
结论所有需要提升权限、跨表原子性、审计或幂等保证的写入必须走可信后端仅在严格受限RLS + 约束)且只影响用户自身资源时,前端可用 anon key 直写。
- 何时必须走后端:更新 `driver_id`、订单状态、资金/结算、库存变更、跨表事务、需要审计或幂等的操作、需使用 `service_role` 权限的写入。
- 何时可允许前端直写:仅用户自身数据(例如 `user_addresses`)且已启用 RLS 与完整约束,且不涉及跨表或审计要求。
最小后端职责(示例):
- 验证前端 JWT`uid`);做权限校验与幂等检查(`action_id`)。
- 调用 Postgres RPC`SECURITY DEFINER`)或使用 `SERVICE_ROLE_KEY` 完成受权写入。
- 写入 `audit_logs` 并返回统一错误格式 `{ ok, code?, message?, data? }`
紧急建议(复述以便执行):
- 立即移除或注释前端的 `service_role`(已在工作区修改 `ak/config.uts`)。
- 在 CI 中阻止带有 `service_role` 的 key 进入前端配置或打包产物。
- 为关键流实现 RPC`rpc_accept_task`)并暴露最小后端 API`/api/v1/delivery/accept-task`),逐步将前端写入迁移到后端。
需要我把这个附录再整理为单独文件或把 `rpc_accept_task` SQL 与 `server/routes/delivery.js` 示例直接追加到本文件吗?