You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ccd7b24
Browse filesBrowse the repository at this point in the historyBrowse files
|`POST`|`/tools/adjust-time`| Recalage (`file`, puis `time_offset`, `normalize` ou `align_to`, `format`) : `--adjust-time-output` (issue #887) |
83
83
|`POST`|`/tools/replay`| Rejeu (`file`, `interface`, `speed`, `loop`) : `--replay`. ÉMET du trafic réel ; refusé (403) sauf si `interface` figure dans `NETCROSS_REPLAY_INTERFACES` (liste séparée par des virgules, vide par défaut) ; 503 si tcpreplay absent (issue #871) |
84
+
|`POST`|`/live-captures`| Capture en direct (JSON `points` : `name`, `interface`, `bpf` ; `duration` ; `points_order` ; `options` de `/captures/multi`) puis analyse ; 202. 403 si `NETCROSS_API_LIVE` n'est pas à 1, interface hors de `NETCROSS_API_LIVE_INTERFACES` ou `NETCROSS_API_TOKEN` absent ; 409 si une capture est déjà en cours (issue #902) |
85
+
|`GET`|`/live-captures/{id}`| État (`capturing`, `analysing`, `completed`, `failed`), `bytes_captured` par point, `elapsed_seconds`, `packet_count`, `analysis_id`|
86
+
|`POST`|`/live-captures/{id}/stop`| Arrêt anticipé ; l'analyse porte sur ce qui a été capturé |
84
87
|`GET`|`/analyses/{id}/annotations`| Annotations par point (`point`, `tag`) : même format que le sidecar `<capture>.annotations.json` de la GUI (issue #910) |
85
88
|`POST`|`/analyses/{id}/annotations`| Ajoute une annotation (JSON `point`, `frame_number`, `tag`, `comment`, `color`) ; même trame et étiquette = mise à jour ; 404 point inconnu, 422 saisie invalide |
86
89
|`DELETE`|`/analyses/{id}/annotations?point=&frame_number=&tag=`| Supprime une annotation ; 404 si absente |
`<<module>>` regroupe les fonctions publiques d'un module ; `A --> B : champ` = `A` a un champ annoté
@@ -42,8 +42,8 @@ flowchart TD
42
42
netcross_gtk4 -->|"6 imports"| pcap_parser
43
43
netcross_api -->|"19 imports"| netcross_report
44
44
netcross_api -->|"5 imports"| netcross_ai
45
-
netcross_api -->|"48 imports"| netcross_core
46
-
netcross_api -->|"3 imports"| pcap_parser
45
+
netcross_api -->|"49 imports"| netcross_core
46
+
netcross_api -->|"4 imports"| pcap_parser
47
47
netcross_report -->|"40 imports"| netcross_core
48
48
netcross_ai -->|"10 imports"| netcross_core
49
49
netcross_core -->|"19 imports"| pcap_parser
@@ -3893,6 +3893,7 @@ classDiagram
3893
3893
|`netcross_api.batches`| lots de captures de l'API (issue #872). |
3894
3894
|`netcross_api.bpf_routes`| bibliothèque de filtres BPF enregistrés (issue #906), équivalent API de ``--bpf-library NOM`` et des boutons « Filtres… » / « Enregistrer » de la GUI. |
3895
3895
|`netcross_api.history_routes`| historique SQLite des runs (issue #874). |
3896
+
|`netcross_api.live_routes`| capture en direct sur des interfaces du serveur, puis analyse (issue #902), équivalent API de ``--live`` et de la case « Capture en direct » de la GUI. |
3896
3897
|`netcross_api.lua_doc_routes`| documentation hors ligne de l'API Lua Wireshark (issue #873), équivalent de ``netcross-lua-doc --json``. |
3897
3898
|`netcross_api.models`| modèles Pydantic pour les requêtes/réponses API (issue #209). |
3898
3899
|`netcross_api.store`| analyses de l'API : statut, document JSON, persistance. |
@@ -4043,6 +4044,34 @@ classDiagram
4043
4044
+register(app, verify) None
4044
4045
}
4045
4046
4047
+
%% ===== netcross_api.live_routes =====
4048
+
class LivePoint {
4049
+
<<BaseModel>>
4050
+
+str name
4051
+
+str interface
4052
+
+str? bpf
4053
+
}
4054
+
class LiveCaptureRequest {
4055
+
<<BaseModel>>
4056
+
+list~LivePoint~ points
4057
+
+float duration
4058
+
+list~str~? points_order
4059
+
+dict~str, Any~ options
4060
+
}
4061
+
class _LiveCaptures {
4062
+
+start(req) dict~str, Any~
4063
+
+get(capture_id) dict~str, Any~
4064
+
+stop(capture_id) dict~str, Any~
4065
+
+public(entry) dict~str, Any~
4066
+
}
4067
+
class mod_netcross_api_live_routes["netcross_api.live_routes"] {
4068
+
<<module>>
4069
+
+live_enabled(environ) bool
4070
+
+allowed_interfaces(environ) frozenset~str~
4071
+
+max_duration(environ) float
4072
+
+register(app, verify, deps) _LiveCaptures
4073
+
}
4074
+
4046
4075
%% ===== netcross_api.lua_doc_routes =====
4047
4076
class mod_netcross_api_lua_doc_routes["netcross_api.lua_doc_routes"] {
Copy file name to clipboardExpand all lines: docs/parite-surfaces.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ ici fait donc échouer la CI.
16
16
|---|---|---|
17
17
| CLI |`cross_capture_analyzer_cli.py` (110 options), `cross_capture_diff_cli.py` (27), `cross_capture_batch_cli.py` (11), `cross_history_cli.py`, `netcross_lua_doc_cli.py`, `netcross_ai_models_cli.py`| Surface de référence : tout y est |
18
18
| GUI |`netcross_gtk4` : 3 pages, 43 cases à cocher, 31 réglages numériques | Analyse interactive et exploration visuelle |
@@ -118,9 +118,9 @@ est conservée telle quelle pour les clients existants.
118
118
119
119
| Fonction | GUI | CLI | API |
120
120
|---|---|---|---|
121
-
| Capture sur interfaces, un filtre BPF par point | oui (case « Capture en direct ») |`--live`|non|
122
-
| Durée maximale | oui |`--live-duration`|non|
123
-
| Arrêt manuel puis analyse | oui (« Arreter et analyser ») | Ctrl+C |non|
121
+
| Capture sur interfaces, un filtre BPF par point | oui (case « Capture en direct ») |`--live`|`POST /live-captures` : `points` (`name`, `interface`, `bpf`), `points_order`, `options` (mêmes options d'analyse que `POST /captures/multi`) ; état par `GET /live-captures/{capture_id}`, puis résultat sous `/analyses/{analysis_id}`. Désactivé par défaut (`NETCROSS_API_LIVE=1`), interfaces de `NETCROSS_API_LIVE_INTERFACES` seulement, `NETCROSS_API_TOKEN` exigé (issue #902)|
122
+
| Durée maximale | oui |`--live-duration`|`duration`, bornée par `NETCROSS_API_LIVE_MAX_DURATION` (300 s par défaut ; issue #902)|
123
+
| Arrêt manuel puis analyse | oui (« Arreter et analyser ») | Ctrl+C |`POST /live-captures/{capture_id}/stop` (issue #902)|
124
124
| Rotation de capture (ring buffer) | oui (« Rotation de capture », nombre de fichiers, durée par fichier) : même enregistreur que la CLI, répertoires et fichiers conservés indiqués dans le journal |`--ring-buffer N:SECONDES` : enregistre la capture brute de chaque point en pcapng tournants (ring buffer natif de tshark), incompatible avec `pipe://` (issue #676) | non |
125
125
| Bibliothèque de filtres BPF enregistrés | oui (enregistrer, choisir) |`--bpf-library NOM` (lit `~/.netcross/bpf_filters.json`, issue #676) |`GET /bpf-filters`, `PUT /bpf-filters/{nom}`, `DELETE /bpf-filters/{nom}` (même fichier, `$NETCROSS_API_BPF_FILTERS` côté serveur, issue #906) ; champ `bpf_library` par point avec #902|
126
126
| Rapport HTML rafraîchi en continu | oui (« Rapport HTML en continu », répertoire, intervalle, « Servir la page » et port ; issue #676) |`--live-report`, `--live-report-interval`, `--live-report-serve`| non |
@@ -301,6 +301,9 @@ l'option CLI de même nom) : `nat_tolerant`, `nat_window_ms`, `tls`,
301
301
|`GET /lua-doc/search`| Recherche dans la documentation Lua, `q`, `limit`, `full` (issue #873) |
302
302
|`GET /comparisons/{comparison_id}/redact-map`| Table d'anonymisation commune baseline/courant (issue #876) |
303
303
|`POST /tools/replay`| Rejeu sur une interface autorisée (issue #871) |
304
+
|`POST /live-captures`| Capture en direct sur des interfaces autorisées puis analyse (issue #902) |
305
+
|`GET /live-captures/{capture_id}`| État d'une capture en direct : octets par point, durée, `analysis_id` (issue #902) |
306
+
|`POST /live-captures/{capture_id}/stop`| Arrêt anticipé d'une capture en direct (issue #902) |
304
307
|`GET /analyses/{analysis_id}/annotations`| Annotations de l'analyse par point, filtres `point`, `tag` (issue #910) |
305
308
|`POST /analyses/{analysis_id}/annotations`| Ajoute ou met à jour une annotation (issue #910) |
0 commit comments