https://auth.docintel.adar.agomoniai.comIdentity and authorization
Secure access by design
Authenticate people and confidential applications, issue audience-bound tokens, and enforce explicit scopes and workspaces on every operation.
Discovery
Authorization and protected resources
/.well-known/oauth-authorization-serverhttps://docintel.adar.agomoniai.com/api/v1https://mcp.docintel.adar.agomoniai.com/mcpREST and MCP tokens are audience-bound and are not interchangeable.
Two supported identities
Choose the grant for the actor
Authorization Code + PKCE
Use browser login, email MFA, consent, S256 PKCE, short-lived access tokens, rotating refresh tokens, and revocation for a human user.
Client Credentials
Use a confidential application, one-time client secret, approved scopes, explicit team workspace grants, and short-lived access tokens for backend automation.
Audience-specific tokens
Request the REST or MCP resource explicitly. Each service rejects tokens minted for the other audience.
Browser and native clients use PKCE. Confidential applications keep secrets server-side and rotate overlapping credentials without downtime.
Scope model
Permissions and resource boundaries
| Scope family | Purpose | Examples |
|---|---|---|
| Workspace | Discover and administer workspaces | workspaces:read, workspaces:write |
| Documents | Read or ingest content | documents:read, documents:write |
| Knowledge | Query or generate intelligence | knowledge:query, knowledge:generate |
| Operations | Manage asynchronous processing | batches:read, batches:write |
| Workflows | Run and review vertical workflows | workflows:read, workflows:write |
| Learning | Read courses, participate, or manage curriculum | learning:read, learning:participate, learning:manage |
A granted OAuth scope authorizes a capability, not a resource. Workspace membership, role, course persona, ownership, and document visibility are checked separately.
DocIntel authorization flow
From discovery to governed execution
DocIntel supports authorization-server discovery, protected-resource discovery, dynamic client registration, browser login, email MFA, Authorization Code with PKCE, user-level scope approval, short-lived access tokens, rotating refresh tokens, revocation, and backend token introspection. The two identities above run two different sequences, shown below.
Interactive · Authorization Code + PKCE
A person authorizing a client
/authorize with a PKCE challenge, requested scope, and resource (REST or MCP audience)./token for an access token and a rotating refresh token.Sequence diagram
Interactive: Authorization Code + PKCE
sequenceDiagram
participant U as "User"
participant C as "Client Application"
participant A as "DocIntel OAuth Server"
participant R as "DocIntel REST or MCP"
C->>A: GET /authorize (PKCE challenge, scope, resource)
A->>U: Show login page
U->>A: Email and password
A->>U: Email MFA code
U->>A: Verify code
A->>A: Intersect requested and granted scopes
A-->>C: Redirect with authorization code
C->>A: POST /token (code + PKCE verifier)
A-->>C: Access token + refresh token
C->>R: Call with Bearer access token
R-->>C: Authorized result
Service · Client Credentials
A confidential application authorizing itself
/token directly with its client ID, client secret, and requested scope — no browser, no redirect.Sequence diagram
Service: Client Credentials
sequenceDiagram
participant App as "Confidential Application"
participant A as "DocIntel OAuth Server"
participant R as "DocIntel REST or MCP"
App->>A: POST /token (client_id, client_secret, scope, resource)
A->>A: Verify secret, CIDR allowlist, and scope grant
A-->>App: Access token (no refresh token)
App->>R: Call with Bearer access token
R-->>App: Response scoped to granted workspaces
Token and credential handling
