app

package
v0.19.765 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2026 License: AGPL-3.0 Imports: 42 Imported by: 0

Documentation ยถ

Index ยถ

Constants ยถ

View Source
const (
	// Build timeout bounds (applies to build operations)
	MinBuildTimeout = time.Second * 1
	MaxBuildTimeout = time.Hour * 1

	// Deploy timeout bounds (applies to deploy operations)
	MinDeployTimeout = time.Second * 1
	MaxDeployTimeout = time.Hour * 1
)
View Source
const (
	DefaultAWSInstanceType = "t3a.medium"
)
View Source
const (
	HeaderInstallWorkflowID = "X-Nuon-Install-Workflow-ID"
)
View Source
const (
	WorkflowMetadataKeyWorkflowNameSuffix = "workflow-name-suffix"
)

Variables ยถ

View Source
var (
	CommonRunnerGroupSettingsGroups         = [...]string{"operations", "sync"}
	DefaultOrgRunnerGroupSettingsGroups     = [...]string{"build", "sandbox", "runner"}
	DefaultInstallRunnerGroupSettingsGroups = [...]string{"deploys", "action", "sandbox"}
)

TODO(fd): use the consts

These component types require a component to be passed with them

All component types

View Source
var AllPolicyTypes = config.AllAppPolicyTypes

Functions ยถ

func GetFeatureDescriptions ยถ

func GetFeatureDescriptions() map[OrgFeature]string

GetFeatureDescriptions returns a map of feature names to their descriptions

Types ยถ

type AWSAccount ยถ

type AWSAccount struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string `json:"-" gorm:"notnull" temporaljson:"install_id,omitzero,omitempty"`

	Region     string `json:"region,omitzero" gorm:"notnull" temporaljson:"region,omitzero,omitempty"`
	IAMRoleARN string `json:"iam_role_arn,omitzero" gorm:"notnull" temporaljson:"iam_role_arn,omitzero,omitempty"`
}

func (*AWSAccount) BeforeCreate ยถ

func (a *AWSAccount) BeforeCreate(tx *gorm.DB) error

func (*AWSAccount) Indexes ยถ

func (a *AWSAccount) Indexes(db *gorm.DB) []migrations.Index

type AWSECRImageConfig ยถ

type AWSECRImageConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	// connection to parent model
	ComponentConfigID   string `json:"component_config_id,omitzero" gorm:"notnull" temporaljson:"component_config_id,omitzero,omitempty"`
	ComponentConfigType string `json:"component_config_type,omitzero" gorm:"notnull" temporaljson:"component_config_type,omitzero,omitempty"`

	// actual configuration
	IAMRoleARN string `json:"iam_role_arn,omitzero" gorm:"notnull" temporaljson:"iam_role_arn,omitzero,omitempty"`
	AWSRegion  string `json:"aws_region,omitzero" gorm:"notnull" temporaljson:"aws_region,omitzero,omitempty"`
}

func (*AWSECRImageConfig) BeforeCreate ยถ

func (c *AWSECRImageConfig) BeforeCreate(tx *gorm.DB) error

func (*AWSECRImageConfig) Indexes ยถ

func (c *AWSECRImageConfig) Indexes(db *gorm.DB) []migrations.Index

type AWSIAMRoleType ยถ

type AWSIAMRoleType string
const (
	// used for initial install setup
	AWSIAMRoleTypeRunnerProvision AWSIAMRoleType = "runner_provision"
	// used for tearing down an install
	AWSIAMRoleTypeRunnerDeprovision AWSIAMRoleType = "runner_deprovision"
	// used for updates and other maintenance
	AWSIAMRoleTypeRunnerMaintenance AWSIAMRoleType = "runner_maintenance"

	// used for break-glass by the vendor
	AWSIAMRoleTypeBreakGlass AWSIAMRoleType = "breakglass"

	// used for break glass mode where the runner is given elevated permissions
	//
	// NOTE(jm): at some point, we probably need break glass actions
	AWSIAMRoleTypeRunnerBreakGlass AWSIAMRoleType = "runner_breakglass"
)

type AWSRegionType ยถ

type AWSRegionType string
const (
	AWSRegionTypeDefault  AWSRegionType = "default"
	AWSRegionTypeGovCloud AWSRegionType = "govcloud"
	AWSRegionTypeUnknown  AWSRegionType = ""
)

func (AWSRegionType) String ยถ

func (a AWSRegionType) String() string

type AWSStackOutputs ยถ

type AWSStackOutputs struct {
	AccountID             string            `json:"account_id,omitzero" mapstructure:"account_id" temporaljson:"account_id,omitzero,omitempty"`
	Region                string            `json:"region,omitzero" mapstructure:"region" temporaljson:"region,omitzero,omitempty"`
	VPCID                 string            `json:"vpc_id,omitzero" mapstructure:"vpc_id" temporaljson:"vpcid,omitzero,omitempty"`
	RunnerSubnet          string            `json:"runner_subnet,omitzero" mapstructure:"runner_subnet" temporaljson:"runner_subnet,omitzero,omitempty"`
	PublicSubnets         []string          `json:"public_subnets,omitzero" mapstructure:"public_subnets" temporaljson:"public_subnets,omitzero,omitempty"`
	PrivateSubnets        []string          `json:"private_subnets,omitzero" mapstructure:"private_subnets" temporaljson:"private_subnets,omitzero,omitempty"`
	ProvisionIAMRoleARN   string            `` /* 133-byte string literal not displayed */
	DeprovisionIAMRoleARN string            `` /* 139-byte string literal not displayed */
	MaintenanceIAMRoleARN string            `` /* 139-byte string literal not displayed */
	RunnerIAMRoleARN      string            `json:"runner_iam_role_arn,omitzero" mapstructure:"runner_iam_role_arn" temporaljson:"runner_iam_role_arn,omitzero,omitempty"`
	BreakGlassRoleARNs    map[string]string `` /* 130-byte string literal not displayed */
	InstallInputs         map[string]string `json:"install_inputs,omitzero" mapstructure:"install_inputs" temporaljson:"install_inputs,omitzero,omitempty"`
}

type Account ยถ

type Account struct {
	ID        string                `gorm:"primarykey" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_email_subject,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	Email       string      `json:"email,omitzero" gorm:"index:idx_email_subject,unique,not null;default null" temporaljson:"email,omitzero,omitempty"`
	Subject     string      `json:"subject,omitzero" gorm:"index:idx_email_subject,unique,not null;" temporaljson:"subject,omitzero,omitempty"`
	AccountType AccountType `json:"account_type,omitzero" temporaljson:"account_type,omitzero,omitempty"`

	Roles        []Role            `gorm:"many2many:account_roles;constraint:OnDelete:CASCADE;" json:"roles,omitzero" temporaljson:"roles,omitzero,omitempty"`
	Tokens       []Token           `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"tokens,omitzero,omitempty"`
	Identities   []AccountIdentity `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"identities,omitzero,omitempty"`
	UserJourneys UserJourneys      `json:"user_journeys,omitzero" gorm:"type:jsonb;default null" temporaljson:"user_journeys,omitzero,omitempty"`

	// ReadOnly Fields
	OrgIDs         []string        `json:"org_ids,omitzero" gorm:"-" temporaljson:"org_i_ds,omitzero,omitempty"`
	Orgs           []*Org          `json:"-" gorm:"-" temporaljson:"orgs,omitzero,omitempty"`
	AllPermissions permissions.Set `json:"permissions,omitzero" gorm:"-" temporaljson:"all_permissions,omitzero,omitempty"`

	IsEmployee bool `json:"-"`
}

func (*Account) AfterQuery ยถ

func (a *Account) AfterQuery(tx *gorm.DB) error

func (*Account) BeforeCreate ยถ

func (a *Account) BeforeCreate(tx *gorm.DB) error

func (*Account) Indexes ยถ

func (a *Account) Indexes(db *gorm.DB) []migrations.Index

func (*Account) JoinTables ยถ

func (*Account) JoinTables() []migrations.JoinTable

type AccountIdentity ยถ

type AccountIdentity struct {
	ID        string    `gorm:"primarykey" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`

	// Account relationship
	AccountID string   `` /* 138-byte string literal not displayed */
	Account   *Account `gorm:"constraint:OnDelete:CASCADE" faker:"-" json:"-" temporaljson:"account,omitzero,omitempty"`

	// Identity Provider relationship (nullable for default env-var provider)
	IdentityProviderID *string           `gorm:"index" json:"identity_provider_id,omitempty" temporaljson:"identity_provider_id,omitzero,omitempty"`
	IdentityProvider   *IdentityProvider `gorm:"constraint:OnDelete:SET NULL" faker:"-" json:"-" temporaljson:"identity_provider,omitzero,omitempty"`

	// Provider type - required, enables lookup when using the default env-var provider
	ProviderType ProviderType `` /* 191-byte string literal not displayed */

	// Subject identifier from the IdP - the canonical, stable user identifier
	Sub string `gorm:"not null;index:idx_account_identity_provider_sub,unique" json:"sub,omitzero" temporaljson:"sub,omitzero,omitempty"`

	// User profile information from the identity provider
	Name    string `json:"name,omitempty" temporaljson:"name,omitempty"`
	Picture string `json:"picture,omitempty" temporaljson:"picture,omitempty"`
}

AccountIdentity links an account to an identity provider using the IdP's subject identifier. This enables secure authentication where users are identified by their stable `sub` claim rather than by email (which can change or be reassigned).

func (*AccountIdentity) BeforeCreate ยถ

func (a *AccountIdentity) BeforeCreate(tx *gorm.DB) error

func (*AccountIdentity) Indexes ยถ

func (a *AccountIdentity) Indexes(db *gorm.DB) []migrations.Index

func (AccountIdentity) TableName ยถ

func (a AccountIdentity) TableName() string

type AccountRole ยถ

type AccountRole struct {
	ID string `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_account_role:unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID generics.NullString `json:"org_id,omitzero" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   *Org                `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	RoleID string `gorm:"primary_key;index:idx_account_role:unique" temporaljson:"role_id,omitzero,omitempty"`
	Role   Role   `temporaljson:"role,omitzero,omitempty"`

	AccountID string  `json:"account_id,omitzero" gorm:"primary_key;index:idx_account_role:unique" temporaljson:"account_id,omitzero,omitempty"`
	Account   Account `json:"account,omitzero" temporaljson:"account,omitzero,omitempty"`
}

AccountRole is a many2many table used by gorm under the hood

func (*AccountRole) BeforeSave ยถ

func (c *AccountRole) BeforeSave(tx *gorm.DB) error

func (*AccountRole) Indexes ยถ

func (a *AccountRole) Indexes(db *gorm.DB) []migrations.Index

type AccountType ยถ

type AccountType string
const (
	AccountTypeAuth    AccountType = "auth"
	AccountTypeAuth0   AccountType = "auth0"
	AccountTypeService AccountType = "service"

	// Internal Account Types for testing
	AccountTypeCanary      AccountType = "canary"
	AccountTypeIntegration AccountType = "integration"
)

type ActionWorkflow ยถ

type ActionWorkflow struct {
	ID string `json:"id" gorm:"primary_key;check:id_checker,char_length(id)=26" temporaljson:"id,omitzero,omitempty"`
	// TODO: change to default null after migration & after initial pr
	Status            ActionWorkflowStatus  `json:"status,omitzero" gorm:"notnull;default:'active'" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string                `json:"status_description,omitzero" temporaljson:"status_description,omitzero,omitempty"`
	CreatedByID       string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy         Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt         time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt         time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt         soft_delete.DeletedAt `json:"-" gorm:"index:idx_action_workflow_app_id_name,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	App   App    `json:"-" swaggerignore:"true" temporaljson:"app,omitzero,omitempty"`
	AppID string `json:"app_id,omitzero" gorm:"index:idx_action_workflow_app_id_name,unique" faker:"-" temporaljson:"app_id,omitzero,omitempty"`

	Configs     []ActionWorkflowConfig `json:"configs" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"configs,omitzero,omitempty"`
	ConfigCount int                    `json:"config_count" gorm:"->;-:migration" temporaljson:"config_count,omitzero,omitempty"`

	// metadata
	Name string `json:"name,omitzero" gorm:"index:idx_action_workflow_app_id_name,unique" temporaljson:"name,omitzero,omitempty"`
}

func (*ActionWorkflow) BeforeCreate ยถ

func (a *ActionWorkflow) BeforeCreate(tx *gorm.DB) error

func (*ActionWorkflow) Indexes ยถ

func (a *ActionWorkflow) Indexes(db *gorm.DB) []migrations.Index

type ActionWorkflowConfig ยถ

type ActionWorkflowConfig struct {
	ID          string                `json:"id,omitzero" gorm:"primary_key;check:id_checker,char_length(id)=26" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index:idx_action_workflow_id_app_config_id,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	App   App    `json:"-" swaggerignore:"true" temporaljson:"app,omitzero,omitempty"`
	AppID string `json:"app_id,omitzero" gorm:"notnull;index:idx_app_install_name,unique" temporaljson:"app_id,omitzero,omitempty"`

	AppConfigID string    `` /* 134-byte string literal not displayed */
	AppConfig   AppConfig `json:"-" temporaljson:"app_config,omitzero,omitempty"`

	ActionWorkflowID string         `` /* 144-byte string literal not displayed */
	ActionWorkflow   ActionWorkflow `json:"-" temporaljson:"action_workflow,omitzero,omitempty"`

	// INFO: if adding new associations here, ensure they are added to the batch delete activity
	Triggers []ActionWorkflowTriggerConfig `json:"triggers,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"triggers,omitzero,omitempty"`
	Steps    []ActionWorkflowStepConfig    `json:"steps,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"steps,omitzero,omitempty"`
	Runs     []InstallActionWorkflowRun    `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"runs,omitzero,omitempty"`

	Timeout time.Duration `` /* 126-byte string literal not displayed */

	ComponentDependencyIDs pq.StringArray `json:"component_dependency_ids" temporaljson:"component_dependency_ids" swaggertype:"array,string" gorm:"type:text[]"`
	References             pq.StringArray `json:"references" temporaljson:"references" swaggertype:"array,string" gorm:"type:text[]"`

	Refs              []refs.Ref                    `gorm:"-"`
	CronTrigger       *ActionWorkflowTriggerConfig  `json:"-" temporaljson:"cron_trigger,omitzero,omitempty"`
	LifecycleTriggers []ActionWorkflowTriggerConfig `json:"-" temporaljson:"lifecycle_triggers,omitzero,omitempty"`

	BreakGlassRoleARN generics.NullString `` /* 132-byte string literal not displayed */
}

func (*ActionWorkflowConfig) AfterQuery ยถ

func (a *ActionWorkflowConfig) AfterQuery(tx *gorm.DB) error

func (*ActionWorkflowConfig) BeforeCreate ยถ

func (a *ActionWorkflowConfig) BeforeCreate(tx *gorm.DB) error

func (*ActionWorkflowConfig) GetComponentTriggerIndex ยถ

func (a *ActionWorkflowConfig) GetComponentTriggerIndex(typ ActionWorkflowTriggerType, componentID string) int

func (*ActionWorkflowConfig) GetTriggerIndex ยถ

func (a *ActionWorkflowConfig) GetTriggerIndex(typ ActionWorkflowTriggerType) int

func (*ActionWorkflowConfig) HasComponentTrigger ยถ

func (a *ActionWorkflowConfig) HasComponentTrigger(typ ActionWorkflowTriggerType, componentID string) bool

func (*ActionWorkflowConfig) HasTrigger ยถ

func (*ActionWorkflowConfig) Indexes ยถ

func (a *ActionWorkflowConfig) Indexes(db *gorm.DB) []migrations.Index

func (*ActionWorkflowConfig) Views ยถ

func (i *ActionWorkflowConfig) Views(db *gorm.DB) []migrations.View

func (*ActionWorkflowConfig) WorkflowConfigCanTriggerManually ยถ

func (a *ActionWorkflowConfig) WorkflowConfigCanTriggerManually() bool

type ActionWorkflowStatus ยถ

type ActionWorkflowStatus string
const (
	ActionWorkflowStatusActive ActionWorkflowStatus = "active"
	// error state
	ActionWorkflowStatusError ActionWorkflowStatus = "error"
	// queued for deletion
	ActionWorkflowStatusDeleteQueued ActionWorkflowStatus = "delete_queued"
)

type ActionWorkflowStepConfig ยถ

type ActionWorkflowStepConfig struct {
	ID          string                `json:"id" gorm:"primary_key;check:id_checker,char_length(id)=26" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `` /* 136-byte string literal not displayed */

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	App   App    `json:"-" swaggerignore:"true" temporaljson:"app,omitzero,omitempty"`
	AppID string `json:"app_id,omitzero" gorm:"notnull;index:idx_app_install_name,unique" temporaljson:"app_id,omitzero,omitempty"`

	// this belongs to an app config id
	AppConfigID string    `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`
	AppConfig   AppConfig `json:"-" temporaljson:"app_config,omitzero,omitempty"`

	ActionWorkflowConfigID string               `` /* 184-byte string literal not displayed */
	ActionWorkflowConfig   ActionWorkflowConfig `json:"-" temporaljson:"action_workflow_config,omitzero,omitempty"`

	// metadata
	Name           string         `` /* 142-byte string literal not displayed */
	PreviousStepID string         `json:"previous_step_id,omitzero" temporaljson:"previous_step_id,omitzero,omitempty"`
	Idx            int            `json:"idx,omitzero" temporaljson:"idx,omitzero,omitempty"`
	References     pq.StringArray `json:"references" temporaljson:"references" swaggertype:"array,string" gorm:"type:text[]"`

	// all the details needed for a step
	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 158-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 170-byte string literal not displayed */
	VCSConnectionType        VCSConnectionType         `json:"-" gorm:"-" temporaljson:"vcs_connection_type,omitzero,omitempty"`

	EnvVars        pgtype.Hstore `json:"env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"env_vars,omitzero,omitempty"`
	Command        string        `json:"command,omitzero" temporaljson:"command,omitzero,omitempty"`
	InlineContents string        `json:"inline_contents,omitzero" temporaljson:"inline_contents,omitzero,omitempty"`
}

func (*ActionWorkflowStepConfig) AfterQuery ยถ

func (a *ActionWorkflowStepConfig) AfterQuery(tx *gorm.DB) error

func (*ActionWorkflowStepConfig) BeforeCreate ยถ

func (a *ActionWorkflowStepConfig) BeforeCreate(tx *gorm.DB) error

func (*ActionWorkflowStepConfig) Indexes ยถ

func (a *ActionWorkflowStepConfig) Indexes(db *gorm.DB) []migrations.Index

type ActionWorkflowTriggerConfig ยถ

type ActionWorkflowTriggerConfig struct {
	ID          string                `json:"id" gorm:"primary_key;check:id_checker,char_length(id)=26" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `` /* 139-byte string literal not displayed */

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	App   App    `json:"-" swaggerignore:"true" temporaljson:"app,omitzero,omitempty"`
	AppID string `json:"app_id,omitzero" gorm:"notnull;index:idx_app_install_name,unique" temporaljson:"app_id,omitzero,omitempty"`

	// this belongs to an app config id
	AppConfigID string    `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`
	AppConfig   AppConfig `json:"-" temporaljson:"app_config,omitzero,omitempty"`

	ActionWorkflowConfigID string               `` /* 187-byte string literal not displayed */
	ActionWorkflowConfig   ActionWorkflowConfig `json:"-" temporaljson:"action_workflow_config,omitzero,omitempty"`

	Type ActionWorkflowTriggerType `` /* 188-byte string literal not displayed */

	Index int `json:"index,omitzero" swaggertype:"integer" gorm:"default:0;"`

	CronSchedule string              `json:"cron_schedule,omitzero,omitempty" temporaljson:"cron_schedule,omitzero,omitempty"`
	ComponentID  generics.NullString `json:"component_id,omitzero" swaggertype:"string" temporaljson:"component_id,omitzero,omitempty"`
	Component    *Component          `json:"component" temporaljson:"component,omitzero,omitempty"`
}

func (*ActionWorkflowTriggerConfig) BeforeCreate ยถ

func (a *ActionWorkflowTriggerConfig) BeforeCreate(tx *gorm.DB) error

func (*ActionWorkflowTriggerConfig) Indexes ยถ

type ActionWorkflowTriggerType ยถ

type ActionWorkflowTriggerType string
const (
	// this is for manual debugging/triggering in the ui
	ActionWorkflowTriggerTypeManual ActionWorkflowTriggerType = "manual"

	// run on a hook
	ActionWorkflowTriggerTypeCron ActionWorkflowTriggerType = "cron"

	// individaul component ones
	ActionWorkflowTriggerTypePreDeployComponent  ActionWorkflowTriggerType = "pre-deploy-component"
	ActionWorkflowTriggerTypePostDeployComponent ActionWorkflowTriggerType = "post-deploy-component"

	ActionWorkflowTriggerTypePreTeardownComponent  ActionWorkflowTriggerType = "pre-teardown-component"
	ActionWorkflowTriggerTypePostTeardownComponent ActionWorkflowTriggerType = "post-teardown-component"

	// internals
	ActionWorkflowTriggerTypePreSecretsSync  ActionWorkflowTriggerType = "pre-secrets-sync"
	ActionWorkflowTriggerTypePostSecretsSync ActionWorkflowTriggerType = "post-secrets-sync"

	// workflow triggers
	ActionWorkflowTriggerTypePreProvision  ActionWorkflowTriggerType = "pre-provision"
	ActionWorkflowTriggerTypePostProvision ActionWorkflowTriggerType = "post-provision"

	ActionWorkflowTriggerTypePreReprovision  ActionWorkflowTriggerType = "pre-reprovision"
	ActionWorkflowTriggerTypePostReprovision ActionWorkflowTriggerType = "post-reprovision"

	ActionWorkflowTriggerTypePreDeprovision  ActionWorkflowTriggerType = "pre-deprovision"
	ActionWorkflowTriggerTypePostDeprovision ActionWorkflowTriggerType = "post-deprovision"

	ActionWorkflowTriggerTypePreDeployAllComponents  ActionWorkflowTriggerType = "pre-deploy-all-components"
	ActionWorkflowTriggerTypePostDeployAllComponents ActionWorkflowTriggerType = "post-deploy-all-components"

	ActionWorkflowTriggerTypePreTeardownAllComponents  ActionWorkflowTriggerType = "pre-teardown-all-components"
	ActionWorkflowTriggerTypePostTeardownAllComponents ActionWorkflowTriggerType = "post-teardown-all-components"

	ActionWorkflowTriggerTypePreDeprovisionSandbox  ActionWorkflowTriggerType = "pre-deprovision-sandbox"
	ActionWorkflowTriggerTypePostDeprovisionSandbox ActionWorkflowTriggerType = "post-deprovision-sandbox"

	ActionWorkflowTriggerTypePreReprovisionSandbox  ActionWorkflowTriggerType = "pre-reprovision-sandbox"
	ActionWorkflowTriggerTypePostReprovisionSandbox ActionWorkflowTriggerType = "post-reprovision-sandbox"

	ActionWorkflowTriggerTypePreUpdateInputs  ActionWorkflowTriggerType = "pre-update-inputs"
	ActionWorkflowTriggerTypePostUpdateInputs ActionWorkflowTriggerType = "post-update-inputs"
)

type App ยถ

type App struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index:idx_app_name,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	Name        string              `json:"name,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"name,omitzero,omitempty"`
	Description generics.NullString `json:"description,omitzero" swaggertype:"string" temporaljson:"description,omitzero,omitempty"`
	DisplayName generics.NullString `json:"display_name,omitzero" swaggertype:"string" temporaljson:"display_name,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   *Org   `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	NotificationsConfig NotificationsConfig `` /* 155-byte string literal not displayed */
	Repository          AppRepository       `faker:"-" json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"repository,omitzero,omitempty"`

	Components                 []Component        `` /* 129-byte string literal not displayed */
	Installs                   []Install          `faker:"-" json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"installs,omitzero,omitempty"`
	ActionWorkflows            []ActionWorkflow   `json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"action_workflows,omitzero,omitempty"`
	AppInputConfigs            []AppInputConfig   `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_input_configs,omitzero,omitempty"`
	AppSandboxConfigs          []AppSandboxConfig `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_sandbox_configs,omitzero,omitempty"`
	AppRunnerConfigs           []AppRunnerConfig  `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_runner_configs,omitzero,omitempty"`
	CloudFormationStackConfigs []AppStackConfig   `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"cloud_formation_stack_configs,omitzero,omitempty"`
	AppConfigs                 []AppConfig        `json:"app_configs" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_configs,omitzero,omitempty"`
	AppSecrets                 []AppSecret        `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_secrets,omitzero,omitempty"`
	InstallerApps              []InstallerApp     `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"installer_apps,omitzero,omitempty"`

	Status            AppStatus `json:"status,omitzero" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string    `json:"status_description,omitzero" temporaljson:"status_description,omitzero,omitempty"`

	// fields set via after query
	AppInputConfig   AppInputConfig   `json:"input_config,omitzero" gorm:"-" temporaljson:"app_input_config,omitzero,omitempty"`
	AppSandboxConfig AppSandboxConfig `json:"sandbox_config,omitzero" gorm:"-" temporaljson:"app_sandbox_config,omitzero,omitempty"`
	AppRunnerConfig  AppRunnerConfig  `json:"runner_config,omitzero" gorm:"-" temporaljson:"app_runner_config,omitzero,omitempty"`

	Links map[string]any `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`

	CloudPlatform CloudPlatform `json:"cloud_platform,omitzero" gorm:"-" swaggertype:"string" temporaljson:"cloud_platform,omitzero,omitempty"`
	RunnerType    AppRunnerType `json:"runner_type,omitzero" gorm:"-" swaggertype:"string" temporaljson:"runner_type,omitzero,omitempty"`

	ConfigRepo      string `json:"config_repo,omitzero" temporaljson:"config_repo,omitzero,omitempty"`
	ConfigDirectory string `json:"config_directory,omitzero" temporaljson:"config_directory,omitzero,omitempty"`
}

func (*App) AfterQuery ยถ

func (a *App) AfterQuery(tx *gorm.DB) error

func (*App) BeforeCreate ยถ

func (a *App) BeforeCreate(tx *gorm.DB) error

func (*App) EventLoops ยถ

func (a *App) EventLoops() []bulk.EventLoop

func (*App) Indexes ยถ

func (a *App) Indexes(db *gorm.DB) []migrations.Index

type AppAWSIAMPolicyConfig ยถ

type AppAWSIAMPolicyConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	AppAWSIAMRoleConfigID string              `json:"app_aws_iam_role_config_id,omitzero" temporaljson:"app_awsiam_role_config_id,omitzero,omitempty"`
	AppAWSIAMRoleConfig   AppAWSIAMRoleConfig `json:"-" temporaljson:"app_awsiam_role_config,omitzero,omitempty"`

	ManagedPolicyName       string `json:"managed_policy_name,omitzero" features:"template" temporaljson:"managed_policy_name,omitzero,omitempty"`
	Name                    string `json:"name" features:"template,omitzero" temporaljson:"name,omitzero,omitempty"`
	Contents                []byte `` /* 126-byte string literal not displayed */
	CloudFormationStackName string `` /* 131-byte string literal not displayed */
}

func (*AppAWSIAMPolicyConfig) AfterQuery ยถ

func (a *AppAWSIAMPolicyConfig) AfterQuery(tx *gorm.DB) error

func (*AppAWSIAMPolicyConfig) BeforeCreate ยถ

func (a *AppAWSIAMPolicyConfig) BeforeCreate(tx *gorm.DB) error

func (*AppAWSIAMPolicyConfig) Indexes ยถ

func (a *AppAWSIAMPolicyConfig) Indexes(db *gorm.DB) []migrations.Index

type AppAWSIAMRoleConfig ยถ

type AppAWSIAMRoleConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Type        AWSIAMRoleType `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	Name        string         `json:"name,omitzero" features:"template" temporaljson:"name,omitzero,omitempty"`
	Description string         `json:"description,omitzero" features:"template" temporaljson:"description,omitzero,omitempty"`
	DisplayName string         `json:"display_name,omitzero" features:"template" temporaljson:"display_name,omitzero,omitempty"`

	OwnerID   string `` /* 126-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	Policies                     []AppAWSIAMPolicyConfig `json:"policies,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"policies,omitzero,omitempty"`
	PermissionsBoundaryJSON      []byte                  `` /* 155-byte string literal not displayed */
	CloudFormationStackName      string                  `` /* 131-byte string literal not displayed */
	CloudFormationStackParamName string                  `` /* 137-byte string literal not displayed */
}

func (*AppAWSIAMRoleConfig) AfterQuery ยถ

func (a *AppAWSIAMRoleConfig) AfterQuery(tx *gorm.DB) error

func (*AppAWSIAMRoleConfig) BeforeCreate ยถ

func (a *AppAWSIAMRoleConfig) BeforeCreate(tx *gorm.DB) error

func (*AppAWSIAMRoleConfig) Indexes ยถ

func (a *AppAWSIAMRoleConfig) Indexes(db *gorm.DB) []migrations.Index

type AppBranch ยถ

type AppBranch struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `` /* 144-byte string literal not displayed */
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	Name                       string                   `gorm:"uniqueIndex:idx_app_branch_name_per_app;not null" json:"name" temporaljson:"name"`
	ConnectedGithubVCSConfigID string                   `gorm:"notnull" json:"connected_github_vcs_config_id" temporaljson:"connected_github_vcs_config_id"`
	ConnectedGithubVCSConfig   ConnectedGithubVCSConfig `json:"-" temporaljson:"connected_github_vcs_config"`

	Workflows []Workflow `json:"workflows,omitzero" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"workflows,omitzero,omitempty"`
}

func (*AppBranch) BeforeCreate ยถ

func (a *AppBranch) BeforeCreate(tx *gorm.DB) error

func (*AppBranch) Indexes ยถ

func (a *AppBranch) Indexes(db *gorm.DB) []migrations.Index

type AppBreakGlassConfig ยถ

type AppBreakGlassConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Roles []AppAWSIAMRoleConfig `json:"aws_iam_roles,omitzero" gorm:"constraint:OnDelete:CASCADE;polymorphic:Owner;" temporaljson:"roles,omitzero,omitempty"`
}

func (*AppBreakGlassConfig) BeforeCreate ยถ

func (a *AppBreakGlassConfig) BeforeCreate(tx *gorm.DB) error

func (*AppBreakGlassConfig) Indexes ยถ

func (a *AppBreakGlassConfig) Indexes(db *gorm.DB) []migrations.Index

type AppConfig ยถ

type AppConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`

	Status            AppConfigStatus `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string          `json:"status_description,omitzero" gorm:"notnull;default null" temporaljson:"status_description,omitzero,omitempty"`

	State        string         `json:"state,omitzero" temporaljson:"state,omitzero,omitempty"`
	Readme       string         `json:"readme,omitzero" temporaljson:"readme,omitzero,omitempty"`
	Checksum     string         `json:"checksum,omitzero" temporaljson:"checksum,omitzero,omitempty"`
	CLIVersion   string         `json:"cli_version,omitzero" gorm:"default null" temporaljson:"cli_version,omitzero,omitempty"`
	ComponentIDs pq.StringArray `gorm:"type:text[]" json:"component_ids,omitzero" temporaljson:"component_ids,omitzero,omitempty" swaggertype:"array,string"`

	PermissionsConfig          AppPermissionsConfig        `` /* 126-byte string literal not displayed */
	BreakGlassConfig           AppBreakGlassConfig         `` /* 126-byte string literal not displayed */
	PoliciesConfig             AppPoliciesConfig           `json:"policies,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"policies_config,omitzero,omitempty"`
	SecretsConfig              AppSecretsConfig            `json:"secrets,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"secrets_config,omitzero,omitempty"`
	SandboxConfig              AppSandboxConfig            `json:"sandbox,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"sandbox_config,omitzero,omitempty"`
	InputConfig                AppInputConfig              `json:"input,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"input_config,omitzero,omitempty"`
	RunnerConfig               AppRunnerConfig             `json:"runner,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"runner_config,omitzero,omitempty"`
	StackConfig                AppStackConfig              `json:"stack,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"stack_config,omitzero,omitempty"`
	ComponentConfigConnections []ComponentConfigConnection `` /* 153-byte string literal not displayed */
	ActionWorkflowConfigs      []ActionWorkflowConfig      `` /* 143-byte string literal not displayed */

	// individual pointers
	InstallAWSCloudFormationStackVersion []InstallStackVersion `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_aws_cloud_formation_stack_version,omitzero,omitempty"`

	// fields that are filled in via after query or views
	Version int `json:"version,omitzero" gorm:"->;-:migration" temporaljson:"version,omitzero,omitempty"`

	AppBranchID generics.NullString `` /* 130-byte string literal not displayed */
	AppBranch   *AppBranch          `json:"app_branch" temporaljson:"app_branch,omitzero,omitempty"`

	VCSConnectionCommitID generics.NullString  `json:"-"  swaggertype:"string" temporaljson:"vcs_connection_commit_id,omitzero,omitempty"`
	VCSConnectionCommit   *VCSConnectionCommit `json:"vcs_connection_commit,omitzero" temporaljson:"vcs_connection_commit,omitzero,omitempty"`
}

func (*AppConfig) BeforeCreate ยถ

func (a *AppConfig) BeforeCreate(tx *gorm.DB) error

func (*AppConfig) Indexes ยถ

func (a *AppConfig) Indexes(db *gorm.DB) []migrations.Index

func (AppConfig) UseView ยถ

func (a AppConfig) UseView() bool

func (AppConfig) ViewVersion ยถ

func (a AppConfig) ViewVersion() string

func (*AppConfig) Views ยถ

func (i *AppConfig) Views(db *gorm.DB) []migrations.View

type AppConfigStatus ยถ

type AppConfigStatus string
const (
	AppConfigStatusActive   AppConfigStatus = "active"
	AppConfigStatusPending  AppConfigStatus = "pending"
	AppConfigStatusSyncing  AppConfigStatus = "syncing"
	AppConfigStatusError    AppConfigStatus = "error"
	AppConfigStatusOutdated AppConfigStatus = "outdated"
)

type AppConfigVersion ยถ

type AppConfigVersion string
const (
	AppConfigVersionDefault AppConfigVersion = ""
	AppConfigVersionV2      AppConfigVersion = "v2"
)

type AppInput ยถ

type AppInput struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index:idx_app_input_unique_name,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppInputConfigID string         `` /* 150-byte string literal not displayed */
	AppInputConfig   AppInputConfig `json:"-" temporaljson:"app_input_config,omitzero,omitempty"`

	AppInputGroup   AppInputGroup `json:"group,omitzero" temporaljson:"app_input_group,omitzero,omitempty"`
	AppInputGroupID string        `json:"group_id,omitzero" temporaljson:"app_input_group_id,omitzero,omitempty"`

	Name        string `` /* 127-byte string literal not displayed */
	DisplayName string `json:"display_name,omitzero" temporaljson:"display_name,omitzero,omitempty"`
	Description string `json:"description,omitzero" gorm:"not null; default null" temporaljson:"description,omitzero,omitempty"`
	Default     string `json:"default,omitzero" temporaljson:"default,omitzero,omitempty"`
	Required    bool   `json:"required,omitzero" temporaljson:"required,omitzero,omitempty"`
	Sensitive   bool   `json:"sensitive,omitzero" temporaljson:"sensitive,omitzero,omitempty"`

	Index    int            `json:"index,omitzero"`
	Internal bool           `json:"internal,omitzero"`
	Type     AppInputType   `json:"type,omitzero" swaggertype:"string"`
	Source   AppInputSource `json:"source,omitzero" gorm:"not null;default:'vendor'" swaggertype:"string" temporaljson:"source"`

	// CloudFormation configuration (computed fields, not stored in DB)
	CloudFormationStackName      string `json:"cloudformation_stack_name,omitzero" gorm:"-" temporaljson:"cloudformation_stack_name,omitzero,omitempty"`
	CloudFormationStackParamName string `` /* 130-byte string literal not displayed */
}

func (*AppInput) AfterQuery ยถ

func (a *AppInput) AfterQuery(tx *gorm.DB) error

func (*AppInput) BeforeCreate ยถ

func (a *AppInput) BeforeCreate(tx *gorm.DB) error

func (*AppInput) Indexes ยถ

func (a *AppInput) Indexes(db *gorm.DB) []migrations.Index

type AppInputConfig ยถ

type AppInputConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID       string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org         Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`
	AppID       string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	AppInputs      []AppInput      `json:"inputs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_inputs,omitzero,omitempty"`
	AppInputGroups []AppInputGroup `json:"input_groups,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_input_groups,omitzero,omitempty"`

	InstallInputs []InstallInputs `json:"install_inputs,omitzero" gorm:"constraint:OnDelete:CASCADE" temporaljson:"install_inputs,omitzero,omitempty"`
}

func (*AppInputConfig) BeforeCreate ยถ

func (a *AppInputConfig) BeforeCreate(tx *gorm.DB) error

func (*AppInputConfig) Indexes ยถ

func (a *AppInputConfig) Indexes(db *gorm.DB) []migrations.Index

type AppInputGroup ยถ

type AppInputGroup struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppInputConfigID string         `json:"app_input_id,omitzero" gorm:"notnull; default null" temporaljson:"app_input_config_id,omitzero,omitempty"`
	AppInputConfig   AppInputConfig `json:"-" temporaljson:"app_input_config,omitzero,omitempty"`

	Name        string `json:"name,omitzero" gorm:"not null;default null" temporaljson:"name,omitzero,omitempty"`
	DisplayName string `json:"display_name,omitzero" temporaljson:"display_name,omitzero,omitempty"`
	Description string `json:"description,omitzero" gorm:"not null; default null" temporaljson:"description,omitzero,omitempty"`
	Index       int    `json:"index,omitzero"`

	AppInputs []AppInput `json:"app_inputs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_inputs,omitzero,omitempty"`
}

func (*AppInputGroup) BeforeCreate ยถ

func (a *AppInputGroup) BeforeCreate(tx *gorm.DB) error

func (*AppInputGroup) Indexes ยถ

func (a *AppInputGroup) Indexes(db *gorm.DB) []migrations.Index

type AppInputSource ยถ

type AppInputSource string
const (
	AppInputSourceVendor   AppInputSource = "vendor"
	AppInputSourceCustomer AppInputSource = "customer"
)

type AppInputType ยถ

type AppInputType string
const (
	AppInputTypeString AppInputType = "string"
	AppInputTypeNumber AppInputType = "number"
	AppInputTypeBool   AppInputType = "bool"
	AppInputTypeList   AppInputType = "list"
	AppInputTypeJSON   AppInputType = "json"
)

type AppPermissionsConfig ยถ

type AppPermissionsConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Roles []AppAWSIAMRoleConfig `json:"aws_iam_roles,omitzero" gorm:"constraint:OnDelete:CASCADE;polymorphic:Owner" temporaljson:"roles,omitzero,omitempty"`

	// loaded via an after query
	ProvisionRole   AppAWSIAMRoleConfig `json:"provision_aws_iam_role,omitzero" gorm:"-" temporaljson:"provision_role,omitzero,omitempty"`
	MaintenanceRole AppAWSIAMRoleConfig `json:"maintenance_aws_iam_role,omitzero" gorm:"-" temporaljson:"maintenance_role,omitzero,omitempty"`
	DeprovisionRole AppAWSIAMRoleConfig `json:"deprovision_aws_iam_role,omitzero" gorm:"-" temporaljson:"deprovision_role,omitzero,omitempty"`
	BreakGlassRole  AppAWSIAMRoleConfig `json:"break_glass_aws_iam_role,omitzero" gorm:"-" temporaljson:"break_glass_role,omitzero,omitempty"`
}

func (*AppPermissionsConfig) AfterQuery ยถ

func (a *AppPermissionsConfig) AfterQuery(tx *gorm.DB) error

func (*AppPermissionsConfig) BeforeCreate ยถ

func (a *AppPermissionsConfig) BeforeCreate(tx *gorm.DB) error

func (*AppPermissionsConfig) Indexes ยถ

func (a *AppPermissionsConfig) Indexes(db *gorm.DB) []migrations.Index

type AppPoliciesConfig ยถ

type AppPoliciesConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson,omitzero:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID       string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	AppID       string `json:"app_id,omitzero" gorm:"notnull;default null" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" gorm:"notnull;default null" temporaljson:"app_config_id,omitzero,omitempty"`

	Policies []AppPolicyConfig `json:"policies,omitempty" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"policies,omitzero,omitempty"`
}

func (*AppPoliciesConfig) BeforeCreate ยถ

func (a *AppPoliciesConfig) BeforeCreate(tx *gorm.DB) error

func (*AppPoliciesConfig) Indexes ยถ

func (a *AppPoliciesConfig) Indexes(db *gorm.DB) []migrations.Index

type AppPolicyConfig ยถ

type AppPolicyConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID       string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	AppID       string `json:"app_id,omitzero" gorm:"notnull;default null" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" gorm:"notnull;default null" temporaljson:"app_config_id,omitzero,omitempty"`

	AppPoliciesConfigID string            `json:"app_policies_config,omitzero" gorm:"notnull;default null" temporaljson:"app_policies_config_id,omitzero,omitempty"`
	AppPoliciesConfig   AppPoliciesConfig `json:"-" temporaljson:"app_policies_config,omitzero,omitempty"`

	Type       config.AppPolicyType   `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	Engine     config.AppPolicyEngine `json:"engine,omitzero" temporaljson:"engine,omitzero,omitempty"`
	Contents   string                 `json:"contents,omitzero" features:"template" temporaljson:"contents,omitzero,omitempty"`
	Components []string               `json:"components,omitzero" gorm:"serializer:json" temporaljson:"components,omitzero,omitempty"`
}

func (*AppPolicyConfig) BeforeCreate ยถ

func (a *AppPolicyConfig) BeforeCreate(tx *gorm.DB) error

func (*AppPolicyConfig) Indexes ยถ

func (a *AppPolicyConfig) Indexes(db *gorm.DB) []migrations.Index

type AppRepository ยถ

type AppRepository struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" gorm:"notnull" temporaljson:"app_id,omitzero,omitempty"`

	RegistryID     string
	RepositoryName string
	RepositoryArn  string
	RepositoryURI  string
	Region         string
}

func (*AppRepository) BeforeCreate ยถ

func (a *AppRepository) BeforeCreate(tx *gorm.DB) error

func (*AppRepository) Indexes ยถ

func (i *AppRepository) Indexes(db *gorm.DB) []migrations.Index

type AppRepositoryType ยถ

type AppRepositoryType string
const (
	AppRepositoryTypeAWSECR AppRepositoryType = "aws-ecr"
)

type AppRunnerConfig ยถ

type AppRunnerConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID       string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org         Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`
	AppID       string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	EnvVars pgtype.Hstore `json:"env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"env_vars,omitzero,omitempty"`
	Type    AppRunnerType `json:"app_runner_type,omitzero" gorm:"not null;default null;" temporaljson:"type,omitzero,omitempty"`

	HelmDriver AppRunnerConfigHelmDriverType `json:"helm_driver" gorm:"default null" swaggertype:"string" temporaljson:"helm_driver,omitzero,omitempty"`

	CloudPlatform CloudPlatform `json:"cloud_platform,omitzero" gorm:"-" temporaljson:"cloud_platform,omitzero,omitempty"`

	// takes a URL to a bash script โคต  which will be `curl | bash`-ed on the VM. usually via user-data or equivalent.
	InitScriptURL string `json:"init_script,omitzero" gorm:"default null" temporaljson:"init_script,omitzero,omitempty" features:"get,omitzero"`
}

func (*AppRunnerConfig) AfterQuery ยถ

func (a *AppRunnerConfig) AfterQuery(tx *gorm.DB) error

func (*AppRunnerConfig) BeforeCreate ยถ

func (a *AppRunnerConfig) BeforeCreate(tx *gorm.DB) error

func (*AppRunnerConfig) Indexes ยถ

func (a *AppRunnerConfig) Indexes(db *gorm.DB) []migrations.Index

func (*AppRunnerConfig) Views ยถ

func (i *AppRunnerConfig) Views(db *gorm.DB) []migrations.View

type AppRunnerConfigHelmDriverType ยถ

type AppRunnerConfigHelmDriverType string
const (
	AppRunnerHelmDriverSecret    AppRunnerConfigHelmDriverType = "secret"
	AppRunnerHelmDriverConfigMap AppRunnerConfigHelmDriverType = "configmap"
	AppRunnerHelmDriverEmpty     AppRunnerConfigHelmDriverType = ""
)

type AppRunnerType ยถ

type AppRunnerType string
const (
	AppRunnerTypeUnknown AppRunnerType = "unknown"
	// legacy types from before independent runners
	AppRunnerTypeAWSECS   AppRunnerType = "aws-ecs"
	AppRunnerTypeAWSEKS   AppRunnerType = "aws-eks"
	AppRunnerTypeAzureAKS AppRunnerType = "azure-aks"
	AppRunnerTypeAzureACS AppRunnerType = "azure-acs"

	AppRunnerTypeLocal AppRunnerType = "local"

	// for independent runners
	AppRunnerTypeAWS   AppRunnerType = "aws"
	AppRunnerTypeAzure AppRunnerType = "azure"
)

func (AppRunnerType) JobType ยถ

func (a AppRunnerType) JobType() RunnerJobType

type AppSandboxConfig ยถ

type AppSandboxConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID       string `json:"app_id,omitzero" gorm:"not null;default null" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 167-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 179-byte string literal not displayed */
	VCSConnectionType        VCSConnectionType         `json:"-" gorm:"-" temporaljson:"vcs_connection_type,omitzero,omitempty"`

	Variables      pgtype.Hstore  `` /* 136-byte string literal not displayed */
	EnvVars        pgtype.Hstore  `` /* 139-byte string literal not displayed */
	VariablesFiles pq.StringArray `` /* 147-byte string literal not displayed */

	References pq.StringArray `json:"references" temporaljson:"references" swaggertype:"array,string" gorm:"type:text[]"`
	Refs       []refs.Ref     `gorm:"-"`

	TerraformVersion string `json:"terraform_version,omitzero" gorm:"notnull" temporaljson:"terraform_version,omitzero,omitempty"`
	DriftSchedule    string `json:"drift_schedule,omitzero" gorm:"default null" temporaljson:"drift_schedule,omitzero,omitempty"`

	InstallSandboxRuns []InstallSandboxRun `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_sandbox_runs,omitzero,omitempty"`

	// cloud specific fields
	AWSRegionType generics.NullString `json:"aws_region_type,omitzero" swaggertype:"string" temporaljson:"aws_region_type,omitzero,omitempty"`

	// fields set via after query
	CloudPlatform CloudPlatform `json:"cloud_platform,omitzero" gorm:"-" swaggertype:"string" temporaljson:"cloud_platform,omitzero,omitempty"`
}

func (*AppSandboxConfig) AfterQuery ยถ

func (c *AppSandboxConfig) AfterQuery(tx *gorm.DB) error

NOTE: currently, only public repo vcs configs are supported when rendering policies and artifacts

func (*AppSandboxConfig) BeforeCreate ยถ

func (a *AppSandboxConfig) BeforeCreate(tx *gorm.DB) error

func (*AppSandboxConfig) Indexes ยถ

func (c *AppSandboxConfig) Indexes(db *gorm.DB) []migrations.Index

func (*AppSandboxConfig) Views ยถ

func (i *AppSandboxConfig) Views(db *gorm.DB) []migrations.View

type AppSecret ยถ

type AppSecret struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index:idx_app_secret_name,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" gorm:"not null;default null;index:idx_app_secret_name,unique" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `json:"-" faker:"-" temporaljson:"app,omitzero,omitempty"`

	Name  string `json:"name,omitzero" gorm:"not null;default null;index:idx_app_secret_name,unique" temporaljson:"name,omitzero,omitempty"`
	Value string `json:"-" gorm:"not null;default null" temporaljson:"value,omitzero,omitempty"`

	// after query fields
	Length int `json:"length,omitzero" gorm:"-" temporaljson:"length,omitzero,omitempty"`
}

func (*AppSecret) AfterQuery ยถ

func (a *AppSecret) AfterQuery(tx *gorm.DB) error

func (*AppSecret) BeforeCreate ยถ

func (a *AppSecret) BeforeCreate(tx *gorm.DB) error

func (*AppSecret) Indexes ยถ

func (a *AppSecret) Indexes(db *gorm.DB) []migrations.Index

type AppSecretConfig ยถ

type AppSecretConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	AppSecretsConfig   AppSecretsConfig `json:"-" faker:"-" temporaljson:"app_secrets_config,omitzero,omitempty"`
	AppSecretsConfigID string           `json:"app_secrets_config_id,omitzero" temporaljson:"app_secrets_config_id,omitzero,omitempty"`

	Name        string `json:"name,omitzero" features:"template" temporaljson:"name,omitzero,omitempty"`
	DisplayName string `json:"display_name,omitzero" features:"template" temporaljson:"display_name,omitzero,omitempty"`
	Description string `json:"description,omitzero" features:"template" temporaljson:"description,omitzero,omitempty"`

	Required     bool               `json:"required,omitzero" temporaljson:"required,omitzero,omitempty"`
	AutoGenerate bool               `json:"auto_generate,omitzero" temporaljson:"auto_generate,omitzero,omitempty"`
	Format       AppSecretConfigFmt `json:"format" temporaljson:"format" swaggertype:"string"`
	Default      string             `json:"default" temporaljson:"default"`

	// for syncing into kubernetes
	KubernetesSync            bool   `json:"kubernetes_sync,omitzero" temporaljson:"kubernetes_sync,omitzero,omitempty"`
	KubernetesSecretNamespace string `json:"kubernetes_secret_namespace,omitzero" features:"template" temporaljson:"kubernetes_secret_namespace,omitzero,omitempty"`
	KubernetesSecretName      string `json:"kubernetes_secret_name,omitzero" features:"template" temporaljson:"kubernetes_secret_name,omitzero,omitempty"`
	KubernetesSecretKey       string `json:"-" features:"-" temporaljson:"kubernetes_secret_key,omitzero,omitempty"`

	CloudFormationStackName string `json:"cloudformation_stack_name,omitzero" gorm:"-" temporaljson:"cloud_formation_stack_name,omitzero,omitempty"`
	CloudFormationParamName string `json:"cloudformation_param_name,omitzero" gorm:"-" temporaljson:"cloud_formation_param_name,omitzero,omitempty"`
}

func (*AppSecretConfig) AfterQuery ยถ

func (a *AppSecretConfig) AfterQuery(tx *gorm.DB) error

func (*AppSecretConfig) BeforeCreate ยถ

func (a *AppSecretConfig) BeforeCreate(tx *gorm.DB) error

func (*AppSecretConfig) Indexes ยถ

func (a *AppSecretConfig) Indexes(db *gorm.DB) []migrations.Index

func (*AppSecretConfig) UpdateCloudformationStackInfo ยถ

func (a *AppSecretConfig) UpdateCloudformationStackInfo()

type AppSecretConfigFmt ยถ

type AppSecretConfigFmt string
const (
	AppSecretConfigFmtBase64  AppSecretConfigFmt = "base64"
	AppSecretConfigFmtDefault AppSecretConfigFmt = ""
)

type AppSecretsConfig ยถ

type AppSecretsConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Secrets []AppSecretConfig `json:"secrets,omitzero" temporaljson:"secrets,omitzero,omitempty"`
}

func (*AppSecretsConfig) BeforeCreate ยถ

func (a *AppSecretsConfig) BeforeCreate(tx *gorm.DB) error

func (*AppSecretsConfig) Indexes ยถ

func (a *AppSecretsConfig) Indexes(db *gorm.DB) []migrations.Index

type AppStackConfig ยถ

type AppStackConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	AppID       string `json:"app_id,omitzero" temporaljson:"app_id,omitzero,omitempty"`
	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Type                    StackType `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	Name                    string    `json:"name,omitzero" features:"template" temporaljson:"name,omitzero,omitempty"`
	Description             string    `json:"description,omitzero" features:"template" temporaljson:"description,omitzero,omitempty"`
	RunnerNestedTemplateURL string    `json:"runner_nested_template_url,omitzero" temporaljson:"runner_nested_template_url,omitzero,omitempty" features:"template"`
	VPCNestedTemplateURL    string    `json:"vpc_nested_template_url,omitzero" temporaljson:"vpc_nested_template_url,omitzero,omitempty" features:"template"`
}

func (*AppStackConfig) BeforeCreate ยถ

func (a *AppStackConfig) BeforeCreate(tx *gorm.DB) error

func (*AppStackConfig) Indexes ยถ

func (a *AppStackConfig) Indexes(db *gorm.DB) []migrations.Index

type AppStatus ยถ

type AppStatus string
const (
	AppStatusProvisioning   AppStatus = "provisioning"
	AppStatusDeprovisioning AppStatus = "deprovisioning"
	AppStatusActive         AppStatus = "active"
	AppStatusError          AppStatus = "error"
	AppStatusDeleteQueued   AppStatus = "delete_queued"
)

type AzureAccount ยถ

type AzureAccount struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string  `json:"-" gorm:"notnull" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `json:"-" temporaljson:"install,omitzero,omitempty"`

	Location                 string `json:"location,omitzero" gorm:"notnull" temporaljson:"location,omitzero,omitempty"`
	SubscriptionID           string `json:"subscription_id,omitzero" gorm:"not null;default null" temporaljson:"subscription_id,omitzero,omitempty"`
	SubscriptionTenantID     string `json:"subscription_tenant_id,omitzero" gorm:"not null;default null" temporaljson:"subscription_tenant_id,omitzero,omitempty"`
	ServicePrincipalAppID    string `` /* 128-byte string literal not displayed */
	ServicePrincipalPassword string `` /* 132-byte string literal not displayed */
}

func (*AzureAccount) BeforeCreate ยถ

func (a *AzureAccount) BeforeCreate(tx *gorm.DB) error

func (*AzureAccount) Indexes ยถ

func (a *AzureAccount) Indexes(db *gorm.DB) []migrations.Index

type AzureStackOutputs ยถ

type AzureStackOutputs struct {
	ResourceGroupID       string `json:"resource_group_id,omitzero" mapstructure:"resource_group_id" temporaljson:"resource_group_id,omitzero,omitempty"`
	ResourceGroupName     string `json:"resource_group_name,omitzero" mapstructure:"resource_group_name" temporaljson:"resource_group_name,omitzero,omitempty"`
	ResourceGroupLocation string `` /* 136-byte string literal not displayed */

	SubscriptionID       string `` /* 147-byte string literal not displayed */
	SubscriptionTenantID string `` /* 182-byte string literal not displayed */

	NetworkID   string `json:"network_id,omitzero" mapstructure:"network_id" temporaljson:"network_id,omitzero,omitempty"`
	NetworkName string `json:"network_name,omitzero" mapstructure:"network_name" temporaljson:"network_name,omitzero,omitempty"`

	PublicSubnetIDs   []string `json:"public_subnet_ids,omitzero" mapstructure:"public_subnet_ids" temporaljson:"public_subnet_ids,omitzero,omitempty"`
	PublicSubnetNames []string `json:"public_subnet_names,omitzero" mapstructure:"public_subnet_names" temporaljson:"public_subnet_names,omitzero,omitempty"`

	PrivateSubnetIDs   []string `json:"private_subnet_ids,omitzero" mapstructure:"private_subnet_ids" temporaljson:"private_subnet_ids,omitzero,omitempty"`
	PrivateSubnetNames []string `` /* 127-byte string literal not displayed */

	KeyVaultID   string `json:"key_vault_id,omitzero" mapstructure:"key_vault_id" temporaljson:"key_vault_id,omitzero,omitempty"`
	KeyVaultName string `json:"key_vault_name,omitzero" mapstructure:"key_vault_name" temporaljson:"key_vault_name,omitzero,omitempty"`
}

type CHTableSize ยถ

type CHTableSize struct {
	TableName  string  `json:"table_name,omitzero"`
	SizePretty string  `json:"size_pretty,omitzero"`
	SizeBytes  float64 `json:"size_bytes,omitzero" gorm:"->;-:migration" temporaljson:"size_bytes,omitzero,omitempty"`
}

func (CHTableSize) GetTableOptions ยถ

func (m CHTableSize) GetTableOptions() (string, bool)

func (*CHTableSize) UseView ยถ

func (*CHTableSize) UseView() bool

func (*CHTableSize) ViewVersion ยถ

func (*CHTableSize) ViewVersion() string

func (*CHTableSize) Views ยถ

func (i *CHTableSize) Views(db *gorm.DB) []migrations.View

type CloudPlatform ยถ

type CloudPlatform string
const (
	CloudPlatformAWS     CloudPlatform = "aws"
	CloudPlatformAzure   CloudPlatform = "azure"
	CloudPlatformUnknown CloudPlatform = "unknown"
)

func NewCloudPlatform ยถ

func NewCloudPlatform(platform string) (CloudPlatform, error)

func (CloudPlatform) Regions ยถ

func (c CloudPlatform) Regions() []CloudPlatformRegion

func (CloudPlatform) String ยถ

func (c CloudPlatform) String() string

type CloudPlatformRegion ยถ

type CloudPlatformRegion struct {
	Name        string `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`
	Value       string `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	DisplayName string `json:"display_name,omitzero" temporaljson:"display_name,omitzero,omitempty"`
	Icon        string `json:"icon,omitzero" temporaljson:"icon,omitzero,omitempty"`
}

type Component ยถ

type Component struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26;" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_component_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Name    string `json:"name,omitzero" gorm:"notnull;index:idx_app_component_name,unique" temporaljson:"name,omitzero,omitempty"`
	VarName string `json:"var_name,omitzero" temporaljson:"var_name,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" gorm:"notnull;index:idx_app_component_name,unique" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `faker:"-" json:"-" temporaljson:"app,omitzero,omitempty"`

	Status            ComponentStatus `json:"status,omitzero" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string          `json:"status_description,omitzero" temporaljson:"status_description,omitzero,omitempty"`

	ConfigVersions               int                           `gorm:"-" json:"config_versions,omitzero" temporaljson:"config_versions,omitzero,omitempty"`
	ComponentConfigs             []ComponentConfigConnection   `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"component_configs,omitzero,omitempty"`
	InstallComponents            []InstallComponent            `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"install_components,omitzero,omitempty"`
	ActionWorkflowTriggerConfigs []ActionWorkflowTriggerConfig `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"action_workflow_trigger_configs,omitzero,omitempty"`

	Dependencies  []*Component `gorm:"many2many:component_dependencies;constraint:OnDelete:CASCADE;" json:"-" temporaljson:"dependencies,omitzero,omitempty"`
	DependencyIDs []string     `gorm:"-" json:"dependencies,omitzero" temporaljson:"dependency_i_ds,omitzero,omitempty"`

	Links map[string]any `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`

	Type            ComponentType              `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	LatestConfig    *ComponentConfigConnection `gorm:"-" json:"-" temporaljson:"latest_config,omitzero,omitempty"`
	LatestBuild     *ComponentBuild            `gorm:"-" json:"latest_build,omitzero" temporaljson:"latest_build,omitzero,omitempty"`
	ResolvedVarName string                     `json:"resolved_var_name,omitzero" gorm:"-" temporaljson:"resolved_var_name,omitzero,omitempty"`
}

func (*Component) AfterQuery ยถ

func (c *Component) AfterQuery(tx *gorm.DB) error

func (*Component) BeforeCreate ยถ

func (c *Component) BeforeCreate(tx *gorm.DB) error

func (*Component) Indexes ยถ

func (c *Component) Indexes(db *gorm.DB) []migrations.Index

func (*Component) JoinTables ยถ

func (c *Component) JoinTables() []migrations.JoinTable

type ComponentBuild ยถ

type ComponentBuild struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by,omitzero" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// runner details
	RunnerJob RunnerJob `json:"runner_job,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_job,omitzero,omitempty"`

	LogStream LogStream `json:"log_stream,omitzero" gorm:"polymorphic:Owner;" temporaljson:"log_stream,omitzero,omitempty"`

	// DEPRECATED: will retain the field to connect against the last component config connection that set this build
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"component_config_connection,omitzero" temporaljson:"component_config_connection,omitzero,omitempty"`

	VCSConnectionCommitID *string              `json:"-" temporaljson:"vcs_connection_commit_id,omitzero,omitempty"`
	VCSConnectionCommit   *VCSConnectionCommit `json:"vcs_connection_commit,omitzero" temporaljson:"vcs_connection_commit,omitzero,omitempty"`

	ComponentReleases []ComponentRelease `json:"releases,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"component_releases,omitzero,omitempty"`
	InstallDeploys    []InstallDeploy    `json:"install_deploys,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_deploys,omitzero,omitempty"`

	Status            ComponentBuildStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string               `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`
	StatusV2          CompositeStatus      `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`

	GitRef *string `json:"git_ref,omitzero" temporaljson:"git_ref,omitzero,omitempty"`

	// Read-only fields set on the object to de-nest data
	ComponentID            string `gorm:"-" json:"component_id,omitzero" temporaljson:"component_id,omitzero,omitempty"`
	ComponentName          string `gorm:"-" json:"component_name,omitzero" temporaljson:"component_name,omitzero,omitempty"`
	ComponentConfigVersion int    `gorm:"-" json:"component_config_version,omitzero" temporaljson:"component_config_version,omitzero,omitempty"`

	// checksum of our intermediate component config
	Checksum string `json:"checksum,omitzero" gorm:"default null" temporaljson:"checksum,omitzero,omitempty"`
}

func (*ComponentBuild) AfterQuery ยถ

func (c *ComponentBuild) AfterQuery(tx *gorm.DB) error

func (*ComponentBuild) BeforeCreate ยถ

func (c *ComponentBuild) BeforeCreate(tx *gorm.DB) error

func (*ComponentBuild) Indexes ยถ

func (c *ComponentBuild) Indexes(db *gorm.DB) []migrations.Index

type ComponentBuildStatus ยถ

type ComponentBuildStatus string
const (
	ComponentBuildStatusPlanning     ComponentBuildStatus = "planning"
	ComponentBuildStatusError        ComponentBuildStatus = "error"
	ComponentBuildStatusBuilding     ComponentBuildStatus = "building"
	ComponentBuildStatusActive       ComponentBuildStatus = "active"
	ComponentBuildStatusDeleting     ComponentBuildStatus = "deleting"
	ComponentBuildStatusPolicyFailed ComponentBuildStatus = "policy_failed"
)

type ComponentConfigConnection ยถ

