contract

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: May 24, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersion     = "vango.env.contract.v1.0"
	ArtifactKind      = "vango_secret_env_contract"
	DefaultOutputPath = ".vango/env/vango_secret_env_contract.json"
)

Variables

This section is empty.

Functions

func MarshalDeterministic

func MarshalDeterministic(c *Contract) ([]byte, error)

func Write

func Write(path string, c *Contract) error

Types

type Analysis

type Analysis struct {
	Mode              string                      `json:"mode"`
	Status            artifactpkg.AnalysisStatus  `json:"status"`
	SupportLevel      artifactpkg.SupportLevel    `json:"support_level"`
	ProofLevel        artifactpkg.ProofLevel      `json:"proof_level"`
	RedactionStatus   artifactpkg.RedactionStatus `json:"redaction_status,omitempty"`
	UnsupportedReason string                      `json:"unsupported_reason,omitempty"`
}

type BindingValidation

type BindingValidation struct {
	Executed                         bool                   `json:"executed"`
	ProofLevel                       artifactpkg.ProofLevel `json:"proof_level"`
	Environment                      string                 `json:"environment,omitempty"`
	Missing                          []string               `json:"missing"`
	WrongScope                       []string               `json:"wrong_scope"`
	UnexpectedSecretValuesInArtifact bool                   `json:"unexpected_secret_values_in_artifact"`
}

type BuildOptions

type BuildOptions struct {
	ProjectRoot     string
	Name            string
	Module          string
	AppVersion      string
	ToolVersion     string
	Commit          string
	OutputPath      string
	RuntimeServices *runtimeservices.Artifact
	DBContract      *dbcontract.Contract
}

type Contract

type Contract struct {
	SchemaVersion      string                             `json:"schema_version"`
	ArtifactID         string                             `json:"artifact_id"`
	ArtifactKind       string                             `json:"artifact_kind"`
	Producer           artifactpkg.Producer               `json:"producer"`
	App                artifactpkg.App                    `json:"app"`
	Analysis           Analysis                           `json:"analysis"`
	Variables          []Variable                         `json:"variables"`
	Scopes             []Scope                            `json:"scopes"`
	SeparationRules    []SeparationRule                   `json:"separation_rules"`
	BindingValidation  BindingValidation                  `json:"binding_validation"`
	OperationReadiness []artifactpkg.OperationReadiness   `json:"operation_readiness"`
	Inputs             []artifactpkg.ArtifactRef          `json:"inputs"`
	Outputs            []artifactpkg.ArtifactRef          `json:"outputs"`
	References         map[string]artifactpkg.ArtifactRef `json:"references"`
	Diagnostics        []artifactpkg.Diagnostic           `json:"diagnostics"`
}

func Build

func Build(opts BuildOptions) (*Contract, error)

type Scope

type Scope struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

type SeparationRule

type SeparationRule struct {
	ID       string               `json:"id"`
	Kind     string               `json:"kind"`
	Env      string               `json:"env"`
	Scope    string               `json:"scope"`
	Severity artifactpkg.Severity `json:"severity"`
	Reason   string               `json:"reason"`
}

type ValidationOptions

type ValidationOptions struct {
	ProjectRoot      string
	RequireArtifacts bool
}

type ValidationResult

type ValidationResult struct {
	Valid       bool                  `json:"valid"`
	Diagnostics []artifact.Diagnostic `json:"diagnostics"`
}

func Validate

func Validate(c *Contract, opts ValidationOptions) ValidationResult

type Variable

type Variable struct {
	ID              string                 `json:"id"`
	Name            string                 `json:"name"`
	Required        bool                   `json:"required"`
	Sensitivity     string                 `json:"sensitivity"`
	Scopes          []string               `json:"scopes"`
	Roles           []string               `json:"roles"`
	RequiredFor     []string               `json:"required_for"`
	ProviderProfile string                 `json:"provider_profile,omitempty"`
	Origin          artifactpkg.Origin     `json:"origin"`
	ProofLevel      artifactpkg.ProofLevel `json:"proof_level"`
	SourceRef       artifactpkg.SourceRef  `json:"source_ref,omitempty"`
}

Jump to

Keyboard shortcuts

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