Skip to main content

Shared Keycloak OIDC authentication SDK for ECC projects

Project description

ecc-auth

ecc-auth is a small shared authentication SDK for ECC Python services that integrate with Keycloak and FastAPI.

It provides:

  • Keycloak configuration via KeycloakConfig
  • Standard FastAPI auth routes via create_auth_router
  • Current-user dependencies via get_current_user and get_current_user_optional
  • JWT verification helpers via verify_access_token

Installation

Once published to PyPI:

pip install ecc-auth

Or with uv:

uv add ecc-auth

Quick Start

from fastapi import FastAPI

from ecc_auth import AuthSessionMiddleware, KeycloakConfig, create_auth_router, init_dependencies

app = FastAPI()
app.add_middleware(AuthSessionMiddleware)

config = KeycloakConfig(
    url="https://keycloak.example.com",
    realm="ecc",
    client_id="example-client",
    client_secret="example-secret",
    tls_insecure=False,
)

init_dependencies(config)
app.include_router(create_auth_router(config), prefix="/api/auth")

Development

Build the package locally:

uv build

Run tests:

uv run pytest

Publishing

This repository includes a GitHub Actions workflow at .github/workflows/publish-python.yml.

Recommended release flow:

  1. Bump version in packages/python/pyproject.toml.
  2. Commit and push the change.
  3. Create a GitHub release.
  4. Let the workflow build and publish the package to PyPI.

Before the first release, configure a Trusted Publisher for this repository in PyPI and point it at:

  • Repository owner: early-chinese-civilization
  • Repository name: ecc-auth
  • Workflow file: .github/workflows/publish-python.yml
  • Environment name: pypi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecc_auth-0.1.1.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecc_auth-0.1.1-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file ecc_auth-0.1.1.tar.gz.

File metadata

  • Download URL: ecc_auth-0.1.1.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ecc_auth-0.1.1.tar.gz
Algorithm Hash digest
SHA256 86df0717abee319e956b7b523f9247b818d3df8605d5ae04b69a633281ecb8f5
MD5 417d0a6d40ada45f77c02851ae9eb549
BLAKE2b-256 33875647264cf10f7d687906e62db6a8baabe0f7b8f897ab404aa6f5bf81127b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecc_auth-0.1.1.tar.gz:

Publisher: publish-python.yml on early-chinese-civilization/ecc-auth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ecc_auth-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ecc_auth-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ecc_auth-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2fe5f358c017d56b5a475baf51c35a08f6559db5e399bf91e0a769aa1172cc42
MD5 4e6894859797fb1b2059267b3dbdc752
BLAKE2b-256 5c3d718311e20f3dc6926c7d9537d96fc43fbd194fedda49d7e51c8685b52f70

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecc_auth-0.1.1-py3-none-any.whl:

Publisher: publish-python.yml on early-chinese-civilization/ecc-auth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page