webhook

package
v2.12.1-mercury-06182024 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2024 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrJobNotExists = errors.New("job does not exist")

Functions

func NewEIAuthorizer

func NewEIAuthorizer(ds sqlutil.DataSource, ei bridges.ExternalInitiator) *eiAuthorizer

func NewExternalInitiatorManager

func NewExternalInitiatorManager(ds sqlutil.DataSource, httpclient HTTPClient) *externalInitiatorManager

NewExternalInitiatorManager returns the concrete externalInitiatorManager

func ValidatedWebhookSpec

func ValidatedWebhookSpec(ctx context.Context, tomlString string, externalInitiatorManager ExternalInitiatorManager) (jb job.Job, err error)

Types

type Authorizer

type Authorizer interface {
	CanRun(ctx context.Context, config AuthorizerConfig, jobUUID uuid.UUID) (bool, error)
}

type AuthorizerConfig

type AuthorizerConfig interface {
	ExternalInitiatorsEnabled() bool
}

type Delegate

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

func NewDelegate

func NewDelegate(runner pipeline.Runner, externalInitiatorManager ExternalInitiatorManager, lggr logger.Logger) *Delegate

func (*Delegate) AfterJobCreated

func (d *Delegate) AfterJobCreated(jb job.Job)

func (*Delegate) BeforeJobCreated

func (d *Delegate) BeforeJobCreated(spec job.Job)

func (*Delegate) BeforeJobDeleted

func (d *Delegate) BeforeJobDeleted(spec job.Job)

func (*Delegate) JobType

func (d *Delegate) JobType() job.Type

func (*Delegate) OnDeleteJob

func (d *Delegate) OnDeleteJob(context.Context, job.Job) error

func (*Delegate) ServicesForSpec

func (d *Delegate) ServicesForSpec(ctx context.Context, spec job.Job) ([]job.ServiceCtx, error)

ServicesForSpec satisfies the job.Delegate interface.

func (*Delegate) WebhookJobRunner

func (d *Delegate) WebhookJobRunner() JobRunner

type ExternalInitiatorManager

type ExternalInitiatorManager interface {
	Notify(ctx context.Context, webhookSpecID int32) error
	DeleteJob(ctx context.Context, webhookSpecID int32) error
	FindExternalInitiatorByName(ctx context.Context, name string) (bridges.ExternalInitiator, error)
}

ExternalInitiatorManager manages HTTP requests to remote external initiators

type HTTPClient

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

type JobRunner

type JobRunner interface {
	RunJob(ctx context.Context, jobUUID uuid.UUID, requestBody string, meta jsonserializable.JSONSerializable) (int64, error)
}

type JobSpecNotice

type JobSpecNotice struct {
	JobID  uuid.UUID   `json:"jobId"`
	Type   string      `json:"type"`
	Params models.JSON `json:"params,omitempty"`
}

JobSpecNotice is sent to the External Initiator when JobSpecs are created.

type NullExternalInitiatorManager

type NullExternalInitiatorManager struct{}

func (NullExternalInitiatorManager) DeleteJob

func (NullExternalInitiatorManager) FindExternalInitiatorByName

func (NullExternalInitiatorManager) FindExternalInitiatorByName(ctx context.Context, name string) (bridges.ExternalInitiator, error)

func (NullExternalInitiatorManager) Notify

type TOMLWebhookSpec

type TOMLWebhookSpec struct {
	ExternalInitiators []TOMLWebhookSpecExternalInitiator `toml:"externalInitiators"`
}

type TOMLWebhookSpecExternalInitiator

type TOMLWebhookSpecExternalInitiator struct {
	Name string      `toml:"name"`
	Spec models.JSON `toml:"spec"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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