Skip to main content

mockforge_core/contract_drift/
mod.rs

1//! Pillars: [Contracts]
2//!
3//! Contract drift detection and budget management
4//!
5//! This module provides functionality for tracking contract drift, managing drift budgets,
6//! and detecting breaking changes according to configurable rules.
7
8pub mod breaking_change_detector;
9pub mod budget_engine;
10pub mod consumer_mapping;
11pub mod field_tracking;
12pub mod fitness;
13pub mod forecasting;
14pub mod grpc_contract;
15pub mod mqtt_kafka_contracts;
16pub mod protocol_contracts;
17/// `threat_modeling` lives in `mockforge_intelligence::threat_modeling`
18/// (Issue #562 phase 3). Re-exported here so existing
19/// `crate::contract_drift::threat_modeling::*` paths keep resolving.
20pub use mockforge_intelligence::threat_modeling;
21pub mod types;
22pub mod websocket_contract;
23
24pub use breaking_change_detector::BreakingChangeDetector;
25pub use budget_engine::DriftBudgetEngine;
26pub use consumer_mapping::{
27    AppType, ConsumerImpact, ConsumerImpactAnalyzer, ConsumerMapping, ConsumerMappingRegistry,
28    ConsumingApp, SDKMethod,
29};
30pub use field_tracking::{FieldCountRecord, FieldCountTracker};
31pub use fitness::{
32    FitnessEvaluator, FitnessFunction, FitnessFunctionRegistry, FitnessFunctionType, FitnessScope,
33    FitnessTestResult,
34};
35pub use forecasting::{
36    ChangeForecast, ForecastAggregationLevel, ForecastPattern, ForecastStatistics, Forecaster,
37    ForecastingConfig, PatternAnalysis, PatternAnalyzer, PatternSignature, PatternType,
38    SeasonalPattern, StatisticalModel,
39};
40pub use grpc_contract::{diff_grpc_contracts, GrpcContract};
41pub use mqtt_kafka_contracts::{
42    diff_kafka_contracts, diff_mqtt_contracts, EvolutionRules, KafkaContract, KafkaTopicSchema,
43    MqttContract, MqttTopicSchema, SchemaFormat, TopicSchema,
44};
45pub use protocol_contracts::{
46    classify_change, compare_contracts, extract_breaking_changes, generate_grpc_drift_report,
47    ChangeClassification, ContractError, ContractMetadata, ContractOperation, ContractRequest,
48    OperationType, ProtocolContract, ProtocolContractRegistry, ValidationError, ValidationResult,
49};
50pub use threat_modeling::{
51    AggregationLevel, DosAnalyzer, ErrorAnalyzer, PiiDetector, RemediationGenerator,
52    RemediationSuggestion, SchemaAnalyzer, ThreatAnalyzer, ThreatAssessment, ThreatCategory,
53    ThreatFinding, ThreatLevel, ThreatModelingConfig,
54};
55pub use types::{
56    BreakingChangeRule, BreakingChangeRuleConfig, BreakingChangeRuleType, DriftBudget,
57    DriftBudgetConfig, DriftMetrics, DriftResult,
58};
59pub use websocket_contract::{
60    diff_websocket_contracts, MessageDirection, WebSocketContract, WebSocketMessageType,
61};