Skip to main content

EmpowerID Identity Fabric SDK – Python & React packages

EmpowerID Identity Fabric provides a secure‐by‐default toolkit for building apps on top of the EmpowerID Identity Fabric Platform. The SDK is split into two families:

Package Runtime Purpose
empowernow-common Python 3.10 – 3.12 Shared cryptography, OAuth helpers, AuthZEN PDP client, Redis/metrics utilities.
@empowernow/bff-auth-react React 18 Hooks & components for the Backend-for-Frontend (BFF) cookie-based auth model.
@empowernow/ui React 18 Headless UI-component library used by all EmpowerID Identity Fabric SPAs. (Depends on either @empowernow/bff-auth-react or the legacy shim @empowernow/react.)

Why no browser-side OAuth client? EmpowerID Identity Fabric moved to a BFF architecture to comply with FAPI 2.0 Baseline / Advanced and to keep tokens out of the browser. The legacy @empowernow/react library now acts as a thin re-export of @empowernow/bff-auth-react for backward compatibility. It no longer handles tokens.


Installation

Python (server-side services)

pip install "empowernow-common>=2.3,<3"

Optional extras:

  • empowernow-common[fips] – Use when running under an OpenSSL FIPS provider.
  • empowernow-common[redis], empowernow-common[kafka], etc. – Feature-scoped extras, see pyproject.toml.

React (front-end SPAs)

npm install @empowernow/bff-auth-react @empowernow/ui

If you still have code importing @empowernow/react, update it at your own pace – the alias re-exports the new package so nothing breaks at runtime.


Quick start

Using the Python OAuthClient

from empowernow_common.oauth import OAuthClient

oauth = OAuthClient(
    issuer="https://idp.example.com",
    client_id="python-client",
    client_secret="…",  # confidential client
    redirect_uri="https://bff.example.com/auth/callback",
    scopes=["openid", "profile"]
)

auth_url = oauth.create_authorization_url(state="xyz")
print("Open browser to", auth_url)

React – wrap your SPA in the AuthProvider

import { AuthProvider } from '@empowernow/bff-auth-react';
import { createRoot } from 'react-dom/client';
import App from './App';

createRoot(document.getElementById('root')!).render(
  <AuthProvider baseUrl={import.meta.env.VITE_BFF_BASE_URL}>
    <App />
  </AuthProvider>
);

useAuth() gives you isAuthenticated, user, session and convenience helpers like login() and logout(); apiClient is a fetch wrapper that automatically adds CSRF headers and credentials:"include".


Security & Compliance

  • FAPI 2.0 ready – private-key-JWT, PAR, JARM, DPoP and SameSite cookie model supported at the BFF layer.
  • FIPS option – When the host OpenSSL runs in FIPS 140-3 mode, empowernow-common can validate algorithms at start-up and periodically (opt-in via env FIPS_CONTINUOUS_VALIDATION=1).
  • No browser tokens – SPAs never see access- or refresh-tokens; they use HttpOnly cookies issued by the BFF.
  • Structured logging & Prometheus metrics built in.

Repository layout

client_sdk/empowernow-packages/
 ├── packages/
 │   ├── empowernow-common/            # Python package
 │   ├── @empowernow/bff-auth-react/   # React auth kit
 │   ├── @empowernow/ui/               # UI kit (optional peer)
 │   └── empowernow-react/             # Shim – re-exports BFF kit

Contributing

Pull requests are welcome. Please run pre-commit run -a and ensure pytest -q / pnpm test are green before opening a PR.


© 2025 EmpowerID Identity Fabric – Apache 2.0 licence.

Download files

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

Source Distribution

empowernow_sdk-3.20.0.tar.gz (448.6 kB view details)

Uploaded Source

Built Distribution

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

empowernow_sdk-3.20.0-py3-none-any.whl (532.4 kB view details)

Uploaded Python 3

File details

Details for the file empowernow_sdk-3.20.0.tar.gz.

File metadata

  • Download URL: empowernow_sdk-3.20.0.tar.gz
  • Upload date:
  • Size: 448.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for empowernow_sdk-3.20.0.tar.gz
Algorithm Hash digest
SHA256 cdc271a6858c3851847ac8cdba13ae0c489eeefba9403e57915d9e1b8be44068
MD5 0c393832deb9ccf7c10560743daf214d
BLAKE2b-256 0d04073eaaa323f6c0e3745501a896f88fb022c8a5ea60b2d419be98b583c9f1

See more details on using hashes here.

File details

Details for the file empowernow_sdk-3.20.0-py3-none-any.whl.

File metadata

  • Download URL: empowernow_sdk-3.20.0-py3-none-any.whl
  • Upload date:
  • Size: 532.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for empowernow_sdk-3.20.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8eaa678cf97b09d9c878b7ac4c6b48f99f893aac48c2adb5cdfdd89a17cbda85
MD5 6b570b15bf98d121870a9c4bc3dc92bb
BLAKE2b-256 d3cf3a158960d9e9477bfb0e1d109afa83e8076c260f7281508295100c492eaa

See more details on using hashes here.

Release history Release notifications | RSS feed

3.23.3

2 files

3.23.2

2 files

3.23.1

2 files

3.22.3

2 files

3.22.2

2 files

3.21.0

2 files

This release

3.20.0 This release

2 files

3.13.3

2 files

3.13.2

2 files

3.13.1

2 files

3.12.2

2 files

3.12.1

2 files

3.11.1

2 files

3.11.0

2 files

3.10.0

2 files

3.9.0

2 files

3.8.0

2 files

3.7.0

2 files

3.6.0

2 files

3.5.0

2 files

3.4.11

2 files

3.4.10

2 files

3.4.9

2 files

3.4.8

2 files

3.4.7

2 files

2.4.0

2 files

2.3.18

2 files

2.3.16

2 files

2.3.14

2 files

2.3.13

2 files

2.3.12

2 files

2.0.3

2 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