Sasquatch Privacy

Trust Center

Last updated 11 September 2026

We have not completed a SOC 2 or ISO 27001 audit, or any other third-party certification. Rather than assert one, this page describes the actual controls in place today, in enough detail to be checked.

What this page is

Most trust centers point at a badge. We don’t have one yet, so this page is the substitute: a plain description of where data lives, how it is protected, who can reach it, and what has gone wrong so far — written to be evaluated on its own merits rather than taken on faith. If a claim below turns out not to hold up, that is a bug in this page, not a footnote.

Data inventory

Free scans and paid audits are stored in DynamoDB with an automatic retention TTL; audit screenshots in a private S3 bucket with a matching lifecycle rule; account, organisation and monitoring data in Supabase Postgres under row-level security. Nothing below is stored longer than it takes to serve the product.

DataWhyWhereRetentionDeleted by
Scanned URLIdentifies the jobDynamoDB, us-west-2Free scan 30 days · Audit 365 daysAutomatic TTL
Request hosts + path hashesFinding third partiesEmbedded in the scan result, DynamoDBSame as aboveAutomatic TTL
Cookie metadataCookie inventoryEmbedded in the scan result, DynamoDBSame as aboveAutomatic TTL
Storage key names (never values)Storage inventoryEmbedded in the scan result, DynamoDBSame as aboveAutomatic TTL
Screenshots / HAR evidenceVisual evidence for a paid auditPrivate S3 bucket, SSE-S3, all public access blocked; served only through a token-checked route12 months, matching the auditBucket lifecycle rule
Email addressAccount and alertsSupabase Auth and Postgres (row-level security); alert recipients in the org's own rowsUntil the account is deleted; alert recipients until removedAccount owner
Payment detailsBilling for a $99 auditStripe only — card data never reaches usStripe's own retention policyWe hold nothing to delete
Submitter IP addressRate limiting and abuse controlDynamoDB counter, keyed by IPUp to 24 hoursAutomatic TTL

What is never collected

Architecture

Encryption

Access control

Logging and retention

Worker log groups (Lambda and Fargate) are set to a 14-day retention explicitly in the CloudFormation templates, rather than left at the indefinite default. They can incidentally contain the domain name someone asked us to scan — never scan tokens, the callback signing secret, Stripe keys, or the cookie and storage contents a scan observed. Visitor IP addresses are used only as a rate-limit key, for up to 24 hours, and are never written onto a scan record. The web app’s own runtime logs live under Vercel’s standard retention, which we do not configure.

Monitoring and incidents

An hourly probe checks both the public scan path and the paid checkout path in production; a failure opens a tracked issue rather than waiting to be noticed by hand. A CloudWatch alarm also watches the scan dead-letter queue and fires when a job has failed three times, alongside alarms on scan-executor errors and throttling. All of them route to an on-call email through SNS in every region (delivered to the application over HTTPS and forwarded by email); the account also carries spend budgets that email at 80% forecast and 100% actual, because the free scanner is the one thing here that could run up a bill.

We publish the one real incident on our own record below, on the reasoning that a trust center which only ever says everything is fine is not worth reading.

Resolved8 September 2026 – 11 September 2026

Paid checkout returned an error for three days

STRIPE_AUDIT_PRICE_ID was switched to a live Stripe price while STRIPE_SECRET_KEY remained a test key. Stripe objects are mode-scoped on both sides, so the mismatch made every checkout attempt fail. The free scanner was unaffected throughout, and no customer or scan data was exposed or lost — this was an outage in taking payment, not a data incident. It was found by manually probing production, not by an alarm, which is the reason the hourly probe above exists now. Fixed by reverting to a matched test configuration.

Subprocessors

SubprocessorPurposeLocation
VercelApplication hostingUnited States
Amazon Web ServicesScan and audit workers, storage, email delivery (SES)us-west-2, us-west-1, us-east-1, eu-central-1, eu-west-2
SupabaseAccounts, organisations, monitors and alert recipientsUnited States (us-west-2)
StripePaymentsUnited States
GitHubSource control and CIUnited States

Vulnerability disclosure

If you find a security issue, report it through Saasquatch Labs support. Tell us what you found and how to reproduce it. In return: we will acknowledge your report, we will not pursue legal action against good-faith research conducted under this policy, and we are glad to credit you publicly if you want that. Please do not access, modify or exfiltrate anyone else’s data beyond what is needed to demonstrate the issue, and give us a reasonable window to fix it before disclosing it publicly. The machine-readable version of this policy is at /.well-known/security.txt.

Software bill of materials

Generated at build time, directly from the lockfiles — CycloneDX format, one for the web app and one for the scan worker, so neither can drift from what is actually shipping.

Security package

A standard vendor-security questionnaire, answered in full at /trust/security-package, covering company, hosting, encryption, access, retention, logging, supply chain, incident response, business continuity, compliance posture, subprocessors and vulnerability management.