contexts

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2026 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildProcessQueueContext

func BuildProcessQueueContext(
	httpCtx core.HTTPContext,
	tx *gorm.DB,
	node *models.CanvasNode,
	queueItem *models.CanvasNodeQueueItem,
	configFields []configuration.Field,
	onNewEvents func([]models.CanvasEvent),
	repoFiles core.RepositoryFilesContext,
) (*core.ProcessQueueContext, error)

func DispatchOnError added in v0.26.0

func DispatchOnError(tx *gorm.DB, execution *models.CanvasNodeExecution, onNewEvents func([]models.CanvasEvent))

DispatchOnError fans an errored execution out to every On Error trigger node in the same canvas by emitting a root event on each of them. The emitted events are collected through onNewEvents, so the caller publishes them after its transaction commits (and the EventRouter starts a new run for each).

On Error nodes are not wired through edges, so this is what connects a failed execution to them. The event payload describes which node errored and carries the payloads emitted by every upstream node in the failed run.

Dispatch failures must never roll back or mask the original execution failure, so any error here is logged and swallowed.

func NewIntegrationSubscriptionContext added in v0.5.0

func NewIntegrationSubscriptionContext(
	tx *gorm.DB,
	registry *registry.Registry,
	subscription *models.NodeSubscription,
	node *models.CanvasNode,
	integration *models.Integration,
	integrationCtx *IntegrationContext,
	onNewEvents func([]models.CanvasEvent),
) core.IntegrationSubscriptionContext

func NewRepositoryFilesContext added in v0.26.0

func NewRepositoryFilesContext(
	gitProvider gitprovider.Provider,
	canvasID uuid.UUID,
) core.RepositoryFilesContext

NewRepositoryFilesContext creates a RepositoryFilesContext that lazily resolves the git repository for the given canvas. Returns nil when gitProvider is nil (e.g., code paths where git is unavailable).

func NewRepositoryFilesContextInTransaction added in v0.26.0

func NewRepositoryFilesContextInTransaction(
	gitProvider gitprovider.Provider,
	canvasID uuid.UUID,
	tx *gorm.DB,
) core.RepositoryFilesContext

NewRepositoryFilesContextInTransaction creates a RepositoryFilesContext that uses the given transaction for repository lookup, ensuring visibility of repos created within the same transaction.

func WithoutRunTitleConfiguration added in v0.26.0

func WithoutRunTitleConfiguration(configuration map[string]any) map[string]any

Types

type AuthReader added in v0.17.0

type AuthReader struct {
	// contains filtered or unexported fields
}

func NewAuthReader added in v0.17.0

func NewAuthReader(tx *gorm.DB, orgID uuid.UUID, authService authorization.Authorization, authenticatedUser *models.User) *AuthReader

func (*AuthReader) AuthenticatedUser added in v0.17.0

func (c *AuthReader) AuthenticatedUser() *core.User

func (*AuthReader) GetGroup added in v0.17.0

func (c *AuthReader) GetGroup(name string) (*core.GroupRef, error)

func (*AuthReader) GetRole added in v0.17.0

func (c *AuthReader) GetRole(name string) (*core.RoleRef, error)

func (*AuthReader) GetUser added in v0.17.0

func (c *AuthReader) GetUser(id uuid.UUID) (*core.User, error)

func (*AuthReader) HasRole added in v0.17.0

func (c *AuthReader) HasRole(role string) (bool, error)

func (*AuthReader) InGroup added in v0.17.0

func (c *AuthReader) InGroup(group string) (bool, error)

type CanvasMemoryContext added in v0.10.0

type CanvasMemoryContext struct {
	// contains filtered or unexported fields
}

func NewCanvasMemoryContext added in v0.10.0

func NewCanvasMemoryContext(tx *gorm.DB, canvasID uuid.UUID) *CanvasMemoryContext

func (*CanvasMemoryContext) Add added in v0.10.0

func (c *CanvasMemoryContext) Add(namespace string, values any) error

func (*CanvasMemoryContext) AddRecord added in v0.23.0

func (c *CanvasMemoryContext) AddRecord(namespace string, values any) (core.CanvasMemoryRecord, error)

func (*CanvasMemoryContext) Delete added in v0.10.0

func (c *CanvasMemoryContext) Delete(namespace string, matches map[string]any) ([]any, error)

func (*CanvasMemoryContext) Find added in v0.10.0

func (c *CanvasMemoryContext) Find(namespace string, matches map[string]any) ([]any, error)

func (*CanvasMemoryContext) FindFirst added in v0.10.0

