1mod candidate_index;
94pub mod compiler;
95pub mod correlation;
96pub mod correlation_engine;
97pub mod engine;
98pub mod error;
99pub mod event;
100pub mod exemplar;
101pub mod explain;
102pub mod field_observer;
103pub mod fields;
104mod key_shape;
105pub mod logsource;
106pub mod matcher;
107pub mod pipeline;
108pub mod result;
109pub mod router;
110pub mod rule_draft;
111pub mod rule_metadata;
112pub mod rule_tune;
113pub mod schema;
114pub mod schema_discovery;
115mod witness;
116
117pub use compiler::{
119 CompiledDetection, CompiledDetectionItem, CompiledRule, compile_rule, compile_to_compiled,
120 evaluate_rule,
121};
122pub use correlation::{
123 CompiledCondition, CompiledCorrelation, EventBuffer, EventRef, EventRefBuffer, GroupByField,
124 GroupKey, WindowState,
125};
126pub use correlation_engine::{
127 CorrelationAction, CorrelationConfig, CorrelationEngine, CorrelationEventMode, CorrelationInfo,
128 CorrelationSnapshot, CorrelationStateSnapshot, GroupKeyPart, GroupStateInfo, ProcessResult,
129 TimestampFallback,
130};
131pub use engine::Engine;
132pub use error::{EvalError, Result};
133pub use event::{Event, EventValue, JsonEvent, KvEvent, MapEvent, MappedEvent, PlainEvent};
134pub use exemplar::{
135 ExemplarReport, ExemplarResult, ExemplarRunError, MissingExemplars, run_exemplars,
136};
137pub use explain::{
138 ArrayEmptyReason, ArrayMemberTrace, ConditionTrace, DetectionTrace, ItemTrace, MatchReason,
139 RuleExplanation, SelectionBranch, explain_rule,
140};
141pub use field_observer::{FieldCoverage, FieldObservation, FieldObservationEntry, FieldObserver};
142pub use fields::{FieldOrigin, FieldSource, RuleFieldSet};
143pub use logsource::LogSourceExtractor;
144pub use matcher::{CompiledMatcher, MatchDescriptor};
145pub use pipeline::{
146 Pipeline, PipelineState, TransformationItem, TransformedRule, apply_pipelines,
147 apply_pipelines_with_state,
148 builtin::{
149 builtin_names as builtin_pipeline_names, resolve_builtin as resolve_builtin_pipeline,
150 },
151 merge_pipelines, parse_pipeline, parse_pipeline_file, parse_sources, parse_sources_dir,
152 parse_sources_file, parse_transformation_items, transform_collection, transform_rule,
153 validate_source_refs,
154};
155pub use result::{
156 CorrelationBody, DetectionBody, EvaluationResult, FieldMatch, MatchDetailLevel, MatcherKind,
157 ProcessResultExt, ResultBody, RuleHeader,
158};
159pub use router::{RouteOutcome, RouteResult, SchemaPruning, SchemaRouter};
160pub use rule_draft::{
161 DraftConfig, DraftError, DraftFieldReport, DraftReport, Stability, draft_rule,
162};
163pub use rule_metadata::{RuleBundleMetadata, RuleIdentity, RuleKind, RuleMetadataLookup};
164pub use rule_tune::{
165 TuneConfig, TuneError, TuneExpectationDiff, TuneFieldDisposition, TuneFieldReport, TuneReport,
166 TuneSelectionReport, TuneVerification, tune_rule,
167};
168pub use schema::{
169 FieldValueConfig, OnUnknown, PredicateOutcome, RouteDecision, RoutingConfig, RoutingPlan,
170 SchemaBinding, SchemaClassifier, SchemaCountEntry, SchemaError, SchemaExplanation, SchemaMatch,
171 SchemaObservation, SchemaObserver, SchemaPredicate, SchemaPredicateConfig, SchemaSignature,
172 SchemaSignatureConfig, SchemaSignaturesFile, SignatureExplanation, UnknownShapeEntry,
173 builtin_schema_names, load_schema_config, load_schema_signatures, parse_schema_config,
174 parse_schema_signatures, validate_schema_config,
175};
176pub use schema_discovery::{
177 CandidateSource, DiscoveryCandidate, DiscoveryConfig, DiscoveryReport, DiscoveryStats,
178 FieldProfile, cluster_count, mine_events, mine_shapes,
179};