queries

package
v0.0.0-...-b66211f Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2026 License: Apache-2.0 Imports: 7 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveEnv

type ActiveEnv struct {
	ID            string
	CreatedAt     time.Time
	UpdatedAt     time.Time
	Public        bool
	BuildCount    int32
	SpawnCount    int64
	LastSpawnedAt *time.Time
	TeamID        uuid.UUID
	CreatedBy     *uuid.UUID
	ClusterID     *uuid.UUID
	Source        string
}

type AddTeamMemberParams

type AddTeamMemberParams struct {
	UserID  uuid.UUID
	TeamID  uuid.UUID
	AddedBy uuid.UUID
}

type ApplyProjectLimitsProjectionParams

type ApplyProjectLimitsProjectionParams struct {
	ProjectID uuid.UUID
	Revision  int64
}

type CheckAliasExistsInNamespaceParams

type CheckAliasExistsInNamespaceParams struct {
	Alias     string
	Namespace *string
}

type Cluster

type Cluster struct {
	ID                 uuid.UUID
	Endpoint           string
	EndpointTls        bool
	Token              string
	SandboxProxyDomain *string
	AuthOrgID          *string
	Name               string
}

type CreateActiveTemplateBuildParams

type CreateActiveTemplateBuildParams struct {
	BuildID    uuid.UUID
	TeamID     uuid.UUID
	TemplateID string
	Tags       []string
}

type CreateOrUpdateTemplateParams

type CreateOrUpdateTemplateParams struct {
	TemplateID string
	TeamID     uuid.UUID
	CreatedBy  *uuid.UUID
	Public     bool
	ClusterID  *uuid.UUID
}

type CreateSnapshotTemplateEnvParams

type CreateSnapshotTemplateEnvParams struct {
	SnapshotID   string
	TeamID       uuid.UUID
	ClusterID    *uuid.UUID
	SandboxID    string
	OriginNodeID *string
	BuildID      *uuid.UUID
	Tag          string
}

type CreateTemplateAliasParams

type CreateTemplateAliasParams struct {
	Alias      string
	TemplateID string
	Namespace  *string
}

type CreateTemplateBuildAssignmentParams

type CreateTemplateBuildAssignmentParams struct {
	TemplateID string
	BuildID    uuid.UUID
	Tag        string
}

type CreateTemplateBuildParams

type CreateTemplateBuildParams struct {
	BuildID            uuid.UUID
	Status             types.BuildStatus
	RamMb              int64
	Vcpu               int64
	KernelVersion      string
	FirecrackerVersion string
	FreeDiskSizeMb     int64
	StartCmd           *string
	ReadyCmd           *string
	Dockerfile         *string
	Version            *string
}

type CreateVolumeParams

