Cargo Features

[dependencies]
auth-framework = { version = "0.5.0-rc1", default-features = false, features = ["enhanced-device-flow", "mysql-storage", "openid-connect", "postgres-storage", "redis-storage", "testing", "distributed-rate-limiting", "enhanced-crypto", "fips-compliance", "enhanced-rbac", "actix-integration", "admin-binary", "api-server", "axum-integration", "cli", "docker-tests", "ldap-auth", "otp-auth", "passkeys", "saml", "tui", "unicode-support", "warp-integration", "web-gui", "config-hot-reload", "enhanced-observability", "event-sourcing", "performance-optimization", "tiered-storage", "smskit", "smskit-web-axum", "opentelemetry_sdk"] }
default = enhanced-rbac, postgres-storage

PostgreSQL recommended

enhanced-device-flow = oauth-device-flows

Affects enhanced_device::EnhancedDeviceFlowMethod, enhanced_device::EnhancedDeviceFlowMethod, enhanced_device::EnhancedDeviceFlowMethod

mysql-storage = sqlx

Affects migrations::MySqlMigrationManager, storage::mysql, mysql::MySqlStorage, storage::mysql, storage::mysql, migrations::MySqlMigrationManager, storage::mysql, mysql::MySqlStorage, migrations::MySqlMigrationManager, storage::mysql, mysql::MySqlStorage

openid-connect = openidconnect
postgres-storage default tiered-storage? = sqlx, tokio-postgres

Affects storage::postgres, storage::postgres, storage::postgres, storage::postgres, storage::postgres, migrations::MigrationManager, migrations::Migration, migrations::MigrationError, migrations::MigrationCli, migrations::MigrationManager, migrations::Migration, migrations::MigrationError, migrations::MigrationCli, migrations::MigrationManager, migrations::Migration, migrations::MigrationError, migrations::MigrationCli

redis-storage = redis

Affects distributed_rate_limiting::RedisRateLimiter, core::RedisStorage, distributed_rate_limiting::RedisRateLimiter, core::RedisStorage, distributed_rate_limiting::RedisRateLimiter, core::RedisStorage

testing
distributed-rate-limiting = redis

Enhanced cryptography features

enhanced-crypto = chacha20poly1305, ed25519-dalek, x25519-dalek
fips-compliance = aws-lc-rs
enhanced-rbac default = api-server, role-system

Enterprise RBAC with role-system v1.0

Affects api::ApiState.authorization_service, authorization_enhanced::service, authorization_enhanced::middleware, authorization_enhanced::context, lib::sdks, sdks::javascript, sdks::python, api::ApiState.authorization_service, api::ApiState.authorization_service, api::ApiState.authorization_service, authorization_enhanced::service, authorization_enhanced::middleware, authorization_enhanced::context, lib::sdks, sdks::javascript, sdks::python, api::ApiState.authorization_service, authorization_enhanced::service, authorization_enhanced::middleware, authorization_enhanced::context

actix-integration = actix-web, futures-util

Additional features referenced in code

Affects actix_web::AuthMiddleware, lib::integrations.actix_web, actix_web::AuthMiddleware, lib::integrations.actix_web, actix_web::AuthMiddleware, auth-framework::integrations.actix_web

admin-binary = cli, tui, web-gui

Affects lib::admin, lib::admin, auth-framework::admin

Required by the binary

api-server enhanced-rbac = axum, tower, tower-http

Affects lib::api, lib::api, auth-framework::api

Required by the test_oauth2 binary

axum-integration smskit-web-axum? = axum, serde_urlencoded, tower, tower-http

Affects lib::integrations.axum, lib::integrations.axum, auth-framework::integrations.axum

cli admin-binary? = clap, colored, console, dialoguer, indicatif, rpassword, tokio-postgres

Affects cli::run_cli, admin::cli, cli::Cli, cli::Commands, cli::DbCommands, cli::UserCommands, cli::RoleCommands, cli::SystemCommands, cli::SecurityCommands, cli::CliHandler, cli::run_cli, cli::run_cli, admin::cli, cli::Cli, cli::Commands, cli::DbCommands, cli::UserCommands, cli::RoleCommands, admin::cli, migrations::MigrationManager

docker-tests = testcontainers

Affects test_infrastructure::containers, test_infrastructure::containers, test_infrastructure::containers

ldap-auth = ldap3

Affects methods::LdapAuthMethod, methods::LdapAuthMethod, methods::LdapAuthMethod

otp-auth = otpauth
passkeys = coset, passkey, passkey-client
saml = quick-xml

Affects methods::saml, methods::saml, methods::saml

tui admin-binary? = colored, console, crossterm, indicatif, ratatui, tui-input

Affects admin::tui, tui::Tab, tui::TuiApp, tui::User, tui::SecurityEvent, tui::LogEntry, tui::run_tui, admin::tui, tui::Tab, tui::TuiApp, tui::User, tui::SecurityEvent, tui::LogEntry, tui::run_tui, admin::tui, tui::Tab, tui::TuiApp, tui::User, tui::SecurityEvent

unicode-support = unicode-normalization
warp-integration = warp

Affects lib::integrations.warp, lib::integrations.warp, auth-framework::integrations.warp