type ComponentConfigConnection struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	ComponentID   string    `json:"component_id,omitzero" gorm:"notnull" temporaljson:"component_id,omitzero,omitempty"`
	ComponentName string    `json:"component_name,omitzero" gorm:"-" temporaljson:"component_name,omitzero,omitempty"`
	Component     Component `json:"-" temporaljson:"component,omitzero,omitempty"`

	ComponentBuilds []ComponentBuild `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"component_builds,omitzero,omitempty"`

	TerraformModuleComponentConfig    *TerraformModuleComponentConfig    `` /* 146-byte string literal not displayed */
	HelmComponentConfig               *HelmComponentConfig               `json:"helm,omitempty,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"helm_component_config,omitzero,omitempty"`
	ExternalImageComponentConfig      *ExternalImageComponentConfig      `` /* 142-byte string literal not displayed */
	DockerBuildComponentConfig        *DockerBuildComponentConfig        `` /* 138-byte string literal not displayed */
	JobComponentConfig                *JobComponentConfig                `json:"job,omitzero,omitempty" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"job_component_config,omitzero,omitempty"`
	KubernetesManifestComponentConfig *KubernetesManifestComponentConfig `` /* 152-byte string literal not displayed */
	ComponentDependencyIDs            pq.StringArray                     `json:"component_dependency_ids" temporaljson:"component_dependency_ids" swaggertype:"array,string" gorm:"type:text[]"`
	References                        pq.StringArray                     `json:"references" temporaljson:"references" swaggertype:"array,string" gorm:"type:text[]"`
	Checksum                          string                             `json:"checksum,omitzero" gorm:"default null" temporaljson:"checksum,omitzero,omitempty"`
	DriftSchedule                     string                             `json:"drift_schedule,omitzero" gorm:"default null" temporaljson:"drift_schedule,omitzero,omitempty"`
	BuildTimeout                      string                             `json:"build_timeout,omitempty" gorm:"default:null" temporaljson:"build_timeout,omitzero,omitempty"`   // Duration string for build operations (e.g., "30m", "1h"). Max 1h.
	DeployTimeout                     string                             `json:"deploy_timeout,omitempty" gorm:"default:null" temporaljson:"deploy_timeout,omitzero,omitempty"` // Duration string for deploy operations (e.g., "30m", "1h"). Max 1h.

	// loaded via after query
	VCSConnectionType        VCSConnectionType         `json:"-" gorm:"-" temporaljson:"vcs_connection_type,omitzero,omitempty"`
	PublicGitVCSConfig       *PublicGitVCSConfig       `gorm:"-" json:"-" temporaljson:"public_git_vcs_config,omitzero,omitempty"`
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `gorm:"-" json:"-" temporaljson:"connected_github_vcs_config,omitzero,omitempty"`

	Type ComponentType `gorm:"-" json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`

	Version          int        `json:"version,omitzero" gorm:"->;-:migration" temporaljson:"version,omitzero,omitempty"`
	AppConfigVersion int        `json:"app_config_version,omitzero" gorm:"->;-:migration" temporaljson:"app_config_version,omitzero,omitempty"`
	Refs             []refs.Ref `gorm:"-"`
}

func (*ComponentConfigConnection) AfterQuery ยถ

func (c *ComponentConfigConnection) AfterQuery(tx *gorm.DB) error

func (*ComponentConfigConnection) BeforeCreate ยถ

func (c *ComponentConfigConnection) BeforeCreate(tx *gorm.DB) error

func (*ComponentConfigConnection) GetBuildTimeout ยถ

func (c *ComponentConfigConnection) GetBuildTimeout() *time.Duration

func (*ComponentConfigConnection) GetDeployTimeout ยถ

func (c *ComponentConfigConnection) GetDeployTimeout() *time.Duration

func (*ComponentConfigConnection) Indexes ยถ

func (a *ComponentConfigConnection) Indexes(db *gorm.DB) []migrations.Index

func (*ComponentConfigConnection) UseView ยถ

func (c *ComponentConfigConnection) UseView() bool

func (*ComponentConfigConnection) ViewVersion ยถ

func (c *ComponentConfigConnection) ViewVersion() string

func (*ComponentConfigConnection) Views ยถ

type ComponentConfigDependency ยถ

type ComponentConfigDependency struct {
	CreatedByID string                `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	ComponentConfigConnectionID string                    `` /* 138-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" faker:"-"`

	ComponentID  string `gorm:"primary_key" temporaljson:"component_id,omitzero,omitempty"`
	DependencyID string `gorm:"primary_key" temporaljson:"dependency_id,omitzero,omitempty"`
}

ComponentConfigDependency is a many2many table used by gorm under the hood

func (*ComponentConfigDependency) BeforeSave ยถ

func (c *ComponentConfigDependency) BeforeSave(tx *gorm.DB) error

func (*ComponentConfigDependency) Indexes ยถ

func (c *ComponentConfigDependency) Indexes(db *gorm.DB) []migrations.Index

type ComponentDependency ยถ

type ComponentDependency struct {
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	ComponentID  string `json:"component_id,omitzero" gorm:"primary_key" temporaljson:"component_id,omitzero,omitempty"`
	DependencyID string `json:"dependency_id,omitzero" gorm:"primary_key" temporaljson:"dependency_id,omitzero,omitempty"`
}

ComponentDependency is a many2many table used by gorm under the hood

func (*ComponentDependency) BeforeSave ยถ

func (c *ComponentDependency) BeforeSave(tx *gorm.DB) error

func (*ComponentDependency) Indexes ยถ

func (c *ComponentDependency) Indexes(db *gorm.DB) []migrations.Index

type ComponentRelease ยถ

type ComponentRelease struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	ComponentBuildID string         `json:"build_id,omitzero" temporaljson:"component_build_id,omitzero,omitempty"`
	ComponentBuild   ComponentBuild `json:"build,omitzero" swaggerignore:"true" temporaljson:"component_build,omitzero,omitempty"`

	TotalComponentReleaseSteps int                    `json:"total_release_steps,omitzero" gorm:"-" temporaljson:"total_component_release_steps,omitzero,omitempty"`
	ComponentReleaseSteps      []ComponentReleaseStep `` /* 133-byte string literal not displayed */

	Status            ReleaseStatus `json:"status,omitzero" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string        `json:"status_description,omitzero" temporaljson:"status_description,omitzero,omitempty"`
}

func (*ComponentRelease) BeforeCreate ยถ

func (a *ComponentRelease) BeforeCreate(tx *gorm.DB) error

func (*ComponentRelease) Indexes ยถ

func (a *ComponentRelease) Indexes(db *gorm.DB) []migrations.Index

type ComponentReleaseStep ยถ

type ComponentReleaseStep struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// parent release ID
	ComponentReleaseID string           `json:"component_release_id,omitzero" temporaljson:"component_release_id,omitzero,omitempty"`
	ComponentRelease   ComponentRelease `json:"-" temporaljson:"component_release,omitzero,omitempty"`

	Status            string `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string `json:"status_description,omitzero" temporaljson:"status_description,omitzero,omitempty"`

	// When a step is created, a set of installs are targeted. However, by the time the release step goes out, the
	// install might have been setup in any order of ways.
	RequestedInstallIDs pq.StringArray  `` /* 140-byte string literal not displayed */
	InstallDeploys      []InstallDeploy `` /* 127-byte string literal not displayed */

	// fields to control the delay of the individual step, as this is set based on the parent strategy
	Delay *string `json:"delay,omitzero" temporaljson:"delay,omitzero,omitempty"`
}

func (*ComponentReleaseStep) BeforeCreate ยถ

func (a *ComponentReleaseStep) BeforeCreate(tx *gorm.DB) error

func (*ComponentReleaseStep) Indexes ยถ

func (a *ComponentReleaseStep) Indexes(db *gorm.DB) []migrations.Index

type ComponentReleaseStrategy ยถ

type ComponentReleaseStrategy string
const (
	// Parallel means that all steps start at the same time
	ComponentReleaseStrategyParallel ComponentReleaseStrategy = "parallel"

	// Sync with delay splits the installs into steps (based on count/step), and then just waits the period of time
	ComponentReleaseStrategySyncWithDelay ComponentReleaseStrategy = "sync_with_delay"
)

type ComponentStatus ยถ

type ComponentStatus string
const (
	ComponentStatusError          ComponentStatus = "error"
	ComponentStatusActive         ComponentStatus = "active"
	ComponentStatusDeprovisioning ComponentStatus = "deprovisioning"
	ComponentStatusDeleteQueued   ComponentStatus = "delete_queued"
)

type ComponentType ยถ

type ComponentType string
const (
	ComponentTypeTerraformModule    ComponentType = "terraform_module"
	ComponentTypeHelmChart          ComponentType = "helm_chart"
	ComponentTypeDockerBuild        ComponentType = "docker_build"
	ComponentTypeExternalImage      ComponentType = "external_image"
	ComponentTypeJob                ComponentType = "job"
	ComponentTypeKubernetesManifest ComponentType = "kubernetes_manifest"
	ComponentTypeUnknown            ComponentType = "unknown"
)

func (ComponentType) BuildJobType ยถ

func (c ComponentType) BuildJobType() RunnerJobType

func (ComponentType) DeployJobType ยถ

func (c ComponentType) DeployJobType() RunnerJobType

func (ComponentType) DeployPlanJobType ยถ

func (c ComponentType) DeployPlanJobType() RunnerJobType

func (ComponentType) IsImage ยถ

func (c ComponentType) IsImage() bool

func (ComponentType) SyncJobType ยถ

func (c ComponentType) SyncJobType() RunnerJobType

type CompositeStatus ยถ

type CompositeStatus struct {
	CreatedByID string `json:"created_by_id,omitzero,omitempty" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedAtTS int64  `json:"created_at_ts,omitzero,omitempty" temporaljson:"created_at_ts,omitzero,omitempty"`

	Status                 Status         `json:"status,omitzero,omitempty" temporaljson:"status,omitzero,omitempty"`
	StatusHumanDescription string         `json:"status_human_description,omitzero,omitempty" temporaljson:"status_human_description,omitzero,omitempty"`
	Metadata               map[string]any `json:"metadata,omitzero,omitempty" temporaljson:"metadata,omitzero,omitempty"`

	History []CompositeStatus `json:"history,omitzero,omitempty" temporaljson:"history,omitzero,omitempty"`
}

func NewCompositeStatus ยถ

func NewCompositeStatus(ctx context.Context, status Status) CompositeStatus

func NewCompositeTemporalStatus ยถ

func NewCompositeTemporalStatus(ctx workflow.Context, status Status, vals ...map[string]any) CompositeStatus

func (CompositeStatus) GormDataType ยถ

func (CompositeStatus) GormDataType() string

func (*CompositeStatus) Scan ยถ

func (c *CompositeStatus) Scan(v interface{}) (err error)

Scan implements the database/sql.Scanner interface.

func (*CompositeStatus) Value ยถ

func (c *CompositeStatus) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type ConnectedGithubVCSConfig ยถ

type ConnectedGithubVCSConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// parent component
	ComponentConfigID   string `json:"component_config_id,omitzero" gorm:"notnull" temporaljson:"component_config_id,omitzero,omitempty"`
	ComponentConfigType string `json:"component_config_type,omitzero" gorm:"notnull" temporaljson:"component_config_type,omitzero,omitempty"`

	Repo      string `json:"repo,omitzero" gorm:"notnull" temporaljson:"repo,omitzero,omitempty"`
	RepoName  string `json:"repo_name,omitzero" gorm:"notnull" temporaljson:"repo_name,omitzero,omitempty"`
	RepoOwner string `json:"repo_owner,omitzero" gorm:"notnull" temporaljson:"repo_owner,omitzero,omitempty"`
	Directory string `json:"directory,omitzero" gorm:"notnull" temporaljson:"directory,omitzero,omitempty"`
	Branch    string `json:"branch,omitzero" gorm:"notnull" temporaljson:"branch,omitzero,omitempty"`

	VCSConnectionID string        `json:"vcs_connection_id,omitzero" gorm:"notnull" temporaljson:"vcs_connection_id,omitzero,omitempty"`
	VCSConnection   VCSConnection `json:"vcs_connection,omitzero,omitempty" temporaljson:"vcs_connection,omitzero,omitempty"`
}

func (*ConnectedGithubVCSConfig) BeforeCreate ยถ

func (c *ConnectedGithubVCSConfig) BeforeCreate(tx *gorm.DB) error

func (*ConnectedGithubVCSConfig) Indexes ยถ

func (c *ConnectedGithubVCSConfig) Indexes(db *gorm.DB) []migrations.Index

type DeviceCode ยถ

type DeviceCode struct {
	ID        string                `gorm:"primarykey" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_device_code_account,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	// Account relationship
	AccountID string   `gorm:"not null;index:idx_device_code_account,unique" json:"account_id,omitzero" temporaljson:"account_id,omitzero,omitempty"`
	Account   *Account `gorm:"constraint:OnDelete:CASCADE" faker:"-" json:"-" temporaljson:"account,omitzero,omitempty"`
	Code      string   `gorm:"unique;not null;index:idx_device_code_account,unique"`

	ExpiresAt time.Time `gorm:"not null"`      // 2 min from approval
	Consumed  bool      `gorm:"default:false"` // Token issued?
}

AccountIdentity links an account to an identity provider using the IdP's subject identifier. This enables secure authentication where users are identified by their stable `sub` claim rather than by email (which can change or be reassigned).

func (*DeviceCode) BeforeCreate ยถ

func (a *DeviceCode) BeforeCreate(tx *gorm.DB) error

func (*DeviceCode) Indexes ยถ

func (a *DeviceCode) Indexes(db *gorm.DB) []migrations.Index

type DockerBuildComponentConfig ยถ

type DockerBuildComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// value
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	Dockerfile string         `json:"dockerfile,omitzero" gorm:"default:Dockerfile;notnull" temporaljson:"dockerfile,omitzero,omitempty"`
	Target     string         `json:"target,omitzero" temporaljson:"target,omitzero,omitempty"`
	BuildArgs  pq.StringArray `json:"build_args,omitzero" gorm:"type:text[]" swaggertype:"array,string" temporaljson:"build_args,omitzero,omitempty"`
	EnvVars    pgtype.Hstore  `json:"env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"env_vars,omitzero,omitempty"`

	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 158-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 170-byte string literal not displayed */
}

func (*DockerBuildComponentConfig) BeforeCreate ยถ

func (c *DockerBuildComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*DockerBuildComponentConfig) Indexes ยถ

type DriftedObject ยถ

type DriftedObject struct {
	// These fields will be populated from the drifts_view
	TargetType         string  `json:"target_type,omitzero" gorm:"->;-:migration" temporaljson:"target_type,omitzero,omitempty"`
	TargetID           string  `json:"target_id,omitzero" gorm:"->;-:migration" temporaljson:"target_id,omitzero,omitempty"`
	InstallWorkflowID  string  `json:"install_workflow_id,omitzero" gorm:"->;-:migration" temporaljson:"install_workflow_id,omitzero,omitempty"`
	AppSandboxConfigID *string `json:"app_sandbox_config_id,omitzero" gorm:"->;-:migration" temporaljson:"app_sandbox_config_id,omitzero,omitempty"`
	ComponentBuildID   *string `json:"component_build_id,omitzero" gorm:"->;-:migration" temporaljson:"component_build_id,omitzero,omitempty"`
	InstallID          string  `json:"install_id,omitzero" gorm:"->;-:migration" temporaljson:"install_id,omitzero,omitempty"`
	OrgID              string  `json:"org_id,omitzero" gorm:"->;-:migration" temporaljson:"org_id,omitzero,omitempty"`
	InstallComponentID *string `json:"install_component_id,omitzero" gorm:"->;-:migration" temporaljson:"install_component_id,omitzero,omitempty"`
	InstallSandboxID   *string `json:"install_sandbox_id,omitzero" gorm:"->;-:migration" temporaljson:"install_sandbox_id,omitzero,omitempty"`
	ComponentName      string  `json:"component_name,omitzero" gorm:"->;-:migration" temporaljson:"component_name,omitzero,omitempty"`
}

func (*DriftedObject) AfterQuery ยถ

func (d *DriftedObject) AfterQuery(tx *gorm.DB) error

func (*DriftedObject) BeforeCreate ยถ

func (d *DriftedObject) BeforeCreate(tx *gorm.DB) error

func (*DriftedObject) EventLoops ยถ

func (d *DriftedObject) EventLoops() []bulk.EventLoop

func (*DriftedObject) Indexes ยถ

func (d *DriftedObject) Indexes(db *gorm.DB) []migrations.Index

func (*DriftedObject) UseView ยถ

func (d *DriftedObject) UseView() bool

func (*DriftedObject) ViewVersion ยถ

func (d *DriftedObject) ViewVersion() string

func (*DriftedObject) Views ยถ

func (d *DriftedObject) Views(db *gorm.DB) []migrations.View

type EndpointAudit ยถ

type EndpointAudit struct {
	ID        string                `gorm:"primarykey" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	Method     string            `json:"method,omitzero" gorm:"not null;default null" temporaljson:"method,omitzero,omitempty"`
	Name       string            `json:"name,omitzero" gorm:"not null;default null" temporaljson:"name,omitzero,omitempty"`
	Route      string            `json:"route,omitzero" gorm:"not null;default null" temporaljson:"route,omitzero,omitempty"`
	LastUsedAt generics.NullTime `json:"last_used_at,omitzero" gorm:"type:timestamp;default:null" temporaljson:"last_used_at,omitzero,omitempty"`

	Deprecated bool `json:"deprecated,omitzero" gorm:"not null;default:false" temporaljson:"deprecated,omitzero,omitempty"`
}

func (*EndpointAudit) BeforeCreate ยถ

func (a *EndpointAudit) BeforeCreate(tx *gorm.DB) error

func (*EndpointAudit) Indexes ยถ

func (c *EndpointAudit) Indexes(db *gorm.DB) []migrations.Index

type Event ยถ

type Event struct {
	ID          string `json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"precision:6" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"precision" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"type:Nullable(Int8)" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID       string `json:"org_id,omitzero" gorm:"type:LowCardinality(String)" temporaljson:"org_id,omitzero,omitempty"`
	AppID       string `json:"app_id,omitzero" gorm:"type:LowCardinality(String)" temporaljson:"app_id,omitzero,omitempty"`
	InstallID   string `json:"install_id,omitzero" gorm:"type:LowCardinality(String)" temporaljson:"install_id,omitzero,omitempty"`
	ComponentID string `json:"component_id,omitzero" gorm:"type:LowCardinality(String)" temporaljson:"component_id,omitzero,omitempty"`
	RunnerID    string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
}

func (*Event) BeforeCreate ยถ

func (r *Event) BeforeCreate(tx *gorm.DB) error

func (*Event) Indexes ยถ

func (r *Event) Indexes(db *gorm.DB) []migrations.Index

type ExternalImageComponentConfig ยถ

type ExternalImageComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// value
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	ImageURL          string             `json:"image_url,omitzero" gorm:"notnull" temporaljson:"image_url,omitzero,omitempty"`
	Tag               string             `json:"tag,omitzero" gorm:"notnull" temporaljson:"tag,omitzero,omitempty"`
	AWSECRImageConfig *AWSECRImageConfig `` /* 164-byte string literal not displayed */
}

func (*ExternalImageComponentConfig) BeforeCreate ยถ

func (e *ExternalImageComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*ExternalImageComponentConfig) Indexes ยถ

type HelmChart ยถ

type HelmChart struct {
	ID          string                `gorm:"primary_key:true;check:id_checker,char_length(id)=26" json:"id"`
	CreatedByID string                `json:"created_by_id" gorm:"not null;default:null" `
	CreatedBy   Account               `json:"-"`
	CreatedAt   time.Time             `json:"created_at" gorm:"notnull" `
	UpdatedAt   time.Time             `json:"updated_at" gorm:"notnull" `
	DeletedAt   soft_delete.DeletedAt `json:"-" `

	OrgID string `json:"org_id" `
	Org   Org    `json:"-" `

	OwnerID   string `json:"owner_id" gorm:"type:text;check:owner_id_checker,char_length(id)=26;uniqueIndex:idx_owner" `
	OwnerType string `json:"owner_type" gorm:"type:text;uniqueIndex:idx_owner"`

	HelmReleases []HelmRelease `faker:"-"  gorm:"constraint:OnDelete:CASCADE;"`
}

func (*HelmChart) BeforeCreate ยถ

func (h *HelmChart) BeforeCreate(tx *gorm.DB) (err error)

func (*HelmChart) Indexes ยถ

func (h *HelmChart) Indexes(db *gorm.DB) []migrations.Index

type HelmComponentConfig ยถ

type HelmComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// parent reference
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	HelmConfig *HelmConfig `json:"helm_config_json,omitzero" gorm:"type:jsonb" temporaljson:"helm_config_json,omitzero,omitempty"`

	// Helm specific configurations
	ChartName     string              `json:"chart_name,omitzero" gorm:"notnull" features:"template" temporaljson:"chart_name,omitzero,omitempty"`
	Values        pgtype.Hstore       `` /* 130-byte string literal not displayed */
	ValuesFiles   pq.StringArray      `` /* 141-byte string literal not displayed */
	Namespace     generics.NullString `json:"namespace,omitzero" swaggertype:"string" features:"template" temporaljson:"namespace,omitzero,omitempty"`
	StorageDriver generics.NullString `json:"storage_driver,omitzero" swaggertype:"string" features:"template" temporaljson:"storage_driver,omitzero,omitempty"`
	// Newer config fields that we don't need a column for
	TakeOwnership bool `json:"take_ownership,omitzero" gorm:"-" temporaljson:"take_ownership,omitzero,omitempty"`

	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 167-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 179-byte string literal not displayed */
}

func (*HelmComponentConfig) AfterQuery ยถ

func (c *HelmComponentConfig) AfterQuery(tx *gorm.DB) error

func (*HelmComponentConfig) BeforeCreate ยถ

func (c *HelmComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*HelmComponentConfig) Indexes ยถ

func (c *HelmComponentConfig) Indexes(db *gorm.DB) []migrations.Index

type HelmConfig ยถ

type HelmConfig struct {
	ChartName      string             `json:"chart_name"`
	Values         map[string]*string `json:"values"`
	ValuesFiles    []string           `json:"values_files"`
	Namespace      string             `json:"namespace"`
	StorageDriver  string             `json:"storage_driver"`
	HelmRepoConfig *HelmRepoConfig    `json:"helm_repo_config,omitempty"`

	// Newer fields that we don't need to store as columns in the database
	TakeOwnership bool `json:"take_ownership,omitempty"`
}

func (HelmConfig) GormDataType ยถ

func (HelmConfig) GormDataType() string

func (*HelmConfig) Scan ยถ

func (c *HelmConfig) Scan(v interface{}) (err error)

Scan implements the database/sql.Scanner interface.

func (*HelmConfig) Value ยถ

func (c *HelmConfig) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type HelmRelease ยถ

type HelmRelease struct {
	HelmChartID string    `gorm:"primary_key:true"`
	HelmChart   HelmChart `gorm:"-" temporaljson:"helm_chart,omitzero,omitempty"`

	CreatedByID string  `json:"created_by_id" gorm:"not null;default:null" `
	CreatedBy   Account `json:"-"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" `
	DeletedAt soft_delete.DeletedAt `json:"-" `

	OrgID string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	Key string `gorm:"primaryKey:true"`

	// See https://github.com/helm/helm/blob/c9fe3d118caec699eb2565df9838673af379ce12/pkg/storage/driver/secrets.go#L231
	Type string `gorm:"not null"`

	// The rspb.Release body, as a base64-encoded string
	Body string `gorm:"not null"`

	// Release "labels" that can be used as filters in the storage.Query(labels map[string]string)
	// we implemented. Note that allowing Helm users to filter against new dimensions will require a
	// new migration to be added, and the Create and/or update functions to be updated accordingly.
	Name      string `gorm:"not null"`
	Namespace string `gorm:"not null"`
	Version   int    `gorm:"not null"`
	Status    string `gorm:"not null"`
	Owner     string `gorm:"not null"`

	Labels JSONMap `json:"labels,omitempty"`
}

func (*HelmRelease) BeforeCreate ยถ

func (t *HelmRelease) BeforeCreate(tx *gorm.DB) (err error)

func (*HelmRelease) Indexes ยถ

func (t *HelmRelease) Indexes(db *gorm.DB) []migrations.Index

type HelmRepoConfig ยถ

type HelmRepoConfig struct {
	RepoURL string `json:"repo_url"`
	Chart   string `json:"chart"`
	Version string `json:"version,omitempty"`
}

type IdentityProvider ยถ

type IdentityProvider struct {
	ID        string                `gorm:"primarykey" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_provider_type,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	// OrgID can be nil for global providers available to all orgs in the deployment.
	// If set, the provider is only available to users in that specific org.
	OrgID *string `json:"org_id,omitempty" gorm:"index:idx_provider_type,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   *Org    `faker:"-" json:"-" gorm:"constraint:OnDelete:SET NULL" temporaljson:"org,omitzero,omitempty"`

	ProviderType ProviderType `json:"provider_type,omitzero" gorm:"not null,index:idx_provider_type,unique" temporaljson:"provider_type,omitzero,omitempty"`
	Enabled      bool         `json:"enabled" gorm:"default:false" temporaljson:"enabled,omitempty"`

	// Config holds provider-specific configuration as JSON.
	// The structure depends on ProviderType:
	// - oidc: providers.OpenIDConfig
	// - google: providers.GoogleConfig
	// - github: providers.GitHubConfig
	Config []byte `json:"config,omitzero" gorm:"type:jsonb" temporaljson:"config,omitzero,omitempty"`
}

func (*IdentityProvider) BeforeCreate ยถ

func (a *IdentityProvider) BeforeCreate(tx *gorm.DB) error

func (*IdentityProvider) GetGitHubConfig ยถ

func (ip *IdentityProvider) GetGitHubConfig() (*providers.GitHubConfig, error)

GetGitHubConfig unmarshals the Config as GitHubConfig.

func (*IdentityProvider) GetGoogleConfig ยถ

func (ip *IdentityProvider) GetGoogleConfig() (*providers.GoogleConfig, error)

GetGoogleConfig unmarshals the Config as GoogleConfig.

func (*IdentityProvider) GetOpenIDConfig ยถ

func (ip *IdentityProvider) GetOpenIDConfig() (*providers.OpenIDConfig, error)

GetOpenIDConfig unmarshals the Config as OpenIDConfig.

func (*IdentityProvider) Indexes ยถ

func (a *IdentityProvider) Indexes(db *gorm.DB) []migrations.Index

func (*IdentityProvider) SetGitHubConfig ยถ

func (ip *IdentityProvider) SetGitHubConfig(cfg *providers.GitHubConfig) error

SetGitHubConfig marshals and sets the Config from GitHubConfig.

func (*IdentityProvider) SetGoogleConfig ยถ

func (ip *IdentityProvider) SetGoogleConfig(cfg *providers.GoogleConfig) error

SetGoogleConfig marshals and sets the Config from GoogleConfig.

func (*IdentityProvider) SetOpenIDConfig ยถ

func (ip *IdentityProvider) SetOpenIDConfig(cfg *providers.OpenIDConfig) error

SetOpenIDConfig marshals and sets the Config from OpenIDConfig.

func (*IdentityProvider) ValidateConfig ยถ

func (ip *IdentityProvider) ValidateConfig() error

ValidateConfig validates the Config field based on ProviderType.

type Install ยถ

type Install struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_install_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`
	Metadata    pgtype.Hstore         `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Name  string `json:"name,omitzero" gorm:"notnull;index:idx_app_install_name,unique" temporaljson:"name,omitzero,omitempty"`
	App   App    `swaggerignore:"true" json:"app,omitzero" temporaljson:"app,omitzero,omitempty"`
	AppID string `json:"app_id,omitzero" gorm:"notnull;index:idx_app_install_name,unique" temporaljson:"app_id,omitzero,omitempty"`

	AppConfigID string    `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`
	AppConfig   AppConfig `json:"-" temporaljson:"app_config,omitzero,omitempty"`

	AppSandboxConfigID string           `json:"-" swaggerignore:"true" temporaljson:"app_sandbox_config_id,omitzero,omitempty"`
	AppSandboxConfig   AppSandboxConfig `json:"app_sandbox_config,omitzero" temporaljson:"app_sandbox_config,omitzero,omitempty"`

	AppRunnerConfigID string          `json:"-" swaggerignore:"true" temporaljson:"app_runner_config_id,omitzero,omitempty"`
	AppRunnerConfig   AppRunnerConfig `json:"app_runner_config,omitzero" temporaljson:"app_runner_config,omitzero,omitempty"`

	InstallComponents       []InstallComponent        `` /* 133-byte string literal not displayed */
	InstallActionWorkflows  []InstallActionWorkflow   `` /* 145-byte string literal not displayed */
	InstallSandboxRuns      []InstallSandboxRun       `` /* 137-byte string literal not displayed */
	InstallInputs           []InstallInputs           `json:"install_inputs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_inputs,omitzero,omitempty"`
	InstallEvents           []InstallEvent            `json:"install_events,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_events,omitzero,omitempty"`
	InstallIntermediateData []InstallIntermediateData `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_intermediate_data,omitzero,omitempty"`
	InstallSandbox          InstallSandbox            `json:"sandbox" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_sandbox,omitzero,omitempty"`
	InstallConfig           *InstallConfig            `json:"install_config,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_config,omitzero,omitempty"`
	InstallStates           []InstallState            `json:"install_states,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_states,omitzero,omitempty"`

	InstallStack *InstallStack `json:"install_stack,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_stack,omitzero,omitempty"`
	AWSAccount   *AWSAccount   `json:"aws_account,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"aws_account,omitzero,omitempty"`
	AzureAccount *AzureAccount `json:"azure_account,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"azure_account,omitzero,omitempty"`

	RunnerGroup RunnerGroup `json:"-" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"runner_group,omitzero,omitempty"`

	InstallNumber            int                  `json:"install_number,omitzero" gorm:"->;-:migration" temporaljson:"install_number,omitzero,omitempty"`
	SandboxStatus            InstallSandboxStatus `json:"sandbox_status,omitzero" gorm:"->;-:migration" swaggertype:"string" temporaljson:"sandbox_status,omitzero,omitempty"`
	SandboxStatusDescription string               `` /* 133-byte string literal not displayed */
	ComponentStatuses        pgtype.Hstore        `` /* 149-byte string literal not displayed */

	Workflows []Workflow `json:"workflows,omitzero" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"workflows,omitzero,omitempty"`

	CurrentInstallInputs                *InstallInputs         `json:"-" gorm:"-" temporaljson:"current_install_inputs,omitzero,omitempty"`
	CompositeComponentStatus            InstallComponentStatus `` /* 133-byte string literal not displayed */
	CompositeComponentStatusDescription string                 `` /* 157-byte string literal not displayed */
	RunnerStatus                        RunnerStatus           `json:"runner_status,omitzero" gorm:"-" swaggertype:"string" temporaljson:"runner_status,omitzero,omitempty"`
	RunnerStatusDescription             string                 `` /* 131-byte string literal not displayed */
	RunnerID                            string                 `json:"runner_id,omitzero" gorm:"-" temporaljson:"runner_id,omitzero,omitempty"`
	CloudPlatform                       CloudPlatform          `json:"cloud_platform,omitzero" gorm:"-" swaggertype:"string" temporaljson:"cloud_platform,omitzero,omitempty"`
	RunnerType                          AppRunnerType          `json:"runner_type,omitzero" gorm:"-" swaggertype:"string" temporaljson:"runner_type,omitzero,omitempty"`
	DriftedObjects                      []DriftedObject        `json:"drifted_objects,omitzero" gorm:"-" temporaljson:"drifted_objects,omitzero,omitempty"`
	Links                               map[string]any         `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`

	// TODO(jm): deprecate these fields once the terraform provider has been updated
	Status            string `json:"status,omitzero" gorm:"-" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string `json:"status_description,omitzero" gorm:"-" temporaljson:"status_description,omitzero,omitempty"`
}

func (*Install) AfterQuery ยถ

func (i *Install) AfterQuery(tx *gorm.DB) error

We want to report the status of the sandbox, the runner, and the components, and then roll that up into a high-level status for the install overall.

func (*Install) BeforeCreate ยถ

func (i *Install) BeforeCreate(tx *gorm.DB) error

func (*Install) EventLoops ยถ

func (i *Install) EventLoops() []bulk.EventLoop

func (*Install) Indexes ยถ

func (i *Install) Indexes(db *gorm.DB) []migrations.Index

func (*Install) UseView ยถ

func (i *Install) UseView() bool

func (*Install) ViewVersion ยถ

func (i *Install) ViewVersion() string

func (*Install) Views ยถ

func (i *Install) Views(db *gorm.DB) []migrations.View

type InstallActionWorkflow ยถ

type InstallActionWorkflow struct {
	ID          string                `json:"id,omitzero" gorm:"primary_key;check:id_checker,char_length(id)=26" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `` /* 147-byte string literal not displayed */

	// used for RLS
	OrgID string `` /* 142-byte string literal not displayed */
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Install   Install `json:"-" swaggerignore:"true" temporaljson:"install,omitzero,omitempty"`
	InstallID string  `` /* 175-byte string literal not displayed */

	ActionWorkflow   ActionWorkflow `json:"action_workflow,omitzero" temporaljson:"action_workflow,omitzero,omitempty"`
	ActionWorkflowID string         `` /* 138-byte string literal not displayed */

	Runs []InstallActionWorkflowRun `faker:"-" gorm:"constraint:OnDelete:CASCADE;" json:"runs,omitzero" temporaljson:"runs,omitzero,omitempty"`

	// after query fields filled in after querying
	Status InstallActionWorkflowRunStatus `json:"status,omitzero" gorm:"-" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
}

func (*InstallActionWorkflow) AfterQuery ยถ

func (c *InstallActionWorkflow) AfterQuery(tx *gorm.DB) error

func (*InstallActionWorkflow) BeforeCreate ยถ

func (a *InstallActionWorkflow) BeforeCreate(tx *gorm.DB) error

func (*InstallActionWorkflow) Indexes ยถ

func (a *InstallActionWorkflow) Indexes(db *gorm.DB) []migrations.Index

type InstallActionWorkflowManualTrigger ยถ

type InstallActionWorkflowManualTrigger struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallActionWorkflowRun InstallActionWorkflowRun `` /* 137-byte string literal not displayed */
}

func (*InstallActionWorkflowManualTrigger) AfterQuery ยถ

func (i *InstallActionWorkflowManualTrigger) AfterQuery(tx *gorm.DB) error

func (*InstallActionWorkflowManualTrigger) BeforeCreate ยถ

func (i *InstallActionWorkflowManualTrigger) BeforeCreate(tx *gorm.DB) error

func (*InstallActionWorkflowManualTrigger) Indexes ยถ

type InstallActionWorkflowRun ยถ

type InstallActionWorkflowRun struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by,omitzero" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `` /* 143-byte string literal not displayed */
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	RunnerJob *RunnerJob `json:"runner_job,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_job,omitzero,omitempty"`

	LogStream LogStream `json:"log_stream,omitzero" gorm:"polymorphic:Owner;" temporaljson:"log_stream,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string  `` /* 147-byte string literal not displayed */
	Install   Install `swaggerignore:"true" json:"-" temporaljson:"install,omitzero,omitempty"`

	InstallActionWorkflowID string                `` /* 157-byte string literal not displayed */
	InstallActionWorkflow   InstallActionWorkflow `json:"install_action_workflow,omitzero" temporaljson:"install_action_workflow,omitzero,omitempty"`

	Status            InstallActionWorkflowRunStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string                         `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`
	StatusV2          CompositeStatus                `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`

	TriggerType ActionWorkflowTriggerType `json:"trigger_type,omitzero" gorm:"notnull;default:''" temporaljson:"trigger_type,omitzero,omitempty"`

	TriggeredByID   string `` /* 147-byte string literal not displayed */
	TriggeredByType string `json:"triggered_by_type,omitzero" gorm:"type:text;" temporaljson:"triggered_by_type,omitzero,omitempty"`

	ActionWorkflowConfigID string               `json:"action_workflow_config_id,omitzero" gorm:"notnull" temporaljson:"action_workflow_config_id,omitzero,omitempty"`
	ActionWorkflowConfig   ActionWorkflowConfig `json:"config,omitzero" temporaljson:"action_workflow_config,omitzero,omitempty"`

	Steps []InstallActionWorkflowRunStep `json:"steps,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"steps,omitzero,omitempty"`

	RunEnvVars pgtype.Hstore `json:"run_env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"run_env_vars,omitzero,omitempty"`

	InstallWorkflowID *string   `json:"install_workflow_id" gorm:"default null" temporaljson:"install_sandbox_id,omitzero,omitempty"`
	InstallWorkflow   *Workflow `swaggerignore:"true" json:"-" temporaljson:"install_workflow,omitzero,omitempty"`

	// after query
	ExecutionTime time.Duration          `json:"execution_time,omitzero" gorm:"-" swaggertype:"primitive,integer" temporaljson:"execution_time,omitzero,omitempty"`
	Outputs       map[string]interface{} `json:"outputs,omitzero" gorm:"-" temporaljson:"outputs,omitzero,omitempty"`
	WorkflowID    *string                `json:"workflow_id,omitzero" gorm:"-" temporaljson:"workflow_step_id,omitzero,omitempty"`
	Workflow      *Workflow              `json:"workflow,omitzero" gorm:"-" temporaljson:"workflow_step,omitzero,omitempty"`
}

func (*InstallActionWorkflowRun) AfterQuery ยถ

func (i *InstallActionWorkflowRun) AfterQuery(tx *gorm.DB) error

func (*InstallActionWorkflowRun) BeforeCreate ยถ

func (i *InstallActionWorkflowRun) BeforeCreate(tx *gorm.DB) error

func (*InstallActionWorkflowRun) Indexes ยถ

func (i *InstallActionWorkflowRun) Indexes(db *gorm.DB) []migrations.Index

func (*InstallActionWorkflowRun) Views ยถ

type InstallActionWorkflowRunStatus ยถ

type InstallActionWorkflowRunStatus string
const (
	InstallActionRunStatusFinished   InstallActionWorkflowRunStatus = "finished"
	InstallActionRunStatusQueued     InstallActionWorkflowRunStatus = "queued"
	InstallActionRunStatusInProgress InstallActionWorkflowRunStatus = "in-progress"
	InstallActionRunStatusError      InstallActionWorkflowRunStatus = "error"
	InstallActionRunStatusTimedOut   InstallActionWorkflowRunStatus = "timed-out"
	InstallActionRunStatusCancelled  InstallActionWorkflowRunStatus = "cancelled"
	InstallActionRunStatusUnknown    InstallActionWorkflowRunStatus = "unknown"
)

type InstallActionWorkflowRunStep ยถ

type InstallActionWorkflowRunStep struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Status InstallActionWorkflowRunStepStatus `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`

	InstallActionWorkflowRunID string                   `json:"install_action_workflow_run_id,omitzero" temporaljson:"install_action_workflow_run_id,omitzero,omitempty"`
	InstallActionWorkflowRun   InstallActionWorkflowRun `json:"-" temporaljson:"install_action_workflow_run,omitzero,omitempty"`

	StepID string                   `json:"step_id,omitzero" temporaljson:"step_id,omitzero,omitempty"`
	Step   ActionWorkflowStepConfig `json:"-" temporaljson:"step,omitzero,omitempty"`

	ExecutionDuration time.Duration `` /* 148-byte string literal not displayed */
}

func (*InstallActionWorkflowRunStep) BeforeCreate ยถ

func (i *InstallActionWorkflowRunStep) BeforeCreate(tx *gorm.DB) error

func (*InstallActionWorkflowRunStep) Indexes ยถ

type InstallActionWorkflowRunStepStatus ยถ

type InstallActionWorkflowRunStepStatus string
const (
	InstallActionWorkflowRunStepStatusFinished   InstallActionWorkflowRunStepStatus = "finished"
	InstallActionWorkflowRunStepStatusPending    InstallActionWorkflowRunStepStatus = "pending"
	InstallActionWorkflowRunStepStatusInProgress InstallActionWorkflowRunStepStatus = "in-progress"
	InstallActionWorkflowRunStepStatusTimedOut   InstallActionWorkflowRunStepStatus = "timed-out"
	InstallActionWorkflowRunStepStatusError      InstallActionWorkflowRunStepStatus = "error"
)

type InstallApprovalOption ยถ

type InstallApprovalOption string
const (
	InstallApprovalOptionApproveAll InstallApprovalOption = "approve-all"
	InstallApprovalOptionPrompt     InstallApprovalOption = "prompt"
)

type InstallAuditLog ยถ

type InstallAuditLog struct {
	InstallID string    `json:"install_id,omitzero" gorm:"->;-:migration"`
	Type      string    `json:"type,omitzero" gorm:"->;-:migration"`
	TimeStamp time.Time `json:"time_stamp,omitzero" gorm:"->;-:migration"`
	LogLine   string    `json:"log_line,omitzero" gorm:"->;-:migration"`
}

func (InstallAuditLog) GetTableOptions ยถ

func (m InstallAuditLog) GetTableOptions() (string, bool)

func (InstallAuditLog) MigrateDB ยถ

func (r InstallAuditLog) MigrateDB(db *gorm.DB) *gorm.DB

func (*InstallAuditLog) UseView ยถ

func (*InstallAuditLog) UseView() bool

func (*InstallAuditLog) ViewVersion ยถ

func (*InstallAuditLog) ViewVersion() string

func (*InstallAuditLog) Views ยถ

func (i *InstallAuditLog) Views(db *gorm.DB) []migrations.View

type InstallComponent ยถ

type InstallComponent struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string  `json:"install_id,omitzero" gorm:"index:install_component_group,unique;notnull" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `faker:"-" json:"-" temporaljson:"install,omitzero,omitempty"`

	ComponentID string    `` /* 127-byte string literal not displayed */
	Component   Component `faker:"-" json:"component,omitzero" temporaljson:"component,omitzero,omitempty"`

	InstallDeploys     []InstallDeploy    `` /* 127-byte string literal not displayed */
	TerraformWorkspace TerraformWorkspace `` /* 143-byte string literal not displayed */
	DriftedObject      DriftedObject      `faker:"-" gorm:"-;" json:"drifted_object,omitzero" temporaljson:"drifted_object,omitzero,omitempty"`

	Links     map[string]any `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`
	HelmChart HelmChart      `json:"helm_chart" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"helm_chart,omitzero,omitempty"`

	Status            InstallComponentStatus `json:"status,omitzero" gorm:"default:''" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string                 `json:"status_description,omitzero" gorm:"default:''" temporaljson:"status_description,omitzero,omitempty"`
	StatusV2          CompositeStatus        `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`
}

func (*InstallComponent) AfterQuery ยถ

func (c *InstallComponent) AfterQuery(tx *gorm.DB) error

func (*InstallComponent) BeforeCreate ยถ

func (c *InstallComponent) BeforeCreate(tx *gorm.DB) error

func (*InstallComponent) Indexes ยถ

func (c *InstallComponent) Indexes(db *gorm.DB) []migrations.Index

type InstallComponentStatus ยถ

type InstallComponentStatus string
const (
	InstallComponentStatusUnset        InstallComponentStatus = ""
	InstallComponentStatusDeleted      InstallComponentStatus = "deleted"
	InstallComponentStatusDeleteFailed InstallComponentStatus = "delete_failed"
	InstallComponentStatusQueued       InstallComponentStatus = "queued"

	// all legacy statuses that could be set from install deploy
	InstallComponentStatusActive    InstallComponentStatus = "active"
	InstallComponentStatusInactive  InstallComponentStatus = "inactive"
	InstallComponentStatusError     InstallComponentStatus = "error"
	InstallComponentStatusNoop      InstallComponentStatus = "noop"
	InstallComponentStatusPlanning  InstallComponentStatus = "planning"
	InstallComponentStatusSyncing   InstallComponentStatus = "syncing"
	InstallComponentStatusExecuting InstallComponentStatus = "executing"
	InstallComponentStatusUnknown   InstallComponentStatus = "unknown"
	InstallComponentStatusPending   InstallComponentStatus = "pending"
)

func DeployStatusToComponentStatus ยถ

func DeployStatusToComponentStatus(status InstallDeployStatus) InstallComponentStatus

type InstallComponentSummary ยถ

type InstallComponentSummary struct {
	ID                      string                     `json:"id"`
	ComponentID             string                     `json:"component_id"`
	ComponentName           string                     `json:"component_name"`
	DeployStatus            InstallDeployStatus        `json:"deploy_status"`
	DeployStatusDescription string                     `json:"deploy_status_description"`
	BuildStatus             ComponentBuildStatus       `json:"build_status"`
	BuildStatusDescription  string                     `json:"build_status_description"`
	ComponentConfig         *ComponentConfigConnection `json:"component_config"`
	Dependencies            []Component                `json:"dependencies"`
	DriftedStatus           bool                       `json:"drifted_status"`
}

type InstallConfig ยถ

type InstallConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`
	OrgID       string                `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org         Org                   `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string  `json:"install_id,omitzero" gorm:"notnull;default null" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `json:"-" temporaljson:"install,omitzero,omitempty"`

	ApprovalOption InstallApprovalOption `json:"approval_option,omitzero" gorm:"not null;default 'auto'" temporaljson:"approval_option,omitzero,omitempty"`
}

func (*InstallConfig) BeforeCreate ยถ

func (a *InstallConfig) BeforeCreate(tx *gorm.DB) error

func (*InstallConfig) Indexes ยถ

func (c *InstallConfig) Indexes(db *gorm.DB) []migrations.Index

type InstallDeploy ยถ

type InstallDeploy struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by,omitzero" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// runner details
	RunnerJobs  []RunnerJob `json:"runner_jobs,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_jobs,omitzero,omitempty"`
	OCIArtifact OCIArtifact `json:"oci_artifact,omitzero,omitempty" gorm:"polymorphic:Owner;" temporaljson:"oci_artifact,omitempty"`
	LogStream   LogStream   `json:"log_stream,omitzero" gorm:"polymorphic:Owner;" temporaljson:"log_stream,omitzero,omitempty"`

	ActionWorkflowRuns []InstallActionWorkflowRun `json:"action_workflow_runs,omitzero" gorm:"polymorphic:TriggeredBy;" temporaljson:"action_workflow_runs,omitzero,omitempty"`

	ComponentBuildID string         `json:"build_id,omitzero" gorm:"notnull" temporaljson:"component_build_id,omitzero,omitempty"`
	ComponentBuild   ComponentBuild `faker:"-" json:"component_build,omitzero" temporaljson:"component_build,omitzero,omitempty"`

	InstallComponentID string           `json:"install_component_id,omitzero" gorm:"notnull" temporaljson:"install_component_id,omitzero,omitempty"`
	InstallComponent   InstallComponent `faker:"-" json:"-" temporaljson:"install_component,omitzero,omitempty"`

	ComponentReleaseStepID *string               `json:"release_id,omitzero" temporaljson:"component_release_step_id,omitzero,omitempty"`
	ComponentReleaseStep   *ComponentReleaseStep `json:"-" temporaljson:"component_release_step,omitzero,omitempty"`

	Status            InstallDeployStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string              `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`
	Type              InstallDeployType   `json:"install_deploy_type,omitzero" temporaljson:"type,omitzero,omitempty"`
	StatusV2          CompositeStatus     `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`

	// DEPRECATED: use WorkflowID
	InstallWorkflowID *string   `json:"install_workflow_id,omitzero" gorm:"default null" temporaljson:"install_sandbox_id,omitzero,omitempty"`
	InstallWorkflow   *Workflow `swaggerignore:"true" json:"-" temporaljson:"install_workflow,omitzero,omitempty"`

	// Fields that are de-nested at read time using AfterQuery
	InstallID              string    `json:"install_id" gorm:"-" temporaljson:"install_id,omitzero,omitempty"`
	ComponentID            string    `json:"component_id,omitzero" gorm:"-" temporaljson:"component_id,omitzero,omitempty"`
	ComponentName          string    `json:"component_name,omitzero" gorm:"-" temporaljson:"component_name,omitzero,omitempty"`
	ComponentConfigVersion int       `gorm:"-" json:"component_config_version,omitzero" temporaljson:"component_config_version,omitzero,omitempty"`
	WorkflowID             *string   `json:"workflow_id,omitzero" gorm:"-" temporaljson:"workflow_step_id,omitzero,omitempty"`
	Workflow               *Workflow `json:"workflow,omitzero" gorm:"-" temporaljson:"workflow_step,omitzero,omitempty"`
	PlanOnly               bool      `json:"plan_only" gorm:"-" temporaljson:"plan_only,omitzero,omitempty"`

	Outputs map[string]any `json:"outputs,omitzero" gorm:"-" temporaljson:"outputs,omitzero,omitempty"`
}

func (*InstallDeploy) AfterQuery ยถ

func (c *InstallDeploy) AfterQuery(tx *gorm.DB) error

func (*InstallDeploy) BeforeCreate ยถ

func (c *InstallDeploy) BeforeCreate(tx *gorm.DB) error

func (*InstallDeploy) Indexes ยถ

func (c *InstallDeploy) Indexes(db *gorm.DB) []migrations.Index

func (*InstallDeploy) IsTornDown ยถ

func (c *InstallDeploy) IsTornDown() bool

func (*InstallDeploy) Views ยถ

func (i *InstallDeploy) Views(db *gorm.DB) []migrations.View

type InstallDeployStatus ยถ

type InstallDeployStatus string
const (
	InstallDeployStatusActive          InstallDeployStatus = "active"
	InstallDeployStatusInactive        InstallDeployStatus = "inactive"
	InstallDeployStatusError           InstallDeployStatus = "error"
	InstallDeployStatusNoop            InstallDeployStatus = "noop"
	InstallDeployStatusPlanning        InstallDeployStatus = "planning"
	InstallDeployStatusSyncing         InstallDeployStatus = "syncing"
	InstallDeployStatusExecuting       InstallDeployStatus = "executing"
	InstallDeployStatusCancelled       InstallDeployStatus = "cancelled"
	InstallDeployStatusUnknown         InstallDeployStatus = "unknown"
	InstallDeployStatusPending         InstallDeployStatus = "pending"
	InstallDeployStatusQueued          InstallDeployStatus = "queued"
	InstallDeployStatusPendingApproval InstallDeployStatus = "pending-approval"
	InstallDeployStatusDriftDetected   InstallDeployStatus = "drift-detected"
	InstallDeployStatusAutoSkipped     InstallDeployStatus = "auto-skipped"
	InstallDeployStatusNoDrift         InstallDeployStatus = "no-drift"
	InstallDeployApprovalDenied        InstallDeployStatus = "approval-denied"
)

type InstallDeployType ยถ

type InstallDeployType string
const (
	InstallDeployTypeSync     InstallDeployType = "sync-image"
	InstallDeployTypeApply    InstallDeployType = "apply"
	InstallDeployTypeTeardown InstallDeployType = "teardown"
)

type InstallEvent ยถ

type InstallEvent struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	InstallID string  `json:"install_id,omitzero" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `swaggerignore:"-" json:"-" temporaljson:"install,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" swaggerignore:"-" temporaljson:"org,omitzero,omitempty"`

	Operation       string          `json:"operation,omitzero" temporaljson:"operation,omitzero,omitempty"`
	OperationStatus OperationStatus `json:"operation_status,omitzero" temporaljson:"operation_status,omitzero,omitempty"`

	Payload []byte `json:"payload,omitzero" gorm:"type:jsonb" swaggertype:"object,string" temporaljson:"payload,omitzero,omitempty"`

	OperationName string `gorm:"-" json:"operation_name,omitzero" temporaljson:"operation_name,omitzero,omitempty"`
}

func (*InstallEvent) AfterQuery ยถ

func (i *InstallEvent) AfterQuery(tx *gorm.DB) error

func (*InstallEvent) BeforeCreate ยถ

func (a *InstallEvent) BeforeCreate(tx *gorm.DB) error

func (*InstallEvent) Indexes ยถ

func (i *InstallEvent) Indexes(db *gorm.DB) []migrations.Index

type InstallInputs ยถ

type InstallInputs struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`
	OrgID       string                `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org         Org                   `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID      string        `json:"install_id,omitzero" gorm:"notnull;default null" temporaljson:"install_id,omitzero,omitempty"`
	Install        Install       `json:"-" temporaljson:"install,omitzero,omitempty"`
	Values         pgtype.Hstore `json:"values,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"values,omitzero,omitempty"`
	ValuesRedacted pgtype.Hstore `` /* 143-byte string literal not displayed */

	AppInputConfigID string         `json:"app_input_config_id,omitzero" temporaljson:"app_input_config_id,omitzero,omitempty"`
	AppInputConfig   AppInputConfig `json:"-" temporaljson:"app_input_config,omitzero,omitempty"`
}

func (*InstallInputs) BeforeCreate ยถ

func (a *InstallInputs) BeforeCreate(tx *gorm.DB) error

func (*InstallInputs) Indexes ยถ

func (i *InstallInputs) Indexes(db *gorm.DB) []migrations.Index

func (*InstallInputs) UseView ยถ

func (i *InstallInputs) UseView() bool

func (*InstallInputs) ViewVersion ยถ

func (i *InstallInputs) ViewVersion() string

func (*InstallInputs) Views ยถ

func (i *InstallInputs) Views(db *gorm.DB) []migrations.View

type InstallIntermediateData ยถ

type InstallIntermediateData struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string  `json:"install_id,omitzero" gorm:"not null;default null" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `swaggerignore:"true" json:"-" temporaljson:"install,omitzero,omitempty"`

	RunnerJob   RunnerJob `json:"-" temporaljson:"runner_job,omitzero,omitempty"`
	RunnerJobID string    `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`

	IntermediateDataJSON string `json:"-" gorm:"default null;not null" temporaljson:"intermediate_data_json,omitzero,omitempty"`

	IntermediateData map[string]interface{} `json:"intermediate_data,omitzero" gorm:"-" temporaljson:"intermediate_data,omitzero,omitempty"`
}

func (*InstallIntermediateData) AfterQuery ยถ

func (i *InstallIntermediateData) AfterQuery(tx *gorm.DB) error

func (*InstallIntermediateData) BeforeCreate ยถ

func (i *InstallIntermediateData) BeforeCreate(tx *gorm.DB) error

func (*InstallIntermediateData) Indexes ยถ

func (i *InstallIntermediateData) Indexes(db *gorm.DB) []migrations.Index

type InstallSandbox ยถ

type InstallSandbox struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string `json:"install_id,omitzero" gorm:"notnull" temporaljson:"install_id,omitzero,omitempty"`

	Status            InstallSandboxStatus `json:"status,omitzero" gorm:"not null;default null" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string               `json:"status_description,omitzero" gorm:"not null;default null" temporaljson:"status_description,omitzero,omitempty"`
	StatusV2          CompositeStatus      `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`

	TerraformWorkspace TerraformWorkspace `` /* 143-byte string literal not displayed */

	InstallSandboxRuns []InstallSandboxRun `` /* 137-byte string literal not displayed */
}

func (*InstallSandbox) AfterQuery ยถ

func (c *InstallSandbox) AfterQuery(tx *gorm.DB) error

func (*InstallSandbox) BeforeCreate ยถ

func (c *InstallSandbox) BeforeCreate(tx *gorm.DB) error

func (*InstallSandbox) Indexes ยถ

func (c *InstallSandbox) Indexes(db *gorm.DB) []migrations.Index

type InstallSandboxRun ยถ

type InstallSandboxRun struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by,omitzero" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// runner details
	RunnerJobs         []RunnerJob                `json:"runner_jobs,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_job,omitzero,omitempty"`
	LogStream          LogStream                  `json:"log_stream,omitzero" gorm:"polymorphic:Owner;" temporaljson:"log_stream,omitzero,omitempty"`
	ActionWorkflowRuns []InstallActionWorkflowRun `json:"action_workflow_runs,omitzero" gorm:"polymorphic:TriggeredBy;" temporaljson:"action_workflow_runs,omitzero,omitempty"`

	// used for RLS
	OrgID     string  `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org       Org     `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`
	InstallID string  `json:"install_id,omitzero" gorm:"not null;default null" temporaljson:"install_id,omitzero,omitempty"`
	Install   Install `swaggerignore:"true" json:"-" temporaljson:"install,omitzero,omitempty"`

	// TODO: once we run a backfill we can make this non pointer
	InstallSandboxID *string         `json:"install_sandbox_id,omitzero" gorm:"default null" temporaljson:"install_sandbox_id,omitzero,omitempty"`
	InstallSandbox   *InstallSandbox `swaggerignore:"true" json:"-" temporaljson:"install_sandbox,omitzero,omitempty"`

	InstallWorkflowID *string   `json:"install_workflow_id,omitzero" gorm:"default null" temporaljson:"install_sandbox_id,omitzero,omitempty"`
	InstallWorkflow   *Workflow `swaggerignore:"true" json:"-" temporaljson:"install_workflow,omitzero,omitempty"`

	RunType           SandboxRunType   `json:"run_type,omitzero" temporaljson:"run_type,omitzero,omitempty"`
	Status            SandboxRunStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string           `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`
	StatusV2          CompositeStatus  `json:"status_v2,omitzero" gorm:"type:jsonb" temporaljson:"status_v2,omitzero,omitempty"`

	AppSandboxConfigID string           `json:"-" temporaljson:"app_sandbox_config_id,omitzero,omitempty"`
	AppSandboxConfig   AppSandboxConfig `json:"app_sandbox_config,omitzero" temporaljson:"app_sandbox_config,omitzero,omitempty"`

	Outputs map[string]any `json:"outputs,omitzero" gorm:"-" temporaljson:"outputs,omitzero,omitempty"`

	// Fields that are de-nested at read time using AfterQuery
	WorkflowID *string   `json:"workflow_id,omitzero" gorm:"-" temporaljson:"workflow_step_id,omitzero,omitempty"`
	Workflow   *Workflow `json:"workflow,omitzero" gorm:"-" temporaljson:"workflow_step,omitzero,omitempty"`
}

func (*InstallSandboxRun) AfterQuery ยถ

func (i *InstallSandboxRun) AfterQuery(tx *gorm.DB) error

func (*InstallSandboxRun) BeforeCreate ยถ

func (i *InstallSandboxRun) BeforeCreate(tx *gorm.DB) error

func (*InstallSandboxRun) Indexes ยถ

func (i *InstallSandboxRun) Indexes(db *gorm.DB) []migrations.Index

func (*InstallSandboxRun) Views ยถ

func (i *InstallSandboxRun) Views(db *gorm.DB) []migrations.View

type InstallSandboxStatus ยถ

type InstallSandboxStatus string
const (
	InstallSandboxStatusDeleted      InstallSandboxStatus = "deleted"
	InstallSandboxStatusDeleteFailed InstallSandboxStatus = "delete_failed"

	// Synced from sandbow runs
	InstallSandboxStatusActive         InstallSandboxStatus = "active"
	InstallSandboxStatusError          InstallSandboxStatus = "error"
	InstallSandboxStatusQueued         InstallSandboxStatus = "queued"
	InstallSandboxStatusDeprovisioned  InstallSandboxStatus = "deprovisioned"
	InstallSandboxStatusDeprovisioning InstallSandboxStatus = "deprovisioning"
	InstallSandboxStatusProvisioning   InstallSandboxStatus = "provisioning"
	InstallSandboxStatusReprovisioning InstallSandboxStatus = "reprovisioning"
	InstallSandboxStatusAccessError    InstallSandboxStatus = "access_error"
	InstallSandboxStatusUnknown        InstallSandboxStatus = "unknown"
	InstallSandboxStatusEmpty          InstallSandboxStatus = "empty"
)

func SandboxRunStatusToInstallSandboxStatus ยถ

func SandboxRunStatusToInstallSandboxStatus(status SandboxRunStatus) InstallSandboxStatus

type InstallStack ยถ

type InstallStack struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID string `json:"install_id,omitzero" gorm:"notnull;default null" temporaljson:"install_id,omitzero,omitempty"`

	InstallStackOutputs  InstallStackOutputs   `json:"install_stack_outputs,omitzero" temporaljson:"install_stack_outputs,omitzero,omitempty"`
	InstallStackVersions []InstallStackVersion `json:"versions,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_stack_versions,omitzero,omitempty"`
}

func (*InstallStack) BeforeCreate ยถ

func (a *InstallStack) BeforeCreate(tx *gorm.DB) error

func (*InstallStack) Indexes ยถ

func (a *InstallStack) Indexes(db *gorm.DB) []migrations.Index

type InstallStackOutputs ยถ

type InstallStackOutputs struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	InstallStackID           string              `json:"install_stack_id,omitzero" gorm:"notnull;default null" temporaljson:"install_stack_id,omitzero,omitempty"`
	InstallStackVersionRunID generics.NullString `json:"install_version_run_id,omitzero" swaggertype:"string" temporaljson:"install_stack_version_run_id,omitzero,omitempty"`

	Data         pgtype.Hstore  `json:"data,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"data,omitzero,omitempty"`
	DataContents map[string]any `json:"data_contents,omitzero" gorm:"-"`

	AWSStackOutputs   *AWSStackOutputs   `json:"aws,omitzero" gorm:"-" temporaljson:"aws_stack_outputs,omitzero,omitempty"`
	AzureStackOutputs *AzureStackOutputs `json:"azure,omitzero" gorm:"-" temporaljson:"azure_stack_outputs,omitzero,omitempty"`
}

func (*InstallStackOutputs) AfterQuery ยถ

func (a *InstallStackOutputs) AfterQuery(tx *gorm.DB) error

func (*InstallStackOutputs) BeforeCreate ยถ

func (a *InstallStackOutputs) BeforeCreate(tx *gorm.DB) error

func (*InstallStackOutputs) Indexes ยถ

func (a *InstallStackOutputs) Indexes(db *gorm.DB) []migrations.Index

type InstallStackVersion ยถ

type InstallStackVersion struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;default null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	InstallID      string `json:"install_id,omitzero" gorm:"notnull;default null" temporaljson:"install_id,omitzero,omitempty"`
	InstallStackID string `json:"install_stack_id,omitzero" temporaljson:"install_stack_id,omitzero,omitempty"`

	AppConfigID string `json:"app_config_id,omitzero" temporaljson:"app_config_id,omitzero,omitempty"`

	Status CompositeStatus `json:"composite_status,omitzero" gorm:"type:jsonb" temporaljson:"status,omitzero,omitempty"`

	Runs []InstallStackVersionRun `json:"runs,omitzero" temporaljson:"runs,omitzero,omitempty"`

	Contents     []byte `json:"contents,omitzero" gorm:"type:jsonb" swaggertype:"string" temporaljson:"contents,omitzero,omitempty"`
	Checksum     string `json:"checksum,omitzero" temporaljson:"checksum,omitzero,omitempty"`
	TemplateURL  string `json:"template_url,omitzero" temporaljson:"template_url,omitzero,omitempty"`
	PhoneHomeID  string `json:"phone_home_id,omitzero" temporaljson:"phone_home_id,omitzero,omitempty"`
	PhoneHomeURL string `json:"phone_home_url,omitzero" temporaljson:"phone_home_url,omitzero,omitempty"`

	// aws configuration parameters
	AWSBucketName string `json:"aws_bucket_name,omitzero" temporaljson:"aws_bucket_name,omitzero,omitempty"`
	AWSBucketKey  string `json:"aws_bucket_key,omitzero" temporaljson:"aws_bucket_key,omitzero,omitempty"`
	QuickLinkURL  string `json:"quick_link_url,omitzero" temporaljson:"quick_link_url,omitzero,omitempty"`
}

func (*InstallStackVersion) BeforeCreate ยถ

func (a *InstallStackVersion) BeforeCreate(tx *gorm.DB) error

func (*InstallStackVersion) Indexes ยถ

func (a *InstallStackVersion) Indexes(db *gorm.DB) []migrations.Index

type InstallStackVersionRun ยถ

type InstallStackVersionRun struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallStackVersionID string              `` /* 135-byte string literal not displayed */
	InstallStackVersion   InstallStackVersion `json:"-" temporaljson:"install_stack_version,omitzero,omitempty"`

	Data         pgtype.Hstore  `json:"data,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"data,omitzero,omitempty"`
	DataContents map[string]any `json:"data_contents,omitzero" gorm:"-"`
}

func (*InstallStackVersionRun) AfterQuery ยถ

func (a *InstallStackVersionRun) AfterQuery(tx *gorm.DB) error

func (*InstallStackVersionRun) BeforeCreate ยถ

func (i *InstallStackVersionRun) BeforeCreate(tx *gorm.DB) error

