Audit Service — Event Schemas
Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 04 event-driven-architecture
1. Events Produced
The Audit Service emits only meta-audit events about its own operations.
audit.export.requested.v1
| Field | Value |
|---|---|
| Subject (NATS) | com.ghasi-ehr.audit.export.requested |
| Canonical type | audit.export.requested.v1 |
| Retention class | 7 years |
| Version | 1 |
{
"specversion": "1.0",
"type": "audit.export.requested.v1",
"source": "ghasi-ehr/audit-service",
"id": "evt_aud_exp_001",
"time": "2026-04-18T12:00:00Z",
"datacontenttype": "application/json",
"tenantid": "ten_def456",
"actorid": "usr_superadmin001",
"data": {
"exportId": "exp_01HXYZ",
"requestedBy": "usr_superadmin001",
"tenantId": "ten_def456",
"filters": {
"dateFrom": "2026-01-01T00:00:00Z",
"dateTo": "2026-02-01T00:00:00Z"
},
"format": "ndjson",
"requestedAt": "2026-04-18T12:00:00Z"
}
}
audit.export.completed.v1
| Field | Value |
|---|---|
| Subject (NATS) | com.ghasi-ehr.audit.export.completed |
| Canonical type | audit.export.completed.v1 |
| Retention class | 7 years |
{
"specversion": "1.0",
"type": "audit.export.completed.v1",
"source": "ghasi-ehr/audit-service",
"id": "evt_aud_exp_002",
"time": "2026-04-18T12:02:34Z",
"datacontenttype": "application/json",
"data": {
"exportId": "exp_01HXYZ",
"requestedBy": "usr_superadmin001",
"tenantId": "ten_def456",
"recordCount": 15432,
"completedAt": "2026-04-18T12:02:34Z"
}
}
audit.dlq.alert.v1
| Field | Value |
|---|---|
| Subject (NATS) | com.ghasi-ehr.audit.dlq.alert |
| Canonical type | audit.dlq.alert.v1 |
| Retention class | 7 years |
{
"specversion": "1.0",
"type": "audit.dlq.alert.v1",
"source": "ghasi-ehr/audit-service",
"id": "evt_aud_dlq_001",
"time": "2026-04-18T12:05:00Z",
"datacontenttype": "application/json",
"data": {
"originalSubject": "com.ghasi-ehr.iam.user.created",
"originalEventId": "evt_iam_001",
"deliveryAttempts": 5,
"lastError": "Database connection timeout",
"failedAt": "2026-04-18T12:05:00Z"
}
}
2. Events Consumed
The Audit Service subscribes to ALL platform and clinical service topics via wildcard NATS JetStream consumers.
| Wildcard Subject | Source Service | Audit Event Types Created |
|---|---|---|
com.ghasi-ehr.iam.user.* | identity-service | USER_CREATED, USER_UPDATED, USER_SUSPENDED, USER_REACTIVATED, USER_DEACTIVATED |
com.ghasi-ehr.iam.provider.* | identity-service | PROVIDER_PROFILE_UPDATED, PROVIDER_NODE_ASSIGNED, PROVIDER_NODE_REMOVED |
com.ghasi-ehr.iam.service_account.* | identity-service | SERVICE_ACCOUNT_CREATED, SERVICE_ACCOUNT_REVOKED |
com.ghasi-ehr.tenant.* | tenant-service | TENANT_CREATED, TENANT_ACTIVATED, TENANT_SUSPENDED, TENANT_REACTIVATED, TENANT_TERMINATED, TENANT_CONFIG_CHANGED, SUBSCRIPTION_UPDATED, SUBSCRIPTION_EXPIRED |
com.ghasi-ehr.hierarchy.* | facility/hierarchy-service | NODE_CREATED, NODE_UPDATED, NODE_DEACTIVATED, EDGE_CREATED, EDGE_REMOVED, MEMBERSHIP_ASSIGNED, MEMBERSHIP_REMOVED |
com.ghasi-ehr.licensing.* | licensing (via platform-admin) | LICENSE_ASSIGNED, LICENSE_UPDATED, LICENSE_REVOKED, LICENSE_EXPIRED |
com.ghasi-ehr.access_policy.* | access-policy (via identity) | ROLE_CREATED, ROLE_UPDATED, ASSIGNMENT_CREATED, ASSIGNMENT_REMOVED, POLICY_CREATED, POLICY_UPDATED |
com.ghasi-ehr.platform.* | platform-admin-service | PLATFORM_CONFIG_CHANGED, FEATURE_FLAG_CREATED, FEATURE_FLAG_UPDATED, FEATURE_FLAG_ARCHIVED |
ghasi.config-resolver.* | config-service | FEATURE_CREATED, FEATURE_UPDATED, ROLE_GRANT_CREATED, USER_OVERRIDE_CREATED, DESIGN_TOKEN_UPDATED |
com.ghasi-ehr.clinical.* (MVP1+) | clinical services | PATIENT_RECORD_READ, CLINICAL_NOTE_READ, LAB_RESULT_READ, MEDICATION_READ |
3. Subject Map Summary
| Event type | Subject | Retention |
|---|---|---|
audit.export.requested.v1 | com.ghasi-ehr.audit.export.requested | 7 years |
audit.export.completed.v1 | com.ghasi-ehr.audit.export.completed | 7 years |
audit.dlq.alert.v1 | com.ghasi-ehr.audit.dlq.alert | 7 years |
4. Consumer Reaction Map
| Emitted event | Consumer | Action |
|---|---|---|
audit.dlq.alert.v1 | platform-admin-service | Mark audit health status degraded; surface in health aggregate |
audit.export.requested.v1 | Audit Service (self) | Store meta-audit entry with eventType=BULK_EXPORT |
audit.export.completed.v1 | Compliance UI | Notify admin that export is ready |