workqueue

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 16 Imported by: 0

Documentation

Overview

Package workqueue validates Work Queue Observation V0 wire artifacts and computes deterministic, non-operative wave proposals.

Index

Constants

View Source
const (
	PolicyProfile      = "work-queue-policy/0"
	DetailsProfile     = "work-queue-detail/0"
	CheckpointProfile  = "work-queue-checkpoint/0"
	ObservationProfile = "work-queue-observation/0"
	CommandProfile     = "work-command-result/0"
)
View Source
const (
	SnapshotProfile = "work-queue-snapshot/0"
	EnvelopeProfile = "work-capacity-envelope/0"
	ProposalProfile = "work-wave-proposal/0"

	StateValidated  = "VALIDATED_AT"
	StatePartial    = "PARTIAL"
	StateConflicted = "CONFLICTED"
	StateStale      = "STALE"
	StateUnknown    = "UNKNOWN"

	UnknownAccessIncomplete               = "ACCESS_INCOMPLETE"
	UnknownAdapterInvalid                 = "ADAPTER_INVALID"
	UnknownCheckpointChanged              = "CHECKPOINT_CHANGED"
	UnknownCollisionClosureIncomplete     = "COLLISION_CLOSURE_INCOMPLETE"
	UnknownContainmentUnqualified         = "CONTAINMENT_UNQUALIFIED"
	UnknownDetailMissing                  = "DETAIL_MISSING"
	UnknownExecutableIdentityUnqualified  = "EXECUTABLE_IDENTITY_UNQUALIFIED"
	UnknownHostileInput                   = "HOSTILE_INPUT"
	UnknownInputLimit                     = "INPUT_LIMIT"
	UnknownMultiRepoUnsupported           = "MULTI_REPO_UNSUPPORTED"
	UnknownMutationDetected               = "MUTATION_DETECTED"
	UnknownMutationEnforcementUnqualified = "MUTATION_ENFORCEMENT_UNQUALIFIED"
	UnknownNetworkUnobserved              = "NETWORK_UNOBSERVED"
	UnknownProcessResidue                 = "PROCESS_RESIDUE"
	UnknownRepositoryDirty                = "REPOSITORY_DIRTY"
	UnknownRouteUnknown                   = "ROUTE_UNKNOWN"
	UnknownSourceUnqualified              = "SOURCE_UNQUALIFIED"
	UnknownReference                      = "UNKNOWN_REFERENCE"
)
View Source
const (
	CodeMalformedInput = "MALFORMED_INPUT"
	CodeInputLimit     = "INPUT_LIMIT"
	CodeHostileInput   = "HOSTILE_INPUT"
	CodeConflicted     = "CONFLICTED"
)

Variables

This section is empty.

Functions

func DetailPayloadDigest

func DetailPayloadDigest(payload DetailPayload) string

func ErrorCode

func ErrorCode(err error) string

func QueueSourceIdentity

func QueueSourceIdentity(policy *Policy, snapshot *Snapshot) string

func RefreshCheckpoint

func RefreshCheckpoint(document *CheckpointDocument)

func RefreshCommandResult

func RefreshCommandResult(result *CommandResult)

func RefreshDetail

func RefreshDetail(detail *Detail)

func RefreshDetails

func RefreshDetails(document *DetailsDocument)

func RefreshEnvelope

func RefreshEnvelope(envelope *CapacityEnvelope)

func RefreshLease

func RefreshLease(lease *LeaseSummary)

func RefreshObservation

func RefreshObservation(observation *Observation)

func RefreshReceipt

func RefreshReceipt(receipt *AdapterReceipt)

func RefreshRepositorySource

func RefreshRepositorySource(source *RepositorySource)

func RefreshSnapshot

func RefreshSnapshot(snapshot *Snapshot)

func RefreshTicket

func RefreshTicket(ticket *TicketSummary)

func ResolveState

func ResolveState(facts StateFacts) string

ResolveState applies the closed observation-state precedence exactly once.

func SHA256Hex

func SHA256Hex(raw []byte) string

