Seguridad¶
Credenciales¶
- Las credenciales de Odoo se leen del entorno (
ODOO_URL,ODOO_DB,ODOO_LOGIN,ODOO_API_KEY/ODOO_PASSWORD) o, en modo HTTP multi-tenant, de cabeceras por petición (X-Odoo-Url/Db/Login+Bearer). - Los secretos nunca se persisten en disco por este proyecto y nunca se
escriben en logs. La clave de caché del tenant es
url|db|login— el secreto no forma parte de ella. - El objeto
Settingsredacta las credenciales enrepr()/str()para que un log accidental no las filtre (garantizado portests/test_security_redaction.py). - Prefiere API keys (Odoo ≥ 14) sobre contraseñas. Usa usuarios de Odoo de mínimo privilegio.
Usuario dedicado para el agente
Crea un usuario de Odoo específico para el agente (p. ej. ai-bot@tuempresa.com)
con solo los permisos que necesita. Genera la API key desde ese usuario y
rótala periódicamente. Así acotas el radio de daño si la key se filtra.
Modelo de datos: nada sale hacia Anthropic¶
El servidor MCP corre en tu infraestructura y habla directamente con tu instancia Odoo. Los datos de tu empresa no pasan por servidores de Transgenia ni de Anthropic. El plugin es únicamente el código que ejecutas.
Chequeos automáticos (CI)¶
El flujo .github/workflows/security.yml corre en cada push/PR:
- gitleaks — escanea historia y diffs en busca de secretos commiteados.
- leak-guard — busca marcadores internos/de tenant prohibidos (datos de clientes, hosts de infraestructura, identificadores fiscales, credenciales hardcodeadas) y hace fallar el build si aparecen. El repositorio es vendor-neutral: solo contiene el tooling genérico más la marca/autoría pública y la oferta de servicios.
.gitignoreexcluye.env,*.env, entornos virtuales y salida de build para que las credenciales locales no se commiteen por accidente.
Transporte¶
- Usa URLs de Odoo con HTTPS. Tanto XML-RPC como JSON-RPC corren sobre la URL que proporciones.
- El servidor registra logs solo en stderr; stdout está reservado al canal MCP.
Reportar una vulnerabilidad¶
Escribe a dev@transgenia.org con detalles y pasos de reproducción. Por favor no abras issues públicos para reportes de seguridad. Buscamos acusar recibo en un plazo de 5 días hábiles.