Some checks failed
ci / build (push) Failing after 1m6s
Completes FLUID-WP-0002. The record types in internal/contract are generated from schemas/ by a dependency-free generator; fixtures transcribed from the spec's worked examples validate against those schemas and round-trip through the generated types with DisallowUnknownFields, so a spec change that misses the schemas fails CI rather than drifting silently. Adds identifier prefix helpers, Makefile, GitHub Actions, and five ADRs recording the Go choice, out-of-process attachment, the wire contract as boundary, the evidence store, and revision identity. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu Assistant: claude-code Assistant-Model: opus Assistant-Process: 1116572@bnt-lap001 Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
314 lines
17 KiB
Go
314 lines
17 KiB
Go
// Code generated by tools/schemagen. DO NOT EDIT.
|
|
// Source: schemas/. Regenerate with `make generate`.
|
|
|
|
package contract
|
|
|
|
// Adoption is evidence, not proof of quality (FluidAPIStandards.md section 32).
|
|
type FluidRevisionAdoption struct {
|
|
ActiveConsumers *int64 `json:"active_consumers,omitempty" yaml:"active_consumers,omitempty"`
|
|
AdoptionRate *UnitInterval `json:"adoption_rate,omitempty" yaml:"adoption_rate,omitempty"`
|
|
EligibleConsumers *int64 `json:"eligible_consumers,omitempty" yaml:"eligible_consumers,omitempty"`
|
|
RetainedAdoptionRate *UnitInterval `json:"retained_adoption_rate,omitempty" yaml:"retained_adoption_rate,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionAudit struct {
|
|
ImmutableEventRefs []EventID `json:"immutable_event_refs,omitempty" yaml:"immutable_event_refs,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionCompatibilityClass string
|
|
|
|
const (
|
|
FluidRevisionCompatibilityClassBACKWARDCOMPATIBLE FluidRevisionCompatibilityClass = "BACKWARD_COMPATIBLE"
|
|
FluidRevisionCompatibilityClassFORWARDCOMPATIBLE FluidRevisionCompatibilityClass = "FORWARD_COMPATIBLE"
|
|
FluidRevisionCompatibilityClassADDITIVE FluidRevisionCompatibilityClass = "ADDITIVE"
|
|
FluidRevisionCompatibilityClassBEHAVIORALCHANGE FluidRevisionCompatibilityClass = "BEHAVIORAL_CHANGE"
|
|
FluidRevisionCompatibilityClassBREAKING FluidRevisionCompatibilityClass = "BREAKING"
|
|
FluidRevisionCompatibilityClassMIGRATIONONLY FluidRevisionCompatibilityClass = "MIGRATION_ONLY"
|
|
FluidRevisionCompatibilityClassINTERNALONLY FluidRevisionCompatibilityClass = "INTERNAL_ONLY"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionCompatibilityClass.
|
|
func (v FluidRevisionCompatibilityClass) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionCompatibilityClassBACKWARDCOMPATIBLE, FluidRevisionCompatibilityClassFORWARDCOMPATIBLE, FluidRevisionCompatibilityClassADDITIVE, FluidRevisionCompatibilityClassBEHAVIORALCHANGE, FluidRevisionCompatibilityClassBREAKING, FluidRevisionCompatibilityClassMIGRATIONONLY, FluidRevisionCompatibilityClassINTERNALONLY:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionCompatibility struct {
|
|
BreakingChanges []string `json:"breaking_changes,omitempty" yaml:"breaking_changes,omitempty"`
|
|
Class FluidRevisionCompatibilityClass `json:"class" yaml:"class"`
|
|
CompatibilityEvidenceRefs []EvidenceRef `json:"compatibility_evidence_refs,omitempty" yaml:"compatibility_evidence_refs,omitempty"`
|
|
Deprecations []string `json:"deprecations,omitempty" yaml:"deprecations,omitempty"`
|
|
Supersedes []RevisionID `json:"supersedes,omitempty" yaml:"supersedes,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionComplexityBudgetStatus string
|
|
|
|
const (
|
|
FluidRevisionComplexityBudgetStatusWITHINBUDGET FluidRevisionComplexityBudgetStatus = "WITHIN_BUDGET"
|
|
FluidRevisionComplexityBudgetStatusATBUDGET FluidRevisionComplexityBudgetStatus = "AT_BUDGET"
|
|
FluidRevisionComplexityBudgetStatusOVERBUDGET FluidRevisionComplexityBudgetStatus = "OVER_BUDGET"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionComplexityBudgetStatus.
|
|
func (v FluidRevisionComplexityBudgetStatus) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionComplexityBudgetStatusWITHINBUDGET, FluidRevisionComplexityBudgetStatusATBUDGET, FluidRevisionComplexityBudgetStatusOVERBUDGET:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionComplexity struct {
|
|
After *ComplexityDelta `json:"after,omitempty" yaml:"after,omitempty"`
|
|
Before *ComplexityDelta `json:"before,omitempty" yaml:"before,omitempty"`
|
|
BudgetStatus *FluidRevisionComplexityBudgetStatus `json:"budget_status,omitempty" yaml:"budget_status,omitempty"`
|
|
DeltaScore *float64 `json:"delta_score,omitempty" yaml:"delta_score,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionContractType string
|
|
|
|
const (
|
|
FluidRevisionContractTypeOpenapi FluidRevisionContractType = "openapi"
|
|
FluidRevisionContractTypeGraphql FluidRevisionContractType = "graphql"
|
|
FluidRevisionContractTypeProtobuf FluidRevisionContractType = "protobuf"
|
|
FluidRevisionContractTypeAsyncapi FluidRevisionContractType = "asyncapi"
|
|
FluidRevisionContractTypeJsonschema FluidRevisionContractType = "jsonschema"
|
|
FluidRevisionContractTypeCustom FluidRevisionContractType = "custom"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionContractType.
|
|
func (v FluidRevisionContractType) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionContractTypeOpenapi, FluidRevisionContractTypeGraphql, FluidRevisionContractTypeProtobuf, FluidRevisionContractTypeAsyncapi, FluidRevisionContractTypeJsonschema, FluidRevisionContractTypeCustom:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionContract struct {
|
|
ArtifactRef ArtifactRef `json:"artifact_ref" yaml:"artifact_ref"`
|
|
Digest Digest `json:"digest" yaml:"digest"`
|
|
Type FluidRevisionContractType `json:"type" yaml:"type"`
|
|
Version string `json:"version,omitempty" yaml:"version,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionDeploymentCurrentExposure struct {
|
|
Cohorts []CohortID `json:"cohorts,omitempty" yaml:"cohorts,omitempty"`
|
|
TrafficShare *UnitInterval `json:"traffic_share,omitempty" yaml:"traffic_share,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionDeploymentEnvironmentsItem struct {
|
|
Name string `json:"name" yaml:"name"`
|
|
RoutingPolicyRef string `json:"routing_policy_ref,omitempty" yaml:"routing_policy_ref,omitempty"`
|
|
StartedAt *Timestamp `json:"started_at,omitempty" yaml:"started_at,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionDeployment struct {
|
|
CurrentExposure *FluidRevisionDeploymentCurrentExposure `json:"current_exposure,omitempty" yaml:"current_exposure,omitempty"`
|
|
Environments []FluidRevisionDeploymentEnvironmentsItem `json:"environments,omitempty" yaml:"environments,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionEconomics struct {
|
|
BuildCost *float64 `json:"build_cost,omitempty" yaml:"build_cost,omitempty"`
|
|
Currency string `json:"currency,omitempty" yaml:"currency,omitempty"`
|
|
ExperimentCostToDate *float64 `json:"experiment_cost_to_date,omitempty" yaml:"experiment_cost_to_date,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionFitnessMetricsValue struct {
|
|
Baseline *float64 `json:"baseline,omitempty" yaml:"baseline,omitempty"`
|
|
Current *float64 `json:"current,omitempty" yaml:"current,omitempty"`
|
|
Guardrail *float64 `json:"guardrail,omitempty" yaml:"guardrail,omitempty"`
|
|
Target *float64 `json:"target,omitempty" yaml:"target,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionFitness struct {
|
|
BaselineRevision *RevisionID `json:"baseline_revision,omitempty" yaml:"baseline_revision,omitempty"`
|
|
MeasurementWindow *ObservationWindow `json:"measurement_window,omitempty" yaml:"measurement_window,omitempty"`
|
|
Metrics map[string]FluidRevisionFitnessMetricsValue `json:"metrics,omitempty" yaml:"metrics,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionImplementation struct {
|
|
ArtifactRef ArtifactRef `json:"artifact_ref" yaml:"artifact_ref"`
|
|
BuildRef string `json:"build_ref,omitempty" yaml:"build_ref,omitempty"`
|
|
Digest Digest `json:"digest" yaml:"digest"`
|
|
SourceRef string `json:"source_ref,omitempty" yaml:"source_ref,omitempty"`
|
|
}
|
|
|
|
// Every revision is governed by a specific intent version, so audit can ask whether
|
|
// the change was valid under the intent that existed at the time
|
|
// (ArchitectureBlueprint.md section 27).
|
|
type FluidRevisionInterfaceEvolutionIntent struct {
|
|
ArtifactRef *ArtifactRef `json:"artifact_ref,omitempty" yaml:"artifact_ref,omitempty"`
|
|
Version string `json:"version" yaml:"version"`
|
|
}
|
|
|
|
type FluidRevisionPromotionRecommendedState string
|
|
|
|
const (
|
|
FluidRevisionPromotionRecommendedStateCREATED FluidRevisionPromotionRecommendedState = "CREATED"
|
|
FluidRevisionPromotionRecommendedStateVERIFIED FluidRevisionPromotionRecommendedState = "VERIFIED"
|
|
FluidRevisionPromotionRecommendedStateEXPERIMENT FluidRevisionPromotionRecommendedState = "EXPERIMENT"
|
|
FluidRevisionPromotionRecommendedStateCANDIDATE FluidRevisionPromotionRecommendedState = "CANDIDATE"
|
|
FluidRevisionPromotionRecommendedStateSTABLE FluidRevisionPromotionRecommendedState = "STABLE"
|
|
FluidRevisionPromotionRecommendedStateDEPRECATED FluidRevisionPromotionRecommendedState = "DEPRECATED"
|
|
FluidRevisionPromotionRecommendedStateRETIRED FluidRevisionPromotionRecommendedState = "RETIRED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionPromotionRecommendedState.
|
|
func (v FluidRevisionPromotionRecommendedState) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionPromotionRecommendedStateCREATED, FluidRevisionPromotionRecommendedStateVERIFIED, FluidRevisionPromotionRecommendedStateEXPERIMENT, FluidRevisionPromotionRecommendedStateCANDIDATE, FluidRevisionPromotionRecommendedStateSTABLE, FluidRevisionPromotionRecommendedStateDEPRECATED, FluidRevisionPromotionRecommendedStateRETIRED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionPromotion struct {
|
|
AuthorizedAt *Timestamp `json:"authorized_at,omitempty" yaml:"authorized_at,omitempty"`
|
|
AuthorizedBy *Actor `json:"authorized_by,omitempty" yaml:"authorized_by,omitempty"`
|
|
Eligible *bool `json:"eligible,omitempty" yaml:"eligible,omitempty"`
|
|
RecommendationReason *string `json:"recommendation_reason,omitempty" yaml:"recommendation_reason,omitempty"`
|
|
RecommendedState *FluidRevisionPromotionRecommendedState `json:"recommended_state,omitempty" yaml:"recommended_state,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionProvenance struct {
|
|
DecisionRefs []DecisionID `json:"decision_refs,omitempty" yaml:"decision_refs,omitempty"`
|
|
ExperimentRefs []ExperimentID `json:"experiment_refs,omitempty" yaml:"experiment_refs,omitempty"`
|
|
TelemetryRefs []EvidenceRef `json:"telemetry_refs,omitempty" yaml:"telemetry_refs,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionRollback struct {
|
|
ProcedureRef string `json:"procedure_ref,omitempty" yaml:"procedure_ref,omitempty"`
|
|
Supported bool `json:"supported" yaml:"supported"`
|
|
TargetRevision *RevisionID `json:"target_revision,omitempty" yaml:"target_revision,omitempty"`
|
|
}
|
|
|
|
type FluidRevisionState string
|
|
|
|
const (
|
|
FluidRevisionStateCREATED FluidRevisionState = "CREATED"
|
|
FluidRevisionStateVERIFIED FluidRevisionState = "VERIFIED"
|
|
FluidRevisionStateEXPERIMENT FluidRevisionState = "EXPERIMENT"
|
|
FluidRevisionStateCANDIDATE FluidRevisionState = "CANDIDATE"
|
|
FluidRevisionStateSTABLE FluidRevisionState = "STABLE"
|
|
FluidRevisionStateDEPRECATED FluidRevisionState = "DEPRECATED"
|
|
FluidRevisionStateRETIRED FluidRevisionState = "RETIRED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionState.
|
|
func (v FluidRevisionState) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionStateCREATED, FluidRevisionStateVERIFIED, FluidRevisionStateEXPERIMENT, FluidRevisionStateCANDIDATE, FluidRevisionStateSTABLE, FluidRevisionStateDEPRECATED, FluidRevisionStateRETIRED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionVerificationPolicyCheck string
|
|
|
|
const (
|
|
FluidRevisionVerificationPolicyCheckPENDING FluidRevisionVerificationPolicyCheck = "PENDING"
|
|
FluidRevisionVerificationPolicyCheckPASSED FluidRevisionVerificationPolicyCheck = "PASSED"
|
|
FluidRevisionVerificationPolicyCheckFAILED FluidRevisionVerificationPolicyCheck = "FAILED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionVerificationPolicyCheck.
|
|
func (v FluidRevisionVerificationPolicyCheck) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionVerificationPolicyCheckPENDING, FluidRevisionVerificationPolicyCheckPASSED, FluidRevisionVerificationPolicyCheckFAILED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionVerificationSecurityCheck string
|
|
|
|
const (
|
|
FluidRevisionVerificationSecurityCheckPENDING FluidRevisionVerificationSecurityCheck = "PENDING"
|
|
FluidRevisionVerificationSecurityCheckPASSED FluidRevisionVerificationSecurityCheck = "PASSED"
|
|
FluidRevisionVerificationSecurityCheckFAILED FluidRevisionVerificationSecurityCheck = "FAILED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionVerificationSecurityCheck.
|
|
func (v FluidRevisionVerificationSecurityCheck) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionVerificationSecurityCheckPENDING, FluidRevisionVerificationSecurityCheckPASSED, FluidRevisionVerificationSecurityCheckFAILED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidRevisionVerificationStatus string
|
|
|
|
const (
|
|
FluidRevisionVerificationStatusPENDING FluidRevisionVerificationStatus = "PENDING"
|
|
FluidRevisionVerificationStatusPASSED FluidRevisionVerificationStatus = "PASSED"
|
|
FluidRevisionVerificationStatusFAILED FluidRevisionVerificationStatus = "FAILED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidRevisionVerificationStatus.
|
|
func (v FluidRevisionVerificationStatus) Valid() bool {
|
|
switch v {
|
|
case FluidRevisionVerificationStatusPENDING, FluidRevisionVerificationStatusPASSED, FluidRevisionVerificationStatusFAILED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// The primary safety barrier between adaptive generation and deterministic runtime
|
|
// (ArchitectureBlueprint.md section 15).
|
|
type FluidRevisionVerification struct {
|
|
PolicyCheck *FluidRevisionVerificationPolicyCheck `json:"policy_check,omitempty" yaml:"policy_check,omitempty"`
|
|
SecurityCheck *FluidRevisionVerificationSecurityCheck `json:"security_check,omitempty" yaml:"security_check,omitempty"`
|
|
Status FluidRevisionVerificationStatus `json:"status" yaml:"status"`
|
|
TestRefs []string `json:"test_refs,omitempty" yaml:"test_refs,omitempty"`
|
|
}
|
|
|
|
type FluidRevision struct {
|
|
AdaptationClasses []AdaptationClass `json:"adaptation_classes,omitempty" yaml:"adaptation_classes,omitempty"`
|
|
|
|
// Adoption is evidence, not proof of quality (FluidAPIStandards.md section 32).
|
|
Adoption *FluidRevisionAdoption `json:"adoption,omitempty" yaml:"adoption,omitempty"`
|
|
Audit *FluidRevisionAudit `json:"audit,omitempty" yaml:"audit,omitempty"`
|
|
BackendRequirements []BackendRequirementID `json:"backend_requirements,omitempty" yaml:"backend_requirements,omitempty"`
|
|
Compatibility FluidRevisionCompatibility `json:"compatibility" yaml:"compatibility"`
|
|
Complexity *FluidRevisionComplexity `json:"complexity,omitempty" yaml:"complexity,omitempty"`
|
|
Contract FluidRevisionContract `json:"contract" yaml:"contract"`
|
|
CreatedAt *Timestamp `json:"created_at,omitempty" yaml:"created_at,omitempty"`
|
|
CreatedBy *Actor `json:"created_by,omitempty" yaml:"created_by,omitempty"`
|
|
Deployment *FluidRevisionDeployment `json:"deployment,omitempty" yaml:"deployment,omitempty"`
|
|
Economics *FluidRevisionEconomics `json:"economics,omitempty" yaml:"economics,omitempty"`
|
|
Fitness *FluidRevisionFitness `json:"fitness,omitempty" yaml:"fitness,omitempty"`
|
|
ID RevisionID `json:"id" yaml:"id"`
|
|
Implementation FluidRevisionImplementation `json:"implementation" yaml:"implementation"`
|
|
|
|
// Every revision is governed by a specific intent version, so audit can ask
|
|
// whether the change was valid under the intent that existed at the time
|
|
// (ArchitectureBlueprint.md section 27).
|
|
InterfaceEvolutionIntent FluidRevisionInterfaceEvolutionIntent `json:"interface_evolution_intent" yaml:"interface_evolution_intent"`
|
|
InterfaceID InterfaceID `json:"interface_id" yaml:"interface_id"`
|
|
OriginatingHypotheses []HypothesisID `json:"originating_hypotheses,omitempty" yaml:"originating_hypotheses,omitempty"`
|
|
|
|
// Null marks genesis.
|
|
ParentRevision *RevisionID `json:"parent_revision" yaml:"parent_revision"`
|
|
Promotion *FluidRevisionPromotion `json:"promotion,omitempty" yaml:"promotion,omitempty"`
|
|
Provenance FluidRevisionProvenance `json:"provenance" yaml:"provenance"`
|
|
RevisionNumber int64 `json:"revision_number" yaml:"revision_number"`
|
|
Rollback FluidRevisionRollback `json:"rollback" yaml:"rollback"`
|
|
SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"`
|
|
State FluidRevisionState `json:"state" yaml:"state"`
|
|
|
|
// The primary safety barrier between adaptive generation and deterministic runtime
|
|
// (ArchitectureBlueprint.md section 15).
|
|
Verification FluidRevisionVerification `json:"verification" yaml:"verification"`
|
|
}
|
|
|
|
// What deterministic interface state was built, verified, exposed and measured.
|
|
// Published revisions should be immutable; corrections create successors
|
|
// (FluidAPIStandards.md section 8).
|
|
type RevisionDocument struct {
|
|
FluidRevision FluidRevision `json:"fluid_revision" yaml:"fluid_revision"`
|
|
}
|