Data Model
The data model module provides the interfaces for accessing the repositories and data so that the underlying implementation can be swapped out as a runtime dependency.
Repository Interfaces
The following interfaces are implemented to provide data persistence.
AuthorizationRepository
: Manage client authorizations; which clients are authorized to access others for centralized authorization modelClientRepository
: Manage clients; catalog of all of the registered clients.JwkCacheRepository
: Manage JWK cache; improves performance and availability for external authentications.LoginCodeRepository
: Manage login codes; the authorization code repository to allow users to log inLoginStateRepository
: Manage login state; the session needed to complete the OAuth user login flow
A flexible deployment is supported by allowing different underlying database technologies based on the desired deployment mechanism.
Repository Implementations
There are multiple data model implementations that are available. Exactly one module must be enabled at runtime.
Note
Each module implementation will have additional properties that are required to be set for it to work correctly when it is enabled, typically through envirionment variables.
- Data Model - Firestore: Firestore implementation for the repository interfaces
- Data Model - Memory: In-memory implementation for the repository interfaces used for testing and development