⚡ HTML 生成时间:2026-04-19 11:33:42(源文件更新后需重新转换)

24 - OpenClaw 能力拓展平台 — 数据库设计

表前缀occap_ 更新日期:2026-04-19

1. 约定

2. 核心表

2.0 occap_plan(套餐,可选独立表)

字段类型说明
idPK
namestring套餐名
codestring唯一编码
quota_template_jsontext默认配额模板

2.1 occap_tenant(租户)

字段类型说明
idPK
namestring组织名
codestring唯一编码
plan_idFK当前套餐
statusint正常/冻结

2.2 occap_user(用户,平台账号)

字段类型说明
idPK
tenant_idFK可空(平台超管)
usernamestring
rolestring角色枚举

2.3 occap_asset(能力资产)

字段类型说明
idPK
typestringskill / mcp_bundle / memory_policy / composite
slugstring唯一标识
titlestring
statusstringdraft / in_review / published / deprecated
risk_levelstringlow / medium / high
license_spdxstring可选

2.4 occap_asset_version(资产版本)

字段类型说明
idPK
asset_idFK
versionstringsemver
manifest_jsontextMCP/SKILL 元数据快照
bundle_uristring对象存储路径或内部路径
bundle_sha256string校验

2.5 occap_entitlement(授权)

字段类型说明
idPK
tenant_idFK
asset_version_idFK
quota_jsontext配额 JSON

2.6 occap_delivery_bundle(交付包实例)

字段类型说明
idPK
tenant_idFK
asset_version_idstextJSON 数组
uristring包地址
signaturestring可选
created_byFK

2.7 occap_audit_event(审计事件)

字段类型说明
idPK
tenant_idFK可空
actor_idFK
actionstringpublish / bundle_create / sync_ack / deprecate
payload_jsontext脱敏后

2.8 occap_memory_item(记忆条目,若平台托管内容)

字段类型说明
idPK
tenant_idFK
layerstringsession / long_term / org
content_encryptedtext视安全方案
embedding_idFK可空,指向向量侧

2.9 occap_search_audit(搜索审计)

字段类型说明
idPK
tenant_idFK
query_typestringkeyword / vector / hybrid
latency_msint
hit_countint

2.10 occap_embedding_ref(向量索引引用,可选)

字段类型说明
idPK
ref_typestringasset_version / memory_item
ref_idbigint
providerstringmilvus / pgvector / cloud
external_idstring外部向量库主键
说明:若向量库完全外置,本表可仅存映射;禁止在业务表存明文密钥。

2.11 occap_custom_order(定制工单)

字段类型说明
idPK
order_nostring工单编号 CO-{YYYYMMDD}-{6位序号},唯一
tenant_idFK所属租户
titlestring工单标题
typeenumskill定制 / mcp定制 / 记忆策略 / 组合包 / 咨询
priorityenumlow / normal / high / urgent
statusenum见业务逻辑 §3.2 状态机
openclaw_version_rangestring目标 OpenClaw 版本范围
compliance_requirementstextJSON 合规约束数组
initial_requirementtext原始需求描述
internal_notetext运营内部备注(租户不可见)
quoted_workdaysint报价工时(人天)
quoted_pricedecimal(12,2)报价金额
currencystring默认 CNY
isv_idFK接单 ISV 用户 ID(confirmed 后填)
estimated_delivery_datedate预计交付日期
actual_delivery_datedate实际交付日期
customer_ratingtinyint客户评分 1-5
customer_feedbacktext客户反馈
dispute_reasontext争议原因
submitted_atdatetime提交时间
confirmed_atdatetime确认时间
completed_atdatetime完成时间
cancelled_atdatetime取消时间
cancel_reasonstring取消原因
expire_atdatetime报价过期时间
create_userFK创建人
update_userFK更新人
delete_timedatetime软删除

索引order_no(唯一), tenant_id, status, isv_id, create_user

2.12 occap_custom_order_milestone(交付里程碑)

字段类型说明
idPK
order_idFK所属工单
sequenceint序号(1-based)
titlestring里程碑标题
descriptiontext交付标准
workdaysint本里程碑工时
due_datedate计划截止
actual_finish_datedate实际完成
statusenumpending / in_progress / review / passed / rejected / skipped
delivery_bundle_idFK关联 DeliveryBundle(passed 后填)
reject_reasontext驳回原因
notestext备注
create_userFK
update_userFK
delete_timedatetime

