Skip to content

Conversation

@universe-ops
Copy link
Contributor

Summary

Implemented comprehensive backup configuration enhancements for MongoDB Atlas resources, enabling sophisticated enterprise-grade backup strategies while maintaining Simple Container's philosophy of intuitive configuration.

Changes Made

🔧 Advanced Multi-Tier Backup Schedules

  • Added support for complex backup policies with multiple retention tiers
  • Enables the requested enterprise backup strategy:
    • Hourly snapshots: Every 1 hour (retained 2 days)
    • Daily snapshots: Every day (retained 35 days)
    • Weekly snapshots: Every week (retained 8 weeks)
    • Monthly snapshots: 1st of month (retained 6 months)
  • Point-in-Time Recovery configuration with continuous oplog streaming

📝 Intuitive Field Names

  • Simplified configuration syntax for better clarity:
    • frequencyIntervalevery (e.g., every: 1)
    • retentionValueretainFor (e.g., retainFor: 35)
    • retentionUnitunit (optional with smart defaults)

🧠 Smart Unit Inference

  • Automatic unit defaults based on backup type context:
    • Hourly/Daily backups: Default to "days"
    • Weekly backups: Default to "weeks"
    • Monthly backups: Default to "months"
  • Users can override with explicit unit field if needed

🔒 Security Documentation

  • Researched and documented MongoDB Atlas backup encryption
  • Confirmed Atlas encrypts all backups automatically by default
  • Added security information to user documentation

Configuration Examples

Before (Basic):

backup:
  every: 4h
  retention: 24h

After (Advanced):

backup:
  advanced:
    hourly:
      every: 1
      retainFor: 2
    daily:
      every: 1  
      retainFor: 35
    weekly:
      every: 1
      retainFor: 8
    monthly:
      every: 1
      retainFor: 6
    pointInTimeRecovery:
      enabled: true
      oplogSizeGB: 2.0

Technical Implementation

Files Modified:

  • pkg/clouds/mongodb/mongodb.go - Enhanced type definitions
  • pkg/clouds/pulumi/mongodb/cluster.go - Multi-tier backup logic with helper functions
  • docs/schemas/mongodb/atlasconfig.json - Updated JSON schema validation
  • docs/docs/reference/supported-resources.md - Comprehensive documentation and examples

Backwards Compatibility:

  • Existing simple backup configurations continue to work unchanged
  • Enhanced validation ensures either basic OR advanced configuration (not both)

Quality Assurance:

  • All builds passing (welder run fmt clean)
  • Comprehensive JSON schema validation
  • Smart defaults eliminate configuration complexity
  • Provider compatibility verified

Benefits

  • Enterprise-ready: Supports complex multi-tier backup strategies
  • User-friendly: Intuitive field names (every, retainFor)
  • Automated: Smart defaults reduce configuration overhead
  • Secure: Automatic backup encryption documented
  • Flexible: Can mix different backup tiers as needed
  • Compatible: Maintains full backwards compatibility

This enhancement transforms MongoDB Atlas backup configuration from basic single-tier schedules into a sophisticated, enterprise-grade backup system while preserving Simple Container's ease-of-use principles.

@universe-ops universe-ops requested review from Cre-eD and smecsia January 6, 2026 14:01
@universe-ops universe-ops merged commit e8ada5f into main Jan 6, 2026
2 checks passed
@universe-ops universe-ops deleted the staging branch January 6, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants