refactor(portal): split hardening and kpi modules

This commit is contained in:
igor04091968
2026-06-07 14:36:42 +03:00
parent 2fb3271558
commit 0b0bab61bb
10 changed files with 1553 additions and 1300 deletions
@@ -0,0 +1,42 @@
use serde_json::{Value, json};
use tiny_http::StatusCode;
use super::request_context::HttpRequestMetadata;
use crate::now;
pub(crate) fn log_http_request(
metadata: &HttpRequestMetadata,
status: StatusCode,
response_bytes: usize,
) {
let level = if status.0 >= 500 {
"ERROR"
} else if status.0 >= 400 {
"WARN"
} else {
"INFO"
};
let error_code = if status.0 >= 400 {
Value::String(format!("http_{}", status.0))
} else {
Value::Null
};
eprintln!(
"{}",
json!({
"timestamp": now(),
"level": level,
"request_id": &metadata.request_id,
"correlation_id": &metadata.correlation_id,
"method": &metadata.method,
"path": &metadata.path,
"route": &metadata.route,
"status": status.0,
"latency_ms": metadata.latency_ms,
"user_role": &metadata.role,
"module": &metadata.module,
"error_code": error_code,
"response_bytes": response_bytes,
})
);
}