索引order_id, sequence(唯一), status

2.13 occap_custom_order_message(工单沟通记录)

字段类型说明
idPK
order_idFK
sender_typeenumtenant / isv / ops / system
sender_idFK用户 ID(system 时为 null)
contenttext支持 Markdown
attachment_idstextJSON 数组,附件 ID 列表
is_internalbool运营内部消息(租户不可见)
create_timedatetime

索引order_id, create_time

2.14 occap_custom_order_attachment(工单附件)

字段类型说明
idPK
order_idFK可空(关联工单)
milestone_idFK可空(关联里程碑)
uploader_typeenumtenant / isv / ops
uploader_idFK
file_namestring原始文件名
file_uristring对象存储路径
file_sizebigint字节
mime_typestring
categoryenumrequirement / draft / delivery / approval_doc / other
create_timedatetime

索引order_id, milestone_id

2.15 occap_custom_order_audit(工单审计)

字段类型说明
idPK
order_idFK
actor_typeenumtenant / isv / ops / system
actor_idFK
actionstring动作类型
old_valuetextJSON
new_valuetextJSON
ipstring
user_agentstring
create_timedatetime

索引order_id, create_time

2.16 occap_task(轻量任务,与工单解耦)

字段类型说明
idPK
task_nostringTSK-{YYYYMMDD}-{6位序号},唯一
order_idFK关联工单(可空)
titlestring
descriptiontext
typeenumreview / approval / delivery / agent_job / misc
priorityenumlow / normal / high / urgent
statusenumpending / assigned / in_progress / done / cancelled
assignee_typeenumuser / isv / agent
assignee_idFK
due_datedatetime
done_atdatetime
done_notetext
create_userFK
update_userFK
delete_timedatetime

索引task_no(唯一), order_id, assignee_id, status

2.17 occap_user(平台账号)

字段类型说明
idPK
tenant_idFK可空(platform_super 无租户)
usernamestring唯一
password_hashstringbcrypt
emailstring
phonestring
roleenumplatform_super / platform_ops / tenant_admin / tenant_member / isv / audit_readonly / agent_principal
statusenumactive / disabled / deleted
last_login_atdatetime
create_userFK创建人
create_timedatetime
update_timedatetime
delete_timedatetime软删除

索引username(唯一), tenant_id, role, status

2.18 occap_user_session(会话)

字段类型说明
idPK
user_idFK
session_idstring唯一,存 Cookie
refresh_tokenstringJWT RefreshToken
ipstring
user_agentstring
expires_atdatetimeSession 过期时间(默认7天)
create_timedatetime

索引session_id(唯一), user_id, expires_at

2.19 occap_api_key(API Key,Agent/ISV 用)

字段类型说明
idPK
user_idFK
key_prefixstring前6位可见,如 occap_
key_hashstringSHA256 哈希后存
namestring名称,如「ISV_A 密钥」
roleenum继承 user.role
permissions_jsontext细粒度权限覆盖(可空)
rate_limitint每分钟限制次数,默认 60
statusenumactive / revoked
last_used_atdatetime
expires_atdatetime可空(永不过期)
create_timedatetime

索引key_prefix(唯一), user_id

2.20 occap_tenant(租户)

字段类型说明
idPK
tenant_nostringTN-{6位序号},唯一
namestring
codestring唯一编码
plan_idFK当前套餐,NULL=试用
statusenumtrial / active / frozen / cancelled
owner_user_idFK租户创建人
expired_atdatetime试用/套餐过期时间
frozen_atdatetime
create_timedatetime
update_timedatetime
delete_timedatetime

索引tenant_no(唯一), code(唯一), status

2.21 occap_workspace(OpenClaw 工作区关联)

字段类型说明
idPK
tenant_idFK
workspace_idstringOpenClaw 工作区逻辑 ID
workspace_namestring别名,如「风控组生产环境」
descriptiontext
bind_tokenstring绑定令牌(一次性验证)
statusenumpending(待验证) / active / unbound
first_seen_atdatetime
last_seen_atdatetime
create_timedatetime

