DataMETL Trust & Security
Honest notes on where your data goes. This page mirrors what the product does today — no SSO/RBAC/Team claims beyond what ships.
Database connection secrets (password, optional SSL CA PEM) stay on your machine and the Docker network you run. They are never sent to SandboxCSP or any DataMETL vendor cloud.
Credentials are encrypted at rest with Fernet (ENCRYPTION_KEY in .env) before storage in the app metadata database.
The API never returns passwords or CA PEMs; edit forms only get redacted connection metadata (has_sslrootcert, host, port, user, etc.).
Mel (in-app chat) uses your Anthropic API key (stored encrypted at rest, same Fernet vault).
When Mel calls live DB tools, Anthropic receives:
- Your chat prompts and Mel's system instructions
- Tool results only — schema listings, describe_table column metadata, and query row samples capped at TOOL_ROW_CAP (200 rows)
Not sent to the LLM:
- Database passwords / connection secrets
- Your Fernet ENCRYPTION_KEY
- Stripe or license signing keys
Tool execution decrypts credentials locally inside the backend, runs read-only SQL on your network, then returns capped JSON results to the model. Without an active MCP connection, Mel is advisory only (no live DB access).
MCP tools are read-only
Live Mel tools (list_tables, describe_table, run_sql) always use read-only execution — writes and DDL are rejected. Results inherit the 200-row cap and a 30s tool timeout.
Settings → Mel tool approval modes. Community (no license key): Mel is allowed, but approval is forced to always.
| Mode | Behavior |
|---|---|
| run_sql_only (Pro default) | run_sql waits for Approve/Deny in chat; list/describe may auto-run |
| always | Every Mel DB tool needs Approve |
| auto | No approval prompts (still read-only) |
Every Mel tool proposal is recorded with redacted args, decision, and outcome. Browse recent activity from Runs / Mel audit surfaces.
Self-hosted Pro uses offline-verifiable Ed25519 signed keys (dmtl1.…). Verification needs no network call to SandboxCSP.
Stripe secrets belong only on a vendor issuer machine. Normal Community / Pro installs paste a key in Settings — they do not need Stripe.
Team is an entitlement stub only; multi-user SSO/RBAC is not shipped in-app (Helm can put oauth2-proxy/Keycloak at the edge separately).
Community vs Pro
| Feature | Community | Pro |
|---|---|---|
| Postgres migrate / introspect / compare / verify | Yes | Yes |
| Mel chat | Yes | Yes |
| Mel tool approval modes | Forced always | run_sql_only / always / auto |
| MySQL + SQL Server connectors | No | Yes |
| License key | None | Signed dmtl1.… (Ed25519) |
| Stripe on your install | Not required | Not required |
What we do not claim (yet)
- Built-in multi-user accounts, viewer/operator RBAC, or Team SSO as a product feature
- That query row contents never leave your network when Mel tools run — samples do go to Anthropic as tool results (capped). Credentials do not.
- A live (non-test) Stripe Payment Link unless you configure one; the default sandbox link is test-mode.