Documentation
¶
Overview ¶
Package contract serves the operator-wide Dispatch dashboard.
Index ¶
- Constants
- func DurableAction(intent string) string
- func Register(d *dispatcher.Dispatcher, reg fc.Registry, wreg fc.WardenRegistry, deps Deps) error
- type ArtifactCacheConfig
- type ArtifactConfig
- type ArtifactDetail
- type ArtifactDownload
- type ArtifactJobLinks
- type ArtifactLinkRow
- type ArtifactRow
- type ArtifactsListInput
- type ArtifactsPage
- type BeforeInput
- type CountResult
- type CronDetail
- type CronRow
- type CronRunResult
- type CronSummary
- type DLQBulkResult
- type DLQCountsInput
- type DLQDetail
- type DLQListInput
- type DLQPurgeResult
- type DLQReplayAllInput
- type DLQReplayResult
- type DLQRow
- type DeletedResult
- type Deps
- type Duration
- type EmptyInput
- type EngineConfig
- type ExecutionPolicy
- type ExecutorRow
- type HandlerArtifactInput
- type HandlerDetail
- type HandlerInput
- type HandlerRow
- type IDInput
- type JobAction
- type JobArtifactLinks
- type JobCounts
- type JobDetail
- type JobHandlerDetail
- type JobRow
- type JobsListInput
- type LocalResources
- type NameInput
- type OverviewSummary
- type Page
- type Payload
- type PoolConfig
- type QueueConfigRow
- type QueueDetail
- type QueueInput
- type QueueRow
- type QueueSettings
- type QueuesPage
- type RequestedRlimits
- type ResourceConfig
- type ResourceLeaseRow
- type SchedulerConfig
- type SubprocessConfig
- type WorkerDetail
- type WorkerRow
- type WorkerSummary
- type WorkersPage
- type WorkflowCheckpoint
- type WorkflowDetail
- type WorkflowReplayCommandInput
- type WorkflowReplayInput
- type WorkflowReplayPreview
- type WorkflowReplayResult
- type WorkflowRow
- type WorkflowsListInput
Constants ¶
View Source
const ContributorName = "dispatch"
ContributorName joins the Go contributor and the React plugin.
View Source
const DurableWardenName = "dispatchDurableOperator"
View Source
const WardenName = "dispatchInstallationOperator"
Variables ¶
This section is empty.
Functions ¶
func DurableAction ¶
DurableAction is a closed descriptor shared by admission and typed handlers.
func Register ¶
func Register(d *dispatcher.Dispatcher, reg fc.Registry, wreg fc.WardenRegistry, deps Deps) error
Register validates the manifest and binds only implemented intents.
Types ¶
type ArtifactCacheConfig ¶
type ArtifactConfig ¶
type ArtifactConfig struct {
Enabled bool `json:"enabled"`
Backend *string `json:"backend"`
DefaultBucket *string `json:"defaultBucket"`
Cache *ArtifactCacheConfig `json:"cache"`
}
type ArtifactDetail ¶
type ArtifactDetail struct {
Enabled bool `json:"enabled"`
Artifact *ArtifactRow `json:"artifact"`
AsOf string `json:"asOf"`
}
type ArtifactDownload ¶
type ArtifactJobLinks ¶
type ArtifactJobLinks struct {
JobArtifactLinks
JobID string `json:"jobId"`
AsOf string `json:"asOf"`
}
type ArtifactLinkRow ¶
type ArtifactRow ¶
type ArtifactRow struct {
ID string `json:"id"`
Backend string `json:"backend"`
Bucket string `json:"bucket"`
Key string `json:"key"`
Size int64 `json:"size"`
ContentHash *string `json:"contentHash"`
ContentType *string `json:"contentType"`
Lifecycle artifact.Lifecycle `json:"lifecycle"`
ScopeAppID *string `json:"scopeAppId"`
ScopeOrgID *string `json:"scopeOrgId"`
ExpiresAt *string `json:"expiresAt"`
CreatedAt *string `json:"createdAt"`
DeletedAt *string `json:"deletedAt"`
DownloadAvailable bool `json:"downloadAvailable"`
}
type ArtifactsListInput ¶
type ArtifactsPage ¶
type ArtifactsPage struct {
Page[ArtifactRow]
Enabled bool `json:"enabled"`
}
type BeforeInput ¶
type BeforeInput struct {
Before string `json:"before"`
}
type CountResult ¶
type CronDetail ¶
type CronRow ¶
type CronRow struct {
ID string `json:"id"`
Name string `json:"name"`
Schedule string `json:"schedule"`
JobName string `json:"jobName"`
Queue *string `json:"queue"`
EffectiveQueue string `json:"effectiveQueue"`
ScopeAppID *string `json:"scopeAppId"`
ScopeOrgID *string `json:"scopeOrgId"`
Enabled bool `json:"enabled"`
CreatedAt *string `json:"createdAt"`
UpdatedAt *string `json:"updatedAt"`
LastRunAt *string `json:"lastRunAt"`
NextRunAt *string `json:"nextRunAt"`
LockedBy *string `json:"lockedBy"`
LockedUntil *string `json:"lockedUntil"`
NextFires []string `json:"nextFires"`
Location *string `json:"location"`
ScheduleError *string `json:"scheduleError"`
}
type CronRunResult ¶
type CronSummary ¶
type DLQBulkResult ¶
type DLQCountsInput ¶
type DLQDetail ¶
type DLQDetail struct {
DLQRow
Payload Payload `json:"payload"`
Priority int `json:"priority"`
Timeout Duration `json:"timeout"`
LeaseTTL Duration `json:"leaseTtl"`
ArtifactBindings Payload `json:"artifactBindings"`
Resources resource.Set `json:"resources"`
ResourceLimits resource.Set `json:"resourceLimits"`
ResourceClass *string `json:"resourceClass"`
InputBytes int64 `json:"inputBytes"`
PrimaryInputHash *string `json:"primaryInputHash"`
AsOf string `json:"asOf"`
}
type DLQListInput ¶
type DLQPurgeResult ¶
type DLQReplayAllInput ¶
type DLQReplayResult ¶
type DLQRow ¶
type DLQRow struct {
ID string `json:"id"`
JobID string `json:"jobId"`
JobName string `json:"jobName"`
Queue string `json:"queue"`
Error *string `json:"error"`
RetryCount int `json:"retryCount"`
MaxRetries int `json:"maxRetries"`
ScopeAppID *string `json:"scopeAppId"`
ScopeOrgID *string `json:"scopeOrgId"`
FailedAt *string `json:"failedAt"`
CreatedAt *string `json:"createdAt"`
ReplayedAt *string `json:"replayedAt"`
ReplayedJobID *string `json:"replayedJobId"`
}
type DeletedResult ¶
type Deps ¶
type Deps struct {
Durable *operator.Service
Security security.Boundary
Engine *engine.Engine
Store store.Store
Logger forge.Logger
}
Deps contains the running engine and the stores its intents inspect.
type EmptyInput ¶
type EmptyInput struct{}
type EngineConfig ¶
type EngineConfig struct {
WorkerID string `json:"workerId"`
Pool PoolConfig `json:"pool"`
Scheduler SchedulerConfig `json:"scheduler"`
Queues []QueueConfigRow `json:"queues"`
Executors []ExecutorRow `json:"executors"`
Resources ResourceConfig `json:"resources"`
Artifacts ArtifactConfig `json:"artifacts"`
ScratchRoot string `json:"scratchRoot"`
WakeNotifierSupported bool `json:"wakeNotifierSupported"`
AsOf string `json:"asOf"`
}
type ExecutionPolicy ¶
type ExecutorRow ¶
type ExecutorRow struct {
Name string `json:"name"`
Level string `json:"level"`
Default bool `json:"default"`
Subprocess *SubprocessConfig `json:"subprocess"`
}
type HandlerArtifactInput ¶
type HandlerDetail ¶
type HandlerDetail struct {
HandlerRow
Job *JobHandlerDetail `json:"job"`
AsOf string `json:"asOf"`
}
type HandlerInput ¶
type HandlerRow ¶
type JobArtifactLinks ¶
type JobArtifactLinks struct {
Enabled bool `json:"enabled"`
Links []ArtifactLinkRow `json:"links"`
}
type JobDetail ¶
type JobDetail struct {
JobRow
Payload Payload `json:"payload"`
LastError *string `json:"lastError"`
HeartbeatAt *string `json:"heartbeatAt"`
Timeout Duration `json:"timeout"`
LeaseEpoch int `json:"leaseEpoch"`
LeaseExpiresAt *string `json:"leaseExpiresAt"`
LeaseTTL Duration `json:"leaseTtl"`
EffectiveLeaseTTL Duration `json:"effectiveLeaseTtl"`
EvictCount int `json:"evictCount"`
Resources resource.Set `json:"resources"`
ResourceLimits resource.Set `json:"resourceLimits"`
ResourceClass *string `json:"resourceClass"`
InputBytes int64 `json:"inputBytes"`
PrimaryInputHash *string `json:"primaryInputHash"`
ArtifactBindings Payload `json:"artifactBindings"`
Artifacts JobArtifactLinks `json:"artifacts"`
DLQEntryID *string `json:"dlqEntryId"`
AsOf string `json:"asOf"`
}
type JobHandlerDetail ¶
type JobHandlerDetail struct {
Inputs []HandlerArtifactInput `json:"inputs"`
Resources resource.Set `json:"resources"`
ResourceLimits resource.Set `json:"resourceLimits"`
ResourceClass *string `json:"resourceClass"`
ResourceFunction bool `json:"resourceFunction"`
LeaseTTL *Duration `json:"leaseTtl"`
EffectiveLeaseTTL Duration `json:"effectiveLeaseTtl"`
Execution ExecutionPolicy `json:"execution"`
}
type JobRow ¶
type JobRow struct {
ID string `json:"id"`
Name string `json:"name"`
Queue string `json:"queue"`
State job.State `json:"state"`
Priority int `json:"priority"`
MaxRetries int `json:"maxRetries"`
RetryCount int `json:"retryCount"`
WorkerID *string `json:"workerId"`
ScopeAppID *string `json:"scopeAppId"`
ScopeOrgID *string `json:"scopeOrgId"`
CreatedAt *string `json:"createdAt"`
RunAt *string `json:"runAt"`
StartedAt *string `json:"startedAt"`
CompletedAt *string `json:"completedAt"`
}
type JobsListInput ¶
type LocalResources ¶
type OverviewSummary ¶
type OverviewSummary struct {
Jobs JobCounts `json:"jobs"`
Runs map[workflow.RunState]int64 `json:"runs"`
UnreplayedDeadLetters int64 `json:"unreplayedDeadLetters"`
Crons CronSummary `json:"crons"`
Workers WorkerSummary `json:"workers"`
AsOf string `json:"asOf"`
}
type Payload ¶
type Payload struct {
Kind string `json:"kind"`
JSON json.RawMessage `json:"json,omitempty"`
JSONText string `json:"jsonText,omitempty"`
Bytes *int `json:"bytes,omitempty"`
}
Payload exposes JSON with its original text and opaque content only as a size.
type PoolConfig ¶
type PoolConfig struct {
Concurrency int `json:"concurrency"`
Queues []string `json:"queues"`
PollInterval Duration `json:"pollInterval"`
MaxPollInterval Duration `json:"maxPollInterval"`
JobHeartbeatInterval Duration `json:"jobHeartbeatInterval"`
WorkerHeartbeatInterval Duration `json:"workerHeartbeatInterval"`
WorkerStaleThreshold Duration `json:"workerStaleThreshold"`
StaleJobThreshold Duration `json:"staleJobThreshold"`
ReapInterval Duration `json:"reapInterval"`
DefaultLeaseTTL Duration `json:"defaultLeaseTtl"`
StoreCallTimeout Duration `json:"storeCallTimeout"`
ShutdownTimeout Duration `json:"shutdownTimeout"`
StoreCallsBounded bool `json:"storeCallsBounded"`
ReapingEnabled bool `json:"reapingEnabled"`
LeasesEnabled bool `json:"leasesEnabled"`
}
type QueueConfigRow ¶
type QueueConfigRow struct {
Name string `json:"name"`
Settings QueueSettings `json:"settings"`
}
type QueueDetail ¶
type QueueInput ¶
type QueueInput struct {
Queue string `json:"queue"`
}
type QueueSettings ¶
type QueuesPage ¶
type RequestedRlimits ¶
type ResourceConfig ¶
type ResourceConfig struct {
Enabled bool `json:"enabled"`
Defaults resource.Set `json:"defaults"`
Queues map[string]resource.Set `json:"queues"`
AdvertisedWorkerCapacity resource.Set `json:"advertisedWorkerCapacity"`
CustomKeys []string `json:"customKeys"`
EstimatorConfigured bool `json:"estimatorConfigured"`
}
type ResourceLeaseRow ¶
type SchedulerConfig ¶
type SubprocessConfig ¶
type SubprocessConfig struct {
UserConfigured bool `json:"userConfigured"`
UID *int `json:"uid"`
GID *int `json:"gid"`
AllowSameUser bool `json:"allowSameUser"`
HasRlimits bool `json:"hasRlimits"`
StrictRlimits bool `json:"strictRlimits"`
RequestedLimits RequestedRlimits `json:"requestedLimits"`
ScratchDir *string `json:"scratchDir"`
}
type WorkerDetail ¶
type WorkerRow ¶
type WorkerRow struct {
ID string `json:"id"`
Hostname *string `json:"hostname"`
Queues []string `json:"queues"`
Concurrency int `json:"concurrency"`
State cluster.WorkerState `json:"state"`
Self bool `json:"self"`
IsLeader bool `json:"isLeader"`
LeaderUntil *string `json:"leaderUntil"`
LastSeen *string `json:"lastSeen"`
CreatedAt *string `json:"createdAt"`
HeartbeatAge *Duration `json:"heartbeatAge"`
HeartbeatInterval *Duration `json:"heartbeatInterval"`
HeartbeatStatus string `json:"heartbeatStatus"`
ClockSkew bool `json:"clockSkew"`
Capacity resource.Set `json:"capacity"`
}
type WorkerSummary ¶
type WorkersPage ¶
type WorkflowCheckpoint ¶
type WorkflowDetail ¶
type WorkflowDetail struct {
WorkflowRow
Input Payload `json:"input"`
Output Payload `json:"output"`
Error *string `json:"error"`
Checkpoints []WorkflowCheckpoint `json:"checkpoints"`
Children []WorkflowRow `json:"children"`
VersionRegistered bool `json:"versionRegistered"`
AsOf string `json:"asOf"`
}
type WorkflowReplayCommandInput ¶
type WorkflowReplayCommandInput struct {
WorkflowReplayInput
ExpectedGeneration *int64 `json:"expectedGeneration"`
}
type WorkflowReplayInput ¶
type WorkflowReplayPreview ¶
type WorkflowReplayResult ¶
type WorkflowReplayResult struct {
Plan WorkflowReplayPreview `json:"plan"`
AcceptedGeneration int64 `json:"acceptedGeneration"`
AsOf string `json:"asOf"`
}
type WorkflowRow ¶
type WorkflowRow struct {
ID string `json:"id"`
Name string `json:"name"`
State workflow.RunState `json:"state"`
Version int `json:"version"`
RecordedVersion int `json:"recordedVersion"`
ReplayGeneration int64 `json:"replayGeneration"`
ParentRunID *string `json:"parentRunId"`
ScopeAppID *string `json:"scopeAppId"`
ScopeOrgID *string `json:"scopeOrgId"`
CreatedAt *string `json:"createdAt"`
UpdatedAt *string `json:"updatedAt"`
StartedAt *string `json:"startedAt"`
CompletedAt *string `json:"completedAt"`
Duration *Duration `json:"duration"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.