Files
xiaoqu_mcp_service/xiaoqu-agent-service/sql
xiaoqu a0bae500bc feat(mcp): 服务 Token 生命周期与开放通道域绑定 (REQ-20260911-0014)
- agent_api_key 增加 principal_type/subject_name(V4 Flyway + rollback),integration.context.get 按列判定主体类型\n- Open API 支持 clients 服务密钥→作用域绑定;service ensure get-or-create/无密文轮换,旧密钥禁签 service\n- 服务 Token 吊销/轮换;人员停用后 user Token 失效(60s 本地缓存);AkAuthFilter 401 返回 UNAUTHENTICATED\n- ensure 入口约束:service 仅 sync 作用域、user 禁 sync;sync 作用域预建并绑定 integration.context.get\n- 单测 157 通过;本机 test-up 冒烟通过(跨域/旧密钥/user-sync 403,service context 自检,吊销立即 401,吊销后再签发)
2026-09-14 09:20:48 +08:00
..

数据库迁移规范

自有库结构由 Flyway 管理,运行时只扫描 src/main/resources/db/migration。

  1. 已合并的 V<N>__description.sql 永不修改、删除或改名;Flyway 与测试都会校验历史 checksum。
  2. 每次结构或数据变更新增下一个连续版本,并同步新增 sql/rollback/V<N>__description.down.sql。
  3. Migration 只操作当前 svc schema,禁止包含 CREATE DATABASE、USE 和环境专属数据。
  4. DDL 优先向后兼容;删除字段或表必须先经过废弃版本。大表变更必须给出锁表时间与分批方案。
  5. seed-dev.sql 仅用于开发数据,不进入 Flyway。数据库首次创建使用 bootstrap/create-database.sql。
  6. 合并前必须运行 ./mvnw clean package;部署启动时 Flyway 会再次 validate 并按版本迁移,失败则应用不会启动。

baseline-on-migrate 默认关闭,避免连错非空库时被静默接管。已有 V1 数据库首次接入时,显式设置 SVC_FLYWAY_BASELINE_ON_MIGRATE=true:Flyway 记录 V1 基线并只执行 V2 以后版本;确认生成 flyway_schema_history 后立即恢复为 false。空数据库无需开启,会正常执行全部版本。