repository

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2023 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type Capsule

type Capsule interface {
	Create(ctx context.Context, c *capsule.Capsule) error
	Get(ctx context.Context, capsuleID uuid.UUID) (*capsule.Capsule, error)
	GetByName(ctx context.Context, name string) (*capsule.Capsule, error)
	List(ctx context.Context, pagination *model.Pagination) (iterator.Iterator[*capsule.Capsule], int64, error)
	Update(ctx context.Context, p *capsule.Capsule) error
	Delete(ctx context.Context, capsuleID uuid.UUID) error

	CreateBuild(ctx context.Context, capsuleID uuid.UUID, b *capsule.Build) error
	DeleteBuild(ctx context.Context, capsuleID uuid.UUID, buildID string) error
	ListBuilds(ctx context.Context, pagination *model.Pagination, capsuleID uuid.UUID) (iterator.Iterator[*capsule.Build], uint64, error)
	GetBuild(ctx context.Context, capsuleID uuid.UUID, buildID string) (*capsule.Build, error)

	CreateRollout(ctx context.Context, capsuleID uuid.UUID, rc *capsule.RolloutConfig, rs *rollout.Status) (uint64, error)
	ListRollouts(ctx context.Context, pagination *model.Pagination, capsuleID uuid.UUID) (iterator.Iterator[*capsule.Rollout], uint64, error)
	UpdateRolloutStatus(ctx context.Context, capsuleID uuid.UUID, rolloutID uint64, version uint64, rs *rollout.Status) error
	GetRollout(ctx context.Context, capsuleID uuid.UUID, rolloutID uint64) (*capsule.RolloutConfig, *rollout.Status, uint64, error)
	ActiveRollouts(ctx context.Context, pagination *model.Pagination) (iterator.Iterator[repo_capsule.ActiveRollout], error)

	CreateEvent(ctx context.Context, capsuleID uuid.UUID, e *capsule.Event) error
	ListEvents(ctx context.Context, pagination *model.Pagination, capsuleID uuid.UUID, rolloutID uint64) (iterator.Iterator[*capsule.Event], uint64, error)

	CreateMetrics(ctx context.Context, metrics *capsule.InstanceMetrics) error
	ListMetrics(ctx context.Context, pagination *model.Pagination) (iterator.Iterator[*capsule.InstanceMetrics], error)
	GetMetrics(ctx context.Context, pagination *model.Pagination, capsuleID uuid.UUID) (iterator.Iterator[*capsule.InstanceMetrics], error)
	GetInstanceMetrics(ctx context.Context, pagination *model.Pagination, capsuleID uuid.UUID, instanceID string) (iterator.Iterator[*capsule.InstanceMetrics], error)

	BuildIndexes(ctx context.Context) error
}

func NewCapsule

func NewCapsule(p params) (Capsule, error)

type Database

type Database interface {
	Create(ctx context.Context, database *database.Database) (*database.Database, error)
	Delete(ctx context.Context, databaseID uuid.UUID) error
	GetByName(ctx context.Context, name string) (*database.Database, error)

	Get(ctx context.Context, databaseID uuid.UUID) (*database.Database, error)
	List(ctx context.Context, pagination *model.Pagination) (iterator.Iterator[*database.Database], uint64, error)

	Update(ctx context.Context, database *database.Database) (*database.Database, error)

	BuildIndexes(ctx context.Context) error
}

func NewDatabase

func NewDatabase(p params) (Database, error)

type Group

type Group interface {
	Create(ctx context.Context, group *group.Group) (*group.Group, error)
	Delete(ctx context.Context, groupID uuid.UUID) error
	DeleteAll(ctx context.Context) error
	Get(ctx context.Context, groupID uuid.UUID) (*group.Group, error)
	GetByName(ctx context.Context, groupName string) (*group.Group, error)
	List(ctx context.Context, pagination *model.Pagination, search string) (iterator.Iterator[*group.Group], uint64, error)
	Count(ctx context.Context) (int64, error)
	Update(ctx context.Context, group *group.Group) (*group.Group, error)
	RemoveMember(ctx context.Context, userID, groupID uuid.UUID) error
	RemoveMemberFromAll(ctx context.Context, userID uuid.UUID) error
	AddMembers(ctx context.Context, userIDs []uuid.UUID, groupID uuid.UUID) error
	ListGroupsForUser(ctx context.Context, userID uuid.UUID, pagination *model.Pagination) (iterator.Iterator[uuid.UUID], uint64, error)
	ListMembers(ctx context.Context, groupID uuid.UUID, pagination *model.Pagination) (iterator.Iterator[uuid.UUID], uint64, error)
	CountMembers(ctx context.Context, groupID uuid.UUID) (uint64, error)

	BuildIndexes(ctx context.Context) error
}

func NewGroup

func NewGroup(p params) (Group, error)

type Project

type Project interface {
	Create(ctx context.Context, p *project.Project) (*project.Project, error)
	Get(ctx context.Context, projectID uuid.UUID) (*project.Project, error)
	List(ctx context.Context, pagination *model.Pagination, exclude []uuid.UUID) (iterator.Iterator[*project.Project], int64, error)
	Update(ctx context.Context, p *project.Project) (*project.Project, error)
	Delete(ctx context.Context, projectID uuid.UUID) error
	SetSettings(ctx context.Context, projectID uuid.UUID, settingsName string, data []byte) error
	GetSettings(ctx context.Context, projectID uuid.UUID, settingsName string) ([]byte, error)
	BuildIndexes(ctx context.Context) error
}

