- 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,吊销后再签发)
54 lines
3.3 KiB
SQL
54 lines
3.3 KiB
SQL
-- =============================================================
|
||
-- dev 种子数据(仅 dev 环境使用!)
|
||
-- 仅创建作用域并关联工具,不提交固定 token 或 ak。
|
||
-- token 请使用本地随机 ak 的 SHA-256 哈希手工创建,详见 README。
|
||
-- 依赖:tool 表已由应用启动时 ToolSyncService 同步。
|
||
-- =============================================================
|
||
|
||
USE xiaoqu_agent_svc_d;
|
||
|
||
START TRANSACTION;
|
||
|
||
-- 作用域:运营
|
||
INSERT INTO agent_scope (name, code, memo, status, create_id)
|
||
SELECT '运营', 'operation', 'dev 种子:运营作用域', 1, 0
|
||
WHERE NOT EXISTS (SELECT 1 FROM agent_scope WHERE code = 'operation');
|
||
|
||
-- 作用域-工具:sys.ping / agent.count / agent.list.query / property.list.query / agent.detail.query / property.detail.query
|
||
-- / mall.order.list.query / mall.order.detail.query / mall.order.logistics.query
|
||
-- / contract.list.query / contract.detail.query / integration.context.get
|
||
INSERT INTO scope_tool (scope_id, tool_id, create_id)
|
||
SELECT s.id, t.id, 0 FROM agent_scope s JOIN tool t
|
||
WHERE s.code = 'operation' AND t.name IN ('sys.ping', 'agent.count', 'agent.list.query', 'property.list.query', 'agent.detail.query', 'property.detail.query', 'mall.order.list.query', 'mall.order.detail.query', 'mall.order.logistics.query', 'contract.list.query', 'contract.detail.query', 'integration.context.get')
|
||
AND NOT EXISTS (SELECT 1 FROM scope_tool st WHERE st.scope_id = s.id AND st.tool_id = t.id);
|
||
|
||
-- 作用域:hardware(出纸机查询)
|
||
INSERT INTO agent_scope (name, code, memo, status, create_id)
|
||
SELECT '出纸机', 'hardware', 'dev 种子:出纸机查询作用域', 1, 0
|
||
WHERE NOT EXISTS (SELECT 1 FROM agent_scope WHERE code = 'hardware');
|
||
|
||
-- 作用域-工具:hardware.list.query / hardware.detail.query
|
||
INSERT INTO scope_tool (scope_id, tool_id, create_id)
|
||
SELECT s.id, t.id, 0 FROM agent_scope s JOIN tool t
|
||
WHERE s.code = 'hardware' AND t.name IN ('hardware.list.query', 'hardware.detail.query')
|
||
AND NOT EXISTS (SELECT 1 FROM scope_tool st WHERE st.scope_id = s.id AND st.tool_id = t.id);
|
||
|
||
-- 作用域:sync(SYNC 增量同步,REQ-20260911-0014 预留;SYNC 工具本身是后续需求 5628)
|
||
-- 个人 Token 禁调 SYNC 工具靠 token_scope 白名单天然生效:个人 Token 不绑定本作用域即 PERMISSION_DENIED,
|
||
-- 无需任何拦截代码。5628 注册 *.changes.list 工具后,按上面同款 INSERT 把工具绑进本作用域,
|
||
-- 再只为服务 Token(principal_type=service)勾选 sync 作用域。
|
||
INSERT INTO agent_scope (name, code, memo, status, create_id)
|
||
SELECT '数据同步', 'sync', 'SYNC 增量同步作用域(5628 注册 *.changes.list 工具后绑定,仅服务 Token 使用)', 1, 0
|
||
WHERE NOT EXISTS (SELECT 1 FROM agent_scope WHERE code = 'sync');
|
||
|
||
-- sync 作用域-工具:integration.context.get(服务 Token 自检入口;*.changes.list 由 5628 注册后追加)
|
||
INSERT INTO scope_tool (scope_id, tool_id, create_id)
|
||
SELECT s.id, t.id, 0 FROM agent_scope s JOIN tool t
|
||
WHERE s.code = 'sync' AND t.name IN ('integration.context.get')
|
||
AND NOT EXISTS (SELECT 1 FROM scope_tool st WHERE st.scope_id = s.id AND st.tool_id = t.id);
|
||
|
||
COMMIT;
|
||
|
||
-- 校验
|
||
SELECT s.id, s.code, t.name FROM agent_scope s JOIN scope_tool st ON s.id = st.scope_id JOIN tool t ON st.tool_id = t.id WHERE s.soft_delete = 0;
|