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§
- Breaking
Change Rule - Rule for detecting breaking changes
- Change
Classification - Classification result for a change
- Consumer
Impact - Impact analysis result showing which consumers are affected by drift
- Consumer
Mapping - Mapping from endpoint to SDK methods
- Consuming
App - A consuming application that uses SDK methods
- Contract
Metadata - Contract metadata
- Contract
Operation - An operation defined in a contract (method, endpoint, topic, etc.)
- Contract
Request - Protocol-agnostic request representation
- Drift
Budget - Configuration for acceptable drift levels
- Drift
Budget Config - Global drift budget configuration
- Drift
Metrics - Current drift metrics for an endpoint
- Drift
Result - Result of drift budget evaluation
- Evolution
Rules - Evolution rules for schema changes
- Fitness
Test Result - Result of evaluating a fitness function.
- Kafka
Topic Schema - Kafka topic schema definition
- Mqtt
Topic Schema - MQTT topic schema definition
- Remediation
Suggestion - Remediation suggestion
- SDKMethod
- An SDK method that calls an endpoint
- Threat
Assessment - Threat assessment for a contract
- Threat
Finding - Individual threat finding
- Threat
Modeling Config - Configuration for threat modeling
- Topic
Schema - Schema definition for a topic (key or value)
- Validation
Error - Validation error details
- Validation
Result - Validation result for contract validation
- WebSocket
Message Type - WebSocket message type definition
Enums§
- Aggregation
Level - Aggregation level for threat assessment
- AppType
- Type of consuming application
- Breaking
Change Rule Config - Configuration for breaking change rules
- Breaking
Change Rule Type - Type of breaking change rule
- Contract
Error - Contract-related errors
- Message
Direction - Message direction for WebSocket messages
- Operation
Type - Type of operation (protocol-specific)
- Schema
Format - Schema format for Kafka messages
- Threat
Category - Threat category
- Threat
Level - Threat level
Traits§
- Protocol
Contract - 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