Skip to content

Wrangler

Subscribe to RSS

2025-02-12

3.108.1

Patch Changes

2025-02-11

3.108.0

Minor Changes

  • #7990 b1966df Thanks @cmsparks! - Add WRANGLER_CI_OVERRIDE_NAME for Workers CI

  • #8028 b2dca9a Thanks @emily-shen! - feat: Also log when no bindings are found.

    We currently print a worker's bindings during dev, versions upload and deploy. This just also prints something when there's no bindings found, in case you were expecting bindings.

  • #8037 71fd250 Thanks @WillTaylorDev! - Provides unsafe.metadata configurations when using wrangler versions secret put.

Patch Changes

  • #8058 1f80d69 Thanks @WillTaylorDev! - Bugfix: Modified versions secret put to inherit all known bindings, which circumvents a limitation in the API which does not return all fields for all bindings.

  • #7986 88514c8 Thanks @andyjessop! - docs: clarifies that local resources are "simulated locally" or "connected to remote resource", and adds console messages to help explain local dev

  • #8008 9d08af8 Thanks @ns476! - Add support for Images bindings (in private beta for now), with optional local support for platforms where Sharp is available.

  • #7769 6abe69c Thanks @cmackenzie1! - Adds the following new option for wrangler pipelines create and wrangler pipelines update commands:

    --cors-origins           CORS origin allowlist for HTTP endpoint (use * for any origin)  [array]
    
  • #7290 0c0374c Thanks @emily-shen! - fix: add support for workers with assets when running multiple workers in one wrangler dev instance

    https://github.com/cloudflare/workers-sdk/pull/7251 added support for running multiple Workers in one wrangler dev/miniflare session. e.g. wrangler dev -c wrangler.toml -c ../worker2/wrangler.toml, which among other things, allowed cross-service RPC to Durable Objects.

    However this did not work in the same way as production when there was a Worker with assets - this PR should fix that.

  • #7769 6abe69c Thanks @cmackenzie1! - Rename wrangler pipelines <create|update> flags

    The following parameters have been renamed:

    Previous Name New Name
    access-key-id r2-access-key-id
    secret-access-key r2-secret-access-key
    transform transform-worker
    r2 r2-bucket
    prefix r2-prefix
    binding enable-worker-binding
    http enable-http
    authentication require-http-auth
    filename file-template
    filepath partition-template
  • #8012 c412a31 Thanks @mtlemilio! - Use fetchPagedListResult when listing Hyperdrive configs from the API

    This fixes an issue where only 20 configs were being listed.

  • #8077 60310cd Thanks @emily-shen! - feat: add telemetry to experimental auto-provisioning

  • Updated dependencies [c80dbd8, 0c0374c]:

2025-02-04

3.107.3

Patch Changes

2025-01-31

3.107.2

Patch Changes

  • #7988 444a630 Thanks @edmundhung! - Fix #7985.

    This reverts the changes on #7945 that caused compatibility issues with Node 16 due to the introduction of sharp.

2025-01-31

3.107.1

Patch Changes

2025-01-30

3.107.0

Minor Changes

  • #7897 34f9797 Thanks @WillTaylorDev! - chore: provides run_worker_first for Worker-script-first configuration. Deprecates experimental_serve_directly.

Patch Changes

  • #7945 d758215 Thanks @ns476! - Add Images binding (in private beta for the time being)

  • #7947 f57bc4e Thanks @dario-piotrowicz! - fix: avoid getPlatformProxy logging twice that it is using vars defined in .dev.vars files

    when getPlatformProxy is called and it retrieves values from .dev.vars files, it logs twice a message like: Using vars defined in .dev.vars, the changes here make sure that in such cases this log only appears once

  • #7889 38db4ed Thanks @emily-shen! - feat: add experimental resource auto-provisioning to versions upload

  • #7864 de6fa18 Thanks @dario-piotrowicz! - Update the unstable_getMiniflareWorkerOptions types to always include an env parameter.

    The unstable_getMiniflareWorkerOptions types, when accepting a config object as the first argument, didn't accept a second env argument. The changes here make sure they do, since the env is still relevant for picking up variables from .dev.vars files.

  • #7964 bc4d6c8 Thanks @LuisDuarte1! - Fix scripts binding to a workflow in a different script overriding workflow config

  • Updated dependencies [cf4f47a]:

