ref: move the rest of NOSTORE options to django settings#117136
Merged
Conversation
a8f5cd5 to
1306a21
Compare
Promote system.logging-format into the SENTRY_LOGGING_FORMAT Django setting through options_mapper: declare the setting as DEAD in server.py so bootstrap doesn't clobber the option, keep the registered default, and keep SENTRY_LOG_FORMAT as an env override. SENTRY_OPTIONS["system.logging-format"] keeps working. Co-Authored-By: Claude <noreply@anthropic.com>
Move system.base-hostname, system.organization-base-hostname, system.organization-url-template, and system.region-api-url-template to SENTRY_* Django settings via options_mapper (settings declared DEAD, options kept registered). Consumers read settings; SENTRY_OPTIONS config still works. Co-Authored-By: Claude <noreply@anthropic.com>
…tings Move intercom.sentry-api-secret, relay.static_auth, objectstore.config, and viewer-context.enabled to SENTRY_* Django settings via options_mapper (settings declared DEAD, options kept registered). Consumers read settings; tests use override_settings. SENTRY_OPTIONS config still works. Co-Authored-By: Claude <noreply@anthropic.com>
Move analytics.backend, analytics.options, and mail.list-namespace to SENTRY_* Django settings via options_mapper. These are read at module import; verified the values are promoted before the modules load (analytics backend resolves to 'noop', not the DEAD sentinel). SENTRY_OPTIONS config still works. Co-Authored-By: Claude <noreply@anthropic.com>
Move the 8 filestore.* options (region/relocation/profiles/control backend + options) to SENTRY_*_FILE_STORAGE_BACKEND / *_CONFIG settings via options_mapper. The SENTRY_*_FILE_STORAGE_* namespace avoids colliding with the SENTRY_FILESTORE* env vars ops uses as inputs (and with the legacy SENTRY_FILESTORE settings, whose apply_legacy_settings bridge still feeds the option, which promotes to the new setting). Also annotate the DEAD bootstrap sentinel as 'DEAD: Any' so settings-backed options type as Any (matching options.get) instead of object, fixing mypy errors across the migrated consumers. Co-Authored-By: Claude <noreply@anthropic.com>
1306a21 to
a1daa87
Compare
Contributor
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5342e5e. Configure here.
apply_legacy_settings runs after bootstrap_options, so writing the legacy value into SENTRY_OPTIONS[key] was too late for keys whose consumers now read the Django setting (e.g. SENTRY_FILESTORE -> filestore.backend -> SENTRY_FILE_STORAGE_BACKEND, which get_storage() reads). The override landed in SENTRY_OPTIONS but never reached the setting, so the boot default silently won. Re-promote the value via options_mapper after writing the option. Also pre-arms the SENTRY_ADMIN_EMAIL and GOOGLE_CLIENT_ID/SECRET legacy aliases for when those options migrate. Co-Authored-By: Claude <noreply@anthropic.com>
markstory
approved these changes
Jun 12, 2026
markstory
left a comment
Member
There was a problem hiding this comment.
Looks good to me. The extra layer of settings shims is 😵.
wedamija
approved these changes
Jun 12, 2026
kenzoengineer
approved these changes
Jun 12, 2026
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.

followup to #117102 which has been proven. again, this will go through the same 3-stage rollout:
smoke test that this is still compatible (thanks to options_mapper) with getsentry master: