Part of the parity effort tracked in #600.
Goal
Implement sentry proguard upload to upload Android ProGuard/R8 mapping files, matching legacy sentry-cli proguard upload / upload-proguard.
Companion to sentry proguard uuid (filed/implemented separately) which computes the deterministic mapping UUID.
Scope
sentry proguard upload <path>... — upload one or more mapping files via the chunk-upload + assemble protocol.
- Each mapping is bundled with name
/proguard/<uuid>.txt where <uuid> is the content-checksum UUID.
- Flags from legacy CLI to consider:
--uuid (force UUID), --no-upload, --require-one, --no-reprocessing, project/org targeting.
Technical notes
- The UUID is
uuidv5(uuidv5(NAMESPACE_DNS, "guardsquare.com"), <raw file bytes>) — verified byte-for-byte against the legacy CLI and the rust-proguard crate. Reuse the helper from src/lib/proguard.ts (added with proguard uuid).
- Reuse the artifact-bundle + chunk-upload infrastructure in
src/lib/api/sourcemaps.ts (getChunkUploadOptions, buildArtifactBundle, hashChunks, assemble flow). The assemble endpoint differs for proguard — confirm the correct endpoint.
- Pure TS, no native deps (mapping files are plain text).
Effort
Medium (2-3 days).
Part of the parity effort tracked in #600.
Goal
Implement
sentry proguard uploadto upload Android ProGuard/R8 mapping files, matching legacysentry-cli proguard upload/upload-proguard.Companion to
sentry proguard uuid(filed/implemented separately) which computes the deterministic mapping UUID.Scope
sentry proguard upload <path>...— upload one or more mapping files via the chunk-upload + assemble protocol./proguard/<uuid>.txtwhere<uuid>is the content-checksum UUID.--uuid(force UUID),--no-upload,--require-one,--no-reprocessing, project/org targeting.Technical notes
uuidv5(uuidv5(NAMESPACE_DNS, "guardsquare.com"), <raw file bytes>)— verified byte-for-byte against the legacy CLI and therust-proguardcrate. Reuse the helper fromsrc/lib/proguard.ts(added withproguard uuid).src/lib/api/sourcemaps.ts(getChunkUploadOptions,buildArtifactBundle,hashChunks, assemble flow). The assemble endpoint differs for proguard — confirm the correct endpoint.Effort
Medium (2-3 days).