索引tenant_id, workspace_id(唯一), status

2.22 occap_plan(套餐)

字段类型说明
idPK
namestring
codestring唯一,如 basic / enterprise
quota_jsontextJSON 配额模板
price_monthlydecimal(10,2)月付价
price_yearlydecimal(10,2)年付价
sort_orderint
statusenumactive / deprecated
create_timedatetime
update_timedatetime

索引code(唯一), status

2.23 occap_tenant_subscription(租户订阅记录)

字段类型说明
idPK
tenant_idFK
plan_idFK
subscription_nostringSUB-{6位序号},唯一
period_startdate本周期开始
period_enddate本周期结束
statusenumactive / expired / cancelled
auto_renewbool是否自动续费
create_timedatetime

索引tenant_id, period_end

2.24 occap_asset(能力资产)

字段类型说明
idPK
asset_nostringAS-{YYYYMM}-{6位序号}
tenant_idFK所属租户(NULL=平台)
isv_idFK创作者
typeenumskill / mcp_bundle / memory_policy / composite
slugstringURL 唯一标识
titlestring
summarytext一句话简介
descriptiontext详细说明
tagstextJSON 数组
visibilityenumpublic / tenant_private / channel_canary
risk_levelenumlow / medium / high
license_spdxstring
official_review_requiredbool
current_version_idFK当前生效版本
create_userFK
update_userFK
create_timedatetime
update_timedatetime
delete_timedatetime

索引slug(唯一), (status, type), tenant_id, isv_id

2.25 occap_asset_version(资产版本)

字段类型说明
idPK
asset_idFK
versionstringsemver
version_noint递增序号
manifest_jsontext完整 manifest
bundle_uristring包存储路径
bundle_sha256string校验和
signaturestring可选签名
changelogtext变更说明
statusenumdraft / in_review / published / deprecated
review_passed_atdatetime
review_passed_byFK
published_atdatetime
published_byFK
deprecate_reasontext
rollback_version_idFK可回滚版本
create_userFK
create_timedatetime
delete_timedatetime

索引(asset_id, version)(唯一), (asset_id, status), status

2.26 occap_entitlement(授权)

字段类型说明
idPK
entitlement_nostringET-{YYYYMM}-{6位序号}
tenant_idFK
asset_version_idFK
plan_idFK来源套餐(可空)
source_typeenumplan_included / addon / trial / custom_order
quota_jsontext配额覆盖
statusenumactive / expired / revoked
granted_atdatetime
expired_atdatetimeNULL=永不过期
revoked_atdatetime
revoked_reasonstring
create_userFK
create_timedatetime

索引(tenant_id, asset_version_id)(唯一), tenant_id, status, expired_at

2.27 occap_capability_slot(能力槽位,Agent 订阅)

字段类型说明
idPK
slot_nostringCS-{6位序号}
tenant_idFK
agent_principal_idFK绑定 Agent 主体
asset_version_idFK
quota_jsontext调用次数/并发限制
used_countint当期已用
period_typeenummonthly / yearly / lifetime
statusenumactive / exhausted / expired
create_timedatetime

索引slot_no(唯一), tenant_id, status

2.28 occap_delivery_bundle(交付包)

字段类型说明
idPK
bundle_nostringDB-{YYYYMM}-{6位序号}
tenant_idFK
entitlement_idFK
custom_order_idFK可空
asset_version_idstextJSON 数组
bundle_uristring
bundle_sha256string
signaturestring
size_bytesbigint
delivery_typeenumdirect / script
script_versionstring
statusenumcreated / downloaded / applied / failed
downloaded_atdatetime
applied_atdatetime
failure_reasontext
create_timedatetime

索引bundle_no(唯一), tenant_id, status

2.29 occap_notification(站内通知)

字段类型说明
idPK
user_idFK通知对象
tenant_idFK
titlestring
contenttext
typeenumorder_submitted / order_quoted / order_confirmed / milestone_rejected / milestone_passed / task_assigned / system
read_timedatetime已读时间,NULL=未读
link_urlstring点击跳转链接
create_timedatetime

索引user_id, read_time, tenant_id, type

3. 索引建议

4. ER 图

database_er.html(与上表 ASCII 名一致,避免 Mermaid 特殊字符问题)。

← 返回文档总览