Security Policy

Reporting a Vulnerability

Email: security@cddi.io

We will acknowledge receipt within 48 hours and aim to patch critical issues within 7 days.

Architecture

  • Docker container runs inside customer network
  • Database access is read-only via SSH + sqlplus
  • Passwords hashed with bcrypt, credentials encrypted with Fernet
  • Only outbound call is to the LLM API provider chosen by the user
  • Credential Handling

  • User passwords: bcrypt hashed, stored in data/users.json
  • Integration credentials: Fernet encrypted, per-user
  • SSH keys: mounted read-only from host
  • Secret key: from CDDI_SECRET_KEY env var or auto-generated .secret_key file (mode 0600)
  • Production Deployment Checklist

    TLS Termination

    Interpretos Local serves HTTP on port 5000. In production, place it behind a TLS-terminating reverse proxy (Nginx, Caddy, HAProxy, or your organization's load balancer). Do not expose port 5000 directly.

    Example with Caddy (automatic HTTPS):

    
    interpretos.yourcompany.com {
        reverse_proxy localhost:5000
    }
    

    Secret Key Management

    By default, a Fernet encryption key is auto-generated and stored in data/.secret_key. For production, externalize it to prevent co-location with the encrypted data it protects:

    
    export CDDI_SECRET_KEY=$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
    

    Pass it to the container via -e CDDI_SECRET_KEY=... or your secrets manager (Vault, AWS Secrets Manager, etc.). Back it up — losing this key means stored credentials cannot be decrypted.

    AI Provider Data Residency

    When using cloud AI providers (Google Gemini, OpenAI, Anthropic), query context — including database results — is sent to that provider's API. For air-gapped deployments, select Custom / Self-hosted during setup and point to a local model server (Ollama, vLLM, etc.).

    If You Find Exposed Credentials

  • Do NOT open a public issue
  • Email security@cddi.io immediately
  • Rotate any affected credentials