Security & trust

Evidence over claims, applied to security

A plain-language summary of ATPX's actual security posture — including what's still in progress. Nothing below is aspirational.

✓

Authentication

Passwords hashed with scrypt, never stored in plaintext. Session tokens are hashed at rest, not stored raw, and use HttpOnly, SameSite cookies.

✓

Two-factor authentication

TOTP-based 2FA is available account-wide with self-service enrollment, backup codes, and disable — not a partial or admin-only feature.

✓

Role-based access control

Every permission-gated action is enforced server-side against the authenticated session's actual role — UI hiding is never the only control.

✓

Tenant isolation

Tenant-scoped data is filtered by the authenticated session's tenant in the query itself, not only at the route layer. Cross-tenant reads return "not found," never a distinguishable error, so a wrong ID can't be told apart from someone else's real one.

✓

Tamper-evident audit log

Every significant action is recorded in a hash-chained, checkpointed audit log designed to make undetected tampering with historical entries mathematically difficult, with independent verification and key rotation.

✓

Least-privilege connectors

REST/webhook/S3 connectors validate destinations against SSRF (no reaching private/internal addresses) and sign outbound requests rather than trusting configuration alone.

✓

Rate limiting

Authentication and signup endpoints are rate-limited against brute-force and abuse.

✓

Automated backups

Regular, checksum-verified backups with a documented, drilled restore procedure.

Stated honestly: what's still in progress

Inbound connector webhooks are authenticated by signature but don't yet have replay-window protection — a captured, valid request could theoretically be replayed. Live payment webhook replay protection is being built alongside Stripe activation. Off-site backup storage and continuous production monitoring/alerting are on the near-term roadmap, not yet live. Rate limiting is currently per-process rather than distributed across a multi-instance deployment.

Full detail is maintained in the project's own engineering documentation and re-verified against source rather than assumed — ask via Support if you need specifics for a security review.

Report a vulnerability

Found a security issue? We want to know. Reach out through Support with details and we'll respond promptly.