整理文档及修改配置
This commit is contained in:
@@ -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` 示例直接追加到本文件吗?
|
||||
|
||||
Reference in New Issue
Block a user