event

package
v0.1.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	TriggerDepthParam = "_trigger_depth"
)

Variables

View Source
var ErrTriggerChainDepthExceeded = errors.New("trigger chain depth exceeded")

Functions

This section is empty.

Types

type Config

type Config struct {
	Events        []EventPattern    `json:"events,omitempty"`
	ParamMapping  map[string]string `json:"paramMapping,omitempty"`
	DefaultParams map[string]string `json:"defaultParams,omitempty"`
}

type EventPattern

type EventPattern struct {
	Type   string            `json:"type"`
	Source string            `json:"source,omitempty"`
	Filter map[string]string `json:"filter,omitempty"`
}

func (EventPattern) Matches

func (p EventPattern) Matches(evt *models.IngestedEvent) bool

type EventTrigger

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

func New

func New(t *models.Trigger, opts ...Option) (*EventTrigger, error)

func (*EventTrigger) ExtractEventParams

func (t *EventTrigger) ExtractEventParams(evt *models.IngestedEvent) map[string]string

func (*EventTrigger) Fire

func (t *EventTrigger) Fire(ctx context.Context) error

func (*EventTrigger) FireWithParams

func (t *EventTrigger) FireWithParams(ctx context.Context, params map[string]string) ([]FireOutcome, error)

func (*EventTrigger) ID

func (t *EventTrigger) ID() uuid.UUID

func (*EventTrigger) Listen

func (t *EventTrigger) Listen(ctx context.Context)

func (*EventTrigger) Matches

func (t *EventTrigger) Matches(evt *models.IngestedEvent) bool

func (*EventTrigger) Patterns

func (t *EventTrigger) Patterns() []EventPattern

type FireOutcome

type FireOutcome struct {
	JobID      uuid.UUID `json:"job_id,omitempty"`
	RunID      uuid.UUID `json:"run_id,omitempty"`
	Skipped    bool      `json:"skipped,omitempty"`
	SkipReason string    `json:"skip_reason,omitempty"`
	Error      string    `json:"error,omitempty"`
	// contains filtered or unexported fields
}

type Option

type Option func(*EventTrigger)

func WithListJobs

func WithListJobs(fn func(context.Context, string) (models.Jobs, error)) Option

func WithMaxTriggerDepth

func WithMaxTriggerDepth(max int) Option

func WithRunJob

func WithRunJob(fn func(context.Context, *models.Job, map[string]string) error) Option

func WithRunStoreFactory

func WithRunStoreFactory(fn func() *runstorage.Store) Option

type RouteResult

type RouteResult struct {
	EventID         uuid.UUID            `json:"event_id"`
	EventType       string               `json:"event_type"`
	Source          string               `json:"source,omitempty"`
	MatchedTriggers []TriggerRouteResult `json:"matched_triggers"`
}

type Router

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

func ConfigureDefaultRouter

func ConfigureDefaultRouter(conn *gorm.DB) *Router

func DefaultRouter

func DefaultRouter() *Router

func NewRouter

func NewRouter(conn *gorm.DB, opts ...RouterOption) *Router

func (*Router) Reload

func (r *Router) Reload(ctx context.Context) error

func (*Router) Route

func (r *Router) Route(ctx context.Context, evt *models.IngestedEvent) (*RouteResult, error)

func (*Router) RunLifecycleBridge

func (r *Router) RunLifecycleBridge(ctx context.Context, events <-chan eventstore.Event) error

func (*Router) StartLifecycleBridge

func (r *Router) StartLifecycleBridge(ctx context.Context, bus eventstore.Bus) error

func (*Router) SubscribeLifecycleBridge

func (r *Router) SubscribeLifecycleBridge(ctx context.Context, bus eventstore.Bus) (<-chan eventstore.Event, error)

type RouterOption

type RouterOption func(*Router)

func WithEventTriggerOptions

func WithEventTriggerOptions(opts ...Option) RouterOption

func WithTriggerLister

func WithTriggerLister(fn func(context.Context) (models.Triggers, error)) RouterOption

type TriggerRouteResult

type TriggerRouteResult struct {
	TriggerID   uuid.UUID   `json:"trigger_id"`
	RunsStarted []uuid.UUID `json:"runs_started,omitempty"`
	Skipped     bool        `json:"skipped,omitempty"`
	SkipReason  string      `json:"skip_reason,omitempty"`
	Error       string      `json:"error,omitempty"`
}

Jump to

Keyboard shortcuts

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