func NewProjects

func NewProjects(p params) (Project, error)

type Secret

type Secret interface {
	Create(ctx context.Context, secretID uuid.UUID, secret []byte) error
	Update(ctx context.Context, secretID uuid.UUID, secret []byte) error
	Get(ctx context.Context, secretID uuid.UUID) ([]byte, error)
	Delete(ctx context.Context, secretID uuid.UUID) error
}

func NewSecret

func NewSecret(p params) (Secret, error)

type ServiceAccount

type ServiceAccount interface {
	Create(ctx context.Context, serviceAccountID uuid.UUID, c *service_account.ServiceAccount) error
	List(ctx context.Context) (iterator.Iterator[*service_account.Entry], error)
	Get(ctx context.Context, serviceAccountID uuid.UUID) (uuid.UUID, *service_account.ServiceAccount, error)
	GetClientSecret(ctx context.Context, serviceAccountID uuid.UUID) (*model.HashingInstance, error)
	UpdateClientSecret(ctx context.Context, serviceAccountID uuid.UUID, pw *model.HashingInstance) error
	Delete(ctx context.Context, serviceAccountID uuid.UUID) error
	BuildIndexes(ctx context.Context) error
}

func NewServiceAccount

func NewServiceAccount(p params) (ServiceAccount, error)

type Session

type Session interface {
	Create(ctx context.Context, userID, sessionID uuid.UUID, s *user.Session) error
	Update(ctx context.Context, userID, sessionID uuid.UUID, s *user.Session) error
	List(ctx context.Context, userID uuid.UUID) (iterator.Iterator[*user.SessionEntry], error)
	Get(ctx context.Context, userID, sessionID uuid.UUID) (*user.Session, error)
	Delete(ctx context.Context, userID, sessionID uuid.UUID) error
	BuildIndexes(ctx context.Context) error
}

func NewSession

func NewSession(p params) (Session, error)

type Storage

type Storage interface {
	Create(ctx context.Context, providerID, secretID uuid.UUID, provider *storage.Provider) (*storage.Provider, error)
	Delete(ctx context.Context, providerID uuid.UUID) error
	Get(ctx context.Context, providerID uuid.UUID) (*storage.Provider, uuid.UUID, error)
	List(ctx context.Context, pagination *model.Pagination) (iterator.Iterator[*storage.ProviderEntry], uint64, error)
	Update(ctx context.Context, providerID uuid.UUID, provider *storage.Provider) (*storage.Provider, error)
	LookupByBucket(ctx context.Context, bucket string) (uuid.UUID, *storage.Provider, uuid.UUID, error)
	Lookup(ctx context.Context, name string) (uuid.UUID, *storage.Provider, uuid.UUID, error)
	BuildIndexes(ctx context.Context) error
}

func NewStorage

func NewStorage(p params) (Storage, error)

type User

type User interface {
	Create(ctx context.Context, user *user.User) (*user.User, error)
	Update(ctx context.Context, update *user.User) (*user.User, error)

	GetPassword(ctx context.Context, userID uuid.UUID) (*model.HashingInstance, error)
	UpdatePassword(ctx context.Context, userID uuid.UUID, password *model.HashingInstance) error

	Get(ctx context.Context, userID uuid.UUID) (*user.User, error)
	GetByIdentifier(ctx context.Context, id *model.UserIdentifier) (*user.User, error)
	List(ctx context.Context, set *settings.Settings, pagination *model.Pagination, search string) (iterator.Iterator[*model.UserEntry], uint64, error)
	Delete(ctx context.Context, userID uuid.UUID) (*user.User, error)
	DeleteMany(ctx context.Context, userBatch []*model.UserIdentifier) (uint64, error)
	DeleteAll(ctx context.Context) error

	GetOauth2Link(ctx context.Context, issuer string, subject string) (uuid.UUID, *oauth2.ProviderLink, error)
	CreateOauth2Link(ctx context.Context, userID uuid.UUID, p *oauth2.ProviderLink) error
	DeleteOauth2Links(ctx context.Context, userId uuid.UUID) error

	BuildIndexes(ctx context.Context) error
}

func NewUser

func NewUser(p params) (User, error)

type VerificationCode

type VerificationCode interface {
	Create(ctx context.Context, verificationCode *user.VerificationCode) (*user.VerificationCode, error)
	Get(ctx context.Context, userID uuid.UUID, verificationType user.VerificationType) (*user.VerificationCode, error)
	IncreaseAttempts(ctx context.Context, userID uuid.UUID, verificationType user.VerificationType) error
	Delete(ctx context.Context, userID uuid.UUID, verificationType user.VerificationType) error
	BuildIndexes(ctx context.Context) error
}

func NewVerificationCode

func NewVerificationCode(p params) (VerificationCode, error)

Directories

Path Synopsis
mongo
Mongo implements the repository.Group interface.
Mongo implements the repository.Group interface.
database
group
mongo
Mongo implements the repository.Group interface.
Mongo implements the repository.Group interface.
project
mongo
Mongo implements the repository.Group interface.
Mongo implements the repository.Group interface.
secret
service_account
session
storage
user
verification_code

Jump to

Keyboard shortcuts

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