Documentation
¶
Overview ¶
Package providers contains general utilities for interacting with providers.
Index ¶
- func DBToPBAuthFlow(t db.AuthorizationFlow) (minderv1.AuthorizationFlow, bool)
- func DBToPBType(t db.ProviderType) (minderv1.ProviderType, bool)
- func GetCredentialStateForProvider(ctx context.Context, prov db.Provider, s db.Store, cryptoEngine crypto.Engine, ...) (string, error)
- func ListProviderClasses() []string
- type ErrProviderInvalidConfig
- type ErrProviderNotFoundBy
- type ProviderClassDefinition
- type ProviderStore
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DBToPBAuthFlow ¶
func DBToPBAuthFlow(t db.AuthorizationFlow) (minderv1.AuthorizationFlow, bool)
DBToPBAuthFlow converts a database authorization flow to a protobuf authorization flow.
func DBToPBType ¶
func DBToPBType(t db.ProviderType) (minderv1.ProviderType, bool)
DBToPBType converts a database provider type to a protobuf provider type.
func GetCredentialStateForProvider ¶
func GetCredentialStateForProvider( ctx context.Context, prov db.Provider, s db.Store, cryptoEngine crypto.Engine, provCfg *serverconfig.ProviderConfig, ) (string, error)
GetCredentialStateForProvider returns the credential state for the given provider.
func ListProviderClasses ¶
func ListProviderClasses() []string
ListProviderClasses returns a list of provider classes.
Types ¶
type ErrProviderInvalidConfig ¶
type ErrProviderInvalidConfig struct {
Details string
}
ErrProviderInvalidConfig is an error type which is returned when a provider configuration is invalid
func NewErrProviderInvalidConfig ¶
func NewErrProviderInvalidConfig(details string) ErrProviderInvalidConfig
NewErrProviderInvalidConfig returns a new instance of ErrProviderInvalidConfig with details about the invalid configuration. This is meant for user-facing errors so that the only thing displayed to the user is the details of the error.
func (ErrProviderInvalidConfig) Error ¶
func (e ErrProviderInvalidConfig) Error() string
type ErrProviderNotFoundBy ¶
ErrProviderNotFoundBy is an error type which is returned when a provider is not found
func (ErrProviderNotFoundBy) Error ¶
func (e ErrProviderNotFoundBy) Error() string
type ProviderClassDefinition ¶
type ProviderClassDefinition struct {
Traits []db.ProviderType
AuthorizationFlows []db.AuthorizationFlow
}
ProviderClassDefinition contains the static fields needed when creating a provider
func GetProviderClassDefinition ¶
func GetProviderClassDefinition(class string) (ProviderClassDefinition, error)
GetProviderClassDefinition returns the provider definition for the given provider class
type ProviderStore ¶
type ProviderStore interface {
// Create creates a new provider in the database
Create(
ctx context.Context, providerClass db.ProviderClass, name string, projectID uuid.UUID, config json.RawMessage,
) (*db.Provider, error)
// GetByID returns the provider identified by its UUID primary key.
// This should only be used in places when it is certain that the requester
// is authorized to access this provider.
GetByID(ctx context.Context, providerID uuid.UUID) (*db.Provider, error)
// GetByIDProject returns the provider identified by its UUID primary key.
// ProjectID is also used in the query to prevent unauthorized access
// when used in API endpoints
GetByIDProject(ctx context.Context, providerID uuid.UUID, projectID uuid.UUID) (*db.Provider, error)
// GetByName returns the provider instance in the database as
// identified by its project ID and name. All parent projects of the
// specified project are included in the search.
GetByName(ctx context.Context, projectID uuid.UUID, name string) (*db.Provider, error)
// GetByNameInSpecificProject returns the provider instance in the database as
// identified by its project ID and name. Unlike `GetByName` it will only
// search in the specified project, and ignore the project hierarchy.
GetByNameInSpecificProject(ctx context.Context, projectID uuid.UUID, name string) (*db.Provider, error)
// GetByTraitInHierarchy returns the providers in the project which match the
// specified trait. All parent projects of the specified project are
// included in the search. The providers are optionally filtered by name.
// Note that if error is nil, there will always be at least one element
// in the list of providers which is returned.
GetByTraitInHierarchy(
ctx context.Context,
projectID uuid.UUID,
name string,
trait db.ProviderType,
) ([]db.Provider, error)
// Delete removes the provider configuration from the database
Delete(ctx context.Context, providerID uuid.UUID, projectID uuid.UUID) error
// Update updates the provider configuration in the database
Update(ctx context.Context, providerID uuid.UUID, projectID uuid.UUID, config json.RawMessage) error
}
ProviderStore provides methods for retrieving Providers from the database
func NewProviderStore ¶
func NewProviderStore(store db.Store) ProviderStore
NewProviderStore returns a new instance of ProviderStore.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package artifact provides functions and utilities for artifact providers
|
Package artifact provides functions and utilities for artifact providers |
|
Package credentials provides the implementations for the credentials
|
Package credentials provides the implementations for the credentials |
|
Package dockerhub provides a client for interacting with Docker Hub
|
Package dockerhub provides a client for interacting with Docker Hub |
|
Package git provides a client for interacting with Git providers
|
Package git provides a client for interacting with Git providers |
|
memboxfs
Package memboxfs provides a billy.Fs-compatible filesystem implementation which limits the maxiumum size of the in-memory filesystem.
|
Package memboxfs provides a billy.Fs-compatible filesystem implementation which limits the maxiumum size of the in-memory filesystem. |
|
Package github provides a client for interacting with the GitHub API
|
Package github provides a client for interacting with the GitHub API |
|
clients
Package clients contains github client logic
|
Package clients contains github client logic |
|
clients/mock
Package mock_clients is a generated GoMock package.
|
Package mock_clients is a generated GoMock package. |
|
common
Package common provides common utilities for the GitHub provider
|
Package common provides common utilities for the GitHub provider |
|
ghcr
Package ghcr provides a client for interacting with the GitHub Container Registry
|
Package ghcr provides a client for interacting with the GitHub Container Registry |
|
installations
Package installations contains logic relating to GitHub provider installations
|
Package installations contains logic relating to GitHub provider installations |
|
manager
Package manager contains the GitHubProviderClassManager
|
Package manager contains the GitHubProviderClassManager |
|
mock
Package mock_github is a generated GoMock package.
|
Package mock_github is a generated GoMock package. |
|
mock/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. |
|
properties
Package properties provides utility functions for fetching and managing properties
|
Package properties provides utility functions for fetching and managing properties |
|
service
Package service contains the GitHubProviderService
|
Package service contains the GitHubProviderService |
|
service/mock
Package mock_service is a generated GoMock package.
|
Package mock_service is a generated GoMock package. |
|
webhook
Package webhook implements github webhook handlers for the github provider
|
Package webhook implements github webhook handlers for the github provider |
|
Package gitlab provides the GitLab OAuth provider implementation
|
Package gitlab provides the GitLab OAuth provider implementation |
|
manager
Package manager contains the GitLabProviderClassManager
|
Package manager contains the GitLabProviderClassManager |
|
webhooksecret
Package webhooksecret provides a way to generate and verify secrets for GitLab webhooks.
|
Package webhooksecret provides a way to generate and verify secrets for GitLab webhooks. |
|
Package http implements an HTTP client for interacting with an HTTP API.
|
Package http implements an HTTP client for interacting with an HTTP API. |
|
Package manager contains logic for creating Provider instances
|
Package manager contains logic for creating Provider instances |
|
mock
Package mock_manager is a generated GoMock package.
|
Package mock_manager is a generated GoMock package. |
|
mock/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. |
|
Package mock_providers is a generated GoMock package.
|
Package mock_providers is a generated GoMock package. |
|
fixtures
Package fixtures contains code for creating ProviderStore fixtures and is used in various parts of the code.
|
Package fixtures contains code for creating ProviderStore fixtures and is used in various parts of the code. |
|
Package noop provides a no-op provider implementation.
|
Package noop provides a no-op provider implementation. |
|
Package oci provides a client for interacting with OCI registries
|
Package oci provides a client for interacting with OCI registries |
|
Package ratecache provides a cache for the REST clients
|
Package ratecache provides a cache for the REST clients |
|
mock
Package mock_ratecache is a generated GoMock package.
|
Package mock_ratecache is a generated GoMock package. |
|
Package selectors provides the conversion of entities to SelectorEntities
|
Package selectors provides the conversion of entities to SelectorEntities |
|
Package session contains the business logic for creating providers from session state.
|
Package session contains the business logic for creating providers from session state. |
|
mock
Package mock_session is a generated GoMock package.
|
Package mock_session is a generated GoMock package. |
|
Package telemetry provides the telemetry interfaces and implementations for providers
|
Package telemetry provides the telemetry interfaces and implementations for providers |
|
Package testproviders provides test implementations of the provider interfaces.
|
Package testproviders provides test implementations of the provider interfaces. |