Backend-connected ERP

Audit + Security

Swagger

Audit and security

Review immutable audit records, domain events, queue state, security policies, and record security events.

Audit, events, queues, and policies

eventTypeactorUserIdentityTypecreatedAt
2026-05-18T11:52:13.624Z
2026-05-18T11:49:38.341Z
2026-05-18T11:40:28.545Z
2026-05-18T11:38:12.915Z
2026-05-18T11:22:06.668Z
2026-05-18T11:22:05.984Z
2026-05-18T11:22:05.339Z
2026-05-18T11:22:03.673Z
2026-05-18T11:22:02.849Z
2026-05-18T11:22:01.416Z
2026-05-18T11:21:59.359Z
2026-05-18T11:21:58.146Z
2026-05-18T11:21:57.467Z
2026-05-18T11:21:53.852Z
2026-05-18T11:21:53.132Z
2026-05-18T11:21:50.367Z
2026-05-18T11:21:49.716Z
2026-05-18T11:21:49.700Z
2026-05-18T11:21:48.968Z
2026-05-18T11:21:48.292Z
eventTypeaggregateTypestatuscreatedAt
bank_statement_importPENDING2026-05-18T11:21:58.148Z
gst_compliance_documentPENDING2026-05-18T11:21:53.849Z
gst_compliance_documentPENDING2026-05-18T11:21:53.128Z
invoicePENDING2026-05-18T11:21:50.369Z
invoicePENDING2026-05-18T11:21:49.718Z
invoicePENDING2026-05-18T11:21:48.302Z
tally_sync_runPENDING2026-05-18T08:05:27.426Z
journal_entryPENDING2026-05-18T08:05:27.416Z
tally_sync_runPENDING2026-05-18T08:05:27.091Z

Queue monitor

{
  "generatedAt": "2026-05-18T13:27:01.792Z",
  "queues": [
    {
      "name": "emails",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 0,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "pdf-generation",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 1,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "gst-processing",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 2,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "notifications",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 0,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "ai-tasks",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 0,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "reports",
      "counts": {
        "waiting": 0,
        "active": 0,
        "completed": 0,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    },
    {
      "name": "tally-sync",
      "counts": {
        "waiting": 1,
        "active": 0,
        "completed": 0,
        "failed": 0,
        "delayed": 0,
        "paused": 0
      }
    }
  ],
  "retryPolicy": {
    "attempts": 3,
    "backoff": "exponential",
    "deadLetterStatus": "DEAD_LETTER"
  }
}

Security policies

{
  "owaspAsvs": {
    "authentication": "JWT access tokens, refresh rotation, MFA/TOTP, brute-force throttling",
    "accessControl": "tenant header binding, membership checks, RBAC permission guard",
    "validation": "DTO validation whitelist and forbidden non-whitelisted input",
    "logging": "append-only audit logs with hash chaining"
  },
  "headers": {
    "csp": "default-src 'self'; frame-ancestors 'none'",
    "hsts": "enabled by helmet in production behind TLS",
    "referrerPolicy": "no-referrer"
  },
  "secrets": {
    "strategy": "environment-backed secret injection with Kubernetes Secret examples",
    "rotation": "JWT and auth encryption keys are isolated by purpose"
  },
  "monitoringHooks": [
    "security_events table",
    "audit hash-chain verification",
    "rate limit and RBAC denial surfaces"
  ]
}