Security

Last updated: July 2026

Zephex is a security-sensitive service (API keys unlock MCP tool access and usage). This page explains the practical controls we use to protect accounts and data.

Database and authentication

  • Supabase Postgresstores accounts, hashed API keys, usage metadata, and billing links. Row-level security (RLS) isolates each customer's rows.
  • Supabase Auth handles dashboard login (email/password, OAuth, magic links). MFA secrets are encrypted with AES-256-GCM before storage.
  • API keys are HMAC-SHA256 hashed with a per-key salt at creation. Plaintext is shown once, then discarded. MCP requests validate the hash on every call.
  • Live status for database and authentication: zephex.dev/status.

Encryption

  • In transit: TLS/HTTPS for dashboard and API traffic.
  • At rest: sensitive fields are encrypted where appropriate, and secrets are not stored in plaintext.

API key handling

  • API keys are validated by secure hashing on the server side.
  • We never store plaintext API keys in the database.
  • You can revoke or rotate keys at any time.

Access controls

  • Role-based access for administrative actions.
  • Database row-level security to isolate customer data.
  • Scoped authorization for sensitive endpoints.

Monitoring and abuse prevention

  • Rate limiting per API key/tier to reduce abuse and prevent runaway usage.
  • Security logging for authentication events and suspicious activity.
  • Alerting for high-risk patterns (e.g., repeated failed logins).

Reporting vulnerabilities

If you believe you found a security issue, email support@zephex.dev. Please include steps to reproduce and any relevant logs. Do not publicly disclose until we’ve had a chance to investigate.