hostmanifest

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: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersion                    = "vango.host.v1.0"
	ArtifactKind                     = "vango_host_manifest"
	DefaultOutputPath                = ".vango/host/vango_host_manifest.json"
	AuthTenancyContractSchemaVersion = "vango.auth.tenancy.v1.0"
)

Variables

This section is empty.

Functions

func MarshalDeterministic

func MarshalDeterministic(m *Manifest) ([]byte, error)

func Write

func Write(path string, m *Manifest) error

Types

type AuthTenancy

type AuthTenancy struct {
	Status      string               `json:"status"`
	ContractRef artifact.ArtifactRef `json:"contract_ref"`
	Summary     AuthTenancySummary   `json:"summary"`
}

type AuthTenancySummary

type AuthTenancySummary struct {
	Providers        []string            `json:"providers"`
	TenantMode       string              `json:"tenant_mode"`
	RouteAuthUnknown int                 `json:"route_auth_unknown"`
	ManualRequired   bool                `json:"manual_required"`
	ProofLevel       artifact.ProofLevel `json:"proof_level"`
}

type BuildOptions

type BuildOptions struct {
	ProjectRoot  string
	Name         string
	Module       string
	AppVersion   string
	ToolVersion  string
	Commit       string
	OutputPath   string
	ArtifactRoot string
	Config       *config.Config

	StateImpact     *stateimpact.Impact
	RouteContract   *routecontract.Contract
	RuntimeServices *runtimeservices.Artifact
	EnvContract     *envcontract.Contract
	AuthContract    *authcontract.Contract
	DBContract      *dbcontract.Contract
	DBValidation    *dbcontract.Validation
	DBImpact        *dbcontract.Impact
	StorageContract *storagecontract.Contract
	PaymentContract *paymentcontract.Contract
}

type Codegen

type Codegen struct {
	Status      string               `json:"status"`
	ManifestRef artifact.ArtifactRef `json:"manifest_ref"`
	Summary     CodegenSummary       `json:"summary"`
}

type CodegenSummary

type CodegenSummary struct {
	Outputs               int `json:"outputs"`
	StaleOutputs          int `json:"stale_outputs"`
	GeneratorOwnedOutputs int `json:"generator_owned_outputs"`
	EphemeralOutputs      int `json:"ephemeral_outputs"`
}

type Database

type Database struct {
	Mode          string               `json:"mode"`
	ContractRef   artifact.ArtifactRef `json:"contract_ref"`
	ValidationRef artifact.ArtifactRef `json:"validation_ref"`
	ImpactRef     artifact.ArtifactRef `json:"impact_ref"`
	Summary       DatabaseSummary      `json:"summary"`
}

type DatabaseSummary

type DatabaseSummary struct {
	Bindings             int                 `json:"bindings"`
	RequiredBindings     int                 `json:"required_bindings"`
	ImpactClassification string              `json:"impact_classification"`
	RequiresDBReview     bool                `json:"requires_db_review"`
	ProofLevel           artifact.ProofLevel `json:"proof_level"`
}

type DeployImpact

type DeployImpact struct {
	Status                   string               `json:"status"`
	Classification           string               `json:"classification"`
	SourceClassification     string               `json:"source_classification"`
	RequiresVangoAckOrReview bool                 `json:"requires_vango_ack_or_review"`
	StateImpactRef           artifact.ArtifactRef `json:"state_impact_ref"`
}

type Environment

type Environment struct {
	Variables              []EnvironmentVariable `json:"variables"`
	SecretValuesInManifest bool                  `json:"secret_values_in_manifest"`
	ContractRef            artifact.ArtifactRef  `json:"contract_ref"`
}

type EnvironmentVariable

type EnvironmentVariable struct {
	ID          string              `json:"id"`
	Name        string              `json:"name"`
	Required    bool                `json:"required"`
	Scopes      []string            `json:"scopes"`
	Sensitivity string              `json:"sensitivity"`
	Origin      artifact.Origin     `json:"origin"`
	ProofLevel  artifact.ProofLevel `json:"proof_level"`
	SourceRef   artifact.SourceRef  `json:"source_ref,omitempty"`
}

