interfaces

package
v2.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

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 Filter

type Filter interface {
	GormQueryExpression(table string) (GormQueryExpr, error)
	And(filter Filter) Filter
	Or(filter Filter) Filter
}

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 SortOrder

type SortOrder int
const (
	SortOrderDescending SortOrder = iota
	SortOrderAscending
)

Set of sort orders available for database queries.

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)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL