Skip to main content
Security

Security is an operating boundary.

WhiskerMatch stores public submissions and authenticated shelter or rescue records. The current controls are real, tested, and stated without claiming that any internet service is invulnerable.

Current architecture

A real application with explicit boundaries.

WhiskerMatch is hosted on Vercel and uses Supabase Postgres and private object storage. Public questionnaire and pilot submissions are stored. Provisioned organizations use an authenticated application for animal, applicant, foster, task, note, status, upload, and audit workflows.

HTTPS in transit

Production traffic is served over HTTPS through Vercel-managed infrastructure and certificates.

Security headers

The application configures transport, content, framing, content-type, and referrer protections to reduce common browser-based attacks.

Server-side authentication

Authenticated access uses signed httpOnly session cookies and server-side checks. Session state includes revocation support rather than relying only on browser visibility.

Organization-scoped access

Private reads and mutations are scoped to the signed-in user's organization. Role and capability checks are enforced server-side, not merely hidden in the interface.

Private uploads

Animal photos and documents are stored in a private Supabase Storage bucket and accessed through controlled, time-limited links rather than public permanent URLs.

Secrets stay server-side

Database credentials, session secrets, service-role keys, and reset or invitation tokens are not intended for client bundles or source control.

Account and recovery controls

Core workflows do not depend on automated email.

Automated transactional email is optional. Team invitations and password resets can use manually copied, expiring links so a missing email provider does not disable account administration or recovery.

Role-based permissions

Organization owners control team access. Capabilities limit which users may perform sensitive administrative and operational actions.

Invitation links

Invitations are represented by controlled links that can be copied and delivered manually. The link must be protected like a credential until accepted or expired.

Password-reset links

Password recovery can produce a controlled reset link for manual delivery. Reset tokens are sensitive and must not be logged, published, or shared with unauthorized people.

Audit records

Material workflow and administrative events are recorded to support accountability and investigation. Audit records reduce ambiguity; they do not replace organizational supervision.

Verification and isolation

Security checks include failure paths, not only demos.

The repository includes automated tests for authentication, permissions, organization isolation, invitations, password recovery, uploads, private routes, and operational workflows. Production data is not used for destructive browser-test cleanup; test execution is designed for an isolated test database.

Organization isolation

Tests exercise cross-organization boundaries and scoped mutations so a user cannot rely on guessed identifiers to access another tenant's records.

Private-route indexing controls

Authenticated, invitation, and password-reset surfaces are marked or routed to avoid normal search indexing.

Input and abuse controls

Public and authentication surfaces use validation and rate-limiting controls appropriate to the current pilot stage.

Environment separation

Local test work is expected to use an isolated database identity. Production migration commands must not run with invalid or unverified credentials.

Limits and responsibilities

Controls reduce risk; they do not erase it.

WhiskerMatch does not claim absolute security, SOC 2 certification, HIPAA compliance, GDPR certification, bank-grade security, or attorney review. Shelters and rescues remain responsible for user access, record quality, operational decisions, and the information they choose to collect, upload, retain, or publish.

No outcome guarantee

Security controls do not guarantee adoption, foster, placement, medical, behavioral, or emergency outcomes.

No professional or emergency service

WhiskerMatch is not veterinary care, legal advice, medical care, behavioral diagnosis, crisis response, or an emergency channel.

Access must be managed

Organizations must remove access when roles change, protect copied invitation and reset links, and report suspected compromise promptly.

Security evolves

The control set will be revised as usage, integrations, data sensitivity, and operational risk change.

Reporting

Report suspected security issues directly.

Send a clear description, affected route or workflow, reproduction steps, and potential impact to cazar-brandes@outlook.com. Do not include unnecessary personal, applicant, animal, or credential data in the report.

Security

Questions about the current security posture?

Ask for specifics. We will distinguish implemented controls, tested behavior, known limitations, and future work.