Audit: populate CorrelationId on dashboard/API-key admin audit events (Audit GAP #6 residual) #213

Open
opened 2026-11-06 15:26:23 -05:00 by dohertj2 · 0 comments
Owner

Audit normalization backlog item #6 asked mxaccessgw to (a) capture CorrelationId at constraint denial and dashboard paths and (b) emit a structured Target instead of embedding it in Details text.

Current state (code check on local main 8c0a51d, 2026-11-06):

  • Constraint-denial path: DONE. ConstraintEnforcer now emits Target = "<commandKind>:<target>" (bulk: "<commandKind>:bulk") and a typed CorrelationId when the client id parses as a GUID, with the raw client id kept in DetailsJson["clientCorrelationId"] (commits 8415f35, 55526d5; stillpending.md 1.2).
  • Dashboard / API-key admin path: CanonicalForwardingApiKeyAuditStore.AppendAsync still sets CorrelationId = null (Target = key id is structured). Dashboard actions (DashboardApiKeyManagementService create/revoke/rotate) therefore carry no correlation id.

Ask: decide whether dashboard-originated audit events should carry a correlation id (for example the request TraceIdentifier or a per-action GUID) and populate it, or record that the dashboard path has no meaningful correlation source and close. Verify still open. Low priority: nice-to-have parity, not required for adoption.

Source: ~/Desktop/scadaproj/components/audit/GAPS.md (Adoption backlog #6; field table rows Target/CorrelationId).

Audit normalization backlog item #6 asked mxaccessgw to (a) capture CorrelationId at constraint denial and dashboard paths and (b) emit a structured Target instead of embedding it in Details text. Current state (code check on local main 8c0a51d, 2026-11-06): - Constraint-denial path: DONE. ConstraintEnforcer now emits `Target = "<commandKind>:<target>"` (bulk: `"<commandKind>:bulk"`) and a typed CorrelationId when the client id parses as a GUID, with the raw client id kept in DetailsJson["clientCorrelationId"] (commits 8415f35, 55526d5; stillpending.md 1.2). - Dashboard / API-key admin path: CanonicalForwardingApiKeyAuditStore.AppendAsync still sets CorrelationId = null (Target = key id is structured). Dashboard actions (DashboardApiKeyManagementService create/revoke/rotate) therefore carry no correlation id. Ask: decide whether dashboard-originated audit events should carry a correlation id (for example the request TraceIdentifier or a per-action GUID) and populate it, or record that the dashboard path has no meaningful correlation source and close. Verify still open. Low priority: nice-to-have parity, not required for adoption. Source: ~/Desktop/scadaproj/components/audit/GAPS.md (Adoption backlog #6; field table rows Target/CorrelationId).
dohertj2 added the area:dashboardarea:authtype:followuppriority:p3migrated labels 2026-11-06 15:26:23 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/mxaccessgw#213