Skip to content

korvex.security

Sign-in schemes that guard routes and show in OpenAPI. See OpenAPI and security.

Security schemes: dependencies that read a credential and show in OpenAPI.

Guide: https://3d3n-pyc.github.io/korvex/openapi/

Bearer

Bearer(*, format: str | None = None, name: str = 'bearer', description: str | None = None, required: bool = True)

A token in Authorization: Bearer <token>; format documents it ("JWT").

APIKey

APIKey(*, header: str | None = None, query: str | None = None, cookie: str | None = None, name: str = 'api_key', description: str | None = None, required: bool = True)

A key in a header, query parameter or cookie: give exactly one (TypeError otherwise).

A query key ends up in access logs and browser history: prefer a header.

OAuth2Password

OAuth2Password(token_url: str, *, scopes: Mapping[str, str] | None = None, refresh_url: str | None = None, name: str = 'oauth2', description: str | None = None, required: bool = True)

OAuth2 password flow: Swagger UI posts the form to token_url, then sends the bearer token.

scopes maps scope to description; refresh_url is optional.

SecurityScheme

SecurityScheme(*, name: str, description: str | None, required: bool)

What the schemes share: Depends(scheme) gives the credential, a str.

  • name: its key in OpenAPI's securitySchemes (a duplicate gets name_2...)
  • description: shown in Swagger UI
  • required: without a credential, answer 401 with WWW-Authenticate (False gives None)

Guide: https://3d3n-pyc.github.io/korvex/openapi/#signing-in-from-swagger-ui

credential

credential(request: Connection) -> str | None

The credential the request carries, if any.

openapi

openapi() -> dict[str, Any]

Its Security Scheme Object.