再次提交一下代码
This commit is contained in:
@@ -12,6 +12,8 @@ Runtime、Planner、Memory 或通用工具调用框架。
|
||||
|
||||
当前项目时间存储、接口返回、酒店时区展示和本地业务日期边界统一参考 `docs/project/backend-time-design.md`。
|
||||
|
||||
当前项目接口暴露、权限、酒店隔离和审计边界统一参考 `docs/project/security-access-control-boundary.md`。新增或修改 Controller、第三方入口、调试入口或 worker 触发入口时,必须同步检查该文档。
|
||||
|
||||
## 2. 技术栈
|
||||
|
||||
以 `server/pom.xml` 为准,当前后端技术栈如下:
|
||||
@@ -278,7 +280,45 @@ Secret 只能通过 `.env`、环境变量或部署平台 Secret 注入。仓库
|
||||
- 后端 Secret 不得放入前端 `VITE_*`。
|
||||
- 生产环境应拆分 ConfigMap / 非敏感环境变量与 Secret / 密钥管理系统。
|
||||
|
||||
## 14. API 设计规范
|
||||
## 14. 接口暴露、权限和审计边界
|
||||
|
||||
新增或修改后端入口前,必须先判定接口分类:
|
||||
|
||||
```text
|
||||
PUBLIC
|
||||
FRONTEND_USER
|
||||
FRONTEND_ADMIN
|
||||
FRONTEND_DEBUG
|
||||
THIRD_PARTY_SUPERAGENT
|
||||
THIRD_PARTY_AGENTBUS
|
||||
THIRD_PARTY_MCP
|
||||
INTERNAL_ONLY
|
||||
```
|
||||
|
||||
中文说明:
|
||||
|
||||
| 分类 | 中文含义 | 后端落地要求 |
|
||||
| --- | --- | --- |
|
||||
| `PUBLIC` | 公开基础接口 | 只能返回健康、登录等非敏感信息,不返回业务数据和配置细节 |
|
||||
| `FRONTEND_USER` | 普通业务前端接口 | 目标状态必须登录、权限码和酒店访问权控制 |
|
||||
| `FRONTEND_ADMIN` | 系统管理后台接口 | 必须登录、管理权限码和管理审计 |
|
||||
| `FRONTEND_DEBUG` | Debug、Demo、Replay、Probe 等调试接口 | 必须有环境开关、受控 access key 或管理权限,生产默认关闭或严格限制 |
|
||||
| `THIRD_PARTY_SUPERAGENT` | SuperAgent 服务到服务接口 | 使用 HMAC、timestamp、nonce、body hash 等机器鉴权,不使用用户 Bearer token |
|
||||
| `THIRD_PARTY_AGENTBUS` | AgentBus 实时入口 | 使用 AgentBus Token、入库幂等和受控 dispatch,不直接改业务状态 |
|
||||
| `THIRD_PARTY_MCP` | MCP 工具入口 | 使用 Bearer Token 和工具级能力限制,不暴露无关业务接口 |
|
||||
| `INTERNAL_ONLY` | 后端内部能力 | 不提供外部 HTTP 入口,只能通过 Service、Port、Worker 或 Adapter 内部调用 |
|
||||
|
||||
落地规则:
|
||||
|
||||
- Controller 方法新增前必须明确调用方、鉴权方式、权限码、酒店隔离方式、敏感字段返回边界和审计要求。
|
||||
- 前端业务接口最终应使用登录态、权限码和酒店访问权;第三方机器接口不得误用用户登录态。
|
||||
- 后端内部 Adapter、Repository、Mapper、Secret、外部系统 client、raw payload 和原始附件读取能力不得直接暴露给前端或第三方。
|
||||
- 邮件正文、HTML、附件 URL、AI 原始 payload、trace、调试错误摘要等敏感数据返回前必须确认调用方和审计策略。
|
||||
- 写接口必须明确 actor 来源;前端用户写操作使用当前登录用户,SuperAgent、MCP、AgentBus 使用机器身份。
|
||||
- 新增或变更接口必须同步更新 `docs/project/security-access-control-boundary.md`。影响前端时同步更新 `docs/project/frontend-backend/backend-to-frontend-notes.md`,影响 SuperAgent / MCP / AgentBus 时同步更新对应集成契约文档。
|
||||
- 新增接口权限时必须执行 `docs/project/security-access-control-boundary.md` 中“新增接口权限固定流程”:定义权限码、补启动同步、补内置角色矩阵、后端强制校验、前端权限类型和交互同步、系统设置可分配、补测试和文档。
|
||||
|
||||
## 15. API 设计规范
|
||||
|
||||
- API 返回稳定代码,不返回中文或英文文本作为前端业务判断依据。
|
||||
- 动态表单字段使用稳定 `fieldKey` 和可国际化 `labelKey`。
|
||||
@@ -287,7 +327,7 @@ Secret 只能通过 `.env`、环境变量或部署平台 Secret 注入。仓库
|
||||
- 外部写操作结果不明确时,禁止盲目重试。
|
||||
- 调试接口必须默认关闭,并使用独立访问密钥。
|
||||
|
||||
## 15. 测试与检查命令
|
||||
## 16. 测试与检查命令
|
||||
|
||||
后端最低检查:
|
||||
|
||||
@@ -308,7 +348,7 @@ cd server
|
||||
|
||||
如果命令尚未配置或因环境问题无法运行,必须明确说明,不能假装通过。
|
||||
|
||||
## 16. Git 与协作流程
|
||||
## 17. Git 与协作流程
|
||||
|
||||
- 改动前说明目标、范围和将修改的文件。
|
||||
- 每次只处理一个模块或一个纵向切片。
|
||||
@@ -318,11 +358,13 @@ cd server
|
||||
- 修改后运行项目已配置的检查命令。
|
||||
- Git commit message 使用中文,清楚说明本次提交的业务或技术变更。
|
||||
|
||||
## 17. 后端提交前检查清单
|
||||
## 18. 后端提交前检查清单
|
||||
|
||||
- [ ] 是否遵守 platform / workflows / integrations 分层?
|
||||
- [ ] 是否已在 `docs/project/security-access-control-boundary.md` 中登记或更新接口分类、鉴权方式、权限码、酒店隔离和审计要求?
|
||||
- [ ] 模块内部是否遵守 `control` / `service` / `service.impl` / `domain` / `mapper` / `repository` / `common.dto` / `common.request` / `common.result` / `common.enums` 目录规则?
|
||||
- [ ] Controller 是否没有直接访问 Mapper 或外部 Adapter?
|
||||
- [ ] 第三方接口是否没有误用用户登录权限,前端接口是否没有直接暴露 Secret、raw payload 或外部系统调用能力?
|
||||
- [ ] Request、Result、DTO 是否放在 `common.request`、`common.result`、`common.dto`,而不是混在 `service` 或临时 `application` 包?
|
||||
- [ ] `control`、`service`、`service.impl`、`repository` 方法是否有中文注释?
|
||||
- [ ] Mapper 自定义语义化方法是否按复杂度合理补充中文注释,且未为了 MyBatis-Plus 自带继承方法强行加无意义注释?
|
||||
|
||||
Reference in New Issue
Block a user