type HTTPRuntime

type HTTPRuntime struct {
	PageRoutesOwnedByVango bool   `json:"page_routes_owned_by_vango"`
	PublicRuntimePrefix    string `json:"public_runtime_prefix"`
	RuntimeEndpointPrefix  string `json:"runtime_endpoint_prefix"`
	LivePath               string `json:"live_path"`
	ClientScriptPath       string `json:"client_script_path"`
	LegacyWSPath           string `json:"legacy_ws_path"`
	MaxHandshakePathBytes  int    `json:"max_handshake_path_bytes"`
}

type HostCriticalRoute

type HostCriticalRoute struct {
	ID         string          `json:"id"`
	Path       string          `json:"path"`
	Methods    []string        `json:"methods"`
	Kind       string          `json:"kind"`
	WakeSafety string          `json:"wake_safety"`
	Origin     artifact.Origin `json:"origin"`
}

type Manifest

type Manifest 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"`
	Toolchain          Toolchain                       `json:"toolchain"`
	Inputs             []artifact.ArtifactRef          `json:"inputs"`
	Runtime            Runtime                         `json:"runtime"`
	Routes             Routes                          `json:"routes"`
	State              State                           `json:"state"`
	DeployImpact       DeployImpact                    `json:"deploy_impact"`
	Surfaces           []Surface                       `json:"surfaces"`
	RuntimeServices    RuntimeServices                 `json:"runtime_services"`
	RoutesContract     RoutesContract                  `json:"routes_contract"`
	AuthTenancy        AuthTenancy                     `json:"auth_tenancy"`
	Database           Database                        `json:"database"`
	ObjectStorage      ObjectStorage                   `json:"object_storage"`
	Payments           Payments                        `json:"payments"`
	ProviderProfiles   []artifact.ProfileFact          `json:"provider_profiles"`
	ControlProfiles    []artifact.ProfileFact          `json:"control_profiles"`
	Codegen            Codegen                         `json:"codegen"`
	Proof              Proof                           `json:"proof"`
	OperationReadiness OperationReadiness              `json:"operation_readiness"`
	Environment        Environment                     `json:"environment"`
	Security           Security                        `json:"security"`
	UnsafeConfig       UnsafeConfig                    `json:"unsafe_config"`
	Outputs            []artifact.ArtifactRef          `json:"outputs"`
	References         map[string]artifact.ArtifactRef `json:"references"`
	Diagnostics        []artifact.Diagnostic           `json:"diagnostics"`
}

func Build

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

type ObjectStorage

type ObjectStorage struct {
	Status     string               `json:"status"`
	ProfileRef artifact.ArtifactRef `json:"profile_ref"`
	Summary    ObjectStorageSummary `json:"summary"`
}

type ObjectStorageSummary

type ObjectStorageSummary struct {
	Enabled              bool                `json:"enabled"`
	ProviderProfiles     []string            `json:"provider_profiles"`
	UploadFlows          int                 `json:"upload_flows"`
	TempCleanupStatus    string              `json:"temp_cleanup_status,omitempty"`
	PromoteStatus        string              `json:"promote_status,omitempty"`
	TenantKeyScopeStatus string              `json:"tenant_key_scope_status,omitempty"`
	ManualRequired       bool                `json:"manual_required"`
	Blocked              bool                `json:"blocked"`
	ProofLevel           artifact.ProofLevel `json:"proof_level"`
}

type OperationReadiness

type OperationReadiness struct {
	Status  string                                          `json:"status"`
	Summary map[artifact.Operation]artifact.ReadinessStatus `json:"summary"`
}

type Payments

type Payments struct {
	Status     string               `json:"status"`
	ProfileRef artifact.ArtifactRef `json:"profile_ref"`
	Summary    PaymentsSummary      `json:"summary"`
}

type PaymentsSummary

type PaymentsSummary struct {
	Enabled                  bool                `json:"enabled"`
	ProviderProfiles         []string            `json:"provider_profiles"`
	Flows                    []string            `json:"flows"`
	Webhooks                 int                 `json:"webhooks"`
	WebhookSignatureStatus   string              `json:"webhook_signature_status,omitempty"`
	WebhookIdempotencyStatus string              `json:"webhook_idempotency_status,omitempty"`
	FulfillmentStatus        string              `json:"fulfillment_status,omitempty"`
	ReturnVerificationStatus string              `json:"return_verification_status,omitempty"`
	PricingCatalogStatus     string              `json:"pricing_catalog_status,omitempty"`
	ManualRequired           bool                `json:"manual_required"`
	Blocked                  bool                `json:"blocked"`
	ProofLevel               artifact.ProofLevel `json:"proof_level"`
}

type Process

type Process struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Kind     string `json:"kind"`
	Command  string `json:"command"`
	PortEnv  string `json:"port_env,omitempty"`
	Required bool   `json:"required"`
}

type Proof

type Proof struct {
	Status         string               `json:"status"`
	ProofBundleRef artifact.ArtifactRef `json:"proof_bundle_ref"`
}

type RouteSummary

type RouteSummary struct {
	Pages              int `json:"pages"`
	APIs               int `json:"apis"`
	Actions            int `json:"actions"`
	Uploads            int `json:"uploads"`
	Webhooks           int `json:"webhooks"`
	CustomHTTP         int `json:"custom_http"`
	UnsafeReplayRoutes int `json:"unsafe_replay_routes"`
}

type Routes

type Routes 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"`
	RouteSummary       RouteSummary        `json:"route_summary"`
	HostCriticalRoutes []HostCriticalRoute `json:"host_critical_routes"`
}

type RoutesContract

type RoutesContract struct {
	Status    string               `json:"status"`
	RoutesRef artifact.ArtifactRef `json:"routes_ref"`
	Summary   RouteSummary         `json:"summary"`
}

type Runtime

type Runtime struct {
	Processes []Process      `json:"processes"`
	HTTP      HTTPRuntime    `json:"http"`
	Session   SessionRuntime `json:"session"`
}

type RuntimeServices

type RuntimeServices struct {
	Status                      string               `json:"status"`
	ServicesRef                 artifact.ArtifactRef `json:"services_ref"`
	Summary                     ServicesSummary      `json:"summary"`
	RequiredForHostCapabilities map[string][]string  `json:"required_for_host_capabilities"`
}

type Security

type Security struct {
	Origins                 SecurityOrigins                 `json:"origins"`
	CSRF                    SecurityCSRF                    `json:"csrf"`
	Cookies                 SecurityCookies                 `json:"cookies"`
	TrustedProxies          SecurityTrustedProxies          `json:"trusted_proxies"`
	RuntimePathPreservation SecurityRuntimePathPreservation `json:"runtime_path_preservation"`
}

type SecurityCSRF

type SecurityCSRF struct {
	Enabled                   bool `json:"enabled"`
	StatefulHTTPRequiresToken bool `json:"stateful_http_requires_token"`
}

type SecurityCookies

type SecurityCookies struct {
	SecureRequired  bool   `json:"secure_required"`
	HTTPOnlyDefault bool   `json:"http_only_default"`
	SameSite        string `json:"same_site"`
}

type SecurityOrigins

type SecurityOrigins struct {
	SameOriginDefault  bool     `json:"same_origin_default"`
	AllowedOrigins     []string `json:"allowed_origins"`
	CustomOriginPolicy bool     `json:"custom_origin_policy"`
}

type SecurityRuntimePathPreservation

type SecurityRuntimePathPreservation struct {
	PreserveLivePathQueryExactly bool `json:"preserve_live_path_query_exactly"`
	PreserveWebSocketUpgrade     bool `json:"preserve_websocket_upgrade"`
}

type SecurityTrustedProxies

