- task_capability.py: claim/submit/approve/reject/complete/mark_failed/retry/suspend/revive/set_task_state CAS 原子迁移(防并发/越权覆盖) + tenant 隔离 + record_audit 审计 定位=状态机语义化操作层,CRUD 复用 storage.py,不遮蔽 storage/executor 同名函数 - audit.py: record_audit append-only 通用审计原语(支持 sor 复用避免嵌套连接) - models/audit_log.json: 审计日志表(append-only, tenant 隔离) - init.py: 注册 task_* + record_audit 到 ServerEnv
29 lines
1.4 KiB
JSON
29 lines
1.4 KiB
JSON
{
|
|
"summary": [
|
|
{
|
|
"name": "audit_log",
|
|
"title": "审计日志表(append-only)",
|
|
"primary": ["id"],
|
|
"catelog": "entity"
|
|
}
|
|
],
|
|
"fields": [
|
|
{"name": "id", "title": "主键ID", "type": "str", "length": 32, "nullable": "no"},
|
|
{"name": "tenant_id", "title": "租户ID", "type": "str", "length": 32, "nullable": "no"},
|
|
{"name": "entity", "title": "实体类型", "type": "str", "length": 64, "nullable": "no"},
|
|
{"name": "entity_id", "title": "实体ID", "type": "str", "length": 64, "nullable": "no"},
|
|
{"name": "action", "title": "动作", "type": "str", "length": 64, "nullable": "no"},
|
|
{"name": "from_state", "title": "原状态", "type": "str", "length": 32},
|
|
{"name": "to_state", "title": "新状态", "type": "str", "length": 32},
|
|
{"name": "who", "title": "操作角色", "type": "str", "length": 64},
|
|
{"name": "agent_id", "title": "操作Agent标识", "type": "str", "length": 64},
|
|
{"name": "detail", "title": "详情", "type": "text"},
|
|
{"name": "created_at", "title": "创建时间", "type": "timestamp", "nullable": "no"}
|
|
],
|
|
"indexes": [
|
|
{"name": "idx_al_tenant", "idxtype": "index", "idxfields": ["tenant_id"]},
|
|
{"name": "idx_al_entity", "idxtype": "index", "idxfields": ["entity", "entity_id"]},
|
|
{"name": "idx_al_created", "idxtype": "index", "idxfields": ["created_at"]}
|
|
]
|
|
}
|