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 KeycloakConfig, create_auth_router, init_dependencies

app = FastAPI()

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.0.tar.gz (11.3 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.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ecc_auth-0.1.0.tar.gz
  • Upload date:
  • Size: 11.3 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.0.tar.gz
Algorithm Hash digest
SHA256 1262413b23b47c16657df8b369c4ebd412f4b0c9bf2e263e5593add2c1cd1eb1
MD5 bd0c316808e4a6eca3eba053dd2a867f
BLAKE2b-256 d2f00747b8244e1a2da35404adc2b06e968a83d9a60727a27767812f41a6358b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecc_auth-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: ecc_auth-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5e77050452af61e7e80a0f74eea9b3885eaebabf193295699173c7bfa97bde7
MD5 d4c98120b9d09e44c2ebab630e7541ed
BLAKE2b-256 568675619306cb687593d1c1c42ef8a6d7092bf4b1a83f5d3801d890a6fb60ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecc_auth-0.1.0-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