Skip to content

feat: add multi-destination backup support (FTP, SFTP, GDrive, OneDrive, Azure, B2, WebDAV)#1463

Open
tarai-dl wants to merge 1 commit intoCortexFlow-AI:canaryfrom
tarai-dl:fix/168-multi-destination-backup
Open

feat: add multi-destination backup support (FTP, SFTP, GDrive, OneDrive, Azure, B2, WebDAV)#1463
tarai-dl wants to merge 1 commit intoCortexFlow-AI:canaryfrom
tarai-dl:fix/168-multi-destination-backup

Conversation

@tarai-dl
Copy link
Copy Markdown

Summary

Adds support for multiple backup destination types beyond S3-compatible storage.

New Destination Types:

Type Credentials
S3 (existing) accessKey, secretAccessKey, bucket, region, endpoint
FTP host, port, username, password
SFTP host, port, username, password
Google Drive client_id, client_secret, OAuth token
OneDrive client_id, client_secret, OAuth token
Azure Blob account name, access key
Backblaze B2 account ID, application key
WebDAV URL, username, password

Implementation:

  • Schema: Added destinationType, host, port, username, password, token, configOptions fields to destination table
  • Utils: Added getRcloneFlags(destination) - generates rclone flags for any destination type
  • Utils: Added getRcloneDestPath(destination) - generates type-aware rclone destination path
  • Backward compatible: S3 destinations continue to work via existing getS3Credentials()

Usage (rclone):

All types use rclone under the hood. The new functions generate the appropriate rclone flags:

// FTP example
const flags = getRcloneFlags(destination);
// → ['--ftp-host="ftp.example.com"', '--ftp-port="21"', ...]

const destPath = getRcloneDestPath(destination);
// → ':ftp:/backups/'

Next Steps (follow-up PRs):

  • Database migration for new fields
  • UI form updates to show type-specific credential fields
  • Update all backup upload paths to use getRcloneFlags instead of hardcoded S3

Closes #168

/claim #168

…ve, Azure, B2, WebDAV)

- Extend destination schema with destinationType, host, port, username, password, token, configOptions
- Add getRcloneFlags() for all 8 destination types
- Add getRcloneDestPath() for type-aware rclone path generation
- Support: S3, FTP, SFTP, Google Drive, OneDrive, Azure Blob, Backblaze B2, WebDAV

Fixes CortexFlow-AI#168
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.

Ability to backup to more destination types

1 participant