Documentation
¶
Index ¶
- Constants
- func MarshalDeterministic(c *Contract) ([]byte, error)
- func Write(path string, c *Contract) error
- type BuildOptions
- type Contract
- type FulfillmentPosture
- type PCIBoundaryPosture
- type PaymentFlow
- type PricingCatalogPosture
- type ProviderBinding
- type RequiredEnv
- type ReturnVerificationPosture
- type SecurityPosture
- type ValidationOptions
- type ValidationResult
- type WebhookEndpoint
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 ¶
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 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 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"`
}
Click to show internal directories.
Click to hide internal directories.