repository

package
v0.1.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decrypt

func Decrypt(ciphertext []byte, key *[32]byte) (plaintext []byte, err error)

Decrypt decrypts data using 256-bit AES-GCM. This both hides the content of the data and provides a check that it hasn't been altered. Expects input form nonce|ciphertext|tag where '|' indicates concatenation.

func Encrypt

func Encrypt(plaintext []byte, key *[32]byte) (ciphertext []byte, err error)

Encrypt encrypts data using 256-bit AES-GCM. This both hides the content of the data and provides a check that it hasn't been altered. Output takes the form nonce|ciphertext|tag where '|' indicates concatenation.

func NewEncryptionKey

func NewEncryptionKey() *[32]byte

NewEncryptionKey generates a random 256-bit key for Encrypt() and Decrypt(). It panics if the source of randomness fails.

Types

type AWSInfraRepository

type AWSInfraRepository interface {
	CreateAWSInfra(repo *models.AWSInfra) (*models.AWSInfra, error)
	ReadAWSInfra(id uint) (*models.AWSInfra, error)
	ListAWSInfrasByProjectID(projectID uint) ([]*models.AWSInfra, error)
	UpdateAWSInfra(repo *models.AWSInfra) (*models.AWSInfra, error)
}

AWSInfraRepository represents the set of queries on the AWSInfra model

type AWSIntegrationRepository

type AWSIntegrationRepository interface {
	CreateAWSIntegration(am *ints.AWSIntegration) (*ints.AWSIntegration, error)
	ReadAWSIntegration(id uint) (*ints.AWSIntegration, error)
	ListAWSIntegrationsByProjectID(projectID uint) ([]*ints.AWSIntegration, error)
}

AWSIntegrationRepository represents the set of queries on the AWS auth mechanism

type BasicIntegrationRepository

type BasicIntegrationRepository interface {
	CreateBasicIntegration(am *ints.BasicIntegration) (*ints.BasicIntegration, error)
	ReadBasicIntegration(id uint) (*ints.BasicIntegration, error)
	ListBasicIntegrationsByProjectID(projectID uint) ([]*ints.BasicIntegration, error)
}

BasicIntegrationRepository represents the set of queries on the "basic" auth mechanism

type ClusterRepository

type ClusterRepository interface {
	CreateClusterCandidate(cc *models.ClusterCandidate) (*models.ClusterCandidate, error)
	ReadClusterCandidate(id uint) (*models.ClusterCandidate, error)
	ListClusterCandidatesByProjectID(projectID uint) ([]*models.ClusterCandidate, error)
	UpdateClusterCandidateCreatedClusterID(id uint, createdClusterID uint) (*models.ClusterCandidate, error)

	CreateCluster(cluster *models.Cluster) (*models.Cluster, error)
	ReadCluster(id uint) (*models.Cluster, error)
	ListClustersByProjectID(projectID uint) ([]*models.Cluster, error)
	UpdateCluster(cluster *models.Cluster) (*models.Cluster, error)
	UpdateClusterTokenCache(tokenCache *ints.ClusterTokenCache) (*models.Cluster, error)
	DeleteCluster(cluster *models.Cluster) error
}

ClusterRepository represents the set of queries on the Cluster model

type GCPIntegrationRepository

type GCPIntegrationRepository interface {
	CreateGCPIntegration(am *ints.GCPIntegration) (*ints.GCPIntegration, error)
	ReadGCPIntegration(id uint) (*ints.GCPIntegration, error)
	ListGCPIntegrationsByProjectID(projectID uint) ([]*ints.GCPIntegration, error)
}

GCPIntegrationRepository represents the set of queries on the GCP auth mechanism

type GitRepoRepository

type GitRepoRepository interface {
	CreateGitRepo(gr *models.GitRepo) (*models.GitRepo, error)
	ReadGitRepo(id uint) (*models.GitRepo, error)
	ListGitReposByProjectID(projectID uint) ([]*models.GitRepo, error)
	UpdateGitRepo(gr *models.GitRepo) (*models.GitRepo, error)
	DeleteGitRepo(gr *models.GitRepo) error
}

GitRepoRepository represents the set of queries on the GitRepo model

type HelmRepoRepository

type HelmRepoRepository interface {
	CreateHelmRepo(repo *models.HelmRepo) (*models.HelmRepo, error)
	ReadHelmRepo(id uint) (*models.HelmRepo, error)
	ListHelmReposByProjectID(projectID uint) ([]*models.HelmRepo, error)
	UpdateHelmRepo(repo *models.HelmRepo) (*models.HelmRepo, error)
	UpdateHelmRepoTokenCache(tokenCache *ints.HelmRepoTokenCache) (*models.HelmRepo, error)
	DeleteHelmRepo(repo *models.HelmRepo) error
}

HelmRepoRepository represents the set of queries on the HelmRepo model

type KubeIntegrationRepository

type KubeIntegrationRepository interface {
	CreateKubeIntegration(am *ints.KubeIntegration) (*ints.KubeIntegration, error)
	ReadKubeIntegration(id uint) (*ints.KubeIntegration, error)
	ListKubeIntegrationsByProjectID(projectID uint) ([]*ints.KubeIntegration, error)
}

KubeIntegrationRepository represents the set of queries on the OIDC auth mechanism

type OAuthIntegrationRepository

type OAuthIntegrationRepository interface {
	CreateOAuthIntegration(am *ints.OAuthIntegration) (*ints.OAuthIntegration, error)
	ReadOAuthIntegration(id uint) (*ints.OAuthIntegration, error)
	ListOAuthIntegrationsByProjectID(projectID uint) ([]*ints.OAuthIntegration, error)
}

OAuthIntegrationRepository represents the set of queries on the oauth mechanism

type OIDCIntegrationRepository

type OIDCIntegrationRepository interface {
	CreateOIDCIntegration(am *ints.OIDCIntegration) (*ints.OIDCIntegration, error)
	ReadOIDCIntegration(id uint) (*ints.OIDCIntegration, error)
	ListOIDCIntegrationsByProjectID(projectID uint) ([]*ints.OIDCIntegration, error)
}

OIDCIntegrationRepository represents the set of queries on the OIDC auth mechanism

type ProjectRepository

type ProjectRepository interface {
	CreateProject(project *models.Project) (*models.Project, error)
	CreateProjectRole(project *models.Project, role *models.Role) (*models.Role, error)
	ReadProject(id uint) (*models.Project, error)
	ListProjectsByUserID(userID uint) ([]*models.Project, error)
	DeleteProject(project *models.Project) (*models.Project, error)
}

ProjectRepository represents the set of queries on the Project model

type RegistryRepository

type RegistryRepository interface {
	CreateRegistry(reg *models.Registry) (*models.Registry, error)
	ReadRegistry(id uint) (*models.Registry, error)
	ListRegistriesByProjectID(projectID uint) ([]*models.Registry, error)
	UpdateRegistry(reg *models.Registry) (*models.Registry, error)
	UpdateRegistryTokenCache(tokenCache *ints.RegTokenCache) (*models.Registry, error)
	DeleteRegistry(reg *models.Registry) error
}

RegistryRepository represents the set of queries on the Registry model

type ReleaseRepository

type ReleaseRepository interface {
	CreateRelease(release *models.Release) (*models.Release, error)
	ReadRelease(name string, namespace string) (*models.Release, error)
	ReadReleaseByWebhookToken(token string) (*models.Release, error)
	UpdateRelease(release *models.Release) (*models.Release, error)
	DeleteRelease(release *models.Release) (*models.Release, error)
}

ReleaseRepository represents the set of queries on the Release model

type Repository

type Repository struct {
	User             UserRepository
	Project          ProjectRepository
	Release          ReleaseRepository
	Session          SessionRepository
	GitRepo          GitRepoRepository
	Cluster          ClusterRepository
	HelmRepo         HelmRepoRepository
	Registry         RegistryRepository
	AWSInfra         AWSInfraRepository
	KubeIntegration  KubeIntegrationRepository
	BasicIntegration BasicIntegrationRepository
	OIDCIntegration  OIDCIntegrationRepository
	OAuthIntegration OAuthIntegrationRepository
	GCPIntegration   GCPIntegrationRepository
	AWSIntegration   AWSIntegrationRepository
}

Repository collects the repositories for each model

type SessionRepository

type SessionRepository interface {
	CreateSession(session *models.Session) (*models.Session, error)
	UpdateSession(session *models.Session) (*models.Session, error)
	DeleteSession(session *models.Session) (*models.Session, error)
	SelectSession(session *models.Session) (*models.Session, error)
}

SessionRepository represents the set of queries on the Session model

type UserRepository

type UserRepository interface {
	CreateUser(user *models.User) (*models.User, error)
	CheckPassword(id int, pwd string) (bool, error)
	ReadUser(id uint) (*models.User, error)
	ReadUserByEmail(email string) (*models.User, error)
	UpdateUser(user *models.User) (*models.User, error)
	DeleteUser(user *models.User) (*models.User, error)
}

UserRepository represents the set of queries on the User model

type WriteProject

type WriteProject func(project *models.Project) (*models.Project, error)

WriteProject is the function type for all Project write operations

type WriteRelease

type WriteRelease func(release *models.Release) (*models.Release, error)

WriteRelease is the function type for all Release write operations

type WriteUser

type WriteUser func(user *models.User) (*models.User, error)

WriteUser is the function type for all User write operations

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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