func (c *CanvasMemoryContext) FindFirst(namespace string, matches map[string]any) (any, error)

func (*CanvasMemoryContext) Update added in v0.10.0

func (c *CanvasMemoryContext) Update(namespace string, matches map[string]any, values map[string]any) ([]any, error)

func (*CanvasMemoryContext) UpdateNamespace added in v0.23.0

func (c *CanvasMemoryContext) UpdateNamespace(namespace string, values map[string]any) ([]any, error)

func (*CanvasMemoryContext) UpdateNamespaceRecords added in v0.23.0

func (c *CanvasMemoryContext) UpdateNamespaceRecords(namespace string, values map[string]any) ([]core.CanvasMemoryRecord, error)

func (*CanvasMemoryContext) UpdateRecords added in v0.23.0

func (c *CanvasMemoryContext) UpdateRecords(namespace string, matches map[string]any, values map[string]any) ([]core.CanvasMemoryRecord, error)

func (*CanvasMemoryContext) WithChangeCallback added in v0.26.0

func (c *CanvasMemoryContext) WithChangeCallback(onChanged func()) *CanvasMemoryContext

WithChangeCallback registers a callback invoked whenever a mutating operation (Add/Delete/Update/UpdateNamespace) succeeds. Used to signal callers that memory was modified so they can publish a websocket event post-commit.

type CapabilityContext added in v0.19.0

type CapabilityContext struct {
	// contains filtered or unexported fields
}

func NewCapabilityContext added in v0.19.0

func NewCapabilityContext(definitions []core.Capability, states []models.CapabilityState) *CapabilityContext

func (*CapabilityContext) Available added in v0.19.0

func (c *CapabilityContext) Available(capabilities ...string)

func (*CapabilityContext) Clear added in v0.19.0

func (c *CapabilityContext) Clear()

func (*CapabilityContext) Disable added in v0.19.0

func (c *CapabilityContext) Disable(capabilities ...string)

func (*CapabilityContext) Enable added in v0.19.0

func (c *CapabilityContext) Enable(capabilities ...string)

func (*CapabilityContext) Enabled added in v0.20.0

func (c *CapabilityContext) Enabled() []string

func (*CapabilityContext) IsRequested added in v0.19.0

func (c *CapabilityContext) IsRequested(capabilities ...string) bool

func (*CapabilityContext) Request added in v0.19.0

func (c *CapabilityContext) Request(capabilities ...string)

func (*CapabilityContext) Requested added in v0.19.0

func (c *CapabilityContext) Requested() []string

func (*CapabilityContext) States added in v0.19.0

func (*CapabilityContext) Unavailable added in v0.19.0

func (c *CapabilityContext) Unavailable(capabilities ...string)

type ConfigurationBuildError

type ConfigurationBuildError struct {
	Err         error
	QueueItem   *models.CanvasNodeQueueItem
	Node        *models.CanvasNode
	Event       *models.CanvasEvent
	RootEventID uuid.UUID
}

func (*ConfigurationBuildError) Error

func (e *ConfigurationBuildError) Error() string

func (*ConfigurationBuildError) Unwrap

func (e *ConfigurationBuildError) Unwrap() error

type EventContext

type EventContext struct {
	// contains filtered or unexported fields
}

func NewEventContext

func NewEventContext(tx *gorm.DB, node *models.CanvasNode, onNewEvents func([]models.CanvasEvent)) *EventContext

func (*EventContext) Emit

func (s *EventContext) Emit(payloadType string, payload any) error

type ExecutionMetadataContext

type ExecutionMetadataContext struct {
	// contains filtered or unexported fields
}

func NewExecutionMetadataContext

func NewExecutionMetadataContext(tx *gorm.DB, execution *models.CanvasNodeExecution) *ExecutionMetadataContext

func (*ExecutionMetadataContext) Get

func (m *ExecutionMetadataContext) Get() any

func (*ExecutionMetadataContext) Set

func (m *ExecutionMetadataContext) Set(value any) error

type ExecutionRequestContext

type ExecutionRequestContext struct {
	// contains filtered or unexported fields
}

func NewExecutionRequestContext

func NewExecutionRequestContext(tx *gorm.DB, execution *models.CanvasNodeExecution) *ExecutionRequestContext

func (*ExecutionRequestContext) ScheduleActionCall

func (c *ExecutionRequestContext) ScheduleActionCall(actionName string, parameters map[string]any, interval time.Duration) error

type ExecutionStateContext

type ExecutionStateContext struct {
	// contains filtered or unexported fields
}

func NewExecutionStateContext

