Files

5.5 KiB
Raw Permalink Blame History

数据库表结构account-manager v2

数据库路径

{JIANGCHANG_DATA_ROOT}/{JIANGCHANG_USER_ID}/account-manager/account-manager.db
(或宿主映射的 CLAW_DATA_ROOT / CLAW_USER_ID,解析细节见 RUNTIME.md。)

Schema 版本

  • PRAGMA user_version = 2
  • _schema_meta.schema_version = "2.1"(字符串;迁移完成后取值)

启动时 ensure_schema 自动执行 migrate_v1_to_v2migrate_v2_to_v2_1,幂等。


1. platforms — 平台注册表

字段 类型 说明
platform_key TEXT PK 平台唯一键(maersk / deepseek / sohu …)
display_name TEXT NOT NULL 展示名
domain TEXT NOT NULL logistics / llm / content / dev / sim / …(以代码注册为准)
provider_code TEXT 供应商代码
default_url TEXT 默认入口 URL
aliases_json TEXT 别名 JSON 数组
capabilities_json TEXT {"web": bool, "api_key": bool, "rpa": bool}
enabled INTEGER 是否启用1/0
default_auth_strategy TEXT 新账号默认 auth_strategy;可由迁移回填
created_at INTEGER Unix 秒 UTC
updated_at INTEGER Unix 秒 UTC

索引: idx_platforms_domainidx_platforms_provider_code


2. accounts — 账号身份

字段 类型 说明
id INTEGER PK AUTO 主键
platform_key TEXT NOT NULL 对应 platforms.platform_key
account_label TEXT NOT NULL 人可读名称
login_id TEXT 登录标识(可空)
login_id_type TEXT email / username / phone / …
tenant_id TEXT 租户,可空
environment TEXT simulator / staging / production / …
role TEXT booking / tracking / api / …
provider_code TEXT 冗余供应商码
profile_dir TEXT Playwright profile 目录
url TEXT 账号入口 URL
status TEXT active / disabled / …
session_status TEXT unknown / likely_valid / …
last_used_at INTEGER Unix 秒
last_login_check_at INTEGER Unix 秒
last_error_code TEXT 文本错误码
last_error_message TEXT 错误说明
extra_json TEXT 扩展 JSON可含 logged_in_url_pattern / logged_in_selector 等 hook
auth_strategy TEXT NOT NULL 九种策略之一(见 PLATFORMS.md / db/auth_strategy.py
session_persistent INTEGER NOT NULL DEFAULT 1 0/1
device_fingerprint TEXT device_bound
created_at INTEGER Unix 秒 UTC
updated_at INTEGER Unix 秒 UTC

索引: idx_accounts_platformidx_accounts_pick_webidx_accounts_provideridx_accounts_status


3. credentials — 凭据API Key / Token / Password …)

字段 类型 说明
id INTEGER PK AUTO 主键
account_id INTEGER 关联 accounts.id,可空(历史平台级 Key
platform_key TEXT NOT NULL 平台键
credential_label TEXT NOT NULL 展示名称
credential_type TEXT NOT NULL api_key / password / …
secret_storage TEXT NOT NULL none / env / windows_credential / local_encrypted
secret_ref TEXT env 变量名 / windows_credential target其它后端可为空
secret_mask TEXT 打码展示
secret_ciphertext TEXT local_encrypted 专用 Fernet tokenv2.1 增加)
expires_at INTEGER Unix 秒
status TEXT active / disabled / …
last_used_at INTEGER Unix 秒
extra_json TEXT JSON
created_at INTEGER Unix 秒
updated_at INTEGER Unix 秒

原则:不把 明文 secret 写入 SQLitelocal_encrypted 仅存 密文。外部后端env / Windows CM仍在运行时解析。

索引: idx_credentials_platform_typeidx_credentials_statusidx_credentials_accountmigrate_v1_to_v2CREATE INDEX IF NOT EXISTS


4. account_leases — RPA 并发锁

字段 类型 说明
id INTEGER PK AUTO 主键
account_id INTEGER NOT NULL accounts.id
lease_token TEXT UNIQUE 随机 token
holder TEXT NOT NULL 持有者标识
purpose TEXT 用途
expires_at INTEGER NOT NULL Unix 秒 UTC
heartbeat_at INTEGER Unix 秒
released_at INTEGER Unix 秒
status TEXT active / released / expired
created_at INTEGER Unix 秒
updated_at INTEGER Unix 秒

索引: idx_leases_account_statusidx_leases_tokenidx_leases_expires


5. _schema_meta — Schema 元数据

字段 类型 说明
key TEXT PRIMARY KEY 键名
value TEXT NOT NULL

已知键

  • schema_version — 逻辑 schema 版本字符串:migrate_v1_to_v2 完成后写入 "2"migrate_v2_to_v2_1 完成后更新为 "2.1"

Profile 文件布局

{DATA_ROOT}/{USER_ID}/account-manager/
├── account-manager.db
├── master.key                 # 若执行过 init-master-key也可用环境变量代替
└── profiles/
    └── {domain}/
        └── {platform_key}/
            └── {safe_label}[_{login_id_suffix}]/

删除账号时实现会尽量同步删除对应目录。

与 JSON 输出的对应关系

CLI JSON 字段与上表对应;若有封装层(_ok_json),详见 CLI.md / INTEGRATION.md