2025-01-28

3.106.0

Minor Changes

  • #7856 2b6f149 Thanks @emily-shen! - feat: add sanitised error messages to Wrangler telemetry

    Error messages that have been audited for potential inclusion of personal information, and explicitly opted-in, are now included in Wrangler's telemetry collection. Collected error messages will not include any filepaths, user input or any other potentially private content.

  • #7900 bd9228e Thanks @vicb! - chore(wrangler): update unenv dependency version

    unenv@2.0.0-rc.1 allows using the workerd implementation for the Node modules net, timers, and timers/promises. See unjs/unenv#396.

Patch Changes

  • #7904 50b13f6 Thanks @WalshyDev! - fix: validation for R2 bucket names, the regex was wrongly rejecting buckets starting with a number and the message wasn't as clear as it could be on what was going wrong.

  • #7895 134d61d Thanks @jahands! - Fix regression in retryOnAPIFailure preventing any requests from being retried

    Also fixes a regression in pipelines that prevented 401 errors from being retried when waiting for an API token to become active.

  • #7879 5c02e46 Thanks @andyjessop! - Fix to not require local connection string when using Hyperdrive and wrangler dev --remote

  • #7860 13ab591 Thanks @vicb! - refactor(wrangler): make JSON parsing independent of Node

    Switch jsonc-parser to parse json:

    • JSON.parse() exception messages are not stable across Node versions
    • While jsonc-parser is used, JSONC specific syntax is disabled
  • Updated dependencies []:

2025-01-24

3.105.1

Patch Changes

2025-01-22

3.105.0

Minor Changes

  • #7466 e5ebdb1 Thanks @Ltadrian! - feat: implement the wrangler cert upload command

    This command allows users to upload a mTLS certificate/private key or certificate-authority certificate chain.

    For uploading mTLS certificate, run:

    • wrangler cert upload mtls-certificate --cert cert.pem --key key.pem --name MY_CERT

    For uploading CA certificate chain, run:

    • wrangler cert upload certificate-authority --ca-cert server-ca.pem --name SERVER_CA

Patch Changes

2025-01-17

3.103.2

Patch Changes

  • #7804 16a9460 Thanks @vicb! - fix(wrangler): use require.resolve to resolve unenv path

2025-01-16

3.103.1

Patch Changes

2025-01-16

3.103.0

Minor Changes

  • #5086 8faf2c0 Thanks @dario-piotrowicz! - add --strict-vars option to wrangler types

    add a new --strict-vars option to wrangler types that developers can (by setting the flag to false) use to disable the default strict/literal types generation for their variables

    opting out of strict variables can be useful when developers change often their vars values, even more so when multiple environments are involved

    Example

    With a toml containing:

    [vars]
    MY_VARIABLE = "production_value"
    MY_NUMBERS = [1, 2, 3]
    
    [env.staging.vars]
    MY_VARIABLE = "staging_value"
    MY_NUMBERS = [7, 8, 9]
    

    the wrangler types command would generate the following interface:

    interface Env {
            MY_VARIABLE: "production_value" | "staging_value";
            MY_NUMBERS: [1,2,3] | [7,8,9];
    }
    

    while wrangler types --strict-vars=false would instead generate:

    interface Env {
            MY_VARIABLE: string;
            MY_NUMBERS: number[];
    }
    

    (allowing the developer to easily change their toml variables without the risk of breaking typescript types)

