核心用法
frappecli 是面向 Frappe Framework 及 ERPNext 的命令行管理工具,通过 REST API 与远端站点交互。主要能力覆盖:
1. 站点管理:列举 Doctype、查看模块、获取元数据
2. 文档 CRUD:支持 list/get/create/update/delete 完整生命周期,支持过滤、分页、字段选择
3. 文件管理:上传(私有/公开)、下载、关联文档的文件列表
4. 报表引擎:直接运行系统报表,支持 JSON/CSV 导出
5. RPC 调用:调用 Frappe 内置或自定义方法,支持参数传递
6. 多站点切换:配置文件管理多个环境(prod/staging),一键切换
显著优点
- 运维友好:无需登录 Web 后台,脚本化批量操作
- 输出灵活:支持 table/json/csv 三种格式,便于与
jq/awk管道集成 - 安全设计:API Key/Secret 认证,不依赖 Cookie Session
- 跨平台:Homebrew 一键安装,源码安装依赖轻量(uv)
潜在缺点/局限性
- 功能边界:仅限已暴露的 REST API 能力,无法执行服务器本地命令(如
bench操作) - 权限依赖:受 Frappe 权限系统严格约束,某些 Doctype 可能不可见
- 网络依赖:纯 API 工具,离线环境无法使用
- 生态成熟度:GitHub 星标较低(~早期项目),长期维护待观察
适合人群
- ERPNext 实施顾问/开发者:快速验证数据、调试 API
- DevOps 工程师:CI/CD 流水线中自动化数据迁移或报表生成
- 系统管理员:批量导入导出、跨站点数据同步
常规风险
| 风险项 | 说明 |
|--------|------|
| 凭据泄露 | `config.yaml` 包含 API Secret,需确保 `~/.config/frappecli/` 权限 600 |
| 误删数据 | `doc delete` 不可逆,生产环境建议先 `--dry-run` 或备份 |
| 传输安全 | 务必使用 HTTPS 站点,避免中间人窃取 Token |
| 权限放大 | API Key 若绑定高权限用户,泄露风险等同账号盗用 |