Skip to content

feat: add @transloadit/notify-url-relay package#356

Merged
kvz merged 7 commits intomainfrom
feat/notify-url-proxy-package
Mar 4, 2026
Merged

feat: add @transloadit/notify-url-relay package#356
kvz merged 7 commits intomainfrom
feat/notify-url-proxy-package

Conversation

@kvz
Copy link
Member

@kvz kvz commented Mar 4, 2026

Summary

  • add a new @transloadit/notify-url-relay workspace package under packages/notify-url-relay
  • migrate the modernized notify relay implementation (native fetch forwarding, polling queue, retry logic, metrics hooks, CLI/TUI)
  • rename package/docs/CLI surface from notify-url-proxy to notify-url-relay
  • fix forwarding of transparently decoded compressed responses by dropping stale content-encoding/content-length headers
  • force upstream request accept-encoding: identity to reduce decompression/header mismatches
  • add a regression test for compressed upstream payload forwarding
  • wire monorepo checks/tests to include this package (lint:ts, test:unit) and add a dedicated knip workspace config
  • add a changeset for initial package release and run the package real API e2e test in trusted CI runs

Validation

  • corepack yarn check
  • corepack yarn workspace @transloadit/notify-url-relay test:unit
  • corepack yarn workspace @transloadit/notify-url-relay test:real (skips locally without secrets)

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d2ebe480cf

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +544 to +549
for (const [name, value] of upstreamResponse.headers) {
const headerName = name.toLowerCase()
if (HOP_BY_HOP_HEADERS.has(headerName) || headerName === 'set-cookie') {
continue
}
response.setHeader(name, value)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Drop encoding headers when forwarding decompressed fetch body

In pipeForwardResponse, this loop copies upstream response headers verbatim before streaming upstreamResponse.body, but Node's fetch transparently decodes gzip/br while still exposing original content-encoding and compressed content-length. Forwarding those headers with a decoded body causes downstream clients to mis-decode or abort (for example, gzip decode failures/terminated responses) whenever the target returns compressed payloads, which can break normal proxy traffic to compression-enabled endpoints.

Useful? React with 👍 / 👎.

@kvz kvz changed the title feat: add @transloadit/notify-url-proxy package feat: add @transloadit/notify-url-relay package Mar 4, 2026
@kvz kvz merged commit dc0def8 into main Mar 4, 2026
10 checks passed
@kvz kvz deleted the feat/notify-url-proxy-package branch March 4, 2026 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant