Skip to content

feat(client): regenerate for the backup encryption field removal - #177

Merged
jfrench9 merged 1 commit into
mainfrom
feature/backup-encryption-fields-removed
Aug 8, 2026
Merged

feat(client): regenerate for the backup encryption field removal#177
jfrench9 merged 1 commit into
mainfrom
feature/backup-encryption-fields-removed

Conversation

@jfrench9

@jfrench9 jfrench9 commented Aug 8, 2026

Copy link
Copy Markdown
Member

Regenerated against RoboFinSystems/robosystems#refactor/backup-drop-encryption-flag, which retires the backup encryption flag.

The flag never encrypted anything at the application layer — it only suppressed downloads, and because it defaulted to false, the default backup was unrestorable. Restore is now gated on graph type instead, and every completed backup is downloadable. Objects remain encrypted at rest with S3 SSE-AES256 and are served over TLS through short-lived signed URLs.

Contract changes

Model Change
BackupListResponse adds restore_supported: bool | Unset = True
BackupCreateRequest removes encryption
BackupResponse removes encryption_enabled, allow_export

restore_supported is false for entity graphs (materialized from the extensions database — use materialize) and for shared repositories (platform-managed, download-only).

Also picks up description edits in get_backup_download_url and restore_backup.

Versioning

Intended as a minor. Removing response fields breaks a consumer that reads them, which strict semver would call a major — but nothing reads them: the flag has no effect on any operation and allow_export was always its inverse. Called deliberately rather than carrying dead fields through a deprecation cycle.

An earlier regen widened encryption_enabled and allow_export from bool to bool | Unset — that would have been a genuine breaking read. Fixed upstream before this regen; the diff here is pure removals plus the one addition.

REST-only change, so schema.graphql is untouched and the codegen drift gate is unaffected.

Verification

just test-all — 519 passed, 17 skipped; ruff, ruff format, basedpyright all clean.

Merge after the upstream API PR.

Upstream retired the backup `encryption` flag. It never encrypted anything
at the application layer — it only suppressed downloads, and since it
defaulted to false the default backup was unrestorable. Restore is now
gated on graph type instead, and every completed backup is downloadable.

Contract changes:

- BackupListResponse gains `restore_supported`, true unless the graph is an
  entity graph (materialized from the extensions database) or a shared
  repository (platform-managed, download-only)
- BackupCreateRequest drops `encryption`
- BackupResponse drops `encryption_enabled` and `allow_export`

Objects remain encrypted at rest with S3 SSE-AES256 and are served over TLS
through short-lived signed URLs.

Removing response fields breaks a consumer that reads them, but nothing does:
the flag has no effect on any operation and `allow_export` was always its
inverse. Released as a minor by decision rather than carrying dead fields
through a deprecation cycle.
@jfrench9
jfrench9 merged commit fd35ea0 into main Aug 8, 2026
1 check passed
@jfrench9
jfrench9 deleted the feature/backup-encryption-fields-removed branch August 8, 2026 18:39
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