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

Documentation

Index

Constants

View Source
const (
	SchemaVersion     = "vango.stripe.payment.v1.0"
	ArtifactKind      = "vango_stripe_payment_profile"
	DefaultOutputPath = ".vango/payments/vango_stripe_payment_profile.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 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"`
	Provider           ProviderBinding                 `json:"provider"`
	Flows              []PaymentFlow                   `json:"flows"`
	Webhooks           []WebhookEndpoint               `json:"webhooks"`
	ReturnVerification ReturnVerificationPosture       `json:"return_verification"`
	Fulfillment        FulfillmentPosture              `json:"fulfillment"`
	PricingCatalog     PricingCatalogPosture           `json:"pricing_catalog"`
	PCIBoundary        PCIBoundaryPosture              `json:"pci_boundary"`
	Security           SecurityPosture                 `json:"security"`
	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 FulfillmentPosture

type FulfillmentPosture struct {
	Status              string              `json:"status"`
	AuthoritativeSource string              `json:"authoritative_source"`
	AppOwned            bool                `json:"app_owned"`
	ManualFacts         []string            `json:"manual_facts"`
	Origin              artifact.Origin     `json:"origin"`
	ProofLevel          artifact.ProofLevel `json:"proof_level"`
	SourceRef           artifact.SourceRef  `json:"source_ref,omitempty"`
}

type PCIBoundaryPosture

type PCIBoundaryPosture struct {
	Status       string              `json:"status"`
	CardDataFlow string              `json:"card_data_flow"`
	ManualFacts  []string            `json:"manual_facts"`
	Origin       artifact.Origin     `json:"origin"`
	ProofLevel   artifact.ProofLevel `json:"proof_level"`
	SourceRef    artifact.SourceRef  `json:"source_ref,omitempty"`
}

type PaymentFlow

type PaymentFlow struct {
	ID              string              `json:"id"`
	Kind            string              `json:"kind"`
	StartRouteID    string              `json:"start_route_id,omitempty"`
	ReturnRouteID   string              `json:"return_route_id,omitempty"`
	PricingSource   string              `json:"pricing_source"`
	ClientSecretUse string              `json:"client_secret_use,omitempty"`
	ServerCreatesPI bool                `json:"server_creates_payment_intent"`
	ManualFacts     []string            `json:"manual_facts"`
	Origin          artifact.Origin     `json:"origin"`
	ProofLevel      artifact.ProofLevel `json:"proof_level"`
	SourceRef       artifact.SourceRef  `json:"source_ref,omitempty"`
}

type PricingCatalogPosture

type PricingCatalogPosture struct {
	Status                string              `json:"status"`
	ServerOwned           bool                `json:"server_owned"`
	ClientStripeIDInputs  bool                `json:"client_stripe_id_inputs"`
	BusinessPlanKeyMapped bool                `json:"business_plan_key_mapped"`
	ManualFacts           []string            `json:"manual_facts"`
	Origin                artifact.Origin     `json:"origin"`
	ProofLevel            artifact.ProofLevel `json:"proof_level"`
	SourceRef             artifact.SourceRef  `json:"source_ref,omitempty"`
}

type ProviderBinding

type ProviderBinding struct {
	Enabled         bool                `json:"enabled"`
	ProviderProfile string              `json:"provider_profile,omitempty"`
	RequiredEnv     []RequiredEnv       `json:"required_env"`
	Origin          artifact.Origin     `json:"origin"`
	ProofLevel      artifact.ProofLevel `json:"proof_level"`
	SourceRef       artifact.SourceRef  `json:"source_ref,omitempty"`
}

type RequiredEnv

type RequiredEnv struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Role        string `json:"role"`
	Sensitivity string `json:"sensitivity"`
	Declared    bool   `json:"declared"`
	Required    bool   `json:"required"`
}

type ReturnVerificationPosture

type ReturnVerificationPosture struct {
	Status               string              `json:"status"`
	SuccessAuthoritative bool                `json:"success_authoritative"`
	ServerVerified       bool                `json:"server_verified"`
	QuerySecretsStripped bool                `json:"query_secrets_stripped"`
	ManualFacts          []string            `json:"manual_facts"`
	Origin               artifact.Origin     `json:"origin"`
	ProofLevel           artifact.ProofLevel `json:"proof_level"`
	SourceRef            artifact.SourceRef  `json:"source_ref,omitempty"`
}

type SecurityPosture

type SecurityPosture struct {
	SecretValuesInProfile      bool `json:"secret_values_in_profile"`
	ReturnPageAuthoritative    bool `json:"return_page_authoritative"`
	WebhookSignatureRequired   bool `json:"webhook_signature_required"`
	WebhookIdempotencyRequired bool `json:"webhook_idempotency_required"`
	ClientStripeIDInputs       bool `json:"client_stripe_id_inputs"`
}

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 WebhookEndpoint

type WebhookEndpoint struct {
	ID                  string              `json:"id"`
	Endpoint            string              `json:"endpoint"`
	Provider            string              `json:"provider"`
	Detected            bool                `json:"detected"`
	SignatureStatus     string              `json:"signature_status"`
	SignatureEnvID      string              `json:"signature_env_id,omitempty"`
	IdempotencyRequired bool                `json:"idempotency_required"`
	IdempotencyStatus   string              `json:"idempotency_status"`
	DurableQueueStatus  string              `json:"durable_queue_status"`
	ReplayWindowStatus  string              `json:"replay_window_status"`
	Mutating            bool                `json:"mutating"`
	ManualFacts         []string            `json:"manual_facts"`
	Origin              artifact.Origin     `json:"origin"`
	ProofLevel          artifact.ProofLevel `json:"proof_level"`
	SourceRef           artifact.SourceRef  `json:"source_ref,omitempty"`
}

Jump to

Keyboard shortcuts

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