Skip to main content

csrd-auth

Pluggable JWT authentication for FastAPI — authenticators, key providers, and dependency factories.

Tier 2 (bridge) — depends on csrd-models and csrd-context only.

Installation

pip install "csrd-auth @ git+https://github.com/csrd-api/fastapi-common.git#subdirectory=packages/auth"

Usage

from csrd.auth import (
    JWTAuthenticator,
    StaticKeyProvider,
    create_bearer_dependency,
    create_jwt_bearer,
)

Quick start — JWT bearer dependency

# Standalone (provide your own token_finder)
from csrd.auth import create_jwt_bearer

auth_dep = create_jwt_bearer(
    key="your-secret",
    token_finder=lambda: extract_token_from_request(),
)

When used with csrd.versioning, wire in find_token explicitly:

from csrd.auth import create_jwt_bearer
from csrd.versioning import find_token

auth_dep = create_jwt_bearer(key="your-secret", token_finder=find_token)

Authenticators

Class Strategy
JWTAuthenticator Decode & verify JWT locally via PyJWT
StaticAuthenticator Accept a fixed token (dev/testing)
RemoteAuthenticator Validate via upstream HTTP endpoint
CallbackAuthenticator Delegate to any sync/async callable
ChainedAuthenticator Try multiple authenticators in order

Key Providers

Class Strategy
StaticKeyProvider Fixed string, bytes, or SecretStr
EnvKeyProvider Read from app.state or settings loader
JWKSKeyProvider Fetch from JWKS endpoint (cached with TTL)
MultiKeyProvider Route by kid header or try all
CallbackKeyProvider Delegate to any callable

Protocols

  • Authenticator — (Request, str) -> UserClaims
  • KeyProvider — (token_headers, app) -> key

Both are @runtime_checkable protocols.

Dependency Tier

Tier 1      csrd.models  csrd.lifespan  csrd.context
Tier 2      csrd.auth  csrd.logging  csrd.delegate  csrd.repository  csrd.service
Tier 3      csrd.versioning

csrd.auth depends only on csrd.models (for UserClaims) and csrd.context (for user_info_context). It has no dependency on csrd.versioning.

Metadata

Release files for csrd-auth 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for csrd-auth 0.6.0
File Size Uploaded
csrd_auth-0.6.0.tar.gz 21.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for csrd-auth 0.6.0
File Interpreter ABI Platform
csrd_auth-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 kB

Release files / csrd_auth-0.6.0.tar.gz

Download URL csrd_auth-0.6.0.tar.gz
Size 21.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d8ab763931bf1a64a4ce24f612a9a21074e2a224aee8b509856d873b5bfee869
BLAKE2b-256 checksum
How to use checksums
c168a8b0c9693149a86955a118f18363d25cbb3a352fdde7ba17bfa71c2db230
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release files / csrd_auth-0.6.0-py3-none-any.whl

Download URL csrd_auth-0.6.0-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9ba460d5110073519416d77eccd5364c75cb247544dedb382bae8306959bccd
BLAKE2b-256 checksum
How to use checksums
869a2460a69d53a18f032a42f705f4d67a6c11a17cd700084b8d3da2fa2ae1ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.0

2 release files

This release

0.6.0 This release

2 release files

0.5.30

2 release files

0.5.29

2 release files

0.5.28

2 release files

0.5.27

2 release files

0.5.26

2 release files

0.5.25

2 release files

0.5.24

2 release files

0.5.23

2 release files

0.5.22

2 release files

0.5.21

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.39

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.11

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page