From 52eebafb0b890d1e718c6c6a1ceda8e75f886269 Mon Sep 17 00:00:00 2001 From: Jacquin Antoine Date: Sat, 28 Feb 2026 22:28:45 +0100 Subject: [PATCH] docs: update README and architecture for v1.0.3 flat JSON structure - docs: update README.md with flat JSON output example - docs: update architecture.yml correlated_log schema - docs: update ClickHouse schema to use fields JSON column - breaking: document migration from apache/network to fields Co-authored-by: Qwen-Coder --- README.md | 10 ++++++++-- architecture.yml | 23 ++++++++++------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2bac6b2..38fe258 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,8 @@ Exemple complet dans `config.example.yml`. ### Log corrélé (sortie) +**Version 1.0.3+** - Structure JSON plate (flat) : + ```json { "timestamp": "2024-01-01T12:00:00Z", @@ -184,11 +186,15 @@ Exemple complet dans `config.example.yml`. "dst_ip": "10.0.0.1", "dst_port": 80, "correlated": true, - "apache": {"method": "GET", "path": "/api/test"}, - "network": {"ja3": "abc123def456"} + "method": "GET", + "path": "/api/test", + "ja3": "abc123def456", + "ja4": "xyz789" } ``` +Tous les champs des sources A et B sont fusionnés au même niveau. Les champs de corrélation (`src_ip`, `src_port`, `dst_ip`, `dst_port`, `correlated`, `orphan_side`) sont toujours présents, et tous les autres champs des logs sources sont ajoutés directement à la racine. + ## Schema ClickHouse ```sql diff --git a/architecture.yml b/architecture.yml index a37c522..82b5090 100644 --- a/architecture.yml +++ b/architecture.yml @@ -312,7 +312,8 @@ schema: correlated_log: description: > Structure du log corrélé émis vers les sinks (fichier, ClickHouse). Contient - les informations de corrélation, les infos communes et les contenus de A/B. + les informations de corrélation et tous les champs des sources A et B fusionnés + dans une structure JSON plate (flat). fields: - name: timestamp type: time.Time @@ -330,22 +331,20 @@ schema: type: bool - name: orphan_side type: string - - name: apache + - name: "*" type: map[string]any - optional: true - - name: network - type: map[string]any - optional: true - - name: extra - type: map[string]any - description: Champs dérivés éventuels. + description: > + Tous les champs additionnels provenant de A et B sont fusionnés + directement à la racine du JSON (structure plate, sans subdivisions). clickhouse_schema: strategy: external_ddls description: > logcorrelator ne gère pas les ALTER TABLE. La table ClickHouse doit être créée/modifiée en dehors du service. logcorrelator remplit les colonnes - existantes qu’il connaît et met NULL si un champ manque. + existantes qu'il connaît et met NULL si un champ manque. + Depuis la version 1.0.3, les champs apache et network sont remplacés par + une colonne unique fields JSON contenant tous les champs fusionnés. base_columns: - name: timestamp type: DateTime64(9) @@ -361,9 +360,7 @@ clickhouse_schema: type: UInt8 - name: orphan_side type: String - - name: apache - type: JSON - - name: network + - name: fields type: JSON dynamic_fields: mode: map_or_additional_columns