# Modgud
> Multi-tenant Identity Provider
> Generated: 2026-09-10 · Source commit: 18b92a1 · Product: Modgud · Canonical: https://docs.cocoar.dev/modgud/ · Version: v0.13
Named after Móðguðr, the watcher of Gjallarbrú.
OAuth 2.0 / OpenID Connect server with multi-app permissions, granular RBAC, and full database-per-tenant isolation.
Drop-in for any ASP.NET Core resource server — and the auth foundation of the Cocoar suite.
## Table of Contents
### Get Started
- [Getting Started](/getting-started.md)
- [Quickstart (Docker)](/getting-started/quickstart.md)
- [Requirements](/getting-started/requirements.md)
- [Features](/getting-started/features.md)
- [First-time setup](/getting-started/first-time-setup.md)
- [Single-tenant mode](/getting-started/single-tenant-mode.md)
### Concepts
- [Glossary](/concepts/glossary.md)
- [Apps and resource\_access](/concepts/apps-and-resource-access.md)
- [Realms](/concepts/realms.md)
- [Control Plane / Data Plane](/concepts/control-plane.md)
- [Authentication](/concepts/authentication.md)
- [Authorization (RBAC)](/concepts/groups-and-authorization.md)
- [Permissions & gating](/concepts/permissions.md)
- [Auto-Membership](/concepts/auto-membership.md)
- [ABAC and the IAM boundary](/concepts/abac.md)
- [OAuth 2.0 & OpenID Connect](/concepts/oauth.md)
- [Dynamic Client Registration](/concepts/dynamic-client-registration.md): What DCR is, the MCP use case that makes it relevant again, and how Modgud's "anonymous but triple-gated" stance compares to other IdPs.
- [Sessions & Tokens](/concepts/tokens.md)
- [Security model](/concepts/security-model.md)
### Operate
- [Docker & deployment](/operate/deployment.md)
- [Backend architecture](/operate/backend-architecture.md)
- [Persistence (Marten)](/operate/database.md)
- [Multi-tenancy / Realms](/operate/realms.md)
- [Observability](/operate/observability.md)
- [Recovery CLI](/operate/recovery-cli.md)
- [Key material](/operate/key-material.md)
- [Supply-chain verification](/operate/supply-chain.md)
- [Feature Flags](/operate/feature-flags.md)
### Administer (Realm-Admin)
- [Administration overview](/admin.md)
### Identity & Access
- [Users](/admin/users.md)
- [Service Accounts](/admin/service-accounts.md): Machine identities that authenticate via OAuth client_credentials, sit in the same Group/Role/Permission model as humans, and produce clean audit trails.
- [Positions & shared terminals](/admin/positions.md)
- [Positions & terminals — the concepts](/admin/positions-concepts.md)
- [Roles](/admin/roles.md)
- [Groups](/admin/groups.md)
### OAuth & Federation
- [OAuth Clients](/admin/oauth-clients.md)
- [OAuth Scopes](/admin/oauth-scopes.md)
- [OAuth APIs (Resource Servers)](/admin/oauth-apis.md)
- [Invite Codes](/admin/invite-codes.md)
- [Dynamic Client Registration](/admin/dynamic-client-registration.md)
- [Client ID Metadata Documents (CIMD)](/admin/client-id-metadata-documents.md)
- [Login Providers](/admin/login-providers.md)
### Realm
- [Applications](/admin/applications.md)
- [Realms](/admin/realms.md)
- [Configuration Drafts](/admin/configuration-drafts.md)
- [Declarative Realm Provisioning](/admin/realm-provisioning.md)
- [Realm Settings](/admin/realm-settings.md)
- [Security and platform logs](/admin/auth-log.md)
- [Scheduled Jobs](/admin/scheduled-jobs.md): Tenant-admin surface for the realm's background scheduled jobs — review schedules, tune retention, trigger manually, inspect run history.
- [Change Requests](/admin/change-requests.md)
### Platform
- [Platform](/platform.md): Operator-facing configuration of the Modgud instance.
### Customization
- [Customization — Branding](/platform/branding.md)
- [Customization — Transactional email](/platform/email-customization.md)
- [Customization — Asset Library](/platform/assets.md)
- [Customization — Pages](/platform/pages.md)
### Operations
- [Inbox](/platform/inbox.md): Per-user, in-app notification surface — bell in the header, panel with the live list, server-pushed via SignalR.
- [Inbox settings](/platform/inbox-settings.md): Per-kind retention policy for the inbox — how long items stay around before the daily sweep dismisses or hard-deletes them.
- [Platform Settings](/platform/settings.md)
- [Rate limits](/platform/rate-limits.md)
### Integrate
- [Integrating a Resource Server](/integrate/resource-server.md)
- [SaaS App Integration Walkthrough](/integrate/saas-walkthrough.md)
- [Management API](/integrate/management-api.md): Let a backend or delegated administrator call selected Modgud administration endpoints through OAuth without duplicating Modgud's permission model.
- [Application change feed](/integrate/application-change-feed.md): Bootstrap and continuously synchronize the Modgud entities assigned to one Application through a resumable, app-scoped contract.
- [Secure an MCP server with Modgud (15 minutes)](/integrate/mcp-server.md)
- [Native app integration (iOS / Android / headless)](/integrate/native-apps.md)
- [OAuth / OpenIddict implementation](/integrate/oauth.md)
- [Cookies & sessions](/integrate/cookies-and-sessions.md)
- [Login flows](/integrate/login-flows.md)
- [Login Providers (OIDC and SAML Federation)](/integrate/login-providers.md)
- [Two-Factor Authentication](/integrate/two-factor.md)
- [Position terminals (consumer contract)](/integrate/position-terminals.md)
### User Help
- [End-user help](/end-user.md)
- [First steps](/end-user/first-steps.md)
- [Signing in](/end-user/sign-in.md)
- [Password](/end-user/password.md)
- [Two-factor authentication](/end-user/two-factor.md)
- [Passkey](/end-user/passkey.md)
- [Profile](/end-user/profile.md)
### API Reference
- [OAuth / OIDC Endpoints](/reference/oauth-api.md)
- [Auth Endpoints](/reference/auth-api.md)
- [Admin endpoints](/reference/admin-api.md)
- [Realm Endpoints](/reference/realm-api.md)
### Contribute
- [Developing locally](/contribute/developing-locally.md)
- [Local CI iteration](/contribute/local-ci.md): Running and iterating on GitHub Actions workflows locally with act + workflow_dispatch dry-run.
### Testing
- [Testing](/contribute/testing.md)
- [Automated tests](/contribute/testing/automated-tests.md)
- [Pinned-by-design](/contribute/testing/pinned-by-design.md)
- [Manual smoke checklist](/contribute/testing/manual-checklist.md)
### Architecture decisions
- [Architecture decisions](/decisions.md)
- [OAuth / MCP client registration: DCR (public + confidential) now, CIMD next](/decisions/0001-oauth-mcp-client-registration.md)
- [Public origin is derived, not configured (per-realm host, request-derived issuer, fail-closed proxy trust)](/decisions/0002-public-origin-derived.md)
- [Persistence: hybrid event-sourcing + flat documents, best-fit per feature](/decisions/0003-persistence-hybrid-event-sourcing-and-documents.md)
- [Tenancy: database-per-realm, master/system split](/decisions/0004-tenancy-database-per-realm.md)
- [Permission model: per-app catalog, RBAC via groups, two bypass tiers](/decisions/0005-permission-model-catalog-rbac.md)
- [Identity Hub, not Federation Proxy](/decisions/0006-identity-hub-not-federation-proxy.md)
- [Access tokens: reference by default, per-client JWT opt-in, signed-not-encrypted](/decisions/0007-access-token-format.md)
- [CIMD (Client ID Metadata Documents): authorization-server design](/decisions/0008-cimd-client-id-metadata-documents.md)
- [Per-client WebAuthn RP-ID: decouple relying-party identity from the tenant domain](/decisions/0009-per-client-webauthn-rp-id.md)
- [Native cookieless authentication: token-minting custom grants at the token endpoint (passkey, OTP, magic-link)](/decisions/0010-native-cookieless-token-grants.md)
- [Application tier: origin & login-experience as a soft facet within a tenant (users + keys stay at the tenant)](/decisions/0011-application-tier-origin-facet.md)
- [Invite-code-gated passwordless self-registration (a fourth SelfRegPosture)](/decisions/0012-invite-code-self-registration.md)
- [PageBuilder: named page variants and activation at realm and application level](/decisions/0013-pagebuilder-page-variants.md)
- [Finish the customization core before the page builder](/decisions/0014-customization-core-before-page-builder.md)
- [Positions, terminals and staffing are the shared-device model — no parallel concepts](/decisions/0015-positions-terminals-staffing-shared-device-model.md)
- [Policy, binding and control-plane semantics for positions, terminals and staffing](/decisions/0016-position-policy-binding-control-plane.md)
- [Staged configuration (draft mode) on the manifest engine, with transactional apply](/decisions/0017-staged-configuration-draft-mode.md)
- [Registration before proof: one pending-registration pipeline for every sign-up path](/decisions/0018-registration-before-proof.md)
- [Caller context and multi-dimensional rate limiting for public auth endpoints](/decisions/0019-caller-context-and-rate-limiting.md)
- [Device-aware login throttling: trusted-device buckets instead of IP limits or global lockout](/decisions/0020-device-aware-login-throttling.md)
- [Back-channel logout: server-initiated logout propagation to relying parties](/decisions/0021-back-channel-logout.md)
- [Two-instance operation: one Wolverine-coordinated cluster, Postgres backplane, N-1 release rule](/decisions/0022-two-instance-operation.md)
- [The public origin is declared, not derived](/decisions/0023-public-origin-is-declared.md)
### Other
- [API Reference](/reference.md): HTTP endpoint reference for the OAuth/OIDC surface, the authentication API, the admin API, and the realm-management API.
- [Audit storage ownership decision](/contribute/audit-storage-decision.md)
- [Concepts](/concepts.md): How Modgud thinks about identity, tenancy, authorization, and the OAuth/OIDC surface — the mental model behind the code.
- [Contribute](/contribute.md): Developing locally, the test suite layout, what gets pinned by tests vs left flexible.
- [Integrate](/integrate.md): Hooking your app up to Modgud — as an OAuth client, as a resource server protecting an API, or via cookie sessions for an internal SPA.
- [Operate](/operate.md): Running Modgud in production — Docker deployment, persistence, multi-tenancy provisioning, observability, recovery procedures.
- [Roadmap](/roadmap.md): What Modgud ships today and what's coming next.
- [SAML 2.0 federation](/admin/saml-federation.md)