Patch Changes

  • #7720 902e3af Thanks @vicb! - chore(wrangler): use the unenv preset from @cloudflare/unenv-preset

  • #7760 19228e5 Thanks @vicb! - chore: update unenv dependency version

  • #7735 e8aaa39 Thanks @penalosa! - Unwrap the error cause when available to send to Sentry

  • #5086 8faf2c0 Thanks @dario-piotrowicz! - fix: widen multi-env vars types in wrangler types

    Currently, the type generated for vars is a string literal consisting of the value of the variable in the top level environment. If multiple environments are specified this wrongly restricts the type, since the variable could contain any of the values from each of the environments.

    For example, given a wrangler.toml containing the following:

    [vars]
    MY_VAR = "dev value"
    
    [env.production.vars]
    MY_VAR = "prod value"
    

    running wrangler types would generate:

    interface Env {
      MY_VAR: "dev value";
    }
    

    making typescript incorrectly assume that MY_VAR is always going to be "dev value"

    after these changes, the generated interface would instead be:

    interface Env {
      MY_VAR: "dev value" | "prod value";
    }
    
  • #7733 dceb196 Thanks @emily-shen! - feat: pull resource names for provisioning from config if provided

    Uses database_name and bucket_name for provisioning if specified. For R2, this only happens if there is not a bucket with that name already. Also respects R2 jurisdiction if provided.

  • Updated dependencies []:

2025-01-14

3.102.0

Minor Changes

Patch Changes

  • #7750 df0e5be Thanks @andyjessop! - bug: Removes the (local) tag on Vectorize bindings in the console output of wrangler dev, and adds-in the same tag for Durable Objects (which are emulated locally in wrangler dev).

  • #7732 d102b60 Thanks @Ankcorn! - fix pages secret bulk copy

  • #7706 c63f1b0 Thanks @penalosa! - Remove the server-based dev registry in favour of the more stable file-based dev registry. There should be no user-facing impact.

  • Updated dependencies [8e9aa40]:

2025-01-09

3.101.0

Minor Changes

  • #7534 7c8ae1c Thanks @cmackenzie1! - feat: Use OAuth flow to generate R2 tokens for Pipelines

  • #7674 45d1d1e Thanks @Ankcorn! - Add support for env files to wrangler secret bulk i.e. .dev.vars

    Run wrangler secret bulk .dev.vars to add the env file

    //.dev.vars
    KEY=VALUE
    KEY_2=VALUE
    

    This will upload the secrets KEY and KEY_2 to your worker

  • #7442 e4716cc Thanks @petebacondarwin! - feat: add support for redirecting Wrangler to a generated config when running deploy-related commands

    This new feature is designed for build tools and frameworks to provide a deploy-specific configuration, which Wrangler can use instead of user configuration when running deploy-related commands. It is not expected that developers of Workers will need to use this feature directly.

    Affected commands

    The commands that use this feature are:

    • wrangler deploy
    • wrangler dev
    • wrangler versions upload
    • wrangler versions deploy
    • wrangler pages deploy
    • wrangler pages build
    • wrangler pages build-env

    Config redirect file

    When running these commands, Wrangler will look up the directory tree from the current working directory for a file at the path .wrangler/deploy/config.json. This file must contain only a single JSON object of the form:

    { "configPath": "../../path/to/wrangler.json" }
    

    When this file exists Wrangler will follow the configPath (relative to the .wrangler/deploy/config.json file) to find an alternative Wrangler configuration file to load and use as part of this command.

    When this happens Wrangler will display a warning to the user to indicate that the configuration has been redirected to a different file than the user's configuration file.

    Custom build tool example

    A common approach that a build tool might choose to implement.

    • The user writes code that uses Cloudflare Workers resources, configured via a user wrangler.toml file.

      name = "my-worker"
      main = "src/index.ts"
      [[kv_namespaces]]
      binding = "<BINDING_NAME1>"
      id = "<NAMESPACE_ID1>"
      

      Note that this configuration points main at user code entry-point.

    • The user runs a custom build, which might read the wrangler.toml to find the entry-point:

      > my-tool build
      
    • This tool generates a dist directory that contains both compiled code and a new deployment configuration file, but also a .wrangler/deploy/config.json file that redirects Wrangler to this new deployment configuration file:

      - dist
        - index.js
          - wrangler.json
      - .wrangler
        - deploy
            - config.json
      

      The dist/wrangler.json will contain:

      {
        "name": "my-worker",
        "main": "./index.js",
        "kv_namespaces": [
          { "binding": "<BINDING_NAME1>", "id": "<NAMESPACE_ID1>" }
        ]
      }
      

      And the .wrangler/deploy/config.json will contain:

      {
        "configPath": "../../dist/wrangler.json"
      }
      
  • #7685 9d2740a Thanks @vicb! - allow overriding the unenv preset.

    By default wrangler uses the bundled unenv preset.

    Setting WRANGLER_UNENV_RESOLVE_PATHS allow to use another version of the preset. Those paths are used when resolving the unenv module identifiers to absolute paths. This can be used to test a development version.

  • #7694 f3c2f69 Thanks @joshthoward! - Default wrangler d1 export to --local rather than failing