func NewExecutionStateContext(
	tx *gorm.DB,
	execution *models.CanvasNodeExecution,
	onNewEvents func([]models.CanvasEvent),
) *ExecutionStateContext

func (*ExecutionStateContext) Emit

func (s *ExecutionStateContext) Emit(channel, payloadType string, payloads []any) error

func (*ExecutionStateContext) EmitAndContinue added in v0.26.0

func (s *ExecutionStateContext) EmitAndContinue(channel, payloadType string, payloads []any) error

func (*ExecutionStateContext) Fail

func (s *ExecutionStateContext) Fail(reason, message string) error

func (*ExecutionStateContext) GetKV added in v0.22.0

func (s *ExecutionStateContext) GetKV(key string) (string, error)

func (*ExecutionStateContext) IsFinished

func (s *ExecutionStateContext) IsFinished() bool

func (*ExecutionStateContext) Pass

func (s *ExecutionStateContext) Pass() error

func (*ExecutionStateContext) SetKV

func (s *ExecutionStateContext) SetKV(key, value string) error

type ExpressionContext added in v0.16.0

type ExpressionContext struct {
	// contains filtered or unexported fields
}

func NewExpressionContext added in v0.16.0

func NewExpressionContext(configurationBuilder *NodeConfigurationBuilder) *ExpressionContext

func (*ExpressionContext) BuildExecutionMessageChain added in v0.25.0

func (c *ExpressionContext) BuildExecutionMessageChain() (map[string]any, error)

func (*ExpressionContext) Run added in v0.16.0

func (c *ExpressionContext) Run(expression string) (any, error)

func (*ExpressionContext) RunWithExtraVariables added in v0.23.0

func (c *ExpressionContext) RunWithExtraVariables(expression string, variables map[string]any) (any, error)

type IntegrationContext

type IntegrationContext struct {
	// contains filtered or unexported fields
}

func NewIntegrationContext

func NewIntegrationContext(
	tx *gorm.DB,
	node *models.CanvasNode,
	integration *models.Integration,
	encryptor crypto.Encryptor,
	registry *registry.Registry,
	onNewEvents func([]models.CanvasEvent),
) *IntegrationContext

func (*IntegrationContext) Error added in v0.6.0

func (c *IntegrationContext) Error(message string)

func (*IntegrationContext) FindSubscription added in v0.9.0

FindSubscription finds the first subscription matching the predicate. Note: This loads all subscriptions via ListSubscriptions() and iterates through them. For installations with many subscriptions, this may be inefficient. Consider adding an index-based lookup if performance becomes an issue.

func (*IntegrationContext) GetConfig added in v0.5.0

func (c *IntegrationContext) GetConfig(name string) ([]byte, error)

func (*IntegrationContext) GetMetadata added in v0.5.0

func (c *IntegrationContext) GetMetadata() any

func (*IntegrationContext) GetOptionalConfig added in v0.9.0

func (c *IntegrationContext) GetOptionalConfig(name string) ([]byte, error)

func (*IntegrationContext) GetSecrets added in v0.5.0

func (c *IntegrationContext) GetSecrets() ([]core.IntegrationSecret, error)

func (*IntegrationContext) GetState added in v0.5.0

func (c *IntegrationContext) GetState() string

func (*IntegrationContext) ID added in v0.5.0

func (c *IntegrationContext) ID() uuid.UUID

func (*IntegrationContext) LegacySetup added in v0.19.0

func (c *IntegrationContext) LegacySetup() bool

func (*IntegrationContext) ListSubscriptions added in v0.5.0

func (c *IntegrationContext) ListSubscriptions() ([]core.IntegrationSubscriptionContext, error)

func (*IntegrationContext) NewBrowserAction added in v0.5.0

func (c *IntegrationContext) NewBrowserAction(action core.BrowserAction)

func (*IntegrationContext) Properties added in v0.19.0

func (*IntegrationContext) Ready added in v0.6.0

func (c *IntegrationContext) Ready()

func (*IntegrationContext) RemoveBrowserAction added in v0.5.0

func (c *IntegrationContext) RemoveBrowserAction()

func (*IntegrationContext) RequestWebhook added in v0.5.0

func (c *IntegrationContext) RequestWebhook(configuration any) error

func (*IntegrationContext) ScheduleActionCall added in v0.6.0

func (c *IntegrationContext) ScheduleActionCall(actionName string, parameters any, interval time.Duration) error

func (*IntegrationContext) ScheduleResync added in v0.5.0

func (c *IntegrationContext) ScheduleResync(interval time.Duration) error

func (*IntegrationContext) Secrets added in v0.19.0

func (*IntegrationContext) SetMetadata added in v0.5.0

