Security & Trust

Built for enterprise security reviews

Read-only access. Encrypted credentials. Tenant isolation at the database layer.

Data access model

What Zaptik reads

Assignment groups, catalog items, HR services, routing rules, custom table schemas, and system properties. Table API + Aggregate API only.

What Zaptik never touches

Ticket content, user PII, attachment data, service catalog request data, or any personally identifiable record fields.

Write access

Zero. Zaptik is read-only. The OAuth client credentials grant does not include write scopes.

Required ServiceNow role

itil_reader or equivalent read-only role. Full role list in the integration guide.

Credential storage

Encryption

AES-256-GCM. Each credential encrypted with a per-deployment key before storage. Keys stored separately from encrypted values.

At rest

Railway-managed PostgreSQL with encryption at rest. Credentials never written to logs or returned in API responses.

In transit

TLS 1.2+ for all connections. OAuth tokens cached in memory with a 60-second expiry buffer — never persisted to disk.

Tenant isolation

Database layer

Row-Level Security (RLS) enforced in PostgreSQL. The application role cannot query another tenant's rows without explicitly setting the tenant context.

Schema isolation

Each customer's graph data lives in a dedicated PostgreSQL schema (tenant_{instance}). Cross-tenant queries are architecturally impossible.

Application role

App connects as zaptik_app — no superuser privileges, no BYPASSRLS. RLS is always enforced, even in internal operations.

Audit and compliance

Audit log

Every API action written to a durable append-only audit_events table in PostgreSQL and to Railway log retention. No deletions or updates to audit rows.

SOC 2 Type I

In progress. Expected Q4 2026. Controls cover Security trust service criteria.

Data retention

Audit events: 2 years. Graph revisions: 1 year. Customer data deleted within 30 days of offboarding on written request.