109 lines
2.7 KiB
Go
109 lines
2.7 KiB
Go
// Package notarius declares the adapter contract for Notarius CLI invocations.
|
|
package notarius
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
const ReceiptSchemaVersion = "notarius.run-result.v1"
|
|
|
|
// Runner is the adapter boundary for a complete Notarius pipeline invocation.
|
|
type Runner interface {
|
|
Run(ctx context.Context, req RunRequest) (RunResult, error)
|
|
}
|
|
|
|
// RunRequest contains the resolved inputs and diagnostic destinations for one invocation.
|
|
type RunRequest struct {
|
|
Binary string
|
|
ConfigPath string
|
|
PipelineID string
|
|
InputPath string
|
|
OutputRoot string
|
|
WorkingDirectory string
|
|
ReceiptPath string
|
|
LogPath string
|
|
Timeout time.Duration
|
|
}
|
|
|
|
// Receipt is the transport-neutral successful run receipt.
|
|
type Receipt struct {
|
|
SchemaVersion string
|
|
RunID string
|
|
PipelineID string
|
|
OutputDirectory string
|
|
IndexFile string
|
|
NormalizedOutputCount int
|
|
RejectedOutputCount int
|
|
WarningCount int
|
|
ValidationStatus string
|
|
DebugDirectory string
|
|
}
|
|
|
|
// LaneDescriptor identifies one normalized lane payload discovered through the index.
|
|
type LaneDescriptor struct {
|
|
LaneID string
|
|
File string
|
|
Path string
|
|
MediaType string
|
|
ModuleKey string
|
|
SchemaID string
|
|
SchemaName string
|
|
SchemaVersion string
|
|
}
|
|
|
|
// PipelineDescriptor identifies a pipeline-wide artifact discovered through the index.
|
|
type PipelineDescriptor struct {
|
|
ArtifactKind string
|
|
File string
|
|
Path string
|
|
MediaType string
|
|
SchemaID string
|
|
SchemaName string
|
|
SchemaVersion string
|
|
}
|
|
|
|
// Index describes the validated bundle-management and artifact paths.
|
|
type Index struct {
|
|
Path string
|
|
ManifestFile string
|
|
ManifestPath string
|
|
RejectedFile string
|
|
RejectedPath string
|
|
WarningsFile string
|
|
WarningsPath string
|
|
Lanes []LaneDescriptor
|
|
ChunkMap *PipelineDescriptor
|
|
EvidenceContext *PipelineDescriptor
|
|
}
|
|
|
|
// RejectionSummary retains structured rejection identity without free-form messages.
|
|
type RejectionSummary struct {
|
|
Stage string
|
|
StepID string
|
|
LaneID string
|
|
ModuleKey string
|
|
ChunkID string
|
|
ValidatorName string
|
|
ReasonCode string
|
|
}
|
|
|
|
// WarningSummary retains structured warning identity without free-form messages.
|
|
type WarningSummary struct {
|
|
Scope string
|
|
ReasonCode string
|
|
}
|
|
|
|
// RunResult describes a successfully decoded and validated Notarius bundle.
|
|
type RunResult struct {
|
|
Receipt Receipt
|
|
Index Index
|
|
BundleRoot string
|
|
ReceiptPath string
|
|
LogPath string
|
|
ExitCode int
|
|
Duration time.Duration
|
|
Rejections []RejectionSummary
|
|
Warnings []WarningSummary
|
|
}
|