Documentation
¶
Index ¶
- Constants
- func MarshalDeterministic(c *Contract) ([]byte, error)
- func Write(path string, c *Contract) error
- type BuildOptions
- type Contract
- type DeliveryPosture
- type IdempotencyPosture
- type PresignedURLPosture
- type PromotePosture
- type ProviderProofPosture
- type SecurityPosture
- type StorageBinding
- type TempCleanupPosture
- type TenantKeyPosture
- type UploadFlow
- type ValidationOptions
- type ValidationResult
Constants ¶
View Source
const ( SchemaVersion = "vango.object_storage.upload.v1.0" ArtifactKind = "vango_object_storage_upload_profile" DefaultOutputPath = ".vango/storage/vango_object_storage_upload_profile.json" )
Variables ¶
This section is empty.
Functions ¶
func MarshalDeterministic ¶
Types ¶
type BuildOptions ¶
type BuildOptions struct {
ProjectRoot string
Name string
Module string
AppVersion string
ToolVersion string
Commit string
OutputPath string
Config *config.Config
RouteContract *routecontract.Contract
RuntimeServices *runtimeservices.Artifact
EnvContract *envcontract.Contract
AuthContract *authcontract.Contract
}
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"`
Storage StorageBinding `json:"storage"`
UploadFlows []UploadFlow `json:"upload_flows"`
Security SecurityPosture `json:"security"`
ProviderProof ProviderProofPosture `json:"provider_proof"`
ProviderProfiles []artifact.ProfileFact `json:"provider_profiles"`
ControlProfiles []artifact.ProfileFact `json:"control_profiles"`
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 DeliveryPosture ¶
type IdempotencyPosture ¶
type PresignedURLPosture ¶
type PromotePosture ¶
type ProviderProofPosture ¶
type ProviderProofPosture struct {
Required bool `json:"required"`
BucketIdentity bool `json:"bucket_identity"`
CORS bool `json:"cors"`
IAMPrefixScope bool `json:"iam_prefix_scope"`
LifecycleCleanup bool `json:"lifecycle_cleanup"`
ConditionalPromote bool `json:"conditional_promote"`
EvidenceRefs []string `json:"evidence_refs"`
MissingEvidence []string `json:"missing_evidence"`
ProductionReady bool `json:"production_ready"`
ProductionReadyText string `json:"production_ready_text"`
}
type SecurityPosture ¶
type StorageBinding ¶
type StorageBinding struct {
Enabled bool `json:"enabled"`
ProviderProfile string `json:"provider_profile,omitempty"`
RuntimeServiceID string `json:"runtime_service_id,omitempty"`
RuntimeServiceStatus string `json:"runtime_service_status"`
RequiredEnv []string `json:"required_env"`
Origin artifact.Origin `json:"origin"`
ProofLevel artifact.ProofLevel `json:"proof_level"`
SourceRef artifact.SourceRef `json:"source_ref,omitempty"`
}
type TempCleanupPosture ¶
type TenantKeyPosture ¶
type UploadFlow ¶
type UploadFlow struct {
ID string `json:"id"`
Lifecycle string `json:"lifecycle"`
IntentRouteID string `json:"intent_route_id,omitempty"`
ClaimRouteID string `json:"claim_route_id,omitempty"`
Idempotency IdempotencyPosture `json:"idempotency"`
TempCleanup TempCleanupPosture `json:"temp_cleanup"`
Promote PromotePosture `json:"promote"`
TenantKeyScope TenantKeyPosture `json:"tenant_key_scope"`
PresignedPUT PresignedURLPosture `json:"presigned_put"`
PresignedGET PresignedURLPosture `json:"presigned_get"`
Delivery DeliveryPosture `json:"delivery"`
RequiredEnv []string `json:"required_env"`
RequiredService string `json:"required_service,omitempty"`
ManualFacts []string `json:"manual_facts"`
Origin artifact.Origin `json:"origin"`
ProofLevel artifact.ProofLevel `json:"proof_level"`
SourceRef artifact.SourceRef `json:"source_ref,omitempty"`
}
type ValidationOptions ¶
type ValidationResult ¶
type ValidationResult struct {
Valid bool `json:"valid"`
Diagnostics []artifact.Diagnostic `json:"diagnostics"`
}
func Validate ¶
func Validate(c *Contract, opts ValidationOptions) ValidationResult
Click to show internal directories.
Click to hide internal directories.