Organizations, users, roles, invitations, SSO, service accounts, and email-domain control.
MoleSignal is multi-tenant. Every stream, dashboard, alert, and saved view belongs to an
organization, and what each person can do inside an org is governed by their role. A single
user can belong to several orgs with a different role in each.
The first user to sign up creates an org and becomes its Owner. From there you can create more
orgs, switch between them, and manage members.
Action
Endpoint
Who
List your orgs
GET /api/v1/orgs
Any member
Create an org
POST /api/v1/orgs
Org admin
Rename an org
PATCH /api/v1/orgs/{id}
Org admin
Switch active org
POST /api/v1/orgs/{id}/select
Member
Add / change a member
POST /api/v1/orgs/{id}/members
Org admin
Remove a member
DELETE /api/v1/orgs/{id}/members/{user_id}
Org admin
Delete an org
DELETE /api/v1/orgs/{id}
Org admin
Switching orgs issues a new JWT carrying your role for that org. You can’t delete the org
you’re currently in, and every user must keep at least one org.
You add people two ways: an admin invites them, or they sign up themselves (when self-service
signup is enabled for the instance).
Invitations — the admin chooses the email and role; the invitee joins on first login.
Self-service signup — controlled by two instance settings: whether signup is open at all, and
whether new accounts need approval. When approval is required, a new account is pending until
an Owner or Admin approves it.
Admins can list, approve, disable, and delete users. A user’s email is their identity and can’t be
changed after the account is created.
Group members into teams so you can target them as a unit — for example, as the recipients of an
alert escalation. Manage teams under settings, or over the API:
You can resend (POST /api/v1/invitations/{id}/resend) or revoke
(POST /api/v1/invitations/{id}/revoke) a pending invitation. Invited addresses must pass the
org’s email-domain allowlist.
Matching includes subdomains — [email protected] is allowed by example.com. Remove a domain with
DELETE /api/v1/orgs/email-domains/{domain}. The allowlist is enforced on both invitations and
self-service / SSO sign-up.
The token’s secret is shown once, at creation. Store it securely — you can’t retrieve it later,
only revoke it (DELETE /api/v1/auth/tokens/{id}).
Use a token exactly like a login JWT — Authorization: Bearer ms_…. For a quick start, every user
has a reusable default ingest token at GET /api/v1/auth/tokens/default.
Connect an external identity provider so people sign in with your IdP. Both OIDC and SAML 2.0
(SP-initiated) are supported. Providers are configured per org and stored in the database — no
restart needed.
Action
Endpoint
List / create providers
GET / POST /api/v1/sso/providers
Update / delete a provider
PUT / DELETE /api/v1/sso/providers/{id}
Enable / disable a provider
POST /api/v1/sso/providers/{id}/enable · /disable
For OIDC, supply a discovery URL (or explicit authorize/token/JWKS endpoints), client
credentials, and scopes. Map IdP groups to MoleSignal roles with a group → role table and a
default role for unmatched users. The login flow runs through GET /api/v1/auth/sso/login and
the provider callback; new users are auto-provisioned into the provider’s org with their mapped role.
SSO requires a license with the sso feature. SAML assertions are verified with real XMLDSig —
enveloped signature, RSA-SHA256, and the embedded certificate is checked against the configured IdP
cert. Verification targets the deterministic output of mainstream IdPs (Azure AD, Okta, Keycloak,
ADFS); it does not implement exclusive XML canonicalization, so a non-canonical response is rejected.
Authentication API
Sign in, issue and revoke tokens, and rotate signing secrets over the HTTP API.