Joseph Doherty
479870e40c
feat(audit): stamp SourceNode at site SqliteAuditWriter from INodeIdentityProvider
...
Caller-provided SourceNode wins (preserves reconciled rows from other nodes);
otherwise the writer fills it from the local INodeIdentityProvider.NodeName.
Reads from the provider on every write — singleton lifetime means zero overhead.
2026-05-23 17:08:21 -04:00
Joseph Doherty
f3cb8c0791
feat(audit): add SourceNode column to site SQLite AuditLog (idempotent upgrade)
2026-05-23 16:50:16 -04:00
Joseph Doherty
50430b9daa
feat(auditlog): ParentExecutionId on site SQLite schema + gRPC AuditEventDto
2026-05-21 17:12:34 -04:00
Joseph Doherty
5198b114b4
fix(auditlog): evolve existing site auditlog.db schema for ExecutionId
2026-05-21 16:18:17 -04:00
Joseph Doherty
6b16a48886
feat(auditlog): ExecutionId on site SQLite schema + gRPC AuditEventDto
2026-05-21 14:53:08 -04:00
Joseph Doherty
7173a79ad7
feat(auditlog): SqliteAuditWriter schema bootstrap ( #23 )
...
Adds the site-side SqliteAuditWriter skeleton with schema bootstrap —
20-column AuditLog table + IX_SiteAuditLog_ForwardState_Occurred index +
PRAGMA auto_vacuum = INCREMENTAL — and the SqliteAuditWriterOptions
companion type. Mirrors the SiteEventLogger pattern: single owned
SqliteConnection serialised behind a write lock; the Channel-based
hot-path lands in Bundle B-T2.
Adds Microsoft.Data.Sqlite + Microsoft.Extensions.Logging.Abstractions
project refs to ScadaLink.AuditLog; adds Microsoft.Data.Sqlite +
Microsoft.Extensions.Logging.Abstractions + NSubstitute test refs.
Tests (3 new, total 13 -> 16):
- Opens_Creates_AuditLog_Table_With_20Columns_And_PK_On_EventId
- Opens_Creates_IX_ForwardState_Occurred_Index
- PRAGMA_auto_vacuum_Is_INCREMENTAL
2026-05-20 12:17:02 -04:00