type CreateVolumeParams struct {
	ID         uuid.UUID
	TeamID     uuid.UUID
	VolumeType string
	Name       string
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type DeleteTemplateTagsParams

type DeleteTemplateTagsParams struct {
	TemplateID string
	Tags       []string
}

type DeleteVolumeParams

type DeleteVolumeParams struct {
	TeamID   uuid.UUID
	VolumeID uuid.UUID
}

type EnvAlias

type EnvAlias struct {
	Alias       string
	IsRenamable bool
	EnvID       string
	Namespace   *string
	ID          uuid.UUID
}

type EnvBuild

type EnvBuild struct {
	ID                 uuid.UUID
	CreatedAt          time.Time
	UpdatedAt          time.Time
	FinishedAt         *time.Time
	Status             types.BuildStatus
	Dockerfile         *string
	StartCmd           *string
	Vcpu               int64
	RamMb              int64
	FreeDiskSizeMb     int64
	TotalDiskSizeMb    *int64
	KernelVersion      string
	FirecrackerVersion string
	EnvID              *string
	EnvdVersion        *string
	ReadyCmd           *string
	ClusterNodeID      *string
	Reason             types.BuildReason
	Version            *string
	CpuArchitecture    *string
	CpuFamily          *string
	CpuModel           *string
	CpuModelName       *string
	CpuFlags           []string
	StatusGroup        types.BuildStatusGroup
	TeamID             *uuid.UUID
}

type FailTemplateBuildAndDeactivateParams

type FailTemplateBuildAndDeactivateParams struct {
	Status     types.BuildStatus
	FinishedAt *time.Time
	Reason     types.BuildReason
	Version    *string
	BuildID    uuid.UUID
}

type FinishTemplateBuildParams

type FinishTemplateBuildParams struct {
	TotalDiskSizeMb    *int64
	Status             types.BuildStatus
	EnvdVersion        *string
	KernelVersion      string
	FirecrackerVersion string
	BuildID            uuid.UUID
}

type GetActiveClustersRow

type GetActiveClustersRow struct {
	Cluster Cluster
}

type GetBuildInfoByTeamAndBuildIDParams

type GetBuildInfoByTeamAndBuildIDParams struct {
	TeamID  uuid.UUID
	BuildID uuid.UUID
}

type GetBuildInfoByTeamAndBuildIDRow

type GetBuildInfoByTeamAndBuildIDRow struct {
	CreatedAt  time.Time
	FinishedAt *time.Time
	Status     types.BuildStatus
	Reason     types.BuildReason
	Names      []string
}

type GetBuildsStatusesByTeamParams

type GetBuildsStatusesByTeamParams struct {
	TeamID   uuid.UUID
	BuildIds []uuid.UUID
}

type GetBuildsStatusesByTeamRow

type GetBuildsStatusesByTeamRow struct {
	ID          uuid.UUID
	StatusGroup types.BuildStatusGroup
	Reason      types.BuildReason
	FinishedAt  *time.Time
}

type GetCancellableTemplateBuildsByTeamRow

type GetCancellableTemplateBuildsByTeamRow struct {
	BuildID       uuid.UUID
	TemplateID    string
	ClusterID     *uuid.UUID
	ClusterNodeID *string
}

type GetConcurrentTemplateBuildsParams

type GetConcurrentTemplateBuildsParams struct {
	TemplateID     string
	CurrentBuildID uuid.UUID
}

type GetExclusiveBuildsForTemplateDeletionRow

type GetExclusiveBuildsForTemplateDeletionRow struct {
	BuildID       uuid.UUID
	ClusterNodeID *string
}

type GetInProgressTemplateBuildsByTeamParams

type GetInProgressTemplateBuildsByTeamParams struct {
	TeamID            uuid.UUID
	ExcludeTemplateID string
	ExcludeTags       []string
}

type GetInProgressTemplateBuildsRow

type GetInProgressTemplateBuildsRow struct {
	TeamClusterID *uuid.UUID
	ActiveEnv     ActiveEnv
	EnvBuild      EnvBuild
}

type GetLastSnapshotRow

type GetLastSnapshotRow struct {
	Aliases  []string
	Names    []string
	Snapshot Snapshot
	EnvBuild EnvBuild
}

type GetSandboxRecordByTeamAndSandboxIDParams

type GetSandboxRecordByTeamAndSandboxIDParams struct {
	TeamID    uuid.UUID
	SandboxID string
}

type GetSandboxRecordByTeamAndSandboxIDRow

type GetSandboxRecordByTeamAndSandboxIDRow struct {
	SandboxID       string
	TemplateID      string
	Vcpu            int64
	RamMb           int64
	TotalDiskSizeMb int64
	StartedAt       time.Time
	StoppedAt       *time.Time
	Domain          *string
	Alias           string
}

type GetSnapshotBuildsParams

type GetSnapshotBuildsParams struct {
	SandboxID string
	TeamID    uuid.UUID
}

type GetSnapshotBuildsRow

type GetSnapshotBuildsRow struct {
	TemplateID         string
	BuildID            *uuid.UUID
	BuildClusterNodeID *string
}

type GetSnapshotsByTemplateWithCursorAscParams

type GetSnapshotsByTemplateWithCursorAscParams struct {
	Limit        int32
	TeamID       uuid.UUID
	TemplateID   string
	Metadata     types.JSONBStringMap
	StartedAfter time.Time
	CursorTime   pgtype.Timestamptz
	CursorID     string
}

type GetSnapshotsByTemplateWithCursorAscRow

type GetSnapshotsByTemplateWithCursorAscRow struct {
	Aliases              []string
	Names                []string
	Snapshot             Snapshot
	BuildID              uuid.UUID
	BuildVcpu            int64
	BuildRamMb           int64
	BuildTotalDiskSizeMb *int64
	BuildEnvdVersion     *string
	BuildCreatedAt       time.Time
}

type GetSnapshotsByTemplateWithCursorParams

type GetSnapshotsByTemplateWithCursorParams struct {
	Limit        int32
	TeamID       uuid.UUID
	TemplateID   string
	Metadata     types.JSONBStringMap
	StartedAfter time.Time
	CursorID     string
	CursorTime   pgtype.Timestamptz
}

type GetSnapshotsByTemplateWithCursorRow

type GetSnapshotsByTemplateWithCursorRow struct {
	Aliases              []string
	Names                []string
	Snapshot             Snapshot
	BuildID              uuid.UUID
	BuildVcpu            int64
	BuildRamMb           int64
	BuildTotalDiskSizeMb *int64
	BuildEnvdVersion     *string
	BuildCreatedAt       time.Time
}

type GetSnapshotsWithCursorAscParams

type GetSnapshotsWithCursorAscParams struct {
	Limit        int32
	TeamID       uuid.UUID
	Metadata     types.JSONBStringMap
	StartedAfter time.Time
	CursorTime   pgtype.Timestamptz
	CursorID     string
}

type GetSnapshotsWithCursorAscRow

type GetSnapshotsWithCursorAscRow struct {
	Aliases              []string
	Names                []string
	Snapshot             Snapshot
	BuildID              uuid.UUID
	BuildVcpu            int64
	BuildRamMb           int64
	BuildTotalDiskSizeMb *int64
	BuildEnvdVersion     *string
	BuildCreatedAt       time.Time
}

type GetSnapshotsWithCursorParams

type GetSnapshotsWithCursorParams struct {
	Limit        int32
	TeamID       uuid.UUID
	Metadata     types.JSONBStringMap
	StartedAfter time.Time
	CursorID     string
	CursorTime   pgtype.Timestamptz
}

type GetSnapshotsWithCursorRow

type GetSnapshotsWithCursorRow struct {
	Aliases              []string
	Names                []string
	Snapshot             Snapshot
	BuildID              uuid.UUID
	BuildVcpu            int64
	BuildRamMb           int64
	BuildTotalDiskSizeMb *int64
	BuildEnvdVersion     *string
	BuildCreatedAt       time.Time
}

type GetTeamBuildsPageByBuildIDParams

type GetTeamBuildsPageByBuildIDParams struct {
	TeamID          uuid.UUID
	BuildID         uuid.UUID
	CursorCreatedAt time.Time
	CursorID        uuid.UUID
	Statuses        []string
	LimitPlusOne    int32
}

type GetTeamBuildsPageByBuildIDRow

type GetTeamBuildsPageByBuildIDRow struct {
	ID              uuid.UUID
	StatusGroup     types.BuildStatusGroup
	Reason          types.BuildReason
	CreatedAt       time.Time
	FinishedAt      *time.Time
	Vcpu            int64
	RamMb           int64
	TotalDiskSizeMb *int64
	EnvdVersion     *string
	TemplateID      string
	TemplateAlias   string
}

type GetTeamBuildsPageByTemplateAliasParams

type GetTeamBuildsPageByTemplateAliasParams struct {
	TemplateAlias   string
	TeamID          uuid.UUID
	CursorCreatedAt time.Time
	CursorID        uuid.UUID
	Statuses        []string
	LimitPlusOne    int32
}

type GetTeamBuildsPageByTemplateAliasRow

type GetTeamBuildsPageByTemplateAliasRow struct {
	ID              uuid.UUID
	StatusGroup     types.BuildStatusGroup
	Reason          types.BuildReason
	CreatedAt       time.Time
	FinishedAt      *time.Time
	Vcpu            int64
	RamMb           int64
	TotalDiskSizeMb *int64
	EnvdVersion     *string
	TemplateID      string
	TemplateAlias   string
}

type GetTeamBuildsPageByTemplateIDParams

type GetTeamBuildsPageByTemplateIDParams struct {
	TemplateID      string
	TeamID          uuid.UUID
	CursorCreatedAt time.Time
	CursorID        uuid.UUID
	Statuses        []string
	LimitPlusOne    int32
}

type GetTeamBuildsPageByTemplateIDRow

type GetTeamBuildsPageByTemplateIDRow struct {
	ID              uuid.UUID
	StatusGroup     types.BuildStatusGroup
	Reason          types.BuildReason
	CreatedAt       time.Time
	FinishedAt      *time.Time
	Vcpu            int64
	RamMb           int64
	TotalDiskSizeMb *int64
	EnvdVersion     *string
	TemplateID      string
	TemplateAlias   string
}

type GetTeamBuildsPageParams

type GetTeamBuildsPageParams struct {
	TeamID          uuid.UUID
	CursorCreatedAt time.Time
	CursorID        uuid.UUID
	Statuses        []string
	LimitPlusOne    int32
}

type GetTeamBuildsPageRow

type GetTeamBuildsPageRow struct {
	ID              uuid.UUID
	StatusGroup     types.BuildStatusGroup
	Reason          types.BuildReason
	CreatedAt       time.Time
	FinishedAt      *time.Time
	Vcpu            int64
	RamMb           int64
	TotalDiskSizeMb *int64
	EnvdVersion     *string
	TemplateID      string
	TemplateAlias   string
}

type GetTeamMemberRelationParams

type GetTeamMemberRelationParams struct {
	TeamID uuid.UUID
	UserID uuid.UUID
}

type GetTeamMembersRow

type GetTeamMembersRow struct {
	UserID    uuid.UUID
	TeamID    uuid.UUID
	IsDefault bool
	AddedBy   *uuid.UUID
	CreatedAt pgtype.Timestamp
}

type GetTeamTemplateParams

type GetTeamTemplateParams struct {
	ID     string
	TeamID uuid.UUID
}

type GetTeamTemplateRow

type GetTeamTemplateRow struct {
	ActiveEnv               ActiveEnv
	BuildID                 uuid.UUID
	BuildVcpu               int64
	BuildRamMb              int64
	BuildTotalDiskSizeMb    *int64
	BuildEnvdVersion        *string
	BuildFirecrackerVersion string
	BuildStatus             types.BuildStatusGroup
	Aliases                 []string
	Names                   []string
}

type GetTeamTemplatesRow

type GetTeamTemplatesRow struct {
	ActiveEnv               ActiveEnv
	BuildID                 uuid.UUID
	BuildVcpu               int64
	BuildRamMb              int64
	BuildTotalDiskSizeMb    *int64
	BuildEnvdVersion        *string
	BuildFirecrackerVersion string
	BuildStatus             types.BuildStatusGroup
	CreatorID               *uuid.UUID
	Aliases                 []string
	Names                   []string
}

type GetTeamTemplatesWithCursorParams

type GetTeamTemplatesWithCursorParams struct {
	TeamID          uuid.UUID
	CursorCreatedAt time.Time
	CursorID        string
	LimitPlusOne    int32
}

type GetTeamTemplatesWithCursorRow

type GetTeamTemplatesWithCursorRow struct {
	TemplateID           string
	CreatedAt            time.Time
	UpdatedAt            time.Time
	Public               bool
	BuildCount           int32
	SpawnCount           int64
	LastSpawnedAt        *time.Time
	CreatorID            *uuid.UUID
	BuildID              uuid.UUID
	BuildVcpu            int64
	BuildRamMb           int64
	BuildTotalDiskSizeMb *int64
	BuildEnvdVersion     *string
	BuildStatus          types.BuildStatusGroup
	Aliases              []string
	Names                []string
}

type GetTemplateAliasByAliasRow

type GetTemplateAliasByAliasRow struct {
	Alias       string
	IsRenamable bool
	EnvID       string
	Namespace   *string
	ID          uuid.UUID
	TeamID      uuid.UUID
	Public      bool
}

type GetTemplateAliasesRow

type GetTemplateAliasesRow struct {
	Alias     string
	Namespace *string
	EnvID     string
}

type GetTemplateBuildWithTemplateParams

type GetTemplateBuildWithTemplateParams struct {
	TemplateID string
	BuildID    uuid.UUID
}

type GetTemplateBuildWithTemplateRow

type GetTemplateBuildWithTemplateRow struct {
	ActiveEnv ActiveEnv
	EnvBuild  EnvBuild
}

type GetTemplateBuildsParams

type GetTemplateBuildsParams struct {
	TemplateID string
	CursorTime time.Time
	CursorID   string
	BuildLimit int32
}

type GetTemplateByAliasParams

type GetTemplateByAliasParams struct {
	Alias     string
	Namespace *string
}

type GetTemplateByAliasRow

type GetTemplateByAliasRow struct {
	ID     string
	TeamID uuid.UUID
	Public bool
}

type GetTemplateByIDWithAliasesRow

type GetTemplateByIDWithAliasesRow struct {
	ID            string
	CreatedAt     time.Time
	UpdatedAt     time.Time
	Public        bool
	BuildCount    int32
	SpawnCount    int64
	LastSpawnedAt *time.Time
	TeamID        uuid.UUID
	CreatedBy     *uuid.UUID
	ClusterID     *uuid.UUID
	Source        string
	Aliases       []string
	Names         []string
}

type GetTemplateByIdRow

type GetTemplateByIdRow struct {
	ID        string
	TeamID    uuid.UUID
	Public    bool
	ClusterID *uuid.UUID
}

type GetTemplateForAliasRebuildParams

type GetTemplateForAliasRebuildParams struct {
	TemplateID string
	TeamID     uuid.UUID
}

type GetTemplateForAliasRebuildRow

type GetTemplateForAliasRebuildRow struct {
	ID        string
	ClusterID *uuid.UUID
	Public    bool
}

type GetTemplateWithBuildByTagParams

type GetTemplateWithBuildByTagParams struct {
	Tag        *string
	TemplateID string
}

type GetTemplateWithBuildByTagRow

type GetTemplateWithBuildByTagRow struct {
	ActiveEnv ActiveEnv
	EnvBuild  EnvBuild
	Aliases   []string
	Names     []string
}

type GetVolumeParams

type GetVolumeParams struct {
	VolumeID uuid.UUID
	TeamID   uuid.UUID
}

type GetVolumesByNameParams

type GetVolumesByNameParams struct {
	TeamID      uuid.UUID
	VolumeNames []string
}

type InvalidateUnstartedTemplateBuildsParams

type InvalidateUnstartedTemplateBuildsParams struct {
	Reason     types.BuildReason
	TemplateID string
	Tags       []string
}

type ListTeamSnapshotTemplatesParams

type ListTeamSnapshotTemplatesParams struct {
	Tag        *string
	TeamID     uuid.UUID
	SandboxID  *string
	EnvID      *string
	CursorTime time.Time
	CursorID   string
	PageLimit  int32
}

type ListTeamSnapshotTemplatesRow

type ListTeamSnapshotTemplatesRow struct {
	SnapshotID         string
	SandboxID          string
	CreatedAt          time.Time
	TeamID             uuid.UUID
	BuildID            uuid.UUID
	Vcpu               int64
	RamMb              int64
	TotalDiskSizeMb    *int64
	EnvdVersion        *string
	KernelVersion      string
	FirecrackerVersion string
	ClusterNodeID      *string
	Tag                string
	Names              []string
}

type ListTemplateTagsRow

type ListTemplateTagsRow struct {
	Tag       string
	BuildID   uuid.UUID
	CreatedAt pgtype.Timestamptz
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) AddTeamMember

func (q *Queries) AddTeamMember(ctx context.Context, arg AddTeamMemberParams) error

func (*Queries) ApplyProjectLimitsProjection

func (q *Queries) ApplyProjectLimitsProjection(ctx context.Context, arg ApplyProjectLimitsProjectionParams) (bool, error)

Advances the ledger that decides whether a delivery gets to write, and answers whether it did.

The guard is what makes a delayed retry safe: a delivery carrying a revision at or below the one recorded arrived after a newer one, so it is dropped and the values it carried are never written. The caller cannot enforce this on its own -- it fences what it sends, and two deliveries in flight arrive in whichever order the network gives them.

The conflict action takes a row lock held to commit, so a second delivery for the same project waits here and is compared against the winner's revision rather than against what it read.

func (*Queries) CheckAliasConflictsWithTemplateID

func (q *Queries) CheckAliasConflictsWithTemplateID(ctx context.Context, alias string) (bool, error)

func (*Queries) CheckAliasExistsInNamespace

func (q *Queries) CheckAliasExistsInNamespace(ctx context.Context, arg CheckAliasExistsInNamespaceParams) (EnvAlias, error)

Check if alias exists within a specific namespace. Used for namespace-aware lookups. Returns the alias if found.

func (*Queries) CreateActiveTemplateBuild

func (q *Queries) CreateActiveTemplateBuild(ctx context.Context, arg CreateActiveTemplateBuildParams) error

func (*Queries) CreateOrUpdateTemplate

func (q *Queries) CreateOrUpdateTemplate(ctx context.Context, arg CreateOrUpdateTemplateParams) (string, error)

Soft-delete is permanent: skip the update for a deleted env so no row is returned and the build registration fails instead of resurrecting it.

func (*Queries) CreateSnapshotTemplateEnv

func (q *Queries) CreateSnapshotTemplateEnv(ctx context.Context, arg CreateSnapshotTemplateEnvParams) (string, error)

Creates a snapshot_template env entry with source='snapshot_template' and links it to an existing build This is used after UpsertSnapshot to create a persistent snapshot template

func (*Queries) CreateTemplateAlias

func (q *Queries) CreateTemplateAlias(ctx context.Context, arg CreateTemplateAliasParams) error

func (*Queries) CreateTemplateBuild

func (q *Queries) CreateTemplateBuild(ctx context.Context, arg CreateTemplateBuildParams) error

kernel_version and firecracker_version are populated here for backwards compatibility with consumers that read the env_builds row before the build completes. The template-manager reports the versions it actually used via TemplateBuildMetadata, and FinishTemplateBuild overwrites these fields with the reported values.

func (*Queries) CreateTemplateBuildAssignment

func (q *Queries) CreateTemplateBuildAssignment(ctx context.Context, arg CreateTemplateBuildAssignmentParams) (int64, error)

FOR SHARE serializes against a concurrent DeleteTemplate so a build can't be attached to a soft-deleted env. 0 rows affected means the template is gone.

func (*Queries) CreateVolume

func (q *Queries) CreateVolume(ctx context.Context, arg CreateVolumeParams) (Volume, error)

func (*Queries) DeleteActiveTemplateBuild

func (q *Queries) DeleteActiveTemplateBuild(ctx context.Context, buildID uuid.UUID) error

func (*Queries) DeleteActiveTemplateBuilds

func (q *Queries) DeleteActiveTemplateBuilds(ctx context.Context, templateID string) error

Clears in-flight build tracking (active_template_builds no longer cascades since the env row is kept) so a deleted template stops counting toward the team build concurrency limit.

func (*Queries) DeleteOtherTemplateAliases

func (q *Queries) DeleteOtherTemplateAliases(ctx context.Context, envID string) ([]string, error)

func (*Queries) DeleteTemplateTags

func (q *Queries) DeleteTemplateTags(ctx context.Context, arg DeleteTemplateTagsParams) error

Deletes tag assignments from a template (env)

func (*Queries) DeleteVolume

func (q *Queries) DeleteVolume(ctx context.Context, arg DeleteVolumeParams) error

func (*Queries) ExistsTemplateSnapshots

func (q *Queries) ExistsTemplateSnapshots(ctx context.Context, envID string) (bool, error)

func (*Queries) FailTemplateBuildAndDeactivate

func (q *Queries) FailTemplateBuildAndDeactivate(ctx context.Context, arg FailTemplateBuildAndDeactivateParams) (bool, error)

Several pollers watch the same build, and it keeps the first terminal outcome recorded. A write that loses must not release the team's concurrency slot either, so the deactivation reads from the update instead of running on its own.

func (*Queries) FindVolumesByTeamID

func (q *Queries) FindVolumesByTeamID(ctx context.Context, teamID uuid.UUID) ([]Volume, error)

func (*Queries) FinishTemplateBuild

func (q *Queries) FinishTemplateBuild(ctx context.Context, arg FinishTemplateBuildParams) error

kernel_version and firecracker_version are overwritten with whatever the template-manager reports back in TemplateBuildMetadata. Old template-managers that do not populate those fields end up passing an empty string; the NULLIF + COALESCE trick leaves the row's existing values untouched in that case so we do not clobber the values the API seeded at build registration. The build keeps the first terminal outcome recorded: a build failed for running out of time has had its artifacts deleted, so a later success must not publish it.

func (*Queries) GetActiveClusters

func (q *Queries) GetActiveClusters(ctx context.Context) ([]GetActiveClustersRow, error)

func (*Queries) GetBuildsStatusesByTeam

func (q *Queries) GetBuildsStatusesByTeam(ctx context.Context, arg GetBuildsStatusesByTeamParams) ([]GetBuildsStatusesByTeamRow, error)

func (*Queries) GetCancellableTemplateBuildsByTeam

func (q *Queries) GetCancellableTemplateBuildsByTeam(ctx context.Context, teamID uuid.UUID) ([]GetCancellableTemplateBuildsByTeamRow, error)

Relies on active_template_builds table (migration 20260305130000).

func (*Queries) GetConcurrentTemplateBuilds

func (q *Queries) GetConcurrentTemplateBuilds(ctx context.Context, arg GetConcurrentTemplateBuildsParams) ([]EnvBuild, error)

func (*Queries) GetExclusiveBuildsForTemplateDeletion

func (q *Queries) GetExclusiveBuildsForTemplateDeletion(ctx context.Context, templateID string) ([]GetExclusiveBuildsForTemplateDeletionRow, error)

Returns builds that are ONLY assigned to this template (safe to delete). Builds shared with other templates are excluded. DISTINCT needed because builds may have multiple tag assignments to the same template.

func (*Queries) GetInProgressTemplateBuilds

func (q *Queries) GetInProgressTemplateBuilds(ctx context.Context) ([]GetInProgressTemplateBuildsRow, error)

func (*Queries) GetInProgressTemplateBuildsByTeam

func (q *Queries) GetInProgressTemplateBuildsByTeam(ctx context.Context, arg GetInProgressTemplateBuildsByTeamParams) (int64, error)

Relies on active_template_builds table (migration 20260305130000).

func (*Queries) GetLastSnapshot

func (q *Queries) GetLastSnapshot(ctx context.Context, sandboxID string) (GetLastSnapshotRow, error)

func (*Queries) GetPublicUserID

func (q *Queries) GetPublicUserID(ctx context.Context, id uuid.UUID) (uuid.UUID, error)

func (*Queries) GetSnapshotBuilds

func (q *Queries) GetSnapshotBuilds(ctx context.Context, arg GetSnapshotBuildsParams) ([]GetSnapshotBuildsRow, error)

func (*Queries) GetSnapshotsWithCursor

func (q *Queries) GetSnapshotsWithCursor(ctx context.Context, arg GetSnapshotsWithCursorParams) ([]GetSnapshotsWithCursorRow, error)

func (*Queries) GetSnapshotsWithCursorAsc

func (q *Queries) GetSnapshotsWithCursorAsc(ctx context.Context, arg GetSnapshotsWithCursorAscParams) ([]GetSnapshotsWithCursorAscRow, error)

Ascending counterpart of GetSnapshotsWithCursor. It is the exact reverse order (started_at ASC, sandbox_id DESC) which maps onto a backward scan of the idx_snapshots_team_time_id (team_id, sandbox_started_at DESC, sandbox_id) index.

func (*Queries) GetTeamBuildsPage

func (q *Queries) GetTeamBuildsPage(ctx context.Context, arg GetTeamBuildsPageParams) ([]GetTeamBuildsPageRow, error)

func (*Queries) GetTeamBuildsPageByBuildID

func (q *Queries) GetTeamBuildsPageByBuildID(ctx context.Context, arg GetTeamBuildsPageByBuildIDParams) ([]GetTeamBuildsPageByBuildIDRow, error)

func (*Queries) GetTeamClusterForTemplateBuild

func (q *Queries) GetTeamClusterForTemplateBuild(ctx context.Context, teamID uuid.UUID) (*uuid.UUID, error)

func (*Queries) GetTeamMemberRelation

func (q *Queries) GetTeamMemberRelation(ctx context.Context, arg GetTeamMemberRelationParams) (UsersTeam, error)

func (*Queries) GetTeamMembers

func (q *Queries) GetTeamMembers(ctx context.Context, teamID uuid.UUID) ([]GetTeamMembersRow, error)

func (*Queries) GetTeamTemplate

func (q *Queries) GetTeamTemplate(ctx context.Context, arg GetTeamTemplateParams) (GetTeamTemplateRow, error)

func (*Queries) GetTeamTemplates

func (q *Queries) GetTeamTemplates(ctx context.Context, teamID uuid.UUID) ([]GetTeamTemplatesRow, error)

func (*Queries) GetTeamTemplatesWithCursor

func (q *Queries) GetTeamTemplatesWithCursor(ctx context.Context, arg GetTeamTemplatesWithCursorParams) ([]GetTeamTemplatesWithCursorRow, error)

Cursor-paginated team template listing for the CLI (GET /v2/templates).

Same projection as GetTeamTemplates (two build laterals: latest default-tag build for build_status, latest ready default-tag build for the displayed resources), with keyset pagination added: ordered created_at DESC (newest first) and bounded by the (created_at, id) cursor and LIMIT.

func (*Queries) GetTemplateAliasByAlias

func (q *Queries) GetTemplateAliasByAlias(ctx context.Context, alias string) (GetTemplateAliasByAliasRow, error)

func (*Queries) GetTemplateAliases

func (q *Queries) GetTemplateAliases(ctx context.Context, envIds []string) ([]GetTemplateAliasesRow, error)

func (*Queries) GetTemplateBuilds

func (q *Queries) GetTemplateBuilds(ctx context.Context, arg GetTemplateBuildsParams) ([]EnvBuild, error)

func (*Queries) GetTemplateByAlias

func (q *Queries) GetTemplateByAlias(ctx context.Context, arg GetTemplateByAliasParams) (GetTemplateByAliasRow, error)

Resolves a template by alias and namespace @alias: the alias to look up @namespace: the namespace to scope the lookup (NULL for promoted templates)

func (*Queries) GetTemplateByIDWithAliases

func (q *Queries) GetTemplateByIDWithAliases(ctx context.Context, id string) (GetTemplateByIDWithAliasesRow, error)

func (*Queries) GetTemplateById

func (q *Queries) GetTemplateById(ctx context.Context, templateID string) (GetTemplateByIdRow, error)

Looks up a template by its ID directly @template_id: the template ID to look up

func (*Queries) GetTemplateWithBuildByTag

Fetches a template with its build by template ID and tag. @template_id: the template ID to look up @tag: defaults to 'default' if not provided

func (*Queries) GetVolume

func (q *Queries) GetVolume(ctx context.Context, arg GetVolumeParams) (Volume, error)

func (*Queries) GetVolumesByName

func (q *Queries) GetVolumesByName(ctx context.Context, arg GetVolumesByNameParams) ([]Volume, error)

func (*Queries) InvalidateUnstartedTemplateBuilds

func (q *Queries) InvalidateUnstartedTemplateBuilds(ctx context.Context, arg InvalidateUnstartedTemplateBuildsParams) error

func (*Queries) ListTeamSnapshotTemplates

func (q *Queries) ListTeamSnapshotTemplates(ctx context.Context, arg ListTeamSnapshotTemplatesParams) ([]ListTeamSnapshotTemplatesRow, error)

Lists all persistent snapshot templates for a team with cursor-based pagination. Snapshot templates are envs with source='snapshot_template'.

func (*Queries) ListTemplateTags

func (q *Queries) ListTemplateTags(ctx context.Context, templateID string) ([]ListTemplateTagsRow, error)

Lists the latest tag assignment per tag for a given template. Multiple assignments can exist per tag; only the most recent is returned. @template_id: the template ID to look up

func (*Queries) LockManagedProject

func (q *Queries) LockManagedProject(ctx context.Context, id uuid.UUID) (uuid.UUID, error)

Taken first, so the branch is decided by whether the project exists rather than by an insert failing.

func (*Queries) LockTeamMembersForUpdate

func (q *Queries) LockTeamMembersForUpdate(ctx context.Context, teamID uuid.UUID) ([]uuid.UUID, error)

func (*Queries) ReleaseTemplateAliases

func (q *Queries) ReleaseTemplateAliases(ctx context.Context, templateID string) ([]string, error)

Releases the env's aliases (so the name is reusable) and returns their cache keys.

func (*Queries) RemoveTeamMember

func (q *Queries) RemoveTeamMember(ctx context.Context, arg RemoveTeamMemberParams) error

func (*Queries) ReplaceTemplateAlias

func (q *Queries) ReplaceTemplateAlias(ctx context.Context, arg ReplaceTemplateAliasParams) (int64, error)

func (*Queries) ResolveTeamBySlugAndUser

func (*Queries) SoftDeleteTemplate

func (q *Queries) SoftDeleteTemplate(ctx context.Context, arg SoftDeleteTemplateParams) (string, error)

Step 1 of soft delete (run in a tx). The UPDATE locks the env row, so a concurrent build registration holding that lock commits first; this then soft-deletes. Returns the id (no row if already deleted or not owned). The alias/active-build cleanup runs as separate statements afterwards so their fresh snapshots see rows that racing registration committed during the wait.

func (*Queries) UpdateEnvBuildStatus

func (q *Queries) UpdateEnvBuildStatus(ctx context.Context, arg UpdateEnvBuildStatusParams) error

func (*Queries) UpdateSnapshotOriginNode

func (q *Queries) UpdateSnapshotOriginNode(ctx context.Context, arg UpdateSnapshotOriginNodeParams) error

Repoints a snapshot's origin node, used on resume to pin a retry to the node whose local cache is warming after a previous resume attempt timed out.

func (*Queries) UpdateTemplate

func (q *Queries) UpdateTemplate(ctx context.Context, arg UpdateTemplateParams) (string, error)

func (*Queries) UpdateTemplateBuild

func (q *Queries) UpdateTemplateBuild(ctx context.Context, arg UpdateTemplateBuildParams) error

func (*Queries) UpdateTemplateSpawnCount

func (q *Queries) UpdateTemplateSpawnCount(ctx context.Context, arg UpdateTemplateSpawnCountParams) error

func (*Queries) UpsertProjectLimits

func (q *Queries) UpsertProjectLimits(ctx context.Context, arg UpsertProjectLimitsParams) error

UpsertProjectLimits records a project's effective limits, which the team_limits view reads in preference to the tier-plus-addons arithmetic.

Every column is supplied on every call: the caller sends a complete set, so there is no partial update to merge and no prior row to read first.

max_disk_size_mb and max_free_disk_size_mb are the same ceiling under the old and the new name, and the table holds them equal. Both are written here so a receiver of this version keeps the compatibility bridge in application code.

Which deliveries reach this statement is the ledger's decision, and the two writes share a transaction. Nothing here compares revisions.

func (*Queries) UpsertSnapshot

func (q *Queries) UpsertSnapshot(ctx context.Context, arg UpsertSnapshotParams) (UpsertSnapshotRow, error)

Create a new snapshot or update an existing one Create a new build for the snapshot, copying CPU info from the source build so a pause keeps the snapshot's CPU compatibility pinned to the original build instead of the node the pause happened to run on. Scalar subqueries are used so the row is always inserted (CPU info is NULL if the source build is missing). Create the build assignment edge (explicit, not relying on trigger)

func (*Queries) UpsertTemplateAliasIfNotExists

func (q *Queries) UpsertTemplateAliasIfNotExists(ctx context.Context, arg UpsertTemplateAliasIfNotExistsParams) (string, error)

Attempts to create an alias. Returns the env_id that the alias points to. If the alias already exists, returns the existing env_id without modifying it. Uses ON CONFLICT DO NOTHING to avoid race conditions.

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type RemoveTeamMemberParams

type RemoveTeamMemberParams struct {
	TeamID uuid.UUID
	UserID uuid.UUID
}

type ReplaceTemplateAliasParams

type ReplaceTemplateAliasParams struct {
	TemplateID         string
	Alias              string
	Namespace          *string
	PreviousTemplateID string
}

type ResolveTeamBySlugAndUserParams

type ResolveTeamBySlugAndUserParams struct {
	UserID uuid.UUID
	Slug   string
}

type ResolveTeamBySlugAndUserRow

type ResolveTeamBySlugAndUserRow struct {
	ID   uuid.UUID
	Slug string
}

type Snapshot

type Snapshot struct {
	CreatedAt           pgtype.Timestamptz
	EnvID               string
	SandboxID           string
	ID                  uuid.UUID
	Metadata            types.JSONBStringMap
	BaseEnvID           string
	SandboxStartedAt    pgtype.Timestamptz
	EnvSecure           bool
	OriginNodeID        string
	AllowInternetAccess *bool
	AutoPause           bool
	TeamID              uuid.UUID
	Config              *types.PausedSandboxConfig
}

type SoftDeleteTemplateParams

type SoftDeleteTemplateParams struct {
	TemplateID string
	TeamID     uuid.UUID
}

type UpdateEnvBuildStatusParams

type UpdateEnvBuildStatusParams struct {
	Status     types.BuildStatus
	FinishedAt *time.Time
	Reason     types.BuildReason
	Version    *string
	BuildID    uuid.UUID
}

type UpdateSnapshotOriginNodeParams

type UpdateSnapshotOriginNodeParams struct {
	OriginNodeID string
	SandboxID    string
}

type UpdateTemplateBuildParams

type UpdateTemplateBuildParams struct {
	StartCmd        *string
	ReadyCmd        *string
	Dockerfile      *string
	ClusterNodeID   *string
	CpuArchitecture *string
	CpuFamily       *string
	CpuModel        *string
	CpuModelName    *string
	CpuFlags        []string
	BuildUuid       uuid.UUID
}

type UpdateTemplateParams

type UpdateTemplateParams struct {
	Public            bool
	TeamID            uuid.UUID
	TemplateIDOrAlias string
}

type UpdateTemplateSpawnCountParams

type UpdateTemplateSpawnCountParams struct {
	SpawnCount    int64
	LastSpawnedAt *time.Time
	TemplateID    string
}

type UpsertProjectLimitsParams

type UpsertProjectLimitsParams struct {
	TeamID                   uuid.UUID
	MaxLengthHours           int64
	ConcurrentSandboxes      int64
	ConcurrentTemplateBuilds int64
	MaxVcpu                  int64
	MaxRamMb                 int64
	DiskMb                   int64
	EventsTtlDays            int64
	DefaultFreeDiskSizeMb    int64
	MaxFreeDiskSizeMb        int64
}

type UpsertSnapshotParams

type UpsertSnapshotParams struct {
	TemplateID          string
	TeamID              uuid.UUID
	ClusterID           *uuid.UUID
	SandboxID           string
	BaseTemplateID      string
	Metadata            types.JSONBStringMap
	StartedAt           pgtype.Timestamptz
	Secure              bool
	AllowInternetAccess *bool
	OriginNodeID        string
	AutoPause           bool
	Config              *types.PausedSandboxConfig
	Vcpu                int64
	RamMb               int64
	FreeDiskSizeMb      int64
	KernelVersion       string
	FirecrackerVersion  string
	EnvdVersion         *string
	Status              types.BuildStatus
	TotalDiskSizeMb     *int64
	SourceBuildID       uuid.UUID
}

type UpsertSnapshotRow

type UpsertSnapshotRow struct {
	BuildID    uuid.UUID
	TemplateID string
}

type UpsertTemplateAliasIfNotExistsParams

type UpsertTemplateAliasIfNotExistsParams struct {
	Alias      string
	TemplateID string
	Namespace  *string
}

type UsersTeam

type UsersTeam struct {
	ID        int64
	UserID    uuid.UUID
	TeamID    uuid.UUID
	IsDefault bool
	AddedBy   *uuid.UUID
	CreatedAt pgtype.Timestamp
	UuidID    uuid.UUID
}

type Volume

type Volume struct {
	ID         uuid.UUID
	TeamID     uuid.UUID
	Name       string
	VolumeType string
	CreatedAt  pgtype.Timestamptz
}

Jump to

Keyboard shortcuts

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