func ValidateCheckpoint

func ValidateCheckpoint(document *CheckpointDocument, policy *Policy, snapshot *Snapshot, source RepositorySource) error

func ValidateIdentifier

func ValidateIdentifier(value string) error

func ValidatePath

func ValidatePath(value string) error

Types

type AdapterReceipt

type AdapterReceipt struct {
	AdapterBlobOID          string               `json:"adapterBlobOid"`
	AdapterFileSHA256       string               `json:"adapterFileSha256"`
	AdapterMode             string               `json:"adapterMode"`
	Argv                    []string             `json:"argv"`
	ContainmentClass        string               `json:"containmentClass"`
	ExecutableQualification string               `json:"executableQualification"`
	ExitCode                *Count               `json:"-"`
	ID                      string               `json:"id"`
	InterpreterChain        []ExecutableIdentity `json:"interpreterChain"`
	Operation               string               `json:"operation"`
	PolicyID                string               `json:"policyId"`
	Signal                  *string              `json:"signal"`
	State                   string               `json:"state"`
	StderrBytes             Count                `json:"-"`
	StderrRawSHA256         string               `json:"stderrRawSha256"`
	StdoutBytes             Count                `json:"-"`
	StdoutRawSHA256         string               `json:"stdoutRawSha256"`
}

type CapacityClass

type CapacityClass struct {
	AvailableUnits Count
	ID             string
}

type CapacityEnvelope

type CapacityEnvelope struct {
	Available             []CapacityClass
	Capabilities          []string
	ID                    string
	Profile               string
	RepositoryAuthorityID string
}

func ParseEnvelope

func ParseEnvelope(raw []byte) (*CapacityEnvelope, error)

func (*CapacityEnvelope) Canonical

func (envelope *CapacityEnvelope) Canonical() []byte

type CapacityUse

type CapacityUse struct {
	ClassID string
	Units   Count
}

type Checkpoint

type Checkpoint struct {
	ID      string
	Version string
}

type CheckpointDocument

type CheckpointDocument struct {
	Checkpoint       Checkpoint       `json:"checkpoint"`
	ID               string           `json:"id"`
	PolicyID         string           `json:"policyId"`
	Profile          string           `json:"profile"`
	RepositorySource RepositorySource `json:"repositorySource"`
	SnapshotID       string           `json:"snapshotId"`
}

func ParseCheckpoint

func ParseCheckpoint(raw []byte) (*CheckpointDocument, error)

func (*CheckpointDocument) Canonical

func (document *CheckpointDocument) Canonical() []byte

type CollisionClosure

type CollisionClosure struct {
	Groups         []CollisionGroup
	TicketGroupIDs map[string][]string
	Complete       bool
	State          string
	Unknowns       []string
}

func DeriveCollisions

func DeriveCollisions(snapshot *Snapshot, source CollisionSource) CollisionClosure

type CollisionGroup

type CollisionGroup struct {
	ID              string
	MemberTicketIDs []string
	Path            *string
	Source          string
}

type CollisionSource

type CollisionSource interface {
	Closure(paths []string) (closure []string, complete bool)
}

CollisionSource expands declared paths at one immutable repository commit.

func IndexCollisionSource

func IndexCollisionSource(index *contextindex.Index) CollisionSource

IndexCollisionSource returns a pure collision source over an already-built, immutable context index. Its reverse import table is computed once.

type CommandResult

type CommandResult struct {
	ErrorCode   *string      `json:"errorCode"`
	ID          string       `json:"id"`
	Observation *Observation `json:"observation"`
	Profile     string       `json:"profile"`
	Proposal    *Proposal    `json:"proposal"`
	State       string       `json:"state"`
}

func (*CommandResult) Canonical

func (result *CommandResult) Canonical() []byte

type Count

type Count uint32

Count is the decoded value of a WQO Count string.

func ParseCount

func ParseCount(value string) (Count, error)

func (Count) String

func (count Count) String() string

type Detail

