contract

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: May 23, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersion     = "vango.routes.contract.v1.0"
	ArtifactKind      = "vango_route_contract"
	DefaultOutputPath = ".vango/routes/vango_route_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 Auth

type Auth struct {
	Requirement string              `json:"requirement"`
	Freshness   string              `json:"freshness"`
	TenantScope string              `json:"tenant_scope"`
	PolicyRef   string              `json:"policy_ref,omitempty"`
	ProofLevel  artifact.ProofLevel `json:"proof_level"`
}

type BuildOptions

type BuildOptions struct {
	ProjectRoot      string
	RoutesDir        string
	RoutesOutputPath string
	Name             string
	Module           string
	AppVersion       string
	ToolVersion      string
	Commit           string
	OutputPath       string
}

type CSRF

type CSRF struct {
	Required bool   `json:"required"`
	Reason   string `json:"reason"`
}

type Contract

type Contract struct {
	SchemaVersion      string                          `json:"schema_version"`
	ArtifactID         string                          `json:"artifact_id"`
	ArtifactKind       string                          `json:"artifact_kind"`
	Producer           artifact.Producer               `json:"producer"`
	App                artifact.App                    `json:"app"`
	Analysis           artifact.Analysis               `json:"analysis"`
	RouteArtifacts     RouteArtifacts                  `json:"route_artifacts"`
	Routes             []Route                         `json:"routes"`
	Groups             []RouteGroup                    `json:"groups"`
	OpenAPIRefs        []OpenAPIRef                    `json:"openapi_refs"`
	OperationReadiness []artifact.OperationReadiness   `json:"operation_readiness"`
	Inputs             []artifact.ArtifactRef          `json:"inputs"`
	Outputs            []artifact.ArtifactRef          `json:"outputs"`
	References         map[string]artifact.ArtifactRef `json:"references"`
	Diagnostics        []artifact.Diagnostic           `json:"diagnostics"`
}

func Build

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

type Idempotency

type Idempotency struct {
	Required            bool   `json:"required"`
	KeySource           string `json:"key_source"`
	Header              string `json:"header,omitempty"`
	StoreRef            string `json:"store_ref,omitempty"`
	ReplayWindowSeconds int    `json:"replay_window_seconds,omitempty"`
}

type ModelChecks

type ModelChecks struct {
	BlockingRender       string              `json:"blocking_render"`
	ImperativeNavigation string              `json:"imperative_navigation"`
	ProofLevel           artifact.ProofLevel `json:"proof_level"`
}

type OpenAPIRef

type OpenAPIRef struct {
	RouteID     string `json:"route_id,omitempty"`
	Path        string `json:"path"`
	OperationID string `json:"operation_id,omitempty"`
	Digest      string `json:"digest,omitempty"`
}

type Route

type Route struct {
	ID               string              `json:"id"`
	Path             string              `json:"path"`
	VangoPath        string              `json:"vango_path,omitempty"`
	SourcePath       string              `json:"source_path,omitempty"`
	Methods          []string            `json:"methods"`
	Kind             string              `json:"kind"`
	Owner            string              `json:"owner"`
	Origin           artifact.Origin     `json:"origin"`
	ProofLevel       artifact.ProofLevel `json:"proof_level"`
	Params           []RouteParam        `json:"params"`
	ProviderProfiles []string            `json:"provider_profiles"`
	DataClasses      []string            `json:"data_classes"`
	Auth             Auth                `json:"auth"`
	CSRF             CSRF                `json:"csrf"`
	Idempotency      Idempotency         `json:"idempotency"`
	Webhook          Webhook             `json:"webhook"`
	RouteForm        RouteForm           `json:"route_form"`
	ModelChecks      ModelChecks         `json:"model_checks"`
	WakeSafety       string              `json:"wake_safety"`
	ReplaySafety     string              `json:"replay_safety"`
	Stateful         bool                `json:"stateful"`
	HandlerSymbol    string              `json:"handler_symbol,omitempty"`
	SourceRef        artifact.SourceRef  `json:"source_ref,omitempty"`
}

type RouteArtifacts

type RouteArtifacts struct {
	RoutesDir       string              `json:"routes_dir"`
	GeneratedFile   string              `json:"generated_file,omitempty"`
	GeneratedDigest string              `json:"generated_digest,omitempty"`
	Status          string              `json:"status"`
	ProofLevel      artifact.ProofLevel `json:"proof_level"`
}

type RouteForm

type RouteForm struct {
	Required   bool                `json:"required"`
	Status     string              `json:"status"`
	ProofLevel artifact.ProofLevel `json:"proof_level"`
}

type RouteGroup

type RouteGroup struct {
	ID         string   `json:"id"`
	Kind       string   `json:"kind"`
	RouteIDs   []string `json:"route_ids"`
	RouteCount int      `json:"route_count"`
}

type RouteParam

type RouteParam struct {
	Name         string `json:"name"`
	Type         string `json:"type"`
	Source       string `json:"source"`
	Segment      string `json:"segment,omitempty"`
	ExplicitType string `json:"explicit_type,omitempty"`
}

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 Webhook

type Webhook struct {
	Detected              bool                `json:"detected"`
	ProviderProfile       string              `json:"provider_profile,omitempty"`
	SignatureRequired     bool                `json:"signature_required"`
	SignatureStatus       string              `json:"signature_status"`
	FreshnessRequired     bool                `json:"freshness_required"`
	IdempotencyRequired   bool                `json:"idempotency_required"`
	DurableProcessingHint string              `json:"durable_processing_hint,omitempty"`
	ProofLevel            artifact.ProofLevel `json:"proof_level"`
}

Jump to

Keyboard shortcuts

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