Skip to content

Feature Request - Native Backup & Restore Management (Import/Export) #131

@wasfyelbaz

Description

@wasfyelbaz

Native Backup & Restore Management (Import/Export)

Description:
I’d like to request a new feature in Faction: a native, integrated capability within the UI and API to schedule, generate, download, and import system backups.

Use-case:
In many deployments, we need reliable disaster recovery and data portability. Currently, I have had to create my own custom OS-level bash scripts (backup-faction.sh and restore-faction.sh) to handle these backups via host cron jobs. However, we often have:

  • Administrators who need to manage backups without requiring SSH access to the host machine.
  • Scenarios where we need to quickly download a recent backup via the web interface.
  • Disaster recovery situations where we want to easily import an existing backup archive to restore the database, templates, and modules directly from the GUI.
  • The need for automated scheduling that is built into the application context rather than relying on external OS schedulers.

Since Faction extensions (FactionExtender) are purely event-driven and don't support custom APIs or background scheduled tasks, this functionality cannot be easily added via a plugin and needs to be natively supported.

Proposed Implementation:

  • Under the Admin menu, add a "System Backups" section where you can:
    • View a list of available backups, their sizes, and creation timestamps.
    • Click to "Generate Backup Now", "Download", or "Import/Restore" a backup archive.
    • Configure an automated backup schedule (e.g., daily/weekly).
  • On the backend, implement a Spring @Scheduled task to handle the automated backups internally.
  • Create REST API endpoints (/api/v1/backups) to handle the generation, listing, downloading, and importing of standardized backup archives (containing MongoDB BSONs, templates, and config metadata).

Benefits:

  • Drastically improves usability and the administrator experience by keeping backup management within the application GUI.
  • Eliminates the need for custom OS-level scripts and manual server access for routine maintenance.
  • Increases system resilience and disaster recovery readiness for all users.
  • Standardizes the import/export payload, making migrations between Faction instances significantly easier.

Happy to provide my custom bash scripts as a reference or collaborate if useful. Thanks for considering this feature!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions