Skip to main content

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

FieldValue
Subject (NATS)com.ghasi-ehr.audit.export.requested
Canonical typeaudit.export.requested.v1
Retention class7 years
Version1
{
"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

FieldValue
Subject (NATS)com.ghasi-ehr.audit.export.completed
Canonical typeaudit.export.completed.v1
Retention class7 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

FieldValue
Subject (NATS)com.ghasi-ehr.audit.dlq.alert
Canonical typeaudit.dlq.alert.v1
Retention class7 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 SubjectSource ServiceAudit Event Types Created
com.ghasi-ehr.iam.user.*identity-serviceUSER_CREATED, USER_UPDATED, USER_SUSPENDED, USER_REACTIVATED, USER_DEACTIVATED
com.ghasi-ehr.iam.provider.*identity-servicePROVIDER_PROFILE_UPDATED, PROVIDER_NODE_ASSIGNED, PROVIDER_NODE_REMOVED
com.ghasi-ehr.iam.service_account.*identity-serviceSERVICE_ACCOUNT_CREATED, SERVICE_ACCOUNT_REVOKED
com.ghasi-ehr.tenant.*tenant-serviceTENANT_CREATED, TENANT_ACTIVATED, TENANT_SUSPENDED, TENANT_REACTIVATED, TENANT_TERMINATED, TENANT_CONFIG_CHANGED, SUBSCRIPTION_UPDATED, SUBSCRIPTION_EXPIRED
com.ghasi-ehr.hierarchy.*facility/hierarchy-serviceNODE_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-servicePLATFORM_CONFIG_CHANGED, FEATURE_FLAG_CREATED, FEATURE_FLAG_UPDATED, FEATURE_FLAG_ARCHIVED
ghasi.config-resolver.*config-serviceFEATURE_CREATED, FEATURE_UPDATED, ROLE_GRANT_CREATED, USER_OVERRIDE_CREATED, DESIGN_TOKEN_UPDATED
com.ghasi-ehr.clinical.* (MVP1+)clinical servicesPATIENT_RECORD_READ, CLINICAL_NOTE_READ, LAB_RESULT_READ, MEDICATION_READ

3. Subject Map Summary

Event typeSubjectRetention
audit.export.requested.v1com.ghasi-ehr.audit.export.requested7 years
audit.export.completed.v1com.ghasi-ehr.audit.export.completed7 years
audit.dlq.alert.v1com.ghasi-ehr.audit.dlq.alert7 years

4. Consumer Reaction Map

Emitted eventConsumerAction
audit.dlq.alert.v1platform-admin-serviceMark audit health status degraded; surface in health aggregate
audit.export.requested.v1Audit Service (self)Store meta-audit entry with eventType=BULK_EXPORT
audit.export.completed.v1Compliance UINotify admin that export is ready