func (*InstallStackVersionRun) Indexes ยถ

func (i *InstallStackVersionRun) Indexes(db *gorm.DB) []migrations.Index

func (*InstallStackVersionRun) Views ยถ

func (i *InstallStackVersionRun) Views(db *gorm.DB) []migrations.View

type InstallState ยถ

type InstallState struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Install   Install `json:"-" faker:"-" temporaljson:"install,omitzero,omitempty"`
	InstallID string  `json:"install_id,omitzero" gorm:"notnull" temporaljson:"install_id,omitzero,omitempty"`

	State   *state.State `json:"contents,omitzero" gorm:"type:jsonb" swaggertype:"string" temporaljson:"-"`
	Version int          `json:"version,omitzero" gorm:"->;-:migration" temporaljson:"version,omitzero,omitempty"`

	TriggeredByID   string `json:"triggered_by_id,omitzero" gorm:"type:text;check:triggered_by_id_checker,char_length(id)=26"`
	TriggeredByType string `json:"triggered_by_type,omitzero" gorm:"type:text;"`

	Archived bool `json:"archived" gorm:"default:false;not null" temporaljson:"archived,omitzero,omitempty"`

	StaleAt generics.NullTime `json:"stale_at,omitzero" gorm:"type:timestamp;default:null" temporaljson:"stale_at,omitzero,omitempty"`
}

func (*InstallState) BeforeCreate ยถ

func (a *InstallState) BeforeCreate(tx *gorm.DB) error

func (*InstallState) Indexes ยถ

func (i *InstallState) Indexes(db *gorm.DB) []migrations.Index

func (*InstallState) UseView ยถ

func (i *InstallState) UseView() bool

func (*InstallState) ViewVersion ยถ

func (i *InstallState) ViewVersion() string

func (*InstallState) Views ยถ

func (i *InstallState) Views(db *gorm.DB) []migrations.View

type Installer ยถ

type Installer struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `faker:"-" json:"-" temporaljson:"org,omitzero,omitempty"`

	Apps []App `json:"apps,omitzero" gorm:"many2many:installer_apps;constraint:OnDelete:CASCADE;" temporaljson:"apps,omitzero,omitempty"`

	Type     InstallerType     `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	Metadata InstallerMetadata `json:"metadata,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"metadata,omitzero,omitempty"`
}

func (*Installer) AfterQuery ยถ

func (a *Installer) AfterQuery(tx *gorm.DB) error

func (*Installer) BeforeCreate ยถ

func (a *Installer) BeforeCreate(tx *gorm.DB) error

func (*Installer) Indexes ยถ

func (a *Installer) Indexes(db *gorm.DB) []migrations.Index

func (*Installer) JoinTables ยถ

func (*Installer) JoinTables() []migrations.JoinTable

type InstallerApp ยถ

type InstallerApp struct {
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	AppID string `json:"app_id,omitzero" gorm:"primary_key" temporaljson:"app_id,omitzero,omitempty"`
	App   App    `json:"app,omitzero" temporaljson:"app,omitzero,omitempty"`

	InstallerID string    `json:"installer_id,omitzero" gorm:"primary_key" temporaljson:"installer_id,omitzero,omitempty"`
	Installer   Installer `json:"installer,omitzero" temporaljson:"installer,omitzero,omitempty"`
}

func (*InstallerApp) BeforeSave ยถ

func (c *InstallerApp) BeforeSave(tx *gorm.DB) error

type InstallerMetadata ยถ

type InstallerMetadata struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index" temporaljson:"deleted_at,omitzero,omitempty"`

	InstallerID string `json:"installer_id,omitzero" gorm:"notnull" temporaljson:"installer_id,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Name        string `json:"name,omitzero" gorm:"notnull" temporaljson:"name,omitzero,omitempty"`
	Description string `json:"description,omitzero" gorm:"notnull" temporaljson:"description,omitzero,omitempty"`

	PostInstallMarkdown generics.NullString `json:"post_install_markdown,omitzero" swaggertype:"string" temporaljson:"post_install_markdown,omitzero,omitempty"`
	FooterMarkdown      generics.NullString `json:"footer_markdown,omitzero" swaggertype:"string" temporaljson:"footer_markdown,omitzero,omitempty"`
	CopyrightMarkdown   generics.NullString `json:"copyright_markdown,omitzero" swaggertype:"string" temporaljson:"copyright_markdown,omitzero,omitempty"`
	DemoURL             generics.NullString `json:"demo_url,omitzero" swaggertype:"string" temporaljson:"demo_url,omitzero,omitempty"`
	OgImageURL          generics.NullString `json:"og_image_url,omitzero" swaggertype:"string" temporaljson:"og_image_url,omitzero,omitempty"`

	DocumentationURL string `json:"documentation_url,omitzero" gorm:"notnull" temporaljson:"documentation_url,omitzero,omitempty"`
	LogoURL          string `json:"logo_url,omitzero" gorm:"notnull" temporaljson:"logo_url,omitzero,omitempty"`
	GithubURL        string `json:"github_url,omitzero" gorm:"notnull" temporaljson:"github_url,omitzero,omitempty"`
	CommunityURL     string `json:"community_url,omitzero" gorm:"notnull" temporaljson:"community_url,omitzero,omitempty"`
	HomepageURL      string `json:"homepage_url,omitzero" gorm:"notnull" temporaljson:"homepage_url,omitzero,omitempty"`
	FaviconURL       string `json:"favicon_url,omitzero" temporaljson:"favicon_url,omitzero,omitempty"`

	FormattedDemoURL string `json:"formatted_demo_url,omitzero" gorm:"-" temporaljson:"formatted_demo_url,omitzero,omitempty"`
}

func (*InstallerMetadata) AfterQuery ยถ

func (a *InstallerMetadata) AfterQuery(tx *gorm.DB) error

func (*InstallerMetadata) BeforeCreate ยถ

func (a *InstallerMetadata) BeforeCreate(tx *gorm.DB) error

func (*InstallerMetadata) Indexes ยถ

func (a *InstallerMetadata) Indexes(db *gorm.DB) []migrations.Index

type InstallerType ยถ

type InstallerType string
const (
	InstallerTypeSelfHosted InstallerType = "self_hosted"
)

type JSONMap ยถ

type JSONMap map[string]string

func (*JSONMap) Scan ยถ

func (j *JSONMap) Scan(value any) error

func (JSONMap) Value ยถ

func (j JSONMap) Value() (driver.Value, error)

type JobComponentConfig ยถ

type JobComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// value
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	// Image attributes, copied from a docker_buid or external_image component.
	ImageURL string         `json:"image_url,omitzero" gorm:"notnull" temporaljson:"image_url,omitzero,omitempty"`
	Tag      string         `json:"tag,omitzero" gorm:"notnull" temporaljson:"tag,omitzero,omitempty"`
	Cmd      pq.StringArray `json:"cmd,omitzero" gorm:"type:text[]" temporaljson:"cmd,omitzero,omitempty"`
	EnvVars  pgtype.Hstore  `json:"env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"env_vars,omitzero,omitempty"`
	Args     pq.StringArray `json:"args,omitzero" gorm:"type:text[]" swaggertype:"array,string" temporaljson:"args,omitzero,omitempty"`
}

func (*JobComponentConfig) BeforeCreate ยถ

func (e *JobComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*JobComponentConfig) Indexes ยถ

func (j *JobComponentConfig) Indexes(db *gorm.DB) []migrations.Index

type KubernetesManifestComponentConfig ยถ

type KubernetesManifestComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// value
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	// Primary fields - used for inline manifests (fully supported)
	Manifest  string `json:"manifest,omitzero" gorm:"not null;default:''" temporaljson:"manifest,omitzero,omitempty"`
	Namespace string `json:"namespace,omitzero" gorm:"not null;default:default" temporaljson:"namespace,omitzero,omitempty"`

	// Kustomize configuration (mutually exclusive with Manifest)
	Kustomize *KustomizeConfig `json:"kustomize,omitzero" gorm:"type:jsonb" temporaljson:"kustomize,omitzero,omitempty"`

	// VCS configuration for kustomize sources (similar to HelmComponentConfig)
	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 167-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 179-byte string literal not displayed */
}

func (*KubernetesManifestComponentConfig) BeforeCreate ยถ

func (e *KubernetesManifestComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*KubernetesManifestComponentConfig) Indexes ยถ

func (*KubernetesManifestComponentConfig) SourceType ยถ

func (k *KubernetesManifestComponentConfig) SourceType() string

SourceType returns the source type based on which fields are populated

type KustomizeConfig ยถ

type KustomizeConfig struct {
	// Path to kustomization directory (relative to source root)
	Path string `json:"path"`

	// Additional patch files to apply after kustomize build
	Patches []string `json:"patches,omitempty"`

	// Enable Helm chart inflation during kustomize build
	EnableHelm bool `json:"enable_helm,omitempty"`

	// Load restrictor: "none" or "rootOnly" (default: "rootOnly")
	LoadRestrictor string `json:"load_restrictor,omitempty"`
}

KustomizeConfig defines kustomize build options

func (KustomizeConfig) GormDataType ยถ

func (KustomizeConfig) GormDataType() string

GormDataType returns the GORM data type for this field

func (*KustomizeConfig) Scan ยถ

func (c *KustomizeConfig) Scan(v interface{}) (err error)

Scan implements the database/sql.Scanner interface

func (*KustomizeConfig) Value ยถ

func (c *KustomizeConfig) Value() (driver.Value, error)

Value implements the driver.Valuer interface

type LatestRunnerHeartBeat ยถ

type LatestRunnerHeartBeat struct {
	RunnerID  string        `json:"runner_id,omitzero"  gorm:"->" temporaljson:"runner_id,omitzero,omitempty"`
	Process   RunnerProcess `json:"process"             gorm:"->" swaggertype:"string"`
	Version   string        `json:"version,omitzero"    gorm:"->" temporaljson:"version,omitzero,omitempty"`
	StartedAt time.Time     `json:"started_at,omitzero" gorm:"-"  temporaljson:"started_at,omitzero,omitempty"`
	AliveTime time.Duration `json:"alive_time,omitzero" gorm:"->" swaggertype:"primitive,integer" temporaljson:"alive_time,omitzero,omitempty"`
	CreatedAt time.Time     `json:"created_at,omitzero" gorm:"->;column:created_at_latest" temporaljson:"CreatedAt,omitzero,omitempty"`
}

Struct for a read-only materialized view. the view is created directly in sql. NOTE(fd): i am not registering this model so GORM never thinks about it when migrating.

func (*LatestRunnerHeartBeat) AfterQuery ยถ

func (r *LatestRunnerHeartBeat) AfterQuery(tx *gorm.DB) error

func (*LatestRunnerHeartBeat) TableName ยถ

func (*LatestRunnerHeartBeat) TableName() string

type LogStream ยถ

type LogStream struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	OwnerID   string `` /* 126-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	Open bool `json:"open,omitzero" temporaljson:"open,omitzero,omitempty"`

	Attrs pgtype.Hstore `json:"attrs,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"attrs,omitzero,omitempty"`

	ParentLogStreamID generics.NullString `json:"-" swaggerignore:"true" temporaljson:"parent_log_stream_id,omitzero,omitempty"`
	ParentLogStream   *LogStream          `json:"-" faker:"-" temporaljson:"parent_log_stream,omitzero,omitempty"`

	RunnerJobs []RunnerJob `json:"-" temporaljson:"runner_jobs,omitzero,omitempty"`

	WriteToken   string `json:"write_token,omitzero" gorm:"-" temporaljson:"write_token,omitzero,omitempty"`
	RunnerAPIURL string `json:"runner_api_url,omitzero" gorm:"-" temporaljson:"runner_apiurl,omitzero,omitempty"`
}

func (*LogStream) BeforeCreate ยถ

func (r *LogStream) BeforeCreate(tx *gorm.DB) error

func (*LogStream) Indexes ยถ

func (a *LogStream) Indexes(db *gorm.DB) []migrations.Index

type NotificationsConfig ยถ

type NotificationsConfig struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull;defaultnull" temporaljson:"org_id,omitzero,omitempty"`

	OwnerID   string `json:"owner_id,omitzero" gorm:"notnull;defaultnull;" temporaljson:"owner_id,omitzero,omitempty"`
	OwnerType string `json:"owner_type,omitzero" gorm:"notnull;defaultnull;" temporaljson:"owner_type,omitzero,omitempty"`

	// slack settings
	EnableSlackNotifications bool   `json:"-" temporaljson:"enable_slack_notifications,omitzero,omitempty"`
	SlackWebhookURL          string `json:"slack_webhook_url,omitzero" temporaljson:"slack_webhook_url,omitzero,omitempty"`
	InternalSlackWebhookURL  string `json:"-" temporaljson:"internal_slack_webhook_url,omitzero,omitempty"`

	// email settings
	EnableEmailNotifications bool `json:"-" temporaljson:"enable_email_notifications,omitzero,omitempty"`

	// generated via after query
	SlackWebhookURLs []string `gorm:"-" json:"-" temporaljson:"slack_webhook_ur_ls,omitzero,omitempty"`
}

func (*NotificationsConfig) AfterQuery ยถ

func (a *NotificationsConfig) AfterQuery(tx *gorm.DB) error

func (*NotificationsConfig) BeforeCreate ยถ

func (a *NotificationsConfig) BeforeCreate(tx *gorm.DB) error

func (*NotificationsConfig) Indexes ยถ

func (a *NotificationsConfig) Indexes(db *gorm.DB) []migrations.Index

type OCIArtifact ยถ

type OCIArtifact struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	OwnerID   string `` /* 148-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;uniqueIndex:idx_owner" temporaljson:"owner_type,omitzero,omitempty"`

	Tag          string         `json:"tag,omitzero" temporaljson:"tag,omitzero,omitempty"`
	Repository   string         `json:"repository,omitzero" temporaljson:"repository,omitzero,omitempty"`
	MediaType    string         `json:"media_type,omitzero" temporaljson:"media_type,omitzero,omitempty"`
	Digest       string         `json:"digest,omitzero" temporaljson:"digest,omitzero,omitempty"`
	Size         int64          `json:"size,omitzero" gorm:"type:bigint" temporaljson:"size,omitzero,omitempty"`
	URLs         pq.StringArray `gorm:"type:text[]" json:"urls,omitzero" swaggertype:"array,string" temporaljson:"urls,omitzero,omitempty"`
	Annotations  pgtype.Hstore  `json:"annotations,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`
	ArtifactType string         `json:"artifact_type,omitzero" gorm:"type:text" temporaljson:"artifact_type,omitzero,omitempty"`

	// Platform fields
	OS           string         `json:"os,omitzero" gorm:"type:text" temporaljson:"os,omitzero,omitempty"`
	Architecture string         `json:"architecture,omitzero" gorm:"type:text" temporaljson:"architecture,omitzero,omitempty"`
	Variant      string         `json:"variant,omitzero" gorm:"type:text" temporaljson:"variant,omitzero,omitempty"`
	OSVersion    string         `json:"os_version,omitzero" gorm:"type:text" temporaljson:"os_version,omitzero,omitempty"`
	OSFeatures   pq.StringArray `gorm:"type:text[]" json:"os_features,omitzero" swaggertype:"array,string" temporaljson:"os_features,omitzero,omitempty"`
}

func (*OCIArtifact) BeforeCreate ยถ

func (r *OCIArtifact) BeforeCreate(tx *gorm.DB) (err error)

func (*OCIArtifact) Indexes ยถ

func (r *OCIArtifact) Indexes(db *gorm.DB) []migrations.Index

type OperationStatus ยถ

type OperationStatus string
const (
	OperationStatusStarted  OperationStatus = "started"
	OperationStatusFinished OperationStatus = "finished"
	OperationStatusNoop     OperationStatus = "noop"
	OperationStatusFailed   OperationStatus = "failed"
)

type Org ยถ

type Org struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `gorm:"index:idx_org_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	Name              string    `gorm:"index:idx_org_name,unique;notnull" json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`
	Status            OrgStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string    `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`

	SandboxMode bool `json:"sandbox_mode,omitzero" gorm:"notnull" temporaljson:"sandbox_mode,omitzero,omitempty"`

	OrgType   OrgType `json:"-" temporaljson:"org_type,omitzero,omitempty"`
	DebugMode bool    `json:"-" temporaljson:"debug_mode,omitzero,omitempty"`

	NotificationsConfig   NotificationsConfig `` /* 155-byte string literal not displayed */
	NotificationsConfigID string              `json:"-" temporaljson:"notifications_config_id,omitzero,omitempty"`

	RunnerGroup RunnerGroup `` /* 129-byte string literal not displayed */

	LogoURL string `json:"logo_url,omitzero" temporaljson:"logo_url,omitzero,omitempty"`

	Priority int `json:"-" temporaljson:"priority,omitzero,omitempty"`

	Apps           []App               `` /* 136-byte string literal not displayed */
	VCSConnections []VCSConnection     `` /* 127-byte string literal not displayed */
	Invites        []OrgInvite         `faker:"-" swaggerignore:"true" json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"invites,omitzero,omitempty"`
	Features       types.StringBoolMap `json:"features,omitzero" gorm:"type:jsonb;default null" temporaljson:"features,omitzero,omitempty"`

	Runners                   []Runner                   `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"runners,omitzero,omitempty"`
	PublicGitVCSConfigs       []PublicGitVCSConfig       `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"public_git_vcs_configs,omitzero,omitempty"`
	ConnectedGithubVCSConfigs []ConnectedGithubVCSConfig `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"connected_github_vcs_configs,omitzero,omitempty"`
	VCSConnectionCommits      []VCSConnectionCommit      `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"vcs_connection_commits,omitzero,omitempty"`
	AWSECRImageConfigs        []AWSECRImageConfig        `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"awsecr_image_configs,omitzero,omitempty"`
	Installs                  []Install                  `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"installs,omitzero,omitempty"`
	Components                []Component                `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"components,omitzero,omitempty"`

	Installers        []Installer         `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"installers,omitzero,omitempty"`
	InstallerMetadata []InstallerMetadata `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"installer_metadata,omitzero,omitempty"`

	Roles        []Role        `` /* 138-byte string literal not displayed */
	Policies     []Policy      `` /* 144-byte string literal not displayed */
	AccountRoles []AccountRole `` /* 154-byte string literal not displayed */

	Links map[string]any `json:"links,omitempty" temporaljson:"-" gorm:"-"`
}

func (*Org) AfterQuery ยถ

func (o *Org) AfterQuery(tx *gorm.DB) error

func (*Org) BeforeCreate ยถ

func (o *Org) BeforeCreate(tx *gorm.DB) error

func (*Org) EventLoops ยถ

func (o *Org) EventLoops() []bulk.EventLoop

type OrgFeature ยถ

type OrgFeature string

org feature flags

const (
	OrgFeatureAPIPagination           OrgFeature = "api-pagination"
	OrgFeatureOrgDashboard            OrgFeature = "org-dashboard"
	OrgFeatureOrgRunner               OrgFeature = "org-runner"
	OrgFeatureOrgSettings             OrgFeature = "org-settings"
	OrgFeatureOrgSupport              OrgFeature = "org-support"
	OrgFeatureInstallBreakGlass       OrgFeature = "install-break-glass"
	OrgFeatureInstallDeleteComponents OrgFeature = "install-delete-components"
	OrgFeatureInstallDelete           OrgFeature = "install-delete"
	OrgFeatureTerraformWorkspace      OrgFeature = "terraform-workspace"
	OrgFeatureDevCommand              OrgFeature = "dev-command"
	OrgFeatureAppBranches             OrgFeature = "app-branches"
	OrgFeatureStratusLayout           OrgFeature = "stratus-layout"
	OrgFeatureStratusWorkflow         OrgFeature = "stratus-workflow"
	OrgFeatureTerraformInstaller      OrgFeature = "terraform-installer"
	OrgFeatureDashboardSSE            OrgFeature = "dashboard-sse"
	OrgFeatureUserManagedFeatures     OrgFeature = "user-managed-features"
)

func GetFeatures ยถ

func GetFeatures() []OrgFeature

active feature flags for an orgs

func GetUserManageableFeatures ยถ

func GetUserManageableFeatures() []OrgFeature

GetUserManageableFeatures returns features that users are allowed to toggle (excludes the user-managed-features flag itself, which is admin-only)

type OrgFeatureInfo ยถ

type OrgFeatureInfo struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

OrgFeatureInfo contains metadata about a feature flag

func GetFeaturesWithDescriptions ยถ

func GetFeaturesWithDescriptions() []OrgFeatureInfo

GetFeaturesWithDescriptions returns all features with their descriptions

type OrgInvite ยถ

type OrgInvite struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" gorm:"index:idx_invite_org_email,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	// parent relationship
	OrgID string `json:"org_id,omitzero" gorm:"notnull;index:idx_invite_org_email,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `gorm:"constraint:OnDelete:CASCADE;" json:"-" temporaljson:"org,omitzero,omitempty"`

	Email    string          `gorm:"notnull;default null;index:idx_invite_org_email,unique" json:"email,omitzero" temporaljson:"email,omitzero,omitempty"`
	Status   OrgInviteStatus `json:"status,omitzero" gorm:"notnull;default null" temporaljson:"status,omitzero,omitempty"`
	RoleType RoleType        `json:"role_type,omitzero" temporaljson:"role_type,omitzero,omitempty"`
}

func (*OrgInvite) BeforeCreate ยถ

func (o *OrgInvite) BeforeCreate(tx *gorm.DB) error

func (*OrgInvite) Indexes ยถ

func (o *OrgInvite) Indexes(db *gorm.DB) []migrations.Index

type OrgInviteStatus ยถ

type OrgInviteStatus string
const (
	OrgInviteStatusPending  OrgInviteStatus = "pending"
	OrgInviteStatusAccepted OrgInviteStatus = "accepted"
)

type OrgStatus ยถ

type OrgStatus string
const (
	OrgStatusError          OrgStatus = "error"
	OrgStatusActive         OrgStatus = "active"
	OrgStatusProvisioning   OrgStatus = "provisioning"
	OrgStatusDeleting       OrgStatus = "deleting"
	OrgStatusDeprovisioning OrgStatus = "deprovisioning"
)

type OrgType ยถ

type OrgType string
const (
	OrgTypeSandbox     OrgType = "sandbox"
	OrgTypeIntegration OrgType = "integration"
	OrgTypeDefault     OrgType = "default"

	// Legacy
	OrgTypeLegacy OrgType = "real"

	OrgTypeUnknown OrgType = ""
)

type OtelLogRecord ยถ

type OtelLogRecord struct {
	ID          string `json:"id,omitzero" gorm:"primary_key" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	LogStreamID            string `json:"log_stream_id,omitzero" temporaljson:"log_stream_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	Timestamp          time.Time         `json:"timestamp,omitzero" gorm:"type:DateTime64(9);codec:Delta(8),ZSTD(1)" temporaljson:"timestamp,omitzero,omitempty"`
	TimestampDate      time.Time         `json:"timestamp_date,omitzero" gorm:"type:Date;default:toDate(timestamp)" temporaljson:"timestamp_date,omitzero,omitempty"`
	TimestampTime      time.Time         `` /* 130-byte string literal not displayed */
	TraceID            string            `` /* 147-byte string literal not displayed */
	SpanID             string            `json:"span_id,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"span_id,omitzero,omitempty"`
	TraceFlags         int               `json:"trace_flags,omitzero" gorm:"type:UInt8" temporaljson:"trace_flags,omitzero,omitempty"`
	SeverityText       string            `` /* 126-byte string literal not displayed */
	SeverityNumber     int               `json:"severity_number,omitzero" gorm:"type:UInt8" temporaljson:"severity_number,omitzero,omitempty"`
	ServiceName        string            `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`
	Body               string            `` /* 140-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */
	ScopeSchemaURL     string            `` /* 132-byte string literal not displayed */
	ScopeName          string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion       string            `` /* 126-byte string literal not displayed */
	ScopeAttributes    map[string]string `` /* 352-byte string literal not displayed */
	LogAttributes      map[string]string `` /* 345-byte string literal not displayed */
}

Logs are designed to be written via an OTLP exporter.

https://opentelemetry.io/docs/specs/otel/logs/bridge-api/

The clickhouse exporter, is a good reference point for this https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/exporter_logs.go

func (*OtelLogRecord) BeforeCreate ยถ

func (r *OtelLogRecord) BeforeCreate(tx *gorm.DB) error

func (OtelLogRecord) GetTableClusterOptions ยถ

func (r OtelLogRecord) GetTableClusterOptions() string

func (OtelLogRecord) GetTableOptions ยถ

func (r OtelLogRecord) GetTableOptions() string

type OtelMetricExponentialHistogram ยถ

type OtelMetricExponentialHistogram struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 126-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `` /* 132-byte string literal not displayed */
	ScopeSchemaURL        string            `` /* 132-byte string literal not displayed */

	ServiceName string `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 328-byte string literal not displayed */

	StartTimeUnix time.Time `` /* 129-byte string literal not displayed */
	TimeUnix      time.Time `json:"time_unix,omitzero" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count                uint64   `json:"count,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum                  float64  `json:"sum,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	Scale                float64  `json:"scale,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"scale,omitzero,omitempty"`
	ZeroCount            uint64   `json:"zero_count,omitzero" gorm:"type:UInt64;codec:ZSTD(1)" temporaljson:"zero_count,omitzero,omitempty"`
	PositiveOffset       int32    `json:"positive_offset,omitzero" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"positive_offset,omitzero,omitempty"`
	PositiveBucketCounts []uint64 `` /* 136-byte string literal not displayed */
	NegativeOffset       int32    `json:"negative_offset,omitzero" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"negative_offset,omitzero,omitempty"`
	NegativeBucketCounts []uint64 `` /* 136-byte string literal not displayed */

	Flags uint32  `json:"flags,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`
	Min   float64 `json:"min,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"min,omitzero,omitempty"`
	Max   float64 `json:"max,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"max,omitzero,omitempty"`

	AggregationTemporality int32 `` /* 130-byte string literal not displayed */

	Exemplars []OtelMetricExponentialHistogramExemplar `` /* 217-byte string literal not displayed */
}

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/exporter_traces.go#L164

func (*OtelMetricExponentialHistogram) BeforeCreate ยถ

func (m *OtelMetricExponentialHistogram) BeforeCreate(tx *gorm.DB) error

func (OtelMetricExponentialHistogram) GetTableOptions ยถ

func (m OtelMetricExponentialHistogram) GetTableOptions() (string, bool)

func (OtelMetricExponentialHistogram) TableName ยถ

func (m OtelMetricExponentialHistogram) TableName() string

type OtelMetricExponentialHistogramExemplar ยถ

type OtelMetricExponentialHistogramExemplar struct {
	FilteredAttributes map[string]string `json:"filtered_attributes,omitzero" temporaljson:"filtered_attributes,omitzero,omitempty"`
	TimesUnix          string            `json:"times_unix,omitzero" temporaljson:"times_unix,omitzero,omitempty"`
	Value              string            `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	SpanID             string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	TraceID            string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
}

type OtelMetricExponentialHistogramIngestion ยถ

type OtelMetricExponentialHistogramIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 129-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `json:"scope_dropped_attr_count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_schema_url,omitzero,omitempty"`

	ServiceName string `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 319-byte string literal not displayed */

	StartTimeUnix time.Time `json:"start_time_unix" gorm:"type:DateTime64(9); codec:Delta, ZSTD(1)" temporaljson:"start_time_unix,omitzero,omitempty"`
	TimeUnix      time.Time `json:"time_unix" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count                uint64              `json:"count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum                  float64             `json:"sum" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	Scale                int32               `json:"scale" gorm:"type:Int32;codec:ZSTD(1)" temporaljson:"scale,omitzero,omitempty"`
	ZeroCount            uint64              `json:"zero_count" gorm:"type:UInt64;codec:ZSTD(1)" temporaljson:"zero_count,omitzero,omitempty"`
	PositiveOffset       int32               `json:"positive_offset" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"positive_offset,omitzero,omitempty"`
	PositiveBucketCounts clickhouse.ArraySet `` /* 127-byte string literal not displayed */
	NegativeOffset       int32               `json:"negative_offset" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"negative_offset,omitzero,omitempty"`
	NegativeBucketCounts clickhouse.ArraySet `` /* 127-byte string literal not displayed */

	Flags uint32  `json:"flags" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`
	Min   float64 `json:"min" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"min,omitzero,omitempty"`
	Max   float64 `json:"maxx" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"max,omitzero,omitempty"`

	AggregationTemporality int32 `json:"aggregation_temporality" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"aggregation_temporality,omitzero,omitempty"`

	ExemplarsFilteredAttributes clickhouse.ArraySet `` /* 164-byte string literal not displayed */
	ExemplarsTimeUnix           clickhouse.ArraySet `json:"-" gorm:"type:Array(DateTime64(9));column:exemplars.time_unix" temporaljson:"exemplars_time_unix,omitzero,omitempty"`
	ExemplarsValue              clickhouse.ArraySet `json:"-" gorm:"type:Array(Float64);column:exemplars.value" temporaljson:"exemplars_value,omitzero,omitempty"`
	ExemplarsSpanID             clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.span_id" temporaljson:"exemplars_span_id,omitzero,omitempty"`
	ExemplarsTraceID            clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.trace_id" temporaljson:"exemplars_trace_id,omitzero,omitempty"`
}

DO NOT MIGRATE

func (*OtelMetricExponentialHistogramIngestion) BeforeCreate ยถ

func (OtelMetricExponentialHistogramIngestion) TableName ยถ

type OtelMetricGauge ยถ

type OtelMetricGauge struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL attributes
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 126-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount int               `` /* 132-byte string literal not displayed */
	ScopeSchemaURL        string            `` /* 132-byte string literal not displayed */

	ServiceName string `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 328-byte string literal not displayed */

	StartTimeUnix time.Time `` /* 129-byte string literal not displayed */
	TimeUnix      time.Time `json:"time_unix,omitzero" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`
	Value         float64   `json:"value,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"value,omitzero,omitempty"`
	Flags         uint32    `json:"flags,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	Exemplars []OtelMetricGaugeExemplar `` /* 217-byte string literal not displayed */
}

func (*OtelMetricGauge) BeforeCreate ยถ

func (m *OtelMetricGauge) BeforeCreate(tx *gorm.DB) error

func (OtelMetricGauge) GetTableClusterOptions ยถ

func (r OtelMetricGauge) GetTableClusterOptions() string

func (OtelMetricGauge) GetTableOptions ยถ

func (m OtelMetricGauge) GetTableOptions() string

func (OtelMetricGauge) TableName ยถ

func (m OtelMetricGauge) TableName() string

type OtelMetricGaugeExemplar ยถ

type OtelMetricGaugeExemplar struct {
	FilteredAttributes map[string]string `json:"filtered_attributes,omitzero" temporaljson:"filtered_attributes,omitzero,omitempty"`
	TimesUnix          string            `json:"times_unix,omitzero" temporaljson:"times_unix,omitzero,omitempty"`
	Value              string            `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	SpanID             string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	TraceID            string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
}

type OtelMetricGaugeIngestion ยถ

type OtelMetricGaugeIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceSchemaURL  string            `` /* 129-byte string literal not displayed */
	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount int               `json:"scope_dropped_attr_count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_schema_url,omitzero,omitempty"`

	ServiceName string `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 319-byte string literal not displayed */

	StartTimeUnix time.Time `json:"start_time_unix" gorm:"type:DateTime64(9); codec:Delta, ZSTD(1)" temporaljson:"start_time_unix,omitzero,omitempty"`
	TimeUnix      time.Time `json:"time_unix" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`
	Value         float64   `json:"value" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"value,omitzero,omitempty"`
	Flags         uint32    `json:"flags" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	// Exemplars []OtelMetricGaugeExemplar `json:"-" temporaljson:"-" gorm:"type:Nested(filtered_attributes Map(LowCardinality(String), String), time_unix DateTime64(9), value Float64, span_id String, trace_id String); codec:ZSTD(1);"`
	ExemplarsFilteredAttributes clickhouse.ArraySet `` /* 164-byte string literal not displayed */
	ExemplarsTimeUnix           clickhouse.ArraySet `json:"-" gorm:"type:Array(DateTime64(9));column:exemplars.time_unix" temporaljson:"exemplars_time_unix,omitzero,omitempty"`
	ExemplarsValue              clickhouse.ArraySet `json:"-" gorm:"type:Array(Float64);column:exemplars.value" temporaljson:"exemplars_value,omitzero,omitempty"`
	ExemplarsSpanID             clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.span_id" temporaljson:"exemplars_span_id,omitzero,omitempty"`
	ExemplarsTraceID            clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.trace_id" temporaljson:"exemplars_trace_id,omitzero,omitempty"`
}

DO NOT MIGRATE

func (*OtelMetricGaugeIngestion) BeforeCreate ยถ

func (m *OtelMetricGaugeIngestion) BeforeCreate(tx *gorm.DB) error

func (OtelMetricGaugeIngestion) TableName ยถ

func (m OtelMetricGaugeIngestion) TableName() string

type OtelMetricHistogram ยถ

type OtelMetricHistogram struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 126-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `` /* 132-byte string literal not displayed */
	ScopeSchemaURL        string            `` /* 132-byte string literal not displayed */

	ServiceName string `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 328-byte string literal not displayed */

	StartTimeUnix time.Time `` /* 129-byte string literal not displayed */
	TimeUnix      time.Time `json:"time_unix,omitzero" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count          uint64    `json:"count,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum            float64   `json:"sum,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	BucketsCount   []uint64  `json:"buckets_count,omitzero" gorm:"type:Array(UInt64);codec:ZSTD(1)" temporaljson:"buckets_count,omitzero,omitempty"`
	ExplicitBounds []float64 `json:"explicit_bounds,omitzero" gorm:"type:Array(Float64);codec:ZSTD(1)" temporaljson:"explicit_bounds,omitzero,omitempty"`

	Flags uint32  `json:"flags,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`
	Min   float64 `json:"min,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"min,omitzero,omitempty"`
	Max   float64 `json:"max,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"max,omitzero,omitempty"`

	AggregationTemporality int32 `` /* 130-byte string literal not displayed */

	Exemplars []OtelMetricHistogramExemplar `` /* 217-byte string literal not displayed */
}

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/exporter_traces.go#L164

func (*OtelMetricHistogram) BeforeCreate ยถ

func (m *OtelMetricHistogram) BeforeCreate(tx *gorm.DB) error

func (OtelMetricHistogram) GetTableClusterOptions ยถ

func (OtelMetricHistogram) GetTableClusterOptions() string

func (OtelMetricHistogram) GetTableOptions ยถ

func (OtelMetricHistogram) GetTableOptions() string

func (OtelMetricHistogram) TableName ยถ

func (m OtelMetricHistogram) TableName() string

type OtelMetricHistogramExemplar ยถ

type OtelMetricHistogramExemplar struct {
	FilteredAttributes map[string]string `json:"filtered_attributes,omitzero" temporaljson:"filtered_attributes,omitzero,omitempty"`
	TimesUnix          string            `json:"times_unix,omitzero" temporaljson:"times_unix,omitzero,omitempty"`
	Value              string            `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	SpanID             string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	TraceID            string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
}

type OtelMetricHistogramIngestion ยถ

type OtelMetricHistogramIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 129-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `json:"scope_dropped_attr_count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_schema_url,omitzero,omitempty"`

	ServiceName string `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 319-byte string literal not displayed */

	StartTimeUnix time.Time `json:"start_time_unix" gorm:"type:DateTime64(9); codec:Delta, ZSTD(1)" temporaljson:"start_time_unix,omitzero,omitempty"`
	TimeUnix      time.Time `json:"time_unix" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count          uint64              `json:"count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum            float64             `json:"sum" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	BucketsCount   clickhouse.ArraySet `json:"buckets_count" gorm:"type:Array(UInt64);codec:ZSTD(1)" temporaljson:"buckets_count,omitzero,omitempty"`
	ExplicitBounds clickhouse.ArraySet `json:"explicit_bounds" gorm:"type:Array(Float64);codec:ZSTD(1)" temporaljson:"explicit_bounds,omitzero,omitempty"`

	Flags uint32  `json:"flags" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`
	Min   float64 `json:"min" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"min,omitzero,omitempty"`
	Max   float64 `json:"maxx" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"max,omitzero,omitempty"`

	AggregationTemporality int32 `json:"aggregation_temporality" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"aggregation_temporality,omitzero,omitempty"`

	ExemplarsFilteredAttributes clickhouse.ArraySet `` /* 164-byte string literal not displayed */
	ExemplarsTimeUnix           clickhouse.ArraySet `json:"-" gorm:"type:Array(DateTime64(9));column:exemplars.time_unix" temporaljson:"exemplars_time_unix,omitzero,omitempty"`
	ExemplarsValue              clickhouse.ArraySet `json:"-" gorm:"type:Array(Float64);column:exemplars.value" temporaljson:"exemplars_value,omitzero,omitempty"`
	ExemplarsSpanID             clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.span_id" temporaljson:"exemplars_span_id,omitzero,omitempty"`
	ExemplarsTraceID            clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.trace_id" temporaljson:"exemplars_trace_id,omitzero,omitempty"`
}

DO NOT MIGRATE

func (*OtelMetricHistogramIngestion) BeforeCreate ยถ

func (m *OtelMetricHistogramIngestion) BeforeCreate(tx *gorm.DB) error

func (OtelMetricHistogramIngestion) TableName ยถ

func (m OtelMetricHistogramIngestion) TableName() string

type OtelMetricSum ยถ

type OtelMetricSum struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 126-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `` /* 132-byte string literal not displayed */
	ScopeSchemaURL        string            `` /* 132-byte string literal not displayed */

	ServiceName string `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 328-byte string literal not displayed */

	StartTimeUnix time.Time `` /* 129-byte string literal not displayed */
	TimeUnix      time.Time `json:"time_unix,omitzero" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`
	Value         float64   `json:"value,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"value,omitzero,omitempty"`
	Flags         uint32    `json:"flags,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	IsMonotonic bool `json:"is_monotonic,omitzero" gorm:"codec:Delta, ZSTD(1)" temporaljson:"is_monotonic,omitzero,omitempty"`

	AggregationTemporality int32 `` /* 130-byte string literal not displayed */

	Exemplars []OtelMetricSumExemplar `` /* 217-byte string literal not displayed */
}

func (*OtelMetricSum) BeforeCreate ยถ

func (m *OtelMetricSum) BeforeCreate(tx *gorm.DB) error

func (OtelMetricSum) GetTableClusterOptions ยถ

func (r OtelMetricSum) GetTableClusterOptions() string

func (OtelMetricSum) GetTableOptions ยถ

func (m OtelMetricSum) GetTableOptions() string

func (OtelMetricSum) TableName ยถ

func (m OtelMetricSum) TableName() string

type OtelMetricSumExemplar ยถ

type OtelMetricSumExemplar struct {
	FilteredAttributes map[string]string `json:"filtered_attributes,omitzero" temporaljson:"filtered_attributes,omitzero,omitempty"`
	TimesUnix          string            `json:"times_unix,omitzero" temporaljson:"times_unix,omitzero,omitempty"`
	Value              string            `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	SpanID             string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	TraceID            string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
}

type OtelMetricSumIngestion ยถ

type OtelMetricSumIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL attributes
	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 129-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount int               `json:"scope_dropped_attr_count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_schema_url,omitzero,omitempty"`

	ServiceName string `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 319-byte string literal not displayed */

	StartTimeUnix time.Time `json:"start_time_unix" gorm:"type:DateTime64(9); codec:Delta, ZSTD(1)" temporaljson:"start_time_unix,omitzero,omitempty"`
	TimeUnix      time.Time `json:"time_unix" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`
	Value         float64   `json:"value" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"value,omitzero,omitempty"`
	Flags         uint32    `json:"flags" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	IsMonotonic bool `json:"is_monotonic" gorm:"codec:Delta, ZSTD(1)" temporaljson:"is_monotonic,omitzero,omitempty"`

	AggregationTemporality int32 `json:"aggregation_temporality" gorm:"type:Int32; codec:ZSTD(1)" temporaljson:"aggregation_temporality,omitzero,omitempty"`

	// Exemplars []OtelMetricSumExemplar `json:"-" temporaljson:"-" gorm:"type:Nested(filtered_attributes Map(LowCardinality(String), String), time_unix DateTime64(9), value Float64, span_id String, trace_id String); codec:ZSTD(1);"`
	ExemplarsFilteredAttributes clickhouse.ArraySet `` /* 164-byte string literal not displayed */
	ExemplarsTimeUnix           clickhouse.ArraySet `json:"-" gorm:"type:Array(DateTime64(9));column:exemplars.time_unix" temporaljson:"exemplars_time_unix,omitzero,omitempty"`
	ExemplarsValue              clickhouse.ArraySet `json:"-" gorm:"type:Array(Float64);column:exemplars.value" temporaljson:"exemplars_value,omitzero,omitempty"`
	ExemplarsSpanID             clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.span_id" temporaljson:"exemplars_span_id,omitzero,omitempty"`
	ExemplarsTraceID            clickhouse.ArraySet `json:"-" gorm:"type:Array(String);column:exemplars.trace_id" temporaljson:"exemplars_trace_id,omitzero,omitempty"`
}

DO NOT MIGRATE: this is for ingestion only

func (*OtelMetricSumIngestion) BeforeCreate ยถ

func (m *OtelMetricSumIngestion) BeforeCreate(tx *gorm.DB) error

func (OtelMetricSumIngestion) TableName ยถ

func (m OtelMetricSumIngestion) TableName() string

type OtelMetricSummary ยถ

type OtelMetricSummary struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log message attributes
	ResourceSchemaURL  string            `` /* 138-byte string literal not displayed */
	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 126-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount uint32            `` /* 132-byte string literal not displayed */
	ScopeSchemaURL        string            `` /* 132-byte string literal not displayed */

	ServiceName string `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 328-byte string literal not displayed */

	StartTimeUnix time.Time `` /* 129-byte string literal not displayed */
	TimeUnix      time.Time `json:"time_unix,omitzero" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count uint64  `json:"count,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum   float64 `json:"sum,omitzero" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	Flags uint32  `json:"flags,omitzero" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	ValueAtQuantiles map[float64]float64 `` /* 152-byte string literal not displayed */
}

func (*OtelMetricSummary) BeforeCreate ยถ

func (m *OtelMetricSummary) BeforeCreate(tx *gorm.DB) error

func (OtelMetricSummary) GetTableOptions ยถ

func (m OtelMetricSummary) GetTableOptions() (string, bool)

func (OtelMetricSummary) MigrateDB ยถ

func (m OtelMetricSummary) MigrateDB(db *gorm.DB) *gorm.DB

func (OtelMetricSummary) TableName ยถ

func (m OtelMetricSummary) TableName() string

type OtelMetricSummaryExemplar ยถ

type OtelMetricSummaryExemplar struct {
	FilteredAttributes map[string]string `json:"filtered_attributes,omitzero" temporaljson:"filtered_attributes,omitzero,omitempty"`
	TimesUnix          string            `json:"times_unix,omitzero" temporaljson:"times_unix,omitzero,omitempty"`
	Value              string            `json:"value,omitzero" temporaljson:"value,omitzero,omitempty"`
	SpanID             string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	TraceID            string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
}

type OtelMetricSummaryIngestion ยถ

type OtelMetricSummaryIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	OrgID                  string `json:"org_id" temporaljson:"org_id,omitzero,omitempty"`
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL attributes
	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 129-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1)" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount int               `json:"scope_dropped_attr_count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"scope_schema_url,omitzero,omitempty"`

	ServiceName string `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1)" temporaljson:"service_name,omitzero,omitempty"`

	MetricName        string `json:"metric_name" gorm:"codec:ZSTD(1)" temporaljson:"metric_name,omitzero,omitempty"`
	MetricDescription string `json:"metric_description" gorm:"codec:ZSTD(1)" temporaljson:"metric_description,omitzero,omitempty"`
	MetricUnit        string `json:"metric_unit" gorm:"codec:ZSTD(1)" temporaljson:"metric_unit,omitzero,omitempty"`

	Attributes map[string]string `` /* 319-byte string literal not displayed */

	StartTimeUnix time.Time `json:"start_time_unix" gorm:"type:DateTime64(9); codec:Delta, ZSTD(1)" temporaljson:"start_time_unix,omitzero,omitempty"`
	TimeUnix      time.Time `json:"time_unix" gorm:"type:DateTime64(9);codec:ZSTD(1)" temporaljson:"time_unix,omitzero,omitempty"`

	Count uint64  `json:"count" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"count,omitzero,omitempty"`
	Sum   float64 `json:"sum" gorm:"type:Float64;codec:ZSTD(1)" temporaljson:"sum,omitzero,omitempty"`
	Flags uint32  `json:"flags" gorm:"type:UInt32;codec:ZSTD(1)" temporaljson:"flags,omitzero,omitempty"`

	ValueAtQuantilesQuantile clickhouse.ArraySet `` /* 141-byte string literal not displayed */
	ValueAtQuantilesValue    clickhouse.ArraySet `` /* 132-byte string literal not displayed */
}

DO NOT MIGRATE: this is for ingestion only

func (*OtelMetricSummaryIngestion) BeforeCreate ยถ

func (m *OtelMetricSummaryIngestion) BeforeCreate(tx *gorm.DB) error

func (OtelMetricSummaryIngestion) TableName ยถ

func (m OtelMetricSummaryIngestion) TableName() string

type OtelTrace ยถ

type OtelTrace struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `gorm:"notnull;" json:"created_by_id,omitzero" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `gorm:"notnull" json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `gorm:"notnull" json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	RunnerID               string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id,omitzero" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id,omitzero" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step,omitzero" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log trace attributes
	Timestamp     time.Time `json:"timestamp,omitzero" gorm:"type:DateTime64(9);codec:Delta(8),ZSTD(1);" temporaljson:"timestamp,omitzero,omitempty"`
	TimestampDate time.Time `json:"timestamp_date,omitzero" gorm:"type:Date;default:toDate(timestamp);" temporaljson:"timestamp_date,omitzero,omitempty"`
	TimestampTime time.Time `` /* 131-byte string literal not displayed */

	ResourceAttributes map[string]string `` /* 354-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 139-byte string literal not displayed */

	ScopeName             string            `json:"scope_name,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `` /* 127-byte string literal not displayed */
	ScopeAttributes       map[string]string `` /* 352-byte string literal not displayed */
	ScopeDroppedAttrCount int               `json:"scope_dropped_attr_count,omitzero" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `` /* 133-byte string literal not displayed */

	TraceID        string            `` /* 147-byte string literal not displayed */
	SpanID         string            `json:"span_id,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"span_id,omitzero,omitempty"`
	ParentSpanID   string            `json:"parent_span_id,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"parent_span_id,omitzero,omitempty"`
	TraceState     string            `json:"trace_state,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"trace_state,omitzero,omitempty"`
	SpanName       string            `json:"span_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"span_name,omitzero,omitempty"`
	SpanKind       string            `json:"span_kind,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"span_kind,omitzero,omitempty"`
	ServiceName    string            `json:"service_name,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"service_name,omitzero,omitempty"`
	SpanAttributes map[string]string `` /* 348-byte string literal not displayed */
	Duration       int64             `json:"duration,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"duration,omitzero,omitempty"`
	StatusCode     string            `json:"status_code,omitzero" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"status_code,omitzero,omitempty"`
	StatusMessage  string            `json:"status_message,omitzero" gorm:"codec:ZSTD(1);" temporaljson:"status_message,omitzero,omitempty"`

	// Nested Fields
	// NOTE(fd): these control the actual migration. careful when modifying. ALTER does not work the same way on nested clickhouse columns.
	Events []OtelTraceEvent `` /* 162-byte string literal not displayed */
	Links  []OtelTraceLink  `` /* 159-byte string literal not displayed */
}

func (*OtelTrace) BeforeCreate ยถ

func (r *OtelTrace) BeforeCreate(tx *gorm.DB) error

func (OtelTrace) GetTableClusterOptions ยถ

func (r OtelTrace) GetTableClusterOptions() string

func (OtelTrace) GetTableOptions ยถ

func (r OtelTrace) GetTableOptions() string

type OtelTraceEvent ยถ

type OtelTraceEvent struct {
	Timestamp  time.Time         `json:"timestamp,omitzero" temporaljson:"timestamp,omitzero,omitempty"`
	Name       string            `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`
	Attributes map[string]string `json:"attributes,omitzero" temporaljson:"attributes,omitzero,omitempty"`
}

type OtelTraceIngestion ยถ

type OtelTraceIngestion struct {
	ID          string `gorm:"primary_key" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `gorm:"notnull;" json:"created_by_id" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `gorm:"notnull" json:"created_at" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `gorm:"notnull" json:"updated_at" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// internal attributes
	RunnerID               string `json:"runner_id" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJobID            string `json:"runner_job_id" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerGroupID          string `json:"runner_group_id" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerJobExecutionID   string `json:"runner_job_execution_id" temporaljson:"runner_job_execution_id,omitzero,omitempty"`
	RunnerJobExecutionStep string `json:"runner_job_execution_step" temporaljson:"runner_job_execution_step,omitzero,omitempty"`

	// OTEL log trace attributes
	Timestamp     time.Time `json:"timestamp" gorm:"type:DateTime64(9);codec:Delta(8),ZSTD(1);" temporaljson:"timestamp,omitzero,omitempty"`
	TimestampDate time.Time `json:"timestamp_date" gorm:"type:Date;default:toDate(timestamp);" temporaljson:"timestamp_date,omitzero,omitempty"`
	TimestampTime time.Time `json:"timestamp_time" gorm:"type:DateTime;default:toDateTime(timestamp);" temporaljson:"timestamp_time,omitzero,omitempty"`

	ResourceAttributes map[string]string `` /* 345-byte string literal not displayed */
	ResourceSchemaURL  string            `` /* 130-byte string literal not displayed */

	ScopeName             string            `json:"scope_name" gorm:"codec:ZSTD(1);" temporaljson:"scope_name,omitzero,omitempty"`
	ScopeVersion          string            `json:"scope_version" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"scope_version,omitzero,omitempty"`
	ScopeAttributes       map[string]string `` /* 343-byte string literal not displayed */
	ScopeDroppedAttrCount int               `json:"scope_dropped_attr_count" temporaljson:"scope_dropped_attr_count,omitzero,omitempty"`
	ScopeSchemaURL        string            `json:"scope_schema_url" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"scope_schema_url,omitzero,omitempty"`

	TraceID        string            `` /* 138-byte string literal not displayed */
	SpanID         string            `json:"span_id" gorm:"codec:ZSTD(1);" temporaljson:"span_id,omitzero,omitempty"`
	ParentSpanID   string            `json:"parent_span_id" gorm:"codec:ZSTD(1);" temporaljson:"parent_span_id,omitzero,omitempty"`
	TraceState     string            `json:"trace_state" gorm:"codec:ZSTD(1);" temporaljson:"trace_state,omitzero,omitempty"`
	SpanName       string            `json:"span_name" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"span_name,omitzero,omitempty"`
	SpanKind       string            `json:"span_kind" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"span_kind,omitzero,omitempty"`
	ServiceName    string            `json:"service_name" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"service_name,omitzero,omitempty"`
	SpanAttributes map[string]string `` /* 339-byte string literal not displayed */
	Duration       int64             `json:"duration" gorm:"codec:ZSTD(1);" temporaljson:"duration,omitzero,omitempty"`
	StatusCode     string            `json:"status_code" gorm:"type:LowCardinality(String);codec:ZSTD(1);" temporaljson:"status_code,omitzero,omitempty"`
	StatusMessage  string            `json:"status_message" gorm:"codec:ZSTD(1);" temporaljson:"status_message,omitzero,omitempty"`

	// the items of interest here are these attrs/columns that define a `column` in the `gorm` struct tag so gorm knows what column to send these to
	EventsTimestamp  []time.Time         `json:"-" gorm:"type:DateTime64(9);column:events.timestamp" temporaljson:"events_timestamp,omitzero,omitempty"`
	EventsName       []string            `json:"-" gorm:"type:LowCardinality(String);column:events.name" temporaljson:"events_name,omitzero,omitempty"`
	EventsAttributes []map[string]string `` /* 133-byte string literal not displayed */
	LinksTraceID     []string            `json:"-" gorm:"type:LowCardinality(String);column:links.trace_id" temporaljson:"links_trace_id,omitzero,omitempty"`
	LinksSpanID      []string            `json:"-" gorm:"type:LowCardinality(String);column:links.span_id" temporaljson:"links_span_id,omitzero,omitempty"`
	LinksState       []string            `json:"-" gorm:"type:LowCardinality(String);column:links.span_state" temporaljson:"links_state,omitzero,omitempty"`
	LinksAttributes  []map[string]string `` /* 131-byte string literal not displayed */
}

NOTE(fd): DO NOT MIGRATE THIS it's just here so we can write to the table and read data w/ Nested columns as an Array of Structs

func (*OtelTraceIngestion) BeforeCreate ยถ

func (r *OtelTraceIngestion) BeforeCreate(tx *gorm.DB) error

func (OtelTraceIngestion) TableName ยถ

func (m OtelTraceIngestion) TableName() string

TableName

type OtelTraceLink struct {
	TraceID    string            `json:"trace_id,omitzero" temporaljson:"trace_id,omitzero,omitempty"`
	SpanID     string            `json:"span_id,omitzero" temporaljson:"span_id,omitzero,omitempty"`
	SpanState  string            `json:"span_state,omitzero" temporaljson:"span_state,omitzero,omitempty"`
	Attributes map[string]string `json:"attributes,omitzero" temporaljson:"attributes,omitzero,omitempty"`
}

type PSQLTableSize ยถ

type PSQLTableSize struct {
	TableName  string  `json:"table_name,omitzero"`
	SizePretty string  `json:"size_pretty,omitzero"`
	SizeBytes  float64 `json:"size_bytes,omitzero" gorm:"->;-:migration" temporaljson:"size_bytes,omitzero,omitempty"`
}

func (PSQLTableSize) GetTableOptions ยถ

func (m PSQLTableSize) GetTableOptions() (string, bool)

func (PSQLTableSize) MigrateDB ยถ

func (r PSQLTableSize) MigrateDB(db *gorm.DB) *gorm.DB

func (*PSQLTableSize) UseView ยถ

func (*PSQLTableSize) UseView() bool

func (*PSQLTableSize) ViewVersion ยถ

func (*PSQLTableSize) ViewVersion() string

func (*PSQLTableSize) Views ยถ

func (i *PSQLTableSize) Views(db *gorm.DB) []migrations.View

type Policy ยถ

type Policy struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"notnull" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	RoleID string `json:"role_id,omitzero" gorm:"notnull;default null" temporaljson:"role_id,omitzero,omitempty"`
	Role   Role   `swaggerignore:"true" json:"role,omitzero" temporaljson:"role,omitzero,omitempty"`

	OrgID generics.NullString `json:"org_id,omitzero" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   *Org                `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Name PolicyName `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`

	// Permissions are used to track granular permissions for each domain
	Permissions pgtype.Hstore `json:"permissions" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"permissions,omitzero,omitempty"`
}

func (*Policy) AfterQuery ยถ

func (a *Policy) AfterQuery(tx *gorm.DB) error

func (*Policy) BeforeCreate ยถ

func (a *Policy) BeforeCreate(tx *gorm.DB) error

func (*Policy) Indexes ยถ

func (a *Policy) Indexes(db *gorm.DB) []migrations.Index

type PolicyName ยถ

type PolicyName string
const (
	// we create a custom policy for each role
	PolicyNameOrgAdmin  PolicyName = "org_admin"
	PolicyNameInstaller PolicyName = "installer"
	PolicyNameRunner    PolicyName = "runner"

	// policy names for service accounts
	PolicyNameHostedInstaller PolicyName = "hosted_installer"
)

type ProviderType ยถ

type ProviderType string
const (
	ProviderTypeOIDC   ProviderType = "oidc"
	ProviderTypeGoogle ProviderType = "google"
	ProviderTypeGitHub ProviderType = "github"
)

type PublicGitVCSConfig ยถ

type PublicGitVCSConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	ComponentConfigID   string `json:"component_config_id,omitzero" gorm:"notnull" temporaljson:"component_config_id,omitzero,omitempty"`
	ComponentConfigType string `json:"component_config_type,omitzero" gorm:"notnull" temporaljson:"component_config_type,omitzero,omitempty"`

	// actual configuration
	Repo      string `json:"repo,omitzero" gorm:"notnull" temporaljson:"repo,omitzero,omitempty"`
	Directory string `json:"directory,omitzero" gorm:"notnull" temporaljson:"directory,omitzero,omitempty"`
	Branch    string `json:"branch,omitzero" gorm:"notnull" temporaljson:"branch,omitzero,omitempty"`
}

func (*PublicGitVCSConfig) BeforeCreate ยถ

func (c *PublicGitVCSConfig) BeforeCreate(tx *gorm.DB) error

func (*PublicGitVCSConfig) Indexes ยถ

func (c *PublicGitVCSConfig) Indexes(db *gorm.DB) []migrations.Index

type Queue ยถ

type Queue struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `` /* 187-byte string literal not displayed */
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	OwnerID   string `` /* 168-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	MaxDepth    int `json:"max_depth,omitzero"`
	MaxInFlight int `json:"max_in_flight,omitzero"`

	Workflow signaldb.WorkflowRef `json:"workflow"`

	Signals []QueueSignal `json:"queue_signal,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"signals,omitzero,omitempty"`
}

func (*Queue) BeforeCreate ยถ

func (r *Queue) BeforeCreate(tx *gorm.DB) error

func (*Queue) Indexes ยถ

func (r *Queue) Indexes(db *gorm.DB) []migrations.Index

type QueueSignal ยถ

type QueueSignal struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	QueueID string `` /* 126-byte string literal not displayed */
	Queue   Queue  `json:"queue"`

	OwnerID   string `` /* 126-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	Status CompositeStatus     `json:"status"`
	Type   signal.SignalType   `json:"type"`
	Signal signaldb.SignalData `json:"signal" temporaljson:"-"`

	Workflow signaldb.WorkflowRef `json:"workflow"`
}

func (*QueueSignal) BeforeCreate ยถ

func (r *QueueSignal) BeforeCreate(tx *gorm.DB) error

func (*QueueSignal) Indexes ยถ

func (r *QueueSignal) Indexes(db *gorm.DB) []migrations.Index

type ReleaseStatus ยถ

type ReleaseStatus string
const (
	ReleaseStatusPlanning       ReleaseStatus = "planning"
	ReleaseStatusError          ReleaseStatus = "error"
	ReleaseStatusActive         ReleaseStatus = "active"
	ReleaseStatusProvisioning   ReleaseStatus = "provisioning"
	ReleaseStatusDeprovisioning ReleaseStatus = "deprovisioning"

	ReleaseStatusSyncing   ReleaseStatus = "syncing"
	ReleaseStatusExecuting ReleaseStatus = "executing"
)
const (
	StatusProvisioning   ReleaseStatus = "provisioning"
	StatusDeprovisioning ReleaseStatus = "deprovisioning"
	StatusSyncing        ReleaseStatus = "syncing"
	StatusExecuting      ReleaseStatus = "executing"
)

release specific statuses

type Role ยถ

type Role struct {
	ID          string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"notnull;defaultnull" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `temporaljson:"created_by,omitzero,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	Accounts []Account `gorm:"many2many:account_roles;constraint:OnDelete:CASCADE;" json:"-" temporaljson:"accounts,omitzero,omitempty"`

	// NOTE: not all roles have to belong to an org, this is mainly for historical reasons.
	OrgID generics.NullString `json:"org_id,omitzero" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   *Org                `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	RoleType RoleType `json:"role_type,omitzero" gorm:"defaultnull;notnull" temporaljson:"role_type,omitzero,omitempty"`

	Policies []Policy `json:"policies,omitzero" temporaljson:"policies,omitzero,omitempty"`
}

func (*Role) AfterQuery ยถ

func (a *Role) AfterQuery(tx *gorm.DB) error

func (*Role) BeforeCreate ยถ

func (a *Role) BeforeCreate(tx *gorm.DB) error

func (*Role) Indexes ยถ

func (a *Role) Indexes(db *gorm.DB) []migrations.Index

type RoleType ยถ

type RoleType string
const (
	// user roles
	RoleTypeOrgAdmin RoleType = "org_admin"

	// service account roles
	RoleTypeInstaller       RoleType = "installer"
	RoleTypeRunner          RoleType = "runner"
	RoleTypeHostedInstaller RoleType = "hosted-installer"
)

type Runner ยถ

type Runner struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_runner_name,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	Status            RunnerStatus `json:"status,omitzero" gorm:"not null;default null" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string       `json:"status_description,omitzero" gorm:"not null;default null" temporaljson:"status_description,omitzero,omitempty"`

	RunnerGroupID string      `json:"runner_group_id,omitzero" gorm:"index:idx_runner_name,unique" temporaljson:"runner_group_id,omitzero,omitempty"`
	RunnerGroup   RunnerGroup `json:"runner_group,omitzero" temporaljson:"runner_group,omitzero,omitempty"`

	Name        string `json:"name,omitzero" gorm:"index:idx_runner_name,unique" temporaljson:"name,omitzero,omitempty"`
	DisplayName string `json:"display_name,omitzero" gorm:"not null;default null" temporaljson:"display_name,omitzero,omitempty"`

	Jobs       []RunnerJob       `json:"jobs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"jobs,omitzero,omitempty"`
	Operations []RunnerOperation `json:"operations,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"operations,omitzero,omitempty"`

	RunnerJob *RunnerJob `json:"runner_job,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_job,omitzero,omitempty"`
}

func (*Runner) BeforeCreate ยถ

func (r *Runner) BeforeCreate(tx *gorm.DB) error

func (*Runner) Indexes ยถ

func (r *Runner) Indexes(db *gorm.DB) []migrations.Index

type RunnerGroup ยถ

type RunnerGroup struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `gorm:"index:idx_runner_group_owner" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"default null;not null" temporaljson:"org_id,omitzero,omitempty"`

	// parent can org, install or in the future, builtin runner group
	OwnerID   string `json:"owner_id,omitzero" gorm:"index:idx_runner_group_owner;notnull;default null" temporaljson:"owner_id,omitzero,omitempty"`
	OwnerType string `json:"owner_type,omitzero" gorm:"notnull;default null" temporaljson:"owner_type,omitzero,omitempty"`

	Runners  []Runner            `json:"runners,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"runners,omitzero,omitempty"`
	Settings RunnerGroupSettings `json:"settings,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"settings,omitzero,omitempty"`
	Type     RunnerGroupType     `json:"type,omitzero" gorm:"notnull;defaultnull" temporaljson:"type,omitzero,omitempty"`
	Platform AppRunnerType       `json:"platform,omitzero" gorm:"notnull;defaultnull" temporaljson:"platform,omitzero,omitempty"`
}

func (*RunnerGroup) BeforeCreate ยถ

func (r *RunnerGroup) BeforeCreate(tx *gorm.DB) error

func (*RunnerGroup) EventLoops ยถ

func (r *RunnerGroup) EventLoops() []bulk.EventLoop

func (*RunnerGroup) Indexes ยถ

func (r *RunnerGroup) Indexes(db *gorm.DB) []migrations.Index

type RunnerGroupSettings ยถ

type RunnerGroupSettings struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_runner_group_settings,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"org_id,omitzero,omitempty"`

	RunnerGroupID string `` /* 127-byte string literal not displayed */

	// configuration for deploying the runner
	ContainerImageURL string `json:"container_image_url,omitzero" gorm:"default null;not null" temporaljson:"container_image_url,omitzero,omitempty"`
	ContainerImageTag string `json:"container_image_tag,omitzero" gorm:"default null;not null" temporaljson:"container_image_tag,omitzero,omitempty"`
	ExpectedVersion   string `json:"-" gorm:"-" temporaljson:"expected_version,omitzero,omitempty"`
	RunnerAPIURL      string `json:"runner_api_url,omitzero" gorm:"default null;not null" temporaljson:"runner_apiurl,omitzero,omitempty"`

	// configuration for managing the runner server side
	SandboxMode bool `json:"sandbox_mode,omitzero" temporaljson:"sandbox_mode,omitzero,omitempty"`

	// Various settings for the runner to handle internally
	HeartBeatTimeout           time.Duration `` /* 140-byte string literal not displayed */
	OTELCollectorConfiguration string        `` /* 129-byte string literal not displayed */

	EnableSentry  bool           `json:"enable_sentry,omitzero" temporaljson:"enable_sentry,omitzero,omitempty"`
	EnableMetrics bool           `json:"enable_metrics,omitzero" temporaljson:"enable_metrics,omitzero,omitempty"`
	EnableLogging bool           `json:"enable_logging,omitzero" temporaljson:"enable_logging,omitzero,omitempty"`
	LoggingLevel  string         `json:"logging_level,omitzero" temporaljson:"logging_level,omitzero,omitempty"`
	Groups        pq.StringArray `json:"groups,omitzero" gorm:"type:text[];default:'{}'" swaggertype:"array,string" temporaljson:"groups,omitzero,omitempty"` // the job loop groups the runner should poll for

	// Metadata is used as both log and metric tags/attributes in the runner when emitting data
	Metadata pgtype.Hstore `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`

	// org runner specifics
	OrgAWSIAMRoleARN         string `json:"org_aws_iam_role_arn,omitzero" temporaljson:"org_awsiam_role_arn,omitzero,omitempty"`
	OrgK8sServiceAccountName string `json:"org_k8s_service_account_name,omitzero" temporaljson:"org_k_8_s_service_account_name,omitzero,omitempty"`

	// aws runner specifics runner-v2
	AWSInstanceType        string `json:"aws_instance_type,omitzero" temporaljson:"aws_instance_type,omitzero,omitempty"`
	AWSMaxInstanceLifetime int    `` // Default: 7 days
	/* 219-byte string literal not displayed */
	AWSCloudformationStackType string        `json:"aws_cloudformation_stack_type,omitzero" temporaljson:"aws_cloudformation_stack_type,omitzero,omitempty"`
	AWSTags                    pgtype.Hstore `json:"aws_tags,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"aws_tags,omitzero,omitempty"`
	LocalAWSIAMRoleARN         string        `json:"local_aws_iam_role_arn,omitzero" temporaljson:"local_awsiam_role_arn,omitzero,omitempty"`

	// platform variable for use in the runner
	Platform CloudPlatform `json:"platform" temporaljson:"-" gorm:"-" swaggertype:"string"`
}