Patch Changes

2025-01-07

3.100.0

Minor Changes

  • #7604 6c2f173 Thanks @CarmenPopoviciu! - feat: Capture Workers with static assets in the telemetry data

    We want to measure accurately what this number of Workers + Assets projects running in remote mode is, as this number will be a very helpful data point down the road, when more decisions around remote mode will have to be taken.

    These changes add this kind of insight to our telemetry data, by capturing whether the command running is in the context of a Workers + Assets project.

    N.B. With these changes in place we will be capturing the Workers + Assets context for all commands, not just wrangler dev --remote.

Patch Changes

2024-12-19

3.99.0

Minor Changes

  • #7425 8757579 Thanks @CarmenPopoviciu! - feat: Make DX improvements in wrangler dev --remote

    Workers + Assets projects have, in certain situations, a relatively degraded wrangler dev --remote developer experience, as opposed to Workers proper projects. This is due to the fact that, for Workers + Assets, we need to make extra API calls to:

    1. check for asset files changes
    2. upload the changed assets, if any

    This commit improves the wrangler dev --remote DX for Workers + Assets, for use cases when the User Worker/assets change while the API calls for previous changes are still in flight. For such use cases, we have put an exit early strategy in place, that drops the event handler execution of the previous changes, in favour of the handler triggered by the new changes.

  • #7537 086a6b8 Thanks @WillTaylorDev! - Provide validation around assets.experimental_serve_directly

  • #7568 2bbcb93 Thanks @WillTaylorDev! - Warn users when using smart placement with Workers + Assets and serve_directly is set to false

Patch Changes

  • #7521 48e7e10 Thanks @emily-shen! - feat: add experimental_patchConfig()

    experimental_patchConfig() can add to a user's config file. It preserves comments if its a wrangler.jsonc. However, it is not suitable for wrangler.toml with comments as we cannot preserve comments on write.

  • Updated dependencies [1488e11, 7216835]:

2024-12-19

3.98.0

Minor Changes

  • #7476 5124b5d Thanks @WalshyDev! - feat: allow routing to Workers with Assets on any HTTP route, not just the root. For example, example.com/blog/* can now be used to serve assets. These assets will be served as though the assets directly were mounted to the root. For example, if you have assets = { directory = "./public/" }, a route like "example.com/blog/*" and a file ./public/blog/logo.png, this will be available at example.com/blog/logo.png. Assets outside of directories which match the configured HTTP routes can still be accessed with the Assets binding or with a Service binding to this Worker.

  • #7380 72935f9 Thanks @CarmenPopoviciu! - Add Workers + Assets support in wrangler dev --remote

Patch Changes

  • #7573 fb819f9 Thanks @emily-shen! - feat: add experimental_readRawConfig()

    Adds a Wrangler API to find and read a config file

  • #7549 42b9429 Thanks @penalosa! - Expand metrics collection to:

    • Detect Pages & Workers CI
    • Filter out default args (e.g. --x-versions, --x-dev-env, and --latest) by only including args that were in argv
  • #7583 8def8c9 Thanks @penalosa! - Revert support for custom unenv resolve path to address an issue with Wrangler failing to deploy Pages projects with nodejs_compat_v2 in some cases

2024-12-17

3.97.0

Minor Changes

  • #7522 6403e41 Thanks @vicb! - feat(wrangler): allow overriding the unenv preset.

    By default wrangler uses the bundled unenv preset.

    Setting WRANGLER_UNENV_RESOLVE_PATHS allow to use another version of the preset. Those paths are used when resolving the unenv module identifiers to absolute paths. This can be used to test a development version.

  • #7479 2780849 Thanks @penalosa! - Accept a JSON file of the format { name: string }[] in wrangler kv bulk delete, as well as the current string[] format.

Patch Changes