Security model

Maester Cloud holds your security evidence, so its own security model is deliberately simple to audit.

Dedicated, isolated environments

Every hosted customer gets their own Azure resource group: their own portal, their own API, their own storage account, in the region they chose. There is no shared database and no multi-tenant application tier. Provisioning runs in a separate control plane under its own identity.

Identity: yours, not ours

  • Portal sign-in uses an Entra application registered in your tenant, created by you during setup. It is a public client (PKCE) with user assignment required, so only people you assign can authenticate. No client secret exists. Your Conditional Access policies apply, because it's your app.
  • The API trusts only your tenant. Every portal request carries a token your tenant issued for your app; the API validates issuer, audience, signature, and tenant on each call. Report uploads are validated the same way: your environment rejects tokens from any other tenant.
  • Workloads use managed identities. Drift-mail sending uses workload identity federation against your mailbox app. Across the entire product there are zero client secrets, so nothing to store, rotate, or leak.

Data handling

  • What's stored: your raw report files and the parsed per-test results, in your region, in your environment's storage account.
  • Artifact access: report downloads stream through the authenticated API. We deliberately do not mint shareable storage URLs. A link that outlives the click is a bearer token, and we rejected that design.
  • Billing data stays with Polar (our merchant of record). Our systems keep only your Polar customer id, email, name, plan, and subscription status: no addresses, no payment details.
  • The portal page itself loads before sign-in (standard for single-page apps); it contains no data. Every piece of content requires a validated token from your tenant.

Things you control

  • Who can sign in (app assignment in your Entra tenant).
  • Who can upload (token issuance in your tenant; the upload pipeline label tells you which pipeline sent each run).
  • Admin consent for the two delegated permissions (openid, User.ReadBasic.All). Review them: that's the entire surface.