func (*RunnerGroupSettings) AfterQuery ยถ

func (r *RunnerGroupSettings) AfterQuery(tx *gorm.DB) error

func (*RunnerGroupSettings) BeforeCreate ยถ

func (r *RunnerGroupSettings) BeforeCreate(tx *gorm.DB) error

func (*RunnerGroupSettings) Indexes ยถ

func (i *RunnerGroupSettings) Indexes(db *gorm.DB) []migrations.Index

func (*RunnerGroupSettings) Views ยถ

func (i *RunnerGroupSettings) Views(db *gorm.DB) []migrations.View

type RunnerGroupType ยถ

type RunnerGroupType string
const (
	RunnerGroupTypeInstall RunnerGroupType = "install"
	RunnerGroupTypeOrg     RunnerGroupType = "org"
)

type RunnerHealthCheck ยถ

type RunnerHealthCheck struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"type:DateTime64(9);codec:Delta(8),ZSTD(1)" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"type:DateTime64(9);codec:Delta(8),ZSTD(1)" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	RunnerID     string       `json:"runner_id,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"runner_id,omitzero,omitempty"`
	RunnerJob    RunnerJob    `json:"runner_job,omitzero" gorm:"polymorphic:Owner;" temporaljson:"runner_job,omitzero,omitempty"`
	RunnerStatus RunnerStatus `json:"status,omitzero" gorm:"codec:ZSTD(1)" temporaljson:"runner_status,omitzero,omitempty"`

	MinuteBucket time.Time `` /* 141-byte string literal not displayed */

	RunnerStatusCode int `json:"status_code" gorm:"-" temporaljson:"runner_status_code,omitzero,omitempty"`

	Process RunnerProcess `json:"process" gorm:"not null;default:''" swaggertype:"string"`
}

clickhouse table

func (*RunnerHealthCheck) AfterQuery ยถ

func (r *RunnerHealthCheck) AfterQuery(tx *gorm.DB) error

func (*RunnerHealthCheck) BeforeCreate ยถ

func (r *RunnerHealthCheck) BeforeCreate(tx *gorm.DB) error

func (RunnerHealthCheck) GetTableClusterOptions ยถ

func (r RunnerHealthCheck) GetTableClusterOptions() string

func (RunnerHealthCheck) GetTableOptions ยถ

func (r RunnerHealthCheck) GetTableOptions() string

func (*RunnerHealthCheck) UseView ยถ

func (*RunnerHealthCheck) UseView() bool

func (*RunnerHealthCheck) ViewVersion ยถ

func (*RunnerHealthCheck) ViewVersion() string

func (*RunnerHealthCheck) Views ยถ

func (i *RunnerHealthCheck) Views(db *gorm.DB) []migrations.View

type RunnerHeartBeat ยถ

type RunnerHeartBeat struct {
	ID          string `gorm:"primary_key" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	RunnerID string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`

	AliveTime time.Duration `json:"alive_time,omitzero" swaggertype:"primitive,integer" temporaljson:"alive_time,omitzero,omitempty"`
	Version   string        `json:"version,omitzero" temporaljson:"version,omitzero,omitempty"`
	StartedAt time.Time     `json:"started_at,omitzero" gorm:"-" temporaljson:"started_at,omitzero,omitempty"`

	Process RunnerProcess `json:"process" gorm:"not null;default:''" swaggertype:"string"`
}

clickhouse table

func (*RunnerHeartBeat) AfterQuery ยถ

func (r *RunnerHeartBeat) AfterQuery(tx *gorm.DB) error

func (*RunnerHeartBeat) BeforeCreate ยถ

func (r *RunnerHeartBeat) BeforeCreate(tx *gorm.DB) error

func (RunnerHeartBeat) GetTableClusterOptions ยถ

func (r RunnerHeartBeat) GetTableClusterOptions() string

func (RunnerHeartBeat) GetTableOptions ยถ

func (r RunnerHeartBeat) GetTableOptions() string

type RunnerJob ยถ

type RunnerJob struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `` /* 187-byte string literal not displayed */
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_runner_name,unique;" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"index:idx_app_name,unique" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerID    string  `` /* 144-byte string literal not displayed */
	OwnerID     string  `` /* 168-byte string literal not displayed */
	OwnerType   string  `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`
	LogStreamID *string `json:"log_stream_id,omitzero" temporaljson:"log_stream_id,omitzero,omitempty"`

	// queue timeout is how long a job can be queued, before being made available
	QueueTimeout time.Duration `` /* 138-byte string literal not displayed */
	// available timeout is how long a job can be marked as "available" before being requeued
	AvailableTimeout time.Duration `` /* 146-byte string literal not displayed */
	// execution timeout is how long a job can be marked as "exeucuting" before being requeued
	ExecutionTimeout time.Duration `` /* 146-byte string literal not displayed */

	// overall timeout is how long a job can be attempted, before being cancelled
	OverallTimeout time.Duration `` /* 142-byte string literal not displayed */

	MaxExecutions int `json:"max_executions,omitzero" gorm:"not null;default null" temporaljson:"max_executions,omitzero,omitempty"`

	Status            RunnerJobStatus `` /* 131-byte string literal not displayed */
	StatusDescription string          `json:"status_description,omitzero" gorm:"not null;default null" temporaljson:"status_description,omitzero,omitempty"`

	Type      RunnerJobType          `json:"type,omitzero" gorm:"default null;not null" temporaljson:"type,omitzero,omitempty"`
	Group     RunnerJobGroup         `` /* 129-byte string literal not displayed */
	Operation RunnerJobOperationType `json:"operation,omitzero" gorm:"default:null;not null" temporaljson:"operation,omitzero,omitempty"`

	Executions []RunnerJobExecution `json:"executions,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"executions,omitzero,omitempty"`
	Plan       RunnerJobPlan        `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"plan,omitzero,omitempty"`

	StartedAt  time.Time `json:"started_at,omitzero" gorm:"default:null" temporaljson:"started_at,omitzero,omitempty"`
	FinishedAt time.Time `json:"finished_at,omitzero" gorm:"default:null" temporaljson:"finished_at,omitzero,omitempty"`

	Metadata pgtype.Hstore `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`

	ExecutionCount            int    `json:"execution_count,omitzero" gorm:"->;-:migration" temporaljson:"execution_count,omitzero,omitempty"`
	FinalRunnerJobExecutionID string `` /* 131-byte string literal not displayed */
	Outputs                   []byte `` /* 134-byte string literal not displayed */

	ExecutionTime time.Duration          `json:"execution_time,omitzero" gorm:"-" swaggertype:"primitive,integer" temporaljson:"execution_time,omitzero,omitempty"`
	Execution     *RunnerJobExecution    `json:"-" gorm:"-" temporaljson:"execution,omitzero,omitempty"`
	ParsedOutputs map[string]interface{} `json:"outputs,omitzero" gorm:"-" temporaljson:"parsed_outputs,omitzero,omitempty"`

	// foreign keys
	States      []TerraformWorkspaceState     `faker:"-" json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"states,omitzero,omitempty"`
	LockHistory []TerraformWorkspaceLock      `faker:"-" json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"lock_history,omitzero,omitempty"`
	StateJSON   []TerraformWorkspaceStateJSON `json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"statesjson,omitzero,omitempty"`
}

func (*RunnerJob) AfterQuery ยถ

func (r *RunnerJob) AfterQuery(tx *gorm.DB) error

func (*RunnerJob) BeforeCreate ยถ

func (r *RunnerJob) BeforeCreate(tx *gorm.DB) error

func (*RunnerJob) Indexes ยถ

func (a *RunnerJob) Indexes(db *gorm.DB) []migrations.Index

func (*RunnerJob) UseView ยถ

func (*RunnerJob) UseView() bool

func (*RunnerJob) ViewVersion ยถ

func (*RunnerJob) ViewVersion() string

func (*RunnerJob) Views ยถ

func (i *RunnerJob) Views(db *gorm.DB) []migrations.View

type RunnerJobExecution ยถ

type RunnerJobExecution struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_runner_job_execution_runner_job_id,type:btree" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerJobID string    `` /* 160-byte string literal not displayed */
	RunnerJob   RunnerJob `json:"-" temporaljson:"runner_job,omitzero,omitempty"`

	Status RunnerJobExecutionStatus `` /* 140-byte string literal not displayed */

	Result  *RunnerJobExecutionResult  `json:"result,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"result,omitzero,omitempty"`
	Outputs *RunnerJobExecutionOutputs `json:"outputs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"outputs,omitzero,omitempty"`

	// Metadata is used to store additional information about the execution {e.g., client version.}
	Metadata pgtype.Hstore `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`
}

each runner job can be retried one or more times each execution will be tracked and have logs, metrics, events and more

func (*RunnerJobExecution) BeforeCreate ยถ

func (r *RunnerJobExecution) BeforeCreate(tx *gorm.DB) error

func (*RunnerJobExecution) Indexes ยถ

func (i *RunnerJobExecution) Indexes(db *gorm.DB) []migrations.Index

type RunnerJobExecutionOutputs ยถ

type RunnerJobExecutionOutputs struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerJobExecutionID string             `` /* 170-byte string literal not displayed */
	RunnerJobExecution   RunnerJobExecution `json:"-" temporaljson:"runner_job_execution,omitzero,omitempty"`

	Outputs []byte `json:"outputs_json,omitzero" gorm:"type:jsonb" swaggertype:"string" temporaljson:"outputs,omitzero,omitempty"`

	ParsedOutputs map[string]interface{} `json:"outputs,omitzero" gorm:"-" swaggertype:"object,object" temporaljson:"parsed_outputs,omitzero,omitempty"`
}

func (*RunnerJobExecutionOutputs) AfterQuery ยถ

func (r *RunnerJobExecutionOutputs) AfterQuery(tx *gorm.DB) error

func (*RunnerJobExecutionOutputs) BeforeCreate ยถ

func (r *RunnerJobExecutionOutputs) BeforeCreate(tx *gorm.DB) error

func (*RunnerJobExecutionOutputs) Indexes ยถ

func (r *RunnerJobExecutionOutputs) Indexes(db *gorm.DB) []migrations.Index

type RunnerJobExecutionResult ยถ

type RunnerJobExecutionResult struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_job_execution_result,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerJobExecutionID string `` /* 162-byte string literal not displayed */

	Success bool `json:"success,omitzero" temporaljson:"success,omitzero,omitempty"`

	ErrorCode     int           `json:"error_code,omitzero" temporaljson:"error_code,omitzero,omitempty"`
	ErrorMetadata pgtype.Hstore `` /* 126-byte string literal not displayed */

	Contents        string `json:"contents,omitzero" gorm:"string" swaggertype:"string" temporaljson:"contents"`
	ContentsDisplay []byte `json:"contents_display,omitzero" gorm:"type:jsonb" swaggertype:"string" temporaljson:"-"`

	// columns for storage of gzipped contents and plans
	ContentsGzip        []byte `json:"contents_gzip,omitzero" gorm:"type:bytea" swaggertype:"string" temporaljson:"contents_binary"`
	ContentsDisplayGzip []byte `json:"contents_display_gzip,omitzero" gorm:"type:bytea" swaggertype:"string" temporaljson:"-"`
}

func (*RunnerJobExecutionResult) BeforeCreate ยถ

func (r *RunnerJobExecutionResult) BeforeCreate(tx *gorm.DB) error

func (*RunnerJobExecutionResult) GetContentsB64String ยถ

func (r *RunnerJobExecutionResult) GetContentsB64String() (string, error)

func (*RunnerJobExecutionResult) GetContentsDisplayDecompressedBytes ยถ

func (r *RunnerJobExecutionResult) GetContentsDisplayDecompressedBytes() ([]byte, error)

func (*RunnerJobExecutionResult) GetContentsDisplayString ยถ

func (r *RunnerJobExecutionResult) GetContentsDisplayString() (string, error)

func (*RunnerJobExecutionResult) Indexes ยถ

func (r *RunnerJobExecutionResult) Indexes(db *gorm.DB) []migrations.Index

type RunnerJobExecutionStatus ยถ

type RunnerJobExecutionStatus string
const (
	// the following statuses denote an in-progress execution
	// initializing means the runner is starting the job
	RunnerJobExecutionStatusPending RunnerJobExecutionStatus = "pending"
	// initializing means the runner is starting the job
	RunnerJobExecutionStatusInitializing RunnerJobExecutionStatus = "initializing"
	// means the runner is in progress
	RunnerJobExecutionStatusInProgress RunnerJobExecutionStatus = "in-progress"
	// means the runner is cleaning up
	RunnerJobExecutionStatusCleaningUp RunnerJobExecutionStatus = "cleaning-up"

	// the following statuses denote a finished execution
	// once a runner has finished the job successfully
	RunnerJobExecutionStatusFinished RunnerJobExecutionStatus = "finished"
	// once a runner has failed the job
	RunnerJobExecutionStatusFailed RunnerJobExecutionStatus = "failed"
	// once the job has timed out
	RunnerJobExecutionStatusTimedOut RunnerJobExecutionStatus = "timed-out"
	// not attempted is when the runner can not attempt
	RunnerJobExecutionStatusNotAttempted RunnerJobExecutionStatus = "not-attempted"
	// when a job is cancelled
	RunnerJobExecutionStatusCancelled RunnerJobExecutionStatus = "cancelled"
	// when a job status is unknown
	RunnerJobExecutionStatusUnknown RunnerJobExecutionStatus = "unknown"
)

func (RunnerJobExecutionStatus) IsRunning ยถ

func (r RunnerJobExecutionStatus) IsRunning() bool

type RunnerJobGroup ยถ

type RunnerJobGroup string
const (
	// a health check is a runner health check, not to be confused with a heart beat.
	RunnerJobGroupHealthChecks RunnerJobGroup = "health-checks"

	// component groups for builds, syncing and deploys
	RunnerJobGroupSync   RunnerJobGroup = "sync"
	RunnerJobGroupBuild  RunnerJobGroup = "build"
	RunnerJobGroupDeploy RunnerJobGroup = "deploy"

	// sandbox jobs such as provision, deprovision.
	RunnerJobGroupSandbox RunnerJobGroup = "sandbox"

	// runner jobs such as provision, deprovision and pre-flight checks.
	RunnerJobGroupRunner RunnerJobGroup = "runner"

	// operations jobs such as shutdown, restart, noop and update settings.
	RunnerJobGroupOperations RunnerJobGroup = "operations"
	RunnerJobGroupManagement RunnerJobGroup = "management"

	// actions workflows
	RunnerJobGroupActions RunnerJobGroup = "actions"

	RunnerJobGroupUnknown RunnerJobGroup = ""
	RunnerJobGroupAny     RunnerJobGroup = "any"
)

type RunnerJobOperationType ยถ

type RunnerJobOperationType string

operation types that correspond to the type of operation

const (
	// exec is used for shut down, scripts and more. It is mainly ignored as those job types do not really need to
	// think about operations
	RunnerJobOperationTypeExec RunnerJobOperationType = "exec"

	// update build
	RunnerJobOperationTypeBuild RunnerJobOperationType = "build"

	// the following operations are for common use cases for things such as helm, terraform and other jobs that have
	// multiple operation types.
	RunnerJobOperationTypeCreateApplyPlan    RunnerJobOperationType = "create-apply-plan"
	RunnerJobOperationTypeCreateTeardownPlan RunnerJobOperationType = "create-teardown-plan"
	RunnerJobOperationTypeApplyPlan          RunnerJobOperationType = "apply-plan"

	RunnerJobOperationTypeUnknown RunnerJobOperationType = "unknown"
)

type RunnerJobPlan ยถ

type RunnerJobPlan struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" gorm:"index:idx_runner_job_plan,unique" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerJobID string `` /* 137-byte string literal not displayed */

	PlanJSON      string                  `json:"plan_json,omitzero" temporaljson:"plan_json,omitzero,omitempty"`
	CompositePlan plantypes.CompositePlan `json:"composite_plan,omitzero" gorm:"type:jsonb" temporaljson:"composite_plan,omitzero,omitempty"`
}

func (*RunnerJobPlan) BeforeCreate ยถ

func (r *RunnerJobPlan) BeforeCreate(tx *gorm.DB) error

func (*RunnerJobPlan) Indexes ยถ

func (r *RunnerJobPlan) Indexes(db *gorm.DB) []migrations.Index

type RunnerJobStatus ยถ

type RunnerJobStatus string
const (
	// all jobs are set as queued to start, and the event loop should update them to available.
	RunnerJobStatusQueued RunnerJobStatus = "queued"
	// the runner queries jobs that are available, to find something to work on
	RunnerJobStatusAvailable RunnerJobStatus = "available"
	// once a runner is actively working on the job
	RunnerJobStatusInProgress RunnerJobStatus = "in-progress"
	// once a runner has finished the job
	RunnerJobStatusFinished RunnerJobStatus = "finished"

	// once a runner has failed the job
	RunnerJobStatusFailed RunnerJobStatus = "failed"
	// once the job has timed out
	RunnerJobStatusTimedOut RunnerJobStatus = "timed-out"
	// not attempted is when the runner can not attempt
	RunnerJobStatusNotAttempted RunnerJobStatus = "not-attempted"
	// cancelled
	RunnerJobStatusCancelled RunnerJobStatus = "cancelled"
	// status is not known
	RunnerJobStatusUnknown RunnerJobStatus = "unknown"
)

type RunnerJobType ยถ

type RunnerJobType string
const (
	// a health check is a runner health check, not to be confused with a heart beat
	RunnerJobTypeHealthCheck RunnerJobType = "health-check"

	// build job types
	RunnerJobTypeDockerBuild             RunnerJobType = "docker-build"
	RunnerJobTypeContainerImageBuild     RunnerJobType = "container-image-build"
	RunnerJobTypeTerraformModuleBuild    RunnerJobType = "terraform-module-build"
	RunnerJobTypeHelmChartBuild          RunnerJobType = "helm-chart-build"
	RunnerJobTypeKubernetesManifestBuild RunnerJobType = "kubernetes-manifest-build"
	RunnerJobTypeNOOPBuild               RunnerJobType = "noop-build"

	// sync job types
	RunnerJobTypeOCISync            RunnerJobType = "oci-sync"
	RunnerJobTypeNOOPSync           RunnerJobType = "noop-sync"
	RunnerJobTypeFetchImageMetadata RunnerJobType = "fetch-image-metadata"

	// deploy job types
	RunnerJobTypeTerraformDeploy          RunnerJobType = "terraform-deploy"
	RunnerJobTypeHelmChartDeploy          RunnerJobType = "helm-chart-deploy"
	RunnerJobTypeJobDeploy                RunnerJobType = "job-deploy"
	RunnerJobTypeKubrenetesManifestDeploy RunnerJobType = "kubernetes-manifest-deploy"
	RunnerJobTypeJobNOOPDeploy            RunnerJobType = "noop-deploy"

	// operations job types
	RunnerJobTypeShutDown      RunnerJobType = "shut-down"
	RunnerJobTypeUpdateVersion RunnerJobType = "update-version"
	RunnerJobTypeNOOP          RunnerJobType = "noop"

	// TODO(fd): revisit these names
	// management job types
	// RunnerJobTypeMngVMStats             RunnerJobType = "mng-vm-stats"          // log some vm stats/metrics
	RunnerJobTypeMngVMShutDown          RunnerJobType = "mng-vm-shut-down"          // shut down the vm
	RunnerJobTypeMngShutDown            RunnerJobType = "mng-shut-down"             // shutdown the runner mng process (usually triggers restart)
	RunnerJobTypeMngRunnerUpdateVersion RunnerJobType = "mng-runner-update-version" // update the runner image/version (check for changes and update)
	RunnerJobTypeMngRunnerRestart       RunnerJobType = "mng-runner-restart"        // restart the runner systemctl service (technically, a duplicate. runner can restart self.)
	RunnerJobTypeMngFetchToken          RunnerJobType = "mng-fetch-token"           // fetch authentication token via AWS presigned requests

	// sandbox job types
	RunnerJobTypeSandboxTerraform     RunnerJobType = "sandbox-terraform"
	RunnerJobTypeSandboxTerraformPlan RunnerJobType = "sandbox-terraform-plan"
	RunnerJobTypeSandboxSyncSecrets   RunnerJobType = "sandbox-sync-secrets"

	// runner job types
	RunnerJobTypeRunnerHelm      RunnerJobType = "runner-helm"
	RunnerJobTypeRunnerTerraform RunnerJobType = "runner-terraform"
	RunnerJobTypeRunnerLocal     RunnerJobType = "runner-local"

	// actions job types
	RunnerJobTypeActionsWorkflowRun RunnerJobType = "actions-workflow"

	// unknown
	RunnerJobTypeUnknown = "unknown"
)

func (RunnerJobType) Group ยถ

func (r RunnerJobType) Group() RunnerJobGroup

type RunnerOperation ยถ

type RunnerOperation struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// job details
	LogStream LogStream `json:"log_stream,omitzero" gorm:"polymorphic:Owner;" temporaljson:"log_stream,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	RunnerID string `json:"runner_id,omitzero" temporaljson:"runner_id,omitzero,omitempty"`
	Runner   Runner `json:"-" faker:"-" temporaljson:"runner,omitzero,omitempty"`

	OpType            RunnerOperationType   `json:"operation_type,omitzero" temporaljson:"op_type,omitzero,omitempty"`
	Status            RunnerOperationStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string" temporaljson:"status,omitzero,omitempty"`
	StatusDescription string                `json:"status_description,omitzero" gorm:"notnull" temporaljson:"status_description,omitzero,omitempty"`
}

func (*RunnerOperation) BeforeCreate ยถ

func (i *RunnerOperation) BeforeCreate(tx *gorm.DB) error

func (*RunnerOperation) Indexes ยถ

func (i *RunnerOperation) Indexes(db *gorm.DB) []migrations.Index

type RunnerOperationStatus ยถ

type RunnerOperationStatus string
const (
	RunnerOperationStatusFinished   RunnerOperationStatus = "finished"
	RunnerOperationStatusInProgress RunnerOperationStatus = "in-progress"
	RunnerOperationStatusPending    RunnerOperationStatus = "pending"
	RunnerOperationStatusError      RunnerOperationStatus = "error"
)

type RunnerOperationType ยถ

type RunnerOperationType string
const (
	RunnerOperationTypeProvision               RunnerOperationType = "provision"
	RunnerOperationTypeProvisionServiceAccount RunnerOperationType = "provision_service_account"
	RunnerOperationTypeReprovision             RunnerOperationType = "reprovision"
	RunnerOperationTypeDeprovision             RunnerOperationType = "deprovision"
)

type RunnerProcess ยถ

type RunnerProcess string

Now that we run third type of runner process, we need to distinguish which process is sending the heartbear NOTE(fd): we have to implement Scan/Value so the gorm ch plugin doesn't complain

const (
	RunnerProcessMng     RunnerProcess = "mng"
	RunnerProcessInstall RunnerProcess = "install"
	RunnerProcessOrg     RunnerProcess = "org"
	RunnerProcessUknown  RunnerProcess = ""
)

func (*RunnerProcess) Scan ยถ

func (rp *RunnerProcess) Scan(value any) error

func (RunnerProcess) Value ยถ

func (rp RunnerProcess) Value() (driver.Value, error)

type RunnerStatus ยถ

type RunnerStatus string
const (
	RunnerStatusError                   RunnerStatus = "error"
	RunnerStatusActive                  RunnerStatus = "active"
	RunnerStatusPending                 RunnerStatus = "pending"
	RunnerStatusProvisioning            RunnerStatus = "provisioning"
	RunnerStatusDeprovisioning          RunnerStatus = "deprovisioning"
	RunnerStatusDeprovisioned           RunnerStatus = "deprovisioned"
	RunnerStatusReprovisioning          RunnerStatus = "reprovisioning"
	RunnerStatusOffline                 RunnerStatus = "offline"
	RunnerStatusAwaitingInstallStackRun RunnerStatus = "awaiting-install-stack-run"

	RunnerStatusUnknown RunnerStatus = "unknown"
)

func (RunnerStatus) Code ยถ

func (r RunnerStatus) Code() int

func (RunnerStatus) IsHealthy ยถ

func (r RunnerStatus) IsHealthy() bool

func (RunnerStatus) String ยถ

func (r RunnerStatus) String() string

type SandboxRunStatus ยถ

type SandboxRunStatus string
const (
	SandboxRunStatusActive         SandboxRunStatus = "active"
	SandboxRunStatusError          SandboxRunStatus = "error"
	SandboxRunStatusQueued         SandboxRunStatus = "queued"
	SandboxRunStatusDeprovisioned  SandboxRunStatus = "deprovisioned"
	SandboxRunStatusDeprovisioning SandboxRunStatus = "deprovisioning"
	SandboxRunStatusProvisioning   SandboxRunStatus = "provisioning"
	SandboxRunStatusReprovisioning SandboxRunStatus = "reprovisioning"
	SandboxRunStatusPlanning       SandboxRunStatus = "planning"
	SandboxRunStatusApplying       SandboxRunStatus = "applying"
	SandboxRunStatusAccessError    SandboxRunStatus = "access_error"
	SandboxRunStatusUnknown        SandboxRunStatus = "unknown"
	SandboxRunStatusCancelled      SandboxRunStatus = "cancelled"
	SandboxRunStatusEmpty          SandboxRunStatus = "empty"
	SandboxRunPendingApproval      SandboxRunStatus = "pending-approval"
	SandboxRunApprovalDenied       SandboxRunStatus = "approval-denied"
	SandboxRunDriftDetected        SandboxRunStatus = "drift-detected"
	SandboxRunNoDrift              SandboxRunStatus = "no-drift"
	SandboxRunAutoSkipped          SandboxRunStatus = "auto-skipped"
)

type SandboxRunType ยถ

type SandboxRunType string
const (
	SandboxRunTypeProvision   SandboxRunType = "provision"
	SandboxRunTypeReprovision SandboxRunType = "reprovision"
	SandboxRunTypeDeprovision SandboxRunType = "deprovision"
)

type Signal ยถ

type Signal struct {
	EventLoopID string `json:"event_loop_id,omitzero" temporaljson:"event_loop_id,omitzero,omitempty"`

	Namespace  string `json:"namespace,omitzero" temporaljson:"namespace,omitzero,omitempty"`
	Type       string `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	SignalJSON []byte `json:"json,omitzero" temporaljson:"signal_json,omitzero,omitempty"`
}

func (Signal) GormDataType ยถ

func (Signal) GormDataType() string

func (*Signal) Scan ยถ

func (s *Signal) Scan(v interface{}) (err error)

func (*Signal) Value ยถ

func (s *Signal) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type StackType ยถ

type StackType string
const (
	StackTypeAWS StackType = "aws-cloudformation"
)

type Status ยถ

type Status string

generic statuses

const (
	StatusError        Status = "error"
	StatusPending      Status = "pending"
	StatusInProgress   Status = "in-progress"
	StatusCheckPlan    Status = "checking-plan"
	StatusSuccess      Status = "success"
	StatusNotAttempted Status = "not-attempted"
	StatusCancelled    Status = "cancelled"
	StatusRetrying     Status = "retrying"
	StatusDiscarded    Status = "discarded"
	StatusUserSkipped  Status = "user-skipped"
	StatusAutoSkipped  Status = "auto-skipped"
	StatusPlanning     Status = "planning"
	StatusApplying     Status = "applying"
	StatusQueued       Status = "queued"
)

define standard statuses

const (
	InstallStackVersionStatusGenerating   Status = "generating"
	InstallStackVersionStatusPendingUser  Status = "awaiting-user-run"
	InstallStackVersionStatusProvisioning Status = "provisioning"
	InstallStackVersionStatusActive       Status = "active"
	InstallStackVersionStatusOutdated     Status = "outdated"
	InstallStackVersionStatusExpired      Status = "expired"
)

type specific statuses

const (
	WorkflowStepApprovalStatusApproved Status = "approved"
	WorkflowStepDrifted                Status = "drifted"
	WorkflowStepNoDrift                Status = "no-drift"
	// WorkflowStepApprovalStatusAwaitingResponse  Status = "approval-awaiting" // NOTE(fd): superceded by shared const below
	WorkflowStepApprovalStatusApprovalExpired   Status = "approval-expired"
	WorkflowStepApprovalStatusApprovalDenied    Status = "approval-denied"
	WorkflowStepApprovalStatusApprovalRetryPlan Status = "approval-retry"
)
const (
	StatusBuilding Status = "building"
	StatusDeleting Status = "deleting"
)

component build specific statuses

const (
	AwaitingApproval Status = "approval-awaiting"
)

shared by WorkflowStep and Workflow

const (
	InstallDeployStatusV2Noop Status = "noop"
)

func (Status) DefaultHumanDescription ยถ

func (s Status) DefaultHumanDescription() string

type StepErrorBehavior ยถ

type StepErrorBehavior string

DEPRECATED: this is no longer used, but kept for historical data integrity

const (
	// abort on error
	StepErrorBehaviorAbort StepErrorBehavior = "abort"
)

type TemporalPayload ยถ

type TemporalPayload struct {
	ID        string                `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id" temporaljson:"id,omitzero,omitempty"`
	CreatedAt time.Time             `json:"created_at,omitzero" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	Contents []byte `json:"contents,omitzero" gorm:"type:bytea" swaggertype:"-" temporaljson:"contents,omitzero,omitempty"`
}

func (*TemporalPayload) BeforeCreate ยถ

func (a *TemporalPayload) BeforeCreate(tx *gorm.DB) error

type TerraformLock ยถ

type TerraformLock struct {
	Created   string `json:"created,omitzero" temporaljson:"created,omitzero,omitempty"`
	Path      string `json:"path,omitzero" temporaljson:"path,omitzero,omitempty"`
	ID        string `json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	Operation string `json:"operation,omitzero" temporaljson:"operation,omitzero,omitempty"`
	Info      string `json:"info,omitzero" temporaljson:"info,omitzero,omitempty"`
	Who       string `json:"who,omitzero" temporaljson:"who,omitzero,omitempty"`
	Version   any    `json:"version,omitzero" temporaljson:"version,omitzero,omitempty"`
}

