Skip to content

Releases: opennextjs/opennextjs-cloudflare

@opennextjs/cloudflare@1.20.2

Choose a tag to compare

@workers-frameworks workers-frameworks released this 21 Jul 17:40
da4b7fc

Patch Changes

  • #1312 38ea40b Thanks @james-elicx! - fix: handle encoded middleware and cache paths safely

    Upgrade @opennextjs/aws to prevent encoded paths from bypassing middleware matching or selecting partially decoded cache entries.

  • #1313 766eee9 Thanks @james-elicx! - chore: bump the Next.js peer dependency to 15.5.21 / 16.2.11

  • #1306 97ef330 Thanks @james-elicx! - fix: normalize Windows paths when patching the Turbopack runtime

    Ensure traced Turbopack chunks are included in the generated runtime loaders when builds run on Windows.

@opennextjs/cloudflare@1.20.1

Choose a tag to compare

@workers-frameworks workers-frameworks released this 26 Jun 10:32
1a70b33

Patch Changes

  • #1297 780a21c Thanks @james-elicx! - fix: disable response compression for skew protection API requests

    Avoid truncated compressed Cloudflare API responses causing worker version lookups to fail during deployment.

@opennextjs/cloudflare@1.20.0

Choose a tag to compare

@workers-frameworks workers-frameworks released this 25 Jun 08:40
127942d

Minor Changes

  • #1290 46c50fc Thanks @james-elicx! - feature: add opt-in batch upload via rclone for fast R2 cache population.

    Key Changes:

    1. Optional rclone Upload: Install the optional rclone.js peer dependency and pass --rclone to opt in to rclone based batch uploads.

      • R2_ACCESS_KEY_ID
      • R2_SECRET_ACCESS_KEY
      • CF_ACCOUNT_ID
    2. Explicit Opt-in: The existing worker-based population path remains the default. rclone is only loaded when --rclone is used for a remote cache.

    3. Clear Errors: The CLI reports missing credentials or a missing rclone.js installation when the option is used.

    Usage:

    Install rclone.js, then add the secrets in a .env/.dev.vars file in your project root:

    pnpm add rclone.js
    pnpm approve-builds # select rclone.js
    pnpm rebuild rclone.js
    R2_ACCESS_KEY_ID=your_key
    R2_SECRET_ACCESS_KEY=your_secret
    CF_ACCOUNT_ID=your_account
    
    opennextjs-cloudflare deploy --rclone

    You can also set the environment variables for CI builds.

    Notes:

Patch Changes

  • #1289 eef243f Thanks @thatssoheil! - fix: spread SQLite bindings in BucketCachePurge alarm so tag purges run

    BucketCachePurge.alarm() passed its tag bindings to SqlStorage.exec as a
    single array. exec(query, ...bindings) is variadic over its bindings, so for a
    multi-tag DELETE ... WHERE tag IN (?, ?, …) the binding count (1) disagreed
    with the placeholder count (N) and exec threw "Wrong number of parameter
    bindings" on every flush. On-demand revalidateTag purges therefore never
    reached the Cloudflare cache, and with bypassTagCacheOnCacheHit enabled pages
    served stale until the ISR TTL expired.

    Spread the bindings, normalise the INSERT to the same variadic form, and
    tighten the drain loop's guard from while (tags.length >= 0) (which never
    exits via the condition) to while (tags.length > 0).

  • #1291 51439b1 Thanks @james-elicx! - fix: disable response compression when provisioning R2 cache buckets

    Avoid truncated compressed Cloudflare API responses causing R2 cache bucket provisioning to fail.

@opennextjs/cloudflare@1.19.11

Choose a tag to compare

@workers-frameworks workers-frameworks released this 19 May 13:21
596f924

Patch Changes

  • #1270 802047e Thanks @alex-all3dp! - fix: skip non-upload-triggered worker versions when building skew-protection deployment mapping

    Worker versions created by metadata-only operations (e.g. Cloudflare API secret updates) do not include the static assets bundle. Previously, such versions could become the "latest" target in the skew-protection mapping, causing /_next/static/* requests to return 404 on past deployments. Versions are now filtered to those with workers/triggered_by in {upload, version_upload}.

    Closes #1230

@opennextjs/cloudflare@1.19.10

Choose a tag to compare

@workers-frameworks workers-frameworks released this 14 May 13:16
49eade5

Patch Changes

  • #1261 780dd4f Thanks @vicb! - Allow populating R2 when the domain is protected by Cloudflare Access

    You need to:

    • create a "Service Auth" policy for "open-next-cache-populate..workers.dev"
    • add an "Include" rule for "Any Access Service Token" or for a given service token ("Service Token")
    • populate the env variables CLOUDFLARE_ACCESS_CLIENT_ID and CLOUDFLARE_ACCESS_CLIENT_SECRET

@opennextjs/cloudflare@1.19.9

Choose a tag to compare

@workers-frameworks workers-frameworks released this 11 May 06:36
f07200e

Patch Changes

@opennextjs/cloudflare@1.19.8

Choose a tag to compare

@workers-frameworks workers-frameworks released this 07 May 11:33
8786774

Patch Changes

@opennextjs/cloudflare@1.19.7

Choose a tag to compare

@workers-frameworks workers-frameworks released this 06 May 19:36
08b3d3c

Patch Changes

  • #1252 29fe15d Thanks @vicb! - bump the number of retries for r2 cache uploads

    Increase the retry count from 5 to 15 with a capped exponential backoff to improve resilience against transient R2 write failures during cache population.

  • #1255 364b7d9 Thanks @vicb! - Bump react and next

@opennextjs/cloudflare@1.19.6

Choose a tag to compare

@workers-frameworks workers-frameworks released this 04 May 11:42
975833d

Patch Changes

  • #1246 5d2014f Thanks @vicb! - fix: do not log expected expected D1 errors

    The populateCache command adds columns to the D1 tag cache for SWR support.
    This is required for older deployments made before those column were added.
    SQLite errors when the columns exist and we should not log those errors.

  • #1244 01babce Thanks @tahmid-23! - fix: drop streaming wasm calls in Turbopack runtime

    Turbopack replaces wasm imports using WebAssembly.compileStreaming and
    WebAssembly.instantiateStreaming. These functions are not available in
    the workerd runtime.

    We add a helper loadWasmChunkFn. This is a generated switch statement
    that contains an import for each wasm chunk. We use static strings for
    all imports to ensure that all necessary wasm chunks will be detected
    and bundled for the final build.

    The Turbopack patcher replaces the invocations in loadWebAssembly and
    loadWebAssemblyModule, using the synchronous WebAssembly.instantiate
    and redirecting to loadWasmChunkFn.

  • #1243 1c815de Thanks @tahmid-23! - fix: detect object-valued conditions

    The pre-existing build condition transform logic had subtle errors:

    • failed to recognize object conditions
      (e.g. "workerd": { "import": ..., "require": ... })
    • sibling pruning only applied to strings, not objects

    Now, we fully support object conditions. Furthermore, we prune siblings,
    unless its subtree also contains the build condition.

@opennextjs/cloudflare@1.19.5

Choose a tag to compare

@workers-frameworks workers-frameworks released this 30 Apr 11:53
3489d38

Patch Changes

  • #1240 dd7de1d Thanks @vicb! - fix: add missing git ignored files for the migrate command