feat(snapshots): Follow the server-selected objectstore usecase - #3408
Open
NicoHinderling wants to merge 5 commits into
Open
NicoHinderling wants to merge 5 commits into
NicoHinderling wants to merge 5 commits into
Conversation
Contributor
|
NicoHinderling
marked this pull request as ready for review
September 11, 2026 21:02
NicoHinderling
requested review from
a team and
szokeasaurusrex
as code owners
September 11, 2026 21:02
Contributor
Author
|
Closing: the server side will move size-analysis content to a separate objectstore usecase instead, so snapshots keep using preprod and no CLI change is needed. |
Request usecase=auto so the server picks the usecase from its own config, leaving future usecase changes entirely server-side.
Exercise authenticated batch checks and uploads for preprod_snapshots and preprod, including the legacy response without a usecase. Keep the changelog entry unreleased.
NicoHinderling
force-pushed
the
feat/snapshots-objectstore-usecase
branch
from
September 14, 2026 18:28
3990dab to
2053b7d
Compare
pull Bot
pushed a commit
to BoomchainLabs/sentry
that referenced
this pull request
Sep 14, 2026
…etsentry#124194) Prepares snapshot storage to move from the shared `preprod` Objectstore usecase into `preprod_snapshots`. This PR registers the new usecase and adds cross-usecase reads, HEAD checks, and deletes through `SnapshotStorage`. Writes remain on `preprod`, so this deploy does not move stored content or change the write destination. The fallback metric records when reads use the secondary usecase. The upload-options endpoint also accepts `usecase=auto` and echoes the chosen usecase in its response. Requests without the parameter keep receiving `preprod` tokens for compatibility with existing CLI releases. getsentry/sentry-cli#3408 and getsentry/cli#1587 opt into this contract; getsentry#124210 adds the default-off option that selects `preprod_snapshots` for new writes. Register `preprod_snapshots` in the Objectstore service configuration **before deploying this prerequisite**: fallback reads may access it whenever an object is missing from `preprod`. Deploy the backend stack fully before enabling the write-selection option. No content-copy migration is required; existing uploads remain readable through the fallback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Snapshot uploads now request
usecase=autoand build their Objectstore session from the usecase returned by the server rather than hardcodingpreprod. Both batched HEAD checks and image uploads use that session, keeping their paths aligned with the minted token. This lets the backend move new snapshot content intopreprod_snapshotswithout another CLI change.Servers that omit the response field default to
preprod, so existing Sentry versions retain their current behavior. The integration coverage exercises actual upload-options requests, authenticated Objectstore batches, and snapshot creation forpreprod_snapshots, explicitpreprod, and an omitted usecase. Object keys stay unchanged; the first upload after a usecase switch re-uploads images once because deduplication is scoped by usecase.Pairs with getsentry/sentry#124194 (cross-usecase reads and the upload-options contract) and getsentry/sentry#124210 (default-off write selection). getsentry/cli#1587 implements the same contract in the replacement CLI; both clients are being updated. Register
preprod_snapshotsin Objectstore before deploying the backend prerequisite and enable the option only after the backend rollout. Older CLI releases keep writing topreprodand remain readable through fallback reads.