Skip to main content

Module contract_drift

Module contract_drift 

Source
Expand description

Contract drift detection. Data types moved to mockforge-foundation (A13–A21); engines (DriftBudgetEngine, ThreatAnalyzer, ProtocolContractRegistry, WebSocket/MQTT/Kafka contract impls) stay here because they depend on OpenApiSpec and jsonschema validators. Pillars: [Contracts]

Contract drift detection and budget management

This module provides functionality for tracking contract drift, managing drift budgets, and detecting breaking changes according to configurable rules.

Re-exports§

pub use breaking_change_detector::BreakingChangeDetector;
pub use budget_engine::DriftBudgetEngine;
pub use consumer_mapping::ConsumerImpactAnalyzer;
pub use consumer_mapping::ConsumerMappingRegistry;
pub use field_tracking::FieldCountRecord;
pub use field_tracking::FieldCountTracker;
pub use fitness::FitnessEvaluator;
pub use fitness::FitnessFunction;
pub use fitness::FitnessFunctionRegistry;
pub use fitness::FitnessFunctionType;
pub use fitness::FitnessScope;
pub use forecasting::ChangeForecast;
pub use forecasting::ForecastAggregationLevel;
pub use forecasting::ForecastPattern;
pub use forecasting::ForecastStatistics;
pub use forecasting::Forecaster;
pub use forecasting::ForecastingConfig;
pub use forecasting::PatternAnalysis;
pub use forecasting::PatternAnalyzer;
pub use forecasting::PatternSignature;
pub use forecasting::PatternType;
pub use forecasting::SeasonalPattern;
pub use forecasting::StatisticalModel;
pub use grpc_contract::diff_grpc_contracts;
pub use grpc_contract::GrpcContract;
pub use mqtt_kafka_contracts::diff_kafka_contracts;
pub use mqtt_kafka_contracts::diff_mqtt_contracts;
pub use mqtt_kafka_contracts::KafkaContract;
pub use mqtt_kafka_contracts::MqttContract;
pub use protocol_contracts::compare_contracts;
pub use protocol_contracts::generate_grpc_drift_report;
pub use protocol_contracts::ProtocolContractRegistry;
pub use threat_modeling::DosAnalyzer;
pub use threat_modeling::ErrorAnalyzer;
pub use threat_modeling::PiiDetector;
pub use threat_modeling::RemediationGenerator;
pub use threat_modeling::SchemaAnalyzer;
pub use threat_modeling::ThreatAnalyzer;
pub use websocket_contract::diff_websocket_contracts;
pub use websocket_contract::WebSocketContract;

Modules§

breaking_change_detector
Breaking change detection logic
budget_engine
Drift budget evaluation engine
consumer_mapping
Consumer mapping for tracking endpoint → SDK method → consuming app relationships
field_tracking
Field count tracking for percentage-based drift budgets
fitness
Contract fitness functions for validating contract changes
forecasting
API Change Forecasting
grpc_contract
gRPC contract implementation for protocol-agnostic contract drift detection
mqtt_kafka_contracts
MQTT and Kafka contract implementations for protocol-agnostic contract drift detection
protocol_contracts
Protocol-agnostic contract abstractions for multi-protocol drift detection
threat_modeling
Contract Threat Modeling
types
Core types for contract drift and budget management
websocket_contract
WebSocket contract implementation for protocol-agnostic contract drift detection

Structs§

BreakingChangeRule
Rule for detecting breaking changes
ChangeClassification
Classification result for a change
ConsumerImpact
Impact analysis result showing which consumers are affected by drift
ConsumerMapping
Mapping from endpoint to SDK methods
ConsumingApp
A consuming application that uses SDK methods
ContractMetadata
Contract metadata
ContractOperation
An operation defined in a contract (method, endpoint, topic, etc.)
ContractRequest
Protocol-agnostic request representation
DriftBudget
Configuration for acceptable drift levels
DriftBudgetConfig
Global drift budget configuration
DriftMetrics
Current drift metrics for an endpoint
DriftResult
Result of drift budget evaluation
EvolutionRules
Evolution rules for schema changes
FitnessTestResult
Result of evaluating a fitness function.
KafkaTopicSchema
Kafka topic schema definition
MqttTopicSchema
MQTT topic schema definition
RemediationSuggestion
Remediation suggestion
SDKMethod
An SDK method that calls an endpoint
ThreatAssessment
Threat assessment for a contract
ThreatFinding
Individual threat finding
ThreatModelingConfig
Configuration for threat modeling
TopicSchema
Schema definition for a topic (key or value)
ValidationError
Validation error details
ValidationResult
Validation result for contract validation
WebSocketMessageType
WebSocket message type definition

Enums§

AggregationLevel
Aggregation level for threat assessment
AppType
Type of consuming application
BreakingChangeRuleConfig
Configuration for breaking change rules
BreakingChangeRuleType
Type of breaking change rule
ContractError
Contract-related errors
MessageDirection
Message direction for WebSocket messages
OperationType
Type of operation (protocol-specific)
SchemaFormat
Schema format for Kafka messages
ThreatCategory
Threat category
ThreatLevel
Threat level

Traits§

ProtocolContract
Protocol-agnostic contract definition

Functions§

classify_change
Extract change classification from a mismatch
extract_breaking_changes
Helper function to extract breaking changes from a diff result