In transit
Every connection to bustani.top and tenant subdomains is HTTPS-only with TLS 1.2+ and HSTS preload. HTTP requests redirect with 301 before any payload is read.
Security & compliance
Bustani holds personally identifiable data, payment records, and welfare case notes for Rotary clubs across multiple jurisdictions. Here's exactly how that data is protected, who can reach it, and where it lives.
Encryption
Every connection to bustani.top and tenant subdomains is HTTPS-only with TLS 1.2+ and HSTS preload. HTTP requests redirect with 301 before any payload is read.
PostgreSQL volumes are encrypted with AES-256 on DigitalOcean Managed Databases. Application-level encryption protects M-Pesa receipts, donor PII, and welfare case notes with rotating keys.
API credentials live in environment-scoped secret stores, not in source. Rotation playbook is run quarterly and on any contributor offboarding event.
Access & isolation
Members, board, treasurers, district admins, and platform support each see a different slice of the data. Row-level security enforces tenant isolation in the database, not just the UI.
Every dues payment, welfare disbursement, donor receipt, and admin action is recorded with actor, IP, timestamp, and before/after state. Retention is 7 years; export is available on Enterprise plans.
Each club is a Postgres-level tenant with subdomain-scoped routing. A treasurer in Club A cannot read a member list from Club B — verified continuously by automated tests.
Infrastructure
Production runs on DigitalOcean's Frankfurt (FRA1) region by default. Custom regions — including Nairobi and on-prem — are available on Enterprise plans for data-residency requirements.
Database snapshots are taken every 6 hours with point-in-time recovery to any minute in the last 7 days. RPO ≤ 1 hour. RTO ≤ 4 hours for full-region failover. Disaster-recovery drills run quarterly.
Stripe (payments), Safaricom M-Pesa (East Africa payments), DigitalOcean (hosting), Resend (transactional email). Full DPA available on request. Sub-processor changes are notified 30 days in advance.
Compliance frameworks
Lawful basis, data-subject access, right-to-erasure, and data-portability flows are all built in. EU-resident data stays in EU regions when requested.
Registered with the Office of the Data Protection Commissioner. M-Pesa transaction data, member PII, and welfare records are processed under documented lawful bases.
Member directories, classification surveys, and district reporting follow Rotary's recommended privacy posture. No data is sold or shared with advertisers — ever.
Vulnerability disclosure
We treat security reports as our most important inbound mail. We acknowledge within one business day, triage within five, and credit reporters in our advisory log unless you ask us not to.
security@bustani.top