Skip to content

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

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

    Fields

    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