mockforge_recorder/
lib.rs

1//! MockForge API Flight Recorder
2//!
3//! Records all API requests and responses for analysis, replay, and debugging.
4//! Provides a queryable SQLite database of all interactions.
5
6pub mod api;
7pub mod database;
8pub mod diff;
9pub mod har_export;
10pub mod integration_testing;
11pub mod middleware;
12pub mod models;
13pub mod openapi_export;
14pub mod protocols;
15pub mod query;
16pub mod recorder;
17pub mod replay;
18pub mod scrubbing;
19pub mod stub_mapping;
20pub mod sync;
21pub mod test_generation;
22
23pub use api::create_api_router;
24pub use database::RecorderDatabase;
25pub use diff::{ComparisonResult, Difference, DifferenceType, ResponseComparator};
26pub use har_export::export_to_har;
27pub use integration_testing::{
28    IntegrationTestGenerator, IntegrationWorkflow, StepCondition, StepRequest, StepValidation,
29    VariableExtraction, WorkflowSetup, WorkflowStep,
30};
31pub use middleware::recording_middleware;
32pub use models::{Protocol, RecordedRequest, RecordedResponse};
33pub use openapi_export::{QueryFilters, RecordingsToOpenApi};
34pub use query::{QueryFilter, QueryResult};
35pub use recorder::Recorder;
36pub use replay::ReplayEngine;
37pub use scrubbing::{
38    CaptureFilter, CaptureFilterConfig, ScrubConfig, ScrubRule, ScrubTarget, Scrubber,
39};
40pub use stub_mapping::{
41    RequestMatcher, ResponseTemplate, StubFormat, StubMapping, StubMappingConverter,
42};
43pub use sync::{SyncConfig, SyncService, SyncStatus};
44pub use test_generation::{
45    GeneratedTest, LlmConfig, TestFormat, TestGenerationConfig, TestGenerationResult,
46    TestGenerator, TestSuiteMetadata,
47};
48
49use thiserror::Error;
50
51/// Recorder errors
52#[derive(Error, Debug)]
53pub enum RecorderError {
54    #[error("Database error: {0}")]
55    Database(#[from] sqlx::Error),
56
57    #[error("Serialization error: {0}")]
58    Serialization(#[from] serde_json::Error),
59
60    #[error("IO error: {0}")]
61    Io(#[from] std::io::Error),
62
63    #[error("Request not found: {0}")]
64    NotFound(String),
65
66    #[error("Invalid filter: {0}")]
67    InvalidFilter(String),
68
69    #[error("Replay error: {0}")]
70    Replay(String),
71
72    #[error("Test generation error: {0}")]
73    TestGeneration(String),
74}
75
76pub type Result<T> = std::result::Result<T, RecorderError>;