Saltar a contenido

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 Settings redacta las credenciales en repr()/str() para que un log accidental no las filtre (garantizado por tests/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.
  • .gitignore excluye .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.