Documentation
¶
Index ¶
- Constants
- Variables
- func DeleteAllCanaries(db *gorm.DB, canaries ...Canary) error
- func DeleteAllComponents(db *gorm.DB, components ...Component) error
- func DeleteAllConfigs(db *gorm.DB, configs ...ConfigItem) error
- func DeleteAllIncidents(db *gorm.DB, incidents ...Incident) error
- func DeleteCheckComponentRelationshipsForCanary(db *gorm.DB, id string) error
- func DeleteChecksForCanary(db *gorm.DB, id string) ([]string, error)
- func DeleteComponentChildren(db *gorm.DB, componentID string) error
- func DeleteComponentsWithIDs(db *gorm.DB, compIDs []string) error
- func DeleteInlineCanariesForComponent(db *gorm.DB, componentID string) error
- func ErrorContext(items ...Contextable) []any
- func GetIDs[T DBTable](items ...T) []string
- func Now() clause.Expr
- func SetProperties(db *gorm.DB, props []AppProperty) error
- func SetPropertiesInDBFromFile(db *gorm.DB, filename string) error
- type AccessToken
- type Agent
- type AnalysisType
- type AppProperty
- type Artifact
- type Canary
- type Check
- func (c Check) AsMap(removeFields ...string) map[string]any
- func (c Check) GetDescription() string
- func (c Check) GetFieldsMatcher() fields.Fields
- func (c Check) GetID() string
- func (c Check) GetLabelsMatcher() labels.Labels
- func (c Check) GetName() string
- func (c Check) GetNamespace() string
- func (c Check) GetStatus() (string, error)
- func (c Check) GetType() string
- func (t Check) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (c Check) PK() string
- func (t Check) PKCols() []clause.Column
- func (c Check) TableName() string
- func (c Check) ToString() string
- func (t Check) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (t Check) Value() any
- type CheckComponentRelationship
- func (t CheckComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (c CheckComponentRelationship) PK() string
- func (c *CheckComponentRelationship) Save(db *gorm.DB) error
- func (CheckComponentRelationship) TableName() string
- func (s CheckComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- type CheckConfigRelationship
- func (c CheckConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (c CheckConfigRelationship) PK() string
- func (c *CheckConfigRelationship) Save(db *gorm.DB) error
- func (CheckConfigRelationship) TableName() string
- func (s CheckConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- type CheckHealthStatus
- type CheckStatus
- func (s CheckStatus) AsMap(removeFields ...string) map[string]any
- func (s CheckStatus) GetTime() (time.Time, error)
- func (s CheckStatus) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (s CheckStatus) PK() string
- func (s CheckStatus) PKCols() []clause.Column
- func (CheckStatus) TableName() string
- func (s CheckStatus) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- func (t CheckStatus) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (t CheckStatus) Value() any
- type CheckStatusAggregate1d
- type CheckStatusAggregate1h
- type CheckSummary
- type Checks
- type Comment
- type Component
- func (c *Component) AsMap(removeFields ...string) map[string]any
- func (component Component) Clone() Component
- func (component Component) GetAsEnvironment() map[string]interface{}
- func (c Component) GetFieldsMatcher() fields.Fields
- func (c Component) GetHealth() (string, error)
- func (c Component) GetID() string
- func (c Component) GetLabelsMatcher() labels.Labels
- func (c Component) GetName() string
- func (c Component) GetNamespace() string
- func (c Component) GetStatus() (string, error)
- func (c Component) GetType() string
- func (t Component) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (component Component) IsHealthy() bool
- func (c *Component) ObjectMeta() metav1.ObjectMeta
- func (c Component) PK() string
- func (c *Component) Save(db *gorm.DB) error
- func (component Component) String() string
- func (c *Component) Summarize(depth int) types.Summary
- func (c Component) TableName() string
- func (t Component) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- type ComponentRelationship
- func (cr ComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (cr ComponentRelationship) PK() string
- func (s ComponentRelationship) PKCols() []clause.Column
- func (ComponentRelationship) TableName() string
- func (s ComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- func (s ComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (s ComponentRelationship) Value() any
- type Components
- func (components Components) Debug(prefix string) string
- func (components Components) Find(name string) *Component
- func (components Components) Map(fn func(c *Component))
- func (components Components) Save(db *gorm.DB) error
- func (components Components) Summarize(depth int) types.Summary
- func (components Components) Walk() Components
- type ConfigAnalysis
- func (ConfigAnalysis) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (a ConfigAnalysis) PK() string
- func (c ConfigAnalysis) PKCols() []clause.Column
- func (a ConfigAnalysis) String() string
- func (a ConfigAnalysis) TableName() string
- func (t ConfigAnalysis) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (c ConfigAnalysis) Value() any
- type ConfigChange
- func (c *ConfigChange) BeforeCreate(tx *gorm.DB) error
- func (c ConfigChange) GetExternalID() ExternalID
- func (t ConfigChange) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (c ConfigChange) PK() string
- func (c ConfigChange) PKCols() []clause.Column
- func (c ConfigChange) String() string
- func (c ConfigChange) TableName() string
- func (t ConfigChange) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (c ConfigChange) Value() any
- type ConfigComponentRelationship
- func (t ConfigComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (t ConfigComponentRelationship) PK() string
- func (s ConfigComponentRelationship) PKCols() []clause.Column
- func (ConfigComponentRelationship) TableName() string
- func (s ConfigComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- func (s ConfigComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (s ConfigComponentRelationship) Value() any
- type ConfigItem
- func (ci ConfigItem) AsMap(removeFields ...string) map[string]any
- func (ci ConfigItem) ConfigJSONStringMap() (map[string]any, error)
- func (c ConfigItem) GetFieldsMatcher() fields.Fields
- func (c ConfigItem) GetID() string
- func (c ConfigItem) GetLabelsMatcher() labels.Labels
- func (c ConfigItem) GetName() string
- func (c ConfigItem) GetNamespace() string
- func (c ConfigItem) GetSelectorID() string
- func (c ConfigItem) GetStatus() (string, error)
- func (c ConfigItem) GetTagsMatcher() labels.Labels
- func (c ConfigItem) GetType() string
- func (t ConfigItem) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (t ConfigItem) PK() string
- func (t ConfigItem) PKCols() []clause.Column
- func (ci *ConfigItem) SetParent(parent *ConfigItem)
- func (ci ConfigItem) String() string
- func (ConfigItem) TableName() string
- func (ci ConfigItem) TemplateEnv() (map[string]any, error)
- func (t ConfigItem) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (c ConfigItem) Value() any
- type ConfigRelationship
- func (t ConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (cr ConfigRelationship) PK() string
- func (c ConfigRelationship) PKCols() []clause.Column
- func (cr ConfigRelationship) TableName() string
- func (s ConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
- func (t ConfigRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
- func (c ConfigRelationship) Value() any
- type ConfigScraper
- type Connection
- func (c Connection) AsEnv(ctx context.Context) EnvPrep
- func (c Connection) AsGoGetterURL() (string, error)
- func (c Connection) AsMap(removeFields ...string) map[string]any
- func (c Connection) Merge(ctx types.GetEnvVarFromCache, from any) (*Connection, error)
- func (c Connection) PK() string
- func (c *Connection) SetProperty(key, value string)
- func (c Connection) String() string
- func (c Connection) TableName() string
- type Contextable
- type DBTable
- type Deleteable
- type EnvPrep
- type Event
- type EventQueueSummary
- type Events
- type Evidence
- type EvidenceCanaryCheck
- type EvidenceComponent
- type EvidenceConfig
- type EvidenceConfigAnalysis
- type EvidenceConfigChange
- type EvidenceLogs
- type ExtendedDBTable
- type ExternalID
- type Health
- type Hypothesis
- type Incident
- type IncidentStatus
- type IncidentType
- type Integration
- type IntegrationType
- type JobHistory
- func (h *JobHistory) AddDetails(key string, val any)
- func (h *JobHistory) AddError(err any) *JobHistory
- func (h *JobHistory) AddErrorWithSkipReportLevel(err string, level int) *JobHistory
- func (h *JobHistory) AddErrorf(msg string, args ...interface{}) *JobHistory
- func (j JobHistory) AsError() error
- func (h *JobHistory) End() *JobHistory
- func (j JobHistory) GetUnpushed(db *gorm.DB) ([]DBTable, error)
- func (h *JobHistory) IncrSuccess() *JobHistory
- func (j JobHistory) PK() string
- func (h *JobHistory) Persist(db *gorm.DB) error
- func (h *JobHistory) Start() *JobHistory
- func (h *JobHistory) String() string
- func (j JobHistory) TableName() string
- type JobStatus
- type Link
- type LocalTime
- type LogLine
- type LogNameAccessor
- type LoggingBackend
- type NamespaceScopeAccessor
- type Notification
- type NotificationSendHistory
- func (n NotificationSendHistory) AsMap(removeFields ...string) map[string]any
- func (t *NotificationSendHistory) End() *NotificationSendHistory
- func (t *NotificationSendHistory) Failed(e error) *NotificationSendHistory
- func (t *NotificationSendHistory) Sending() *NotificationSendHistory
- func (t *NotificationSendHistory) Sent() *NotificationSendHistory
- func (t *NotificationSendHistory) TableName() string
- type Person
- type PersonProperties
- type Playbook
- func (p Playbook) AsMap(removeFields ...string) map[string]any
- func (p Playbook) Context() map[string]any
- func (p Playbook) Load(db *gorm.DB) (*Playbook, error)
- func (p *Playbook) LoggerName() string
- func (p *Playbook) NamespaceScope() string
- func (p Playbook) PK() string
- func (p *Playbook) Save(db *gorm.DB) error
- func (p Playbook) TableName() string
- type PlaybookActionAgentData
- type PlaybookActionStatus
- type PlaybookApproval
- type PlaybookRun
- func (p PlaybookRun) AsMap(removeFields ...string) map[string]any
- func (p PlaybookRun) Assign(db *gorm.DB, agent *Agent, action string) error
- func (p PlaybookRun) Context() map[string]any
- func (p PlaybookRun) Delay(db *gorm.DB, delay time.Duration) error
- func (p PlaybookRun) End(db *gorm.DB) error
- func (p PlaybookRun) Fail(db *gorm.DB, err error) error
- func (p PlaybookRun) GetAction(db *gorm.DB, name string) (action *PlaybookRunAction, err error)
- func (p PlaybookRun) GetActions(db *gorm.DB) (actions []PlaybookRunAction, err error)
- func (p PlaybookRun) GetAgentAction(db *gorm.DB, name string) (*PlaybookRunAction, error)
- func (p PlaybookRun) GetAgentActions(db *gorm.DB) (actions []PlaybookRunAction, err error)
- func (p PlaybookRun) GetPlaybook(db *gorm.DB) (*Playbook, error)
- func (p PlaybookRun) Load(db *gorm.DB) (*PlaybookRun, error)
- func (p PlaybookRun) PK() string
- func (p PlaybookRun) Running(db *gorm.DB) error
- func (p PlaybookRun) Schedule(db *gorm.DB) error
- func (p PlaybookRun) StartAction(db *gorm.DB, action string) (*PlaybookRunAction, error)
- func (p *PlaybookRun) String(db *gorm.DB) string
- func (p PlaybookRun) TableName() string
- func (p PlaybookRun) Update(db *gorm.DB, columns map[string]any) error
- func (p PlaybookRun) Waiting(db *gorm.DB) error
- type PlaybookRunAction
- func (p PlaybookRunAction) AsMap(removeFields ...string) map[string]any
- func (p PlaybookRunAction) Complete(db *gorm.DB, result any) error
- func (p PlaybookRunAction) Context() map[string]any
- func (p PlaybookRunAction) Fail(db *gorm.DB, result any, err error) error
- func (p PlaybookRunAction) GetPlaybook(db *gorm.DB) (*Playbook, error)
- func (p PlaybookRunAction) GetRun(db *gorm.DB) (*PlaybookRun, error)
- func (p PlaybookRunAction) JSON() (out map[string]any)
- func (p PlaybookRunAction) Load(db *gorm.DB) (*PlaybookRunAction, error)
- func (p PlaybookRunAction) PK() string
- func (p PlaybookRunAction) ScheduleRun(db *gorm.DB) error
- func (p PlaybookRunAction) Skip(db *gorm.DB) error
- func (p PlaybookRunAction) Start(db *gorm.DB) error
- func (p PlaybookRunAction) String() string
- func (p PlaybookRunAction) TableName() string
- func (p PlaybookRunAction) Update(db *gorm.DB, columns map[string]any) error
- func (p PlaybookRunAction) UpdateRun(db *gorm.DB, columns map[string]any) error
- type PlaybookRunStatus
- type Properties
- func (p Properties) AsJSON() []byte
- func (p Properties) AsMap() map[string]any
- func (p Properties) Find(name string) *Property
- func (Properties) GormDBDataType(db *gorm.DB, field *schema.Field) string
- func (Properties) GormDataType() string
- func (p Properties) GormValue(ctx context.Context, db *gorm.DB) clause.Expr
- func (p *Properties) Scan(val any) error
- func (p Properties) Value() (driver.Value, error)
- type Property
- type RelatedConfigDirection
- type Responder
- type Severity
- type Team
- type Text
- type Topology
Constants ¶
const ( CheckStatusHealthy = "healthy" CheckStatusUnhealthy = "unhealthy" )
const ( ConfigClassCluster = "Cluster" ConfigClassDatabase = "Database" ConfigClassDeployment = "Deployment" ConfigClassNamespace = "Namespace" ConfigClassNode = "Node" ConfigClassPod = "Pod" ConfigClassVirtualMachine = "VirtualMachine" )
Config classes
const ( ConfigStatusCordoned = "Cordoned" ConfigStatusCordoning = "Cordoning" ConfigStatusDeleted = "Deleted" ConfigStatusDeleting = "Deleting" ConfigStatusFailed = "Failed" ConfigStatusPending = "Pending" ConfigStatusRunning = "Running" ConfigStatusStarting = "Starting" ConfigStatusStopped = "Stopped" ConfigStatusStopping = "Stopping" ConfigStatusSucceeded = "Succeeded" ConfigStatusUncordoned = "Uncordoned" ConfigStatusUnknown = "Unknown" )
Config Statuses
const ( AnalysisStatusOpen = "open" AnalysisStatusResolved = "resolved" AnalysisStatusSilenced = "silenced" )
Config Analysis statuses
const ( ConnectionTypeAWS = "aws" ConnectionTypeAzure = "azure" ConnectionTypeAzureDevops = "azure_devops" ConnectionTypeDiscord = "discord" ConnectionTypeDynatrace = "dynatrace" ConnectionTypeElasticSearch = "elasticsearch" ConnectionTypeEmail = "email" ConnectionTypeFolder = "folder" ConnectionTypeGCP = "google_cloud" ConnectionTypeGCS = "gcs" ConnectionTypeGenericWebhook = "generic_webhook" ConnectionTypeGit = "git" ConnectionTypeGithub = "github" ConnectionTypeGitlab = "gitlab" ConnectionTypeGoogleChat = "google_chat" ConnectionTypeHTTP = "http" ConnectionTypeIFTTT = "ifttt" ConnectionTypeJMeter = "jmeter" ConnectionTypeKubernetes = "kubernetes" ConnectionTypeLDAP = "ldap" ConnectionTypeMatrix = "matrix" ConnectionTypeMattermost = "mattermost" ConnectionTypeMongo = "mongo" ConnectionTypeMySQL = "mysql" ConnectionTypeNtfy = "ntfy" ConnectionTypeOpsGenie = "opsgenie" ConnectionTypePostgres = "postgres" ConnectionTypePrometheus = "prometheus" ConnectionTypePushbullet = "pushbullet" ConnectionTypePushover = "pushover" ConnectionTypeRedis = "redis" ConnectionTypeRestic = "restic" ConnectionTypeRocketchat = "rocketchat" ConnectionTypeS3 = "s3" ConnectionTypeSFTP = "sftp" ConnectionTypeSlack = "slack" ConnectionTypeSlackWebhook = "slackwebhook" ConnectionTypeSMB = "smb" ConnectionTypeSQLServer = "sql_server" ConnectionTypeTeams = "teams" ConnectionTypeTelegram = "telegram" ConnectionTypeWebhook = "webhook" ConnectionTypeWindows = "windows" ConnectionTypeZulipChat = "zulip_chat" )
List of all connection types
const ( StatusRunning = "RUNNING" StatusSuccess = "SUCCESS" StatusWarning = "WARNING" StatusFailed = "FAILED" StatusStale = "STALE" StatusSkipped = "SKIPPED" )
const ( NotificationStatusError = "error" NotificationStatusSent = "sent" NotificationStatusSending = "sending" )
const ( SourceCRD = "KubernetesCRD" SourceConfigFile = "ConfigFile" SourceUI = "UI" SourceTopology = "Topology" SourcePush = "Push" SourceCRDSync = "CRDSync" )
const TimeFormat = "2006-01-02T15:04:05"
Variables ¶
var AllowedColumnFieldsInComponents = []string{
"owner",
"topology_type",
"topology_id",
"parent_id",
"type",
}
var AllowedColumnFieldsInConfigs = []string{"config_class", "external_id"}
var CheckHealthStatuses = []CheckHealthStatus{ CheckStatusHealthy, CheckStatusUnhealthy, }
var CheckID = func(c Check) string {
return c.ID.String()
}
var ComponentID = func(c Component) string {
return c.ID.String()
}
var ConfigID = func(c ConfigComponentRelationship, i int) string {
return c.ConfigID.String()
}
var ConfigSelectorID = func(c ConfigComponentRelationship, i int) string {
return c.SelectorID
}
var PlaybookActionFinalStates = []PlaybookActionStatus{ PlaybookActionStatusFailed, PlaybookActionStatusCompleted, PlaybookActionStatusSkipped, }
var ( PlaybookRunStatusExecutingGroup = []PlaybookRunStatus{ PlaybookRunStatusRunning, PlaybookRunStatusScheduled, PlaybookRunStatusCompleted, } )
Functions ¶
func DeleteAllCanaries ¶ added in v1.0.561
func DeleteAllComponents ¶ added in v1.0.561
func DeleteAllConfigs ¶ added in v1.0.561
func DeleteAllConfigs(db *gorm.DB, configs ...ConfigItem) error
func DeleteAllIncidents ¶ added in v1.0.561
func DeleteCheckComponentRelationshipsForCanary ¶ added in v1.0.510
func DeleteChecksForCanary ¶ added in v1.0.510
func DeleteComponentChildren ¶ added in v1.0.510
func DeleteComponentsWithIDs ¶ added in v1.0.510
DeleteComponentsWithID deletes all components with specified ids.
func DeleteInlineCanariesForComponent ¶ added in v1.0.510
func ErrorContext ¶ added in v1.0.564
func ErrorContext(items ...Contextable) []any
func SetProperties ¶ added in v1.0.145
func SetProperties(db *gorm.DB, props []AppProperty) error
Types ¶
type AccessToken ¶ added in v1.0.143
type AccessToken struct {
ID uuid.UUID `gorm:"default:generate_ulid()"`
Name string `gorm:"not null"`
Value string `gorm:"not null"`
PersonID uuid.UUID `gorm:"not null"`
CreatedAt time.Time `json:"created_at" gorm:"<-:create"`
ExpiresAt *time.Time
}
func (AccessToken) PK ¶ added in v1.0.561
func (a AccessToken) PK() string
func (AccessToken) TableName ¶ added in v1.0.143
func (AccessToken) TableName() string
type Agent ¶ added in v1.0.91
type Agent struct {
ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"`
Name string `json:"name"`
Hostname string `json:"hostname,omitempty"`
Description string `json:"description,omitempty"`
IP string `json:"ip,omitempty"`
Version string `json:"version,omitempty"`
Username string `json:"username,omitempty"`
PersonID *uuid.UUID `json:"person_id,omitempty"`
Properties types.JSONStringMap `json:"properties,omitempty"`
TLS string `json:"tls,omitempty"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt time.Time `json:"created_at" time_format:"postgres_timestamp"`
DeletedAt *time.Time `json:"deleted_at" time_format:"postgres_timestamp"`
UpdatedAt time.Time `json:"updated_at" time_format:"postgres_timestamp"`
// Cleanup when set to true will delete all the agent resources when the agent is deleted
Cleanup bool `json:"cleanup"`
// LastSeen is the timestamp the agent last sent a heartbeat
LastSeen *time.Time `json:"last_seen,omitempty" time_format:"postgres_timestamp"`
// LastReceived is the timestamp the agent last sent a push data
LastReceived *time.Time `json:"last_received,omitempty" time_format:"postgres_timestamp"`
}
type AnalysisType ¶ added in v1.0.117
type AnalysisType string
const ( AnalysisTypeAvailability AnalysisType = "availability" AnalysisTypeCompliance AnalysisType = "compliance" AnalysisTypeCost AnalysisType = "cost" AnalysisTypeIntegration AnalysisType = "integration" AnalysisTypeOther AnalysisType = "other" AnalysisTypePerformance AnalysisType = "performance" AnalysisTypeRecommendation AnalysisType = "recommendation" AnalysisTypeReliability AnalysisType = "reliability" AnalysisTypeSecurity AnalysisType = "security" AnalysisTypeTechDebt AnalysisType = "technical_debt" )
type AppProperty ¶ added in v1.0.144
type AppProperty struct {
Name string `json:"name,omitempty"`
Value string `json:"value,omitempty"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
UpdatedAt time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}
func (AppProperty) PK ¶ added in v1.0.561
func (p AppProperty) PK() string
func (AppProperty) TableName ¶ added in v1.0.234
func (p AppProperty) TableName() string
type Artifact ¶ added in v1.0.225
type Artifact struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
CheckID *uuid.UUID `json:"check_id,omitempty"`
CheckTime *time.Time `json:"check_time,omitempty" time_format:"postgres_timestamp"`
PlaybookRunActionID *uuid.UUID `json:"playbook_run_action_id,omitempty"`
ConnectionID uuid.UUID `json:"connection_id,omitempty"`
Path string `json:"path"`
IsPushed bool `json:"is_pushed"`
IsDataPushed bool `json:"is_data_pushed"`
Filename string `json:"filename"`
Size int64 `json:"size"` // Size in bytes
ContentType string `json:"content_type,omitempty"`
Checksum string `json:"checksum"`
CreatedAt time.Time `json:"created_at" yaml:"created_at" time_format:"postgres_timestamp"`
UpdatedAt time.Time `json:"updated_at" yaml:"updated_at" time_format:"postgres_timestamp"`
DeletedAt *time.Time `json:"deleted_at,omitempty" yaml:"deleted_at,omitempty" time_format:"postgres_timestamp"`
ExpiresAt *time.Time `json:"expires_at,omitempty" yaml:"expires_at,omitempty" time_format:"postgres_timestamp"`
}
Artifact represents the artifacts table
func (Artifact) GetUnpushed ¶ added in v1.0.362
type Canary ¶ added in v1.0.15
type Canary struct {
ID uuid.UUID `json:"id" yaml:"id" gorm:"default:generate_ulid()"`
Name string `json:"name" yaml:"name"`
Namespace string `json:"namespace" yaml:"namespace"`
AgentID uuid.UUID `json:"agent_id" yaml:"agent_id"`
Spec types.JSON `json:"spec" yaml:"spec"`
Labels types.JSONStringMap `json:"labels,omitempty" yaml:"labels,omitempty"`
Annotations types.JSONStringMap `json:"annotations,omitempty" yaml:"annotations,omitempty"`
Source string `json:"source,omitempty" yaml:"source,omitempty"`
Checks types.JSONStringMap `gorm:"-" json:"checks,omitempty" yaml:"checks,omitempty"`
CreatedAt time.Time `json:"created_at" yaml:"created_at" time_format:"postgres_timestamp" gorm:"<-:create"`
UpdatedAt *time.Time `json:"updated_at" yaml:"updated_at" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty" yaml:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}
func (Canary) ConflictClause ¶ added in v1.0.438
func (t Canary) ConflictClause() clause.OnConflict
func (Canary) GetCheckID ¶ added in v1.0.15
func (Canary) GetUnpushed ¶ added in v1.0.362
type Check ¶ added in v1.0.15
type Check struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
CanaryID uuid.UUID `json:"canary_id"`
AgentID uuid.UUID `json:"agent_id,omitempty"`
Spec types.JSON `json:"-"`
Type string `json:"type"`
Name string `json:"name"`
Namespace string `json:"namespace"`
Labels types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
Description string `json:"description,omitempty"`
Status CheckHealthStatus `json:"status,omitempty"`
Owner string `json:"owner,omitempty"`
Severity Severity `json:"severity,omitempty"`
Icon string `json:"icon,omitempty"`
Transformed bool `json:"transformed,omitempty"`
LastRuntime *time.Time `json:"last_runtime,omitempty"`
NextRuntime *time.Time `json:"next_runtime,omitempty"`
LastTransitionTime *time.Time `json:"last_transition_time,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty" gorm:"<-:create"`
UpdatedAt *time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
SilencedAt *time.Time `json:"silenced_at,omitempty"`
// Auxiliary fields
CanaryName string `json:"canary_name,omitempty" gorm:"-"`
ComponentIDs []string `json:"components,omitempty" gorm:"-"` // Linked component ids
Uptime types.Uptime `json:"uptime,omitempty" gorm:"-"`
Latency types.Latency `json:"latency,omitempty" gorm:"-"`
Statuses []CheckStatus `json:"checkStatuses,omitempty" gorm:"-"`
DisplayType string `json:"display_type,omitempty" gorm:"-"`
// These are calculated for the selected date range
EarliestRuntime *time.Time `json:"earliestRuntime,omitempty" gorm:"-"`
LatestRuntime *time.Time `json:"latestRuntime,omitempty" gorm:"-"`
TotalRuns int `json:"totalRuns,omitempty" gorm:"-"`
}
func (Check) GetDescription ¶ added in v1.0.15
func (Check) GetFieldsMatcher ¶ added in v1.0.401
func (Check) GetLabelsMatcher ¶ added in v1.0.401
func (Check) GetNamespace ¶ added in v1.0.397
func (Check) GetUnpushed ¶ added in v1.0.362
func (Check) UpdateParentsIsPushed ¶ added in v1.0.428
type CheckComponentRelationship ¶ added in v1.0.77
type CheckComponentRelationship struct {
ComponentID uuid.UUID `json:"component_id,omitempty"`
CheckID uuid.UUID `json:"check_id,omitempty"`
CanaryID uuid.UUID `json:"canary_id,omitempty"`
SelectorID string `json:"selector_id,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (CheckComponentRelationship) GetUnpushed ¶ added in v1.0.362
func (t CheckComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (CheckComponentRelationship) PK ¶ added in v1.0.362
func (c CheckComponentRelationship) PK() string
func (*CheckComponentRelationship) Save ¶ added in v1.0.253
func (c *CheckComponentRelationship) Save(db *gorm.DB) error
func (CheckComponentRelationship) TableName ¶ added in v1.0.77
func (CheckComponentRelationship) TableName() string
func (CheckComponentRelationship) UpdateIsPushed ¶ added in v1.0.362
func (s CheckComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
type CheckConfigRelationship ¶ added in v1.0.235
type CheckConfigRelationship struct {
ConfigID uuid.UUID `json:"config_id,omitempty"`
CheckID uuid.UUID `json:"check_id,omitempty"`
CanaryID uuid.UUID `json:"canary_id,omitempty"`
SelectorID string `json:"selector_id,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (CheckConfigRelationship) GetUnpushed ¶ added in v1.0.362
func (c CheckConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (CheckConfigRelationship) PK ¶ added in v1.0.362
func (c CheckConfigRelationship) PK() string
func (*CheckConfigRelationship) Save ¶ added in v1.0.253
func (c *CheckConfigRelationship) Save(db *gorm.DB) error
func (CheckConfigRelationship) TableName ¶ added in v1.0.235
func (CheckConfigRelationship) TableName() string
func (CheckConfigRelationship) UpdateIsPushed ¶ added in v1.0.362
func (s CheckConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
type CheckHealthStatus ¶ added in v1.0.60
type CheckHealthStatus string
type CheckStatus ¶ added in v1.0.15
type CheckStatus struct {
CheckID uuid.UUID `json:"check_id" gorm:"primaryKey"`
Status bool `json:"status"`
Invalid bool `json:"invalid,omitempty"`
Time string `json:"time" gorm:"primaryKey"`
Duration int `json:"duration"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
Detail any `json:"-" gorm:"-"`
CreatedAt time.Time `json:"created_at,omitempty" gorm:"<-:create"`
// IsPushed when set to true indicates that the check status has been pushed to upstream.
IsPushed bool `json:"is_pushed,omitempty"`
}
func (CheckStatus) AsMap ¶ added in v1.0.172
func (s CheckStatus) AsMap(removeFields ...string) map[string]any
func (CheckStatus) GetUnpushed ¶ added in v1.0.362
func (s CheckStatus) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (CheckStatus) PK ¶ added in v1.0.362
func (s CheckStatus) PK() string
func (CheckStatus) PKCols ¶ added in v1.0.428
func (s CheckStatus) PKCols() []clause.Column
func (CheckStatus) TableName ¶ added in v1.0.21
func (CheckStatus) TableName() string
func (CheckStatus) UpdateIsPushed ¶ added in v1.0.362
func (s CheckStatus) UpdateIsPushed(db *gorm.DB, items []DBTable) error
func (CheckStatus) UpdateParentsIsPushed ¶ added in v1.0.428
func (t CheckStatus) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (CheckStatus) Value ¶ added in v1.0.428
func (t CheckStatus) Value() any
type CheckStatusAggregate1d ¶ added in v1.0.44
type CheckStatusAggregate1d struct {
CheckID string `gorm:"column:check_id"`
CreatedAt time.Time `gorm:"column:created_at"`
Duration int `gorm:"column:duration"`
Total int `gorm:"column:total"`
Passed int `gorm:"column:passed"`
Failed int `gorm:"column:failed"`
}
CheckStatusAggregate1d represents the `check_statuses_1d` table
func (CheckStatusAggregate1d) TableName ¶ added in v1.0.44
func (CheckStatusAggregate1d) TableName() string
type CheckStatusAggregate1h ¶ added in v1.0.44
type CheckStatusAggregate1h struct {
CheckID string `gorm:"column:check_id"`
CreatedAt time.Time `gorm:"column:created_at"`
Duration int `gorm:"column:duration"`
Total int `gorm:"column:total"`
Passed int `gorm:"column:passed"`
Failed int `gorm:"column:failed"`
}
CheckStatusAggregate1h represents the `check_statuses_1h` table
func (CheckStatusAggregate1h) TableName ¶ added in v1.0.44
func (CheckStatusAggregate1h) TableName() string
type CheckSummary ¶ added in v1.0.164
type CheckSummary struct {
ID uuid.UUID `json:"id"`
CanaryID uuid.UUID `json:"canary_id"`
CanaryName string `json:"canary_name"`
CanaryNamespace string `json:"canary_namespace"`
Description string `json:"description,omitempty"`
Icon string `json:"icon,omitempty"`
Labels types.JSONStringMap `json:"labels"`
LastTransitionTime *time.Time `json:"last_transition_time,omitempty"`
Latency types.Latency `json:"latency,omitempty"`
Name string `json:"name"`
Namespace string `json:"namespace"`
Owner string `json:"owner,omitempty"`
Severity string `json:"severity,omitempty"`
Status string `json:"status"`
Type string `json:"type"`
Uptime types.Uptime `json:"uptime,omitempty"`
LastRuntime *time.Time `json:"last_runtime,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
SilencedAt *time.Time `json:"silenced_at,omitempty"`
}
CheckSummary represents the `check_summary` view
func (CheckSummary) AsMap ¶ added in v1.0.175
func (t CheckSummary) AsMap(removeFields ...string) map[string]any
func (*CheckSummary) TableName ¶ added in v1.0.164
func (t *CheckSummary) TableName() string
type Comment ¶ added in v1.0.67
type Comment struct {
ID uuid.UUID `json:"id" gorm:"primaryKey"`
CreatedBy uuid.UUID `json:"created_by,omitempty"`
Comment string `json:"comment,omitempty"`
ExternalID *string `json:"external_id,omitempty"`
ExternalCreatedBy *string `json:"external_created_by,omitempty"`
IncidentID uuid.UUID `json:"incident_id,omitempty"`
ResponderID *uuid.UUID `json:"responder_id,omitempty"`
HypothesisID *uuid.UUID `json:"hypothesis_id,omitempty"`
Read []int16 `json:"read,omitempty" gorm:"type:smallint[]"`
CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
UpdatedAt time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}
type Component ¶ added in v1.0.15
type Component struct {
ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"` //nolint
TopologyID *uuid.UUID `json:"topology_id,omitempty"`
AgentID uuid.UUID `json:"agent_id,omitempty"`
ExternalId string `json:"external_id,omitempty"` //nolint
ParentId *uuid.UUID `json:"parent_id,omitempty"` //nolint
Name string `json:"name"`
Text string `json:"text,omitempty"`
TopologyType string `json:"topology_type,omitempty"`
Namespace string `json:"namespace"`
Labels types.JSONStringMap `json:"labels,omitempty" gorm:"default:null"`
Hidden bool `json:"hidden,omitempty"`
Silenced bool `json:"silenced,omitempty"`
Status types.ComponentStatus `json:"status"`
Health *Health `json:"health,omitempty"`
Description string `json:"description"`
Lifecycle string `json:"lifecycle,omitempty"`
LogSelectors types.LogSelectors `json:"logs,omitempty" gorm:"column:log_selectors;default:null"`
Tooltip string `json:"tooltip,omitempty"`
StatusReason string `json:"status_reason"`
Schedule string `json:"schedule,omitempty"`
Icon string `json:"icon,omitempty"`
Type string `json:"type"`
Owner string `json:"owner,omitempty"`
Selectors types.ResourceSelectors `json:"selectors,omitempty" gorm:"resourceSelectors;default:null" swaggerignore:"true"`
Configs types.ConfigQueries `json:"configs,omitempty" gorm:"default:null"`
ComponentChecks types.ComponentChecks `json:"componentChecks,omitempty" gorm:"default:null"`
Properties Properties `json:"properties,omitempty" gorm:"type:properties;default:null"`
Path string `json:"path,omitempty"`
Summary types.Summary `json:"summary,omitempty" gorm:"type:summary;default:null"`
IsLeaf bool `json:"is_leaf"`
CostPerMinute float64 `json:"cost_per_minute,omitempty" gorm:"column:cost_per_minute"`
CostTotal1d float64 `json:"cost_total_1d,omitempty" gorm:"column:cost_total_1d"`
CostTotal7d float64 `json:"cost_total_7d,omitempty" gorm:"column:cost_total_7d"`
CostTotal30d float64 `json:"cost_total_30d,omitempty" gorm:"column:cost_total_30d"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP();<-:create"`
UpdatedAt *time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp" swaggerignore:"true"`
// ConfigID is the id of the config from which this component is derived
ConfigID *uuid.UUID `json:"config_id,omitempty"`
// StatusExpr allows defining a cel expression to evaluate the status of a component
// based on the summary.
StatusExpr string `json:"status_expr,omitempty" gorm:"column:status_expr;default:null"`
// HealthExpr allows defining a cel expression to evaluate the health of a component
// based on the summary.
HealthExpr string `json:"health_expr,omitempty" gorm:"column:health_expr;default:null"`
// Auxiliary fields
Checks map[string]int `json:"checks,omitempty" gorm:"-"`
Incidents map[string]map[string]int `json:"incidents,omitempty" gorm:"-"`
Analysis map[string]map[string]int `json:"analysis,omitempty" gorm:"-"`
Components Components `json:"components,omitempty" gorm:"-"`
Order int `json:"order,omitempty" gorm:"-"`
SelectorID string `json:"-" gorm:"-"`
RelationshipID *uuid.UUID `json:"relationship_id,omitempty" gorm:"-"`
Children []string `json:"children,omitempty" gorm:"-"`
Parents []string `json:"parents,omitempty" gorm:"-"`
// Mark it as true when the component is processed
// during topology tree creation
NodeProcessed bool `json:"-" gorm:"-"`
}
func (Component) GetAsEnvironment ¶ added in v1.0.49
func (Component) GetFieldsMatcher ¶ added in v1.0.401
func (Component) GetLabelsMatcher ¶ added in v1.0.401
func (Component) GetNamespace ¶ added in v1.0.397
func (Component) GetUnpushed ¶ added in v1.0.362
func (*Component) ObjectMeta ¶ added in v1.0.253
func (c *Component) ObjectMeta() metav1.ObjectMeta
type ComponentRelationship ¶ added in v1.0.15
type ComponentRelationship struct {
ComponentID uuid.UUID `json:"component_id,omitempty" gorm:"primaryKey"`
RelationshipID uuid.UUID `json:"relationship_id,omitempty" gorm:"primaryKey"`
SelectorID string `json:"selector_id,omitempty" gorm:"primaryKey"`
RelationshipPath string `json:"relationship_path,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (ComponentRelationship) GetUnpushed ¶ added in v1.0.362
func (cr ComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ComponentRelationship) PK ¶ added in v1.0.362
func (cr ComponentRelationship) PK() string
func (ComponentRelationship) PKCols ¶ added in v1.0.428
func (s ComponentRelationship) PKCols() []clause.Column
func (ComponentRelationship) TableName ¶ added in v1.0.15
func (ComponentRelationship) TableName() string
func (ComponentRelationship) UpdateIsPushed ¶ added in v1.0.362
func (s ComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
func (ComponentRelationship) UpdateParentsIsPushed ¶ added in v1.0.428
func (s ComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ComponentRelationship) Value ¶ added in v1.0.428
func (s ComponentRelationship) Value() any
type Components ¶ added in v1.0.15
type Components []*Component
func (Components) Debug ¶ added in v1.0.83
func (components Components) Debug(prefix string) string
func (Components) Find ¶ added in v1.0.83
func (components Components) Find(name string) *Component
func (Components) Map ¶ added in v1.0.25
func (components Components) Map(fn func(c *Component))
func (Components) Summarize ¶ added in v1.0.83
func (components Components) Summarize(depth int) types.Summary
func (Components) Walk ¶ added in v1.0.83
func (components Components) Walk() Components
type ConfigAnalysis ¶ added in v1.0.5
type ConfigAnalysis struct {
ID uuid.UUID `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id"`
ExternalID string `gorm:"-"`
ConfigType string `gorm:"-"`
ConfigID uuid.UUID `gorm:"column:config_id;default:''" json:"config_id"`
ScraperID *uuid.UUID `gorm:"column:scraper_id;default:null" json:"scraper_id"`
Analyzer string `gorm:"column:analyzer" json:"analyzer" faker:"oneof: ec2-instance-no-public-ip, eks-endpoint-no-public-access"`
Message string `gorm:"column:message" json:"message"`
Summary string `gorm:"column:summary;default:null" json:"summary,omitempty"`
Status string `gorm:"column:status;default:null" json:"status,omitempty" faker:"oneof: open, resolved, silenced"`
Severity Severity `gorm:"column:severity" json:"severity" faker:"oneof: critical, high, medium, low, info"`
AnalysisType AnalysisType `gorm:"column:analysis_type" json:"analysis_type" faker:"oneof: availability, compliance, cost, security, performance"`
Analysis types.JSONMap `gorm:"column:analysis" json:"analysis,omitempty"`
Source string `gorm:"column:source" json:"source,omitempty"`
FirstObserved *time.Time `gorm:"column:first_observed;<-:false" json:"first_observed"`
LastObserved *time.Time `gorm:"column:last_observed" json:"last_observed"`
// IsPushed when set to true indicates that the check status has been pushed to upstream.
IsPushed bool `json:"is_pushed,omitempty"`
}
func (ConfigAnalysis) GetUnpushed ¶ added in v1.0.362
func (ConfigAnalysis) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigAnalysis) PK ¶ added in v1.0.362
func (a ConfigAnalysis) PK() string
func (ConfigAnalysis) PKCols ¶ added in v1.0.428
func (c ConfigAnalysis) PKCols() []clause.Column
func (ConfigAnalysis) String ¶ added in v1.0.5
func (a ConfigAnalysis) String() string
func (ConfigAnalysis) TableName ¶ added in v1.0.5
func (a ConfigAnalysis) TableName() string
func (ConfigAnalysis) UpdateParentsIsPushed ¶ added in v1.0.428
func (t ConfigAnalysis) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigAnalysis) Value ¶ added in v1.0.428
func (c ConfigAnalysis) Value() any
type ConfigChange ¶ added in v1.0.5
type ConfigChange struct {
// ExternalID is the external identifier for the configuration change.
// Note: This field is not stored in the database.
ExternalID string `gorm:"-" json:"-"`
// ConfigType represents the type of configuration.
// Note: This field is not stored in the database.
ConfigType string `gorm:"-" json:"-"`
// ExternalChangeID is the identifier for the change from an external system.
ExternalChangeID *string `gorm:"column:external_change_id;default:null" json:"external_change_id"`
// ID is the unique identifier for the configuration change.
// It is automatically generated using ULID if not provided.
ID string `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id"`
// ConfigID is the identifier of the associated configuration item.
ConfigID string `gorm:"column:config_id;default:''" json:"config_id"`
// ChangeType describes the nature of the configuration change.
// Example values: RunInstances, diff
ChangeType string `gorm:"column:change_type" json:"change_type" faker:"oneof: RunInstances, diff" `
// Severity indicates the importance or impact level of the change.
// Possible values: critical, high, medium, low, info
Severity Severity `json:"severity" faker:"oneof: critical, high, medium, low, info"`
// Source indicates the origin of the configuration change, e.g. Kubernetes, Cloudtrail
Source string `json:"source"`
// Summary provides a brief description of the change.
Summary string `json:"summary,omitempty"`
// Patches contains a JSON strategic merge patch
Patches string `gorm:"column:patches;default:null" json:"patches,omitempty"`
// Diff represents the differences introduced by this change.
Diff string `gorm:"column:diff;default:null" json:"diff,omitempty"`
// Fingerprint is a uniquest identifier for the change, it ignores all UUID, numbers and timestamps to enable de-duplication of equivalent changes.
Fingerprint string `gorm:"column:fingerprint;default:null" json:"fingerprint,omitempty"`
// Details contains additional information about the change in JSON format.
Details types.JSON `json:"details,omitempty"`
// CreatedAt represents the timestamp when the change was created or last observed
CreatedAt *time.Time `json:"created_at"`
// FirstObserved represents the timestamp when this change was first observed.
FirstObserved *time.Time `gorm:"first_observed;default:now()" json:"first_observed,omitempty"`
// Count is the number of occurrences of this change, including duplicates detected by fingerprinting
Count int `json:"count"`
// IsPushed indicates whether the change has been pushed to upstream.
// When set to true, it means the status has been synchronized.
IsPushed bool `json:"is_pushed,omitempty"`
}
ConfigChange represents the config change database table ConfigChange represents a change to a configuration item.
func (*ConfigChange) BeforeCreate ¶ added in v1.0.64
func (c *ConfigChange) BeforeCreate(tx *gorm.DB) error
BeforeCreate is a user defined hook for Gorm. It will be called when creating a record.
func (ConfigChange) GetExternalID ¶ added in v1.0.5
func (c ConfigChange) GetExternalID() ExternalID
func (ConfigChange) GetUnpushed ¶ added in v1.0.362
func (t ConfigChange) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigChange) PK ¶ added in v1.0.362
func (c ConfigChange) PK() string
func (ConfigChange) PKCols ¶ added in v1.0.428
func (c ConfigChange) PKCols() []clause.Column
func (ConfigChange) String ¶ added in v1.0.5
func (c ConfigChange) String() string
func (ConfigChange) TableName ¶ added in v1.0.5
func (c ConfigChange) TableName() string
func (ConfigChange) UpdateParentsIsPushed ¶ added in v1.0.428
func (t ConfigChange) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigChange) Value ¶ added in v1.0.428
func (c ConfigChange) Value() any
type ConfigComponentRelationship ¶ added in v1.0.15
type ConfigComponentRelationship struct {
ComponentID uuid.UUID `json:"component_id,omitempty" gorm:"primaryKey"`
ConfigID uuid.UUID `json:"config_id,omitempty" gorm:"primaryKey"`
SelectorID string `json:"selector_id,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (ConfigComponentRelationship) GetUnpushed ¶ added in v1.0.362
func (t ConfigComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigComponentRelationship) PK ¶ added in v1.0.362
func (t ConfigComponentRelationship) PK() string
func (ConfigComponentRelationship) PKCols ¶ added in v1.0.428
func (s ConfigComponentRelationship) PKCols() []clause.Column
func (ConfigComponentRelationship) TableName ¶ added in v1.0.15
func (ConfigComponentRelationship) TableName() string
func (ConfigComponentRelationship) UpdateIsPushed ¶ added in v1.0.362
func (s ConfigComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigComponentRelationship) UpdateParentsIsPushed ¶ added in v1.0.428
func (s ConfigComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigComponentRelationship) Value ¶ added in v1.0.428
func (s ConfigComponentRelationship) Value() any
type ConfigItem ¶ added in v1.0.5
type ConfigItem struct {
ID uuid.UUID `json:"id" faker:"uuid_hyphenated" gorm:"default:generate_ulid()"`
ScraperID *string `json:"scraper_id,omitempty"`
AgentID uuid.UUID `json:"agent_id,omitempty"`
ConfigClass string `json:"config_class" faker:"oneof:File,EC2Instance,KubernetesPod" `
ExternalID pq.StringArray `gorm:"type:[]text" json:"external_id,omitempty"`
Type *string `json:"type"`
Status *string `json:"status" gorm:"default:null"`
Ready bool `json:"ready"`
Health *Health `json:"health"`
Name *string `json:"name,omitempty" faker:"name"`
Description *string `json:"description"`
Config *string `json:"config"`
Source *string `json:"source,omitempty"`
ParentID *uuid.UUID `json:"parent_id,omitempty" faker:"-"`
Path string `json:"path,omitempty" faker:"-"`
CostPerMinute float64 `gorm:"column:cost_per_minute;default:null" json:"cost_per_minute,omitempty"`
CostTotal1d float64 `gorm:"column:cost_total_1d;default:null" json:"cost_total_1d,omitempty"`
CostTotal7d float64 `gorm:"column:cost_total_7d;default:null" json:"cost_total_7d,omitempty"`
CostTotal30d float64 `gorm:"column:cost_total_30d;default:null" json:"cost_total_30d,omitempty"`
Labels *types.JSONStringMap `json:"labels,omitempty" faker:"labels"`
Tags types.JSONStringMap `json:"tags,omitempty" faker:"tags"`
Properties *types.Properties `json:"properties,omitempty"`
LastScrapedTime *time.Time `json:"last_scraped_time,omitempty"`
CreatedAt time.Time `json:"created_at" gorm:"<-:create"`
UpdatedAt *time.Time `json:"updated_at" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
DeleteReason string `json:"delete_reason,omitempty"`
}
ConfigItem represents the config item database table
func (ConfigItem) AsMap ¶ added in v1.0.175
func (ci ConfigItem) AsMap(removeFields ...string) map[string]any
func (ConfigItem) ConfigJSONStringMap ¶ added in v1.0.5
func (ci ConfigItem) ConfigJSONStringMap() (map[string]any, error)
func (ConfigItem) GetFieldsMatcher ¶ added in v1.0.401
func (c ConfigItem) GetFieldsMatcher() fields.Fields
func (ConfigItem) GetID ¶ added in v1.0.374
func (c ConfigItem) GetID() string
func (ConfigItem) GetLabelsMatcher ¶ added in v1.0.401
func (c ConfigItem) GetLabelsMatcher() labels.Labels
func (ConfigItem) GetName ¶ added in v1.0.374
func (c ConfigItem) GetName() string
func (ConfigItem) GetNamespace ¶ added in v1.0.374
func (c ConfigItem) GetNamespace() string
func (ConfigItem) GetSelectorID ¶ added in v1.0.83
func (c ConfigItem) GetSelectorID() string
func (ConfigItem) GetStatus ¶ added in v1.0.374
func (c ConfigItem) GetStatus() (string, error)
func (ConfigItem) GetTagsMatcher ¶ added in v1.0.412
func (c ConfigItem) GetTagsMatcher() labels.Labels
func (ConfigItem) GetType ¶ added in v1.0.374
func (c ConfigItem) GetType() string
func (ConfigItem) GetUnpushed ¶ added in v1.0.362
func (t ConfigItem) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigItem) PK ¶ added in v1.0.347
func (t ConfigItem) PK() string
func (ConfigItem) PKCols ¶ added in v1.0.536
func (t ConfigItem) PKCols() []clause.Column
func (*ConfigItem) SetParent ¶ added in v1.0.5
func (ci *ConfigItem) SetParent(parent *ConfigItem)
func (ConfigItem) String ¶ added in v1.0.5
func (ci ConfigItem) String() string
func (ConfigItem) TableName ¶ added in v1.0.5
func (ConfigItem) TableName() string
func (ConfigItem) TemplateEnv ¶ added in v1.0.378
func (ci ConfigItem) TemplateEnv() (map[string]any, error)
func (ConfigItem) UpdateParentsIsPushed ¶ added in v1.0.428
func (t ConfigItem) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigItem) Value ¶ added in v1.0.536
func (c ConfigItem) Value() any
type ConfigRelationship ¶ added in v1.0.5
type ConfigRelationship struct {
ConfigID string `json:"config_id" gorm:"primaryKey"`
RelatedID string `json:"related_id" gorm:"primaryKey"`
Relation string `json:"relation" gorm:"primaryKey"`
SelectorID string `json:"selector_id"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (ConfigRelationship) GetUnpushed ¶ added in v1.0.362
func (t ConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigRelationship) PK ¶ added in v1.0.362
func (cr ConfigRelationship) PK() string
func (ConfigRelationship) PKCols ¶ added in v1.0.428
func (c ConfigRelationship) PKCols() []clause.Column
func (ConfigRelationship) TableName ¶ added in v1.0.5
func (cr ConfigRelationship) TableName() string
func (ConfigRelationship) UpdateIsPushed ¶ added in v1.0.362
func (s ConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigRelationship) UpdateParentsIsPushed ¶ added in v1.0.428
func (t ConfigRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error
func (ConfigRelationship) Value ¶ added in v1.0.428
func (c ConfigRelationship) Value() any
type ConfigScraper ¶ added in v1.0.53
type ConfigScraper struct {
ID uuid.UUID `json:"id"`
AgentID uuid.UUID `json:"agent_id,omitempty"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Spec string `json:"spec,omitempty"`
Source string `json:"source,omitempty"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt time.Time `json:"created_at" gorm:"<-:create"`
UpdatedAt *time.Time `json:"updated_at" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
ConfigScraper represents the config_scrapers database table
func (ConfigScraper) AsMap ¶ added in v1.0.175
func (c ConfigScraper) AsMap(removeFields ...string) map[string]any
func (*ConfigScraper) BeforeCreate ¶ added in v1.0.53
func (cs *ConfigScraper) BeforeCreate(tx *gorm.DB) error
BeforeCreate GORM hook
func (ConfigScraper) GetUnpushed ¶ added in v1.0.362
func (t ConfigScraper) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (ConfigScraper) PK ¶ added in v1.0.362
func (c ConfigScraper) PK() string
func (ConfigScraper) TableName ¶ added in v1.0.53
func (c ConfigScraper) TableName() string
type Connection ¶ added in v1.0.45
type Connection struct {
ID uuid.UUID `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id" faker:"uuid_hyphenated" `
Name string `gorm:"column:name" json:"name" faker:"name" `
Namespace string `gorm:"column:namespace" json:"namespace"`
Source string `json:"source"`
Type string `gorm:"column:type" json:"type" faker:"oneof: postgres, mysql, aws, gcp, http" `
URL string `gorm:"column:url" json:"url,omitempty" faker:"url" template:"true"`
Username string `gorm:"column:username" json:"username,omitempty" faker:"username" `
Password string `gorm:"column:password" json:"password,omitempty" faker:"password" `
Properties types.JSONStringMap `gorm:"column:properties" json:"properties,omitempty" faker:"-" template:"true"`
Certificate string `gorm:"column:certificate" json:"certificate,omitempty" faker:"-" `
InsecureTLS bool `gorm:"column:insecure_tls;default:false" json:"insecure_tls,omitempty" faker:"-" `
CreatedAt time.Time `gorm:"column:created_at;default:now();<-:create" json:"created_at,omitempty" faker:"-" `
UpdatedAt time.Time `gorm:"column:updated_at;default:now()" json:"updated_at,omitempty" faker:"-" `
CreatedBy *uuid.UUID `gorm:"column:created_by" json:"created_by,omitempty" faker:"-" `
}
func ConnectionFromURL ¶ added in v1.0.216
func ConnectionFromURL(url url.URL) *Connection
func (Connection) AsEnv ¶ added in v1.0.200
func (c Connection) AsEnv(ctx context.Context) EnvPrep
AsEnv generates environment variables and a configuration file content based on the connection type.
func (Connection) AsGoGetterURL ¶ added in v1.0.200
func (c Connection) AsGoGetterURL() (string, error)
AsGoGetterURL returns the connection as a url that's supported by https://github.com/hashicorp/go-getter Connection details are added to the url as query params
func (Connection) AsMap ¶ added in v1.0.175
func (c Connection) AsMap(removeFields ...string) map[string]any
func (Connection) Merge ¶ added in v1.0.213
func (c Connection) Merge(ctx types.GetEnvVarFromCache, from any) (*Connection, error)
func (Connection) PK ¶ added in v1.0.561
func (c Connection) PK() string
func (*Connection) SetProperty ¶ added in v1.0.605
func (c *Connection) SetProperty(key, value string)
func (Connection) String ¶ added in v1.0.48
func (c Connection) String() string
func (Connection) TableName ¶ added in v1.0.561
func (c Connection) TableName() string
type Contextable ¶ added in v1.0.564
type Deleteable ¶ added in v1.0.561
type EnvPrep ¶ added in v1.0.200
type EnvPrep struct {
// Env is the connection credentials in environment variables
Env []string
// CmdEnvs is a list of env vars that will be passed to the command
CmdEnvs []string
// List of commands that need to be run before the actual command.
// These commands will setup the connection.
PreRuns []*exec.Cmd
// File contains the content of the configuration file based on the connection
Files map[string]bytes.Buffer
}
type Event ¶ added in v1.0.273
type Event struct {
ID uuid.UUID `gorm:"default:generate_ulid()"`
Name string `json:"name"`
CreatedAt time.Time `json:"created_at"`
Properties types.JSONStringMap `json:"properties"`
Error *string `json:"error,omitempty"`
Attempts int `json:"attempts"`
LastAttempt *time.Time `json:"last_attempt"`
Priority int `json:"priority"`
}
type EventQueueSummary ¶ added in v1.0.273
type EventQueueSummary struct {
Name string `json:"name"`
Pending int64 `json:"pending"`
Failed int64 `json:"failed"`
AvgAttempts int64 `json:"average_attempts"`
FirstFailure *time.Time `json:"first_failure,omitempty"`
LastFailure *time.Time `json:"last_failure,omitempty"`
MostCommonErr string `json:"most_common_error,omitempty"`
}
func (*EventQueueSummary) TableName ¶ added in v1.0.273
func (t *EventQueueSummary) TableName() string
type Evidence ¶ added in v1.0.24
type Evidence struct {
ID uuid.UUID `json:"id"`
HypothesisID uuid.UUID `json:"hypothesis_id"`
ConfigID *uuid.UUID `json:"config_id"`
ConfigChangeID *uuid.UUID `json:"config_change_id"`
ConfigAnalysisID *uuid.UUID `json:"config_analysis_id"`
ComponentID *uuid.UUID `json:"component_id"`
CheckID *uuid.UUID `json:"check_id"`
Description string `json:"description"`
DefinitionOfDone bool `json:"definition_of_done"`
Done bool `json:"done"`
Factor bool `json:"factor"`
Mitigator bool `json:"mitigator"`
CreatedBy uuid.UUID `json:"created_by"`
Type string `json:"type"`
Script string `json:"script"`
ScriptResult string `json:"script_result"`
Evidence types.JSONMap `json:"evidence"`
Properties types.JSONMap `json:"properties"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type EvidenceCanaryCheck ¶ added in v1.0.24
type EvidenceCanaryCheck struct {
}
type EvidenceComponent ¶ added in v1.0.24
type EvidenceComponent struct {
}
type EvidenceConfig ¶ added in v1.0.24
type EvidenceConfig struct {
ID uuid.UUID `json:"id"`
Lines []string `json:"lines"`
SelectedLines types.JSONStringMap `json:"selected_lines"`
}
type EvidenceConfigAnalysis ¶ added in v1.0.24
type EvidenceConfigChange ¶ added in v1.0.24
type EvidenceLogs ¶ added in v1.0.24
type EvidenceLogs struct {
Lines []LogLine `json:"lines"`
}
type ExtendedDBTable ¶ added in v1.0.428
TODO: Find a better way to handle this
type ExternalID ¶ added in v1.0.5
func (ExternalID) CacheKey ¶ added in v1.0.5
func (e ExternalID) CacheKey() string
func (ExternalID) IsEmpty ¶ added in v1.0.5
func (e ExternalID) IsEmpty() bool
func (ExternalID) String ¶ added in v1.0.5
func (e ExternalID) String() string
func (ExternalID) WhereClause ¶ added in v1.0.5
func (e ExternalID) WhereClause(db *gorm.DB) *gorm.DB
type Hypothesis ¶ added in v1.0.24
type Hypothesis struct {
ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"`
IncidentID uuid.UUID `json:"incident_id,omitempty"`
Type string `json:"type,omitempty"`
Title string `json:"title,omitempty"`
Status string `json:"status,omitempty"`
ParentID *uuid.UUID `json:"parent_id,omitempty"`
TeamID *uuid.UUID `json:"team_id,omitempty"`
Owner *uuid.UUID `json:"owner,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
CreatedBy uuid.UUID `json:"created_by,omitempty"`
}
func (Hypothesis) AsMap ¶ added in v1.0.129
func (h Hypothesis) AsMap(removeFields ...string) map[string]any
func (Hypothesis) PK ¶ added in v1.0.561
func (h Hypothesis) PK() string
func (Hypothesis) TableName ¶ added in v1.0.24
func (Hypothesis) TableName() string
type Incident ¶ added in v1.0.24
type Incident struct {
ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"`
IncidentID string `json:"incident_id,omitempty" gorm:"default:format_incident_id(NEXTVAL('incident_id_sequence'))"`
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Type IncidentType `json:"type,omitempty"`
Status IncidentStatus `json:"status,omitempty"`
Severity Severity `json:"severity,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
Acknowledged *time.Time `json:"acknowledged,omitempty"`
Resolved *time.Time `json:"resolved,omitempty"`
Closed *time.Time `json:"closed,omitempty"`
CreatedBy uuid.UUID `json:"created_by,omitempty"`
IncidentRuleID *uuid.UUID `json:"incident_rule_id,omitempty"`
CommanderID *uuid.UUID `json:"commander_id,omitempty"`
CommunicatorID *uuid.UUID `json:"communicator_id,omitempty"`
}
type IncidentStatus ¶ added in v1.0.24
type IncidentStatus string
var ( IncidentStatusOpen IncidentStatus = "open" IncidentStatusClosed IncidentStatus = "closed" IncidentStatusMitigated IncidentStatus = "mitigated" IncidentStatusResolved IncidentStatus = "resolved" IncidentStatusCancelled IncidentStatus = "cancelled" )
type IncidentType ¶ added in v1.0.24
type IncidentType string
var ( IncidentTypeAvailability IncidentType = "availability" IncidentTypeCost IncidentType = "cost" IncidentTypePerformance IncidentType = "performance" IncidentTypeSecurity IncidentType = "security" IncidentTypeTechnicalDebt IncidentType = "technical_debt" IncidentTypeCompliance IncidentType = "compliance" IncidentTypeIntegration IncidentType = "integration" )
type Integration ¶ added in v1.0.238
type Integration struct {
ID uuid.UUID `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Integration IntegrationType `json:"integration"`
Source string `json:"source"`
AgentID *uuid.UUID `json:"agent_id,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
JobName string `json:"job_name"`
JobSuccess int `json:"job_success_count"`
JobError int `json:"job_error_count"`
JobDetails string `json:"job_details"`
JobHostname string `json:"job_hostname"`
JobDuration int `json:"job_duration_millis"`
JobResource string `json:"job_resource_type"`
JobStatus string `json:"job_status"`
JobTimeStart time.Time `json:"job_time_start"`
JobTimeEnd time.Time `json:"job_time_end"`
JobCreatedAt time.Time `json:"job_created_at"`
}
func (Integration) PK ¶ added in v1.0.561
func (i Integration) PK() string
func (*Integration) TableName ¶ added in v1.0.238
func (t *Integration) TableName() string
type IntegrationType ¶ added in v1.0.238
type IntegrationType string
const ( IntegrationTypeScraper IntegrationType = "scrapers" IntegrationTypeLoggingBackends IntegrationType = "logging_backends" IntegrationTypeTopology IntegrationType = "topology" )
type JobHistory ¶
type JobHistory struct {
ID uuid.UUID `gorm:"default:generate_ulid()"`
AgentID uuid.UUID `json:"agent_id,omitempty"`
Name string
SuccessCount int
ErrorCount int
Hostname string
DurationMillis int64
ResourceType string
ResourceID string
Details types.JSONMap
Status string
TimeStart time.Time
TimeEnd *time.Time
Errors []string `gorm:"-"`
Logger logger.Logger `gorm:"-"`
}
func NewJobHistory ¶ added in v1.0.4
func NewJobHistory(log logger.Logger, name, resourceType, resourceID string) *JobHistory
func (*JobHistory) AddDetails ¶ added in v1.0.525
func (h *JobHistory) AddDetails(key string, val any)
func (*JobHistory) AddError ¶
func (h *JobHistory) AddError(err any) *JobHistory
func (*JobHistory) AddErrorWithSkipReportLevel ¶ added in v1.0.310
func (h *JobHistory) AddErrorWithSkipReportLevel(err string, level int) *JobHistory
func (*JobHistory) AddErrorf ¶ added in v1.0.270
func (h *JobHistory) AddErrorf(msg string, args ...interface{}) *JobHistory
func (JobHistory) AsError ¶ added in v1.0.307
func (j JobHistory) AsError() error
func (*JobHistory) End ¶
func (h *JobHistory) End() *JobHistory
func (JobHistory) GetUnpushed ¶ added in v1.0.476
func (j JobHistory) GetUnpushed(db *gorm.DB) ([]DBTable, error)
func (*JobHistory) IncrSuccess ¶
func (h *JobHistory) IncrSuccess() *JobHistory
func (JobHistory) PK ¶ added in v1.0.476
func (j JobHistory) PK() string
func (*JobHistory) Start ¶
func (h *JobHistory) Start() *JobHistory
func (*JobHistory) String ¶ added in v1.0.254
func (h *JobHistory) String() string
func (JobHistory) TableName ¶ added in v1.0.250
func (j JobHistory) TableName() string
type Link ¶ added in v1.0.15
type Link struct {
// e.g. documentation, support, playbook
Type string `json:"type,omitempty"`
URL string `json:"url,omitempty"`
Text `json:",inline"`
}
+kubebuilder:object:generate=true
func (*Link) DeepCopy ¶ added in v1.0.317
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Link.
func (*Link) DeepCopyInto ¶ added in v1.0.317
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalTime ¶ added in v1.0.24
func (LocalTime) MarshalJSON ¶ added in v1.0.24
func (*LocalTime) UnmarshalJSON ¶ added in v1.0.24
type LogLine ¶ added in v1.0.24
type LogLine struct {
Timestamp time.Time `json:"timestamp"`
Message string `json:"message"`
Labels types.JSONStringMap `json:"labels"`
}
type LogNameAccessor ¶ added in v1.0.564
type LogNameAccessor interface {
LoggerName() string
}
type LoggingBackend ¶ added in v1.0.40
type LoggingBackend struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
Name string `json:"name"`
Labels types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
Spec string `json:"spec,omitempty"`
Source string `json:"source,omitempty"`
AgentID *uuid.UUID `json:"agent_id,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
func (LoggingBackend) PK ¶ added in v1.0.561
func (l LoggingBackend) PK() string
func (LoggingBackend) TableName ¶ added in v1.0.561
func (l LoggingBackend) TableName() string
type NamespaceScopeAccessor ¶ added in v1.0.564
type NamespaceScopeAccessor interface {
NamespaceScope() string
}
type Notification ¶ added in v1.0.129
type Notification struct {
ID uuid.UUID `json:"id"`
Events pq.StringArray `json:"events" gorm:"type:[]text"`
Title string `json:"title,omitempty"`
Template string `json:"template,omitempty"`
Filter string `json:"filter,omitempty"`
PersonID *uuid.UUID `json:"person_id,omitempty"`
TeamID *uuid.UUID `json:"team_id,omitempty"`
Properties types.JSONStringMap `json:"properties,omitempty"`
Source string `json:"source"`
RepeatInterval string `json:"repeat_interval"`
GroupBy pq.StringArray `json:"group_by" gorm:"type:[]text"`
CustomServices types.JSON `json:"custom_services,omitempty" gorm:"column:custom_services"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
UpdatedAt time.Time `json:"updated_at" time_format:"postgres_timestamp" gorm:"<-:false"`
CreatedAt time.Time `json:"created_at" time_format:"postgres_timestamp" gorm:"<-:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
// Error stores errors in notification filters (if any)
Error *string `json:"error,omitempty"`
}
Notification represents the notifications table
func (Notification) AsMap ¶ added in v1.0.175
func (n Notification) AsMap(removeFields ...string) map[string]any
func (*Notification) HasRecipients ¶ added in v1.0.129
func (n *Notification) HasRecipients() bool
func (Notification) PK ¶ added in v1.0.561
func (n Notification) PK() string
func (Notification) TableName ¶ added in v1.0.561
func (n Notification) TableName() string
type NotificationSendHistory ¶ added in v1.0.181
type NotificationSendHistory struct {
ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"`
NotificationID uuid.UUID `json:"notification_id"`
Body string `json:"body,omitempty"`
Error *string `json:"error,omitempty"`
DurationMillis int64 `json:"duration_millis,omitempty"`
CreatedAt time.Time `json:"created_at" time_format:"postgres_timestamp"`
Status string `json:"status,omitempty"`
// Name of the original event that caused this notification
SourceEvent string `json:"source_event"`
// ID of the resource this notification is for
ResourceID uuid.UUID `json:"resource_id"`
// ID of the person this notification is for.
PersonID *uuid.UUID `json:"person_id"`
// contains filtered or unexported fields
}
func NewNotificationSendHistory ¶ added in v1.0.181
func NewNotificationSendHistory(notificationID uuid.UUID) *NotificationSendHistory
func (NotificationSendHistory) AsMap ¶ added in v1.0.181
func (n NotificationSendHistory) AsMap(removeFields ...string) map[string]any
func (*NotificationSendHistory) End ¶ added in v1.0.181
func (t *NotificationSendHistory) End() *NotificationSendHistory
func (*NotificationSendHistory) Failed ¶ added in v1.0.268
func (t *NotificationSendHistory) Failed(e error) *NotificationSendHistory
func (*NotificationSendHistory) Sending ¶ added in v1.0.268
func (t *NotificationSendHistory) Sending() *NotificationSendHistory
func (*NotificationSendHistory) Sent ¶ added in v1.0.268
func (t *NotificationSendHistory) Sent() *NotificationSendHistory
func (*NotificationSendHistory) TableName ¶ added in v1.0.181
func (t *NotificationSendHistory) TableName() string
type Person ¶ added in v1.0.24
type Person struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
Name string `json:"name"`
Email string `json:"email,omitempty" gorm:"default:null"`
Type string `json:"type,omitempty" gorm:"default:null"`
Avatar string `json:"avatar,omitempty" gorm:"default:null"`
ExternalID string `json:"external_id,omitempty" gorm:"default:null"`
Properties PersonProperties `json:"properties,omitempty" gorm:"default:null"`
}
type PersonProperties ¶ added in v1.0.24
type PersonProperties struct {
Role string `json:"role,omitempty"`
}
func (*PersonProperties) Scan ¶ added in v1.0.24
func (p *PersonProperties) Scan(val any) error
type Playbook ¶ added in v1.0.155
type Playbook struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
Namespace string `json:"namespace"`
Name string `json:"name"`
Title string `json:"title"`
Icon string `json:"icon,omitempty"`
Description string `json:"description,omitempty"`
Spec types.JSON `json:"spec"`
Source string `json:"source"`
Category string `json:"category"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
UpdatedAt time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}
func (*Playbook) LoggerName ¶ added in v1.0.564
func (*Playbook) NamespaceScope ¶ added in v1.0.564
type PlaybookActionAgentData ¶ added in v1.0.295
type PlaybookActionAgentData struct {
ActionID uuid.UUID `json:"action_id"`
RunID uuid.UUID `json:"run_id"`
PlaybookID uuid.UUID `json:"playbook_id"`
Spec types.JSON `json:"spec"`
Env types.JSON `json:"env,omitempty"`
}
func (*PlaybookActionAgentData) Context ¶ added in v1.0.564
func (p *PlaybookActionAgentData) Context() map[string]any
func (*PlaybookActionAgentData) TableName ¶ added in v1.0.295
func (t *PlaybookActionAgentData) TableName() string
type PlaybookActionStatus ¶ added in v1.0.281
type PlaybookActionStatus string
PlaybookRunStatus are statuses for a playbook run and its actions.
const ( PlaybookActionStatusCompleted PlaybookActionStatus = "completed" PlaybookActionStatusFailed PlaybookActionStatus = "failed" PlaybookActionStatusRunning PlaybookActionStatus = "running" PlaybookActionStatusScheduled PlaybookActionStatus = "scheduled" PlaybookActionStatusWaiting PlaybookActionStatus = "waiting" PlaybookActionStatusSkipped PlaybookActionStatus = "skipped" PlaybookActionStatusSleeping PlaybookActionStatus = "sleeping" )
type PlaybookApproval ¶ added in v1.0.158
type PlaybookApproval struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
RunID uuid.UUID `json:"run_id"`
PersonID *uuid.UUID `json:"person_id,omitempty"`
TeamID *uuid.UUID `json:"team_id,omitempty"`
CreatedAt time.Time `json:"created_at" gorm:"<-:false"`
}
func (PlaybookApproval) AsMap ¶ added in v1.0.175
func (p PlaybookApproval) AsMap(removeFields ...string) map[string]any
func (PlaybookApproval) PK ¶ added in v1.0.561
func (p PlaybookApproval) PK() string
func (PlaybookApproval) TableName ¶ added in v1.0.561
func (p PlaybookApproval) TableName() string
type PlaybookRun ¶ added in v1.0.155
type PlaybookRun struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
PlaybookID uuid.UUID `json:"playbook_id"`
Status PlaybookRunStatus `json:"status,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
StartTime *time.Time `json:"start_time,omitempty" time_format:"postgres_timestamp"`
ScheduledTime time.Time `json:"scheduled_time,omitempty" time_format:"postgres_timestamp" gorm:"default:NOW(), NOT NULL"`
EndTime *time.Time `json:"end_time,omitempty" time_format:"postgres_timestamp"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
ComponentID *uuid.UUID `json:"component_id,omitempty"`
CheckID *uuid.UUID `json:"check_id,omitempty"`
ConfigID *uuid.UUID `json:"config_id,omitempty"`
Error *string `json:"error,omitempty"`
Parameters types.JSONStringMap `json:"parameters,omitempty" gorm:"default:null"`
Request types.JSONMap `json:"request,omitempty" gorm:"default:null"`
AgentID *uuid.UUID `json:"agent_id,omitempty"`
}
func (PlaybookRun) AsMap ¶ added in v1.0.175
func (p PlaybookRun) AsMap(removeFields ...string) map[string]any
func (PlaybookRun) Context ¶ added in v1.0.564
func (p PlaybookRun) Context() map[string]any
func (PlaybookRun) GetAction ¶ added in v1.0.564
func (p PlaybookRun) GetAction(db *gorm.DB, name string) (action *PlaybookRunAction, err error)
func (PlaybookRun) GetActions ¶ added in v1.0.564
func (p PlaybookRun) GetActions(db *gorm.DB) (actions []PlaybookRunAction, err error)
func (PlaybookRun) GetAgentAction ¶ added in v1.0.567
func (p PlaybookRun) GetAgentAction(db *gorm.DB, name string) (*PlaybookRunAction, error)
func (PlaybookRun) GetAgentActions ¶ added in v1.0.567
func (p PlaybookRun) GetAgentActions(db *gorm.DB) (actions []PlaybookRunAction, err error)
func (PlaybookRun) GetPlaybook ¶ added in v1.0.564
func (p PlaybookRun) GetPlaybook(db *gorm.DB) (*Playbook, error)
func (PlaybookRun) Load ¶ added in v1.0.564
func (p PlaybookRun) Load(db *gorm.DB) (*PlaybookRun, error)
func (PlaybookRun) PK ¶ added in v1.0.561
func (p PlaybookRun) PK() string
func (PlaybookRun) StartAction ¶ added in v1.0.564
func (p PlaybookRun) StartAction(db *gorm.DB, action string) (*PlaybookRunAction, error)
func (PlaybookRun) TableName ¶ added in v1.0.561
func (p PlaybookRun) TableName() string
type PlaybookRunAction ¶ added in v1.0.155
type PlaybookRunAction struct {
ID uuid.UUID `json:"id" gorm:"default:generate_ulid()"`
Name string `json:"name" gorm:"not null"`
PlaybookRunID uuid.UUID `json:"playbook_run_id"`
Status PlaybookActionStatus `json:"status,omitempty"`
ScheduledTime time.Time `json:"scheduled_time,omitempty" time_format:"postgres_timestamp" gorm:"default:NOW(), NOT NULL"`
StartTime time.Time `json:"start_time,omitempty" time_format:"postgres_timestamp" gorm:"default:NOW(), NOT NULL"`
EndTime *time.Time `json:"end_time,omitempty" time_format:"postgres_timestamp"`
Result types.JSONMap `json:"result,omitempty" gorm:"default:null"`
Error *string `json:"error,omitempty" gorm:"default:null"`
IsPushed bool `json:"is_pushed"`
AgentID *uuid.UUID `json:"agent_id,omitempty"`
}
func (PlaybookRunAction) AsMap ¶ added in v1.0.175
func (p PlaybookRunAction) AsMap(removeFields ...string) map[string]any
func (PlaybookRunAction) Complete ¶ added in v1.0.564
func (p PlaybookRunAction) Complete(db *gorm.DB, result any) error
func (PlaybookRunAction) Context ¶ added in v1.0.564
func (p PlaybookRunAction) Context() map[string]any
func (PlaybookRunAction) GetPlaybook ¶ added in v1.0.564
func (p PlaybookRunAction) GetPlaybook(db *gorm.DB) (*Playbook, error)
func (PlaybookRunAction) GetRun ¶ added in v1.0.564
func (p PlaybookRunAction) GetRun(db *gorm.DB) (*PlaybookRun, error)
func (PlaybookRunAction) JSON ¶ added in v1.0.567
func (p PlaybookRunAction) JSON() (out map[string]any)
func (PlaybookRunAction) Load ¶ added in v1.0.564
func (p PlaybookRunAction) Load(db *gorm.DB) (*PlaybookRunAction, error)
func (PlaybookRunAction) PK ¶ added in v1.0.561
func (p PlaybookRunAction) PK() string
func (PlaybookRunAction) ScheduleRun ¶ added in v1.0.564
func (p PlaybookRunAction) ScheduleRun(db *gorm.DB) error
func (PlaybookRunAction) Skip ¶ added in v1.0.564
func (p PlaybookRunAction) Skip(db *gorm.DB) error
func (PlaybookRunAction) Start ¶ added in v1.0.564
func (p PlaybookRunAction) Start(db *gorm.DB) error
func (PlaybookRunAction) String ¶ added in v1.0.564
func (p PlaybookRunAction) String() string
func (PlaybookRunAction) TableName ¶ added in v1.0.561
func (p PlaybookRunAction) TableName() string
type PlaybookRunStatus ¶ added in v1.0.155
type PlaybookRunStatus string
PlaybookRunStatus are statuses for a playbook run and its actions.
const ( PlaybookRunStatusCancelled PlaybookRunStatus = "cancelled" PlaybookRunStatusCompleted PlaybookRunStatus = "completed" PlaybookRunStatusFailed PlaybookRunStatus = "failed" PlaybookRunStatusPending PlaybookRunStatus = "pending" // pending approval PlaybookRunStatusRunning PlaybookRunStatus = "running" PlaybookRunStatusScheduled PlaybookRunStatus = "scheduled" PlaybookRunStatusSleeping PlaybookRunStatus = "sleeping" PlaybookRunStatusWaiting PlaybookRunStatus = "waiting" // waiting for a consumer )
type Properties ¶ added in v1.0.15
type Properties []*Property
func (Properties) AsJSON ¶ added in v1.0.15
func (p Properties) AsJSON() []byte
func (Properties) AsMap ¶ added in v1.0.15
func (p Properties) AsMap() map[string]any
func (Properties) Find ¶ added in v1.0.15
func (p Properties) Find(name string) *Property
func (Properties) GormDBDataType ¶ added in v1.0.15
func (Properties) GormDataType ¶ added in v1.0.15
func (Properties) GormDataType() string
GormDataType gorm common data type
func (*Properties) Scan ¶ added in v1.0.15
func (p *Properties) Scan(val any) error
Scan scan value into Jsonb, implements sql.Scanner interface
type Property ¶ added in v1.0.15
type Property struct {
Label string `json:"label,omitempty"`
Name string `json:"name,omitempty"`
Tooltip string `json:"tooltip,omitempty"`
Icon string `json:"icon,omitempty"`
Type string `json:"type,omitempty"`
Color string `json:"color,omitempty"`
Order int `json:"order,omitempty"`
Headline bool `json:"headline,omitempty"`
// Either text or value is required, but not both.
Text string `json:"text,omitempty"`
Value *int64 `json:"value,omitempty"`
// e.g. milliseconds, bytes, millicores, epoch etc.
Unit string `json:"unit,omitempty"`
Max *int64 `json:"max,omitempty"`
Min *int64 `json:"min,omitempty"`
Status string `json:"status,omitempty"`
LastTransition string `json:"lastTransition,omitempty"`
Links []Link `json:"links,omitempty"`
}
Property is a realized v1.Property without the lookup definition +kubebuilder:object:generate=true
func (*Property) DeepCopy ¶ added in v1.0.317
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Property.
func (*Property) DeepCopyInto ¶ added in v1.0.317
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RelatedConfigDirection ¶ added in v1.0.459
type RelatedConfigDirection string
const ( RelatedConfigTypeIncoming RelatedConfigDirection = "incoming" RelatedConfigTypeOutgoing RelatedConfigDirection = "outgoing" )
type Responder ¶ added in v1.0.67
type Responder struct {
ID uuid.UUID `gorm:"primaryKey" json:"id"`
IncidentID uuid.UUID `json:"incident_id"`
Type string `json:"type"`
Index *int16 `json:"index,omitempty"`
PersonID *uuid.UUID `json:"person_id,omitempty"`
TeamID *uuid.UUID `json:"team_id,omitempty"`
ExternalID *string `json:"external_id,omitempty"`
Properties *string `gorm:"type:jsonb;default:null" json:"properties,omitempty"`
Acknowledged *time.Time `json:"acknowledged,omitempty" time_format:"postgres_timestamp"`
Resolved *time.Time `json:"resolved,omitempty" time_format:"postgres_timestamp"`
Closed *time.Time `json:"closed,omitempty" time_format:"postgres_timestamp"`
CreatedBy uuid.UUID `json:"created_by"`
CreatedAt time.Time `json:"created_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
UpdatedAt time.Time `json:"updated_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}
type Team ¶ added in v1.0.115
type Team struct {
ID uuid.UUID `gorm:"default:generate_ulid()"`
Name string `gorm:"not null" json:"name"`
Icon string `json:"icon,omitempty"`
Spec types.JSON `json:"spec,omitempty"`
Source string `json:"source,omitempty"`
CreatedBy uuid.UUID `gorm:"not null" json:"created_by"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
}
type Topology ¶ added in v1.0.72
type Topology struct {
ID uuid.UUID `gorm:"default:generate_ulid()"`
AgentID uuid.UUID `json:"agent_id"`
Name string `json:"name"`
Namespace string `json:"namespace"`
Labels types.JSONStringMap `json:"labels,omitempty" gorm:"default:null"`
Source string `json:"source"`
Spec types.JSON `gorm:"default:null"`
Schedule *string `json:"schedule,omitempty"`
CreatedBy *uuid.UUID `json:"created_by,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:create"`
UpdatedAt *time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}
Topology represents the topologies database table
func (Topology) GetUnpushed ¶ added in v1.0.362
func (Topology) OnConflictClause ¶ added in v1.0.438
func (t Topology) OnConflictClause() clause.OnConflict
Source Files
¶
- agents.go
- artifacts.go
- canary.go
- checks.go
- comments.go
- common.go
- components.go
- config.go
- connections.go
- event_queue.go
- evidences.go
- hypotheses.go
- incidents.go
- integrations.go
- job_history.go
- local_time.go
- logging_backends.go
- notifications.go
- people.go
- playbooks.go
- properties.go
- responders.go
- source.go
- teams.go
- topology.go
- zz_generated.deepcopy.go