Documentation ¶
Index ¶
- Variables
- func BoolPtr(b bool) *bool
- func HashPassword(pw string) (*string, error)
- func IsFinalJobRunStatus(status dbsqlc.JobRunStatus) bool
- func IsFinalStepRunStatus(status dbsqlc.StepRunStatus) bool
- func IsFinalWorkflowRunStatus(status dbsqlc.WorkflowRunStatus) bool
- func JobRunStatusPtr(status db.JobRunStatus) *db.JobRunStatus
- func StepRunEventReasonPtr(reason dbsqlc.StepRunEventReason) *dbsqlc.StepRunEventReason
- func StepRunEventSeverityPtr(severity dbsqlc.StepRunEventSeverity) *dbsqlc.StepRunEventSeverity
- func StepRunStatusPtr(status db.StepRunStatus) *db.StepRunStatus
- func StringPtr(s string) *string
- func VerifyPassword(hashedPW, candidate string) (bool, error)
- type APIRepository
- type APITokenRepository
- type ApiUpdateWorkerOpts
- type Callback
- type CreateAPITokenOpts
- type CreateDispatcherOpts
- type CreateEventOpts
- type CreateGroupKeyRunOpts
- type CreateLogLineOpts
- type CreateSNSIntegrationOpts
- type CreateSessionOpts
- type CreateStepRunEventOpts
- type CreateStreamEventOpts
- type CreateTenantAlertGroupOpts
- type CreateTenantInviteOpts
- type CreateTenantMemberOpts
- type CreateTenantOpts
- type CreateTickerOpts
- type CreateUserOpts
- type CreateWorkerOpts
- type CreateWorkflowConcurrencyOpts
- type CreateWorkflowJobOpts
- type CreateWorkflowRunOpt
- type CreateWorkflowRunOpts
- func GetCreateWorkflowRunOptsFromCron(cron, cronParentId string, ...) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromEvent(eventId string, workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, ...) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromManual(workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, ...) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromParent(workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, ...) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromSchedule(scheduledWorkflowId string, ...) (*CreateWorkflowRunOpts, error)
- type CreateWorkflowRunPullRequestOpts
- type CreateWorkflowSchedulesOpts
- type CreateWorkflowStepOpts
- type CreateWorkflowStepRateLimitOpts
- type CreateWorkflowTagOpts
- type CreateWorkflowVersionOpts
- type DesiredWorkerLabelOpts
- type DispatcherEngineRepository
- type EngineRepository
- type EngineTokenRepository
- type EntitlementsRepository
- type ErrDedupeValueExists
- type EventAPIRepository
- type EventEngineRepository
- type GetGroupKeyRunEngineRepository
- type GetQueueMetricsOpts
- type GetQueueMetricsResponse
- type GetTenantAlertingSettingsResponse
- type GetWorkflowMetricsOpts
- type HealthRepository
- type JobRunAPIRepository
- type JobRunEngineRepository
- type JobRunHasCycleError
- type Limit
- type ListAllJobRunsOpts
- type ListEventOpts
- type ListEventResult
- type ListGetGroupKeyRunsOpts
- type ListLogsOpts
- type ListLogsResult
- type ListPullRequestsForWorkflowRunOpts
- type ListStepRunArchivesOpts
- type ListStepRunArchivesResult
- type ListStepRunEventOpts
- type ListStepRunEventResult
- type ListStepRunsOpts
- type ListTenantInvitesOpts
- type ListTickerOpts
- type ListWorkersOpts
- type ListWorkflowRunRoundRobinsOpts
- type ListWorkflowRunsOpts
- type ListWorkflowRunsResult
- type ListWorkflowsOpts
- type ListWorkflowsResult
- type LogsAPIRepository
- type LogsEngineRepository
- type OAuthOpts
- type PlanLimitMap
- type QueueMetric
- type QueueStepRunResult
- type RateLimitEngineRepository
- type RefreshTimeoutBy
- type SNSRepository
- type SecurityCheckRepository
- type SlackRepository
- type StepRepository
- type StepRunAPIRepository
- type StepRunEngineRepository
- type StepRunUpdateInfo
- type StreamEventsEngineRepository
- type TenantAPIRepository
- type TenantAlertEmailGroupForSend
- type TenantAlertingAPIRepository
- type TenantAlertingEngineRepository
- type TenantEngineRepository
- type TenantInviteRepository
- type TenantLimitConfig
- type TenantLimitRepository
- type TickerEngineRepository
- type UpdateDispatcherOpts
- type UpdateGetGroupKeyRunOpts
- type UpdateJobRunLookupDataOpts
- type UpdateSessionOpts
- type UpdateStepRunOpts
- type UpdateStepRunOverridesDataOpts
- type UpdateTenantAlertGroupOpts
- type UpdateTenantAlertingSettingsOpts
- type UpdateTenantInviteOpts
- type UpdateTenantMemberOpts
- type UpdateTenantOpts
- type UpdateTickerOpts
- type UpdateUserOpts
- type UpdateWorkerOpts
- type UpsertRateLimitOpts
- type UpsertSlackWebhookOpts
- type UpsertTenantAlertingSettingsOpts
- type UpsertWebhookWorkerOpts
- type UpsertWorkerLabelOpts
- type UpsertWorkflowDeploymentConfigOpts
- type UserRepository
- type UserSessionRepository
- type WebhookWorkerEngineRepository
- type WebhookWorkerRepository
- type WorkerAPIRepository
- type WorkerEngineRepository
- type WorkerWithStepCount
- type WorkflowAPIRepository
- type WorkflowEngineRepository
- type WorkflowMetrics
- type WorkflowRunAPIRepository
- type WorkflowRunEngineRepository
- type WorkflowRunMetricsCountOpts
- type WorkflowRunsMetricsOpts
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNoWorkerAvailable = fmt.Errorf("no worker available")
View Source
var ErrPreflightReplayChildStepRunNotInFinalState = fmt.Errorf("child step run is not in a final state")
View Source
var ErrPreflightReplayStepRunNotInFinalState = fmt.Errorf("step run is not in a final state")
View Source
var ErrRateLimitExceeded = fmt.Errorf("rate limit exceeded")
View Source
var ErrStepRunIsNotAssigned = fmt.Errorf("step run is not assigned")
View Source
var ErrStepRunIsNotPending = fmt.Errorf("step run is not pending")
View Source
var (
ErrWorkflowRunNotFound = fmt.Errorf("workflow run not found")
)
Functions ¶
func HashPassword ¶
func IsFinalJobRunStatus ¶
func IsFinalJobRunStatus(status dbsqlc.JobRunStatus) bool
func IsFinalStepRunStatus ¶
func IsFinalStepRunStatus(status dbsqlc.StepRunStatus) bool
func IsFinalWorkflowRunStatus ¶
func IsFinalWorkflowRunStatus(status dbsqlc.WorkflowRunStatus) bool
func JobRunStatusPtr ¶
func JobRunStatusPtr(status db.JobRunStatus) *db.JobRunStatus
func StepRunEventReasonPtr ¶
func StepRunEventReasonPtr(reason dbsqlc.StepRunEventReason) *dbsqlc.StepRunEventReason
func StepRunEventSeverityPtr ¶
func StepRunEventSeverityPtr(severity dbsqlc.StepRunEventSeverity) *dbsqlc.StepRunEventSeverity
func StepRunStatusPtr ¶
func StepRunStatusPtr(status db.StepRunStatus) *db.StepRunStatus
func VerifyPassword ¶
Types ¶
type APIRepository ¶
type APIRepository interface { Health() HealthRepository APIToken() APITokenRepository Event() EventAPIRepository Log() LogsAPIRepository Tenant() TenantAPIRepository TenantAlertingSettings() TenantAlertingAPIRepository TenantInvite() TenantInviteRepository Workflow() WorkflowAPIRepository WorkflowRun() WorkflowRunAPIRepository JobRun() JobRunAPIRepository StepRun() StepRunAPIRepository Slack() SlackRepository SNS() SNSRepository Step() StepRepository Worker() WorkerAPIRepository UserSession() UserSessionRepository User() UserRepository SecurityCheck() SecurityCheckRepository WebhookWorker() WebhookWorkerRepository }
type APITokenRepository ¶
type APITokenRepository interface { GetAPITokenById(id string) (*db.APITokenModel, error) RevokeAPIToken(id string) error ListAPITokensByTenant(tenantId string) ([]db.APITokenModel, error) }
type ApiUpdateWorkerOpts ¶ added in v0.35.0
type ApiUpdateWorkerOpts struct {
IsPaused *bool
}
type CreateAPITokenOpts ¶
type CreateAPITokenOpts struct { // The id of the token ID string `validate:"required,uuid"` // When the token expires ExpiresAt time.Time // (optional) A tenant ID for this API token TenantId *string `validate:"omitempty,uuid"` // (optional) A name for this API token Name *string `validate:"omitempty,max=255"` Internal bool }
type CreateDispatcherOpts ¶
type CreateDispatcherOpts struct {
ID string `validate:"required,uuid"`
}
type CreateEventOpts ¶
type CreateEventOpts struct { // (required) the tenant id TenantId string `validate:"required,uuid"` // (required) the event key Key string `validate:"required"` // (optional) the event data Data []byte // (optional) the event that this event is replaying ReplayedEvent *string `validate:"omitempty,uuid"` // (optional) the event metadata AdditionalMetadata []byte }
type CreateGroupKeyRunOpts ¶
type CreateGroupKeyRunOpts struct { // (optional) the input data Input []byte }
type CreateLogLineOpts ¶
type CreateLogLineOpts struct { // The step run id StepRunId string `validate:"required,uuid"` // (optional) The time when the log line was created. CreatedAt *time.Time // (required) The message of the log line. Message string `validate:"required,min=1,max=10000"` // (optional) The level of the log line. Level *string `validate:"omitnil,oneof=INFO ERROR WARN DEBUG"` // (optional) The metadata of the log line. Metadata []byte }
type CreateSNSIntegrationOpts ¶
type CreateSNSIntegrationOpts struct {
TopicArn string `validate:"required,min=1,max=255"`
}
type CreateSessionOpts ¶
type CreateStepRunEventOpts ¶
type CreateStepRunEventOpts struct { EventMessage *string EventReason *dbsqlc.StepRunEventReason EventSeverity *dbsqlc.StepRunEventSeverity EventData map[string]interface{} }
type CreateStreamEventOpts ¶
type CreateStreamEventOpts struct { // The step run id StepRunId string `validate:"required,uuid"` // (optional) The time when the StreamEvent was created. CreatedAt *time.Time // (required) The message of the Stream Event. Message []byte // (optional) The metadata of the Stream Event. Metadata []byte }
type CreateTenantAlertGroupOpts ¶
type CreateTenantAlertGroupOpts struct {
Emails []string `validate:"required,dive,email,max=255"`
}
type CreateTenantInviteOpts ¶
type CreateTenantInviteOpts struct { // (required) the invitee email InviteeEmail string `validate:"required,email"` // (required) the inviter email InviterEmail string `validate:"required,email"` // (required) when the invite expires ExpiresAt time.Time `validate:"required"` // (required) the role of the invitee Role string `validate:"omitempty,oneof=OWNER ADMIN MEMBER"` }
type CreateTenantMemberOpts ¶
type CreateTenantOpts ¶
type CreateTenantOpts struct { // (required) the tenant name Name string `validate:"required"` // (required) the tenant slug Slug string `validate:"required,hatchetName"` // (optional) the tenant ID ID *string `validate:"omitempty,uuid"` // (optional) the tenant data retention period DataRetentionPeriod *string `validate:"omitempty,duration"` }
type CreateTickerOpts ¶
type CreateTickerOpts struct {
ID string `validate:"required,uuid"`
}
type CreateUserOpts ¶
type CreateWorkerOpts ¶
type CreateWorkerOpts struct { // The id of the dispatcher DispatcherId string `validate:"required,uuid"` // The maximum number of runs this worker can run at a time MaxRuns *int `validate:"omitempty,gte=1"` // The name of the worker Name string `validate:"required,hatchetName"` // The name of the service Services []string `validate:"dive,hatchetName"` // A list of actions this worker can run Actions []string `validate:"dive,actionId"` }
type CreateWorkflowConcurrencyOpts ¶
type CreateWorkflowConcurrencyOpts struct { // (required) the action id for getting the concurrency group Action string `validate:"required,actionId"` // (optional) the maximum number of concurrent workflow runs, default 1 MaxRuns *int32 // (optional) the strategy to use when the concurrency limit is reached, default CANCEL_IN_PROGRESS LimitStrategy *string `validate:"omitnil,oneof=CANCEL_IN_PROGRESS DROP_NEWEST QUEUE_NEWEST GROUP_ROUND_ROBIN"` }
type CreateWorkflowJobOpts ¶
type CreateWorkflowJobOpts struct { // (required) the job name Name string `validate:"required,hatchetName"` // (optional) the job description Description *string // (required) the job steps Steps []CreateWorkflowStepOpts `validate:"required,min=1,dive"` Kind string `validate:"required,oneof=DEFAULT ON_FAILURE"` }
type CreateWorkflowRunOpt ¶
type CreateWorkflowRunOpt func(*CreateWorkflowRunOpts)
func WithParent ¶
type CreateWorkflowRunOpts ¶
type CreateWorkflowRunOpts struct { // (optional) the workflow run display name DisplayName *string // (required) the workflow version id WorkflowVersionId string `validate:"required,uuid"` ManualTriggerInput *string `` /* 197-byte string literal not displayed */ // (optional) the event id that triggered the workflow run TriggeringEventId *string `` /* 204-byte string literal not displayed */ // (optional) the cron schedule that triggered the workflow run Cron *string `` /* 230-byte string literal not displayed */ CronParentId *string `` /* 230-byte string literal not displayed */ // (optional) the scheduled trigger ScheduledWorkflowId *string `` /* 200-byte string literal not displayed */ InputData []byte TriggeredBy string GetGroupKeyRun *CreateGroupKeyRunOpts `validate:"omitempty"` // (optional) the parent workflow run which this workflow run was triggered from ParentId *string `validate:"omitempty,uuid"` // (optional) the parent step run id which this workflow run was triggered from ParentStepRunId *string `validate:"omitempty,uuid"` // (optional) the child key of the workflow run, if this is a child run of a different workflow ChildKey *string // (optional) the child index of the workflow run, if this is a child run of a different workflow ChildIndex *int // (optional) additional metadata for the workflow run AdditionalMetadata map[string]interface{} `validate:"omitempty"` // (optional) the desired worker id for sticky state DesiredWorkerId *string `validate:"omitempty,uuid"` // (optional) the deduplication value for the workflow run DedupeValue *string `validate:"omitempty"` }
func GetCreateWorkflowRunOptsFromCron ¶
func GetCreateWorkflowRunOptsFromCron( cron, cronParentId string, workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, additionalMetadata map[string]interface{}, ) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromEvent ¶
func GetCreateWorkflowRunOptsFromEvent( eventId string, workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, additionalMetadata map[string]interface{}, ) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromManual ¶
func GetCreateWorkflowRunOptsFromManual( workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, additionalMetadata map[string]interface{}, ) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromParent ¶
func GetCreateWorkflowRunOptsFromParent( workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, parentId, parentStepRunId string, childIndex int, childKey *string, additionalMetadata map[string]interface{}, parentAdditionalMetadata map[string]interface{}, ) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromSchedule ¶
func GetCreateWorkflowRunOptsFromSchedule( scheduledWorkflowId string, workflowVersion *dbsqlc.GetWorkflowVersionForEngineRow, input []byte, additionalMetadata map[string]interface{}, fs ...CreateWorkflowRunOpt, ) (*CreateWorkflowRunOpts, error)
type CreateWorkflowStepOpts ¶
type CreateWorkflowStepOpts struct { // (required) the step name ReadableId string `validate:"hatchetName"` // (required) the step action id Action string `validate:"required,actionId"` // (optional) the step timeout Timeout *string `validate:"omitnil,duration"` // (optional) the parents that this step depends on Parents []string `validate:"dive,hatchetName"` // (optional) the custom user data for the step, serialized as a json string UserData *string `validate:"omitnil,json"` // (optional) the step retry max Retries *int `validate:"omitempty,min=0"` // (optional) rate limits for this step RateLimits []CreateWorkflowStepRateLimitOpts `validate:"dive"` // (optional) desired worker affinity state for this step DesiredWorkerLabels map[string]DesiredWorkerLabelOpts `validate:"omitempty"` }
type CreateWorkflowTagOpts ¶
type CreateWorkflowVersionOpts ¶
type CreateWorkflowVersionOpts struct { // (required) the workflow name Name string `validate:"required,hatchetName"` Tags []CreateWorkflowTagOpts `validate:"dive"` // (optional) the workflow description Description *string `json:"description,omitempty"` // (optional) the workflow version Version *string `json:"version,omitempty"` // (optional) event triggers for the workflow EventTriggers []string // (optional) cron triggers for the workflow CronTriggers []string `validate:"dive,cron"` // (optional) the input bytes for the cron triggers CronInput []byte // (optional) scheduled triggers for the workflow ScheduledTriggers []time.Time // (required) the workflow jobs Jobs []CreateWorkflowJobOpts `validate:"required,min=1,dive"` OnFailureJob *CreateWorkflowJobOpts `json:"onFailureJob,omitempty" validate:"omitempty"` // (optional) the workflow concurrency groups Concurrency *CreateWorkflowConcurrencyOpts `json:"concurrency,omitempty" validator:"omitnil"` // (optional) the amount of time for step runs to wait to be scheduled before timing out ScheduleTimeout *string `validate:"omitempty,duration"` // (optional) sticky strategy Sticky *string `validate:"omitempty,oneof=SOFT HARD"` // (optional) the workflow kind Kind *string `validate:"omitempty,oneof=FUNCTION DURABLE DAG"` }
func (*CreateWorkflowVersionOpts) Checksum ¶
func (o *CreateWorkflowVersionOpts) Checksum() (string, error)
type DesiredWorkerLabelOpts ¶ added in v0.40.0
type DesiredWorkerLabelOpts struct { // (required) the label key Key string `validate:"required"` // (required if StringValue is nil) the label integer value IntValue *int32 `validate:"omitnil,required_without=StrValue"` // (required if StrValue is nil) the label string value StrValue *string `validate:"omitnil,required_without=IntValue"` // (optional) if the label is required Required *bool `validate:"omitempty"` // (optional) the weight of the label for scheduling (default: 100) Weight *int32 `validate:"omitempty"` // (optional) the label comparator for scheduling (default: EQUAL) Comparator *string `validate:"omitempty,oneof=EQUAL NOT_EQUAL GREATER_THAN LESS_THAN GREATER_THAN_OR_EQUAL LESS_THAN_OR_EQUAL"` }
type DispatcherEngineRepository ¶
type DispatcherEngineRepository interface { // CreateNewDispatcher creates a new dispatcher for a given tenant. CreateNewDispatcher(ctx context.Context, opts *CreateDispatcherOpts) (*dbsqlc.Dispatcher, error) // UpdateDispatcher updates a dispatcher for a given tenant. UpdateDispatcher(ctx context.Context, dispatcherId string, opts *UpdateDispatcherOpts) (*dbsqlc.Dispatcher, error) Delete(ctx context.Context, dispatcherId string) error UpdateStaleDispatchers(ctx context.Context, onStale func(dispatcherId string, getValidDispatcherId func() string) error) error }
type EngineRepository ¶
type EngineRepository interface { Health() HealthRepository APIToken() EngineTokenRepository Dispatcher() DispatcherEngineRepository Event() EventEngineRepository GetGroupKeyRun() GetGroupKeyRunEngineRepository JobRun() JobRunEngineRepository StepRun() StepRunEngineRepository Tenant() TenantEngineRepository TenantAlertingSettings() TenantAlertingEngineRepository Ticker() TickerEngineRepository Worker() WorkerEngineRepository Workflow() WorkflowEngineRepository WorkflowRun() WorkflowRunEngineRepository StreamEvent() StreamEventsEngineRepository Log() LogsEngineRepository RateLimit() RateLimitEngineRepository WebhookWorker() WebhookWorkerEngineRepository }
type EngineTokenRepository ¶
type EntitlementsRepository ¶
type EntitlementsRepository interface {
TenantLimit() TenantLimitRepository
}
type ErrDedupeValueExists ¶ added in v0.40.0
type ErrDedupeValueExists struct {
DedupeValue string
}
func (ErrDedupeValueExists) Error ¶ added in v0.40.0
func (e ErrDedupeValueExists) Error() string
type EventAPIRepository ¶
type EventAPIRepository interface { // ListEvents returns all events for a given tenant. ListEvents(ctx context.Context, tenantId string, opts *ListEventOpts) (*ListEventResult, error) // ListEventKeys returns all unique event keys for a given tenant. ListEventKeys(tenantId string) ([]string, error) // GetEventById returns an event by id. GetEventById(id string) (*db.EventModel, error) // ListEventsById returns a list of events by id. ListEventsById(tenantId string, ids []string) ([]db.EventModel, error) }
type EventEngineRepository ¶
type EventEngineRepository interface { RegisterCreateCallback(callback Callback[*dbsqlc.Event]) // CreateEvent creates a new event for a given tenant. CreateEvent(ctx context.Context, opts *CreateEventOpts) (*dbsqlc.Event, error) // GetEventForEngine returns an event for the engine by id. GetEventForEngine(ctx context.Context, tenantId, id string) (*dbsqlc.Event, error) ListEventsByIds(ctx context.Context, tenantId string, ids []string) ([]*dbsqlc.Event, error) // DeleteExpiredEvents deletes events that were created before the given time. It returns the number of deleted events // and the number of non-deleted events that match the conditions. SoftDeleteExpiredEvents(ctx context.Context, tenantId string, before time.Time) (bool, error) // ClearEventPayloadData removes the potentially large payload data of events that were created before the given time. // It returns the number of events that were updated and the number of events that were not updated. ClearEventPayloadData(ctx context.Context, tenantId string) (bool, error) }
type GetGroupKeyRunEngineRepository ¶
type GetGroupKeyRunEngineRepository interface { // ListStepRunsToRequeue returns a list of step runs which are in a requeueable state. ListGetGroupKeyRunsToRequeue(ctx context.Context, tenantId string) ([]*dbsqlc.GetGroupKeyRun, error) ListGetGroupKeyRunsToReassign(ctx context.Context, tenantId string) ([]*dbsqlc.GetGroupKeyRun, error) AssignGetGroupKeyRunToWorker(ctx context.Context, tenantId, getGroupKeyRunId string) (workerId string, dispatcherId string, err error) AssignGetGroupKeyRunToTicker(ctx context.Context, tenantId, getGroupKeyRunId string) (tickerId string, err error) UpdateGetGroupKeyRun(ctx context.Context, tenantId, getGroupKeyRunId string, opts *UpdateGetGroupKeyRunOpts) (*dbsqlc.GetGroupKeyRunForEngineRow, error) GetGroupKeyRunForEngine(ctx context.Context, tenantId, getGroupKeyRunId string) (*dbsqlc.GetGroupKeyRunForEngineRow, error) }
type GetQueueMetricsOpts ¶
type GetQueueMetricsResponse ¶
type GetQueueMetricsResponse struct { Total QueueMetric `json:"total"` ByWorkflowId map[string]QueueMetric `json:"by_workflow"` }
type GetTenantAlertingSettingsResponse ¶
type GetTenantAlertingSettingsResponse struct { Settings *dbsqlc.TenantAlertingSettings SlackWebhooks []*dbsqlc.SlackAppWebhook EmailGroups []*TenantAlertEmailGroupForSend Tenant *dbsqlc.Tenant }
type GetWorkflowMetricsOpts ¶
type HealthRepository ¶
type JobRunAPIRepository ¶
type JobRunEngineRepository ¶
type JobRunEngineRepository interface { // SetJobRunStatusRunning resets the status of a job run to a RUNNING status. This is useful if a step // run is being manually replayed, but shouldn't be used by most callers. SetJobRunStatusRunning(ctx context.Context, tenantId, jobRunId string) error ListJobRunsForWorkflowRun(ctx context.Context, tenantId, workflowRunId string) ([]*dbsqlc.ListJobRunsForWorkflowRunRow, error) GetJobRunByWorkflowRunIdAndJobId(ctx context.Context, tenantId, workflowRunId, jobId string) (*dbsqlc.GetJobRunByWorkflowRunIdAndJobIdRow, error) ClearJobRunPayloadData(ctx context.Context, tenantId string) (bool, error) }
type JobRunHasCycleError ¶
type JobRunHasCycleError struct {
JobName string
}
func (*JobRunHasCycleError) Error ¶
func (e *JobRunHasCycleError) Error() string
type ListAllJobRunsOpts ¶
type ListAllJobRunsOpts struct { TickerId *string NoTickerId *bool Status *db.JobRunStatus }
type ListEventOpts ¶
type ListEventOpts struct { // (optional) a list of event keys to filter by Keys []string // (optional) a list of workflow IDs to filter by Workflows []string // (optional) a list of workflow run statuses to filter by WorkflowRunStatus []db.WorkflowRunStatus // (optional) number of events to skip Offset *int // (optional) number of events to return Limit *int // (optional) a search query Search *string // (optional) the event that this event is replaying ReplayedEvent *string `validate:"omitempty,uuid"` // (optional) the order by field OrderBy *string `validate:"omitempty,oneof=createdAt"` // (optional) the order direction OrderDirection *string `validate:"omitempty,oneof=ASC DESC"` // (optional) the event metadata AdditionalMetadata []byte }
type ListEventResult ¶
type ListEventResult struct { Rows []*dbsqlc.ListEventsRow Count int }
type ListGetGroupKeyRunsOpts ¶
type ListGetGroupKeyRunsOpts struct {
Status *db.StepRunStatus
}
type ListLogsOpts ¶
type ListLogsOpts struct { // (optional) number of logs to skip Offset *int // (optional) number of logs to return Limit *int `validate:"omitnil,min=1,max=1000"` // (optional) a list of log levels to filter by Levels []string `validate:"omitnil,dive,oneof=INFO ERROR WARN DEBUG"` // (optional) a step run id to filter by StepRunId *string `validate:"omitempty,uuid"` // (optional) a search query Search *string // (optional) the order by field OrderBy *string `validate:"omitempty,oneof=createdAt"` // (optional) the order direction OrderDirection *string `validate:"omitempty,oneof=ASC DESC"` }
type ListLogsResult ¶
type ListPullRequestsForWorkflowRunOpts ¶
type ListPullRequestsForWorkflowRunOpts struct {
State *string
}
type ListStepRunArchivesOpts ¶ added in v0.34.2
type ListStepRunArchivesResult ¶ added in v0.34.2
type ListStepRunArchivesResult struct { Rows []*dbsqlc.StepRunResultArchive Count int }
type ListStepRunEventOpts ¶
type ListStepRunEventResult ¶
type ListStepRunEventResult struct { Rows []*dbsqlc.StepRunEvent Count int }
type ListStepRunsOpts ¶
type ListStepRunsOpts struct { JobRunId *string `validate:"omitempty,uuid"` WorkflowRunIds []string `validate:"dive,uuid"` Status *dbsqlc.StepRunStatus }
type ListTenantInvitesOpts ¶
type ListTickerOpts ¶
type ListWorkersOpts ¶
type ListWorkflowRunRoundRobinsOpts ¶
type ListWorkflowRunRoundRobinsOpts struct { // (optional) the workflow id WorkflowId *string `validate:"omitempty,uuid"` // (optional) the workflow version id WorkflowVersionId *string `validate:"omitempty,uuid"` // (optional) the status of the workflow run Status *db.WorkflowRunStatus // (optional) number of events to skip Offset *int // (optional) number of events to return Limit *int }
type ListWorkflowRunsOpts ¶
type ListWorkflowRunsOpts struct { // (optional) the workflow id WorkflowId *string `validate:"omitempty,uuid"` // (optional) the workflow version id WorkflowVersionId *string `validate:"omitempty,uuid"` // (optional) a list of workflow run ids to filter by Ids []string `validate:"omitempty,dive,uuid"` // (optional) the parent workflow run id ParentId *string `validate:"omitempty,uuid"` // (optional) the parent step run id ParentStepRunId *string `validate:"omitempty,uuid"` // (optional) the event id that triggered the workflow run EventId *string `validate:"omitempty,uuid"` // (optional) the group key for the workflow run GroupKey *string // (optional) the status of the workflow run Statuses *[]db.WorkflowRunStatus // (optional) a list of kinds to filter by Kinds *[]dbsqlc.WorkflowKind // (optional) number of events to skip Offset *int // (optional) number of events to return Limit *int // (optional) the order by field OrderBy *string `validate:"omitempty,oneof=createdAt finishedAt startedAt duration"` // (optional) the order direction OrderDirection *string `validate:"omitempty,oneof=ASC DESC"` // (optional) a time after which the run was created CreatedAfter *time.Time // (optional) a time before which the run was finished FinishedAfter *time.Time // (optional) exact metadata to filter by AdditionalMetadata map[string]interface{} `validate:"omitempty"` }
type ListWorkflowRunsResult ¶
type ListWorkflowRunsResult struct { Rows []*dbsqlc.ListWorkflowRunsRow Count int }
type ListWorkflowsOpts ¶
type ListWorkflowsResult ¶
type LogsAPIRepository ¶
type LogsAPIRepository interface { // ListLogLines returns a list of log lines for a given step run. ListLogLines(tenantId string, opts *ListLogsOpts) (*ListLogsResult, error) }
type LogsEngineRepository ¶
type PlanLimitMap ¶ added in v0.33.2
type QueueMetric ¶
type QueueMetric struct { // the total number of PENDING_ASSIGNMENT step runs in the queue PendingAssignment int `json:"pending_assignment"` // the total number of PENDING step runs in the queue Pending int `json:"pending"` // the total number of RUNNING step runs in the queue Running int `json:"running"` }
type QueueStepRunResult ¶
type RefreshTimeoutBy ¶
type RefreshTimeoutBy struct {
IncrementTimeoutBy string `validate:"required,duration"`
}
type SNSRepository ¶
type SNSRepository interface { GetSNSIntegration(tenantId, topicArn string) (*db.SNSIntegrationModel, error) GetSNSIntegrationById(id string) (*db.SNSIntegrationModel, error) CreateSNSIntegration(tenantId string, opts *CreateSNSIntegrationOpts) (*db.SNSIntegrationModel, error) ListSNSIntegrations(tenantId string) ([]db.SNSIntegrationModel, error) DeleteSNSIntegration(tenantId, id string) error }
type SecurityCheckRepository ¶ added in v0.34.2
type SlackRepository ¶
type SlackRepository interface { UpsertSlackWebhook(tenantId string, opts *UpsertSlackWebhookOpts) (*db.SlackAppWebhookModel, error) ListSlackWebhooks(tenantId string) ([]db.SlackAppWebhookModel, error) GetSlackWebhookById(id string) (*db.SlackAppWebhookModel, error) DeleteSlackWebhook(tenantId string, id string) error }
type StepRepository ¶
type StepRunAPIRepository ¶
type StepRunAPIRepository interface { GetStepRunById(tenantId, stepRunId string) (*db.StepRunModel, error) GetFirstArchivedStepRunResult(tenantId, stepRunId string) (*db.StepRunResultArchiveModel, error) ListStepRunEvents(stepRunId string, opts *ListStepRunEventOpts) (*ListStepRunEventResult, error) ListStepRunArchives(tenantId, stepRunId string, opts *ListStepRunArchivesOpts) (*ListStepRunArchivesResult, error) }
type StepRunEngineRepository ¶
type StepRunEngineRepository interface { // ListStepRunsForWorkflowRun returns a list of step runs for a workflow run. ListStepRuns(ctx context.Context, tenantId string, opts *ListStepRunsOpts) ([]*dbsqlc.GetStepRunForEngineRow, error) // ListStepRunsToRequeue returns a list of step runs which are in a requeueable state. ListStepRunsToRequeue(ctx context.Context, tenantId string) ([]*dbsqlc.GetStepRunForEngineRow, error) // ListStepRunsToReassign returns a list of step runs which are in a reassignable state. ListStepRunsToReassign(ctx context.Context, tenantId string) ([]*dbsqlc.GetStepRunForEngineRow, error) ListStepRunsToTimeout(ctx context.Context, tenantId string) ([]*dbsqlc.GetStepRunForEngineRow, error) UpdateStepRun(ctx context.Context, tenantId, stepRunId string, opts *UpdateStepRunOpts) (*dbsqlc.GetStepRunForEngineRow, *StepRunUpdateInfo, error) ReplayStepRun(ctx context.Context, tenantId, stepRunId string, opts *UpdateStepRunOpts) (*dbsqlc.GetStepRunForEngineRow, error) // PreflightCheckReplayStepRun checks if a step run can be replayed. If it can, it will return nil. PreflightCheckReplayStepRun(ctx context.Context, tenantId, stepRunId string) error CreateStepRunEvent(ctx context.Context, tenantId, stepRunId string, opts CreateStepRunEventOpts) error UnlinkStepRunFromWorker(ctx context.Context, tenantId, stepRunId string) error ReleaseStepRunSemaphore(ctx context.Context, tenantId, stepRunId string) error // UpdateStepRunOverridesData updates the overrides data field in the input for a step run. This returns the input // bytes. UpdateStepRunOverridesData(ctx context.Context, tenantId, stepRunId string, opts *UpdateStepRunOverridesDataOpts) ([]byte, error) UpdateStepRunInputSchema(ctx context.Context, tenantId, stepRunId string, schema []byte) ([]byte, error) AssignStepRunToWorker(ctx context.Context, stepRun *dbsqlc.GetStepRunForEngineRow) (workerId string, dispatcherId string, err error) UnassignStepRunFromWorker(ctx context.Context, tenantId, stepRunId string) error GetStepRunForEngine(ctx context.Context, tenantId, stepRunId string) (*dbsqlc.GetStepRunForEngineRow, error) GetStepRunDataForEngine(ctx context.Context, tenantId, stepRunId string) (*dbsqlc.GetStepRunDataForEngineRow, error) GetStepRunMetaForEngine(ctx context.Context, tenantId, stepRunId string) (*dbsqlc.GetStepRunMetaRow, error) // QueueStepRun is like UpdateStepRun, except that it will only update the step run if it is in // a pending state. QueueStepRun(ctx context.Context, tenantId, stepRunId string, opts *UpdateStepRunOpts) (*dbsqlc.GetStepRunForEngineRow, error) QueueStepRuns(ctx context.Context, tenantId string) ([]QueueStepRunResult, bool, error) ListStartableStepRuns(ctx context.Context, tenantId, jobRunId string, parentStepRunId *string) ([]*dbsqlc.GetStepRunForEngineRow, error) ArchiveStepRunResult(ctx context.Context, tenantId, stepRunId string) error RefreshTimeoutBy(ctx context.Context, tenantId, stepRunId string, opts RefreshTimeoutBy) (*dbsqlc.StepRun, error) ResolveRelatedStatuses(ctx context.Context, tenantId pgtype.UUID, stepRunId pgtype.UUID) (*StepRunUpdateInfo, error) DeferredStepRunEvent( stepRunId pgtype.UUID, reason dbsqlc.StepRunEventReason, severity dbsqlc.StepRunEventSeverity, message string, data map[string]interface{}, ) ClearStepRunPayloadData(ctx context.Context, tenantId string) (bool, error) }
type StepRunUpdateInfo ¶
type StreamEventsEngineRepository ¶
type StreamEventsEngineRepository interface { // PutStreamEvent creates a new StreamEvent line. PutStreamEvent(ctx context.Context, tenantId string, opts *CreateStreamEventOpts) (*dbsqlc.StreamEvent, error) // GetStreamEvent returns a StreamEvent line by id. GetStreamEvent(ctx context.Context, tenantId string, streamEventId int64) (*dbsqlc.StreamEvent, error) // CleanupStreamEvents deletes all stale StreamEvents. CleanupStreamEvents(ctx context.Context) error // GetStreamEventMeta GetStreamEventMeta(ctx context.Context, tenantId string, stepRunId string) (*dbsqlc.GetStreamEventMetaRow, error) }
type TenantAPIRepository ¶
type TenantAPIRepository interface { // CreateTenant creates a new tenant. CreateTenant(opts *CreateTenantOpts) (*dbsqlc.Tenant, error) // CreateTenant creates a new tenant. UpdateTenant(tenantId string, opts *UpdateTenantOpts) (*db.TenantModel, error) // GetTenantByID returns the tenant with the given id GetTenantByID(tenantId string) (*db.TenantModel, error) // GetTenantBySlug returns the tenant with the given slug GetTenantBySlug(slug string) (*db.TenantModel, error) // CreateTenantMember creates a new member in the tenant CreateTenantMember(tenantId string, opts *CreateTenantMemberOpts) (*db.TenantMemberModel, error) // GetTenantMemberByID returns the tenant member with the given id GetTenantMemberByID(memberId string) (*db.TenantMemberModel, error) // GetTenantMemberByUserID returns the tenant member with the given user id GetTenantMemberByUserID(tenantId string, userId string) (*db.TenantMemberModel, error) // GetTenantMemberByEmail returns the tenant member with the given email GetTenantMemberByEmail(tenantId string, email string) (*db.TenantMemberModel, error) // ListTenantMembers returns the list of tenant members for the given tenant ListTenantMembers(tenantId string) ([]db.TenantMemberModel, error) // UpdateTenantMember updates the tenant member with the given id UpdateTenantMember(memberId string, opts *UpdateTenantMemberOpts) (*db.TenantMemberModel, error) // DeleteTenantMember deletes the tenant member with the given id DeleteTenantMember(memberId string) (*db.TenantMemberModel, error) // GetQueueMetrics returns the queue metrics for the given tenant GetQueueMetrics(tenantId string, opts *GetQueueMetricsOpts) (*GetQueueMetricsResponse, error) }
type TenantAlertingAPIRepository ¶
type TenantAlertingAPIRepository interface { UpsertTenantAlertingSettings(tenantId string, opts *UpsertTenantAlertingSettingsOpts) (*db.TenantAlertingSettingsModel, error) GetTenantAlertingSettings(tenantId string) (*db.TenantAlertingSettingsModel, error) CreateTenantAlertGroup(tenantId string, opts *CreateTenantAlertGroupOpts) (*db.TenantAlertEmailGroupModel, error) UpdateTenantAlertGroup(id string, opts *UpdateTenantAlertGroupOpts) (*db.TenantAlertEmailGroupModel, error) ListTenantAlertGroups(tenantId string) ([]db.TenantAlertEmailGroupModel, error) GetTenantAlertGroupById(id string) (*db.TenantAlertEmailGroupModel, error) DeleteTenantAlertGroup(tenantId string, id string) error }
type TenantAlertingEngineRepository ¶
type TenantAlertingEngineRepository interface { GetTenantAlertingSettings(ctx context.Context, tenantId string) (*GetTenantAlertingSettingsResponse, error) UpdateTenantAlertingSettings(ctx context.Context, tenantId string, opts *UpdateTenantAlertingSettingsOpts) error }
type TenantEngineRepository ¶
type TenantEngineRepository interface { // ListTenants lists all tenants in the instance ListTenants(ctx context.Context) ([]*dbsqlc.Tenant, error) // ListTenantsByPartition lists all tenants in the given partition ListTenantsByControllerPartition(ctx context.Context, controllerPartitionId string) ([]*dbsqlc.Tenant, error) UpdatePartitionHeartbeat(ctx context.Context, partitionId string) error ListTenantsByWorkerPartition(ctx context.Context, workerPartitionId string) ([]*dbsqlc.Tenant, error) // CreateEnginePartition creates a new partition for tenants within the engine CreateControllerPartition(ctx context.Context, id string) error DeleteControllerPartition(ctx context.Context, id string) error RebalanceAllControllerPartitions(ctx context.Context) error RebalanceInactiveControllerPartitions(ctx context.Context) error CreateTenantWorkerPartition(ctx context.Context, id string) error DeleteTenantWorkerPartition(ctx context.Context, id string) error RebalanceAllTenantWorkerPartitions(ctx context.Context) error RebalanceInactiveTenantWorkerPartitions(ctx context.Context) error // GetTenantByID returns the tenant with the given id GetTenantByID(ctx context.Context, tenantId string) (*dbsqlc.Tenant, error) }
type TenantInviteRepository ¶
type TenantInviteRepository interface { // CreateTenantInvite creates a new tenant invite with the given options CreateTenantInvite(tenantId string, opts *CreateTenantInviteOpts) (*db.TenantInviteLinkModel, error) // GetTenantInvite returns the tenant invite with the given id GetTenantInvite(id string) (*db.TenantInviteLinkModel, error) // ListTenantInvitesByEmail returns the list of tenant invites for the given invitee email for invites // which are not expired ListTenantInvitesByEmail(email string) ([]db.TenantInviteLinkModel, error) // ListTenantInvitesByTenantId returns the list of tenant invites for the given tenant id ListTenantInvitesByTenantId(tenantId string, opts *ListTenantInvitesOpts) ([]db.TenantInviteLinkModel, error) // UpdateTenantInvite updates the tenant invite with the given id UpdateTenantInvite(id string, opts *UpdateTenantInviteOpts) (*db.TenantInviteLinkModel, error) // DeleteTenantInvite deletes the tenant invite with the given id DeleteTenantInvite(id string) error }
type TenantLimitConfig ¶
type TenantLimitConfig struct {
EnforceLimits bool
}
type TenantLimitRepository ¶
type TenantLimitRepository interface { GetLimits(ctx context.Context, tenantId string) ([]*dbsqlc.TenantResourceLimit, error) // CanCreateWorkflowRun checks if the tenant can create a resource CanCreate(ctx context.Context, resource dbsqlc.LimitResource, tenantId string) (bool, int, error) // MeterWorkflowRun increments the tenant's resource count Meter(ctx context.Context, resource dbsqlc.LimitResource, tenantId string) (*dbsqlc.TenantResourceLimit, error) // Create new Tenant Resource Limits for a tenant SelectOrInsertTenantLimits(ctx context.Context, tenantId string, plan *string) error // UpsertTenantLimits updates or inserts new tenant limits UpsertTenantLimits(ctx context.Context, tenantId string, plan *string) error // Resolve all tenant resource limits ResolveAllTenantResourceLimits(ctx context.Context) error // SetPlanLimitMap sets the plan limit map SetPlanLimitMap(planLimitMap PlanLimitMap) error DefaultLimits() []Limit }
type TickerEngineRepository ¶
type TickerEngineRepository interface { // CreateNewTicker creates a new ticker. CreateNewTicker(ctx context.Context, opts *CreateTickerOpts) (*dbsqlc.Ticker, error) // UpdateTicker updates a ticker. UpdateTicker(ctx context.Context, tickerId string, opts *UpdateTickerOpts) (*dbsqlc.Ticker, error) // ListTickers lists tickers. ListTickers(ctx context.Context, opts *ListTickerOpts) ([]*dbsqlc.Ticker, error) // Delete deletes a ticker. Delete(ctx context.Context, tickerId string) error // PollJobRuns looks for get group key runs who are close to past their timeoutAt value and are in a running state PollGetGroupKeyRuns(ctx context.Context, tickerId string) ([]*dbsqlc.GetGroupKeyRun, error) // PollCronSchedules returns all cron schedules which should be managed by the ticker PollCronSchedules(ctx context.Context, tickerId string) ([]*dbsqlc.PollCronSchedulesRow, error) PollScheduledWorkflows(ctx context.Context, tickerId string) ([]*dbsqlc.PollScheduledWorkflowsRow, error) PollTenantAlerts(ctx context.Context, tickerId string) ([]*dbsqlc.PollTenantAlertsRow, error) PollExpiringTokens(ctx context.Context) ([]*dbsqlc.PollExpiringTokensRow, error) PollTenantResourceLimitAlerts(ctx context.Context) ([]*dbsqlc.TenantResourceLimitAlert, error) PollUnresolvedFailedStepRuns(ctx context.Context) ([]*dbsqlc.PollUnresolvedFailedStepRunsRow, error) }
type UpdateDispatcherOpts ¶
type UpdateSessionOpts ¶
type UpdateStepRunOpts ¶
type UpdateStepRunOpts struct { IsRerun bool RequeueAfter *time.Time ScheduleTimeoutAt *time.Time Status *db.StepRunStatus StartedAt *time.Time FailedAt *time.Time FinishedAt *time.Time CancelledAt *time.Time CancelledReason *string Error *string Input []byte Output []byte RetryCount *int Event *CreateStepRunEventOpts }
type UpdateTenantAlertGroupOpts ¶
type UpdateTenantAlertGroupOpts struct {
Emails []string `validate:"required,dive,email,max=255"`
}
type UpdateTenantInviteOpts ¶
type UpdateTenantMemberOpts ¶
type UpdateTenantMemberOpts struct {
Role *string `validate:"omitempty,oneof=OWNER ADMIN MEMBER"`
}
type UpdateTenantOpts ¶
type UpdateTickerOpts ¶
type UpdateUserOpts ¶
type UpdateWorkerOpts ¶
type UpdateWorkerOpts struct { // The id of the dispatcher DispatcherId *string `validate:"omitempty,uuid"` // When the last worker heartbeat was LastHeartbeatAt *time.Time // If the worker is active and accepting new runs IsActive *bool // A list of actions this worker can run Actions []string `validate:"dive,actionId"` }
type UpsertRateLimitOpts ¶
type UpsertSlackWebhookOpts ¶
type UpsertWebhookWorkerOpts ¶ added in v0.34.0
type UpsertWorkerLabelOpts ¶ added in v0.40.0
type UpsertWorkflowDeploymentConfigOpts ¶
type UpsertWorkflowDeploymentConfigOpts struct { // (required) the github app installation id GithubAppInstallationId string `validate:"required,uuid"` // (required) the github repository name GitRepoName string `validate:"required"` // (required) the github repository owner GitRepoOwner string `validate:"required"` // (required) the github repository branch GitRepoBranch string `validate:"required"` }
type UserRepository ¶
type UserRepository interface { // GetUserByID returns the user with the given id GetUserByID(id string) (*db.UserModel, error) // GetUserByEmail returns the user with the given email GetUserByEmail(email string) (*db.UserModel, error) // GetUserPassword returns the user password with the given id GetUserPassword(id string) (*db.UserPasswordModel, error) // CreateUser creates a new user with the given options CreateUser(*CreateUserOpts) (*db.UserModel, error) // UpdateUser updates the user with the given email UpdateUser(id string, opts *UpdateUserOpts) (*db.UserModel, error) // ListTenantMemberships returns the list of tenant memberships for the given user ListTenantMemberships(userId string) ([]db.TenantMemberModel, error) }
type UserSessionRepository ¶
type UserSessionRepository interface { Create(opts *CreateSessionOpts) (*db.UserSessionModel, error) Update(sessionId string, opts *UpdateSessionOpts) (*db.UserSessionModel, error) Delete(sessionId string) (*db.UserSessionModel, error) GetById(sessionId string) (*db.UserSessionModel, error) }
UserSessionRepository represents the set of queries on the UserSession model
type WebhookWorkerEngineRepository ¶ added in v0.34.0
type WebhookWorkerEngineRepository interface { // ListWebhookWorkersByPartitionId returns the list of webhook workers for a worker partition ListWebhookWorkersByPartitionId(ctx context.Context, partitionId string) ([]*dbsqlc.WebhookWorker, error) // ListActiveWebhookWorkers returns the list of active webhook workers for the given tenant ListActiveWebhookWorkers(ctx context.Context, tenantId string) ([]*dbsqlc.WebhookWorker, error) // UpsertWebhookWorker creates a new webhook worker with the given options UpsertWebhookWorker(ctx context.Context, opts *UpsertWebhookWorkerOpts) (*dbsqlc.WebhookWorker, error) // DeleteWebhookWorker deletes a webhook worker with the given id and tenant id DeleteWebhookWorker(ctx context.Context, id string, tenantId string) error }
type WebhookWorkerRepository ¶ added in v0.34.0
type WebhookWorkerRepository interface { // GetWebhookWorkerByID returns the webhook worker with the given id GetWebhookWorkerByID(id string) (*db.WebhookWorkerModel, error) }
type WorkerAPIRepository ¶
type WorkerAPIRepository interface { // ListWorkers lists workers for the tenant ListWorkers(tenantId string, opts *ListWorkersOpts) ([]*dbsqlc.ListWorkersWithStepCountRow, error) // ListRecentWorkerStepRuns lists recent step runs for a given worker ListRecentWorkerStepRuns(tenantId, workerId string) ([]db.StepRunModel, error) // GetWorkerById returns a worker by its id. GetWorkerById(workerId string) (*db.WorkerModel, error) // ListWorkerLabels returns a list of labels config for a worker ListWorkerLabels(tenantId, workerId string) ([]*dbsqlc.ListWorkerLabelsRow, error) // UpdateWorker updates a worker for a given tenant. UpdateWorker(tenantId string, workerId string, opts ApiUpdateWorkerOpts) (*dbsqlc.Worker, error) }
type WorkerEngineRepository ¶
type WorkerEngineRepository interface { // CreateNewWorker creates a new worker for a given tenant. CreateNewWorker(ctx context.Context, tenantId string, opts *CreateWorkerOpts) (*dbsqlc.Worker, error) // UpdateWorker updates a worker for a given tenant. UpdateWorker(ctx context.Context, tenantId, workerId string, opts *UpdateWorkerOpts) (*dbsqlc.Worker, error) // UpdateWorker updates a worker in the repository. // It will only update the worker if there is no lock on the worker, else it will skip. UpdateWorkerHeartbeat(ctx context.Context, tenantId, workerId string, lastHeartbeatAt time.Time) error // DeleteWorker removes the worker from the database DeleteWorker(ctx context.Context, tenantId, workerId string) error // UpdateWorkersByName removes the worker from the database UpdateWorkersByName(ctx context.Context, opts dbsqlc.UpdateWorkersByNameParams) error GetWorkerForEngine(ctx context.Context, tenantId, workerId string) (*dbsqlc.GetWorkerForEngineRow, error) ResolveWorkerSemaphoreSlots(ctx context.Context, tenantId pgtype.UUID) (*dbsqlc.ResolveWorkerSemaphoreSlotsRow, error) UpdateWorkerActiveStatus(ctx context.Context, tenantId, workerId string, isActive bool, timestamp time.Time) (*dbsqlc.Worker, error) UpsertWorkerLabels(ctx context.Context, workerId pgtype.UUID, opts []UpsertWorkerLabelOpts) ([]*dbsqlc.WorkerLabel, error) }
type WorkerWithStepCount ¶
type WorkerWithStepCount struct { Worker *db.WorkerModel StepRunCount int }
type WorkflowAPIRepository ¶
type WorkflowAPIRepository interface { // ListWorkflows returns all workflows for a given tenant. ListWorkflows(tenantId string, opts *ListWorkflowsOpts) (*ListWorkflowsResult, error) // GetWorkflowById returns a workflow by its name. It will return db.ErrNotFound if the workflow does not exist. GetWorkflowById(workflowId string) (*db.WorkflowModel, error) // GetWorkflowByName returns a workflow by its name. It will return db.ErrNotFound if the workflow does not exist. GetWorkflowByName(tenantId, workflowName string) (*db.WorkflowModel, error) // GetWorkflowVersionById returns a workflow version by its id. It will return db.ErrNotFound if the workflow // version does not exist. GetWorkflowVersionById(tenantId, workflowId string) (*db.WorkflowVersionModel, error) // DeleteWorkflow deletes a workflow for a given tenant. DeleteWorkflow(tenantId, workflowId string) (*dbsqlc.Workflow, error) // GetWorkflowVersionMetrics returns the metrics for a given workflow version. GetWorkflowMetrics(tenantId, workflowId string, opts *GetWorkflowMetricsOpts) (*WorkflowMetrics, error) }
type WorkflowEngineRepository ¶
type WorkflowEngineRepository interface { // CreateNewWorkflow creates a new workflow for a given tenant. It will create the parent // workflow based on the version's name. CreateNewWorkflow(ctx context.Context, tenantId string, opts *CreateWorkflowVersionOpts) (*dbsqlc.GetWorkflowVersionForEngineRow, error) // CreateWorkflowVersion creates a new workflow version for a given tenant. This will fail if there is // not a parent workflow with the same name already in the database. CreateWorkflowVersion(ctx context.Context, tenantId string, opts *CreateWorkflowVersionOpts) (*dbsqlc.GetWorkflowVersionForEngineRow, error) // CreateSchedules creates schedules for a given workflow version. CreateSchedules(ctx context.Context, tenantId, workflowVersionId string, opts *CreateWorkflowSchedulesOpts) ([]*dbsqlc.WorkflowTriggerScheduledRef, error) GetLatestWorkflowVersion(ctx context.Context, tenantId, workflowId string) (*dbsqlc.GetWorkflowVersionForEngineRow, error) // GetWorkflowByName returns a workflow by its name. It will return db.ErrNotFound if the workflow does not exist. GetWorkflowByName(ctx context.Context, tenantId, workflowName string) (*dbsqlc.Workflow, error) // ListWorkflowsForEvent returns the latest workflow versions for a given tenant that are triggered by the // given event. ListWorkflowsForEvent(ctx context.Context, tenantId, eventKey string) ([]*dbsqlc.GetWorkflowVersionForEngineRow, error) // GetWorkflowVersionById returns a workflow version by its id. It will return db.ErrNotFound if the workflow // version does not exist. GetWorkflowVersionById(ctx context.Context, tenantId, workflowVersionId string) (*dbsqlc.GetWorkflowVersionForEngineRow, error) }
type WorkflowMetrics ¶
type WorkflowRunAPIRepository ¶
type WorkflowRunAPIRepository interface { RegisterCreateCallback(callback Callback[*db.WorkflowRunModel]) // ListWorkflowRuns returns workflow runs for a given workflow version id. ListWorkflowRuns(ctx context.Context, tenantId string, opts *ListWorkflowRunsOpts) (*ListWorkflowRunsResult, error) // Counts by status WorkflowRunMetricsCount(ctx context.Context, tenantId string, opts *WorkflowRunsMetricsOpts) (*dbsqlc.WorkflowRunsMetricsCountRow, error) GetWorkflowRunInputData(tenantId, workflowRunId string) (map[string]interface{}, error) // CreateNewWorkflowRun creates a new workflow run for a workflow version. CreateNewWorkflowRun(ctx context.Context, tenantId string, opts *CreateWorkflowRunOpts) (*db.WorkflowRunModel, error) // GetWorkflowRunById returns a workflow run by id. GetWorkflowRunById(tenantId, runId string) (*db.WorkflowRunModel, error) }
type WorkflowRunEngineRepository ¶
type WorkflowRunEngineRepository interface { RegisterCreateCallback(callback Callback[*dbsqlc.WorkflowRun]) // ListWorkflowRuns returns workflow runs for a given workflow version id. ListWorkflowRuns(ctx context.Context, tenantId string, opts *ListWorkflowRunsOpts) (*ListWorkflowRunsResult, error) GetChildWorkflowRun(ctx context.Context, parentId, parentStepRunId string, childIndex int, childkey *string) (*dbsqlc.WorkflowRun, error) GetScheduledChildWorkflowRun(ctx context.Context, parentId, parentStepRunId string, childIndex int, childkey *string) (*dbsqlc.WorkflowTriggerScheduledRef, error) PopWorkflowRunsRoundRobin(ctx context.Context, tenantId, workflowId string, maxRuns int) ([]*dbsqlc.WorkflowRun, error) // CreateNewWorkflowRun creates a new workflow run for a workflow version. CreateNewWorkflowRun(ctx context.Context, tenantId string, opts *CreateWorkflowRunOpts) (string, error) // GetWorkflowRunById returns a workflow run by id. GetWorkflowRunById(ctx context.Context, tenantId, runId string) (*dbsqlc.GetWorkflowRunRow, error) GetWorkflowRunAdditionalMeta(ctx context.Context, tenantId, workflowRunId string) (*dbsqlc.GetWorkflowRunAdditionalMetaRow, error) ReplayWorkflowRun(ctx context.Context, tenantId, workflowRunId string) (*dbsqlc.GetWorkflowRunRow, error) ListActiveQueuedWorkflowVersions(ctx context.Context) ([]*dbsqlc.ListActiveQueuedWorkflowVersionsRow, error) // DeleteExpiredWorkflowRuns deletes workflow runs that were created before the given time. It returns the number of deleted runs // and the number of non-deleted runs that match the conditions. SoftDeleteExpiredWorkflowRuns(ctx context.Context, tenantId string, statuses []dbsqlc.WorkflowRunStatus, before time.Time) (bool, error) }
type WorkflowRunsMetricsOpts ¶
type WorkflowRunsMetricsOpts struct { // (optional) the workflow id WorkflowId *string `validate:"omitempty,uuid"` // (optional) the workflow version id WorkflowVersionId *string `validate:"omitempty,uuid"` // (optional) the parent workflow run id ParentId *string `validate:"omitempty,uuid"` // (optional) the parent step run id ParentStepRunId *string `validate:"omitempty,uuid"` // (optional) the event id that triggered the workflow run EventId *string `validate:"omitempty,uuid"` // (optional) exact metadata to filter by AdditionalMetadata map[string]interface{} `validate:"omitempty"` }
Source Files ¶
- api_token.go
- dispatcher.go
- event.go
- get_group_key_run.go
- health.go
- job_run.go
- logs.go
- rate_limit.go
- repository.go
- slack.go
- sns.go
- step.go
- step_run.go
- stream_event.go
- tenant.go
- tenant_alerting.go
- tenant_invite.go
- tenant_limit.go
- ticker.go
- user.go
- user_session.go
- webhook_worker.go
- webhook_worker_api.go
- worker.go
- workflow.go
- workflow_run.go
Click to show internal directories.
Click to hide internal directories.