Overview
This runbook defines backup and restore procedures for PensionsPortal.ie in compliance with DORA Art. 12 (ICT Business Continuity Policy) and GDPR Art. 32 (security of processing). It covers the Neon PostgreSQL database, Vercel Blob document storage, application code, and environment configuration.1. Backup Architecture Overview
2. RTO/RPO Targets (DORA Art. 12 Compliance)
These are conservative targets designed to be achievable even under adverse conditions. Neon’s point-in-time recovery typically allows an RPO of approximately 5 minutes on the Pro plan. Under normal conditions, recovery will be significantly faster than the RTO targets below.
3. Neon PostgreSQL Backup Details
Neon provides continuous backup without any manual configuration required.
To review current backup status:
- Log in to Neon Console
- Select the PensionsPortal.ie project
- Navigate to Branches → select the production branch
- The branch details panel shows the earliest available restore point
4. Manual Database Backup
Use this procedure when a point-in-time export is needed — for example, before a major migration, or for an audit/legal hold.The unencrypted dump file contains all member PII including encrypted PPS numbers. Delete it immediately after encrypting. Never store unencrypted database dumps on local machines, shared drives, or cloud storage without encryption.
5. Database Restore Procedure
Option A — Neon Console Restore (Recommended)
Use this for most recovery scenarios. Neon creates a new branch at the restore point, allowing verification before switching production traffic. Step 1 — Open the restore interface:- Log in to Neon Console
- Navigate to Project → Branches
- Select the
main(production) branch - Click Restore in the branch details panel
- Choose by timestamp (e.g., “restore to 2 hours ago”)
- Or select a named snapshot if one exists
- Neon creates a new branch at the selected point in time
- Note the new branch’s connection string
- In Vercel Dashboard → Project → Settings → Environment Variables
- Update
DATABASE_URLandDATABASE_URL_UNPOOLEDto the restored branch URLs - Redeploy the application
- Application loads and authentication works
- BrokerAdmin can view schemes and members
- PPS decryption works for a test member (confirms encryption key matches)
- Audit logs are being written
- Once satisfied, delete the old production branch in Neon Console
- Promote the restored branch to be the new production branch (or rename it)
Option B — Manual Restore from pg_dump
Use this if a custom dump was taken (Section 4) and needs to be restored.6. Configuration Backup (Manual — Run Monthly)
Vercel environment variable names (not their secret values) can be viewed in the dashboard. Secret values are never retrievable from Vercel after entry — they must be backed up externally. Procedure — run on the first business day of each month:- Open the company password manager (1Password / Bitwarden)
- Locate the “PensionsPortal.ie Production Secrets” vault entry
- Verify each of the following secrets is present, up to date, and matches what is deployed:
- After verifying, record the backup date in the password manager entry notes
- If any secret has been rotated since the last backup, update the password manager entry immediately
The configuration backup procedure should also be run immediately after any secret rotation (e.g., after an incident requiring key rotation). Do not wait for the monthly cycle in those cases.
7. Data Anonymisation Procedure (GDPR Art. 17 — Right to Erasure)
When a data subject (pension scheme member) submits a valid erasure request and no legal hold applies (note: pension records may be subject to a 7-year statutory retention period — verify with legal before proceeding):- Confirm the member record no longer displays any PII in the portal
- Confirm the audit log entry is present
- Notify the data subject that their erasure request has been fulfilled
- File correspondence in the DPO records (GDPR Art. 30)