repository

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2021 License: MIT Imports: 8 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 GenerateRandomBytes

func GenerateRandomBytes(n int) (string, error)

NewRandomString generates a random string. It panics if the source of randomness fails.

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 AWSIntegrationRepository

type AWSIntegrationRepository interface {
	CreateAWSIntegration(am *ints.AWSIntegration) (*ints.AWSIntegration, error)
	OverwriteAWSIntegration(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 AuthCodeRepository

type AuthCodeRepository interface {
	CreateAuthCode(a *models.AuthCode) (*models.AuthCode, error)
	ReadAuthCode(code string) (*models.AuthCode, error)
}

AuthCodeRepository represents the set of queries on the AuthCode model

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 DNSRecordRepository

type DNSRecordRepository interface {
	CreateDNSRecord(record *models.DNSRecord) (*models.DNSRecord, error)
}

DNSRecordRepository represents the set of queries on the DNSRecord 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 GitActionConfigRepository

type GitActionConfigRepository interface {
	CreateGitActionConfig(gr *models.GitActionConfig) (*models.GitActionConfig, error)
	ReadGitActionConfig(id uint) (*models.GitActionConfig, error)
}

GitActionConfigRepository represents the set of queries on the GitActionConfig model

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 InfraRepository

type InfraRepository interface {
	CreateInfra(repo *models.Infra) (*models.Infra, error)
	ReadInfra(id uint) (*models.Infra, error)
	ListInfrasByProjectID(projectID uint) ([]*models.Infra, error)
	UpdateInfra(repo *models.Infra) (*models.Infra, error)
}

InfraRepository represents the set of queries on the Infra model

type InviteRepository

type InviteRepository interface {
	CreateInvite(invite *models.Invite) (*models.Invite, error)
	ReadInvite(id uint) (*models.Invite, error)
	ReadInviteByToken(token string) (*models.Invite, error)
	ListInvitesByProjectID(projectID uint) ([]*models.Invite, error)
	UpdateInvite(invite *models.Invite) (*models.Invite, error)
	DeleteInvite(invite *models.Invite) error
}

InviteRepository represents the set of queries on the Invite 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)
	UpdateOAuthIntegration(am *ints.OAuthIntegration) (*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 PWResetTokenRepository

type PWResetTokenRepository interface {
	CreatePWResetToken(pwToken *models.PWResetToken) (*models.PWResetToken, error)
	ReadPWResetToken(id uint) (*models.PWResetToken, error)
	UpdatePWResetToken(pwToken *models.PWResetToken) (*models.PWResetToken, error)
}

PWResetTokenRepository represents the set of queries on the PWResetToken model

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(clusterID uint, name, namespace string) (*models.Release, error)
	ReadReleaseByWebhookToken(token string) (*models.Release, error)
	ListReleasesByImageRepoURI(clusterID uint, imageRepoURI 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
	Infra            InfraRepository
	GitActionConfig  GitActionConfigRepository
	Invite           InviteRepository
	AuthCode         AuthCodeRepository
	DNSRecord        DNSRecordRepository
	PWResetToken     PWResetTokenRepository
	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)
	ReadUserByGithubUserID(id int64) (*models.User, error)
	ReadUserByGoogleUserID(id 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