Tenant isolation
Every tenant table carries the organization id and PostgreSQL row-level security is enforced for the application role. The worker role bypasses RLS only for the partitioned event store and audit trail, never for tenant configuration.
Secrets
Vendor credentials are encrypted with envelope encryption (AES-256-GCM data keys wrapped by AWS KMS or a local master key). The assistant, the browser and the logs only ever see a reference and the last four characters.
Signed configuration
Configuration bundles are immutable, versioned and Ed25519-signed. The browser SDK verifies the signature with WebCrypto before applying a configuration and rejects everything else (fail closed).
Data plane
The collector validates origins, applies rate limits and HMAC-signed server requests and hands events to a durable queue before answering. Workers process with retries, circuit breakers and a dead-letter queue. Kill switches stop collection and delivery per site or organization within seconds.
- No fingerprinting, no cross-site identity
- PII scanner blocks personal data in event properties before storage
- IP addresses are truncated on ingest
- Append-only audit log and usage ledger (database triggers)
Access and operations
Role-based access control with six organization roles, MFA and passkeys, break-glass access with mandatory reason and audit entry, retention jobs per data kind, and a vulnerability disclosure contact published on this page.
Controls at a glance
Each control is described in the sections above; this table is the short version.
| Control | Scope | Mechanism |
|---|---|---|
| Tenant isolation | Every tenant table, application role | Organization id on every row, PostgreSQL row-level security enforced |
| Secret storage | Vendor credentials | Envelope encryption (AES-256-GCM data keys wrapped by AWS KMS or a local master key); only a reference and the last four characters are visible |
| Signed configuration | Browser SDK | Immutable, versioned, Ed25519-signed bundles verified with WebCrypto; fail closed |
| Ingest protection | Collector | Origin validation, rate limits, HMAC-signed server requests, durable queue before the response |
| Delivery | Workers | Retries, circuit breakers and a dead-letter queue |
| Kill switches | Per site or organization | Stop collection and delivery within seconds |
| Data minimisation | Event properties, IP addresses | PII scanner blocks personal data before storage; IPs truncated on ingest; no fingerprinting |
| Audit | Audit log, usage ledger | Append-only through database triggers |
| Access | Organization members | Six roles, MFA and passkeys, break-glass access with mandatory reason and audit entry |
Report a vulnerability
Please report vulnerabilities responsibly to support@track.site. We acknowledge within two business days and never name reporters without consent.