Security

How Grantary protects the records it keeps. Last updated 29 July 2026. Everything on this page describes controls that exist in the product today.

Accounts and sessions

  • Two locks on every account: a password and a mandatory authenticator app (TOTP). There is no way to opt out of the second factor.
  • Passwords are stored only as salted scrypt hashes; authenticator codes are replay-guarded; ten failed sign-ins lock the account for fifteen minutes.
  • Sessions are server-side and revocable: they expire after two hours of inactivity (30-day hard cap), and changing or resetting a password signs the account out everywhere. Password reset links are single-use, expire in 30 minutes, and are stored only as hashes — and they never reset the authenticator, so an email inbox alone can't unlock an account.

Access control

  • Every grant spans exactly two organisations — the funder and the recipient — and every read and write passes a single server-side authorisation choke point that checks the caller's side, membership and permission.
  • Permissions are explicit per person (17 keys); what an administrator sees in the permission checkboxes is exactly what the server enforces. Auditor accounts are read-only by design.
  • Sharing beyond a grant record (the organisation passport) is granted by the charity, scoped, revocable, and audited.

Record integrity — the part that makes Grantary Grantary

  • Write-once evidence: file bytes never change after upload. Every file is SHA-256 hashed at upload and the hash is re-verified every time the file is served — a byte out of place is an error, never silence.
  • Append-only audit trail: every change writes an audit event in the same database transaction as the change itself, each event hash-chained to the one before. The database refuses UPDATE and DELETE on the trail outright — a protection that binds us too, not just users.
  • The audit-pack export format is publicly specified, so anyone can verify an exported record's integrity without a Grantary account.

Infrastructure

  • All traffic is encrypted in transit (TLS 1.2+).
  • Data is encrypted at rest and backed up by our managed database provider; the current provider list, with locations stated honestly, is at /subprocessors.
  • Secrets (API keys, tokens) are never hardcoded; operator-managed keys are masked in the console and excluded from audit payloads.

Incidents and breach notification

If a personal-data breach affects a customer's data we notify them without undue delay with the information their own 72-hour ICO obligations need — the commitment is contractual, in the Data Processing Agreement. The product also gives organisations their own serious-incident register, so their notification duties to funders are provable facts.

Reporting a vulnerability

If you believe you've found a security problem in Grantary, tell us at info@prodro.co.ukwith "Security" in the subject line. We read every report, we'll acknowledge yours promptly, and we won't take action against good-faith research — please don't access data that isn't yours, degrade the service, or publish details before we've had a reasonable chance to fix the issue.

What we don't claim

Grantary does not currently hold Cyber Essentials or ISO 27001 certification — if that changes, this page will say so. And no payment card details touch our systems: money is tracked here, never moved.