Database Schema
IAM Tables
erDiagram
workspace_user }o--|| workspace : workspace_id
workspace_user }o--|| users : user_id
workspace ||--o{ service_api_key : workspace_id
users ||--o{ user_api_key: user_id
workspace {
id uuid PK
name varchar
archived bool
created_at timestamp
updated_at timestamp
deleted_at timestamptz
deletion_reason varchar
}
users {
id uuid PK
username varchar
password_hash varchar
display_name varchar
status user_status
is_sysadmin bool
is_admin bool
deleted_at timestamptz
deletion_reason varchar
}
workspace_user {
id uuid PK
user_id uuid FK
workspace_id uuid FK
workspace_role workspace_role
deleted_at timestamptz
deletion_reason varchar
}
service_api_key {
id uuid PK
workspace_id uuid FK
name varchar
key_hash varchar
key_preview varchar(16)
permissions api_key_permission
expires_at timestamptz(6)
deleted_at timestamptz
deletion_reason varchar
}
user_api_key {
id uuid PK
user_id uuid FK
name varchar
key_hash varchar
key_preview varchar
expires_at timestamptz(6)
deleted_at timestamptz
deletion_reason varchar
}
Data Tables
erDiagram
workspace ||--o{ system_event : workspace_id
system_event ||--|{ data : system_event_id
subsystem_event ||--|{ data : subsystem_event_id
component_event ||--|{ data: component_event_id
subcomponent_event ||--|{ data: subcomponent_event_id
data ||--|{ runtime : ""
data ||--o{ io : ""
data ||--o{ metadata : ""
api_access_audit_logs ||--o| user_query : api_access_audit_log_id
workspace ||--o{ user_query : allowed_workspace_ids
system_event {
id uuid PK
workspace_id uuid FK
name varchar
parameters json
version varchar
environment varchar
}
subsystem_event {
id uuid PK
system_event_id uuid FK
name varchar
parameters json
version varchar
environment varchar
}
component_event {
id uuid PK
system_event_id uuid FK
name varchar
parameters json
version varchar
environment varchar
}
subcomponent_event {
id uuid PK
system_event_id uuid FK
name varchar
parameters json
version varchar
environment varchar
}
runtime {
id uuid PK
system_event_id uuid FK
subsystem_event_id uuid FK
component_event_id uuid FK
subcomponent_event_id uuid FK
start_time timestamp
end_time timestamp
error_type varchar
error_content varchar
}
io {
id uuid PK
system_event_id uuid FK
subsystem_event_id uuid FK
component_event_id uuid FK
subcomponent_event_id uuid FK
field_name varchar
field_value_str varchar
field_value_int int8
field_value_float float8
field_value_bool bool
field_value_json json
field_value_type field_value_type
}
metadata {
id uuid PK
system_event_id uuid FK
subsystem_event_id uuid FK
component_event_id uuid FK
subcomponent_event_id uuid FK
field_name varchar
field_value varchar
}
user_query {
id uuid PK
api_access_audit_log_id uuid FK
allowed_workspace_ids uuid[] FK
query_type query_type
access_reason access_reason
query_access_details varchar
query_text varchar
operation_name varchar
variables jsonb
query_metadata jsonb
query_start_time timestamptz not null
failure_details jsonb
}
Audit Tables
erDiagram
api_access_audit_logs ||--o{ api_auth_audit_logs : api_access_audit_log_id
api_access_audit_logs ||--o{ iam_audit_logs : api_access_audit_log_id
api_access_audit_logs ||--o{ record_access_audit_logs : api_access_audit_log_id
service_api_key ||--o{ api_auth_audit_logs : service_api_key_id
user_api_key ||--o{ api_auth_audit_logs : user_api_key_id
users ||--o{ api_auth_audit_logs : user_id
record_access_audit_logs ||--|| user_query : user_query_id
user_query ||--|| user_query_results : user_query_id
api_access_audit_logs {
id uuid PK
created_at timestamptz
source varchar
request_id uuid
ip_address inet
archive_status archive_status
}
api_auth_audit_logs {
id uuid PK
api_access_audit_log_id uuid FK
service_api_key_id uuid FK
user_api_key_id uuid FK
user_id uuid FK
auth_method auth_method
auth_payload_hash bytea
success boolean
failure_details jsonb
}
iam_audit_logs {
id uuid PK
api_access_audit_log_id uuid FK
resource_id uuid
table_name varchar
operation_type operation_type
old_state bytea
new_state bytea
failure_reason varchar
query_metadata jsonb
}
user_query_results {
id uuid PK
user_query_id uuid FK
failure_details jsonb
query_end_time timestamptz
query_status query_status
resource_usage jsonb
}
record_access_audit_logs {
id uuid PK
api_access_audit_log_id uuid FK
user_query_id uuid FK
operation_type operation_type
schema_name name
table_name name
entity_ids uuid[]
}