func (c *IntegrationContext) SetMetadata(value any)

func (*IntegrationContext) SetSecret added in v0.5.0

func (c *IntegrationContext) SetSecret(name string, value []byte) error

func (*IntegrationContext) Subscribe added in v0.5.0

func (c *IntegrationContext) Subscribe(configuration any) (*uuid.UUID, error)

type IntegrationPropertyStorage added in v0.19.0

type IntegrationPropertyStorage struct {
	// contains filtered or unexported fields
}

func NewIntegrationPropertyStorage added in v0.19.0

func NewIntegrationPropertyStorage(integration *models.Integration) *IntegrationPropertyStorage

func (*IntegrationPropertyStorage) Create added in v0.19.0

func (*IntegrationPropertyStorage) CreateMany added in v0.19.0

func (*IntegrationPropertyStorage) Delete added in v0.19.0

func (s *IntegrationPropertyStorage) Delete(names ...string) error

func (*IntegrationPropertyStorage) Get added in v0.19.0

func (s *IntegrationPropertyStorage) Get(name string) (any, error)

func (*IntegrationPropertyStorage) GetString added in v0.19.0

func (s *IntegrationPropertyStorage) GetString(name string) (string, error)

type IntegrationSecretStorage added in v0.19.0

type IntegrationSecretStorage struct {
	// contains filtered or unexported fields
}

func NewIntegrationSecretStorage added in v0.19.0

func NewIntegrationSecretStorage(tx *gorm.DB, encryptor crypto.Encryptor, integration *models.Integration) *IntegrationSecretStorage

func (*IntegrationSecretStorage) Create added in v0.19.0

func (*IntegrationSecretStorage) CreateMany added in v0.19.0

func (*IntegrationSecretStorage) Delete added in v0.19.0

func (s *IntegrationSecretStorage) Delete(name string) error

func (*IntegrationSecretStorage) Get added in v0.19.0

func (s *IntegrationSecretStorage) Get(name string) (string, error)

func (*IntegrationSecretStorage) Update added in v0.19.0

func (s *IntegrationSecretStorage) Update(name string, value string) error

type IntegrationSetupContext added in v0.20.0

type IntegrationSetupContext struct {
	Integration *models.Integration
}

func NewIntegrationSetupContext added in v0.20.0

func NewIntegrationSetupContext(integration *models.Integration) *IntegrationSetupContext

func (*IntegrationSetupContext) SetStep added in v0.20.0

func (c *IntegrationSetupContext) SetStep(step core.SetupStep) error

type IntegrationSubscriptionContext added in v0.5.0

type IntegrationSubscriptionContext struct {
	// contains filtered or unexported fields
}

func (*IntegrationSubscriptionContext) Configuration added in v0.5.0

func (c *IntegrationSubscriptionContext) Configuration() any

func (*IntegrationSubscriptionContext) SendMessage added in v0.5.0

func (c *IntegrationSubscriptionContext) SendMessage(message any) error

type NodeConfigurationBuilder

type NodeConfigurationBuilder struct {
	// contains filtered or unexported fields
}

func NewNodeConfigurationBuilder

func NewNodeConfigurationBuilder(tx *gorm.DB, workflowID uuid.UUID) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) Build

func (b *NodeConfigurationBuilder) Build(configuration map[string]any) (map[string]any, error)

func (*NodeConfigurationBuilder) BuildExecutionMessageChain added in v0.25.0

func (b *NodeConfigurationBuilder) BuildExecutionMessageChain() (map[string]any, error)

BuildExecutionMessageChain returns upstream node payloads keyed by canvas node name. This is the $ object passed to runner JavaScript tasks.

func (*NodeConfigurationBuilder) ResolveExpression

func (b *NodeConfigurationBuilder) ResolveExpression(expression string) (any, error)

func (*NodeConfigurationBuilder) ResolveExpressionWithExtraVariables added in v0.23.0

func (b *NodeConfigurationBuilder) ResolveExpressionWithExtraVariables(expression string, variables map[string]any) (any, error)

ResolveExpressionWithExtraVariables evaluates an expression with extra variables merged into the eval environment. Provided keys cannot override built-ins; we reject any attempt to shadow reserved names so that `$`, `memory`, `config`, `root`, and `previous` stay deterministic.

func (*NodeConfigurationBuilder) ResolveTemplateExpressions added in v0.16.0

func (b *NodeConfigurationBuilder) ResolveTemplateExpressions(expression string) (any, error)

func (*NodeConfigurationBuilder) WithConfigurationFields added in v0.0.45