type Detail struct {
	DetailID              string        `json:"detailId"`
	Payload               DetailPayload `json:"payload"`
	PayloadSHA256         string        `json:"payloadSha256"`
	RepositoryAuthorityID string        `json:"repositoryAuthorityId"`
	TicketID              string        `json:"ticketId"`
	TicketVersionID       string        `json:"ticketVersionId"`
}

type DetailPayload

type DetailPayload struct {
	AcceptanceCriteria []string `json:"acceptanceCriteria"`
	Body               *string  `json:"body"`
	DisplayKey         *string  `json:"displayKey"`
	EvidenceHandles    []string `json:"evidenceHandles"`
	Owner              *string  `json:"owner"`
	Title              *string  `json:"title"`
}

type DetailsDocument

type DetailsDocument struct {
	Details    []Detail `json:"details"`
	ID         string   `json:"id"`
	Profile    string   `json:"profile"`
	SnapshotID string   `json:"snapshotId"`
}

func ParseDetails

func ParseDetails(raw []byte) (*DetailsDocument, error)

func (*DetailsDocument) Canonical

func (document *DetailsDocument) Canonical() []byte

type Error

type Error struct {
	Code    string
	Message string
}

Error is a bounded WQO structural or compatibility failure.

func (*Error) Error

func (err *Error) Error() string

type ExecutableIdentity

type ExecutableIdentity struct {
	FileSHA256 string `json:"fileSha256"`
	Mode       string `json:"mode"`
	PathSHA256 string `json:"pathSha256"`
}

type LeaseSummary

type LeaseSummary struct {
	BlocksSelection       bool
	CapacityUses          []CapacityUse
	CollisionGroupIDs     []string
	HolderID              string
	LeaseID               string
	LeaseVersionID        string
	Lifecycle             string
	QueueAuthorityID      string
	RepositoryAuthorityID string
	TicketID              string
	TicketVersionID       string
}

type Observation

type Observation struct {
	AdapterReceipts  []AdapterReceipt `json:"adapterReceipts"`
	ContainmentClass string           `json:"containmentClass"`
	DetailIDs        []string         `json:"detailIds"`
	EndCheckpoint    Checkpoint       `json:"endCheckpoint"`
	ID               string           `json:"id"`
	MutationState    string           `json:"mutationState"`
	NetworkState     string           `json:"networkState"`
	PolicyID         string           `json:"policyId"`
	Profile          string           `json:"profile"`
	QueueSourceID    string           `json:"queueSourceId"`
	SnapshotID       string           `json:"snapshotId"`
	StartCheckpoint  Checkpoint       `json:"startCheckpoint"`
	State            string           `json:"state"`
	Unknowns         []string         `json:"unknowns"`
}

type Policy

type Policy struct {
	AccessContextID       string           `json:"accessContextId"`
	AdapterPath           string           `json:"adapterPath"`
	AdapterProfile        string           `json:"adapterProfile"`
	DetailLimit           string           `json:"detailLimit"`
	ID                    string           `json:"id"`
	MappingVersion        string           `json:"mappingVersion"`
	Operations            PolicyOperations `json:"operations"`
	Profile               string           `json:"profile"`
	QueueAuthorityID      string           `json:"queueAuthorityId"`
	RepositoryAuthorityID string           `json:"repositoryAuthorityId"`
	ScopeID               string           `json:"scopeId"`
}

func ParsePolicy

func ParsePolicy(raw []byte) (*Policy, error)

func (*Policy) Canonical

func (policy *Policy) Canonical() []byte

func (*Policy) RefreshIdentity

func (policy *Policy) RefreshIdentity()

type PolicyOperations

type PolicyOperations struct {
	Details  []string `json:"details"`
	Snapshot []string `json:"snapshot"`
	Verify   []string `json:"verify"`
}

type Proposal

type Proposal struct {
	CapacityEnvelopeID string
	CollisionClosure   []CollisionGroup
	Entries            []ProposalEntry
	ID                 string
	MutationAuthority  bool
	ObservationID      string
	Profile            string
	QueueSourceID      string
	State              string
	Unknowns           []string
	WaveLimit          Count
	WaveOptimality     string
}

