Auth Component¶
Purpose¶
The Auth component initializes identity and access management (IAM), creates required schema objects, seeds bootstrap users, and prepares the runtime authentication provider chain.
Main locations¶
app/core/components/auth/logic/auth_service.pyapp/core/components/auth/logic/providers/*app/core/components/auth/ui/routes.pyapp/core/components/auth/ui/login_ui.py
Responsibilities¶
- wait for
db:connected - create or validate IAM tables through SQLAlchemy metadata
- apply lightweight idempotent schema migrations for selected columns
- seed admin and bot users from environment-backed values
- initialize configured auth providers such as
local,ldap, andoidc - allow plugins to register additional providers at runtime
- emit
iam:readywhen authentication is usable
Configuration touchpoints¶
Important settings live in app/config.py, including:
LYNDRIX_ADMIN_USER,LYNDRIX_ADMIN_PASSWORDLYNDRIX_BOT_USER,LYNDRIX_BOT_PASSWORDLYNDRIX_AUTH_PROVIDERS- LDAP settings such as
LYNDRIX_LDAP_URL - OIDC settings such as
LYNDRIX_OIDC_ISSUER
Events¶
Subscribes¶
db:connectedauth:register_provider
Emits¶
iam:ready
Runtime behavior¶
When the database becomes ready, the component:
- creates missing IAM tables
- applies selected additive schema migrations
- seeds or updates bootstrap users
- constructs the active provider chain
- emits
iam:ready
This event is the release signal used by the Boot component.
UI and auth endpoints¶
/login/auth/callback/oidc/auth/complete
Operational notes¶
- default bootstrap passwords are convenient for development but unsafe for shared environments
- LDAP and OIDC credentials can be pulled from Vault-backed settings
- provider reinitialization is supported at runtime after settings changes