Skip to content

nimwire/auth

This page is generated from the module’s exported API and ## documentation comments.

HTTP authorization hooks with safe bearer-token defaults.

McpAuthHeader = object
name*: string
value*: string

View source

McpAuthorizationRequest = object
methodName*: string
path*: string
resource*: string
headers*: seq[McpAuthHeader]

View source

McpAuthClaims = object
subject*: string
issuer*: string
audience*: seq[string]
scopes*: seq[string]
expiresAt*: int64
claims*: JsonNode

View source

McpBearerTokenVerifier = proc (token, resource: string): McpAuthClaims {.closure.}

View source

McpAuthorizationMiddleware = proc (request: McpAuthorizationRequest): McpAuthorizationResult {.
closure.}

View source

McpAuthorizationResult = object
allowed*: bool
principal*: McpPrincipal
status*: int
message*: string
scopes*: seq[string]

View source

McpProtectedResourceMetadata = object
resource*: string
authorizationServers*: seq[string]
scopesSupported*: seq[string]

View source

McpAuthorizationConfig = object
enabled*: bool
resource*: string
authorizationServers*: seq[string]
scopesSupported*: seq[string]
requiredScopes*: seq[string]
resourceMetadataUrl*: string
verifier*: McpBearerTokenVerifier
middleware*: McpAuthorizationMiddleware

View source

McpClientIdMetadata = object
clientId*: string
clientName*: string
redirectUris*: seq[string]
extraFields*: JsonNode

View source

proc newMcpAuthClaims(subject, issuer: string; audience, scopes: seq[string];
expiresAt: int64; claims: JsonNode = nil): McpAuthClaims {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpAuthClaims.

Name Type Default
subject string
issuer string
audience seq[string]
scopes seq[string]
expiresAt int64
claims JsonNode nil

View source

proc newMcpAuthorizationConfig(resource = "";
authorizationServers: seq[string] = @[];
scopesSupported: seq[string] = @[];
requiredScopes: seq[string] = @[];
resourceMetadataUrl = "";
verifier: McpBearerTokenVerifier = nil;
middleware: McpAuthorizationMiddleware = nil;
enabled = false): McpAuthorizationConfig {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpAuthorizationConfig.

Name Type Default
resource inferred ""
authorizationServers seq[string] @[]
scopesSupported seq[string] @[]
requiredScopes seq[string] @[]
resourceMetadataUrl inferred ""
verifier McpBearerTokenVerifier nil
middleware McpAuthorizationMiddleware nil
enabled inferred false

View source

proc newMcpAuthorizationRequest(methodName, path, resource: string;
headers: seq[McpAuthHeader] = @[]): McpAuthorizationRequest {.
raises: [], tags: [], forbids: [].}

Returns: McpAuthorizationRequest.

Name Type Default
methodName string
path string
resource string
headers seq[McpAuthHeader] @[]

View source

proc extractBearerToken(authorization: string): string {.raises: [], tags: [],
forbids: [].}

Returns: string.

Name Type Default
authorization string

View source

proc authorize(config: McpAuthorizationConfig; request: McpAuthorizationRequest): McpAuthorizationResult {.
raises: [Exception, Exception, McpError], tags: [RootEffect, TimeEffect],
forbids: [].}

Returns: McpAuthorizationResult.

Name Type Default
config McpAuthorizationConfig
request McpAuthorizationRequest

View source

proc protectedResourceMetadata(config: McpAuthorizationConfig): McpProtectedResourceMetadata {.
raises: [McpError], tags: [], forbids: [].}

Returns: McpProtectedResourceMetadata.

Name Type Default
config McpAuthorizationConfig

View source

proc toJson(metadata: McpProtectedResourceMetadata): JsonNode {.raises: [],
tags: [], forbids: [].}

Returns: JsonNode.

Name Type Default
metadata McpProtectedResourceMetadata

View source

proc authorizationChallenge(config: McpAuthorizationConfig; error = "";
scope = ""): string {.raises: [], tags: [],
forbids: [].}

Returns: string.

Name Type Default
config McpAuthorizationConfig
error inferred ""
scope inferred ""

View source

proc parseClientIdMetadata(node: JsonNode): McpClientIdMetadata {.
raises: [McpError, KeyError], tags: [], forbids: [].}

Returns: McpClientIdMetadata.

Name Type Default
node JsonNode

View source

proc rejectTokenPassthrough(authorization: string) {.raises: [McpError],
tags: [], forbids: [].}
Name Type Default
authorization string

View source