82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
# 运行环境与数据路径(account-manager)
|
||
|
||
## 数据落盘位置
|
||
|
||
`get_data_root()` / `get_user_id()` 来自 **`scripts/jiangchang_skill_core/runtime_env.py`**(兼容 **`JIANGCHANG_*` / `CLAW_*` 别名**);`scripts/util/runtime_paths.py` 在此基础上拼接技能子目录。
|
||
|
||
- **数据根目录**:默认读取宿主注入变量;开发模式下未注入时可能落到 Windows `D:\jiangchang-data` 等(详见 runtime_env 实现)。
|
||
- **用户 / 工作空间 id**:默认 `_anon`(以实际注入为准)。
|
||
- **技能数据目录**:`{数据根}/{用户id}/account-manager/`
|
||
- **SQLite**:`account-manager.db`
|
||
- **Master Key**:`master.key`(仅当执行过 `account init-master-key` 且未仅用环境变量场景)
|
||
- **Profile**:`profiles/{domain}/{platform_key}/{safe_label}[_{login_id_suffix}]/`
|
||
- **日志**:与其它技能共用 `{数据根}/{用户id}/logs/jiangchang.log`
|
||
|
||
## 调试:为什么「list 没数据」
|
||
|
||
- 若终端与网关注入的数据根 / 用户 id 不一致,会写到**不同目录**。
|
||
- 设置 **`JIANGCHANG_ACCOUNT_DEBUG_PATHS=1`**(或宿主等价开关)后,CLI 会在 **stderr** 打印实际路径。
|
||
|
||
## 本地 CLI 默认值
|
||
|
||
各技能 `main.py` 调用 `apply_cli_local_defaults()`:
|
||
|
||
- `CLI_LOCAL_DEV_ENABLED = True` 时,未设置环境变量则注入平台默认值。
|
||
- 发版前改为 `False` 或依赖宿主注入。
|
||
|
||
## Secret 存储
|
||
|
||
| 方式 | 说明 | 适用场景 |
|
||
|---|---|---|
|
||
| `none` | 不存 secret | 浏览器 profile 登录态 |
|
||
| `env` | SQLite 存变量名,运行时从 `os.environ` 读取 | 轻量测试 |
|
||
| `windows_credential` | secret 存 Windows Credential Manager | Windows 本地部署 |
|
||
| `local_encrypted` | Fernet 密文存 SQLite(`secret_ciphertext`),密钥来自 master key | RPA 密码落地;需先 `account init-master-key` |
|
||
|
||
- **禁止**把明文写入日志。
|
||
- `credential pick --reveal` / `credential resolve --reveal` 仍会输出明文 secret——仅限受控环境。
|
||
|
||
## Master Key
|
||
|
||
| 变量 | 作用 |
|
||
|---|---|
|
||
| `ACCOUNT_MANAGER_MASTER_KEY` | Fernet key(典型为 url-safe Base64 **44** 字符);**优先级高于** `master.key` 文件 |
|
||
|
||
**加载优先级(解密路径)**:环境变量 → `master.key` 文件 → `ERR_MASTER_KEY_MISSING`。
|
||
|
||
**安全建议**
|
||
|
||
- 生产环境优先 **环境变量 / Secret Manager** 注入,不在磁盘留 `master.key`。
|
||
- 桌面环境可使用文件(默认尽力写入私有权限)。
|
||
- 备份 master key 至密码管理器;**丢失将导致所有 `local_encrypted` 凭据不可解密**。
|
||
|
||
详见 [`CLI.md`](CLI.md)(`init-master-key`)、[`ERRORS.md`](ERRORS.md)。
|
||
|
||
## 日志
|
||
|
||
| 变量 | 作用 |
|
||
|---|---|
|
||
| `JIANGCHANG_LOG_LEVEL` | 日志级别,默认 `INFO` |
|
||
| `JIANGCHANG_LOG_TO_STDERR` | 设为 `1`/`true` 等时,WARNING 及以上同步 stderr |
|
||
| `JIANGCHANG_LOG_FILE` | 覆盖主日志文件绝对路径 |
|
||
| `JIANGCHANG_LOG_BACKUP_COUNT` | 轮转保留份数,默认 `30` |
|
||
| `JIANGCHANG_TRACE_ID` | 可选;跨技能子进程由父进程注入 |
|
||
|
||
## 浏览器(`account open` / rpa_helpers)
|
||
|
||
- 本机需安装 Chrome 或 Edge。
|
||
- Python 侧依赖 **`playwright`**(匠厂共享 runtime 已内置)。
|
||
- 使用 **channel 模式**(`chrome` / `msedge`),**不下载 Chromium**。
|
||
- **不要执行** `playwright install chromium`。
|
||
|
||
### 关键浏览器参数(摘录)
|
||
|
||
- `headless=False`
|
||
- `no_viewport=True`
|
||
- `args` 包含 `--start-maximized`
|
||
- stealth 是否启用由 `OPENCLAW_PLAYWRIGHT_STEALTH` 控制(见 `launch_browser_with_profile`)
|
||
|
||
### rpa_helpers
|
||
|
||
登录编排封装见 [`RPA_HELPERS.md`](RPA_HELPERS.md)。
|