type SecurityTrustedProxies struct {
	Required bool     `json:"required"`
	Headers  []string `json:"headers"`
}

type ServicesSummary

type ServicesSummary struct {
	RequiredServices int `json:"required_services"`
	OptionalServices int `json:"optional_services"`
	DegradedServices int `json:"degraded_services"`
}

type SessionRuntime

type SessionRuntime struct {
	ResumeMode               string   `json:"resume_mode"`
	ResumeWindowMS           int64    `json:"resume_window_ms"`
	PersistentResumeRequires []string `json:"persistent_resume_requires"`
}

type State

type State struct {
	Enabled             bool   `json:"enabled"`
	Status              string `json:"status"`
	ManifestPath        string `json:"manifest_path,omitempty"`
	ManifestDigest      string `json:"manifest_digest,omitempty"`
	ManifestStatus      string `json:"manifest_status,omitempty"`
	SchemaPath          string `json:"schema_path,omitempty"`
	SchemaDigest        string `json:"schema_digest,omitempty"`
	SchemaStatus        string `json:"schema_status,omitempty"`
	BindingsGlob        string `json:"bindings_glob"`
	BindingsStatus      string `json:"bindings_status"`
	BindingsFileCount   int    `json:"bindings_file_count"`
	PersistedPrimitives int    `json:"persisted_primitives"`
	SessionKeys         int    `json:"session_keys"`
	GlobalSignals       int    `json:"global_signals"`
	SharedSignals       int    `json:"shared_signals"`
}

type Surface

type Surface struct {
	ID                     string              `json:"id"`
	Kind                   string              `json:"kind"`
	Topology               string              `json:"topology"`
	RuntimeAuthority       string              `json:"runtime_authority"`
	BaseURLRequired        bool                `json:"base_url_required"`
	HostedBaseURL          string              `json:"hosted_base_url,omitempty"`
	AllowedOrigins         []string            `json:"allowed_origins"`
	TrustedSurfaceRequired bool                `json:"trusted_surface_required"`
	ShellCapabilities      []string            `json:"shell_capabilities"`
	Origin                 artifact.Origin     `json:"origin"`
	ProofLevel             artifact.ProofLevel `json:"proof_level"`
	SourceRef              artifact.SourceRef  `json:"source_ref,omitempty"`
}

type Toolchain

type Toolchain struct {
	VangoVersion                    string `json:"vango_version"`
	ToolVersion                     string `json:"tool_version"`
	GoVersion                       string `json:"go_version,omitempty"`
	RoutesContractSchemaVersion     string `json:"routes_contract_schema_version"`
	StateImpactSchemaVersion        string `json:"state_impact_schema_version"`
	RuntimeServicesSchemaVersion    string `json:"runtime_services_schema_version"`
	SecretEnvContractSchemaVersion  string `json:"secret_env_contract_schema_version"`
	AuthTenancySchemaVersion        string `json:"auth_tenancy_schema_version"`
	DatabaseContractSchemaVersion   string `json:"database_contract_schema_version"`
	DatabaseValidationSchemaVersion string `json:"database_validation_schema_version"`
	DatabaseImpactSchemaVersion     string `json:"database_impact_schema_version"`
	ObjectStorageSchemaVersion      string `json:"object_storage_schema_version"`
	StripePaymentSchemaVersion      string `json:"stripe_payment_schema_version"`
	HostManifestSchemaVersion       string `json:"host_manifest_schema_version"`
}

type UnsafeConfig

type UnsafeConfig struct {
	Entries        []UnsafeConfigEntry `json:"entries"`
	ProductionSafe bool                `json:"production_safe"`
}

type UnsafeConfigEntry

type UnsafeConfigEntry struct {
	Code     string `json:"code"`
	State    string `json:"state"`
	Severity string `json:"severity"`
	Summary  string `json:"summary"`
	Detail   string `json:"detail,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(m *Manifest, opts ValidationOptions) ValidationResult

Jump to

Keyboard shortcuts

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