Documentation
¶
Index ¶
- Variables
- func BoolPtr(b bool) *bool
- func HashPassword(pw string) (*string, error)
- func JobRunStatusPtr(status db.JobRunStatus) *db.JobRunStatus
- func StepRunStatusPtr(status db.StepRunStatus) *db.StepRunStatus
- func StringPtr(s string) *string
- func VerifyPassword(hashedPW, candidate string) (bool, error)
- type APITokenRepository
- type CreateAPITokenOpts
- type CreateDispatcherOpts
- type CreateEventOpts
- type CreateGroupKeyRunOpts
- type CreateSessionOpts
- type CreateTenantInviteOpts
- type CreateTenantMemberOpts
- type CreateTenantOpts
- type CreateTickerOpts
- type CreateUserOpts
- type CreateWorkerOpts
- type CreateWorkflowConcurrencyOpts
- type CreateWorkflowJobOpts
- type CreateWorkflowJobRunOpts
- type CreateWorkflowRunOpts
- func GetCreateWorkflowRunOptsFromCron(cron, cronParentId string, workflowVersion *db.WorkflowVersionModel) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromEvent(event *db.EventModel, workflowVersion *db.WorkflowVersionModel) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromManual(workflowVersion *db.WorkflowVersionModel, input []byte) (*CreateWorkflowRunOpts, error)
- func GetCreateWorkflowRunOptsFromSchedule(scheduledTrigger *db.WorkflowTriggerScheduledRefModel, ...) (*CreateWorkflowRunOpts, error)
- type CreateWorkflowSchedulesOpts
- type CreateWorkflowStepOpts
- type CreateWorkflowStepRunOpts
- type CreateWorkflowTagOpts
- type CreateWorkflowVersionOpts
- type DispatcherRepository
- type EventRepository
- type GetGroupKeyRunRepository
- type JobRunHasCycleError
- type JobRunRepository
- type ListAllJobRunsOpts
- type ListAllStepRunsOpts
- type ListEventOpts
- type ListEventResult
- type ListGetGroupKeyRunsOpts
- type ListStepRunsOpts
- type ListTenantInvitesOpts
- type ListTickerOpts
- type ListWorkersOpts
- type ListWorkflowRunsOpts
- type ListWorkflowRunsResult
- type ListWorkflowsOpts
- type ListWorkflowsResult
- type ListWorkflowsRow
- type OAuthOpts
- type Repository
- type StepRepository
- type StepRunRepository
- type TenantInviteRepository
- type TenantRepository
- type TickerRepository
- type UpdateDispatcherOpts
- type UpdateGetGroupKeyRunOpts
- type UpdateJobRunLookupDataOpts
- type UpdateJobRunOpts
- type UpdateSessionOpts
- type UpdateStepRunOpts
- type UpdateTenantInviteOpts
- type UpdateTenantMemberOpts
- type UpdateTickerOpts
- type UpdateUserOpts
- type UpdateWorkerOpts
- type UserRepository
- type UserSessionRepository
- type WorkerRepository
- type WorkerWithStepCount
- type WorkflowRepository
- type WorkflowRunRepository
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrStepRunIsNotPending = fmt.Errorf("step run is not pending")
Functions ¶
func HashPassword ¶
func JobRunStatusPtr ¶
func JobRunStatusPtr(status db.JobRunStatus) *db.JobRunStatus
func StepRunStatusPtr ¶
func StepRunStatusPtr(status db.StepRunStatus) *db.StepRunStatus
func VerifyPassword ¶
Types ¶
type APITokenRepository ¶ added in v0.7.0
type APITokenRepository interface {
GetAPITokenById(id string) (*db.APITokenModel, error)
CreateAPIToken(opts *CreateAPITokenOpts) (*db.APITokenModel, error)
RevokeAPIToken(id string) error
ListAPITokensByTenant(tenantId string) ([]db.APITokenModel, error)
}
type CreateAPITokenOpts ¶ added in v0.7.0
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"`
}
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 *db.JSON
// (optional) the event that this event is replaying
ReplayedEvent *string `validate:"omitempty,uuid"`
}
type CreateGroupKeyRunOpts ¶ added in v0.8.0
type CreateGroupKeyRunOpts struct {
// (optional) the input data
Input []byte
}
type CreateSessionOpts ¶
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 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 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 ¶ added in v0.8.0
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"`
}
type CreateWorkflowJobOpts ¶
type CreateWorkflowJobOpts struct {
// (required) the job name
Name string `validate:"required,hatchetName"`
// (optional) the job description
Description *string
// (optional) the job timeout
Timeout *string
// (required) the job steps
Steps []CreateWorkflowStepOpts `validate:"required,min=1,dive"`
}
type CreateWorkflowJobRunOpts ¶
type CreateWorkflowJobRunOpts struct {
// (required) the job id
JobId string `validate:"required,uuid"`
// (optional) the job run input
InputData []byte
TriggeredBy string
// (required) the job step runs
StepRuns []CreateWorkflowStepRunOpts `validate:"required,min=1,dive"`
// (optional) the job run requeue after time, if not set this defaults to 5 seconds after the
// current time
RequeueAfter *time.Time `validate:"omitempty"`
}
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 */
// (required) the workflow jobs
JobRuns []CreateWorkflowJobRunOpts `validate:"required,min=1,dive"`
GetGroupKeyRun *CreateGroupKeyRunOpts `validate:"omitempty"`
}
func GetCreateWorkflowRunOptsFromCron ¶
func GetCreateWorkflowRunOptsFromCron(cron, cronParentId string, workflowVersion *db.WorkflowVersionModel) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromEvent ¶
func GetCreateWorkflowRunOptsFromEvent(event *db.EventModel, workflowVersion *db.WorkflowVersionModel) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromManual ¶ added in v0.9.0
func GetCreateWorkflowRunOptsFromManual(workflowVersion *db.WorkflowVersionModel, input []byte) (*CreateWorkflowRunOpts, error)
func GetCreateWorkflowRunOptsFromSchedule ¶
func GetCreateWorkflowRunOptsFromSchedule(scheduledTrigger *db.WorkflowTriggerScheduledRefModel, workflowVersion *db.WorkflowVersionModel) (*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
// (optional) the parents that this step depends on
Parents []string `validate:"dive,hatchetName"`
}
type CreateWorkflowStepRunOpts ¶
type CreateWorkflowStepRunOpts struct {
// (required) the step id
StepId string `validate:"required,uuid"`
}
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) scheduled triggers for the workflow
ScheduledTriggers []time.Time
// (required) the workflow jobs
Jobs []CreateWorkflowJobOpts `validate:"required,min=1,dive"`
// (optional) the workflow concurrency groups
Concurrency *CreateWorkflowConcurrencyOpts `json:"concurrency,omitempty" validator:"omitnil"`
}
func (*CreateWorkflowVersionOpts) Checksum ¶ added in v0.7.0
func (o *CreateWorkflowVersionOpts) Checksum() (string, error)
type DispatcherRepository ¶
type DispatcherRepository interface {
// GetDispatcherForWorker returns the dispatcher connected to a given worker.
GetDispatcherForWorker(workerId string) (*db.DispatcherModel, error)
// CreateNewDispatcher creates a new dispatcher for a given tenant.
CreateNewDispatcher(opts *CreateDispatcherOpts) (*db.DispatcherModel, error)
// UpdateDispatcher updates a dispatcher for a given tenant.
UpdateDispatcher(dispatcherId string, opts *UpdateDispatcherOpts) (*db.DispatcherModel, error)
Delete(dispatcherId string) error
// AddWorker adds a worker to a dispatcher.
AddWorker(dispatcherId, workerId string) (*db.DispatcherModel, error)
UpdateStaleDispatchers(onStale func(dispatcherId string, getValidDispatcherId func() string) error) error
}
type EventRepository ¶
type EventRepository interface {
// ListEvents returns all events for a given tenant.
ListEvents(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)
// CreateEvent creates a new event for a given tenant.
CreateEvent(ctx context.Context, opts *CreateEventOpts) (*db.EventModel, error)
}
type GetGroupKeyRunRepository ¶ added in v0.8.0
type GetGroupKeyRunRepository interface {
// ListGetGroupKeyRuns returns a list of get group key runs for a tenant which match the given options.
ListGetGroupKeyRuns(tenantId string, opts *ListGetGroupKeyRunsOpts) ([]db.GetGroupKeyRunModel, error)
UpdateGetGroupKeyRun(tenantId, getGroupKeyRunId string, opts *UpdateGetGroupKeyRunOpts) (*db.GetGroupKeyRunModel, error)
GetGroupKeyRunById(tenantId, getGroupKeyRunId string) (*db.GetGroupKeyRunModel, error)
}
type JobRunHasCycleError ¶
type JobRunHasCycleError struct {
JobName string
}
func (*JobRunHasCycleError) Error ¶
func (e *JobRunHasCycleError) Error() string
type JobRunRepository ¶
type JobRunRepository interface {
ListAllJobRuns(opts *ListAllJobRunsOpts) ([]db.JobRunModel, error)
GetJobRunById(tenantId, jobRunId string) (*db.JobRunModel, error)
UpdateJobRun(tenantId, jobRunId string, opts *UpdateJobRunOpts) (*db.JobRunModel, error)
GetJobRunLookupData(tenantId, jobRunId string) (*db.JobRunLookupDataModel, error)
UpdateJobRunLookupData(tenantId, jobRunId string, opts *UpdateJobRunLookupDataOpts) error
}
type ListAllJobRunsOpts ¶
type ListAllJobRunsOpts struct {
TickerId *string
NoTickerId *bool
Status *db.JobRunStatus
}
type ListAllStepRunsOpts ¶
type ListAllStepRunsOpts struct {
TickerId *string
NoTickerId *bool
Status *db.StepRunStatus
}
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) 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"`
}
type ListEventResult ¶
type ListEventResult struct {
Rows []*dbsqlc.ListEventsRow
Count int
}
type ListGetGroupKeyRunsOpts ¶ added in v0.8.0
type ListGetGroupKeyRunsOpts struct {
Requeuable *bool
Status *db.StepRunStatus
}
type ListStepRunsOpts ¶
type ListStepRunsOpts struct {
Requeuable *bool
JobRunId *string
WorkflowRunId *string
Status *db.StepRunStatus
}
type ListTenantInvitesOpts ¶
type ListTickerOpts ¶
type ListWorkersOpts ¶
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) 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
Status *db.WorkflowRunStatus
// (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"`
// (optional) the order direction
OrderDirection *string `validate:"omitempty,oneof=ASC DESC"`
}
type ListWorkflowRunsResult ¶
type ListWorkflowRunsResult struct {
Rows []*dbsqlc.ListWorkflowRunsRow
Count int
}
type ListWorkflowsOpts ¶
type ListWorkflowsResult ¶
type ListWorkflowsResult struct {
Rows []*ListWorkflowsRow
Count int
}
type ListWorkflowsRow ¶
type ListWorkflowsRow struct {
*db.WorkflowModel
LatestRun *db.WorkflowRunModel
}
type Repository ¶
type Repository interface {
APIToken() APITokenRepository
Event() EventRepository
Tenant() TenantRepository
TenantInvite() TenantInviteRepository
Workflow() WorkflowRepository
WorkflowRun() WorkflowRunRepository
JobRun() JobRunRepository
StepRun() StepRunRepository
GetGroupKeyRun() GetGroupKeyRunRepository
Step() StepRepository
Dispatcher() DispatcherRepository
Ticker() TickerRepository
Worker() WorkerRepository
UserSession() UserSessionRepository
User() UserRepository
}
type StepRepository ¶
type StepRunRepository ¶
type StepRunRepository interface {
// ListAllStepRuns returns a list of all step runs which match the given options.
ListAllStepRuns(opts *ListAllStepRunsOpts) ([]db.StepRunModel, error)
// ListStepRuns returns a list of step runs for a tenant which match the given options.
ListStepRuns(tenantId string, opts *ListStepRunsOpts) ([]db.StepRunModel, error)
UpdateStepRun(tenantId, stepRunId string, opts *UpdateStepRunOpts) (*db.StepRunModel, error)
GetStepRunById(tenantId, stepRunId string) (*db.StepRunModel, error)
// QueueStepRun is like UpdateStepRun, except that it will only update the step run if it is in
// a pending state.
QueueStepRun(tenantId, stepRunId string, opts *UpdateStepRunOpts) (*db.StepRunModel, error)
CancelPendingStepRuns(tenantId, jobRunId, reason string) error
ListStartableStepRuns(tenantId, jobRunId, parentStepRunId string) ([]*dbsqlc.StepRun, 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
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 TenantRepository ¶
type TenantRepository interface {
// CreateTenant creates a new tenant.
CreateTenant(opts *CreateTenantOpts) (*db.TenantModel, error)
// ListTenants lists all tenants in the instance
ListTenants() ([]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)
}
type TickerRepository ¶
type TickerRepository interface {
// CreateNewTicker creates a new ticker.
CreateNewTicker(opts *CreateTickerOpts) (*db.TickerModel, error)
// UpdateTicker updates a ticker.
UpdateTicker(tickerId string, opts *UpdateTickerOpts) (*db.TickerModel, error)
// ListTickers lists tickers.
ListTickers(opts *ListTickerOpts) ([]db.TickerModel, error)
GetTickerById(tickerId string) (*db.TickerModel, error)
// Delete deletes a ticker.
Delete(tickerId string) error
// AddJobRun assigns a job run to a ticker.
AddJobRun(tickerId string, jobRun *db.JobRunModel) (*db.TickerModel, error)
// AddStepRun assigns a step run to a ticker.
AddStepRun(tickerId, stepRunId string) (*db.TickerModel, error)
// AddGetGroupKeyRun assigns a get group key run to a ticker.
AddGetGroupKeyRun(tickerId, getGroupKeyRunId string) (*db.TickerModel, error)
// AddCron assigns a cron to a ticker.
AddCron(tickerId string, cron *db.WorkflowTriggerCronRefModel) (*db.TickerModel, error)
// RemoveCron removes a cron from a ticker.
RemoveCron(tickerId string, cron *db.WorkflowTriggerCronRefModel) (*db.TickerModel, error)
// AddScheduledWorkflow assigns a scheduled workflow to a ticker.
AddScheduledWorkflow(tickerId string, schedule *db.WorkflowTriggerScheduledRefModel) (*db.TickerModel, error)
// RemoveScheduledWorkflow removes a scheduled workflow from a ticker.
RemoveScheduledWorkflow(tickerId string, schedule *db.WorkflowTriggerScheduledRefModel) (*db.TickerModel, error)
UpdateStaleTickers(onStale func(tickerId string, getValidTickerId func() string) error) error
}
type UpdateDispatcherOpts ¶
type UpdateGetGroupKeyRunOpts ¶ added in v0.8.0
type UpdateJobRunOpts ¶
type UpdateJobRunOpts struct {
Status *db.JobRunStatus
}
type UpdateSessionOpts ¶
type UpdateStepRunOpts ¶
type UpdateTenantInviteOpts ¶
type UpdateTenantMemberOpts ¶
type UpdateTenantMemberOpts struct {
Role *string `validate:"omitempty,oneof=OWNER ADMIN MEMBER"`
}
type UpdateTickerOpts ¶
type UpdateUserOpts ¶
type UpdateWorkerOpts ¶
type UpdateWorkerOpts struct {
// The id of the dispatcher
DispatcherId *string `validate:"omitempty,uuid"`
// The status of the worker
Status *db.WorkerStatus
// When the last worker heartbeat was
LastHeartbeatAt *time.Time
// A list of actions this worker can run
Actions []string `validate:"dive,actionId"`
}
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 WorkerRepository ¶
type WorkerRepository interface {
// ListWorkers lists workers for the tenant
ListWorkers(tenantId string, opts *ListWorkersOpts) ([]WorkerWithStepCount, error)
// ListRecentWorkerStepRuns lists recent step runs for a given worker
ListRecentWorkerStepRuns(tenantId, workerId string) ([]db.StepRunModel, error)
// CreateNewWorker creates a new worker for a given tenant.
CreateNewWorker(tenantId string, opts *CreateWorkerOpts) (*db.WorkerModel, error)
// UpdateWorker updates a worker for a given tenant.
UpdateWorker(tenantId, workerId string, opts *UpdateWorkerOpts) (*db.WorkerModel, error)
// DeleteWorker removes the worker from the database
DeleteWorker(tenantId, workerId string) error
// GetWorkerById returns a worker by its id.
GetWorkerById(workerId string) (*db.WorkerModel, error)
// AddStepRun assigns a step run to a worker.
AddStepRun(tenantId, workerId, stepRunId string) error
// AddGetGroupKeyRun assigns a get group key run to a worker.
AddGetGroupKeyRun(tenantId, workerId, getGroupKeyRunId string) error
}
type WorkerWithStepCount ¶
type WorkerWithStepCount struct {
Worker *db.WorkerModel
StepRunCount int
}
type WorkflowRepository ¶
type WorkflowRepository interface {
// ListWorkflows returns all workflows for a given tenant.
ListWorkflows(tenantId string, opts *ListWorkflowsOpts) (*ListWorkflowsResult, error)
// CreateNewWorkflow creates a new workflow for a given tenant. It will create the parent
// workflow based on the version's name.
CreateNewWorkflow(tenantId string, opts *CreateWorkflowVersionOpts) (*db.WorkflowVersionModel, 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(tenantId string, opts *CreateWorkflowVersionOpts) (*db.WorkflowVersionModel, error)
// CreateSchedules creates schedules for a given workflow version.
CreateSchedules(tenantId, workflowVersionId string, opts *CreateWorkflowSchedulesOpts) ([]*db.WorkflowTriggerScheduledRefModel, error)
// GetScheduledById returns a scheduled workflow by its id.
GetScheduledById(tenantId, scheduleTriggerId string) (*db.WorkflowTriggerScheduledRefModel, 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)
// ListWorkflowsForEvent returns the latest workflow versions for a given tenant that are triggered by the
// given event.
ListWorkflowsForEvent(ctx context.Context, tenantId, eventKey string) ([]db.WorkflowVersionModel, 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) (*db.WorkflowModel, error)
}
type WorkflowRunRepository ¶
type WorkflowRunRepository interface {
// ListWorkflowRuns returns workflow runs for a given workflow version id.
ListWorkflowRuns(tenantId string, opts *ListWorkflowRunsOpts) (*ListWorkflowRunsResult, 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)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.