tc full packet test
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 10s
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 10s
This commit is contained in:
@@ -42,7 +42,7 @@ def _serialize_row_for_broadcast(row: Dict[str, Any]) -> Dict[str, Any]:
|
||||
|
||||
|
||||
def _normalize_json_fields(payload: Dict[str, Any]) -> None:
|
||||
for key in ("dpi_metadata", "telemetry_metadata"):
|
||||
for key in ("dpi_metadata", "capture_metadata", "telemetry_metadata"):
|
||||
value = payload.get(key)
|
||||
if isinstance(value, str):
|
||||
try:
|
||||
@@ -118,7 +118,12 @@ class DatabasePool:
|
||||
row = await conn.fetchrow(
|
||||
"""
|
||||
INSERT INTO packets (
|
||||
correlation_key,
|
||||
packet_id,
|
||||
packet_uid,
|
||||
correlation_source,
|
||||
skb_mark,
|
||||
capture_iface,
|
||||
ingress_if,
|
||||
egress_if,
|
||||
verdict,
|
||||
@@ -149,14 +154,21 @@ class DatabasePool:
|
||||
app_is_encrypted,
|
||||
app_risk_score,
|
||||
dpi_metadata,
|
||||
capture_metadata,
|
||||
telemetry_metadata,
|
||||
raw
|
||||
) VALUES(
|
||||
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,
|
||||
$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,
|
||||
$26,$27,$28,$29,$30,$31::jsonb,$32::jsonb,$33
|
||||
$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,
|
||||
$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36::jsonb,
|
||||
$37::jsonb,$38::jsonb,$39
|
||||
)
|
||||
ON CONFLICT (packet_uid) DO UPDATE SET
|
||||
ON CONFLICT (correlation_key) DO UPDATE SET
|
||||
updated_at = NOW(),
|
||||
packet_id = COALESCE(EXCLUDED.packet_id, packets.packet_id),
|
||||
packet_uid = COALESCE(EXCLUDED.packet_uid, packets.packet_uid),
|
||||
correlation_source = COALESCE(EXCLUDED.correlation_source, packets.correlation_source),
|
||||
skb_mark = COALESCE(EXCLUDED.skb_mark, packets.skb_mark),
|
||||
capture_iface = COALESCE(EXCLUDED.capture_iface, packets.capture_iface),
|
||||
ingress_if = COALESCE(EXCLUDED.ingress_if, packets.ingress_if),
|
||||
egress_if = COALESCE(EXCLUDED.egress_if, packets.egress_if),
|
||||
verdict = COALESCE(EXCLUDED.verdict, packets.verdict),
|
||||
@@ -195,11 +207,17 @@ class DatabasePool:
|
||||
app_is_encrypted = COALESCE(EXCLUDED.app_is_encrypted, packets.app_is_encrypted),
|
||||
app_risk_score = COALESCE(EXCLUDED.app_risk_score, packets.app_risk_score),
|
||||
dpi_metadata = COALESCE(EXCLUDED.dpi_metadata, packets.dpi_metadata),
|
||||
capture_metadata = COALESCE(EXCLUDED.capture_metadata, packets.capture_metadata),
|
||||
telemetry_metadata = COALESCE(EXCLUDED.telemetry_metadata, packets.telemetry_metadata),
|
||||
raw = COALESCE(EXCLUDED.raw, packets.raw)
|
||||
RETURNING *
|
||||
""",
|
||||
pkt_info["packet_uid"],
|
||||
pkt_info["correlation_key"],
|
||||
pkt_info.get("packet_id"),
|
||||
pkt_info.get("packet_uid"),
|
||||
pkt_info.get("correlation_source"),
|
||||
pkt_info.get("skb_mark"),
|
||||
pkt_info.get("capture_iface"),
|
||||
pkt_info.get("ingress_if"),
|
||||
pkt_info.get("egress_if"),
|
||||
pkt_info.get("verdict"),
|
||||
@@ -230,6 +248,7 @@ class DatabasePool:
|
||||
pkt_info.get("app_is_encrypted"),
|
||||
pkt_info.get("app_risk_score"),
|
||||
json.dumps(dpi_metadata) if dpi_metadata is not None else None,
|
||||
json.dumps(pkt_info.get("capture_metadata")) if pkt_info.get("capture_metadata") is not None else None,
|
||||
json.dumps(telemetry_metadata) if telemetry_metadata is not None else None,
|
||||
pkt_info.get("raw"),
|
||||
)
|
||||
@@ -257,7 +276,7 @@ class DatabasePool:
|
||||
"""
|
||||
SELECT *
|
||||
FROM packets
|
||||
ORDER BY id DESC
|
||||
ORDER BY updated_at DESC, id DESC
|
||||
LIMIT $1
|
||||
""",
|
||||
limit,
|
||||
|
||||
Reference in New Issue
Block a user