- BackupDestination model + backup_destination_service (SFTP via paramiko,
S3-compatible via boto3): upload/list/download/delete/test.
- routers/destinations.py: destinations CRUD (secrets masked, merge-on-update),
test, list/delete remote backups. backups.py: POST /{id}/backup/push and
POST /restore-from (download from a destination + restore, volumes included).
- Frontend: Settings → Backup destinations (SFTP/S3 forms + test); Backup dialog
can push to a destination; Restore dialog can pick a destination + backup.
- deps: paramiko 3.5.0, boto3 1.35.99.
Verified end-to-end against live MinIO + atmoz/sftp: create/test destinations,
push (incl. volumes), list, restore-from to a fresh stack (volume data intact),
delete remote backup.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
452 B
Python
14 lines
452 B
Python
"""SQLModel table models. Importing this package registers all tables."""
|
|
from models.agent import Agent
|
|
from models.audit import AuditLog
|
|
from models.backup_destination import BackupDestination
|
|
from models.setting import Setting, Webhook
|
|
from models.stack import Stack
|
|
from models.template import Template
|
|
from models.user import User
|
|
|
|
__all__ = [
|
|
"User", "Stack", "AuditLog", "Template", "Setting", "Webhook", "Agent",
|
|
"BackupDestination",
|
|
]
|