init: finish source map setup before exposing it as a feature
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- typescript
- Domain
- build-system, ci-cd, cli, security
Research direction
Start by reviewing the current init feature handling described in the issue, then read blocker #1110 and PR #1112 before proposing implementation work. Treat the acceptance criteria as the definition of done: source maps must not be advertised prematurely, secrets must remain out of init and committed files, and production-build upload verification must be explicit.
Written by the indexing model from the issue text.
Description
Problem
sourceMaps is currently advertised by sentry init in its --features
help and documentation, while the init service deliberately removes it from
both interactive and CLI-preselected features.
Keeping it disabled is currently the correct behavior. A valid source map setup
requires more than changing bundler configuration:
- Production builds must emit source maps.
- A Sentry bundler plugin or
sentry sourcemap inject+uploadmust run in the
build that is actually deployed. - Upload requires a CI-safe Organization Auth Token with the
org:ciscope. - The token must be installed as
SENTRY_AUTH_TOKENin CI and must never pass
through the init server, LLM context, telemetry, or committed files. - Browser source maps should normally be hidden and deleted after upload.
Without that flow, init can produce configuration that looks complete while no
artifacts are ever uploaded.
Source maps are also a build/deployment concern, not a runtime product feature
like tracing, replay, or profiling. They should not appear as a peer option in
the feature picker.
Existing blocker
Token management is already tracked by #1110 and PR #1112.
The current organization-token management endpoints only accept browser session
authentication and explicitly reject Bearer authentication. The CLI therefore
cannot mint an Organization Auth Token using its stored OAuth token. This needs
a supported backend flow before it can be automated safely.
This issue should depend on #1110 rather than implementing another token
creation workaround.
Proposed UX
Until end-to-end setup is possible:
- Keep source maps out of the interactive feature list.
- Stop advertising
sourcemapsas a currently supported--featuresvalue. - The internal feature/schema value may remain for future planner work.
Once token provisioning is supported, offer source maps as an eligible
build-setup step for JavaScript projects rather than as a runtime feature.
Required setup flow
- Detect the framework, bundler, production output directory, and CI/build
configuration. - Prefer the official framework or bundler plugin.
- Fall back to
sentry sourcemap injectfollowed by
sentry sourcemap uploadfor custom builds. - Configure
SENTRY_ORGandSENTRY_PROJECT, while referencing
SENTRY_AUTH_TOKENonly through the environment. - Create an Organization Auth Token with
org:cithrough the future supported
token flow, or give the user a secure browser handoff. - Explain how to add the one-time token to the project's CI secret store.
- Use hidden source maps and delete browser maps after upload where supported.
- Verify using a production build and confirm that an artifact bundle reached
Sentry. - Do not require or invent a release. Modern Debug ID matching works without a
release; preserve existing release configuration when one already exists.
Acceptance criteria
- Source maps are not shown as supported before the complete flow exists.
- No token value is sent to the init API, an LLM, or telemetry.
- No token or usable placeholder secret is committed to the repository.
- Configuration is correct for the detected bundler/framework.
- Browser builds use hidden maps and avoid deploying
.mapfiles publicly. - CI-secret setup is explicit and actionable.
- A production-build verification checks the actual upload.
- Init does not report source maps as complete when token/CI setup remains.
- Release configuration remains optional with Debug IDs.
References
- Dominant language
- TypeScript
- Stars
- 121
- Forks
- 14
- Avg merge
- 23h 54m
- Merged PRs (30d)
- 103
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from getsentry/cli
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
bug jared
-
jared
Difficulty 4/5 3-5 days Newbie friendliness 52/100
Similar issues
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Mend: dependency security vulnerability untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 70/100