Security
How Conduix stores secrets, hashes credentials, and protects your data in flight.
Secrets at rest
The encryption master key (CONDUIX_SECRETS_KEY) lives in the environment, not the database. Without it, encrypted columns are unrecoverable — a defense-in-depth design that means a database leak alone doesn't leak secrets.
Authentication security
- JWT (HS256) signed with a 256-bit secret; 30-day TTL. Re-validated against current org membership on every request.
- API keys are hashed with SHA-256; only a prefix preview is stored for display.
- TOTP 2FA optional for customers, mandatory for platform operators.
- Recovery codes are bcrypt-hashed and single-use.
- Failed-login UX returns a generic
invalid_credentials— no enumeration of which accounts exist.
Bot protection
Cloudflare Turnstile gates the public auth surfaces: /login, /signup, /forgot-password, and the admin login. Tokens are verified server-side; failures fail closed.
Transport security
- Production deploys terminate TLS at Cloudflare or your load balancer; the API itself runs on private network behind it.
- HSTS, X-Frame-Options, X-Content-Type-Options, CORP, COOP all set via Helmet.
- Body size limit: 10 MB.
- Default request timeout: 30 s (120 s for reasoning models).
PII redaction
Toggleable per organization at /dashboard/settings. When enabled, Conduix scrubs the following patterns before logging requests and before sending to the upstream provider:
- Email addresses
- US Social Security Numbers
- Phone numbers (E.164 + US formats)
- Credit-card numbers (with Luhn check)
Per-key overrides allow tightening (e.g. internal-tools key with redaction off, customer-facing key with it on). See Governance.
Audit log
Every mutating action (login, key creation, billing, policy change, member changes, platform-settings updates, lead status changes) lands in an append-only audit_logs table with org id, user id, IP, user agent, and request id. View at /dashboard/audit or programmatically via GET /api/audit.
Compliance posture
- Append-only audit log suitable for SOC 2 Type II evidence.
- PII redaction at the org level.
- Data residency at the request level (US / EU / APAC).
- NET-30 invoice billing mode for enterprise + PO support.
- Hard-delete of an org wipes the full data graph — supports GDPR right-to-be-forgotten.
- DPA + sub-processor list on request — email legal@conduix.ai.
Reporting a vulnerability
Email security@conduix.ai with reproducible steps. We commit to acknowledging within 24 hours and a fix or status update within 7 days. Do not disclose publicly until we've confirmed the fix is shipped.