Platform Guides
Delivery Activity & Audit Logs
Search, filter, and inspect server-persisted delivery timelines with privacy masking and delivery retries.
Delivery Activity & Audit Logs
The GNS /activity engine provides a server-persisted, real-time audit trail of every notification and OTP transaction dispatched across all channels.
1. Key Features
- Permanent History: Dispatches are stored in PostgreSQL (
otp_transactionsand notification delivery logs), surviving beyond short Redis cache windows. - Server-Side Masking: Recipient identifiers (email addresses, phone numbers) are masked at the API layer (e.g.
a***x@example.com,+1415***2671), ensuring raw PII is never exposed in logs. - 5-Second Live Polling: The console automatically pulls new transactions with status updates.
- Permission-Gated Retries: Operators with the
activity:retryscope can resend failed messages directly from the transaction detail drawer.
2. Querying Activity via API (GET /api/v1/activity)
curl -X GET "https://api.gns.iitdeveloper.com/api/v1/activity?channel=email&status=failed&limit=10" \
-H "Authorization: Bearer <keycloak_token>"Response200 OK
{
"total_count": 1,
"page": 1,
"items": [
{
"transaction_id": "notif_01J7K3X9AB0C1D2E",
"application_name": "Acme Production",
"channel": "email",
"recipient_masked": "u***r@domain.invalid",
"status": "failed",
"failure_reason": "550 5.1.1 Recipient mailbox not found",
"created_at": "2026-09-13T13:10:00Z",
"retryable": true,
"retry_count": 0
}
]
}3. Triggering a Delivery Retry (POST /api/v1/activity/{id}/retry)
When a delivery fails due to a temporary network blip or downstream rate limit, authorized operators can trigger an immediate retry:
POST /api/v1/activity/notif_01J7K3X9AB0C1D2E/retry
Authorization: Bearer <keycloak_token>Response202 Accepted
{
"status": "retry_queued",
"transaction_id": "notif_01J7K3X9AB0C1D2E",
"queued_at": "2026-09-13T13:15:00Z"
}