凭证目录
cr4sync 把所有凭证、状态、日志全部约定在工作目录下的相对路径里,不写用户 home 目录。
.
├── cr4sync.toml # 主配置
├── credential/ # ☆ 全部凭证 + 状态在这里
│ ├── token.json # CLI: cloudreve access_token + refresh_token (login 后落盘)
│ ├── sources/
│ │ └── baidu.json # CLI: 百度 OAuth refresh + access (login --baidu 后落盘)
│ ├── migrate.db # CLI: migrate 子命令任务状态机 (sqlite)
│ └── server.db # Server: 全部 server 状态 (sqlite, feature=server 才有)
├── data/ # sync-core 的 sqlite (sync 子命令)
│ └── sync_core/datas/.sync_db.sqlite3
└── logs/
├── sync_core.log # CLI + sync-core 主日志
└── server.log # Server HTTP 访问 + 审计额外 layer (feature=server)
强烈建议把整个 credential/ 加入 .gitignore 并对 server.db 设权限 0600:
chmod 0600 ./credential/server.db
chmod 0700 ./credential
凭证文件用途
| 文件 | 创建者 | 内容 | 备份策略 |
|---|---|---|---|
credential/token.json | cr4sync login (CLI) | Cloudreve access + refresh token | 删了重 login 即可 |
credential/sources/baidu.json | cr4sync login --baidu (CLI) | 百度 OAuth refresh + access | 删了重 login –baidu |
credential/migrate.db | cr4sync mgr 自动建 (CLI) | migrate 任务状态机 | 删了下次跑会从零扫,已 completed 任务不会重传 |
credential/server.db | cr4sync serve 自动建 (Server) | 用户 / 百度凭证 / storage / migrate / audit 全部状态 | 唯一备份点,百度 token 加密存储 |
CLI ↔ Server 隔离不变量
cr4sync 有一条 P0 不变量:
server 路径绝不读取
credential/token.json/credential/sources/baidu.json/credential/migrate.db。
CLI 路径绝不读取credential/server.db。
这条不变量由 server::token_isolation_guard 静态 grep 测试守护,server 子树源码不会出现 prepare_session / prepare_provider / token_store::default_path / credential/token.json 等 CLI 入口。违反或回归 cargo test --features server 单元测试直接失败, 该约束用于维护管理员同时需要使用CLI和Server能力时的隔离能力; 不会泄露管理员信息凭证;
删除用户凭证
CLI
rm -rf ./credential/
rm -rf ./data/
下次启动从零。
Server
通过 admin 端点级联清理:
curl -H "X-CR4-Authorization: Bearer $ADMIN_TOKEN" \
-X DELETE \
"http://127.0.0.1:5731/api/v4/cr4sync/admin/users/u-other"
注意:这只清 cr4sync server.db 中该用户的痕迹——cloudreve 账号本身不受影响,已上传到 cloudreve 的文件不会被删除。cr4sync 是迁移工具,不是 cloudreve 管理工具。