Disaster Recovery
Disaster Recovery protocol schemas
Backup Strategy Schema
Defines backup methods for disaster recovery.
-
full: Complete snapshot of all data
-
incremental: Only changes since last backup
-
differential: All changes since last full backup
@example
const backup: BackupConfig = \{
strategy: 'incremental',
schedule: '0 2 * * *',
retention: \{ days: 30, minCopies: 3 \},
encryption: \{ enabled: true, algorithm: 'AES-256-GCM' \},
\};Source: packages/spec/src/system/disaster-recovery.zod.ts
TypeScript Usage
import { BackupConfig, BackupRetention, BackupStrategy, DisasterRecoveryPlan, FailoverConfig, FailoverMode, RPO, RTO } from '@objectstack/spec/system';
import type { BackupConfig, BackupRetention, BackupStrategy, DisasterRecoveryPlan, FailoverConfig, FailoverMode, RPO, RTO } from '@objectstack/spec/system';
// Validate data
const result = BackupConfig.parse(data);BackupConfig
Backup configuration
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| strategy | Enum<'full' | 'incremental' | 'differential'> | ✅ | Backup strategy |
| schedule | string | optional | Cron expression for backup schedule (e.g., "0 2 * * *") |
| retention | Object | ✅ | Backup retention policy |
| destination | Object | ✅ | Backup storage destination |
| encryption | Object | optional | Backup encryption settings |
| compression | Object | optional | Backup compression settings |
| verifyAfterBackup | boolean | ✅ | Verify backup integrity after creation |
BackupRetention
Backup retention policy
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| days | number | ✅ | Retention period in days |
| minCopies | number | ✅ | Minimum backup copies to retain |
| maxCopies | number | optional | Maximum backup copies to store |
BackupStrategy
Backup strategy type
Allowed Values
fullincrementaldifferential
DisasterRecoveryPlan
Complete disaster recovery plan configuration
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | ✅ | Enable disaster recovery plan |
| rpo | Object | ✅ | Recovery Point Objective |
| rto | Object | ✅ | Recovery Time Objective |
| backup | Object | ✅ | Backup configuration |
| failover | Object | optional | Multi-region failover configuration |
| replication | Object | optional | Data replication settings |
| testing | Object | optional | Automated disaster recovery testing |
| runbookUrl | string | optional | URL to disaster recovery runbook/playbook |
| contacts | Object[] | optional | Emergency contact list for DR incidents |
FailoverConfig
Failover configuration
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| mode | Enum<'active_passive' | 'active_active' | 'pilot_light' | 'warm_standby'> | ✅ | Failover mode |
| autoFailover | boolean | ✅ | Enable automatic failover |
| healthCheckInterval | number | ✅ | Health check interval in seconds |
| failureThreshold | number | ✅ | Consecutive failures before failover |
| regions | Object[] | ✅ | Multi-region configuration (minimum 2 regions) |
| dns | Object | optional | DNS failover settings |
FailoverMode
Failover mode
Allowed Values
active_passiveactive_activepilot_lightwarm_standby
RPO
Recovery Point Objective (maximum acceptable data loss)
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| value | number | ✅ | RPO value |
| unit | Enum<'seconds' | 'minutes' | 'hours'> | ✅ | RPO time unit |
RTO
Recovery Time Objective (maximum acceptable downtime)
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| value | number | ✅ | RTO value |
| unit | Enum<'seconds' | 'minutes' | 'hours'> | ✅ | RTO time unit |