Trust
Nothing to take on faith.
What Pyx touches, every request it sends, and how to check its work.
Access
Production stays closed.
- Live project
- Never. Local disposable stacks only.
- Customer data
- Never. Synthetic users and records only.
- API routes
- Only those a rule lists, with the test user’s own token.
- Our servers
- Nothing. No account, no telemetry.
- Credentials
- Never written to any output. Every file is scanned first.
Ledger
Every request, on the record.
A real ledger from the demo stack. Read-only, approved origins only.
| # | Why | As | Request | Status |
|---|---|---|---|---|
| 1 | verify test records | setup-key | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=in.(1a5e0000-0000-4000-8000-00000000000a,1a5e0000-0000-4000-8000-00000000000b)&limit=3 | 200 |
| 2 | verify user | user-a | GET /auth/v1/user | 200 |
| 3 | verify user | user-b | GET /auth/v1/user | 200 |
| 4 | verify anonymous | anonymous | GET /auth/v1/user | 403 |
| 5 | read | user-a | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000a&limit=2 | 200 |
| 6 | read | user-b | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000b&limit=2 | 200 |
| 7 | read | user-a | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000b&limit=2 | 200 |
| 8 | read | user-b | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000a&limit=2 | 200 |
| 9 | read | anonymous | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000a&limit=2 | 200 |
| 10 | read | anonymous | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=eq.1a5e0000-0000-4000-8000-00000000000b&limit=2 | 200 |
| 11 | re-check test records | setup-key | GET /rest/v1/invoices?select=id,owner_id,fixture_marker&id=in.(1a5e0000-0000-4000-8000-00000000000a,1a5e0000-0000-4000-8000-00000000000b)&limit=3 | 200 |
Verify
Check any result yourself.
The verifier recounts a result in your browser and flags edited verdicts. Nothing is uploaded.
Approval
A person approves the rule.
CI reads it from your protected branch, so a pull request can’t weaken it. Approvals are local today; protect that folder.
Source
Read every line.
- License
- FSL-1.1. Apache-2.0 after two years. GitHub
- Dependencies
- Pinned, with a seven-day minimum age.
- Releases
- Published with npm provenance from the first public release.
- Tests
- Over 250 unit tests. 33 scenarios on a real Supabase stack.
- Benchmark
- 8/8 seeded leaks caught, 1 miss published.
Security
Found something?
Email us. Policy in SECURITY.md and security.txt. No independent review yet; it will be linked here.
Limits
A pass is narrow, on purpose.
The approved checks held, on that stack, at that time. Not a penetration test or certification. Writes, list queries and team membership aren’t covered yet.