srum_core/connectivity.rs
1//! Network connectivity record — L2 connection sessions per process.
2//!
3//! Source table: `{DD6636C4-8929-4683-974E-22C046A43763}` in SRUDB.dat.
4
5use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7
8/// One SRUM network connectivity record: a process's L2 connection session.
9///
10/// Forensic value: maps processes to specific network profiles (`WiFi` SSIDs,
11/// VPN adapters) and their connection durations.
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct NetworkConnectivityRecord {
14 /// Integer ID of the application (look up in [`crate::IdMapEntry`]).
15 pub app_id: i32,
16 /// Integer ID of the user account (look up in [`crate::IdMapEntry`]).
17 pub user_id: i32,
18 /// UTC timestamp of the measurement interval start.
19 pub timestamp: DateTime<Utc>,
20 /// L2 profile ID — look up in `SruDbIdMapTable` for profile name.
21 pub profile_id: i32,
22 /// Seconds the connection was active in this interval.
23 pub connected_time: u64,
24}