Identity & auth overview
Identity is generic over <TUser, TRole> at the platform layer
(PlatformDbContext<TUser,TRole>), closed to concrete DomainUser/DomainRole types in a
reference configuration's own DbContext (e.g. KandraWmsDbContext).
- Two JWT auth paths: human users authenticate with a username/password JWT flow; non-human callers (integrations, jobs) use API keys instead.
- Feature flags ride on the same JWT:
LoginServiceevaluates every enabledMicrosoft.FeatureManagementflag and stamps afeatureclaim per name into the token at login/refresh (optionally filtered by an unregistered-by-defaultIClientFeatureFilterhook, to keep server-only flags off the client). The client'sJwtFeatureDefinitionProviderreads those claims back viaIAuthenticationContext. There is no declarative UI-gating attribute yet — Blazor code callsIFeatureManager.IsEnabledAsync(...)directly. ICallerContextcarries run-as-user/timezone context through the job scheduler and other non-HTTP-request execution paths.
See the platform architecture doc §13 for the full identity/auth design, and Generated API Reference for the concrete API surface once the XML doc sync has run.