Skip to content

Avoid hardcoding GitHub tarball URLs in dependencies — breaks private registry workflows #16311

Closed
@YashAggarwal21

Description

@YashAggarwal21

Problem Statement

Hi Sentry team 👋,

We’re running into issues due to a dependency introduced in @sentry/node@9.19.0 which references a GitHub tarball directly:
Reference PR - #16287

"@fastify/otel": "https://codeload.github.com/getsentry/fastify-otel/tar.gz/ae3088d65e286bdc94ac5d722573537d6a6671bb"

This causes real problems in environments like ours, where only private registries (e.g., AWS CodeArtifact) are allowed for security and compliance reasons.


Problem

Since this dependency is declared as a tarball URL:

  • npm and yarn bypass .npmrc registry settings.
  • The URL appears in package-lock.json, triggering CI validation errors like:
wrong registries appear in package-lock.json file:
https://codeload.github.com/getsentry/fastify-otel/tar.gz/...
  • The package cannot be fetched from our private registry, even though version @fastify/otel@0.8.0 exists there.
  • Our only workaround is to use overrides or resolutions, which we’d prefer to avoid.

Solution Brainstorm

Expected Behavior

We’d like to see Sentry declare the dependency as a semver range like:

"@fastify/otel": "^0.8.0"

This:

  • Respects .npmrc and private registries.
  • Still resolves the correct version.
  • Maintains security and reproducibility (e.g., you can pin @fastify/otel@0.8.0 in your lockfile).

Why This Matters

Many regulated environments prohibit installing packages from arbitrary URLs. Package managers like npm and yarn are designed to route semver-based dependencies through controlled registries, which allows:

  • Auditing
  • Mirror caching
  • Dependency tracking
  • Strict CI enforcement

Hardcoded tarball URLs break that model.

Ask

Would you consider:

  • Removing the tarball URL reference to @fastify/otel
  • Replacing it with a proper version (e.g., ^0.8.0)
  • Or publishing @fastify/otel to npm under the Sentry organization and referencing that

This small change would make Sentry easier to adopt in enterprise environments.

Thank you for the great work on the SDK!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Waiting for: Community

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions