feat(audit): full-history JSONL export in the actions menu
Some checks failed
Security / Security check (push) Failing after 1s

The menu so far only exported the current view (type + search
filter over the page 100-event window). A second action now fetches
the complete event history of the active project scope in one
EventLog call (the RPC has no cursor and no server-side cap) and
writes it as JSONL. Serialisation extracted to a top-level function
with unit tests; a stale comment advertising the never-shipped
"chain audit export" command now names "chain admin events --json".
Studio 0.73.0.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-07-18 01:49:20 +02:00
parent ae8fdcc762
commit b47d8c4646
10 changed files with 180 additions and 23 deletions

View file

@ -569,6 +569,8 @@
"auditMoreTooltip": "Weitere Aktionen",
"auditSearchHint": "Ereignisse durchsuchen (Flow, Schritt, Modul, Fehlertext …)",
"auditExportAction": "Aktuelle Ansicht als JSONL exportieren …",
"auditExportAllAction": "Vollständiges Protokoll als JSONL exportieren …",
"auditExportAllNothing": "Das Protokoll ist leer — nichts zu exportieren.",
"auditExportNothing": "Keine Ereignisse in der aktuellen Ansicht — nichts zu exportieren.",
"auditExportSaved": "{n} Ereignisse exportiert nach {path}",
"@auditExportSaved": {"placeholders": {"n": {"type": "int"}, "path": {"type": "String"}}},

View file

@ -587,6 +587,8 @@
"auditMoreTooltip": "More actions",
"auditSearchHint": "Search events (flow, step, module, error text …)",
"auditExportAction": "Export current view as JSONL …",
"auditExportAllAction": "Export full log as JSONL …",
"auditExportAllNothing": "The log is empty — nothing to export.",
"auditExportNothing": "No events in the current view — nothing to export.",
"auditExportSaved": "Exported {n} events to {path}",
"@auditExportSaved": {"placeholders": {"n": {"type": "int"}, "path": {"type": "String"}}},

View file

@ -2174,6 +2174,18 @@ abstract class AppLocalizations {
/// **'Export current view as JSONL …'**
String get auditExportAction;
/// No description provided for @auditExportAllAction.
///
/// In en, this message translates to:
/// **'Export full log as JSONL …'**
String get auditExportAllAction;
/// No description provided for @auditExportAllNothing.
///
/// In en, this message translates to:
/// **'The log is empty — nothing to export.'**
String get auditExportAllNothing;
/// No description provided for @auditExportNothing.
///
/// In en, this message translates to:

View file

@ -1209,6 +1209,14 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get auditExportAction => 'Aktuelle Ansicht als JSONL exportieren …';
@override
String get auditExportAllAction =>
'Vollständiges Protokoll als JSONL exportieren …';
@override
String get auditExportAllNothing =>
'Das Protokoll ist leer — nichts zu exportieren.';
@override
String get auditExportNothing =>
'Keine Ereignisse in der aktuellen Ansicht — nichts zu exportieren.';

View file

@ -1225,6 +1225,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get auditExportAction => 'Export current view as JSONL …';
@override
String get auditExportAllAction => 'Export full log as JSONL …';
@override
String get auditExportAllNothing => 'The log is empty — nothing to export.';
@override
String get auditExportNothing =>
'No events in the current view — nothing to export.';