Skip to main content

English · Русский

Orcestr banner

orcestr-auth

PyPI Python License: MPL 2.0

Python authentication core and FastAPI/SQLAlchemy adapters for the Orcestr ecosystem.

The application keeps its real user model and product lifecycle. The package owns password, token, session, cookie, recovery, OAuth and WebSocket authentication mechanics.

Install

pip install "orcestr-auth[all]"

Optional groups:

Extra Includes
fastapi dependencies, cookie/CSRF flow and router factory
sqlalchemy auth models, direct user repository and Alembic operations
oauth GitHub, Google and Yandex provider clients
all every first-party adapter

Main APIs

Import Purpose
orcestr_auth config, password helpers, token codec and extension ports
orcestr_auth.sqlalchemy create_auth_models, UserFieldMap, user repository
orcestr_auth.services sessions, verification/reset codes and WebSocket tickets
orcestr_auth.oauth optional provider clients and normalized profiles
orcestr_auth.fastapi auth dependencies, redirect policy and router factory
orcestr_auth.migrations versioned Alembic operations for auth-owned schema

SQLAlchemy Wiring

Attach auth tables to the application's registry and real user primary key:

from orcestr_auth.sqlalchemy import UserFieldMap, create_auth_models

auth_models = create_auth_models(
    registry=Base.registry,
    user_model=UserORM,
)

user_fields = UserFieldMap(
    id=UserORM.id,
    username=UserORM.username,
    email=UserORM.email,
    password_hash=UserORM.password_hash,
    is_active=UserORM.is_active,
    email_verified_at=UserORM.email_verified_at,
)

This creates direct indexed queries and real foreign keys. It does not create a second user table and does not use runtime reflection.

FastAPI Wiring

from orcestr_auth.fastapi import create_auth_dependencies, create_auth_router

auth_dependencies = create_auth_dependencies(
    config=auth_config,
    session_dependency=get_control_db_session,
    user_model=UserORM,
    user_fields=user_fields,
    models=auth_models,
)

router = create_auth_router(
    config=auth_config,
    application_dependency=get_auth_http_application,
    current_user_dependency=auth_dependencies.current_user,
    register_model=RegisterRequest,
    user_response_model=UserRead,
)

Auth services raise the shared orcestr_core.ApiError. Register the Core middleware and handlers once on the application, then include the auth router:

from fastapi import FastAPI
from orcestr_core.fastapi import RequestIdMiddleware, register_api_error_handlers

app = FastAPI()
app.add_middleware(RequestIdMiddleware)
register_api_error_handlers(app)
app.include_router(router)

This preserves stable auth codes such as invalid_credentials, structured validation fields and x-request-id in the same envelope as the rest of the product API.

The consumer implements the small AuthHttpApplication boundary for product-specific work: user creation, legal acceptance, tenant bootstrap, email delivery, audit and rate limits. Standard endpoints, cookies and token responses remain library-owned.

Security Model

  • browser tokens live in HttpOnly cookies and never appear in browser auth JSON;
  • cookie mutations require the configured CSRF header;
  • refresh tokens are opaque, hashed, rotated and replay-protected;
  • access JWTs validate issuer, audience, expiry, type, JTI and server session state;
  • recovery codes are hashed, expiring, attempt-limited and one-time;
  • OAuth validates redirects and supports state/PKCE without implicit account linking;
  • WebSocket access uses short-lived one-time tickets.

See security invariants and architecture boundaries.

Development

uv sync --frozen
uv run pytest -q
uv build

Ecosystem

License

Licensed under the Mozilla Public License 2.0. Commercial use is permitted; see the repository NOTICE and trademark policy.

Release files for orcestr-auth 0.3.1

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

Source distribution (sdist)

Source distribution for orcestr-auth 0.3.1
File Size Uploaded
orcestr_auth-0.3.1.tar.gz 32.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orcestr-auth 0.3.1
File Interpreter ABI Platform
orcestr_auth-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 64.6 kB

Release files / orcestr_auth-0.3.1.tar.gz

Download URL orcestr_auth-0.3.1.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3892617cee637f5c358447b6349a02e19946a08f000c4b664a9e607dd765eafe
BLAKE2b-256 checksum
How to use checksums
90246fe5def90ced2302324778e62ae49b8119cf7df4def2ec6e89114802b2b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / orcestr_auth-0.3.1-py3-none-any.whl

Download URL orcestr_auth-0.3.1-py3-none-any.whl
Size 32.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9750ed0930569f68c7da6bf640cf9043ab67d99a44c9bd12130f67ecdbd30fc0
BLAKE2b-256 checksum
How to use checksums
80160707008e4bedd640b4dccba8d7992ae7de353acf90f35531505c237f1f37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

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