安全¶
凭据¶
- Odoo 凭据从 环境 中读取(
ODOO_URL、ODOO_DB、ODOO_LOGIN、ODOO_API_KEY/ODOO_PASSWORD),或在 HTTP 多租户模式下, 从每次请求的请求头中读取(X-Odoo-Url/Db/Login+Bearer)。 - 本项目 绝不会将密钥持久化到磁盘,也 绝不会将其写入日志。
租户的缓存键是
url|db|login—— 密钥不是其中的一部分。 Settings对象会 在repr()/str()中隐去凭据,以便一次意外的日志 记录不会将其泄露(由tests/test_security_redaction.py保证)。- 优先使用 API keys(Odoo ≥ 14)而非密码。使用 最小权限 的 Odoo 用户。
为智能体使用专用用户
为智能体创建一个专门的 Odoo 用户(例如 ai-bot@tuempresa.com),
只授予它所需的权限。从该用户处生成 API key,并定期轮换。
这样,即使 key 被泄露,你也能限制其影响范围。
数据模型:没有任何内容会流向 Anthropic¶
MCP 服务器运行在你的基础设施上,并 直接 与你的 Odoo 实例通信。 你公司的数据不会经过 Transgenia 或 Anthropic 的服务器。插件仅仅是你所运行的 代码而已。
自动检查(CI)¶
.github/workflows/security.yml 流程会在每次 push/PR 时运行:
- gitleaks — 扫描历史记录和 diff,查找被提交的密钥。
- leak-guard — 查找被禁止的内部/租户标记(客户数据、 基础设施主机、税务标识符、硬编码的凭据),如果它们出现则让构建失败。 该仓库是 vendor-neutral(供应商中立)的:只包含通用工具, 外加公开的品牌/署名以及服务报价。
.gitignore会排除.env、*.env、虚拟环境和构建输出, 以免本地凭据被意外提交。
传输¶
- 使用带 HTTPS 的 Odoo URL。XML-RPC 和 JSON-RPC 都运行在你所提供的 URL 上。
- 服务器仅在 stderr 上记录日志;stdout 保留给 MCP 通道。
报告漏洞¶
请写信至 dev@transgenia.org,附上详情和复现 步骤。请 不要 为安全报告开启公开 issue。我们力求在 5 个工作日内确认收悉。