func (b *NodeConfigurationBuilder) WithConfigurationFields(fields []configuration.Field) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) WithExpressionVariables added in v0.23.0

func (b *NodeConfigurationBuilder) WithExpressionVariables(variables map[string]any) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) WithIncomingEventID added in v0.26.0

func (b *NodeConfigurationBuilder) WithIncomingEventID(incomingEventID *uuid.UUID) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) WithInput

WithInput stores input normalized for expression evaluation (see normalizeExpressionValue).

func (*NodeConfigurationBuilder) WithNodeID added in v0.1.6

func (*NodeConfigurationBuilder) WithPreviousExecution

func (b *NodeConfigurationBuilder) WithPreviousExecution(previousExecutionID *uuid.UUID) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) WithRootEvent

func (b *NodeConfigurationBuilder) WithRootEvent(rootEventID *uuid.UUID) *NodeConfigurationBuilder

func (*NodeConfigurationBuilder) WithRootPayload added in v0.18.0

func (b *NodeConfigurationBuilder) WithRootPayload(payload any) *NodeConfigurationBuilder

WithRootPayload stores payload normalized for expression evaluation (see normalizeExpressionValue).

type NodeMetadataContext

type NodeMetadataContext struct {
	// contains filtered or unexported fields
}

func NewNodeMetadataContext

func NewNodeMetadataContext(tx *gorm.DB, node *models.CanvasNode) *NodeMetadataContext

func (*NodeMetadataContext) Get

func (m *NodeMetadataContext) Get() any

func (*NodeMetadataContext) Set

func (m *NodeMetadataContext) Set(value any) error

type NodeRequestContext

type NodeRequestContext struct {
	// contains filtered or unexported fields
}

func NewNodeRequestContext

func NewNodeRequestContext(tx *gorm.DB, node *models.CanvasNode) *NodeRequestContext

func (*NodeRequestContext) ScheduleActionCall

func (c *NodeRequestContext) ScheduleActionCall(actionName string, parameters map[string]any, interval time.Duration) error

type NodeWebhookContext added in v0.0.30

type NodeWebhookContext struct {
	// contains filtered or unexported fields
}

func NewNodeWebhookContext added in v0.0.30

func NewNodeWebhookContext(ctx context.Context, tx *gorm.DB, encryptor crypto.Encryptor, node *models.CanvasNode, baseURL string) *NodeWebhookContext

func (*NodeWebhookContext) GetBaseURL added in v0.0.30

func (c *NodeWebhookContext) GetBaseURL() string

func (*NodeWebhookContext) GetSecret added in v0.0.30

func (c *NodeWebhookContext) GetSecret() ([]byte, error)

func (*NodeWebhookContext) ResetSecret added in v0.0.30

func (c *NodeWebhookContext) ResetSecret() ([]byte, []byte, error)

func (*NodeWebhookContext) SetSecret added in v0.10.0

func (c *NodeWebhookContext) SetSecret(secret []byte) error

func (*NodeWebhookContext) Setup added in v0.0.30

func (c *NodeWebhookContext) Setup() (string, error)

type SecretsContext added in v0.7.0

type SecretsContext struct {
	// contains filtered or unexported fields
}

SecretsContext resolves organization secret key values for component execution.

func NewSecretsContext added in v0.7.0

func NewSecretsContext(tx *gorm.DB, organizationID uuid.UUID, encryptor crypto.Encryptor) *SecretsContext

NewSecretsContext returns a SecretsContext that looks up secrets in the given transaction for the given organization.

func (*SecretsContext) GetKey added in v0.7.0

func (c *SecretsContext) GetKey(secretName, keyName string) ([]byte, error)

GetKey implements core.SecretsContext.

type WebhookContext

type WebhookContext struct {
	// contains filtered or unexported fields
}

func NewWebhookContext

func NewWebhookContext(tx *gorm.DB, webhook *models.Webhook, encryptor crypto.Encryptor, baseURL string) *WebhookContext

func (*WebhookContext) GetConfiguration added in v0.0.30

func (c *WebhookContext) GetConfiguration() any

func (*WebhookContext) GetID added in v0.0.30

func (c *WebhookContext) GetID() string

func (*WebhookContext) GetMetadata added in v0.0.30

func (c *WebhookContext) GetMetadata() any

func (*WebhookContext) GetSecret

func (c *WebhookContext) GetSecret() ([]byte, error)

func (*WebhookContext) GetURL added in v0.0.30

func (c *WebhookContext) GetURL() string

func (*WebhookContext) SetSecret added in v0.0.30

func (c *WebhookContext) SetSecret(secret []byte) error

Jump to

Keyboard shortcuts

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