Features
MSR Firebase is a production-ready migration framework for Firebase Realtime Database with powerful features for safe, reliable database migrations.
Table of Contents
- Complete Features List
- Firebase-Specific Features
- Migration Execution
- Migration Locking (v0.2.0+)
- Safety & Rollback
- CLI Features
- Library Features
- Data Services
- Configuration & Flexibility
- Developer Experience
- Features by Category
- π₯ Firebase Native Features
- π Migration Locking (Production Ready)
- πΎ Backup & Restore
- π‘οΈ Type Safety & Developer Experience
- π¦ CLI & Library
- π Migration Management
- π Validation & Quality
- π Data Services
- π Production Features
- π³ Platform Support
- Quick Feature Comparison
- What Makes MSR Firebase Different?
- Built for Firebase Realtime Database
- Production-Ready Locking
- Library-First Design
- Type-Safe Migrations
- Getting Started
- Feature Highlights by Version
- v0.2.0 (Current - Unstable)
- v0.1.x (Stable)
Complete Features List
Firebase-Specific Features
Migration Execution
Migration Locking (v0.2.0+)
Safety & Rollback
CLI Features
Library Features
Data Services
Configuration & Flexibility
Developer Experience
Features by Category
π₯ Firebase Native Features
| Feature | Description |
| π₯ Firebase Realtime Database | Native support for Firebase Admin SDK with full API access |
| π Single-Node Transactions | Atomic operations via Firebaseβs ref.transaction() for safe concurrent updates |
| π― Path Prefixing | Multi-environment support with automatic path shifting (production/, staging/, etc.) |
| π§ͺ Emulator Support | Test migrations locally with Firebase Emulator before production deployment |
| π Flexible Authentication | Service account key file or Application Default Credentials |
| π Connection Testing | Built-in command to verify database connectivity and credentials |
π Migration Locking (Production Ready)
| Feature | Description |
| π Database-Level Locking | Prevent concurrent migrations across multiple instances using Firebase atomic operations |
| βΈοΈ Kubernetes Compatible | Safe migrations in multi-pod deployments with automatic lock management |
| π³ Docker Support | Works seamlessly with Docker Swarm and Docker Compose multi-replica setups |
| β±οΈ Automatic Expiration | Configurable lock timeouts (default 10 minutes) with automatic cleanup |
| π₯οΈ Lock Management CLI | lock:status and lock:release commands for production troubleshooting |
| π‘οΈ Two-Phase Locking | Lock ownership verification prevents race conditions and ensures safety |
πΎ Backup & Restore
| Feature | Description |
| πΎ Automatic Backups | Create JSON backups of Firebase database before migrations |
| π Multiple Backup Modes | Choose from full database, incremental, or no backup based on your needs |
| π Point-in-Time Restore | Restore database from any previous backup with single command |
| π Backup Management | List available backups with timestamps and metadata |
| ποΈ Compressed Storage | Efficient JSON format with optional compression |
| π― Selective Backup | Backup only affected paths or entire database |
π‘οΈ Type Safety & Developer Experience
| Feature | Description |
| π TypeScript First | Full TypeScript support with generic type parameters |
| π― Database Type Safety | IFirebaseDB interface provides IDE autocomplete and compile-time checks |
| π§© Generic Migrations | Type-safe migration classes with IRunnableScript<IFirebaseDB> |
| π¦ Entity Service | Generic EntityService<T> for type-safe CRUD operations |
| π IntelliSense Support | Full IDE support with method signatures and parameter hints |
| β
Compile-Time Checks | Catch errors before runtime with TypeScript compiler |
π¦ CLI & Library
| Feature | Description |
| π₯οΈ Complete CLI | msr-firebase command with all migration operations |
| π§ Programmatic API | Use as library in Node.js applications with FirebaseRunner |
| βοΈ Flexible Configuration | Environment variables, config files, or inline CLI flags |
| π Structured Results | Library mode returns result objects instead of process.exit() |
| π¨ Output Formats | Table, JSON, or silent output for different use cases |
| π Environment Detection | Automatic detection of .env files and environment variables |
π Migration Management
| Feature | Description |
| π Version-Based Naming | Timestamp-based migration files (e.g., V202501010001_create_users.ts) |
| β¬οΈ Up Migrations | Apply migrations to update database schema and data |
| β¬οΈ Down Migrations | Reverse migrations with down() methods for rollback |
| π Migration Status | List all migrations with applied/pending status |
| π― Target Version | Migrate to specific version or roll back to earlier state |
| β
Checksum Validation | Detect unauthorized changes to executed migrations |
π Validation & Quality
| Feature | Description |
| β
Pre-Migration Validation | Validate all migrations before execution to catch issues early |
| π Duplicate Detection | Prevent timestamp collisions and duplicate migration files |
| π Structure Validation | Ensure migrations follow required naming and structure conventions |
| β οΈ Connection Validation | Verify Firebase connectivity before attempting migrations |
| π‘οΈ Checksum Verification | Detect modifications to previously executed migrations |
π Data Services
| Feature | Description |
| ποΈ EntityService | Type-safe CRUD operations: create, read, update, delete, list with generic types |
| π FirebaseDataService | Low-level Firebase operations with transaction support |
| π Atomic Operations | Use Firebase transactions for safe concurrent updates |
| π¦ Batch Operations | Efficient multi-entity updates with single database call |
| π Pagination | Built-in limit and offset support for large collections |
| π Query Support | Firebase query operations with orderBy, limitToFirst, startAt |
π Production Features
| Feature | Description |
| π Distributed Locking | Safe concurrent migration prevention across all instances |
| πΎ Automatic Backups | Database backups before every migration run |
| π Progress Tracking | Real-time progress for long-running migrations |
| π― Zero Downtime | Non-blocking migrations with proper transaction handling |
| π Execution History | Complete audit trail of all migrations with timestamps |
| π‘οΈ Error Recovery | Automatic rollback on failure with backup restore |
| Feature | Description |
| βΈοΈ Kubernetes | ConfigMaps and Secrets integration, safe multi-pod deployments |
| π³ Docker | Environment variable configuration, Docker Swarm/Compose support |
| βοΈ CI/CD Integration | GitHub Actions, GitLab CI, Jenkins - works in all pipelines |
| π₯οΈ Cross-Platform | Works on Linux, macOS, and Windows |
| π¦ npm Package | Easy installation: npm install @migration-script-runner/firebase |
| π Serverless Ready | Use in Cloud Functions, Lambda with proper initialization |
Quick Feature Comparison
Compare MSR Firebase features across different use cases:
| Use Case | Key Features |
| Development | Fast iteration, down() methods, Firebase Emulator, TypeScript support, local testing |
| CI/CD | Automated validation, checksum verification, environment variables, structured output |
| Production | Migration locking, automatic backups, error recovery, audit trails, lock management CLI |
| Kubernetes | Database-level locking, ConfigMap integration, multi-pod safety, automatic lock cleanup |
| Docker | Environment variables, Swarm support, replica safety, container-ready configuration |
| Serverless | Structured results, programmatic API, no process.exit(), quick initialization |
What Makes MSR Firebase Different?
Built for Firebase Realtime Database
Unlike generic migration tools, MSR Firebase is built specifically for Firebase:
- Native Firebase SDK integration - Full access to Firebase Admin SDK features
- Understands Firebase limitations - Clear documentation of single-node transaction constraints
- Firebase-specific helpers - EntityService, FirebaseDataService for common patterns
- Emulator support - Test migrations locally before production
- Path prefixing - Built-in multi-environment support
Production-Ready Locking
First Firebase migration tool with proper distributed locking:
- Database-level locks - Uses Firebase atomic operations, not file locks
- Kubernetes-tested - Safe for multi-pod deployments
- Automatic expiration - Configurable timeouts prevent stuck locks
- CLI management - Force-release locks when needed
- Two-phase verification - Ownership checks prevent race conditions
Library-First Design
Unlike most migration tools, MSR Firebase returns structured results:
- Safe to use in web servers (Express, Fastify, NestJS)
- Works in serverless functions (Cloud Functions, Lambda)
- No unexpected
process.exit() calls - Full error details in return values
- Perfect for application integration
Type-Safe Migrations
Full TypeScript support throughout:
- Generic type parameters for database operations
- IDE autocomplete for all methods
- Compile-time error detection
- Type-safe EntityService with generics
- No casting or type assertions needed
Getting Started
Ready to use these features? Start here:
Feature Highlights by Version
v0.2.0 (Current - Unstable)
β οΈ Unstable Version: v0.2.0 is currently under active development and not recommended for production use.
- π Migration Locking - Database-level locking for distributed environments (Kubernetes, Docker, multi-instance)
- β¬οΈ MSR Core v0.8.1 - Latest core with bug fixes, handler access API, and improved locking lifecycle
- π§ Type-Safe API - Full TypeScript support with generic type parameters throughout
- π₯οΈ Lock Management CLI -
lock:status and lock:release commands for production lock management - π Comprehensive Documentation - Complete restructure with CLI/Library/Writing Migrations sections
- π¨ Professional Site - Favicon, Key Features cards, improved navigation
v0.1.x (Stable)
- β¨ Core Migration Engine - Basic up/down migration execution
- π₯ Firebase Integration - Firebase Admin SDK integration with service account authentication
- πΎ Backup & Restore - Automatic JSON backups with restore capability
- π¦ EntityService - Type-safe CRUD operations helper
- π₯οΈ Complete CLI -
msr-firebase command with all standard operations - π TypeScript Support - Full type safety with interfaces and generics
- π§ͺ Emulator Support - Firebase Emulator testing workflow
- β
Checksum Validation - Detect modified migrations
- π― Path Prefixing - Multi-environment database support with shift configuration
