Skip to content

Security and data ​

MicroAuth is a control plane, not a proxy. Your customers call your API directly, and MicroAuth only sees account data, configuration and the usage counts your integration reports. It never sees your request bodies, headers, query parameters or responses.

What MicroAuth receives ​

From your API, through the SDK or the HTTP API:

  • SHA-256 hashes of the keys your customers send, never the keys themselves.
  • Usage items: the key ID, the status code, a count, the hour it happened, the usage policy and an idempotency key.
  • The SDK's User-Agent, so the dashboard can show which version you run.

From people: names, email addresses and the settings they choose. Card details go to Stripe and never reach MicroAuth.

Credentials ​

CredentialHow it is stored
Customer API keys (map_)SHA-256 hash and a short prefix for display. Shown once
Workspace API keys (mak_)SHA-256 hash and a short prefix. Shown once
SDK secret keys (mas_)Encrypted at rest, so editors can reveal them on the Connect tab
Passwordsbcrypt hashes
Two step secretsEncrypted at rest. Each code is accepted once
Recovery codesHashes. Each code works once
StripeOnly your connected account's ID. MicroAuth never holds your Stripe keys

Rotating the SDK secret. Admins rotate it under Settings, SDK secret key, and choose how long the old one keeps working, from 0 to 168 hours, 24 by default. Deploy the new secret within that window. A leaked secret can read your customers' key hashes and limits and report usage, so rotate it with a grace of 0 if you think it was exposed.

Where checks happen ​

The SDK runs inside your API, so its checks are exactly as strong as your deployment. That is the point: there is no hop to MicroAuth on the request path. It also means MicroAuth trusts the usage your server reports. Keep the SDK secret on the server, never in a browser or mobile app.

Customers can't get around the checks without getting around your own code. Rate limits are exact per process, and exact across processes once you add Redis.

Isolation ​

  • Everyone in the dashboard acts inside a workspace with a role, and every request is checked against it.
  • Each portal has its own sessions, so signing in to one API's portal means nothing on another.
  • On a portal, keys, usage, billing and teammates belong to one customer team, and each member's role decides what they can see and change.
  • Requests that change data are checked against the site they came from, which blocks cross site request forgery.
  • All traffic uses TLS, including portals on custom domains.

Billing integrity ​

  • Every balance change is a ledger entry with a unique reference, so retried webhooks and repeated API calls never credit or charge twice.
  • Usage reports are idempotent, and each request is charged at the prices that applied when it was served.
  • Stripe webhooks are verified against their signature and stored before they are processed. Subscriptions and payments are read back from Stripe before they are applied, so events that arrive out of order can't roll anything back.
  • Every night, each customer's balance is checked against the sum of their ledger, and any difference is flagged to the MicroAuth team.

When MicroAuth is unreachable ​

Known keys keep working from the cached snapshot, and usage waits in the SDK's queue until MicroAuth is back. With the default settings, the SDK serves known keys from a stale snapshot for up to 15 minutes before it answers 503. New keys can't be checked until MicroAuth is reachable again. See the FastAPI SDK guide for the settings.

Retention ​

DataKept for
Processed Stripe events90 days
Usage receipts, used to spot duplicate reportsAbout 45 days
Hourly usage and the activity log13 months
Expired sessions, sign in codes and invitesDeleted shortly after they expire
Ledger entries and payment recordsAs long as the account exists
Database backups14 days, taken daily and checked after each run

The privacy policy explains what we collect and how to ask for deletion.

Reporting a vulnerability ​

Email security@microauth.com. Please leave working credentials, your customers' data and unrelated personal data out of the first message. Security reports are read first.

MicroAuth is a product of Zyref, LLC.