db

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type WorkspaceDB

type WorkspaceDB struct {
	DB        *sql.DB
	AWSConfig *appconfig.AWSConfig
}

WorkspaceDB wraps database, events, and logging functionalities.

func NewWorkspaceDB

func NewWorkspaceDB(awsConfig appconfig.AWSConfig) (*WorkspaceDB, error)

NewWorkspaceDB initializes a WorkspaceDB instance with a database connection.

func (*WorkspaceDB) CheckAccountIsVerified

func (db *WorkspaceDB) CheckAccountIsVerified(accountID uuid.UUID) (bool, error)

CheckAccountIsVerified checks if an account is verified and approved to use.

func (*WorkspaceDB) CheckWorkspaceExists

func (db *WorkspaceDB) CheckWorkspaceExists(name string) (bool, error)

CheckWorkspaceExists checks if a workspace with the specified name already exists.

func (*WorkspaceDB) Close

func (w *WorkspaceDB) Close() error

Close closes the database connection and event notifier.

func (*WorkspaceDB) CommitTransaction

func (w *WorkspaceDB) CommitTransaction(tx *sql.Tx) error

CommitTransaction commits a given transaction

func (*WorkspaceDB) CreateAccount

func (w *WorkspaceDB) CreateAccount(req *ws_services.Account) (*ws_services.Account, error)

CreateAccount creates a new account in the database.

func (*WorkspaceDB) CreateAccountApprovalToken

func (w *WorkspaceDB) CreateAccountApprovalToken(accountID uuid.UUID) (string, error)

CreateAccountApproval stores an approval request in the database

func (*WorkspaceDB) CreateWorkspace

func (w *WorkspaceDB) CreateWorkspace(req *ws_manager.WorkspaceSettings) (*sql.Tx, error)

CreateWorkspace starts a transaction to insert a new workspace record.

func (*WorkspaceDB) DeleteAccount

func (w *WorkspaceDB) DeleteAccount(accountID uuid.UUID) error

DeleteAccount deletes an account from the database by its ID.

func (*WorkspaceDB) DisableWorkspace

func (w *WorkspaceDB) DisableWorkspace(workspaceName string) error

func (*WorkspaceDB) GetAccount

func (db *WorkspaceDB) GetAccount(accountID uuid.UUID) (*ws_services.Account, error)

GetAccount retrieves a single account.

func (*WorkspaceDB) GetAccounts

func (db *WorkspaceDB) GetAccounts(accountOwner string) ([]ws_services.Account, error)

GetAccounts retrieves all accounts owned by the specified account owner.

func (*WorkspaceDB) GetAllWorkspaces

func (db *WorkspaceDB) GetAllWorkspaces() ([]string, error)

GetAllWorkspaces retrieves all workspaces.

func (*WorkspaceDB) GetOwnedWorkspaces

func (db *WorkspaceDB) GetOwnedWorkspaces(username string) ([]ws_manager.WorkspaceSettings, error)

GetOwnedWorkspaces retrieves workspaces owned by the specified username.

func (*WorkspaceDB) GetUserWorkspaces

func (db *WorkspaceDB) GetUserWorkspaces(memberGroups []string) ([]ws_manager.WorkspaceSettings, error)

GetUserWorkspaces retrieves workspaces accessible to the specified member groups.

func (*WorkspaceDB) GetWorkspace

func (db *WorkspaceDB) GetWorkspace(workspace_name string) (*ws_manager.WorkspaceSettings, error)

getWorkspace retrieves a workspace by name.

func (*WorkspaceDB) IsUserAccountOwner

func (db *WorkspaceDB) IsUserAccountOwner(username, workspaceID string) (bool, error)

func (*WorkspaceDB) Migrate

func (w *WorkspaceDB) Migrate() error

Migrate runs database migrations.

func (*WorkspaceDB) UpdateAccount

func (w *WorkspaceDB) UpdateAccount(accountID uuid.UUID, account ws_services.Account) (*ws_services.Account, error)

UpdateAccount updates an existing account's details.

func (*WorkspaceDB) UpdateAccountStatus

func (w *WorkspaceDB) UpdateAccountStatus(token, accountID, status string) error

UpdateAccountStatus changes the status of an account and removes the token from being used again

func (*WorkspaceDB) UpdateWorkspaceStatus

func (w *WorkspaceDB) UpdateWorkspaceStatus(status ws_manager.WorkspaceStatus) error

func (*WorkspaceDB) ValidateApprovalToken

func (w *WorkspaceDB) ValidateApprovalToken(token string) (string, error)

ValidateApprovalToken checks if the token is valid and retrieves the account ID

type WorkspaceDBInterface

type WorkspaceDBInterface interface {
	Close() error
	GetAccounts(accountOwner string) ([]ws_services.Account, error)
	GetAccount(accountID uuid.UUID) (*ws_services.Account, error)
	CreateAccount(req *ws_services.Account) (*ws_services.Account, error)
	UpdateAccount(accountID uuid.UUID, account ws_services.Account) (*ws_services.Account, error)
	DeleteAccount(accountID uuid.UUID) error
	CheckAccountIsVerified(accountID uuid.UUID) (bool, error)
	IsUserAccountOwner(username, workspaceID string) (bool, error)
	CreateAccountApprovalToken(accountID uuid.UUID) (string, error)
	ValidateApprovalToken(token string) (string, error)
	UpdateAccountStatus(token, accountID, status string) error
	GetWorkspace(workspace_name string) (*ws_manager.WorkspaceSettings, error)
	GetUserWorkspaces(memberGroups []string) ([]ws_manager.WorkspaceSettings, error)
	GetOwnedWorkspaces(username string) ([]ws_manager.WorkspaceSettings, error)
	CheckWorkspaceExists(name string) (bool, error)
	UpdateWorkspaceStatus(status ws_manager.WorkspaceStatus) error
	DisableWorkspace(workspaceName string) error
	CreateWorkspace(req *ws_manager.WorkspaceSettings) (*sql.Tx, error)
	CommitTransaction(tx *sql.Tx) error
}

WorkspaceDBInterface defines the database operations.

Jump to

Keyboard shortcuts

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