Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrProjectNotFound = errors.New("project not found") ErrProjectAlreadyExists = errors.New("project already exists") )
Functions ¶
This section is empty.
Types ¶
type ActionRepo ¶
type ActionRepo interface {
// Run operations
CreateRun(ctx context.Context, req *workflow.CreateRunRequest, inputPrefix, runOutputBase string) (*models.Run, error)
GetRun(ctx context.Context, runID *common.RunIdentifier) (*models.Run, error)
ListRuns(ctx context.Context, req *workflow.ListRunsRequest) ([]*models.Run, string, error)
AbortRun(ctx context.Context, runID *common.RunIdentifier, reason string, abortedBy *common.EnrichedIdentity) error
// Action operations
CreateAction(ctx context.Context, actionSpec *workflow.ActionSpec, detailedInfo []byte) (*models.Action, error)
InsertEvents(ctx context.Context, events []*models.ActionEvent) error
ListEvents(ctx context.Context, actionID *common.ActionIdentifier, limit int) ([]*models.ActionEvent, error)
GetLatestEventByAttempt(ctx context.Context, actionID *common.ActionIdentifier, attempt uint32) (*models.ActionEvent, error)
GetAction(ctx context.Context, actionID *common.ActionIdentifier) (*models.Action, error)
ListActions(ctx context.Context, runID *common.RunIdentifier, limit int, token string) ([]*models.Action, string, error)
UpdateActionPhase(ctx context.Context, actionID *common.ActionIdentifier, phase common.ActionPhase, attempts uint32, cacheStatus core.CatalogCacheStatus, endTime *time.Time) error
AbortAction(ctx context.Context, actionID *common.ActionIdentifier, reason string, abortedBy *common.EnrichedIdentity) error
// Watch operations (for streaming)
WatchRunUpdates(ctx context.Context, runID *common.RunIdentifier, updates chan<- *models.Run, errs chan<- error)
WatchAllRunUpdates(ctx context.Context, updates chan<- *models.Run, errs chan<- error)
WatchActionUpdates(ctx context.Context, runID *common.RunIdentifier, updates chan<- *models.Action, errs chan<- error)
// State operations
UpdateActionState(ctx context.Context, actionID *common.ActionIdentifier, state string) error
GetActionState(ctx context.Context, actionID *common.ActionIdentifier) (string, error)
// Event notification (for state updates)
NotifyStateUpdate(ctx context.Context, actionID *common.ActionIdentifier) error
WatchStateUpdates(ctx context.Context, updates chan<- *common.ActionIdentifier, errs chan<- error)
// Aggregation operations
ListRootActions(ctx context.Context, org, project, domain string, startDate, endDate *time.Time, limit int) ([]*models.Action, error)
}
ActionRepo defines the interface for actions/runs data access
type FilterExpression ¶
type FilterExpression = int
const ( FilterExpressionEqual FilterExpression = iota FilterExpressionNotEqual FilterExpressionGreaterThan FilterExpressionGreaterThanOrEqual FilterExpressionLessThan FilterExpressionLessThanOrEqual FilterExpressionContains FilterExpressionValueIn FilterExpressionEndsWith FilterExpressionNotEndsWith FilterExpressionContainsCaseInsensitive )
Set of filters available for database queries.
type GormQueryExpr ¶
type GormQueryExpr struct {
Query string
Args []interface{}
}
GormQueryExpr is a container for arguments necessary to issue a GORM query.
type ListResourceInput ¶
type ListResourceInput struct {
Limit int
Offset int
Filter Filter
// The filter set by scopeBy in the query
ScopeByFilter Filter
SortParameters []SortParameter
}
ListResourceInput contains parameters for querying collections of resources.
func (ListResourceInput) WithFilter ¶
func (l ListResourceInput) WithFilter(filter Filter) ListResourceInput
func (ListResourceInput) WithSortParameters ¶
func (l ListResourceInput) WithSortParameters(sortParameters ...SortParameter) ListResourceInput
type ProjectRepo ¶ added in v2.0.8
type ProjectRepo interface {
CreateProject(ctx context.Context, project *models.Project) error
GetProject(ctx context.Context, identifier string) (*models.Project, error)
UpdateProject(ctx context.Context, project *models.Project) error
ListProjects(ctx context.Context, input ListResourceInput) ([]*models.Project, error)
}
type Repository ¶
type Repository interface {
ActionRepo() ActionRepo
TaskRepo() TaskRepo
}
type SortParameter ¶
type SortParameter interface {
GetGormOrderExpr() string
}
type TaskRepo ¶
type TaskRepo interface {
// TODO: add triggers back
CreateTask(ctx context.Context, task *models.Task) error
GetTask(ctx context.Context, key models.TaskKey) (*models.Task, error)
ListTasks(ctx context.Context, input ListResourceInput) (*models.TaskListResult, error)
ListVersions(ctx context.Context, input ListResourceInput) ([]*models.TaskVersion, error)
CreateTaskSpec(ctx context.Context, taskSpec *models.TaskSpec) error
GetTaskSpec(ctx context.Context, digest string) (*models.TaskSpec, error)
}
Click to show internal directories.
Click to hide internal directories.