managers

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2025 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DataContext

type DataContext interface {
	// IsAvailable Checks is Data Storage accessible or not
	IsAvailable() bool
	// GetRealm returns realm by name (unique) returns realm with clients but no users
	GetRealm(realmName string) (*data.Realm, error)
	// GetClient returns realm client by name (client name is also unique in a realm)
	GetClient(realmName string, name string) (*data.Client, error)
	// GetUser return realm user (consider what to do with Federated users) by name
	GetUser(realmName string, userName string) (data.User, error)
	// GetUserFederationConfig return user federation config by name
	GetUserFederationConfig(realmName string, configName string) (*data.UserFederationServiceConfig, error)
	// GetUserById return realm user by id
	GetUserById(realmName string, userId uuid.UUID) (data.User, error)
	// CreateRealm creates new data.Realm in a data store, receive realmData unmarshalled json in a data.Realm
	CreateRealm(realmData data.Realm) error
	// CreateClient creates new data.Client in a data store, requires to pass realmName (because client name is not unique), clientData is an unmarshalled json of type data.Client
	CreateClient(realmName string, clientData data.Client) error
	// CreateUser creates new data.User in a data store within a realm with name = realmName
	CreateUser(realmName string, userData data.User) error
	// CreateUserFederationConfig creates new user federation (LDAP, FreeIPA & so on)
	CreateUserFederationConfig(realmName string, userFederationConfig data.UserFederationServiceConfig) error
	// UpdateRealm updates existing data.Realm in a data store within name = realmData, and new data = realmData
	UpdateRealm(realmName string, realmData data.Realm) error
	// UpdateClient updates existing data.Client in a data store with name = clientName and new data = clientData
	UpdateClient(realmName string, clientName string, clientData data.Client) error
	// UpdateUser updates existing data.User in a data store with realm name = realName, username = userName and data=userData
	UpdateUser(realmName string, userName string, userData data.User) error
	// UpdateUserFederationConfig updates existing user federation config
	UpdateUserFederationConfig(realmName string, configName string, userFederationConfig data.UserFederationServiceConfig) error
	// DeleteRealm removes realm from data storage (Should be a CASCADE remove of all related Users and Clients)
	DeleteRealm(realmName string) error
	// DeleteClient removes client with name = clientName from realm with name = clientName
	DeleteClient(realmName string, clientName string) error
	// DeleteUser removes data.User from data store by user (userName) and realm (realmName) name respectively
	DeleteUser(realmName string, userName string) error
	// DeleteUserFederationConfig removes data.UserFederationServiceConfig from collection
	DeleteUserFederationConfig(realmName string, configName string) error
}

DataContext is a common interface to implement operations with authorization server entities (data.Realm, data.Client, data.User) now contains only set of Get methods, during implementation admin CLI should be expanded to create && update entities DataContext is a CRUD operations interface over a business objects (data.Realm, data.Client, data.User)

func PrepareContext added in v0.9.2

func PrepareContext(dataSourceCfg *config.DataSourceConfig, logger *logging.AppLogger) (DataContext, error)

PrepareContext is a factory function that creates instance of DataContext

If dataSourceCfg is config.REDIS this function creates instance of RedisDataManager by calling CreateRedisDataManager function
* Parameters:
*     - dataSourceCfg configuration section related to DataSource
*     - logger - logger instance
* Return: new instance of DataContext and error (nil if there are no errors)

func PrepareContextUsingData added in v0.9.2

func PrepareContextUsingData(dataSourceCfg *config.DataSourceConfig, data *data.ServerData, logger *logging.AppLogger) (DataContext, error)

PrepareContextUsingData is a factory function that creates instance of DataContext

This function creates instance of appropriate DataContext according to input arguments values, if dataSourceConfig is config.FILE function
* creates instance of FileDataManager.
* loads all data (realms, clients and users) in a memory.
* Parameters:
*     - dataSourceCfg configuration section related to DataSource
*     - data - ServerData
*     - logger - logger instance
* Return: new instance of DataContext and error (nil if there are no errors)

func PrepareContextUsingFile added in v0.9.2

func PrepareContextUsingFile(dataSourceCfg *config.DataSourceConfig, dataFile *string, logger *logging.AppLogger) (DataContext, error)

PrepareContextUsingFile is a factory function that creates instance of DataContext

This function creates instance of appropriate DataContext according to input arguments values, if dataSourceConfig is config.FILE function
* creates instance of FileDataManager. For this type of context if dataFile is not nil and exists this function also provides data initialization:
* loads all data (realms, clients and users) in a memory.
* Parameters:
*     - dataSourceCfg configuration section related to DataSource
*     - dataFile - data for initialization (this is using only when dataSourceCfg is config.FILE)
*     - logger - logger instance
* Return: new instance of DataContext and error (nil if there are no errors)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL