erDiagram
occap_plan ||--o{ occap_tenant : assigns
occap_tenant ||--o{ occap_user : has
occap_tenant ||--o{ occap_entitlement : owns
occap_asset ||--o{ occap_asset_version : versions
occap_asset_version ||--o{ occap_entitlement : grants
occap_tenant ||--o{ occap_delivery_bundle : receives
occap_tenant ||--o{ occap_audit_event : logs
occap_memory_item ||--o| occap_embedding_ref : maps
occap_plan {
int id PK
string name
string code
}
occap_tenant {
int id PK
string name
string code
int plan_id FK
int status
datetime create_time
}
occap_user {
int id PK
int tenant_id FK
string username
string role
datetime create_time
}
occap_asset {
int id PK
string type
string slug
string title
string status
string risk_level
}
occap_asset_version {
int id PK
int asset_id FK
string version
string bundle_sha256
datetime create_time
}
occap_entitlement {
int id PK
int tenant_id FK
int asset_version_id FK
string quota_json
}
occap_delivery_bundle {
int id PK
int tenant_id FK
string uri
string signature
datetime create_time
}
occap_audit_event {
int id PK
int tenant_id FK
int actor_id FK
string action
datetime create_time
}
occap_memory_item {
int id PK
int tenant_id FK
string layer
datetime create_time
}
occap_search_audit {
int id PK
int tenant_id FK
string query_type
int latency_ms
datetime create_time
}
occap_embedding_ref {
int id PK
string ref_type
int ref_id
string provider
string external_id
}