Documentation
¶
Index ¶
- Constants
- Variables
- func GetFeatureDescriptions() map[OrgFeature]string
- type AWSAccount
- type AWSECRImageConfig
- type AWSIAMRoleType
- type AWSRegionType
- type AWSStackOutputs
- func (a *AWSStackOutputs) BreakGlassRoleID(name string) (string, error)
- func (a *AWSStackOutputs) BreakGlassRoles() (map[string]string, error)
- func (a *AWSStackOutputs) CustomRoleID(name string) (string, error)
- func (a *AWSStackOutputs) CustomRoles() (map[string]string, error)
- func (a *AWSStackOutputs) DeprovisionRoleID() (string, error)
- func (a *AWSStackOutputs) InstallInputValues() (map[string]string, error)
- func (a *AWSStackOutputs) MaintenanceRoleID() (string, error)
- func (a *AWSStackOutputs) ProvisionRoleID() (string, error)
- type Account
- type AccountIdentity
- type AccountRole
- type AccountType
- type ActionWorkflow
- type ActionWorkflowConfig
- func (a *ActionWorkflowConfig) AfterQuery(tx *gorm.DB) error
- func (a *ActionWorkflowConfig) BeforeCreate(tx *gorm.DB) error
- func (a *ActionWorkflowConfig) GetComponentTriggerIndex(typ ActionWorkflowTriggerType, componentID string) int
- func (a *ActionWorkflowConfig) GetTriggerIndex(typ ActionWorkflowTriggerType) int
- func (a *ActionWorkflowConfig) HasComponentTrigger(typ ActionWorkflowTriggerType, componentID string) bool
- func (a *ActionWorkflowConfig) HasTrigger(typ ActionWorkflowTriggerType) bool
- func (a *ActionWorkflowConfig) Indexes(db *gorm.DB) []migrations.Index
- func (i *ActionWorkflowConfig) Views(db *gorm.DB) []migrations.View
- func (a *ActionWorkflowConfig) WorkflowConfigCanTriggerManually() bool
- type ActionWorkflowStatus
- type ActionWorkflowStepConfig
- type ActionWorkflowTriggerConfig
- type ActionWorkflowTriggerType
- type AdHocStepConfig
- type App
- type AppAWSIAMPolicyConfig
- type AppAWSIAMRoleConfig
- type AppBranch
- type AppBranchConfig
- type AppBranchInstallGroup
- type AppBranchRun
- type AppBreakGlassConfig
- type AppConfig
- type AppConfigStatus
- type AppConfigVersion
- type AppInput
- type AppInputConfig
- type AppInputGroup
- type AppInputSource
- type AppInputType
- type AppOperationRoleConfig
- type AppOperationRoleRule
- type AppPermissionsConfig
- type AppPoliciesConfig
- type AppPolicyConfig
- type AppRepository
- type AppRepositoryType
- type AppRunnerConfig
- type AppRunnerConfigHelmDriverType
- type AppRunnerType
- type AppSandboxBuild
- type AppSandboxBuildStatus
- type AppSandboxConfig
- type AppSecret
- type AppSecretConfig
- type AppSecretConfigFmt
- type AppSecretsConfig
- type AppStackConfig
- type AppStatus
- type AzureAccount
- type AzureStackOutputs
- func (a *AzureStackOutputs) BreakGlassRoleID(_ string) (string, error)
- func (a *AzureStackOutputs) BreakGlassRoles() (map[string]string, error)
- func (a *AzureStackOutputs) CustomRoleID(_ string) (string, error)
- func (a *AzureStackOutputs) CustomRoles() (map[string]string, error)
- func (a *AzureStackOutputs) DeprovisionRoleID() (string, error)
- func (a *AzureStackOutputs) InstallInputValues() (map[string]string, error)
- func (a *AzureStackOutputs) MaintenanceRoleID() (string, error)
- func (a *AzureStackOutputs) ProvisionRoleID() (string, error)
- type CHTableSize
- type CloudPlatform
- type CloudPlatformRegion
- type Component
- type ComponentBuild
- type ComponentBuildStatus
- type ComponentConfigConnection
- func (c *ComponentConfigConnection) AfterQuery(tx *gorm.DB) error
- func (c *ComponentConfigConnection) BeforeCreate(tx *gorm.DB) error
- func (c *ComponentConfigConnection) GetBuildTimeout() *time.Duration
- func (c *ComponentConfigConnection) GetDeployTimeout() *time.Duration
- func (a *ComponentConfigConnection) Indexes(db *gorm.DB) []migrations.Index
- func (c *ComponentConfigConnection) UseView() bool
- func (c *ComponentConfigConnection) ViewVersion() string
- func (c *ComponentConfigConnection) Views(db *gorm.DB) []migrations.View
- type ComponentConfigDependency
- type ComponentDependency
- type ComponentRelease
- type ComponentReleaseStep
- type ComponentReleaseStrategy
- type ComponentStatus
- type ComponentType
- type CompositeStatus
- type ConnectedGithubVCSConfig
- type DeviceCode
- type DockerBuildComponentConfig
- type DriftedObject
- func (d *DriftedObject) AfterQuery(tx *gorm.DB) error
- func (d *DriftedObject) BeforeCreate(tx *gorm.DB) error
- func (d *DriftedObject) EventLoops() []bulk.EventLoop
- func (d *DriftedObject) Indexes(db *gorm.DB) []migrations.Index
- func (d *DriftedObject) UseView() bool
- func (d *DriftedObject) ViewVersion() string
- func (d *DriftedObject) Views(db *gorm.DB) []migrations.View
- type EndpointAudit
- type Event
- type ExternalImageComponentConfig
- type GCPAccount
- type GCPStackOutputs
- func (a *GCPStackOutputs) BreakGlassRoleID(name string) (string, error)
- func (a *GCPStackOutputs) BreakGlassRoles() (map[string]string, error)
- func (a *GCPStackOutputs) CustomRoleID(name string) (string, error)
- func (a *GCPStackOutputs) CustomRoles() (map[string]string, error)
- func (a *GCPStackOutputs) DeprovisionRoleID() (string, error)
- func (a *GCPStackOutputs) InstallInputValues() (map[string]string, error)
- func (a *GCPStackOutputs) MaintenanceRoleID() (string, error)
- func (a *GCPStackOutputs) ProvisionRoleID() (string, error)
- type HelmChart
- type HelmComponentConfig
- type HelmConfig
- type HelmRelease
- type HelmRepoConfig
- type IdentityProvider
- func (a *IdentityProvider) BeforeCreate(tx *gorm.DB) error
- func (ip *IdentityProvider) GetGitHubConfig() (*providers.GitHubConfig, error)
- func (ip *IdentityProvider) GetGoogleConfig() (*providers.GoogleConfig, error)
- func (ip *IdentityProvider) GetOpenIDConfig() (*providers.OpenIDConfig, error)
- func (a *IdentityProvider) Indexes(db *gorm.DB) []migrations.Index
- func (ip *IdentityProvider) SetGitHubConfig(cfg *providers.GitHubConfig) error
- func (ip *IdentityProvider) SetGoogleConfig(cfg *providers.GoogleConfig) error
- func (ip *IdentityProvider) SetOpenIDConfig(cfg *providers.OpenIDConfig) error
- func (ip *IdentityProvider) ValidateConfig() error
- type Install
- func (i *Install) AfterQuery(tx *gorm.DB) error
- func (i *Install) BeforeCreate(tx *gorm.DB) error
- func (i *Install) EventLoops() []bulk.EventLoop
- func (i *Install) Indexes(db *gorm.DB) []migrations.Index
- func (i *Install) UseView() bool
- func (i *Install) ViewVersion() string
- func (i *Install) Views(db *gorm.DB) []migrations.View
- type InstallActionWorkflow
- type InstallActionWorkflowManualTrigger
- type InstallActionWorkflowRun
- type InstallActionWorkflowRunStatus
- type InstallActionWorkflowRunStep
- type InstallActionWorkflowRunStepStatus
- type InstallApprovalOption
- type InstallAuditLog
- func (*InstallAuditLog) CurrentViewVersion() int
- func (m InstallAuditLog) GetTableOptions() (string, bool)
- func (r InstallAuditLog) MigrateDB(db *gorm.DB) *gorm.DB
- func (*InstallAuditLog) UseView() bool
- func (i *InstallAuditLog) ViewVersion() string
- func (i *InstallAuditLog) Views(db *gorm.DB) []migrations.View
- type InstallComponent
- type InstallComponentStatus
- type InstallComponentSummary
- type InstallConfig
- type InstallDeploy
- type InstallDeployStatus
- type InstallDeployType
- type InstallEvent
- type InstallInputs
- type InstallIntermediateData
- type InstallSandbox
- type InstallSandboxRun
- type InstallSandboxStatus
- type InstallStack
- type InstallStackOutputs
- type InstallStackVersion
- type InstallStackVersionRun
- type InstallState
- type Installer
- type InstallerApp
- type InstallerMetadata
- type InstallerType
- type JSONMap
- type JobComponentConfig
- type KubernetesManifestComponentConfig
- type KustomizeConfig
- type LatestRunnerHeartBeat
- type LogStream
- type NotificationsConfig
- type OCIArtifact
- type Onboarding
- type OnboardingAppType
- type OnboardingInstallMode
- type OnboardingStatus
- type OnboardingStep
- type OnboardingStepStatus
- type OperationStatus
- type OperationType
- type Org
- type OrgFeature
- type OrgFeatureInfo
- type OrgInvite
- type OrgInviteStatus
- type OrgStatus
- type OrgType
- type OtelLogRecord
- type OtelMetricExponentialHistogram
- type OtelMetricExponentialHistogramExemplar
- type OtelMetricExponentialHistogramIngestion
- type OtelMetricGauge
- type OtelMetricGaugeExemplar
- type OtelMetricGaugeIngestion
- type OtelMetricHistogram
- type OtelMetricHistogramExemplar
- type OtelMetricHistogramIngestion
- type OtelMetricSum
- type OtelMetricSumExemplar
- type OtelMetricSumIngestion
- type OtelMetricSummary
- type OtelMetricSummaryExemplar
- type OtelMetricSummaryIngestion
- type OtelTrace
- type OtelTraceEvent
- type OtelTraceIngestion
- type OtelTraceLink
- type PSQLTableSize
- type Policy
- type PolicyInputRef
- type PolicyName
- type PolicyReport
- type PolicyReportOwnerType
- type PolicyResult
- type PolicyViolation
- type ProviderType
- type PublicGitVCSConfig
- type Queue
- type QueueEmitter
- type QueueEmitterMode
- type QueueSignal
- type ReleaseStatus
- type Role
- type RoleType
- type Runner
- type RunnerGroup
- type RunnerGroupSettings
- type RunnerGroupType
- type RunnerHealthCheck
- func (r *RunnerHealthCheck) AfterQuery(tx *gorm.DB) error
- func (r *RunnerHealthCheck) BeforeCreate(tx *gorm.DB) error
- func (r RunnerHealthCheck) GetTableClusterOptions() string
- func (r RunnerHealthCheck) GetTableOptions() string
- func (*RunnerHealthCheck) UseView() bool
- func (*RunnerHealthCheck) ViewVersion() string
- func (i *RunnerHealthCheck) Views(db *gorm.DB) []migrations.View
- type RunnerHeartBeat
- type RunnerJob
- type RunnerJobExecution
- type RunnerJobExecutionOutputs
- type RunnerJobExecutionResult
- func (r *RunnerJobExecutionResult) BeforeCreate(tx *gorm.DB) error
- func (r *RunnerJobExecutionResult) GetContentsB64String() (string, error)
- func (r *RunnerJobExecutionResult) GetContentsDecompressedBytes() ([]byte, error)
- func (r *RunnerJobExecutionResult) GetContentsDisplayDecompressedBytes() ([]byte, error)
- func (r *RunnerJobExecutionResult) GetContentsDisplayString() (string, error)
- func (r *RunnerJobExecutionResult) Indexes(db *gorm.DB) []migrations.Index
- type RunnerJobExecutionStatus
- type RunnerJobGroup
- type RunnerJobOperationType
- type RunnerJobPlan
- type RunnerJobStatus
- type RunnerJobType
- type RunnerOperation
- type RunnerOperationStatus
- type RunnerOperationType
- type RunnerProcess
- type RunnerStatus
- type SandboxRunStatus
- type SandboxRunType
- type Signal
- type StackOutput
- type StackType
- type Status
- type StepErrorBehavior
- type TemporalPayload
- type TerraformLock
- type TerraformModuleComponentConfig
- type TerraformStateData
- type TerraformStateInstance
- type TerraformStateResource
- type TerraformWorkspace
- type TerraformWorkspaceLock
- type TerraformWorkspaceState
- func (t *TerraformWorkspaceState) BeforeCreate(tx *gorm.DB) (err error)
- func (t *TerraformWorkspaceState) Indexes(db *gorm.DB) []migrations.Index
- func (i *TerraformWorkspaceState) UseView() bool
- func (i *TerraformWorkspaceState) ViewVersion() string
- func (i *TerraformWorkspaceState) Views(db *gorm.DB) []migrations.View
- type TerraformWorkspaceStateJSON
- type Token
- type TokenType
- type UserJourney
- type UserJourneyStep
- type UserJourneys
- type VCSCommitOwnerType
- type VCSConnection
- type VCSConnectionCommit
- type VCSConnectionType
- type Waitlist
- type Workflow
- type WorkflowMetadataKey
- type WorkflowStep
- type WorkflowStepApproval
- func (c *WorkflowStepApproval) AfterQuery(tx *gorm.DB) error
- func (c *WorkflowStepApproval) BeforeCreate(tx *gorm.DB) error
- func (c *WorkflowStepApproval) Indexes(db *gorm.DB) []migrations.Index
- func (c *WorkflowStepApproval) TableName() string
- func (c *WorkflowStepApproval) Views(db *gorm.DB) []migrations.View
- type WorkflowStepApprovalResponse
- type WorkflowStepApprovalType
- type WorkflowStepExecutionType
- type WorkflowStepPolicyValidation
- type WorkflowStepResponseType
- type WorkflowStepTargetType
- type WorkflowType
Constants ¶
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 )
const ( WorkflowMetadataKeyWorkflowNameSuffix = "workflow-name-suffix" WorkflowMetadataKeyRole = "role" )
const (
DefaultAWSInstanceType = "t3a.medium"
)
const (
HeaderInstallWorkflowID = "X-Nuon-Install-Workflow-ID"
)
Variables ¶
var ( CommonRunnerGroupSettingsGroups = [...]string{"operations", "sync"} DefaultOrgRunnerGroupSettingsGroups = [...]string{"build", "sandbox", "runner"} DefaultInstallRunnerGroupSettingsGroups = [...]string{"deploys", "action", "sandbox"} )
TODO(fd): use the consts
var AllActionWorkflowComponentTriggerTypes = []ActionWorkflowTriggerType{ ActionWorkflowTriggerTypePreDeployComponent, ActionWorkflowTriggerTypePostDeployComponent, ActionWorkflowTriggerTypePreTeardownComponent, ActionWorkflowTriggerTypePostTeardownComponent, }
These component types require a component to be passed with them
var AllActionWorkflowTriggerTypes = []ActionWorkflowTriggerType{ ActionWorkflowTriggerTypeManual, ActionWorkflowTriggerTypeCron, ActionWorkflowTriggerTypeAdHoc, ActionWorkflowTriggerTypePreDeployComponent, ActionWorkflowTriggerTypePostDeployComponent, ActionWorkflowTriggerTypePreTeardownComponent, ActionWorkflowTriggerTypePostTeardownComponent, ActionWorkflowTriggerTypePreProvision, ActionWorkflowTriggerTypePostProvision, ActionWorkflowTriggerTypePreReprovision, ActionWorkflowTriggerTypePostReprovision, ActionWorkflowTriggerTypePreDeprovision, ActionWorkflowTriggerTypePostDeprovision, ActionWorkflowTriggerTypePreDeployAllComponents, ActionWorkflowTriggerTypePostDeployAllComponents, ActionWorkflowTriggerTypePreTeardownAllComponents, ActionWorkflowTriggerTypePostTeardownAllComponents, ActionWorkflowTriggerTypePreDeprovisionSandbox, ActionWorkflowTriggerTypePostDeprovisionSandbox, ActionWorkflowTriggerTypePreReprovisionSandbox, ActionWorkflowTriggerTypePostReprovisionSandbox, ActionWorkflowTriggerTypePreUpdateInputs, ActionWorkflowTriggerTypePostUpdateInputs, }
All component types
var AllPolicyTypes = config.AllAppPolicyTypes
var ValidOperations = []OperationType{ OperationProvision, OperationDeprovision, OperationReprovision, OperationDeploy, OperationTeardown, OperationTrigger, }
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 various app operations the vendor AWSIAMRoleTypeCustom AWSIAMRoleType = "custom" // 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 */
CustomRoleARNs map[string]string `json:"custom_role_arns,omitzero" mapstructure:"custom_role_arns" temporaljson:"custom_role_arns,omitzero,omitempty"`
InstallInputs map[string]string `json:"install_inputs,omitzero" mapstructure:"install_inputs" temporaljson:"install_inputs,omitzero,omitempty"`
}
func (*AWSStackOutputs) BreakGlassRoleID ¶ added in v0.19.850
func (a *AWSStackOutputs) BreakGlassRoleID(name string) (string, error)
func (*AWSStackOutputs) BreakGlassRoles ¶ added in v0.19.850
func (a *AWSStackOutputs) BreakGlassRoles() (map[string]string, error)
func (*AWSStackOutputs) CustomRoleID ¶ added in v0.19.850
func (a *AWSStackOutputs) CustomRoleID(name string) (string, error)
func (*AWSStackOutputs) CustomRoles ¶ added in v0.19.850
func (a *AWSStackOutputs) CustomRoles() (map[string]string, error)
func (*AWSStackOutputs) DeprovisionRoleID ¶ added in v0.19.850
func (a *AWSStackOutputs) DeprovisionRoleID() (string, error)
func (*AWSStackOutputs) InstallInputValues ¶ added in v0.19.850
func (a *AWSStackOutputs) InstallInputValues() (map[string]string, error)
func (*AWSStackOutputs) MaintenanceRoleID ¶ added in v0.19.850
func (a *AWSStackOutputs) MaintenanceRoleID() (string, error)
func (*AWSStackOutputs) ProvisionRoleID ¶ added in v0.19.850
func (a *AWSStackOutputs) ProvisionRoleID() (string, error)
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) 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 */
Role string `json:"role,omitzero" gorm:"default:null" temporaljson:"role,omitzero,omitempty"`
EnableKubeConfig sql.NullBool `json:"enable_kube_config" gorm:"default:true" temporaljson:"enable_kube_config"`
}
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 (a *ActionWorkflowConfig) HasTrigger(typ ActionWorkflowTriggerType) bool
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 ¶
func (a *ActionWorkflowTriggerConfig) Indexes(db *gorm.DB) []migrations.Index
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" // NEW: For ad-hoc one-off actions without permanent workflow definitions ActionWorkflowTriggerTypeAdHoc ActionWorkflowTriggerType = "adhoc" // 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 AdHocStepConfig ¶ added in v0.19.784
type AdHocStepConfig ActionWorkflowStepConfig
func (*AdHocStepConfig) Scan ¶ added in v0.19.784
func (a *AdHocStepConfig) Scan(value interface{}) error
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"`
QueueID *string `json:"queue_id,omitzero"`
Queue Queue `json:"-"`
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"`
AppBranches []AppBranch `json:"-" swaggerignore:"true" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"app_branches,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"`
// Transient field for config count (not persisted to database)
ConfigCount int `json:"config_count,omitempty" gorm:"-"`
ConfigRepo string `json:"config_repo,omitzero" temporaljson:"config_repo,omitzero,omitempty"`
ConfigDirectory string `json:"config_directory,omitzero" temporaljson:"config_directory,omitzero,omitempty"`
}
func (*App) EventLoops ¶
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 */
GCPPermissions []string `` /* 128-byte string literal not displayed */
GCPPredefinedRole string `json:"gcp_predefined_role,omitzero" gorm:"default:''" temporaljson:"gcp_predefined_role,omitzero,omitempty"`
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"`
CloudPlatform string `json:"cloud_platform,omitzero" gorm:"default:'aws'" temporaljson:"cloud_platform,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"`
Queue Queue `json:"queue,omitzero" gorm:"polymorphic:Owner;" temporaljson:"queue,omitzero,omitempty"`
Configs []AppBranchConfig `json:"configs,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"configs,omitzero,omitempty"`
Workflows []Workflow `json:"workflows,omitzero" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"workflows,omitzero,omitempty"`
}
func (*AppBranch) EventLoops ¶ added in v0.19.850
type AppBranchConfig ¶ added in v0.19.850
type AppBranchConfig 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"`
AppBranchID string `json:"app_branch_id,omitzero" gorm:"not null;index:idx_app_branch_configs" temporaljson:"app_branch_id,omitzero,omitempty"`
AppBranch AppBranch `faker:"-" json:"-" temporaljson:"app_branch,omitzero,omitempty"`
PublicGitVCSConfig *PublicGitVCSConfig `` /* 167-byte string literal not displayed */
ConnectedGithubVCSConfig *ConnectedGithubVCSConfig `` /* 179-byte string literal not displayed */
InstallGroups []AppBranchInstallGroup `json:"install_groups,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"install_groups,omitzero,omitempty"`
ComponentIDs pq.StringArray `gorm:"type:text[]" json:"component_ids,omitzero" temporaljson:"component_ids,omitzero,omitempty" swaggertype:"array,string"`
ActionIDs pq.StringArray `gorm:"type:text[]" json:"action_ids,omitzero" temporaljson:"action_ids,omitzero,omitempty" swaggertype:"array,string"`
Workflows []Workflow `json:"workflows,omitzero" gorm:"polymorphic:Owner;constraint:OnDelete:CASCADE;" temporaljson:"workflows,omitzero,omitempty"`
// generated view field
ConfigNumber int `json:"config_number,omitzero" gorm:"->;-:migration" temporaljson:"config_number,omitzero,omitempty"`
}
func (*AppBranchConfig) BeforeCreate ¶ added in v0.19.850
func (a *AppBranchConfig) BeforeCreate(tx *gorm.DB) error
func (*AppBranchConfig) Indexes ¶ added in v0.19.850
func (a *AppBranchConfig) Indexes(db *gorm.DB) []migrations.Index
func (*AppBranchConfig) UseView ¶ added in v0.19.850
func (a *AppBranchConfig) UseView() bool
func (*AppBranchConfig) ViewVersion ¶ added in v0.19.850
func (a *AppBranchConfig) ViewVersion() string
func (*AppBranchConfig) Views ¶ added in v0.19.850
func (a *AppBranchConfig) Views(db *gorm.DB) []migrations.View
type AppBranchInstallGroup ¶ added in v0.19.850
type AppBranchInstallGroup 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"`
AppBranchConfigID string `` /* 154-byte string literal not displayed */
AppBranchConfig AppBranchConfig `faker:"-" json:"-" temporaljson:"app_branch_config,omitzero,omitempty"`
Name string `json:"name,omitzero" gorm:"not null" temporaljson:"name,omitzero,omitempty"`
Order int `json:"order,omitzero" gorm:"not null;uniqueIndex:idx_app_branch_install_group_order" temporaljson:"order,omitzero,omitempty"`
InstallIDs pq.StringArray `gorm:"type:text[]" json:"install_ids,omitzero" temporaljson:"install_ids,omitzero,omitempty" swaggertype:"array,string"`
RequiresApproval bool `json:"requires_approval,omitzero" gorm:"default:false" temporaljson:"requires_approval,omitzero,omitempty"`
RollbackOnFailure bool `json:"rollback_on_failure,omitzero" gorm:"default:true" temporaljson:"rollback_on_failure,omitzero,omitempty"`
MaxParallel int `json:"max_parallel,omitzero" gorm:"default:5" temporaljson:"max_parallel,omitzero,omitempty"`
}
func (*AppBranchInstallGroup) BeforeCreate ¶ added in v0.19.850
func (a *AppBranchInstallGroup) BeforeCreate(tx *gorm.DB) error
func (*AppBranchInstallGroup) Indexes ¶ added in v0.19.850
func (a *AppBranchInstallGroup) Indexes(db *gorm.DB) []migrations.Index
type AppBranchRun ¶ added in v0.19.850
type AppBranchRun 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,omitempty" 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"`
AppBranchID string `json:"app_branch_id,omitzero" gorm:"notnull" swaggerignore:"true" temporaljson:"app_branch_id,omitzero,omitempty"`
AppBranch AppBranch `json:"app_branch,omitempty" temporaljson:"app_branch,omitzero,omitempty"`
AppBranchConfigID string `` /* 127-byte string literal not displayed */
AppBranchConfig AppBranchConfig `json:"app_branch_config,omitempty" temporaljson:"app_branch_config,omitzero,omitempty"`
WorkflowID *string `json:"workflow_id,omitempty" swaggerignore:"true" temporaljson:"workflow_id,omitzero,omitempty"`
Workflow *Workflow `json:"workflow,omitempty" temporaljson:"workflow,omitzero,omitempty"`
// Status tracks the current state of the run
// Values: pending, running, success, failed, cancelled
Status string `json:"status,omitzero" gorm:"notnull;default:'pending'" temporaljson:"status,omitzero,omitempty"`
// Force indicates if this run was forced (bypassing change detection)
Force bool `json:"force,omitzero" temporaljson:"force,omitzero,omitempty"`
// StartedAt tracks when execution actually began
StartedAt *time.Time `json:"started_at,omitempty" temporaljson:"started_at,omitzero,omitempty"`
// CompletedAt tracks when execution finished
CompletedAt *time.Time `json:"completed_at,omitempty" temporaljson:"completed_at,omitzero,omitempty"`
// ErrorMessage stores any error that occurred during execution
ErrorMessage string `json:"error_message,omitempty" temporaljson:"error_message,omitzero,omitempty"`
// AppConfigID is the app config that was created/synced during this run
AppConfigID string `json:"app_config_id,omitempty" temporaljson:"app_config_id,omitzero,omitempty"`
// LogStreamID is the log stream created during this run for event tracking
LogStreamID *string `json:"log_stream_id,omitempty" temporaljson:"log_stream_id,omitzero,omitempty"`
LogStream *LogStream `json:"log_stream,omitempty" temporaljson:"log_stream,omitzero,omitempty"`
// CommitSHA is the VCS commit that triggered or is associated with this run
// DEPRECATED: Use VCSConnectionCommit relationship instead
CommitSHA string `json:"commit_sha,omitzero" temporaljson:"commit_sha,omitzero,omitempty"`
// VCSConnectionCommit is the full commit record associated with this run
VCSConnectionCommitID *string `json:"vcs_connection_commit_id,omitempty" swaggerignore:"true" temporaljson:"vcs_connection_commit_id,omitzero,omitempty"`
VCSConnectionCommit *VCSConnectionCommit `json:"vcs_connection_commit,omitempty" temporaljson:"vcs_connection_commit,omitzero,omitempty"`
// QueueSignal is the signal that was enqueued to trigger this run
QueueSignal *QueueSignal `json:"queue_signal,omitempty" gorm:"polymorphic:Owner;" temporaljson:"queue_signal,omitzero,omitempty"`
}
AppBranchRun represents a single execution of an app branch workflow. Each run is triggered manually or automatically and processes the branch's configuration through the install groups.
func (*AppBranchRun) BeforeCreate ¶ added in v0.19.850
func (a *AppBranchRun) BeforeCreate(tx *gorm.DB) error
func (*AppBranchRun) Indexes ¶ added in v0.19.850
func (a *AppBranchRun) 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"`
ActionIDs pq.StringArray `gorm:"type:text[]" json:"action_ids,omitzero" temporaljson:"action_ids,omitzero,omitempty" swaggertype:"array,string"`
IntermediateConfig *blobstore.Blob `json:"intermediate_config" temporaljson:"intermediate_config"`
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 */
OperationRoleConfig AppOperationRoleConfig `` /* 139-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) ViewVersion ¶
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"`
// Deprecated: this field was never enforced and has no effect.
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 */
}
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 AppOperationRoleConfig ¶ added in v0.19.807
type AppOperationRoleConfig 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:"-" 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"`
Rules []*AppOperationRoleRule `json:"rules,omitempty" gorm:"foreignKey:AppOperationRoleConfigID"`
}
AppOperationRoleConfig stores operation role configuration for an app
func (*AppOperationRoleConfig) BeforeCreate ¶ added in v0.19.807
func (a *AppOperationRoleConfig) BeforeCreate(tx *gorm.DB) error
func (*AppOperationRoleConfig) Indexes ¶ added in v0.19.807
func (a *AppOperationRoleConfig) Indexes(db *gorm.DB) []migrations.Index
type AppOperationRoleRule ¶ added in v0.19.807
type AppOperationRoleRule 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:"org" gorm:"-" temporaljson:"org,omitzero,omitempty"`
AppOperationRoleConfigID string `json:"app_operation_role_config_id" gorm:"app_operation_role_config_id"`
AppOperationRoleConfig AppOperationRoleConfig `json:"-" gorm:"-"`
PrincipalType principal.Type `json:"principal_type" gorm:"column:principal_type;not null;index" swaggertype:"string"`
PrincipalName string `json:"principal_name" gorm:"column:principal_name;index"`
Operation OperationType `json:"operation" gorm:"column:operation;not null;index" swaggertype:"string"`
Role string `json:"role" gorm:"column:role;not null"`
}
AppOperationRoleRule represents a single rule mapping principal + operation -> role
func (*AppOperationRoleRule) BeforeCreate ¶ added in v0.19.807
func (o *AppOperationRoleRule) BeforeCreate(tx *gorm.DB) error
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"`
CustomRoles []AppAWSIAMRoleConfig `json:"custom_aws_iam_roles,omitzero" gorm:"-" temporaljson:"custom_aws_iam_roles,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"`
Name string `json:"name,omitzero" temporaljson:"name,omitzero,omitempty"`
Description string `json:"description,omitzero" temporaljson:"description,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" AppRunnerTypeGCP AppRunnerType = "gcp" )
func (AppRunnerType) JobType ¶
func (a AppRunnerType) JobType() RunnerJobType
type AppSandboxBuild ¶ added in v0.19.850
type AppSandboxBuild 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"`
AppID string `json:"app_id,omitzero" gorm:"notnull" temporaljson:"app_id,omitzero,omitempty"`
App App `json:"-" temporaljson:"app,omitzero,omitempty"`
AppConfigID string `json:"app_config_id,omitzero" gorm:"notnull" temporaljson:"app_config_id,omitzero,omitempty"`
AppConfig AppConfig `json:"-" temporaljson:"app_config,omitzero,omitempty"`
AppSandboxConfigID string `json:"app_sandbox_config_id,omitzero" gorm:"notnull" temporaljson:"app_sandbox_config_id,omitzero,omitempty"`
AppSandboxConfig AppSandboxConfig `json:"-" temporaljson:"app_sandbox_config,omitzero,omitempty"`
VCSConnectionCommitID *string `json:"vcs_connection_commit_id,omitempty" temporaljson:"vcs_connection_commit_id,omitzero,omitempty"`
VCSConnectionCommit *VCSConnectionCommit `json:"vcs_connection_commit,omitzero" temporaljson:"vcs_connection_commit,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"`
Status AppSandboxBuildStatus `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"`
}
AppSandboxBuild represents a build run against an app's sandbox terraform config. It is triggered by the app branches workflow and runs terraform plan against the sandbox config.
func (*AppSandboxBuild) AfterQuery ¶ added in v0.19.850
func (a *AppSandboxBuild) AfterQuery(tx *gorm.DB) error
func (*AppSandboxBuild) BeforeCreate ¶ added in v0.19.850
func (a *AppSandboxBuild) BeforeCreate(tx *gorm.DB) error
func (*AppSandboxBuild) Indexes ¶ added in v0.19.850
func (a *AppSandboxBuild) Indexes(db *gorm.DB) []migrations.Index
type AppSandboxBuildStatus ¶ added in v0.19.850
type AppSandboxBuildStatus string
const ( AppSandboxBuildStatusQueued AppSandboxBuildStatus = "queued" AppSandboxBuildStatusPlanning AppSandboxBuildStatus = "planning" AppSandboxBuildStatusBuilding AppSandboxBuildStatus = "building" AppSandboxBuildStatusActive AppSandboxBuildStatus = "active" AppSandboxBuildStatusError AppSandboxBuildStatus = "error" )
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"`
// Operation roles map: operation type -> role name
OperationRoles pgtype.Hstore `` /* 128-byte string literal not displayed */
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"`
}
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"`
CustomNestedStacks []config.CustomNestedStack `` /* 138-byte string literal not displayed */
}
func (*AppStackConfig) BeforeCreate ¶
func (a *AppStackConfig) BeforeCreate(tx *gorm.DB) error
func (*AppStackConfig) Indexes ¶
func (a *AppStackConfig) Indexes(db *gorm.DB) []migrations.Index
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"`
}
func (*AzureStackOutputs) BreakGlassRoleID ¶ added in v0.19.850
func (a *AzureStackOutputs) BreakGlassRoleID(_ string) (string, error)
func (*AzureStackOutputs) BreakGlassRoles ¶ added in v0.19.850
func (a *AzureStackOutputs) BreakGlassRoles() (map[string]string, error)
func (*AzureStackOutputs) CustomRoleID ¶ added in v0.19.850
func (a *AzureStackOutputs) CustomRoleID(_ string) (string, error)
func (*AzureStackOutputs) CustomRoles ¶ added in v0.19.850
func (a *AzureStackOutputs) CustomRoles() (map[string]string, error)
func (*AzureStackOutputs) DeprovisionRoleID ¶ added in v0.19.850
func (a *AzureStackOutputs) DeprovisionRoleID() (string, error)
func (*AzureStackOutputs) InstallInputValues ¶ added in v0.19.850
func (a *AzureStackOutputs) InstallInputValues() (map[string]string, error)
func (*AzureStackOutputs) MaintenanceRoleID ¶ added in v0.19.850
func (a *AzureStackOutputs) MaintenanceRoleID() (string, error)
func (*AzureStackOutputs) ProvisionRoleID ¶ added in v0.19.850
func (a *AzureStackOutputs) ProvisionRoleID() (string, error)
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" CloudPlatformGCP CloudPlatform = "gcp" 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) 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"`
PolicyReports []PolicyReport `` /* 138-byte string literal not displayed */
// 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"`
// QueueSignal is the signal enqueued when this build was created via the queue path
QueueSignal *QueueSignal `json:"queue_signal,omitempty" gorm:"polymorphic:Owner;" temporaljson:"queue_signal,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"`
AppConfig AppConfig `json:"-" temporaljson:"app_config,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.
// Operation roles map: operation type -> role name
OperationRoles pgtype.Hstore `` /* 128-byte string literal not displayed */
// 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 ¶
func (c *ComponentConfigConnection) Views(db *gorm.DB) []migrations.View
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 (CompositeStatus) GormDataType ¶
func (CompositeStatus) GormDataType() string
func (*CompositeStatus) Scan ¶
func (c *CompositeStatus) Scan(v interface{}) (err error)
Scan implements the database/sql.Scanner 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"`
PathFilter string `json:"path_filter,omitzero" temporaljson:"path_filter,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 ¶
func (c *DockerBuildComponentConfig) Indexes(db *gorm.DB) []migrations.Index
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"`
}
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 ¶
func (e *ExternalImageComponentConfig) Indexes(db *gorm.DB) []migrations.Index
type GCPAccount ¶ added in v0.19.850
type GCPAccount 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 `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"`
ProjectID string `json:"project_id,omitzero" gorm:"notnull" temporaljson:"project_id,omitzero,omitempty"`
Region string `json:"region,omitzero" gorm:"notnull" temporaljson:"region,omitzero,omitempty"`
}
func (*GCPAccount) BeforeCreate ¶ added in v0.19.850
func (a *GCPAccount) BeforeCreate(tx *gorm.DB) error
func (*GCPAccount) Indexes ¶ added in v0.19.850
func (a *GCPAccount) Indexes(db *gorm.DB) []migrations.Index
type GCPStackOutputs ¶ added in v0.19.850
type GCPStackOutputs struct {
ProjectID string `json:"project_id,omitzero" mapstructure:"project_id" temporaljson:"project_id,omitzero,omitempty"`
Region string `json:"region,omitzero" mapstructure:"region" temporaljson:"region,omitzero,omitempty"`
NetworkName string `json:"network_name,omitzero" mapstructure:"network_name" temporaljson:"network_name,omitzero,omitempty"`
NetworkID string `json:"network_id,omitzero" mapstructure:"network_id" temporaljson:"network_id,omitzero,omitempty"`
PublicSubnetName string `json:"public_subnet_name,omitzero" mapstructure:"public_subnet_name" temporaljson:"public_subnet_name,omitzero,omitempty"`
PrivateSubnetName string `json:"private_subnet_name,omitzero" mapstructure:"private_subnet_name" temporaljson:"private_subnet_name,omitzero,omitempty"`
RunnerSubnetName string `json:"runner_subnet_name,omitzero" mapstructure:"runner_subnet_name" temporaljson:"runner_subnet_name,omitzero,omitempty"`
RunnerServiceAccountEmail string `` /* 151-byte string literal not displayed */
ProvisionSAEmail string `json:"provision_sa_email,omitzero" mapstructure:"provision_sa_email" temporaljson:"provision_sa_email,omitzero,omitempty"`
MaintenanceSAEmail string `` /* 127-byte string literal not displayed */
DeprovisionSAEmail string `` /* 127-byte string literal not displayed */
BreakGlassSAEmails map[string]string `` /* 130-byte string literal not displayed */
CustomSAEmails map[string]string `json:"custom_sa_emails,omitzero" mapstructure:"custom_sa_emails" temporaljson:"custom_sa_emails,omitzero,omitempty"`
InstallInputs map[string]string `json:"install_inputs,omitzero" mapstructure:"install_inputs" temporaljson:"install_inputs,omitzero,omitempty"`
}
func (*GCPStackOutputs) BreakGlassRoleID ¶ added in v0.19.850
func (a *GCPStackOutputs) BreakGlassRoleID(name string) (string, error)
func (*GCPStackOutputs) BreakGlassRoles ¶ added in v0.19.850
func (a *GCPStackOutputs) BreakGlassRoles() (map[string]string, error)
func (*GCPStackOutputs) CustomRoleID ¶ added in v0.19.850
func (a *GCPStackOutputs) CustomRoleID(name string) (string, error)
func (*GCPStackOutputs) CustomRoles ¶ added in v0.19.850
func (a *GCPStackOutputs) CustomRoles() (map[string]string, error)
func (*GCPStackOutputs) DeprovisionRoleID ¶ added in v0.19.850
func (a *GCPStackOutputs) DeprovisionRoleID() (string, error)
func (*GCPStackOutputs) InstallInputValues ¶ added in v0.19.850
func (a *GCPStackOutputs) InstallInputValues() (map[string]string, error)
func (*GCPStackOutputs) MaintenanceRoleID ¶ added in v0.19.850
func (a *GCPStackOutputs) MaintenanceRoleID() (string, error)
func (*GCPStackOutputs) ProvisionRoleID ¶ added in v0.19.850
func (a *GCPStackOutputs) ProvisionRoleID() (string, error)
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;"`
}
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.
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 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"`
GCPAccount *GCPAccount `json:"gcp_account,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"gcp_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 ¶
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) EventLoops ¶
func (*Install) ViewVersion ¶
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 ¶
func (i *InstallActionWorkflowManualTrigger) Indexes(db *gorm.DB) []migrations.Index
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 generics.NullString `` /* 178-byte string literal not displayed */
InstallActionWorkflow InstallActionWorkflow `json:"install_action_workflow,omitzero" temporaljson:"install_action_workflow,omitzero,omitempty"`
// Role to be used when running this action
Role string `json:"role,omitempty" gorm:"column:role"`
EnableKubeConfig sql.NullBool `json:"enable_kube_config" gorm:"default:true" temporaljson:"enable_kube_config"`
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 generics.NullString `json:"action_workflow_config_id,omitzero" swaggertype:"string" 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 ¶
func (i *InstallActionWorkflowRun) Views(db *gorm.DB) []migrations.View
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 generics.NullString `json:"step_id,omitzero" swaggertype:"string" temporaljson:"step_id,omitzero,omitempty"`
Step ActionWorkflowStepConfig `json:"-" temporaljson:"step,omitzero,omitempty"`
AdHocConfig *AdHocStepConfig `json:"adhoc_config,omitzero" gorm:"type:jsonb" temporaljson:"adhoc_config,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 ¶
func (i *InstallActionWorkflowRunStep) Indexes(db *gorm.DB) []migrations.Index
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) CurrentViewVersion ¶ added in v0.19.777
func (*InstallAuditLog) CurrentViewVersion() int
func (InstallAuditLog) GetTableOptions ¶
func (m InstallAuditLog) GetTableOptions() (string, bool)
func (*InstallAuditLog) UseView ¶
func (*InstallAuditLog) UseView() bool
func (*InstallAuditLog) ViewVersion ¶
func (i *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"`
PolicyReports []PolicyReport `` /* 137-byte string literal not displayed */
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"`
// Role to be used when running this component
Role string `json:"role,omitempty" gorm:"column:role"`
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"`
PolicyReports []PolicyReport `` /* 142-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"`
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"`
// Role to be used when planning and applying sandbox runs
Role string `json:"role,omitempty" gorm:"column:role"`
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"`
GCPStackOutputs *GCPStackOutputs `json:"gcp,omitzero" gorm:"-" temporaljson:"gcp_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) 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"`
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 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 (k *KubernetesManifestComponentConfig) Indexes(db *gorm.DB) []migrations.Index
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
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"`
}
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 Onboarding ¶ added in v0.19.850
type Onboarding struct {
ID string `gorm:"primarykey;check:id_checker,char_length(id)=26" json:"id,omitzero"`
CreatedByID string `json:"created_by_id,omitzero" gorm:"not null;default:null"`
CreatedBy Account `json:"-"`
CreatedAt time.Time `json:"created_at,omitzero" gorm:"notnull"`
UpdatedAt time.Time `json:"updated_at,omitzero" gorm:"notnull"`
DeletedAt soft_delete.DeletedAt `json:"-"`
AccountID string `json:"account_id,omitzero" gorm:"not null;index"`
Account Account `json:"-"`
Status OnboardingStatus `json:"status,omitzero" gorm:"notnull" swaggertype:"string"`
CurrentStep OnboardingStep `json:"current_step,omitzero" gorm:"notnull" swaggertype:"string"`
// Step 1: Organization
OrgID *string `json:"org_id,omitempty"`
Org *Org `json:"-"`
// Step 2: Your Stack
AppType OnboardingAppType `json:"app_type,omitempty" swaggertype:"string"`
ExampleAppSlug *string `json:"example_app_slug,omitempty"`
CloudProvider *string `json:"cloud_provider,omitempty"`
AppAttributes pq.StringArray `json:"app_attributes,omitempty" gorm:"type:text[];default '{}'" swaggertype:"array,string"`
AppID *string `json:"app_id,omitempty"`
App *App `json:"-"`
AppBranchID *string `json:"app_branch_id,omitempty"`
AppBranch *AppBranch `json:"-"`
// Step 3: Install
InstallMode OnboardingInstallMode `json:"install_mode,omitempty" swaggertype:"string"`
InstallID *string `json:"install_id,omitempty"`
Install *Install `json:"-"`
WorkflowID *string `json:"workflow_id,omitempty"`
// Async step status (for queue-based signal processing)
StepStatus OnboardingStepStatus `json:"step_status,omitempty" gorm:"default:''" swaggertype:"string"`
StepError *string `json:"step_error,omitempty"`
}
func (*Onboarding) BeforeCreate ¶ added in v0.19.850
func (o *Onboarding) BeforeCreate(tx *gorm.DB) error
type OnboardingAppType ¶ added in v0.19.850
type OnboardingAppType string
const ( OnboardingAppTypeCustom OnboardingAppType = "custom" OnboardingAppTypeExample OnboardingAppType = "example" )
type OnboardingInstallMode ¶ added in v0.19.850
type OnboardingInstallMode string
const ( OnboardingInstallModeCloud OnboardingInstallMode = "cloud" OnboardingInstallModeSandbox OnboardingInstallMode = "sandbox" )
type OnboardingStatus ¶ added in v0.19.850
type OnboardingStatus string
const ( OnboardingStatusActive OnboardingStatus = "active" OnboardingStatusCompleted OnboardingStatus = "completed" OnboardingStatusAbandoned OnboardingStatus = "abandoned" )
type OnboardingStep ¶ added in v0.19.850
type OnboardingStep string
const ( OnboardingStepOrganization OnboardingStep = "organization" OnboardingStepYourStack OnboardingStep = "your_stack" OnboardingStepInstall OnboardingStep = "install" OnboardingStepDeploy OnboardingStep = "deploy" OnboardingStepGetStarted OnboardingStep = "get_started" )
type OnboardingStepStatus ¶ added in v0.19.850
type OnboardingStepStatus string
const ( OnboardingStepStatusIdle OnboardingStepStatus = "" OnboardingStepStatusProcessing OnboardingStepStatus = "processing" OnboardingStepStatusError OnboardingStepStatus = "error" )
type OperationStatus ¶
type OperationStatus string
const ( OperationStatusStarted OperationStatus = "started" OperationStatusFinished OperationStatus = "finished" OperationStatusNoop OperationStatus = "noop" OperationStatusFailed OperationStatus = "failed" )
type OperationType ¶ added in v0.19.807
type OperationType string
const ( OperationProvision OperationType = "provision" OperationDeprovision OperationType = "deprovision" OperationDeploy OperationType = "deploy" OperationTeardown OperationType = "teardown" OperationReprovision OperationType = "reprovision" OperationTrigger OperationType = "trigger" )
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"`
Tags pq.StringArray `json:"tags,omitzero" gorm:"type:text[];default '{}'" swaggertype:"array,string" temporaljson:"tags,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:"-"`
// Transient fields for counts (not persisted to database)
AppCount int `json:"app_count,omitempty" gorm:"-"`
InstallCount int `json:"install_count,omitempty" gorm:"-"`
}
func (*Org) EventLoops ¶
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" OrgFeatureQueues OrgFeature = "queues" )
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 ¶
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"`
}
type OrgInviteStatus ¶
type OrgInviteStatus string
const ( OrgInviteStatusPending OrgInviteStatus = "pending" OrgInviteStatusAccepted OrgInviteStatus = "accepted" )
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 */
}
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 (m *OtelMetricExponentialHistogramIngestion) BeforeCreate(tx *gorm.DB) error
func (OtelMetricExponentialHistogramIngestion) TableName ¶
func (m OtelMetricExponentialHistogramIngestion) TableName() string
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 */
}
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) 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) GetTableClusterOptions ¶
func (OtelTrace) GetTableOptions ¶
type OtelTraceEvent ¶
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
type OtelTraceLink ¶
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) 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"`
}
type PolicyInputRef ¶ added in v0.19.771
type PolicyInputRef struct {
ID string `json:"id"`
Type string `json:"type"`
Name string `json:"name,omitempty"`
}
PolicyInputRef represents a reference to an input that was evaluated.
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 PolicyReport ¶ added in v0.19.771
type PolicyReport 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 `gorm:"foreignKey:CreatedByID;references:ID" 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 `gorm:"foreignKey:OrgID;references:ID" json:"-" faker:"-" temporaljson:"org,omitzero,omitempty"`
// Denormalized context for filtering
AppID string `json:"app_id,omitzero" gorm:"notnull" temporaljson:"app_id,omitzero,omitempty"`
InstallID *string `json:"install_id,omitzero" gorm:"default:null" temporaljson:"install_id,omitzero,omitempty"`
ComponentID *string `json:"component_id,omitzero" gorm:"default:null" temporaljson:"component_id,omitzero,omitempty"`
// Denormalized display names for human-readable reports
OrgName string `json:"org_name,omitzero" gorm:"default:null" temporaljson:"org_name,omitzero,omitempty"`
AppName string `json:"app_name,omitzero" gorm:"default:null" temporaljson:"app_name,omitzero,omitempty"`
InstallName *string `json:"install_name,omitzero" gorm:"default:null" temporaljson:"install_name,omitzero,omitempty"`
ComponentName *string `json:"component_name,omitzero" gorm:"default:null" temporaljson:"component_name,omitzero,omitempty"`
// Optional context references (indexes defined in Indexes())
WorkflowStepPolicyValidationID *string `json:"workflow_step_policy_validation_id,omitzero" temporaljson:"workflow_step_policy_validation_id,omitzero,omitempty"`
RunnerJobID *string `json:"runner_job_id,omitzero" temporaljson:"runner_job_id,omitzero,omitempty"`
// Polymorphic relationship to the impacted Nuon resource (indexes defined in Indexes())
OwnerID string `` /* 147-byte string literal not displayed */
OwnerType PolicyReportOwnerType `` /* 197-byte string literal not displayed */
// Canonical policy evaluation data
EvaluatedAt time.Time `json:"evaluated_at,omitzero" gorm:"notnull" temporaljson:"evaluated_at,omitzero,omitempty"`
Violations []PolicyViolation `json:"violations,omitzero" gorm:"type:jsonb;serializer:json;default:'[]'" temporaljson:"violations,omitzero,omitempty"`
PolicyIDs []string `json:"policy_ids,omitzero" gorm:"type:jsonb;serializer:json;default:'[]'" temporaljson:"policy_ids,omitzero,omitempty"`
Policies []PolicyResult `json:"policies,omitzero" gorm:"type:jsonb;serializer:json;default:'[]'" temporaljson:"policies,omitzero,omitempty"`
Inputs []PolicyInputRef `json:"inputs,omitzero" gorm:"type:jsonb;serializer:json;default:'[]'" temporaljson:"inputs,omitzero,omitempty"`
// Summary counts for list views
DenyCount int `json:"deny_count" gorm:"notnull;default:0" temporaljson:"deny_count,omitzero,omitempty"`
WarnCount int `json:"warn_count" gorm:"notnull;default:0" temporaljson:"warn_count,omitzero,omitempty"`
PassCount int `json:"pass_count" gorm:"notnull;default:0" temporaljson:"pass_count,omitzero,omitempty"`
Status CompositeStatus `json:"status,omitzero" gorm:"type:jsonb" temporaljson:"status,omitzero,omitempty"`
}
PolicyReport stores canonical policy evaluation results with format-agnostic storage.
func (*PolicyReport) BeforeCreate ¶ added in v0.19.771
func (r *PolicyReport) BeforeCreate(tx *gorm.DB) error
func (*PolicyReport) Indexes ¶ added in v0.19.771
func (r *PolicyReport) Indexes(db *gorm.DB) []migrations.Index
func (*PolicyReport) TableName ¶ added in v0.19.771
func (r *PolicyReport) TableName() string
type PolicyReportOwnerType ¶ added in v0.19.771
type PolicyReportOwnerType string
PolicyReportOwnerType represents the type of resource that was evaluated by policies.
const ( PolicyReportOwnerTypeInstallDeploy PolicyReportOwnerType = "install_deploys" PolicyReportOwnerTypeInstallSandboxRun PolicyReportOwnerType = "install_sandbox_runs" PolicyReportOwnerTypeComponentBuild PolicyReportOwnerType = "component_builds" )
type PolicyResult ¶ added in v0.19.771
type PolicyResult struct {
PolicyID string `json:"policy_id"`
PolicyName string `json:"policy_name,omitempty"`
Status string `json:"status"` // "deny", "warn", or "pass"
DenyCount int `json:"deny_count"`
WarnCount int `json:"warn_count"`
PassCount int `json:"pass_count"`
InputCount int `json:"input_count"`
}
PolicyResult represents the evaluation result for a single policy.
type PolicyViolation ¶ added in v0.19.771
type PolicyViolation struct {
PolicyID string `json:"policy_id" temporaljson:"policy_id,omitempty"`
PolicyName string `json:"policy_name,omitempty" temporaljson:"policy_name,omitempty"`
InputIndex int `json:"input_index" temporaljson:"input_index,omitempty"`
InputIdentity string `json:"input_identity,omitempty" temporaljson:"input_identity,omitempty"` // Human-readable input reference (e.g., "Deployment/default/nginx")
Message string `json:"message" temporaljson:"message,omitempty"`
Severity string `json:"severity" temporaljson:"severity,omitempty"` // "deny" or "warn"
}
PolicyViolation represents a single policy violation from evaluation.
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"`
PathFilter string `json:"path_filter,omitzero" temporaljson:"path_filter,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,omitempty" 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"`
Emitters []QueueEmitter `json:"emitters,omitzero" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"emitters,omitzero,omitempty"`
}
type QueueEmitter ¶ added in v0.19.850
type QueueEmitter 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" temporaljson:"org_id,omitzero,omitempty"`
Org Org `json:"-" temporaljson:"org,omitzero,omitempty"`
// Many-to-one: each emitter belongs to exactly one queue
QueueID string `` /* 126-byte string literal not displayed */
Queue Queue `json:"-" gorm:"constraint:OnDelete:CASCADE;" temporaljson:"queue,omitzero,omitempty"`
// Emitter identity
Name string `json:"name,omitzero" gorm:"type:text;not null" temporaljson:"name,omitzero,omitempty"`
Description string `json:"description,omitzero" gorm:"type:text" temporaljson:"description,omitzero,omitempty"`
// Emitter mode: "cron" for recurring, "scheduled" for one-shot
Mode QueueEmitterMode `json:"mode,omitzero" gorm:"type:text;not null;default:'cron'" temporaljson:"mode,omitzero,omitempty"`
// Schedule configuration
// For cron mode: cron expression (e.g., "0 * * * *")
CronSchedule string `json:"cron_schedule,omitzero" gorm:"type:text" temporaljson:"cron_schedule,omitzero,omitempty"`
// For scheduled mode: the time to fire the signal
ScheduledAt *time.Time `json:"scheduled_at,omitzero" temporaljson:"scheduled_at,omitzero,omitempty"`
// For scheduled mode: whether the signal has been fired
Fired bool `json:"fired,omitzero" gorm:"default:false" temporaljson:"fired,omitzero,omitempty"`
// Signal template - the signal to emit on each tick
SignalType signal.SignalType `json:"signal_type,omitzero" gorm:"type:text;not null" temporaljson:"signal_type,omitzero,omitempty"`
SignalTemplate signaldb.SignalData `json:"signal_template,omitzero" temporaljson:"-"`
// Runtime state using shared CompositeStatus
Status CompositeStatus `json:"status" temporaljson:"status,omitzero,omitempty"`
LastEmittedAt *time.Time `json:"last_emitted_at,omitzero" temporaljson:"last_emitted_at,omitzero,omitempty"`
NextEmitAt *time.Time `json:"next_emit_at,omitzero" temporaljson:"next_emit_at,omitzero,omitempty"`
EmitCount int64 `json:"emit_count,omitzero" gorm:"default:0" temporaljson:"emit_count,omitzero,omitempty"`
// Workflow reference for the emitter's cron workflow
Workflow signaldb.WorkflowRef `json:"workflow" temporaljson:"workflow,omitzero,omitempty"`
// Signals emitted by this emitter
Signals []QueueSignal `json:"-" gorm:"foreignKey:EmitterID" temporaljson:"signals,omitzero,omitempty"`
}
func (*QueueEmitter) BeforeCreate ¶ added in v0.19.850
func (r *QueueEmitter) BeforeCreate(tx *gorm.DB) error
func (*QueueEmitter) Indexes ¶ added in v0.19.850
func (r *QueueEmitter) Indexes(db *gorm.DB) []migrations.Index
type QueueEmitterMode ¶ added in v0.19.850
type QueueEmitterMode string
const ( // QueueEmitterModeCron emits signals on a recurring cron schedule QueueEmitterModeCron QueueEmitterMode = "cron" // QueueEmitterModeScheduled emits a signal once at a scheduled time, then stops QueueEmitterModeScheduled QueueEmitterMode = "scheduled" )
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,omitempty" temporaljson:"org_id,omitzero,omitempty"`
Org *Org `json:"-" temporaljson:"org,omitzero,omitempty"`
QueueID string `` /* 126-byte string literal not displayed */
Queue Queue `json:"queue"`
// Optional: if this signal was emitted by an emitter
EmitterID *string `json:"emitter_id,omitzero" gorm:"type:text;index:idx_queue_signal_emitter_id" temporaljson:"emitter_id,omitzero,omitempty"`
Emitter *QueueEmitter `json:"-" gorm:"constraint:OnDelete:SET NULL;" temporaljson:"emitter,omitzero,omitempty"`
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"`
}
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"`
}
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 `` // Deprecated: instance refresh is now handled by a backend cron, not ASG MaxInstanceLifetime.
/* 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:"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) ViewVersion ¶
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) GetContentsDecompressedBytes ¶ added in v0.19.783
func (r *RunnerJobExecutionResult) GetContentsDecompressedBytes() ([]byte, 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" RunnerJobTypeSandboxBuild RunnerJobType = "sandbox-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
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 ¶
type StackOutput ¶ added in v0.19.850
type StackOutput interface {
ProvisionRoleID() (string, error)
DeprovisionRoleID() (string, error)
MaintenanceRoleID() (string, error)
CustomRoleID(string) (string, error)
BreakGlassRoleID(string) (string, error)
// returns list of custom roles along with their identifier
CustomRoles() (map[string]string, error)
// returns list of break glass roles along with their identifier
BreakGlassRoles() (map[string]string, error)
// returns list of customer install inputs along with their values in the stack
InstallInputValues() (map[string]string, error)
}
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" StatusWarning Status = "warning" )
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" )
component build specific statuses
const (
AwaitingApproval Status = "approval-awaiting"
)
shared by WorkflowStep and Workflow
const (
InstallDeployStatusV2Noop Status = "noop"
)
func (Status) DefaultHumanDescription ¶
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)
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 ¶
func (c *TerraformModuleComponentConfig) Indexes(db *gorm.DB) []migrations.Index
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)
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 ¶
func (a *TerraformWorkspaceStateJSON) Indexes(db *gorm.DB) []migrations.Index
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"`
}
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.
type VCSCommitOwnerType ¶ added in v0.19.850
type VCSCommitOwnerType string
VCSCommitOwnerType represents the type of entity that owns a VCS commit. VCS commits use polymorphic ownership to reference either ConnectedGithubVCSConfig or PublicGitVCSConfig entities.
const ( // VCSCommitOwnerTypeConnectedGithubVCSConfig indicates the commit is owned by a ConnectedGithubVCSConfig // (authenticated GitHub repository via GitHub App installation) VCSCommitOwnerTypeConnectedGithubVCSConfig VCSCommitOwnerType = "connected_github_vcs_configs" // VCSCommitOwnerTypePublicGitVCSConfig indicates the commit is owned by a PublicGitVCSConfig // (public GitHub repository with no authentication) VCSCommitOwnerTypePublicGitVCSConfig VCSCommitOwnerType = "public_git_vcs_configs" )
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:SET NULL;" 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"`
// Polymorphic ownership - references VCS config that owns this commit
OwnerID string `json:"owner_id,omitzero" gorm:"type:text" temporaljson:"owner_id,omitzero,omitempty"`
OwnerType string `json:"owner_type,omitzero" gorm:"type:text;" temporaljson:"owner_type,omitzero,omitempty"`
// Optional VCS connection reference (nullable for public repos)
VCSConnection *VCSConnection `json:"-" temporaljson:"vcs_connection,omitzero,omitempty"`
VCSConnectionID *string `json:"vcs_connection_id,omitzero" gorm:"default:null" 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"`
}
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 `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"`
Role string `json:"role,omitzero,omitempty" temporaljson:"role" gorm:"column:role"`
// 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 */
AppBranchRuns []AppBranchRun `` /* 139-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.
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 (legacy)
Signal *Signal `json:"-" temporaljson:"signal,omitzero,omitempty"`
QueueSignal *signaldb.SignalData `json:"-" dnetemporaljson:"queue_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
func (*WorkflowStepApproval) Views ¶ added in v0.19.850
func (c *WorkflowStepApproval) Views(db *gorm.DB) []migrations.View
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 (c *WorkflowStepApprovalResponse) Indexes(db *gorm.DB) []migrations.Index
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 `gorm:"foreignKey:CreatedByID;references:ID" 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 `gorm:"foreignKey:OrgID;references:ID" 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 (deprecated: use Reports for detailed results)
Response string `json:"response,omitzero" gorm:"jsonb" temporaljson:"response,omitzero,omitempty"`
}
func (*WorkflowStepPolicyValidation) BeforeCreate ¶ added in v0.19.771
func (v *WorkflowStepPolicyValidation) BeforeCreate(tx *gorm.DB) error
func (*WorkflowStepPolicyValidation) Indexes ¶
func (v *WorkflowStepPolicyValidation) Indexes(db *gorm.DB) []migrations.Index
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 WorkflowTypeAppBranchesRun 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
¶
- account.go
- account_identity.go
- account_role.go
- action_workflow.go
- action_workflow_config.go
- action_workflow_step_config.go
- action_workflow_trigger_config.go
- app.go
- app_branch.go
- app_branch_config.go
- app_branch_install_group.go
- app_branch_run.go
- app_break_glass_config.go
- app_config.go
- app_iam_policy_config.go
- app_iam_role_config.go
- app_input.go
- app_input_config.go
- app_input_group.go
- app_operation_role_config.go
- app_operation_rules.go
- app_permissions_config.go
- app_policies_config.go
- app_policy_config.go
- app_repository.go
- app_runner_config.go
- app_sandbox_build.go
- app_sandbox_config.go
- app_secret.go
- app_secret_config.go
- app_secrets_config.go
- app_stack_config.go
- aws_account.go
- aws_ecr_image_config.go
- azure_account.go
- ch_table_size.go
- cloud_platform.go
- component.go
- component_build.go
- component_config_connection.go
- component_config_dependency.go
- component_dependency.go
- component_release.go
- component_release_step.go
- connected_github_vcs_config.go
- device_code.go
- docker_build_component_config.go
- drifted_object.go
- endpoint_audit.go
- event.go
- external_image_component_config.go
- gcp_account.go
- helm_chart.go
- helm_component_config.go
- helm_release.go
- helper.go
- helpers.go
- identity_provider.go
- install.go
- install_action_workflow.go
- install_action_workflow_manual_trigger.go
- install_action_workflow_run.go
- install_action_workflow_run_step.go
- install_audit_logs.go
- install_component.go
- install_config.go
- install_deploy.go
- install_event.go
- install_inputs.go
- install_intermediate_data.go
- install_sandbox.go
- install_sandbox_run.go
- install_stack.go
- install_stack_outputs.go
- install_stack_version.go
- install_stack_version_run.go
- install_state.go
- installer.go
- installer_app.go
- installer_metadata.go
- job_component_config.go
- kubernetes_manifest_component_config.go
- log_stream.go
- notifications_config.go
- oci_artifact.go
- onboarding.go
- org.go
- org_invite.go
- otel_log_record.go
- otel_metric_exponential_histogram.go
- otel_metric_gauge.go
- otel_metric_histogram.go
- otel_metric_sum.go
- otel_metric_summary.go
- otel_trace.go
- policy.go
- policy_report.go
- public_git_vcs_config.go
- queue.go
- queue_emitter.go
- queue_signal.go
- role.go
- runner.go
- runner_group.go
- runner_group_settings.go
- runner_health_check.go
- runner_heart_beat.go
- runner_job.go
- runner_job_execution.go
- runner_job_execution_outputs.go
- runner_job_execution_result.go
- runner_job_plan.go
- runner_operation.go
- runner_process.go
- signal.go
- status.go
- table_sizes.go
- temporal_payload.go
- terraform_module_component_config.go
- terraform_state_lock.go
- terraform_workspace.go
- terraform_workspace_lock.go
- terraform_workspace_state.go
- terraform_workspace_state_json.go
- timeouts.go
- token.go
- user_journey.go
- vcs_commit.go
- vcs_commit_owner_types.go
- vcs_connection.go
- waitlist.go
- workflow.go
- workflow_step.go
- workflow_step_approval.go
- workflow_step_approval_response.go
- workflow_step_policy_validation.go
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 |
|
components/journey-progress
templ: version: v0.3.977
|
templ: version: v0.3.977 |
|
components/search
templ: version: v0.3.977
|
templ: version: v0.3.977 |
|
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 |
|
apps
|
|
|
auth
|
|
|
components
|
|
|
general
|
|
|
identity-providers
|
|
|
installs
|
|
|
onboarding
|
|
|
orgs
|
|
|
policy_reports
|
|
|
runner-auth
|
|
|
runners
|
|
|
vcs
|
|