GNSDeveloper Docsv1.0 (Current)
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_transactions and 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:retry scope 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"
}

On this page