Las lecturas pasan por un servidor MCP que consulta PostgreSQL con un pool de conexiones asíncronas y responde en menos de 100 milisegundos. Sus 9 herramientas validan el rol de quien pregunta (cliente, proveedora o administrador) y solo devuelven lo que ese rol puede ver.
Las escrituras van por otro camino: la API de Django, con validación de datos, señales y registro de auditoría. La IA no puede escribir directo en la base de datos.
- Control por rol en cada consulta. El permiso se evalúa primero, siempre; un cliente jamás ve datos de otro.
- SQL 100% parametrizado. Ninguna consulta interpola valores: la inyección SQL no tiene por dónde entrar.
- Límite de velocidad. Máximo 100 solicitudes por minuto por usuario (token bucket), con ráfagas controladas.
- Datos sensibles cifrados. NIT y credenciales de terceros se guardan cifrados con Fernet, no en texto plano.
- Webhooks verificados. Cada mensaje entrante valida su secreto en tiempo constante; lo que no coincide recibe 403.
- Servidor cerrado por defecto. Firewall que solo expone la web; base de datos y servicios internos nunca salen a internet.