本文是 Open ACE 数据库的领域地图。逐列参考以
schema/schema-postgres.sql 为权威,该文件包含全部
104 张表 + 1 个物化视图;本文与该文件不一致时,以 SQL 文件为准。Open ACE 同时支持
SQLite(单机)与 PostgreSQL(生产);模式变更统一通过 migrations/versions/ 中的
Alembic 迁移完成(见 SCHEMA_MIGRATION_GUIDE.md)。
领域地图 — 全部 104 张表
schema/schema-postgres.sql 中定义的每一张表,按领域分组,每表一行职责。最常用的
46 张表的逐列细节见下文常用表详表;其余表请直接查阅 SQL 文件。
用户与认证(8 张)
| 表 | 职责 |
|---|
users | 核心账号表:角色(platform_admin/tenant_admin/manager/user/readonly)、租户归属、软删除、按用户的令牌/请求配额、令牌失效水位 |
sessions | API 认证会话:令牌、用户、过期时间、激活标志 |
web_user_auth_sessions | Web UI 会话令牌,拥有独立的过期生命周期 |
user_permissions | 管理员授予的按用户权限覆盖 |
role_permissions | 角色 → 权限模板行,支撑 RBAC 校验 |
login_attempts | 登录失败计数,用于账号锁定 |
user_tool_accounts | 发现的工具账号/系统账号到平台用户的映射(映射来源、状态、核验) |
tool_account_mapping_rules | 用户定义的模式规则,用于自动映射发现的工具账号 |
消息与会话(3 张)
| 表 | 职责 |
|---|
daily_messages | 跨工具/主机的全量消息分析事实表;不是 Workspace 运行时数据源(见会话数据契约) |
agent_sessions | 权威的 Workspace 会话汇总表,每会话一行 |
session_messages | 权威的会话内消息转录表(带来源标记,按 external_message_id 幂等) |
三张会话表受
../contracts/WORKSPACE_SESSION_DATA_CONTRACT.md
约束,该契约定义了三表之间的数据边界以及 request_count 的唯一产品语义。
统计计量(8 张)
| 表 | 职责 |
|---|
daily_stats | 按工具/主机/发送人预聚合的日统计 |
hourly_stats | 按工具/主机的逐小时用量 |
daily_usage | 租户维度的日用量(含缓存令牌);自治开发用量的同步目标 |
usage_summary | 面板使用的按工具/主机全期汇总 |
user_daily_stats | 按用户预聚合的日用量 |
session_daily_usage | 长运行 WebUI 会话的按会话按日增量用量(Issue #3338) |
request_performance | 原始请求性能事件(TTFT、耗时;Issue #3080) |
response_time_stats | 按日/工具/主机预聚合的响应时间分位数 |
多租户(4 张)
| 表 | 职责 |
|---|
tenants | 租户注册表:状态、套餐、计费周期、超限策略、软删除 |
tenant_settings | 与租户 1:1 的设置:过滤、审计/保留开关、SSO、品牌、allowed_tools |
tenant_quotas | 与租户 1:1 的限额(令牌/请求配额、用户数上限、人均会话数) |
tenant_usage | 按租户的日用量计数 |
SSO(4 张)
| 表 | 职责 |
|---|
sso_providers | SSO 提供商配置(oauth2/oidc/saml),密钥加密存储,按租户隔离 |
sso_identities | 提供商身份 → 本地用户的关联 |
sso_sessions | SSO 会话令牌及提供商 access/refresh 令牌 |
sso_auth_states | 短时 OAuth 登录流程状态(PKCE verifier、nonce),带 TTL 清理 |
自治开发(8 张)
| 表 | 职责 |
|---|
agent_runs | 运行时间线锚点,与 agent_sessions 1:1(run_id == session_id) |
agent_run_events | 追加式运行事件流(run_id 刻意设计为普通索引而非外键) |
agent_approvals | 以 request_id 为键的持久化权限请求/响应对 |
autonomous_workflows | 自治开发工作流状态:需求、仓库/PR 绑定、CI 修复、重试、锁 |
workflow_events | 按工作流的事件日志(可关联里程碑) |
workflow_milestones | 按工作流的里程碑/阶段跟踪:开发轮次、评审会话、GitHub issue/PR 编号 |
policy_rules | 带匹配器的版本化策略规则定义 |
policy_decisions | 按请求的策略评估审计记录 |
合规保留(5 张)
| 表 | 职责 |
|---|
retention_policies | 按租户、按数据类型的保留规则(天数、动作、归档目标) |
retention_executions | 每次保留执行:状态、加锁、扫描/影响行数 |
retention_evidence | 每次执行的证据:前后行数、归档位置与校验和 |
legal_holds | 阻止保留删除的法律保全标记 |
recycle_bin | 等待过期或恢复的软删除记录 |
通知集成(5 张)
| 表 | 职责 |
|---|
webhook_settings | 出站 Webhook 单例配置(加密密钥、私网 URL 策略) |
webhook_deliveries | 按告警的 Webhook 投递尝试,带重试/冷却状态 |
dingtalk_settings | 钉钉集成单例配置(加密签名密钥) |
feishu_settings | 飞书集成单例配置(核验状态) |
tenant_sensitive_keywords | 租户维度的自定义敏感词(Issue #2789) |
调度运维(9 张)
| 表 | 职责 |
|---|
scheduler_runs | 按任务的调度执行历史,含锁策略与围栏令牌(Issue #2187/#2333) |
scheduler_leaders | 每个调度任务的分布式选主状态 |
consistency_violations | 检测到的数据漂移:期望/实际值与修复状态 |
deregister_failures | 机器注销时失败的会话终止批次,供后台补偿重放(Issue #2596) |
parse_failure_records | 工具输出解析失败及重试跟踪(Issue #2589) |
config_import_state | 配置入库时每个配置键的导入状态 |
schema_metadata | 模式初始化/版本标记,作为数据库层兼容性守卫(Issue #2330) |
tenant_migrations | 租户迁移批次:受影响的用户/会话/项目及进度(Issue #2163) |
mapping_migration_status | 工具账号映射回填的进度簿记 |
计量账务(10 张)
| 表 | 职责 |
|---|
tenant_plans | 套餐目录:配额默认值、定价、功能开关 |
tenant_period_history | 每次配额重置时归档的租户周期用量 |
usage_report_receipts | 远端用 量上报的幂等回执(Issue #1891) |
usage_report_rate_limits | 用量上报接入的滑动窗口限流 |
aggregation_history | 租户用量聚合运行记录,含质量报告与错误状态 |
aggregation_locks | 聚合作业的数据库级分布式锁 |
backfill_logs | 历史回填作业日志(行数、日期范围、状态) |
alerts_history | 已发送告警的投递历史(收件人、渠道、状态) |
archive_files | 归档数据文件:校验和、记录数、过期时间 |
tenant_keywords_version | 租户敏感词版本计数器,用于多进程缓存一致性 |
安全(7 张)
| 表 | 职责 |
|---|
proxy_token_jtis | 代理令牌 JTI 注册表:一次性/防重放(Issue #1758) |
external_identity_nonces | 外部身份 HMAC 探测的防重放 nonce(issuer + nonce + 过期时间;Issue #3459) |
encryption_keys | 加密密钥元数据(指纹、状态、轮换);明文只存环境变量,绝不入库 |
permission_checkpoints | 异步权限设置扫描的可恢复检查点 |
permission_tasks | 共享项目异步权限设置任务及进度(Issue #2746) |
tool_account_conflicts | 工具账号映射冲突事件(Issue #2761) |
test_execution_evidence | 按命令的结构化测试判定(框架结果、覆盖率) |
command_execution_evidence | 自治开发运行中按命令的权威执行记录 |
远程运行时(7 张)
| 表 | 职责 |
|---|
remote_machines | 已注册的远程机器:能力、心跳、令牌撤销超时 |
remote_runtime_commands | 远端 agent 的 HTTP 轮询命令队列(请求/响应) |
remote_runtime_outputs | 远程会话的持久化 SSE 回放缓冲 |
machine_assignments | 用户 → 机器的权限分配 |
agent_tokens | 哈希存储的 agent 令牌,带轮换、延迟撤销与版本(Issue #2499/#2530) |
registration_tokens | 一次性机器注册令牌(哈希 + 消费标记) |
api_key_store | 按租户加密存储的 AI 提供商 API 密钥及 CLI 路由配置 |
其余领域(25 张)
治理与审计:
| 表 | 职责 |
|---|
audit_logs | 平台审计流水(操作者、动作、严重级、租户归属) |
compliance_reports | 按周期生成的合规报告载荷 |
insights_reports | AI 生成的用量洞察报告 |
anomaly_status | 去重后的异常检测状态及处 理进度 |
content_filter_rules | 全局内容过滤规则 |
security_settings | 安全配置键值存储 |
retention_history | 旧版保留报告快照(时间戳 + 报告数据) |
工作区与项目:
| 表 | 职责 |
|---|
projects | 已注册的项目工作区,租户隔离,含权限设置状态 |
user_projects | 按用户的项目汇总(会话、令牌、请求、时长) |
project_categories | 项目分类字典 |
prompt_templates | 可复用提示词模板;名称唯一以保证幂等播种(Issue #2577) |
告警与配额:
| 表 | 职责 |
|---|
alerts | 面向用户的告警收件箱,带操作链接 |
quota_usage | 按用户、按周期(及按工具)的配额消耗 |
quota_alerts | 配额阈值告警,带确认跟踪 |
notification_preferences | 按用户的通知渠道(邮件/推送/Webhook、严重级下限) |
协作与同步:
| 表 | 职责 |
|---|
teams | 团队及其设置 |
team_members | 团队成员及角色 |
shared_sessions | 会话分享链接,带权限与访问计数 |
knowledge_base | 团队知识库条目 |
annotations | 会话/消息批注,支持回复串嵌套 |
sync_events | 多源同步事件日志 |
平台设置:
| 表 | 职责 |
|---|
ai_agent_settings | AI agent 配置键值存储 |
model_gateway_config | LiteLLM 兼容模型网关单例配置 |
smtp_settings | SMTP 发信配置,密码加密存储 |
email_notification_logs | 邮件投递尝试及重试状态 |
常用表详表
以下表格是代码与文档中最常引用的表,逐列细节做了精简(共 46 张)。其余表(104 张中的另外
57 张)只由 schema/schema-postgres.sql 文档化——请直接查阅该文件。
用户与认证
users
核心用户表,支持基于角色的访问控制。
| 列 | 类型 | 说明 |
|---|
| id | integer PK | 自增 |
| username | varchar | UNIQUE, NOT NULL |
| password_hash | varchar | bcrypt(12 轮) |
| email | varchar | |
| is_admin | boolean | DEFAULT false |
| is_active | boolean | DEFAULT true |
| role | varchar | CHECK IN ('platform_admin','tenant_admin','manager','user','readonly') |
| daily_token_quota | bigint | 以 M 为单位存储(Issue #3018) |
| monthly_token_quota | bigint | 以 M 为单位存储(Issue #3018) |
| daily_request_quota | bigint | 按实际次数存储(Issue #3018) |
| monthly_request_quota | bigint | 按实际次数存储(Issue #3018) |
| tenant_id | integer | FK → tenants(id) ON DELETE SET NULL |
| must_change_password | boolean | DEFAULT false |
| system_account | text | 多用户模式下的 OS 用户名 |
| deleted_at | timestamp | 软删除 |
| avatar_url | varchar(500) | 头像 URL |
| auto_mapping_enabled | boolean | 工具账号自动映射开关 |
| tenant_version | integer | 租户迁移跟踪(Issue #2163) |
| tokens_valid_after | timestamp | 拒绝早于该时间戳签发的令牌(Issue #3379) |
索引:idx_users_active、idx_users_deleted、idx_users_email、idx_users_role、idx_users_tenant
sessions
基于令牌访问的认证会话。
| 列 | 类型 | 说明 |
|---|
| id | integer PK | |
| token | varchar | UNIQUE, NOT NULL |
| user_id | integer | FK → users(id) ON DELETE CASCADE |
| created_at | timestamp | |
| expires_at | timestamp | NOT NULL |
| is_active | boolean | DEFAULT true |
索引:idx_sessions_active、idx_sessions_expires、idx_sessions_token、idx_sessions_user_id
web_user_auth_sessions
Web UI 认证会话。
| 列 | 类型 | 说明 |
|---|
| id | integer PK | |
| user_id | integer | FK → users(id) |
| session_token | text | UNIQUE |
| created_at | timestamp | |
| expires_at | timestamp | |
将系统账号映射到平台用户的 AI 工具账号表。
| 列 | 类型 | 说明 |
|---|
| id | integer PK | |
| user_id | integer | FK → users(id) ON DELETE CASCADE |
| tool_account | varchar(255) | UNIQUE |
| tool_type | varchar(50) | |
| description | varchar(255) | |
| mapping_source | varchar | 映射创建方式(Issue #2761) |
| mapping_status | varchar | 映射生命周期状态 |
| verification_status | varchar | 账号映射核验(Issue #3273) |
| verified_at | timestamp | 核验时间 |
| tenant_id | integer | 租户维度 |
user_daily_stats