docs(audit): ScadaBridge C7 review — correct 'six persisted' computed-col wording (5 persisted + IngestedAtUtc non-persisted) + stale perf iteration comment

This commit is contained in:
Joseph Doherty
2026-06-02 15:08:49 -04:00
parent 635461c0fd
commit bc0e5bfd37
4 changed files with 14 additions and 10 deletions
@@ -8,8 +8,11 @@ namespace ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Configurations;
/// <summary>
/// Maps the C5 (Task 2.5) <see cref="AuditLogRow"/> persistence shape to the central
/// <c>dbo.AuditLog</c> table: the 10 canonical <c>ZB.MOM.WW.Audit.AuditEvent</c> columns
/// (writable) plus six read-only, server-side <b>persisted computed columns</b> derived
/// from <c>DetailsJson</c> via <c>JSON_VALUE</c>. The computed-column SQL and the index
/// (writable) plus six read-only, server-side <b>computed columns</b> derived from
/// <c>DetailsJson</c> via <c>JSON_VALUE</c> — five PERSISTED (<c>Kind</c>/<c>Status</c>/
/// <c>SourceSiteId</c>/<c>ExecutionId</c>/<c>ParentExecutionId</c>) plus <c>IngestedAtUtc</c>
/// which is computed but NOT persisted (SQL Server forbids PERSISTED on its non-deterministic
/// <c>SWITCHOFFSET</c> cast). The computed-column SQL and the index
/// set here mirror the <c>CollapseAuditLogToCanonical</c> migration's
/// <c>dbo.AuditLog_v2</c> DDL byte-for-byte — keep them in sync.
/// </summary>
@@ -46,8 +46,8 @@ namespace ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Migrations
protected override void Up(MigrationBuilder migrationBuilder)
{
// 1) Create dbo.AuditLog_v2 on the PRESERVED partition scheme. Ten
// canonical columns first (ordinal-stable), then the six persisted
// computed columns. The clustered PK is composite {EventId,
// canonical columns first (ordinal-stable), then the six computed
// columns (five PERSISTED + IngestedAtUtc non-persisted). The clustered PK is composite {EventId,
// OccurredAtUtc} (partition-aligned). The computed-column expressions
// here are the single source of truth that AuditLogEntityTypeConfiguration
// and SwitchOutPartitionAsync's staging table must mirror exactly.