Documentation
¶
Overview ¶
Package workqueue validates Work Queue Observation V0 wire artifacts and computes deterministic, non-operative wave proposals.
Index ¶
- Constants
- func DetailPayloadDigest(payload DetailPayload) string
- func ErrorCode(err error) string
- func QueueSourceIdentity(policy *Policy, snapshot *Snapshot) string
- func RefreshCheckpoint(document *CheckpointDocument)
- func RefreshCommandResult(result *CommandResult)
- func RefreshDetail(detail *Detail)
- func RefreshDetails(document *DetailsDocument)
- func RefreshEnvelope(envelope *CapacityEnvelope)
- func RefreshLease(lease *LeaseSummary)
- func RefreshObservation(observation *Observation)
- func RefreshReceipt(receipt *AdapterReceipt)
- func RefreshRepositorySource(source *RepositorySource)
- func RefreshSnapshot(snapshot *Snapshot)
- func RefreshTicket(ticket *TicketSummary)
- func ResolveState(facts StateFacts) string
- func SHA256Hex(raw []byte) string
- func ValidateCheckpoint(document *CheckpointDocument, policy *Policy, snapshot *Snapshot, ...) error
- func ValidateIdentifier(value string) error
- func ValidatePath(value string) error
- type AdapterReceipt
- type CapacityClass
- type CapacityEnvelope
- type CapacityUse
- type Checkpoint
- type CheckpointDocument
- type CollisionClosure
- type CollisionGroup
- type CollisionSource
- type CommandResult
- type Count
- type Detail
- type DetailPayload
- type DetailsDocument
- type Error
- type ExecutableIdentity
- type LeaseSummary
- type Observation
- type Policy
- type PolicyOperations
- type Proposal
- type ProposalEntry
- type Rank
- type RepositorySource
- type RouteAlternative
- type Scope
- type SelectionFacts
- type Snapshot
- type StateFacts
- type TicketSummary
- type ValidationResult
Constants ¶
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" )
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" )
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 QueueSourceIdentity ¶
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 ValidateCheckpoint ¶
func ValidateCheckpoint(document *CheckpointDocument, policy *Policy, snapshot *Snapshot, source RepositorySource) error
func ValidateIdentifier ¶
func ValidatePath ¶
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 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 Checkpoint ¶
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 CollisionSource ¶
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 DetailPayload ¶
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 ExecutableIdentity ¶
type LeaseSummary ¶
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 (*Policy) RefreshIdentity ¶
func (policy *Policy) RefreshIdentity()
type PolicyOperations ¶
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)
type ProposalEntry ¶
type RepositorySource ¶
type RouteAlternative ¶
type SelectionFacts ¶
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 ¶
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 ¶
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