aios_core/
collector_ingress.rs1use aios_spec::{CollectorEnvelope, IngestedRawEvent, RawEvent, SourceTier};
2use thiserror::Error;
3
4const SUPPORTED_COLLECTOR_SCHEMA: &str = "dipecs.collector.v1";
5
6#[derive(Debug, Default)]
12pub struct RustCollectorIngress;
13
14impl RustCollectorIngress {
15 pub fn accept(
20 &self,
21 envelope: CollectorEnvelope,
22 ) -> Result<IngestedRawEvent, CollectorIngressError> {
23 if envelope.schema_version != SUPPORTED_COLLECTOR_SCHEMA {
24 return Err(CollectorIngressError::UnsupportedSchemaVersion(
25 envelope.schema_version,
26 ));
27 }
28 Ok(IngestedRawEvent {
29 raw_event: envelope.raw_event,
30 source_tier: envelope.source_tier,
31 })
32 }
33
34 pub fn accept_internal(
40 &self,
41 raw: RawEvent,
42 _source: &str,
43 _captured_at_ms: i64,
44 ) -> IngestedRawEvent {
45 IngestedRawEvent {
46 raw_event: raw,
47 source_tier: SourceTier::Daemon,
48 }
49 }
50}
51
52#[derive(Debug, Error, PartialEq, Eq)]
53pub enum CollectorIngressError {
54 #[error("unsupported collector schema version: {0}")]
55 UnsupportedSchemaVersion(String),
56}