master
2a69ad112c
feat(audit): enhanced AuditActionFilter with body capture + enrichment hooks
...
- Capture request body (JSON, up to 64KB, PII-redacted) in Details["requestBody"]
- Capture response resource ID for create operations in Details["responseResourceId"]
- Add IAuditResourceEnricher interface for GUID -> human-readable name resolution
- Add IAuditBeforeStateProvider for before-state snapshots in Details["beforeState"]
- Add AuditPiiRedactor with configurable field patterns (recursive JSON walk)
- AuditActionAttribute gains CaptureBody (bool?) + SensitiveFields (string[]?)
- AuditEmissionOptions gains MaxBodySizeBytes (64KB) + RedactedFieldPatterns
- All enrichment is optional and fire-and-forget (never blocks response)
- Add AuditModules constants (15 modules) and AuditActions constants (~200 actions)
organized as nested static classes per module for type-safe annotations
- All 17 consuming services verified to compile successfully
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 11:49:54 +03:00
..
2026-04-08 18:18:26 +03:00
2026-03-05 03:54:22 +02:00
2026-02-04 19:59:20 +02:00
2026-04-05 23:52:14 +03:00
2026-02-03 23:40:04 +02:00
2026-02-23 15:30:50 +02:00
2026-02-12 10:27:23 +02:00
2026-04-09 11:49:54 +03:00
2026-02-24 23:29:36 +02:00
2026-02-19 22:10:54 +02:00
2026-02-24 23:29:36 +02:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-03 23:40:04 +02:00
2026-02-03 23:40:04 +02:00
2026-04-08 16:20:39 +03:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-04-08 16:20:39 +03:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-01 21:37:40 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-01 21:37:40 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-24 23:29:36 +02:00
2026-02-01 21:37:40 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-03 23:40:04 +02:00
2026-02-01 21:37:40 +02:00
2026-03-05 03:54:22 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-02-12 10:27:23 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-04-06 16:14:58 +03:00
2026-04-06 08:51:04 +03:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-04 19:59:20 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-03 23:40:04 +02:00
2026-02-01 21:37:40 +02:00
2026-04-06 08:51:04 +03:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-03-05 03:54:22 +02:00
2026-03-11 10:07:30 +02:00
2026-02-01 21:37:40 +02:00
2026-04-05 23:52:14 +03:00
2026-03-05 03:54:22 +02:00
2026-02-03 23:40:04 +02:00
2026-03-05 03:54:22 +02:00
2026-02-03 23:40:04 +02:00
2026-02-25 18:19:22 +02:00
2026-02-03 23:40:04 +02:00
2026-02-12 10:27:23 +02:00
2026-02-09 08:53:51 +02:00
2026-02-09 08:53:51 +02:00
2026-02-03 23:40:04 +02:00
2026-02-03 23:40:04 +02:00
2026-02-23 15:30:50 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-03-05 03:54:22 +02:00
2026-04-05 23:52:14 +03:00
2026-02-01 21:37:40 +02:00
2026-02-04 19:59:20 +02:00
2026-02-01 21:37:40 +02:00