Skip to content

FrameOS Cloud 3/4: scene and frame config backups#265

Open
mariusandra wants to merge 2 commits into
cloud-loginfrom
cloud-config-backups
Open

FrameOS Cloud 3/4: scene and frame config backups#265
mariusandra wants to merge 2 commits into
cloud-loginfrom
cloud-config-backups

Conversation

@mariusandra

Copy link
Copy Markdown
Collaborator

Summary

Part 3 of the FrameOS Cloud stack (on top of the linking and login PRs; #257 with the store + cloud drive sits on top of this).

  • Push scenes (as the template interchange zip) and sanitized frame configs to the linked provider, and restore either from the settings page. Local machine credentials (SSH, TLS, admin auth, wifi/agent secrets, deploy snapshots) are stripped; app API keys and configured upload headers are intentionally retained so restored scenes keep working
  • The backup scopes come with every cloud account, but nothing is uploaded until the matching local switch is on (backup_scenes_enabled / backup_frames_enabled, + migration)
  • Automatic frame backup after every successful deploy, driven by the update_frame broadcast in the cloud sync worker; durable last_cloud_backup_deploy_at tracking (+ migration) so a worker restart neither re-uploads every frame nor loses a failed upload
  • "Back up now" + backup listing/restore in the cloud settings section
  • templates.py: the template zip build/parse refactor shared with the backup payloads; exports now record the FrameOS version they were made with

Test plan

  • pytest test_cloud_backups.py app/cloud/tests/test_sync.py test_templates.py + the earlier cloud suites — 60 passed (full backend suite: 780 passed)
  • Both frontend builds pass

🤖 Generated with Claude Code

Phase 3 of CLOUD-TODO.md, on top of the link and cloud login:

- Push scenes (as the template interchange zip) and sanitized frame configs
  to the linked provider; restore either from the settings page. Local
  machine credentials (SSH, TLS, admin auth, wifi/agent secrets) are
  stripped; app API keys are intentionally retained so restored scenes keep
  working
- The backup scopes come with every cloud account, but nothing is uploaded
  until the matching local switch is turned on (backup_scenes_enabled /
  backup_frames_enabled + migration)
- Automatic frame backup after every successful deploy, driven by the
  update_frame broadcast in the cloud sync worker; durable
  last_cloud_backup_deploy_at tracking (+ migration) so a worker restart
  neither re-uploads everything nor loses failed uploads
- Local tarball export of all templates stays available without a link
- templates.py: template zip build/parse refactor shared with the backup
  payloads, and exports now record the FrameOS version they were made with

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant