Documentation
¶
Overview ¶
Package manager contains logic for creating Provider instances
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthManager ¶
type AuthManager interface {
NewOAuthConfig(providerClass db.ProviderClass, cli bool) (*oauth2.Config, error)
ValidateCredentials(ctx context.Context, providerClass db.ProviderClass, cred v1.Credential, opts ...CredentialVerifyOptFn) error
}
AuthManager is the interface for managing authentication with provider classes
func NewAuthManager ¶
func NewAuthManager( classManagers ...ProviderClassManager, ) (AuthManager, error)
NewAuthManager creates a new AuthManager for managing authentication with providers classes
type CredentialVerifyOptFn ¶
type CredentialVerifyOptFn func(*CredentialVerifyParams)
CredentialVerifyOptFn is a function that sets options for credential verification
func WithRemoteUser ¶
func WithRemoteUser(remoteUser string) CredentialVerifyOptFn
WithRemoteUser sets the remote user for the credential verification
type CredentialVerifyParams ¶
type CredentialVerifyParams struct {
RemoteUser string
}
CredentialVerifyParams are the currently supported parameters for credential verification
type NameProviderTuple ¶
NameProviderTuple is a tuple of a provider name and the provider instance
type ProviderClassManager ¶
type ProviderClassManager interface {
// MarshallConfig validates the config and marshalls it into a format that can be stored in the database
MarshallConfig(ctx context.Context, class db.ProviderClass, config json.RawMessage) (json.RawMessage, error)
// Build creates an instance of Provider based on the config in the DB
Build(ctx context.Context, config *db.Provider) (v1.Provider, error)
// Delete deletes an instance of this provider
Delete(ctx context.Context, config *db.Provider) error
// GetSupportedClasses lists the types of Provider class which this manager
// can produce.
GetSupportedClasses() []db.ProviderClass
// GetWebhookHandler returns the webhook handler for the provider class
GetWebhookHandler() http.Handler
// contains filtered or unexported methods
}
ProviderClassManager describes an interface for creating instances of a specific Provider class. The idea is that ProviderManager determines the class of the Provider, and delegates to the appropraite ProviderClassManager
type ProviderManager ¶
type ProviderManager interface {
// CreateFromConfig creates a new Provider instance in the database with a given configuration or the provider default
CreateFromConfig(
ctx context.Context, providerClass db.ProviderClass, projectID uuid.UUID, name string, config json.RawMessage,
) (*db.Provider, error)
// InstantiateFromID creates the provider from the Provider's UUID
InstantiateFromID(ctx context.Context, providerID uuid.UUID) (v1.Provider, error)
// InstantiateFromNameProject creates the provider using the provider's name and
// project hierarchy.
InstantiateFromNameProject(ctx context.Context, name string, projectID uuid.UUID) (v1.Provider, error)
// BulkInstantiateByTrait instantiates multiple providers in the
// project hierarchy. Providers are filtered by trait, and optionally by
// name (empty name string means no filter by name).
// To preserve compatibility with behaviour expected by the API, if a
// provider cannot be instantiated, it will not cause the method to error
// out, instead a list of failed provider names will be returned.
BulkInstantiateByTrait(
ctx context.Context,
projectID uuid.UUID,
trait db.ProviderType,
name string,
) (map[uuid.UUID]NameProviderTuple, []string, error)
// DeleteByID deletes the specified instance of the Provider, and
// carries out any cleanup needed.
DeleteByID(ctx context.Context, providerID uuid.UUID, projectID uuid.UUID) error
// DeleteByName deletes the specified instance of the Provider, and
// carries out any cleanup needed.
// Deletion will only occur if the provider is in the specified project -
// it will not attempt to find a provider elsewhere in the hierarchy.
DeleteByName(ctx context.Context, name string, projectID uuid.UUID) error
// PatchProviderConfig updates the configuration of the specified provider with the specified patch.
// All keys in the configMap will overwrite the fields in the provider config.
PatchProviderConfig(ctx context.Context, providerName string, projectID uuid.UUID, configPatch map[string]any) error
// IterateWebhookHandlers iterates over the classes and returns the associated webhook handler
IterateWebhookHandlers() iter.Seq2[string, http.Handler]
}
ProviderManager encapsulates operations for manipulating Provider instances
func NewProviderManager ¶
func NewProviderManager( ctx context.Context, store providers.ProviderStore, classManagers ...ProviderClassManager, ) (ProviderManager, func(), error)
NewProviderManager creates a new instance of ProviderManager
Directories
¶
| Path | Synopsis |
|---|---|
|
Package mock_manager is a generated GoMock package.
|
Package mock_manager is a generated GoMock package. |
|
fixtures
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code.
|
Package fixtures contains code for creating ProfileService fixtures and is used in various parts of the code. |