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
Zapewnić lokalną obserwowalność, produkcyjną implementację trwałego AuditPort wymaganego przez #16 oraz bezpieczny pakiet diagnostyczny — bez telemetrii sieciowej i bez blokowania read-only RTU.
Błąd begin_operation oznacza brak permitu, zero write, disarm i audit health Degraded.
finish_operation konsumuje token i zapisuje finish/abort wraz z końcowym indeksem oraz podsumowaniem kroków.
Błąd finish_operation po wykonaniu któregokolwiek kroku ustawia Degraded; nie jest przedstawiany jako niewykonanie wcześniejszych zapisów.
API zna operation ID, backup ID, plan hash i step index, ale nie zależy od implementacji restore.
Journal i head
audit_<SessionId>.jsonl;
audit_<SessionId>.head.json;
head: schema, session, record count, head hash, last time, open/finalized;
rekordy JCS, previous_hash i record_hash;
float jako bits/text, bez NaN JSON number;
append/sync, potem atomowy head/sync directory.
Rzeczywista gwarancja
Mechanizm wykrywa przypadkowe uszkodzenie, zmianę/brak rekordu, ucięty ogon i rollback względem niezmienionego head. Crash window klasyfikuje jako Interrupted. Nie jest kryptograficznym dowodem przeciw właścicielowi konta mogącemu przepisać cały journal/head.
Audit health
Każdy błąd record_decision, prepare_device_write albo begin_operation degraduje audit health i blokuje write w tej logicznej sesji.
Błąd finalize_device_write albo finish_operation po wykonanym write natychmiast ustawia Degraded.
Cel
Zapewnić lokalną obserwowalność, produkcyjną implementację trwałego
AuditPortwymaganego przez #16 oraz bezpieczny pakiet diagnostyczny — bez telemetrii sieciowej i bez blokowania read-only RTU.Granica architektoniczna
lantern-storage.lantern-app.Logi diagnostyczne
AuditPort API
record_decisionDla decyzji powstałych przed fizycznym write:
Nie przyjmuje i nie tworzy
PreparedToken.Jeżeli
record_decisionzwróci błąd:AuditUnavailable, rozbraja i ustawia audit healthDegraded;prepare_device_writeaudit_health = Degraded.finalize_device_writeAkceptuje wyłącznie outcomes po rozpoczęciu write:
Token jest konsumowany, związany z PlanId/RequestId i nie może finalizować innej operacji.
Operacje wielokrokowe
begin_operationtrwale zapisuje i synchronizuje operation start oraz head przed zwróceniem tokenu.OperationTokenjest single-use, non-clone i związany z operation ID, backup ID, plan hash, SessionId, fingerprint i profile hash.begin_operationi zawiera ten token jako prywatną capability.begin_operationoznacza brak permitu, zero write, disarm i audit healthDegraded.finish_operationkonsumuje token i zapisuje finish/abort wraz z końcowym indeksem oraz podsumowaniem kroków.finish_operationpo wykonaniu któregokolwiek kroku ustawiaDegraded; nie jest przedstawiany jako niewykonanie wcześniejszych zapisów.Journal i head
audit_<SessionId>.jsonl;audit_<SessionId>.head.json;Rzeczywista gwarancja
Mechanizm wykrywa przypadkowe uszkodzenie, zmianę/brak rekordu, ucięty ogon i rollback względem niezmienionego head. Crash window klasyfikuje jako Interrupted. Nie jest kryptograficznym dowodem przeciw właścicielowi konta mogącemu przepisać cały journal/head.
Audit health
record_decision,prepare_device_writealbobegin_operationdegraduje audit health i blokuje write w tej logicznej sesji.finalize_device_writealbofinish_operationpo wykonanym write natychmiast ustawia Degraded.audit_health = Degradedjest częścią [PLAN 09] Zbudować maszynę stanu sesji, identyfikację i reconnect #9 i przeżywa reconnect.Weryfikator offline
ValidFinalized, ValidOpen, Interrupted, RecordChanged, RecordMissing, TailTruncated, HeadMissing, HeadMismatch, RollbackDetected, UnsupportedSchema.
Nie naprawia automatycznie.
Diagnostyka
DiagnosticsSnapshotskłada session state, BusStats, PollPlan, pipeline/storage queues i CSV drops.Pakiet diagnostyczny do XDG data/jawnej ścieżki zawiera domyślnie zredagowane build/system/config/ports/profile hashes/identification report/stats/logs/manifest. Values, CSV, backup, fault report, pełny profil i audit wymagają osobnego opt-in.
Panic i shutdown
Testy
Kryteria akceptacji
Zależności