Joseph Doherty
08ccd72365
docs(audit): fix Ingestion Paths count and Purpose conjunction wording
...
Code-review feedback on c334de0 :
- Ingestion Paths intro said 'Three write paths' but the section has four
subsections (site hot-path append + 3 central writers). Reword to 'Four
paths feed the central AuditLog -- one site originator and three central
writers'.
- Purpose: 'dashboards plus drilldowns plus filter queries' read awkwardly;
switch to standard comma list.
2026-05-20 07:44:54 -04:00
Joseph Doherty
c334de03f4
docs(audit): add Component-AuditLog ( #23 ) design document
2026-05-20 07:36:35 -04:00
Joseph Doherty
d93ca4c56e
docs(audit): add implementation plan for centralized audit log
...
See docs/plans/2026-05-20-centralized-audit-log.md and peer .tasks.json.
17 tasks covering Component-AuditLog.md plus cross-references across
11 affected component docs, README, HighLevelReqs, and CLAUDE.md.
Spec is alog.md at commit fec0bb1 .
2026-05-20 07:32:47 -04:00
Joseph Doherty
fec0bb10ff
docs(audit): add centralized audit log design (alog.md)
...
Validated design for a new append-only AuditLog covering the script
trust boundary: outbound API calls (sync + cached), outbound DB
operations (sync + cached, incl. script-initiated reads), notifications,
and inbound API requests. Layered alongside existing Notifications (#21 )
and SiteCalls (#22 ) operational tables.
Key decisions:
- One row per lifecycle event; strictly append-only.
- Site SQLite hot-path append + best-effort gRPC telemetry + central
reconciliation pull. Site purge requires ForwardState=Forwarded.
- Cached calls: site emits; one telemetry packet feeds both the
immutable AuditLog row and the operational SiteCalls upsert.
- Payload: metadata + truncated bodies (8 KB default, 64 KB on errors).
Headers redacted; SQL parameter values captured by default.
- Audit-write failures never abort the user-facing action.
- Monthly partitioning at central; 365-day global retention.
- New Audit nav group + drill-in links from existing pages.
Deferred to v1.x: hash-chain tamper evidence, Parquet archival,
per-channel retention overrides. Provisional component #23 .
2026-05-20 07:21:44 -04:00
Joseph Doherty
d08cedc8c4
Merge branch 'cached-call-tracking': add cached-call tracking design
2026-05-19 12:23:13 -04:00
Joseph Doherty
ec82027bd2
docs(requirements): register Site Call Audit in the Host component matrix
2026-05-19 12:09:01 -04:00
Joseph Doherty
d8d47821e3
docs(requirements): reconcile cross-references for Site Call Audit
2026-05-19 12:06:02 -04:00
Joseph Doherty
38b51ef894
docs: record cached-call tracking in CLAUDE.md
2026-05-19 12:03:17 -04:00
Joseph Doherty
d8dfbc79f4
docs: add Site Call Audit to README component table
2026-05-19 12:02:05 -04:00
Joseph Doherty
c2cd62e72a
docs(requirements): note shared TrackedOperationId model in notification docs
2026-05-19 12:00:45 -04:00
Joseph Doherty
e681a1f0e1
docs(requirements): add Site Call Audit KPIs to Health Monitoring
2026-05-19 11:58:46 -04:00
Joseph Doherty
7589ea8da9
docs(requirements): list Site Call Audit KPI tiles on the Central UI health dashboard
2026-05-19 11:57:59 -04:00
Joseph Doherty
e471a5a855
docs(requirements): add Site Calls page to Central UI
2026-05-19 11:56:02 -04:00
Joseph Doherty
77cc4865c5
docs(requirements): add SiteCalls table and purge to Configuration Database
2026-05-19 11:53:54 -04:00
Joseph Doherty
d46cb56934
docs(requirements): correct cached-call telemetry lifecycle states in Communication
2026-05-19 11:52:34 -04:00
Joseph Doherty
d43d43d795
docs(requirements): add cached-call telemetry pattern to Communication
2026-05-19 11:50:55 -04:00
Joseph Doherty
00ec265980
docs(requirements): add Tracking.Status and cached-call handles to Script Runtime API
2026-05-19 11:48:45 -04:00
Joseph Doherty
f839f6ce45
docs(requirements): make cached-write and cached-call docs symmetric
2026-05-19 11:47:30 -04:00
Joseph Doherty
354314dfe0
docs(requirements): cached calls return TrackedOperationId in ESG
2026-05-19 11:45:41 -04:00
Joseph Doherty
320e4d7479
docs(requirements): document Failed terminal state for permanent cached-call failures
2026-05-19 11:44:23 -04:00
Joseph Doherty
17ef5f85de
docs(requirements): add site-local tracking table and telemetry to Store-and-Forward
2026-05-19 11:42:20 -04:00
Joseph Doherty
5efbb9a985
docs(requirements): name TrackedOperationKind enum and clarify status-enum relationships
2026-05-19 11:40:18 -04:00
Joseph Doherty
397498c120
docs(requirements): add TrackedOperationId and cached-call contracts to Commons
2026-05-19 11:37:04 -04:00
Joseph Doherty
e0026c6da7
docs(requirements): clarify Site Call Audit lifecycle states and actionability
2026-05-19 11:34:44 -04:00
Joseph Doherty
627c48c458
docs(requirements): add Site Call Audit component ( #22 )
2026-05-19 11:32:00 -04:00
Joseph Doherty
a08ad09514
docs(plans): add cached-call tracking implementation plan
2026-05-19 11:30:21 -04:00
Joseph Doherty
e7ed858920
docs(plans): design cached-call tracking with trackable IDs
...
Add TrackedOperationId handles to CachedCall/CachedWrite under a unified tracking model. New site-local tracking table is the status source of truth; new central Site Call Audit component (#22 ) mirrors status via telemetry, exposes KPIs and a Site Calls UI page with central->site Retry/Discard.
2026-05-19 11:26:37 -04:00
Joseph Doherty
f749a5f977
test(central-ui): cover the Notifications nav section in Playwright nav tests
2026-05-19 06:45:55 -04:00
Joseph Doherty
547a7b98e5
fix(central-ui): load notification-list recipients sequentially to avoid concurrent DbContext use
2026-05-19 06:34:32 -04:00
Joseph Doherty
7ecf6448e3
docs(plans): mark Notifications nav group tasks complete
2026-05-19 06:31:23 -04:00
Joseph Doherty
562a1d1678
test(central-ui): assert the Health KPIs link is a real anchor element
2026-05-19 06:24:39 -04:00
Joseph Doherty
82745ef916
feat(central-ui): link Health outbox tiles to the Notification KPIs page
2026-05-19 06:22:02 -04:00
Joseph Doherty
0be1feb561
feat(central-ui): add the Notifications nav section
2026-05-19 06:17:58 -04:00
Joseph Doherty
8bb860ad5f
test(central-ui): cover the per-site KPI error path on the Notification KPIs page
2026-05-19 06:14:19 -04:00
Joseph Doherty
22bac058dd
feat(central-ui): Notification KPIs page with per-site breakdown
2026-05-19 06:09:43 -04:00
Joseph Doherty
34e464edab
refactor(central-ui): split Notification Report out of the Outbox page
2026-05-19 06:03:15 -04:00
Joseph Doherty
016f5d48a6
refactor(central-ui): co-locate NotificationListForm with the Notifications pages
2026-05-19 05:59:40 -04:00
Joseph Doherty
36332e5a94
refactor(central-ui): move Notification List form to /notifications, drop External Systems tab
2026-05-19 05:56:45 -04:00
Joseph Doherty
0fa4ac5525
refactor(central-ui): contextual errors, parallel recipient load, delete-path test for Notification Lists
2026-05-19 05:54:48 -04:00
Joseph Doherty
0f90c0ad9c
feat(central-ui): standalone Notification Lists page
2026-05-19 05:49:45 -04:00
Joseph Doherty
25beb833fc
refactor(central-ui): move SMTP Configuration page to /notifications/smtp
2026-05-19 05:45:06 -04:00
Joseph Doherty
c95758c6ce
feat(notification-outbox): CommunicationService per-site KPI accessor
2026-05-19 05:41:35 -04:00
Joseph Doherty
1629a72093
feat(notification-outbox): actor handler for per-site KPI requests
2026-05-19 05:37:14 -04:00
Joseph Doherty
adcab9dcfc
feat(notification-outbox): per-site KPI request/response message contracts
2026-05-19 05:33:37 -04:00
Joseph Doherty
d54c3da291
test(notification-outbox): exercise per-site oldest-age reduction and Retrying status
2026-05-19 05:32:06 -04:00
Joseph Doherty
1bb0e62bb3
feat(notification-outbox): per-site KPI aggregation in the repository
2026-05-19 05:26:20 -04:00
Joseph Doherty
67b86aa683
feat(notification-outbox): per-site KPI snapshot type + repository contract
2026-05-19 05:22:45 -04:00
Joseph Doherty
0904401f1e
docs(plans): implementation plan for Notifications nav group
2026-05-19 05:08:52 -04:00
Joseph Doherty
113f00a6fa
docs(plans): design for Notifications nav group
2026-05-19 05:01:58 -04:00
Joseph Doherty
17861efa51
test(notification-outbox): assert NotNull in SourceScript negative test
2026-05-19 03:57:38 -04:00