Skip to content

Backup and Recovery Policy

Defines requirements for backing up and recovering Meridian Seven systems and data within defined recovery objectives.

All production systems, databases, and data stores supporting Meridian Seven services, including customer data, application configurations, and operational data.

ObjectiveTargetDefinition
RTO4 hoursMaximum time from incident to service restoration
RPO24 hoursMaximum acceptable data loss (worst case)

Targets apply to all critical systems. Non-critical systems may have relaxed targets documented in the system inventory.

ParameterValue
SystemSupabase PostgreSQL
MethodContinuous WAL archiving with Point-in-Time Recovery
FrequencyContinuous
Retention7 days
EncryptionAES-256 at rest
LocationSupabase managed infrastructure

Recovery: Supabase dashboard → Database → Backups → select timestamp → initiate PITR → verify integrity → update connection strings if new instance.

ParameterValue
SystemGoogle Workspace (Gmail, Drive, Calendar, Contacts)
MethodIncremental via Cube Backup
FrequencyDaily
Retention365 days
EncryptionAES-256 at rest, TLS in transit
LocationBackblaze B2 (US) via Cube Backup

Recovery: Cube Backup dashboard → locate user/file/mailbox → select backup point → restore → verify completeness.

ParameterValue
SystemFile and document storage
MethodVersioned object storage with lifecycle rules
FrequencyDaily sync
Retention90 days (versioned)
EncryptionAES-256 at rest, TLS in transit
LocationBackblaze B2 US

Recovery: Backblaze dashboard or b2 CLI → list versions → download → restore → verify integrity.

ParameterValue
SystemAll application source code
MethodGit distributed version control
FrequencyContinuous (every push)
RetentionFull history (indefinite)
EncryptionGitHub managed

Branch protection rules prevent force-push to main. Every clone is a full backup.

ParameterValue
SystemEnvironment variables, API keys, secrets
MethodVersioned config with audit log
FrequencyEvery change (versioned)
RetentionFull change history
EncryptionAES-256 at rest, TLS in transit

Any previous version can be restored instantly.

SystemMethodFrequencyRPORetention
PostgreSQL (Supabase)PITR / WALContinuousMinutes7 days
Google WorkspaceCube BackupDaily24 hours365 days
Object StorageBackblaze B2Daily24 hours90 days
Source CodeGitHub / GitContinuousMinutesIndefinite
Secrets / ConfigDopplerContinuousMinutesIndefinite
  • Failed backup alerts sent to Slack #ops; investigated within 4 hours
  • Weekly: verify backup jobs are on schedule, retention policies enforced, storage capacity reviewed — documented in Weekly Security Review GitHub issue
  • Quarterly restoration tests:
TestProcedureSuccess Criteria
Database restoreRestore Supabase PITR to test instanceData integrity verified, application connects
Google Workspace restoreRestore sample mailbox and Drive filesFiles and emails match expected content
File restoreRestore sample files from Backblaze B2File integrity verified via checksum

Restoration test results retained for audit: date, systems tested, recovery time, issues, remediation.

  1. Declare incident per Incident Response Plan
  2. Assess scope of data loss/corruption
  3. Initiate Supabase PITR to most recent clean point
  4. Verify data integrity; update application connections if needed
  5. Conduct post-incident review
  1. Check provider status page and estimated recovery time
  2. If RTO is at risk, initiate failover:
    • Cloud Run outage (web): DNS failover to static maintenance page via Cloudflare
    • Cloud Run outage (agents): Agent service is degraded; notify customers via status page
    • Supabase outage: Application enters read-only/degraded mode; await recovery or initiate PITR to alternate instance
  3. Communicate via GCP Cloud Monitoring status dashboard; document incident
  1. Isolate affected systems immediately
  2. Assess scope of compromise
  3. Do NOT pay ransom
  4. Restore from backups predating the compromise
  5. Rotate all credentials via Doppler
  6. Conduct full security investigation; report to law enforcement if appropriate
Data TypeRetentionDisposal Method
Production database backups7 days (PITR window)Automatic expiration
Google Workspace backups365 daysAutomatic expiration via Cube Backup
File storage backups90 days (versioned)Lifecycle rule expiration
Audit logs3 yearsSecure deletion
Incident records3 yearsSecure deletion
Financial records7 yearsSecure deletion
RoleResponsibility
CTOPolicy owner; approves DR procedures; owns quarterly restoration tests
CISOMonitors backup compliance; includes in security reviews
Engineering LeadAssists with restoration tests; maintains backup configurations
On-Call EngineerResponds to backup failure alerts; initiates DR procedures
  • Information Security Policy
  • Incident Response Plan
  • Data Classification Policy

Meridian Seven — Confidential