Lock a lock on state

func (TerraformLock) GormDataType ยถ

func (TerraformLock) GormDataType() string

func (*TerraformLock) Scan ยถ

func (c *TerraformLock) Scan(v interface{}) (err error)

func (*TerraformLock) Value ยถ

func (c *TerraformLock) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type TerraformModuleComponentConfig ยถ

type TerraformModuleComponentConfig struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// parent reference
	ComponentConfigConnectionID string                    `` /* 126-byte string literal not displayed */
	ComponentConfigConnection   ComponentConfigConnection `json:"-" temporaljson:"component_config_connection,omitzero,omitempty"`

	// terraform configuration values
	Version        string         `json:"version,omitzero" gorm:"default:v1.7.5;notnull" temporaljson:"version,omitzero,omitempty"`
	Variables      pgtype.Hstore  `json:"variables,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"variables,omitzero,omitempty"`
	VariablesFiles pq.StringArray `` /* 147-byte string literal not displayed */
	EnvVars        pgtype.Hstore  `json:"env_vars,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"env_vars,omitzero,omitempty"`

	PublicGitVCSConfig       *PublicGitVCSConfig       `` /* 167-byte string literal not displayed */
	ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 179-byte string literal not displayed */
}

func (*TerraformModuleComponentConfig) BeforeCreate ยถ

func (c *TerraformModuleComponentConfig) BeforeCreate(tx *gorm.DB) error

func (*TerraformModuleComponentConfig) Indexes ยถ

type TerraformStateData ยถ

type TerraformStateData struct {
	Version          int                      `json:"version,omitzero,omitempty" temporaljson:"version,omitzero,omitempty"`
	TerraformVersion string                   `json:"terraform_version,omitzero,omitempty" temporaljson:"terraform_version,omitzero,omitempty"`
	Serial           int                      `json:"serial,omitzero,omitempty" temporaljson:"serial,omitzero,omitempty"`
	Lineage          string                   `json:"lineage,omitzero,omitempty" temporaljson:"lineage,omitzero,omitempty"`
	Outputs          map[string]any           `json:"outputs,omitzero,omitempty" temporaljson:"outputs,omitzero,omitempty"`
	Resources        []TerraformStateResource `json:"resources,omitzero,omitempty" temporaljson:"resources,omitzero,omitempty"`
	CheckResults     any                      `json:"check_results,omitzero,omitempty" temporaljson:"check_results,omitzero,omitempty"`

	// base 64 encoded version of the contents for compatibility
	Contents string `json:"contents,omitzero" temporaljson:"contents,omitzero,omitempty"`
}

func (TerraformStateData) GormDataType ยถ

func (TerraformStateData) GormDataType() string

func (*TerraformStateData) Scan ยถ

func (c *TerraformStateData) Scan(v interface{}) (err error)

func (*TerraformStateData) Value ยถ

func (c *TerraformStateData) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type TerraformStateInstance ยถ

type TerraformStateInstance struct {
	SchemaVersion       int            `json:"schema_version,omitzero" temporaljson:"schema_version,omitzero,omitempty"`
	Attributes          map[string]any `json:"attributes,omitzero" temporaljson:"attributes,omitzero,omitempty"`
	SensitiveAttributes []any          `json:"sensitive_attributes,omitzero" temporaljson:"sensitive_attributes,omitzero,omitempty"`
}

type TerraformStateResource ยถ

type TerraformStateResource struct {
	Mode      string                   `json:"mode,omitzero" temporaljson:"mode,omitzero,omitempty"`
	Type      string                   `json:"type,omitzero" temporaljson:"type,omitzero,omitempty"`
	Name      string                   `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`
	Provider  string                   `json:"provider,omitzero" temporaljson:"provider,omitzero,omitempty"`
	Instances []TerraformStateInstance `json:"instances,omitzero" temporaljson:"instances,omitzero,omitempty"`
}

type TerraformWorkspace ยถ

type TerraformWorkspace struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	OwnerID   string `` /* 148-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;uniqueIndex:idx_owner" temporaljson:"owner_type,omitzero,omitempty"`

	States      []TerraformWorkspaceState `faker:"-" json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"states,omitzero,omitempty"`
	LockHistory []TerraformWorkspaceLock  `` /* 170-byte string literal not displayed */

	StateJSON []TerraformWorkspaceStateJSON `` /* 147-byte string literal not displayed */
}

func (*TerraformWorkspace) BeforeCreate ยถ

func (r *TerraformWorkspace) BeforeCreate(tx *gorm.DB) (err error)

func (*TerraformWorkspace) Indexes ยถ

func (r *TerraformWorkspace) Indexes(db *gorm.DB) []migrations.Index

type TerraformWorkspaceLock ยถ

type TerraformWorkspaceLock struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"null;default:null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	// Foreign key to TerraformWorkspace with unique constraint to prevent multiple active locks
	WorkspaceID string             `` /* 176-byte string literal not displayed */
	Workspace   TerraformWorkspace `json:"-" temporaljson:"workspace,omitzero,omitempty"`

	Lock *TerraformLock `json:"lock,omitzero" temporaljson:"lock,omitzero,omitempty"`

	RunnerJobID *string   `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerJob   RunnerJob `json:"runner_job,omitzero" temporaljson:"runner_job,omitzero,omitempty"`
}

func (*TerraformWorkspaceLock) BeforeCreate ยถ

func (r *TerraformWorkspaceLock) BeforeCreate(tx *gorm.DB) (err error)

type TerraformWorkspaceState ยถ

type TerraformWorkspaceState struct {
	ID          string `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`

	CreatedBy Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	Contents []byte `json:"contents,omitzero" gorm:"type:bytea" temporaljson:"contents,omitzero,omitempty"`

	TerraformWorkspaceID string             `json:"terraform_workspace_id,omitzero" temporaljson:"terraform_workspace_id,omitzero,omitempty"`
	TerraformWorkspace   TerraformWorkspace `json:"terraform_workspace,omitzero" gorm:"-" temporaljson:"terraform_workspace,omitzero,omitempty"`

	RunnerJobID *string   `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerJob   RunnerJob `json:"runner_job,omitzero" temporaljson:"runner_job,omitzero,omitempty"`

	Revision int `json:"revision,omitzero" gorm:"->;-:migration" temporaljson:"revision,omitzero,omitempty"`
}

func (*TerraformWorkspaceState) BeforeCreate ยถ

func (t *TerraformWorkspaceState) BeforeCreate(tx *gorm.DB) (err error)

func (*TerraformWorkspaceState) Indexes ยถ

func (t *TerraformWorkspaceState) Indexes(db *gorm.DB) []migrations.Index

func (*TerraformWorkspaceState) UseView ยถ

func (i *TerraformWorkspaceState) UseView() bool

func (*TerraformWorkspaceState) ViewVersion ยถ

func (i *TerraformWorkspaceState) ViewVersion() string

func (*TerraformWorkspaceState) Views ยถ

func (i *TerraformWorkspaceState) Views(db *gorm.DB) []migrations.View

type TerraformWorkspaceStateJSON ยถ

type TerraformWorkspaceStateJSON struct {
	ID          string  `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`

	Contents []byte `json:"contents,omitzero" gorm:"type:bytea" temporaljson:"contents,omitzero,omitempty"`

	OrgID string `json:"org_id,omitzero" gorm:"default:null" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" temporaljson:"org,omitzero,omitempty"`

	// Foreign key to TerraformWorkspace with unique constraint to prevent conflicting states for a workspace
	WorkspaceID string             `` /* 139-byte string literal not displayed */
	Workspace   TerraformWorkspace `json:"-" temporaljson:"workspace,omitzero,omitempty"`

	RunnerJobID *string   `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerJob   RunnerJob `json:"runner_job,omitzero" temporaljson:"runner_job,omitzero,omitempty"`
}

func (*TerraformWorkspaceStateJSON) BeforeCreate ยถ

func (t *TerraformWorkspaceStateJSON) BeforeCreate(tx *gorm.DB) (err error)

func (*TerraformWorkspaceStateJSON) Indexes ยถ

type Token ยถ

type Token struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	AccountID string `json:"account_id,omitzero" temporaljson:"account_id,omitzero,omitempty"`

	Token     string    `gorm:"unique" json:"-" temporaljson:"token,omitzero,omitempty"`
	TokenType TokenType `json:"token_type,omitzero" temporaljson:"token_type,omitzero,omitempty"`

	// claim data
	ExpiresAt time.Time `json:"expires_at,omitzero" gorm:"notnull" temporaljson:"expires_at,omitzero,omitempty"`
	IssuedAt  time.Time `json:"issued_at,omitzero" gorm:"notnull" temporaljson:"issued_at,omitzero,omitempty"`
	Issuer    string    `json:"issuer,omitzero" gorm:"notnull;default null" temporaljson:"issuer,omitzero,omitempty"`
}

func (*Token) BeforeCreate ยถ

func (a *Token) BeforeCreate(tx *gorm.DB) error

type TokenType ยถ

type TokenType string
const (
	TokenTypeAuth        TokenType = "auth" // nuon auth service
	TokenTypeAuth0       TokenType = "auth0"
	TokenTypeAdmin       TokenType = "admin"
	TokenTypeStatic      TokenType = "static"
	TokenTypeIntegration TokenType = "integration"
	TokenTypeCanary      TokenType = "canary"
	TokenTypeNuon        TokenType = "nuon"
)

type UserJourney ยถ

type UserJourney struct {
	Name  string            `json:"name" gorm:"column:name"`
	Title string            `json:"title" gorm:"column:title"`
	Steps []UserJourneyStep `json:"steps" gorm:"column:steps;type:jsonb"`
}

type UserJourneyStep ยถ

type UserJourneyStep struct {
	Name     string `json:"name" gorm:"column:name"`
	Title    string `json:"title" gorm:"column:title"`
	Complete bool   `json:"complete" gorm:"column:complete;default:false"`

	// Top-level completion tracking fields
	CompletedAt      *time.Time `json:"completed_at,omitempty" gorm:"column:completed_at"`
	CompletionMethod string     `json:"completion_method,omitempty" gorm:"column:completion_method"`
	CompletionSource string     `json:"completion_source,omitempty" gorm:"column:completion_source"`

	// Flexible metadata for business data
	Metadata map[string]interface{} `json:"metadata,omitempty" gorm:"column:metadata;type:jsonb"`
}

type UserJourneys ยถ

type UserJourneys []UserJourney

UserJourneys represents a slice of UserJourney that can be stored in JSONB

func (UserJourneys) GormDataType ยถ

func (UserJourneys) GormDataType() string

func (*UserJourneys) Scan ยถ

func (uj *UserJourneys) Scan(v interface{}) (err error)

Scan implements the database/sql.Scanner interface.

func (UserJourneys) Value ยถ

func (uj UserJourneys) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

type VCSConnection ยถ

type VCSConnection struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OrgID string `` /* 126-byte string literal not displayed */
	Org   Org    `swaggerignore:"true" json:"-" temporaljson:"org,omitzero,omitempty"`

	GithubInstallID string `` /* 127-byte string literal not displayed */

	GithubAccountID   string `json:"github_account_id,omitempty" gorm:"not null;default:''" temporaljson:"github_account_id,omitzero,omitempty"`
	GithubAccountName string `json:"github_account_name,omitempty" gorm:"not null;default:''" temporaljson:"github_account_name,omitzero,omitempty"`

	Commits                   []VCSConnectionCommit      `json:"vcs_connection_commit,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"commits,omitzero,omitempty"`
	ConnectedGithubVCSConfigs []ConnectedGithubVCSConfig `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"connected_github_vcs_configs,omitzero,omitempty"`
}

func (*VCSConnection) BeforeCreate ยถ

func (v *VCSConnection) BeforeCreate(tx *gorm.DB) error

func (*VCSConnection) Indexes ยถ

func (v *VCSConnection) Indexes(db *gorm.DB) []migrations.Index

type VCSConnectionCommit ยถ

type VCSConnectionCommit struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	VCSConnection   VCSConnection `json:"-" temporaljson:"vcs_connection,omitzero,omitempty"`
	VCSConnectionID string        `json:"vcs_connection_id,omitzero" gorm:"notnull" temporaljson:"vcs_connection_id,omitzero,omitempty"`

	ComponentBuilds []ComponentBuild `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"component_builds,omitzero,omitempty"`

	SHA         string `json:"sha,omitzero" gorm:"notnull" temporaljson:"sha,omitzero,omitempty"`
	AuthorName  string `json:"author_name,omitzero" temporaljson:"author_name,omitzero,omitempty"`
	AuthorEmail string `json:"author_email,omitzero" temporaljson:"author_email,omitzero,omitempty"`
	Message     string `json:"message,omitzero" temporaljson:"message,omitzero,omitempty"`
}

func (*VCSConnectionCommit) BeforeCreate ยถ

func (v *VCSConnectionCommit) BeforeCreate(tx *gorm.DB) error

func (*VCSConnectionCommit) Indexes ยถ

func (v *VCSConnectionCommit) Indexes(db *gorm.DB) []migrations.Index

type VCSConnectionType ยถ

type VCSConnectionType string
const (
	VCSConnectionTypeConnectedRepo VCSConnectionType = "connected_repo"
	VCSConnectionTypePublicRepo    VCSConnectionType = "public_repo"
	VCSConnectionTypeNone          VCSConnectionType = "none"
)

type Waitlist ยถ

type Waitlist struct {
	ID          string  `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string  `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account `json:"-" temporaljson:"created_by,omitzero,omitempty"`

	CreatedAt time.Time `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`

	OrgName string `json:"org_name,omitzero" gorm:"not null;default:null" temporaljson:"org_name,omitzero,omitempty"`
}

func (*Waitlist) BeforeSave ยถ

func (c *Waitlist) BeforeSave(tx *gorm.DB) error

type Workflow ยถ

type Workflow struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_install_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	OwnerID   string `` /* 126-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	Type     WorkflowType    `json:"type,omitzero" gorm:"not null;default null" temporaljson:"type,omitzero,omitempty"`
	Metadata pgtype.Hstore   `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`
	Status   CompositeStatus `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`

	// DEPRECATED: for now we always abort on step errors
	StepErrorBehavior StepErrorBehavior `json:"step_error_behavior,omitzero" temporaljson:"step_error_behavior,omitzero,omitempty" swaggertype:"string"`

	ApprovalOption InstallApprovalOption `json:"approval_option,omitzero" gorm:"default 'auto'" temporaljson:"approval_option,omitzero,omitempty"`

	PlanOnly bool `json:"plan_only"`

	StartedAt  time.Time `json:"started_at,omitzero" gorm:"default:null" temporaljson:"started_at,omitzero,omitempty"`
	FinishedAt time.Time `json:"finished_at,omitzero" gorm:"default:null" temporaljson:"finished_at,omitzero,omitempty"`
	Finished   bool      `json:"finished,omitzero" gorm:"-" temporaljson:"finished,omitzero,omitempty"`

	// steps represent each piece of the workflow
	Steps []WorkflowStep `` /* 126-byte string literal not displayed */
	Name  string         `json:"name,omitzero" gorm:"-" temporaljson:"name,omitzero,omitempty"`

	ExecutionTime time.Duration `json:"execution_time,omitzero" gorm:"-" swaggertype:"primitive,integer" temporaljson:"execution_time,omitzero,omitempty"`

	InstallSandboxRuns        []InstallSandboxRun        `` /* 156-byte string literal not displayed */
	InstallDeploys            []InstallDeploy            `` /* 146-byte string literal not displayed */
	InstallActionWorkflowRuns []InstallActionWorkflowRun `` /* 163-byte string literal not displayed */

	Links map[string]any `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`
}

TODO(jm): make install workflows a top level concept called a "workflow", and they belong to either an app or an install.

We start with this to make it easier to iterate on them, for now.

func (*Workflow) AfterQuery ยถ

func (r *Workflow) AfterQuery(tx *gorm.DB) error

func (*Workflow) BeforeCreate ยถ

func (i *Workflow) BeforeCreate(tx *gorm.DB) error

func (*Workflow) BeforeSave ยถ

func (i *Workflow) BeforeSave(tx *gorm.DB) error

func (*Workflow) Indexes ยถ

func (i *Workflow) Indexes(db *gorm.DB) []migrations.Index

func (*Workflow) TableName ยถ

func (i *Workflow) TableName() string

type WorkflowMetadataKey ยถ

type WorkflowMetadataKey string

type WorkflowStep ยถ

type WorkflowStep struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"created_by" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	OwnerID   string `` /* 174-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	// DEPRECATED: this is the install workflow ID, which is now the workflow ID.
	InstallWorkflowID string `json:"install_workflow_id,omitzero" temporaljson:"install_workflow_id,omitzero,omitempty"`

	Status CompositeStatus `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`
	Name   string          `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`

	// the signal that needs to be called
	Signal Signal `json:"-" temporaljson:"signal,omitzero,omitempty"`

	Idx int `json:"idx,omitzero" temporaljson:"idx,omitzero,omitempty"`

	// to group steps which belong to same logical group, eg, plan/apply
	GroupIdx int `json:"group_idx,omitzero" temporaljson:"group_idx,omitzero,omitempty"`
	// counter for every retry attempted on a group
	GroupRetryIdx int `json:"group_retry_idx" gorm:"default:0" temporaljson:"group_retry_idx,omitzero,omitempty"`

	ExecutionType WorkflowStepExecutionType `json:"execution_type,omitzero" temporaljson:"execution_type"`

	// the following fields are set _once_ a step is in flight, and are orchestrated via the step's signal.
	//
	// this is a polymorphic gorm relationship to one of the following objects:
	//
	// install_cloudformation_stack
	// install_sandbox_run
	// install_runner_update
	// install_deploy
	// install_action_workflow_run (can be many of these)
	StepTargetID   string `` /* 138-byte string literal not displayed */
	StepTargetType string `json:"step_target_type,omitzero" gorm:"type:text;" temporaljson:"step_target_type,omitzero,omitempty"`

	Metadata pgtype.Hstore `json:"metadata,omitzero" gorm:"type:hstore" swaggertype:"object,string" temporaljson:"metadata,omitzero,omitempty"`

	StartedAt  time.Time `json:"started_at,omitzero" gorm:"default:null" temporaljson:"started_at,omitzero,omitempty"`
	FinishedAt time.Time `json:"finished_at,omitzero" gorm:"default:null" temporaljson:"finished_at,omitzero,omitempty"`
	Finished   bool      `json:"finished,omitzero" gorm:"-" temporaljson:"finished,omitzero,omitempty"`

	Approval         *WorkflowStepApproval         `gorm:"foreignKey:InstallWorkflowStepID" json:"approval,omitzero" temporaljson:"approval,omitzero,omitempty"`
	PolicyValidation *WorkflowStepPolicyValidation `gorm:"foreignKey:InstallWorkflowStepID" json:"policy_validation,omitzero" temporaljson:"policy_validation,omitzero,omitempty"`

	ExecutionTime time.Duration `json:"execution_time,omitzero" gorm:"-" swaggertype:"primitive,integer" temporaljson:"execution_time,omitzero,omitempty"`

	Links map[string]any `json:"links,omitzero,omitempty" temporaljson:"-" gorm:"-"`

	Retryable bool `json:"retryable,omitzero" gorm:"default:false" temporaljson:"retryable,omitzero,omitempty"`
	Skippable bool `json:"skippable,omitzero" gorm:"default:false" temporaljson:"skippable,omitzero,omitempty"`
	Retried   bool `json:"retried,omitzero" gorm:"default:false" temporaljson:"retried,omitzero,omitempty"`

	// Fields that are de-nested at read time using AfterQuery
	WorkflowID string `json:"workflow_id,omitzero" gorm:"-" temporaljson:"workflow_id,omitzero,omitempty"`
}

func (*WorkflowStep) AfterQuery ยถ

func (r *WorkflowStep) AfterQuery(tx *gorm.DB) error

func (*WorkflowStep) BeforeCreate ยถ

func (a *WorkflowStep) BeforeCreate(tx *gorm.DB) error

func (*WorkflowStep) BeforeSave ยถ

func (i *WorkflowStep) BeforeSave(tx *gorm.DB) error

func (*WorkflowStep) Indexes ยถ

func (i *WorkflowStep) Indexes(db *gorm.DB) []migrations.Index

func (*WorkflowStep) TableName ยถ

func (i *WorkflowStep) TableName() string

type WorkflowStepApproval ยถ

type WorkflowStepApproval struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_install_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// the step that this approval belongs too
	InstallWorkflowStepID string       `gorm:"install_workflow_step_id,notnull" temporaljson:"install_workflow_step_id,omitzero,omitempty"`
	InstallWorkflowStep   WorkflowStep `temporaljson:"install_workflow_step,omitzero,omitempty"`

	// the runner job where this approval was created
	RunnerJobID *string    `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
	RunnerJob   *RunnerJob `json:"runner_job,omitzero" temporaljson:"runner_job,omitzero,omitempty"`

	OwnerID   string `` /* 168-byte string literal not displayed */
	OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`

	Contents string `json:"-" temporaljson:"-"`

	Type WorkflowStepApprovalType `json:"type"`

	Response *WorkflowStepApprovalResponse `` /* 143-byte string literal not displayed */

	// afterquery
	WorkflowStepID string       `json:"workflow_step_id,omitzero" gorm:"-" temporaljson:"workflow_step_id,omitzero,omitempty"`
	WorkflowStep   WorkflowStep `json:"workflow_step,omitzero" gorm:"-" temporaljson:"workflow_step,omitzero,omitempty"`
}

func (*WorkflowStepApproval) AfterQuery ยถ

func (c *WorkflowStepApproval) AfterQuery(tx *gorm.DB) error

func (*WorkflowStepApproval) BeforeCreate ยถ

func (c *WorkflowStepApproval) BeforeCreate(tx *gorm.DB) error

func (*WorkflowStepApproval) Indexes ยถ

func (c *WorkflowStepApproval) Indexes(db *gorm.DB) []migrations.Index

func (*WorkflowStepApproval) TableName ยถ

func (c *WorkflowStepApproval) TableName() string

type WorkflowStepApprovalResponse ยถ

type WorkflowStepApprovalResponse struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_install_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	InstallWorkflowStepApprovalID string               `json:"install_workflow_step_approval_id,omitzero" temporaljson:"install_workflow_step_approval_id,omitzero,omitempty"`
	InstallWorkflowStepApproval   WorkflowStepApproval `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_workflow_step_approval,omitzero,omitempty"`

	// the response type
	Type WorkflowStepResponseType `json:"type,omitzero" temporaljson:"type,omitzero,omitempty" swaggertype:"string"`

	Note string `json:"note,omitzero" temporaljson:"note,omitzero,omitempty"`
}

func (*WorkflowStepApprovalResponse) AfterQuery ยถ

func (c *WorkflowStepApprovalResponse) AfterQuery(tx *gorm.DB) error

func (*WorkflowStepApprovalResponse) BeforeCreate ยถ

func (c *WorkflowStepApprovalResponse) BeforeCreate(tx *gorm.DB) error

func (*WorkflowStepApprovalResponse) Indexes ยถ

func (*WorkflowStepApprovalResponse) TableName ยถ

func (c *WorkflowStepApprovalResponse) TableName() string

type WorkflowStepApprovalType ยถ

type WorkflowStepApprovalType string
const (
	NoopApprovalType               WorkflowStepApprovalType = "noop"
	ApproveAllApprovalType         WorkflowStepApprovalType = "approve-all"
	TerraformPlanApprovalType      WorkflowStepApprovalType = "terraform_plan"
	KubernetesManifestApprovalType WorkflowStepApprovalType = "kubernetes_manifest_approval"
	HelmApprovalApprovalType       WorkflowStepApprovalType = "helm_approval"
)

type WorkflowStepExecutionType ยถ

type WorkflowStepExecutionType string
const (
	WorkflowStepExecutionTypeSystem   WorkflowStepExecutionType = "system"
	WorkflowStepExecutionTypeUser     WorkflowStepExecutionType = "user"
	WorkflowStepExecutionTypeApproval WorkflowStepExecutionType = "approval"
	WorkflowStepExecutionTypeSkipped  WorkflowStepExecutionType = "skipped"
	WorkflowStepExecutionTypeHidden   WorkflowStepExecutionType = "hidden"
)

type WorkflowStepPolicyValidation ยถ

type WorkflowStepPolicyValidation struct {
	ID          string                `gorm:"primary_key;check:id_checker,char_length(id)=26" json:"id,omitzero" temporaljson:"id,omitzero,omitempty"`
	CreatedByID string                `json:"created_by_id,omitzero" gorm:"not null;default:null" temporaljson:"created_by_id,omitzero,omitempty"`
	CreatedBy   Account               `json:"-" temporaljson:"created_by,omitzero,omitempty"`
	CreatedAt   time.Time             `json:"created_at,omitzero" gorm:"notnull" temporaljson:"created_at,omitzero,omitempty"`
	UpdatedAt   time.Time             `json:"updated_at,omitzero" gorm:"notnull" temporaljson:"updated_at,omitzero,omitempty"`
	DeletedAt   soft_delete.DeletedAt `gorm:"index:idx_app_install_name,unique" json:"-" temporaljson:"deleted_at,omitzero,omitempty"`

	// used for RLS
	OrgID string `json:"org_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"org_id,omitzero,omitempty"`
	Org   Org    `json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`

	// runnerJobID is the runner job that this was performed within
	RunnerJobID string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`

	// install workflow step is the install step that this was performed within
	InstallWorkflowStepID string `json:"install_workflow_step_id,omitzero" temporaljson:"install_workflow_step_id,omitzero,omitempty"`

	// status denotes whether this passed, or whether it failed the job.
	Status CompositeStatus `json:"status,omitzero" temporaljson:"status,omitzero,omitempty"`
	// response is the kyverno response
	Response string `json:"response,omitzero" gorm:"jsonb" temporaljson:"response,omitzero,omitempty"`
}

func (*WorkflowStepPolicyValidation) Indexes ยถ

func (*WorkflowStepPolicyValidation) TableName ยถ

func (v *WorkflowStepPolicyValidation) TableName() string

type WorkflowStepResponseType ยถ

type WorkflowStepResponseType string
const (
	WorkflowStepApprovalResponseTypeDeny                     WorkflowStepResponseType = "deny"
	WorkflowStepApprovalResponseTypeApprove                  WorkflowStepResponseType = "approve"
	WorkflowStepApprovalResponseTypeSkipCurrent              WorkflowStepResponseType = "deny-skip-current"
	WorkflowStepApprovalResponseTypeSkipCurrentAndDependents WorkflowStepResponseType = "deny-skip-current-and-dependents"
	WorkflowStepApprovalResponseTypeRetryPlan                WorkflowStepResponseType = "retry"

	// auto approve is when the workflow uses auto-approve
	WorkflowStepApprovalResponseTypeAutoApprove WorkflowStepResponseType = "auto-approve"
)

type WorkflowStepTargetType ยถ

type WorkflowStepTargetType string
const (
	WorkflowStepTargetTypeInstallCloudformationStack WorkflowStepTargetType = "install_cloudformation_stack"
	WorkflowStepTargetTypeInstallSandboxRun          WorkflowStepTargetType = "install_sandbox_run"
	WorkflowStepTargetTypeInstallRunnerUpdate        WorkflowStepTargetType = "install_runner_update"
	WorkflowStepTargetTypeInstallDeploy              WorkflowStepTargetType = "install_deploy"
	WorkflowStepTargetTypeInstallActionWorkflowRun   WorkflowStepTargetType = "install_action_workflow_run"

	WorkflowStepTargetTypeInstallDeploys            WorkflowStepTargetType = "install_deploys"
	WorkflowStepTargetTypeInstallSandboxRuns        WorkflowStepTargetType = "install_sandbox_runs"
	WorkflowStepTargetTypeInstallActionWorkflowRuns WorkflowStepTargetType = "install_action_workflow_runs"
	WorkflowStepTargetTypeInstallStackVersions      WorkflowStepTargetType = "install_stack_versions"
	WorkflowStepTargetTypeInstallStates             WorkflowStepTargetType = "install_states"
	WorkflowStepTargetTypeRunners                   WorkflowStepTargetType = "runners"
)

install_cloudformation_stack install_sandbox_run install_runner_update install_deploy install_action_workflow_run (can be many of these)

type WorkflowType ยถ

type WorkflowType string
const (
	WorkflowTypeProvision          WorkflowType = "provision"
	WorkflowTypeDeprovision        WorkflowType = "deprovision"
	WorkflowTypeDeprovisionSandbox WorkflowType = "deprovision_sandbox"

	// day-2 triggers
	WorkflowTypeManualDeploy               WorkflowType = "manual_deploy"
	WorkflowTypeInputUpdate                WorkflowType = "input_update"
	WorkflowTypeDeployComponents           WorkflowType = "deploy_components"
	WorkflowTypeTeardownComponent          WorkflowType = "teardown_component"
	WorkflowTypeTeardownComponents         WorkflowType = "teardown_components"
	WorkflowTypeReprovisionSandbox         WorkflowType = "reprovision_sandbox"
	WorkflowTypeDriftRunReprovisionSandbox WorkflowType = "drift_run_reprovision_sandbox"
	WorkflowTypeActionWorkflowRun          WorkflowType = "action_workflow_run"
	WorkflowTypeSyncSecrets                WorkflowType = "sync_secrets"
	WorkflowTypeDriftRun                   WorkflowType = "drift_run"

	// app branches workflows
	WorkflowTypeAppBranchesManualUpdate        WorkflowType = "app_branches_manual_update"
	WorkflowTypeAppBranchesConfigRepoUpdate    WorkflowType = "app_branches_config_repo_update"
	WorkflowTypeAppBranchesComponentRepoUpdate WorkflowType = "app_branches_component_repo_update"

	// reprovision everything
	WorkflowTypeReprovision WorkflowType = "reprovision"
)

func (WorkflowType) Description ยถ

func (i WorkflowType) Description() string

func (WorkflowType) Name ยถ

func (i WorkflowType) Name() string

func (WorkflowType) PastTenseName ยถ

func (i WorkflowType) PastTenseName() string

Source Files ยถ

Directories ยถ

Path Synopsis
accounts
actions
admin-dashboard
components/icon
templui component icon - version: v1.3.0 installed by templui v1.3.0 ๐Ÿ“š Documentation: https://templui.io/docs/components/icon
templui component icon - version: v1.3.0 installed by templui v1.3.0 ๐Ÿ“š Documentation: https://templui.io/docs/components/icon
service/views
templ: version: v0.3.977
templ: version: v0.3.977
utils
templui util templui.go - version: v1.3.0 installed by templui v1.3.0
templui util templui.go - version: v1.3.0 installed by templui v1.3.0
app-branches
apps
auth
components
general
installs
orgs
releases
runners
vcs

Jump to

Keyboard shortcuts

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