func ProposeWave

func ProposeWave(snapshot *Snapshot, envelope *CapacityEnvelope, closure CollisionClosure, limit Count) (*Proposal, error)

func (*Proposal) Canonical

func (proposal *Proposal) Canonical() []byte

func (*Proposal) MarkStale

func (proposal *Proposal) MarkStale()

MarkStale turns a completed analysis into the empty drift result required by WQO-V0-025 and refreshes its content identity.

type ProposalEntry

type ProposalEntry struct {
	CollisionGroupIDs  []string
	Reason             string
	RouteAlternativeID *string
	State              string
	TicketID           string
	TicketVersionID    string
}

type Rank

type Rank uint32

Rank is the decoded value of a WQO Rank string.

func ParseRank

func ParseRank(value string) (Rank, error)

func (Rank) String

func (rank Rank) String() string

type RepositorySource

type RepositorySource struct {
	Commit                string
	ID                    string
	MaterializationSHA256 string
	ObjectFormat          string
	StatusSHA256          string
	Tree                  string
}

type RouteAlternative

type RouteAlternative struct {
	ID       string
	Requires []string
}

type Scope

type Scope struct {
	Complete    bool
	ID          string
	TicketCount Count
}

type SelectionFacts

type SelectionFacts struct {
	Approvals    string
	Dependencies string
	Holds        string
	Lease        string
}

type Snapshot

type Snapshot struct {
	AccessContextID               string
	CapacityClasses               []CapacityClass
	Checkpoint                    Checkpoint
	DetailRequestTicketVersionIDs []string
	ID                            string
	Leases                        []LeaseSummary
	PolicyID                      string
	Profile                       string
	QueueAuthorityID              string
	RepositoryAuthorityID         string
	RepositorySource              RepositorySource
	Scope                         Scope
	Tickets                       []TicketSummary

	ObservationID       string
	QueueSourceID       string
	ObservationState    string
	ObservationUnknowns []string
}

Snapshot is one parsed work-queue-snapshot/0. The proposal binding fields are caller-supplied observation metadata and are not snapshot wire members.

func ParseSnapshot

func ParseSnapshot(raw []byte) (*Snapshot, error)

func (*Snapshot) Canonical

func (snapshot *Snapshot) Canonical() []byte

type StateFacts

type StateFacts struct {
	IdentityContradiction    bool
	MutationOrAdapterFailure bool
	Stale                    bool
	PositivePartial          bool
	Unable                   bool
}

StateFacts preserves the predicates whose precedence is defined by WQO-V0-014. Qualification diagnostics alone do not imply Unable.

type TicketSummary

type TicketSummary struct {
	AtomicRepositoryAuthorityIDs []string
	Authority                    string
	CapacityUses                 []CapacityUse
	CollisionGroupIDs            []string
	DeclaredVersion              string
	DependencyTicketIDs          []string
	DetailPayloadSHA256          *string
	Lifecycle                    string
	QueueAuthorityID             string
	Rank                         Rank
	RepositoryAuthorityID        string
	RouteAlternatives            []RouteAlternative
	SelectionFacts               SelectionFacts
	TicketContentSHA256          string
	TicketID                     string
	TicketVersionID              string
	TouchPaths                   []string
}

type ValidationResult

type ValidationResult struct {
	State    string
	Unknowns []string
}

func ValidateDetailCoverage

func ValidateDetailCoverage(snapshot *Snapshot, details *DetailsDocument) ValidationResult

func ValidateDetailRequests

func ValidateDetailRequests(snapshot *Snapshot, policy *Policy) ValidationResult

ValidateDetailRequests checks the policy-dependent request derivation in §4.2. Snapshot parsing and ValidateSnapshot establish ticket order and identities; this helper neither normalizes supplied requests nor validates returned details.

func ValidateSnapshot

func ValidateSnapshot(snapshot *Snapshot) ValidationResult

Jump to

Keyboard shortcuts

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