web-gui admin-binary? = askama, axum, serde_urlencoded, tower, tower-http

Affects admin::web, web::run_web_gui, web::ConfigItem, web::User, web::SecurityEvent, web::ServerStatus, web::PerformanceMetrics, web::LogEntry, admin::web, web::run_web_gui, web::ConfigItem, web::User, web::SecurityEvent, web::ServerStatus, web::PerformanceMetrics, web::LogEntry, admin::web, web::run_web_gui, web::ConfigItem

config-hot-reload = notify

Enhanced performance and observability

enhanced-observability = futures, opentelemetry, opentelemetry-jaeger, opentelemetry-otlp, opentelemetry-prometheus, tokio-stream, tracing-opentelemetry

Affects lib::observability, lib::observability, auth-framework::observability

event-sourcing = futures, notify, tokio-stream

Affects lib::architecture, lib::architecture, auth-framework::architecture

performance-optimization = bumpalo, metrics, metrics-prometheus, object-pool, prometheus

Affects storage::unified, storage::unified, storage::unified, storage::unified, storage::unified

tiered-storage = postgres-storage, redis
smskit smskit-web-axum? = sms-aws-sns, sms-core, sms-plivo, sms-twilio, sms-web-generic

SMSKit integration (next-generation SMS support)

smskit-web-axum = axum-integration, sms-web-axum, smskit

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

role-system enhanced-rbac

Enables role-system

Enterprise RBAC system

Affects lib::authorization_enhanced, lib::authorization_enhanced, auth-framework::authorization_enhanced, api::rbac_endpoints, api::rbac_endpoints, api::rbac_endpoints, api::rbac_endpoints, api::rbac_endpoints

redis distributed-rate-limiting? redis-storage? tiered-storage?

Enables redis ^0.32.7

Optional Redis support

Affects storage::redis, storage::redis, storage::redis, storage::redis, storage::redis

metrics performance-optimization?

Enables metrics

Performance and Observability enhancements

metrics-prometheus performance-optimization?
opentelemetry enhanced-observability?
opentelemetry-jaeger enhanced-observability?
opentelemetry-otlp enhanced-observability?
opentelemetry-prometheus enhanced-observability?

Enables opentelemetry-prometheus ^0.29

opentelemetry_sdk implicit feature

Enables opentelemetry_sdk

opentelemetry_sdk:

The SDK for the OpenTelemetry metrics collection and distributed tracing framework

prometheus performance-optimization?

Affects observability::PrometheusMetrics, observability::PrometheusMetrics, observability::PrometheusMetrics

tracing-opentelemetry enhanced-observability?
futures enhanced-observability? event-sourcing?

Enables futures

Event sourcing and streaming

tokio-stream enhanced-observability? event-sourcing?
notify config-hot-reload? event-sourcing?

Enables notify

Configuration hot-reload

bumpalo performance-optimization?

Enables bumpalo

Memory pool optimization

object-pool performance-optimization?
oauth-device-flows enhanced-device-flow?

Enables oauth-device-flows

OAuth device flows (optional enhanced device flow support)

openidconnect openid-connect?

Enables openidconnect

OpenID Connect support (optional) - Updated to fix RSA dependency

ldap3 ldap-auth?

Enables ldap3

Missing dependencies for 100% completion

otpauth otp-auth?

Enables otpauth

Updated to latest available

unicode-normalization unicode-support?
clap cli?

Enables clap

CLI dependencies

rpassword cli?
crossterm tui?

Enables crossterm

TUI dependencies
Updated to maintain compatibility

ratatui tui?

Enables ratatui

Updated to latest version

tui-input tui?
colored cli? tui?

Enables colored

Additional utility dependencies

console cli? tui?
dialoguer cli?
indicatif cli? tui?
futures-util actix-integration?

Enables futures-util

Web framework dependencies

askama web-gui?

Enables askama ^0.14.0

Template engine for web GUI

quick-xml saml?

Enables quick-xml

Note: askama_axum was removed in askama 0.13+ - axum integration is now built into askama
XML processing for SAML

coset passkeys?

Enables coset ^0.3.8

Passkey/WebAuthn dependencies
Downgraded to match passkey dependencies

passkey passkeys?

Enables passkey

Updated to fix idna dependency

passkey-client passkeys?

Enables passkey-client

Updated to fix idna dependency

actix-web actix-integration?

Enables actix-web

Web framework integrations (optional)

axum api-server? axum-integration? web-gui?
serde_urlencoded axum-integration? web-gui?
tower api-server? axum-integration? web-gui?
tower-http api-server? axum-integration? web-gui?
warp warp-integration?
sqlx mysql-storage? postgres-storage

Enables sqlx

Database integrations (optional) - Updated sqlx to fix RSA vulnerability

tokio-postgres cli? postgres-storage
testcontainers docker-tests?

Enables testcontainers ^0.25.0

sms-aws-sns smskit?
sms-core smskit?
sms-plivo smskit?
sms-twilio smskit?
sms-web-axum smskit-web-axum?
sms-web-generic smskit?
aws-lc-rs fips-compliance?
chacha20poly1305 enhanced-crypto?
ed25519-dalek enhanced-crypto?
x25519-dalek enhanced-crypto?