auditionproof

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2026 License: AGPL-3.0, AGPL-3.0-only Imports: 6 Imported by: 0

Documentation

Overview

Package auditionproof is the evidence model for audition: audition produces proof results, later phases consume them. It is intentionally bigger than any one proof — today it carries GitOps (Flux) validation; freshness, eligibility, crucible, etc. are typed fields added as they adopt the model. This package is the *evidence* layer only (what was proven), NOT enforcement (required vs advisory gating), which is a separate, deferred design.

The results are persisted to the `.stagefreight/` handoff that audition uploads as a CI artifact and perform downloads — so perform acts on the exact evidence the operator reviewed in audition, never a recomputed second verdict.

Index

Constants

View Source
const ResultsPath = paths.Root + "/proof-results.json"

ResultsPath is the workspace-relative path where audition proof results live.

Variables

This section is empty.

Functions

func Write

func Write(rootDir string, r *Results) error

Write persists the proof results atomically (tmp + fsync + rename).

Types

type Finding

type Finding struct {
	Severity string `json:"severity"`
	Source   string `json:"source"`
	Message  string `json:"message"`
}

Finding is one evidence item. Severity is "warn" | "fail"; Source is the provenance ("graph" | "render" | "core-schema" | "crd-catalog").

type FluxValidate

type FluxValidate struct {
	Roots    int                `json:"roots"`
	Skipped  string             `json:"skipped,omitempty"` // validation could not run (e.g. tool unavailable)
	Verdicts map[string]Verdict `json:"verdicts,omitempty"`
	NoSchema map[string]int     `json:"no_schema,omitempty"`
}

FluxValidate is the GitOps validation proof: a verdict per Flux Kustomization (keyed "namespace/name" — the unit of truth), plus coverage facts.

type Results

type Results struct {
	Version      int           `json:"version"`
	FluxValidate *FluxValidate `json:"flux_validate,omitempty"`
}

Results is the per-run set of audition proof outcomes. Each proof is a typed, omit-empty field so the JSON grows additively as proofs adopt the model.

func Read

func Read(rootDir string) (*Results, error)

Read returns the proof results from the workspace. A missing file is not an error — it yields an empty Results (the proof simply did not run / persist).

type Verdict

type Verdict struct {
	Status   string    `json:"status"`
	Findings []Finding `json:"findings,omitempty"`
}

Verdict is one Kustomization's outcome. Status is "pass" | "warn" | "fail". Findings carry the per-item severity and provenance so a consumer can tell an authoritative core-schema failure from an advisory CRD-catalog one.

Jump to

Keyboard shortcuts

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