| africa-watch.db |
Database |
Confidential |
Platform Engineering |
OCI Block Storage (encrypted) |
Active + 90 days post-deletion |
Secure delete + OCI volume wipe |
2026-05 |
| User PII (email, username) |
Personal Data |
Confidential |
Security Lead |
africa-watch.db |
Active + 90 days |
Anonymised on deletion |
2026-05 |
| JWT signing secret |
Credential |
Confidential |
Platform Engineering |
OCI environment variable |
Rotate on suspected breach |
Overwrite env var |
2026-05 |
| Stripe API keys |
Credential |
Confidential |
Platform Engineering |
OCI environment variable |
Rotate annually or on breach |
Revoke via Stripe dashboard |
2026-05 |
| Brevo (Sendinblue) API key |
Credential |
Confidential |
Platform Engineering |
OCI environment variable |
Rotate annually |
Revoke via Brevo dashboard |
2026-05 |
| Tavily / OpenRouter API keys |
Credential |
Confidential |
Platform Engineering |
OCI environment variable |
Rotate annually |
Revoke via provider dashboard |
2026-05 |
| Platform source code |
Source Code |
Internal |
Platform Engineering |
GitHub (private repo) |
Indefinite |
N/A |
2026-05 |
| audit.log |
Log |
Internal |
Platform Engineering |
OCI filesystem |
30 days rolling |
Log rotation (overwrite) |
2026-05 |
| Request logs (PM2 stdout) |
Log |
Internal |
Platform Engineering |
OCI filesystem |
Until restart |
Lost on restart (known gap — A.12) |
2026-05 |
| Stripe customer / invoice data |
Payment Record |
Confidential |
Operations |
Stripe (PCI-DSS) |
Per Stripe retention policy |
Managed by Stripe |
2026-05 |
| User contact data (Brevo) |
Marketing Data |
Confidential |
Operations |
Brevo platform |
Active subscribers |
Unsubscribe / delete via Brevo |
2026-05 |
| SSH private key (OCI access) |
Credential |
Confidential |
Platform Engineering |
Secure local storage (not in repo) |
Rotate annually |
Revoke in OCI console |
2026-05 |
| Africa Watch logo, static assets |
Static Asset |
Public |
Platform Engineering |
GitHub + OCI filesystem |
Indefinite |
N/A |
2026-05 |