Core Concepts
Understanding these fundamental concepts will help you get the most out of FireBackup.
Organizations
An Organization is the top-level container for all your FireBackup resources. Think of it as your company or team workspace.
Key Points
- All resources (projects, backups, schedules) belong to an organization
- Organizations have members with different roles
- Billing and subscription plans are organization-level
- You can create multiple organizations for different purposes
Member Roles
| Role | Permissions |
|---|---|
| Owner | Full access, billing management, can delete organization |
| Admin | Manage projects, members, and settings |
| Member | View and create backups, cannot manage settings |
Projects
A Project represents a connected Firebase project within FireBackup.
Project Properties
- Name: Display name in FireBackup
- Firebase Project ID: The actual Firebase project identifier
- Collections: Firestore collections available for backup
- Connection Status: Whether FireBackup can currently access the project
Collection Selection
When you connect a Firebase project, you can choose which collections to include:
- All Collections: Back up everything (recommended for most cases)
- Selected Collections: Only back up specific collections
- Excluded Collections: Back up all except certain collections
For large databases, consider using Selected Collections to reduce backup time and storage costs.
Backups
A Backup is a point-in-time snapshot of your Firestore data.
Backup Types
| Type | Description | Use Case |
|---|---|---|
| Full Backup | Complete snapshot of all selected collections | Initial backup, disaster recovery |
| Incremental Backup | Only changes since last backup | Daily/regular backups |
Backup Lifecycle
Backup Metadata
Each backup stores:
- Timestamp: When the backup was created
- Duration: How long the backup took
- Size: Original and compressed sizes
- Collections: Which collections were included
- Document Count: Total documents backed up
- Checksum: For integrity verification
Schedules
A Schedule defines when backups should run automatically.
Schedule Configuration
// Example schedule configuration
{
name: "Daily Production Backup",
project: "my-firebase-project",
cron: "0 2 * * *", // 2 AM daily
timezone: "America/New_York",
retention: 30, // Keep for 30 days
type: "incremental",
collections: ["users", "orders", "products"],
notify: {
onSuccess: true,
onFailure: true
}
}
Cron Expression Examples
| Schedule | Cron Expression | Description |
|---|---|---|
| Daily at 2 AM | 0 2 * * * | Runs once per day |
| Every 6 hours | 0 */6 * * * | Runs 4 times daily |
| Weekly on Sunday | 0 0 * * 0 | Runs once per week |
| Monthly on 1st | 0 0 1 * * | Runs once per month |
Retention Policies
Retention determines how long backups are kept:
- Days: Delete backups older than X days
- Count: Keep only the last X backups
- None: Never auto-delete (manual cleanup required)
Point-in-Time Recovery (PITR)
PITR enables recovery to any moment in time, not just backup snapshots.
How PITR Works
- Change Capture: FireBackup monitors your Firestore for changes
- Change Windows: Changes are grouped into time windows (default: 5 minutes)
- Storage: Change data is stored efficiently with deduplication
- Recovery: Restore to any timestamp within the retention period
PITR vs Regular Backups
| Feature | Regular Backup | PITR |
|---|---|---|
| Recovery Points | Specific snapshots | Any moment in time |
| Storage Usage | Lower | Higher |
| CPU/Memory | Lower | Higher |
| Best For | Disaster recovery | Data corruption, accidents |
PITR requires more resources and storage. Enable it only for projects that need fine-grained recovery.
Storage Destinations
Storage Destinations are where your backup data is stored.
Supported Providers
| Provider | Features |
|---|---|
| AWS S3 | Most popular, global availability |
| Google Cloud Storage | Native for Google ecosystem |
| Digital Ocean Spaces | Cost-effective, simple setup |
Storage Configuration
Each storage destination includes:
- Provider: AWS S3, GCS, or DO Spaces
- Credentials: Access keys or service account
- Bucket: Target bucket name
- Region: Geographic region
- Path Prefix: Optional folder prefix for organization
Data Security
All data stored in your destinations is:
- Encrypted: AES-256-GCM before upload
- Compressed: Brotli compression (typically 70-90% reduction)
- Integrity-Protected: SHA-256 checksums
Encryption
FireBackup uses AES-256-GCM encryption for all backup data.
Encryption Flow
Key Management
- Platform-Managed Keys: FireBackup manages encryption keys (default)
- Customer-Managed Keys: Bring your own encryption keys (Enterprise)
API & Webhooks
API Access
All FireBackup features are available via REST API:
# List backups
curl -X GET https://api.firebackup.io/api/v1/backups/project/{projectId} \
-H "Authorization: Bearer {token}" \
-H "X-Organization-Id: {orgId}"
Webhooks
Receive notifications for backup events:
{
"event": "backup.completed",
"timestamp": "2025-01-15T02:00:00Z",
"data": {
"backupId": "backup-123",
"projectId": "project-456",
"status": "completed",
"duration": 45,
"size": 1024000
}
}
Next: First Backup Tutorial - Create your first backup step by step.