1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! # USSO-RS
//!
//! Universal Single Sign-On (SSO) client for Rust microservices.
//!
//! Authenticate users, validate JWTs, check authorization scopes, and manage
//! sessions against the [USSO](https://usso.io) identity platform.
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use usso::core::Usso;
//!
//! let usso = Usso::new(None, Some("https://sso.usso.io/website/jwks.json".into()), None);
//! let user = usso.user_data_from_token("eyJ...");
//! ```
//!
//! ## Feature flags
//!
//! | Flag | Default | Description |
//! |------|---------|-------------|
//! | `axum` | disabled | Enables [`integrations::axum`] — `FromRequestParts` extractors for axum |
//!
//! ## Modules
//!
//! | Module | Description |
//! |--------|-------------|
//! | [`core`] | JWT decoding, `Usso` and `UssoAuth` auth orchestrators |
//! | [`config`] | `AuthConfig`, `HeaderConfig`, `APIHeaderConfig` configuration types |
//! | [`jwks`] | JWKS fetching (sync/async) with global caching |
//! | [`authorization`] | Scope-based RBAC engine (includes `owner_authorization`, `broadest_scope_filter`, `get_common_scopes`) |
//! | [`integrations`] | Framework integrations (axum behind the `axum` feature) |
//! | [`client`] | Full API client with session management (sync + async) |
//! | [`session`] | Lightweight session wrapper |
//! | [`schemas`] | Data types: `UserData`, `Jwk` (RSA + EC), `Jwks`, `UserResponse` |
//! | [`exceptions`] | Error types |
//! | [`utils`] | Agent JWT generation and base64↔UUID utilities |