Atlas, and who processes your data

Embed
Preview of the card
<a href="https://forumulate.com/guides/atlas"><img src="https://forumulate.com/guides/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/36aa4df0-1e95-4cef-8ae9-795169441345/pages/f3bf22bd-e879-4824-92ba-2374fd4a0322/social-card.svg?v=3e7ae33eec8b" alt="Atlas, and who processes your data" width="600" height="315"></a>

"Atlas" appears in our API, in a DNS record we ask you to create, and on the sign-in screen. It has never been explained in these guides. Here it is, including what it means for your own data-protection paperwork.

What Atlas is

Atlas is the identity service that handles sign-in for Forumulate. It runs at atlasauth.net, and our instance of it answers at auth.forumulate.com.

It is our own product, operated by the same company that operates Forumulate — not an unaffiliated vendor. It has its own name and its own domain because it serves more than one property.

Since 15 September 2026, Atlas is the only way a Forumulate staff member or organization member signs in. /login sends you to /atlas-signin; the browser then holds a short-lived signed session token and a rotating refresh token, and our API verifies that token locally against Atlas's public keys and maps its subject to your Forumulate user record.

Forumulate's own password, session, Google, passkey and TOTP code was removed when that cutover happened. The credential material now lives in Atlas.

What it holds

Data

Why

Email address, name

Identity.

Verified-email state

So we know whether to trust the address.

Password hash

Sign-in. Imported as hashes at the cutover, so nobody had to reset anything.

MFA factors and passkeys

Second factor.

Session and refresh tokens

Staying signed in.

Organization membership

Which Forumulate organizations you belong to.

SSO and SCIM connection metadata

Your enterprise identity provider's configuration.

Each Forumulate organization is mirrored as one Atlas organization. That is why enterprise SSO, SAML and SCIM directory provisioning are configured per organization and reach us through /orgs/{orgId}/atlas-enterprise/*, and why user lifecycle changes arrive at POST /atlas/webhooks.

What it does not hold

Your space readers. Readers are a separate pool. A reader signs in through the per-organization sign-in registry you configure — a password you hold, an OIDC provider of yours, a JWT from your own app — and holds a Forumulate session, not an Atlas one. See Reader sign-in.

So: your staff's credentials are in Atlas; your readers' are not.

For your data-protection records

Atlas is a subprocessor for every Forumulate account, because every staff sign-in goes through it. If you maintain an Art. 28 subprocessor list, it belongs on it, alongside the hosting, CDN, object storage, transactional email, payment and error-monitoring providers listed in our privacy policy.

If you need a signed DPA or the subprocessor list as a document, write to the address in https://forumulate.com/.well-known/security.txt.

"Your own Atlas" is a different thing

The reader sign-in registry offers a method called atlas_byo — "your own Atlas". That means you run an Atlas instance for your users and point us at it with your own frontend API URL and publishable key. It is the umbrella option for an organization that already runs an identity platform, and it has nothing to do with the Atlas instance that signs our staff in.

The two are easy to confuse because they share a name. The distinction:

Whose users

Whose instance

Forumulate's own sign-in

Your staff and org members

Ours

atlas_byo reader method

Your readers

Yours

The DNS record we ask you to create

Reader sign-in on your own domain asks for:

CNAME   readers.yourcompany.com   origin.atlasauth.net

atlasauth.net is Atlas. The record exists so a reader's sign-in happens on your hostname, which keeps the cookie first-party and stops a browser's third-party-cookie policy from breaking the flow. It is not a hand-off to an unrelated third party, and we should have said so on that page rather than calling it "our identity edge".

See Reader sign-in on your own domain.

The Atlas endpoints you will see in the API reference

Path

What it is for

POST /atlas/webhooks

Atlas tells us about a user lifecycle change. We receive it; you do not call it.

GET /orgs/{orgId}/atlas-enterprise/sso

Your organization's enterprise SSO connection.

POST /orgs/{orgId}/atlas-enterprise/sso/enforce

Require SSO for everyone in the organization.

GET /orgs/{orgId}/atlas-enterprise/scim

SCIM directory provisioning status.

POST /orgs/{orgId}/atlas-enterprise/scim/mint | /rotate | /disable

The SCIM bearer token's lifecycle.

POST /platform/atlas/sync

Ours, not yours. Not published in the spec.

In the API

Every operation below is also reachable from the other surfaces without a dedicated command. forumulate api <Operation> calls it from the CLI, the JavaScript SDK has a typed method for each one (the last column names it; the Python and Go clients are generated from the same spec), and an agent reaches the organization-scoped ones through the MCP call_api tool. Where a CLI command or MCP tool exists too, the last column names it. Operation names link to the API reference.

Atlas Enterprise

Operation

Request

What it does

Shortcuts

AtlasEnterprise_listSso

GET /orgs/{orgId}/atlas-enterprise/sso

Get the SSO in an organization (atlas enterprise)

client.sso.atlasEnterprise.listSso()

AtlasEnterprise_createSso

POST /orgs/{orgId}/atlas-enterprise/sso

Create the SSO in an organization

client.sso.atlasEnterprise.createSso()

AtlasEnterprise_setEnforced

PATCH /orgs/{orgId}/atlas-enterprise/sso/enforce

Update the enforce in an organization

client.sso.atlasEnterprise.setEnforced()

AtlasEnterprise_updateSso

PATCH /orgs/{orgId}/atlas-enterprise/sso/{id}

Update the SSO

client.sso.atlasEnterprise.updateSso()

AtlasEnterprise_deleteSso

DELETE /orgs/{orgId}/atlas-enterprise/sso/{id}

Delete the SSO

client.sso.atlasEnterprise.deleteSso()

AtlasEnterprise_getScim

GET /orgs/{orgId}/atlas-enterprise/scim

Get the SCIM in an organization

client.sso.atlasEnterprise.getScim()

AtlasEnterprise_mintScim

POST /orgs/{orgId}/atlas-enterprise/scim/mint

Create the mint in an organization

client.sso.atlasEnterprise.mintScim()

AtlasEnterprise_rotateScim

POST /orgs/{orgId}/atlas-enterprise/scim/rotate

Rotate the SCIM

client.sso.atlasEnterprise.rotateScim()

AtlasEnterprise_disableScim

POST /orgs/{orgId}/atlas-enterprise/scim/disable

Disable the SCIM

client.sso.atlasEnterprise.disableScim()

AtlasEnterprise_listOauthClients

GET /orgs/{orgId}/atlas-enterprise/oauth-clients

List OAuth clients in an organization

client.sso.atlasEnterprise.listOauthClients()

AtlasEnterprise_createOauthClient

POST /orgs/{orgId}/atlas-enterprise/oauth-clients

Create an OAuth client in an organization

client.sso.atlasEnterprise.createOauthClient()

AtlasEnterprise_rotateOauthClientSecret

POST /orgs/{orgId}/atlas-enterprise/oauth-clients/{id}/rotate-secret

Rotate secret in an organization (atlas enterprise OAuth clients)

client.sso.atlasEnterprise.rotateOauthClientSecret()

AtlasEnterprise_deleteOauthClient

DELETE /orgs/{orgId}/atlas-enterprise/oauth-clients/{id}

Delete the OAuth client

client.sso.atlasEnterprise.deleteOauthClient()

The Forumulate teamUpdated