Releases: fastly/cli
v14.1.1
v14.1.0
v14.1.0 (2026-03-17)
Bug Fixes:
- fix(stats):
stats historicalnow returns write errors instead of silently swallowing them #1678
Deprecations:
- deprecated(auth):
fastly profile,fastly sso, andfastly auth-tokencommand trees are deprecated and will be removed in a future release. Usefastly authsubcommands instead. #1676 - deprecated(auth):
--profileand--enable-ssoglobal flags are deprecated. Use--token <name>to select a stored auth token by name, orfastly auth login --sso --token <name>for SSO. #1676
Enhancements:
- feat(auth):
auth login --ssonow requires--token <name>to explicitly name the stored token. This prevents accidentally overwriting tokens in multi-user SSO workflows. #1676 - feat(auth): add
FASTLY_DISABLE_AUTH_COMMANDenv var to hide thefastly authcommand tree from help, completions, and invocation. #1676 - feat(auth): when
FASTLY_DISABLE_AUTH_COMMANDis set, the--token/-tglobal flag is also disabled. UseFASTLY_API_TOKENor stored config tokens instead. #1676 - feat(stats): add
--fieldflag tostats historicalto filter to a single stats field. #1678 - feat(stats): add
stats aggregatesubcommand for cross-service aggregated stats. #1678 - feat(stats): add
stats usagesubcommand for bandwidth/request usage, with--by-servicebreakdown. #1678 - feat(stats): add
stats domain-inspectorsubcommand for domain-level metrics. #1678 - feat(stats): add
stats origin-inspectorsubcommand for origin-level metrics. #1678 - feat(apisecurity/discoveredoperations): add support for 'list' and 'update' support for 'API discovery'. #1689
- feat(apisecurity/operations): add CRUD support for 'API Inventory' operations. #1689
- feat(apisecurity/tags): add API Security Operations tag support (#1688)
- feat(service/version): add support for service validation. #1695
- feat(compute/build): Block version 1.93.0 of Rust to avoid a wasm32-wasip2 bug. (#1653)
- feat(service/vcl): escape control characters when displaying VCL content for cleaner terminal output (#1637)
Dependencies:
- build(deps):
golang.org/x/netfrom 0.50.0 to 0.51.0 (#1674) - build(deps):
actions/upload-artifactfrom 6 to 7 (#1675) - build(deps):
actions/download-artifactfrom 7 to 8 (#1675) - build(deps):
golang.org/x/sysfrom 0.41.0 to 0.42.0 (#1679) - build(deps):
github.com/mattn/go-runewidthfrom 0.0.20 to 0.0.21 (#1679) - build(deps):
github.com/pierrec/lz4/v4from 4.1.25 to 4.1.26 (#1679) - build(deps):
golang.org/x/oauth2from 0.35.0 to 0.36.0 (#1679) - build(deps):
golang.org/x/syncfrom 0.19.0 to 0.20.0 (#1679) - build(deps):
github.com/fastly/go-fastly/v13from 13.0.0 to 13.0.1 (#1679) - build(deps):
golang.org/x/termfrom 0.40.0 to 0.41.0 (#1687) - build(deps):
golang.org/x/modfrom 0.33.0 to 0.34.0 (#1687) - build(deps):
golang.org/x/textfrom 0.34.0 to 0.35.0 (#1687) - build(deps):
github.com/fastly/go-fastly/v13from 13.0.1 to 13.1.0 (#1687) - build(deps):
golang.org/x/cryptofrom 0.48.0 to 0.49.0 (#1693) - build(deps):
golang.org/x/netfrom 0.51.0 to 0.52.0 (#1693) - build(deps):
github.com/fastly/go-fastly/v13from 13.1.0 to 13.1.1 (#1693) - build(deps):
github.com/fastly/go-fastly/v13from 13.1.1 to 13.1.2 (#1696) - build(deps):
actions/create-github-app-tokenfrom 2 to 3 (#1692)
v14.0.4
v14.0.0
v14.0.0 (2026-02-25)
BREAKING CHANGES
This release of the Fastly CLI includes a significant reorganization
of the commands which are used to manage the configuration of Fastly
services (both Delivery and Compute services). Specifically, each of
the command families listed below have been changed from
fastly <family> create/delete/describe/list/update to
fastly service <family> create/delete/describe/list/update. For nearly all of these
command families, the previous commands are still available but are
not listed in the fastly help output. In addition, invocations of
the previous commands will generate a deprecation message, which
includes the new command that should be used instead.
The fastly domain family of commands are the lone exception; those
commands exist in both the old and new forms, but the top-level
commands are used to manage 'versionless' domains (a new feature of
the Fastly platform, and those commands were previously named
fastly domain-v1 create/delete/describe/list/update), while the
service-level commands are used to manage 'classic' domains. As a
result, you will need to update any scripts or workflows which used the
fastly domain create/delete/describe/list/update commands to use the
fastly service domain create/delete/describe/list/update commands
instead.
The command families which have been reorganized and are available in
both the old and new forms are:
- acl
- aclentry
- alert
- backend
- dictionary
- dictionary-entry
- healthcheck
- imageoptimizerdefaults
- logging
- purge
- rate-limit
- resource-link
- service-auth
- service-version
- vcl
Breaking:
- breaking(domain) - service-version oriented
domaincommands have been moved under theservice domaincommand. Versionlessdomain-v1commands have been moved to thedomaincommand (#1615)
Enhancements:
- feat(ngwaf/rules): Upgrade go-fastly to v13.0.0 and allow ngwaf rules to accept multival conditions (#1655)
- feat(rust): Allow testing with prerelease Rust versions (#1604)
- feat(compute/hashfiles): remove hashsum subcommand (#1608)
- feat(ngwaf/rules): add support for CRUD operations for NGWAF rules (#1605)
- feat(compute/deploy): added the
--no-default-domainflag to allow for the skipping of automatic domain creation when deploying a Compute service(#1610) - refactor(argparser/flags.go): add flag conversion utilities for converting string flags to bools and checking ascending and desecnding flags (#1611)
- feat(service/purge): Add 'service purge' command as replacement for 'purge', with an unlisted and deprecated alias of 'purge'. (#1612)
- feat(service/version): Add 'service version ...' commands as replacements for 'service-version ...', with unlisted and deprecated aliases of 'service-version ...'. (#1614)
- feat(service/vcl): moved the
vclcommand under theservicecommand, with an unlisted and deprecated alias ofvcl(#1616) - feat(service/healthcheck): moved the
healthcheckcommand under theservicecommand, with an unlisted and deprecated alias ofhealthcheck(#1619) - feat(service/backend): moved the
backendcommand under theservicecommand, with an unlisted and deprecated alias ofbackend(#1621) - feat(service/acl): moved the
aclandaclentrycommands under theservicecommand, with a unlisted and deprecated aliases ofaclandaclentry(#1621) - feat(version): If the latest version is at least one major version higher than the current version, provide links to the release notes for the major version(s) so the user can review them before upgrading. (#1623)
- feat(service/imageoptimizerdefaults): moved the
imageoptimizerdefaultscommands under theservicecommand, with an unlisted and deprecated alias ofimageoptimizerdefaults(#1627) - feat(service/alert): moved the
alertscommand to theservice alertcommand, with an unlisted and deprecated alias ofalerts(#1616) - feat(service/dictionary-entry): moved the
dictionary-entrycommands under theservicecommand, with an unlisted and deprecated alias ofdictionary-entry(#1628) - feat(service/dictionary): moved the
dictionarycommand under theservicecommand, with an unlisted and deprecated alias ofdictionary(#1621) - feat(service/ratelimit): moved the
rate-limitcommands under theservicecommand, with an unlisted and deprecated alias ofrate-limit(#1632) - feat(compute/build): Remove Rust version restriction, allowing 1.93.0 and later versions to be used. (#1633)
- feat(service/resourcelink): moved the
resource-linkcommands under theservicecommand, with an unlisted and deprecated alias ofresource-link(#1635) - feat(service/logging): moved the
loggingcommands under theservicecommand, with an unlisted and deprecated alias oflogging(#1642) - feat(service/auth): moved the
service-authcommands under theservicecommand and renamed toauth, with an unlisted and deprecated alias ofservice-auth(#1643)
Bug fixes:
- fix(docker): Use base image toolchain instead of reinstalling stable, which could pull in an unvalidated Rust version.
- fix(compute/serve): ensure hostname has a port number when building pushpin routes (#1631)
- fix(manifest): Correct setup.Defined to include checks for ObjectStores and SecretStores (#1639)
Dependencies:
- build(deps):
golangfrom 1.24 to 1.25 (#1651) - build(deps):
actions/upload-artifactfrom 5 to 6 (#1603) - build(deps):
actions/download-artifactfrom 6 to 7 (#1603) - build(deps):
golang.org/x/termfrom 0.37.0 to 0.38.0 (#1602) - build(deps):
golang.org/x/cryptofrom 0.45.0 to 0.46.0 (#1602) - build(deps):
golang.org/x/modfrom 0.30.0 to 0.31.0 (#1602) - build(deps):
golang.org/x/netfrom 0.47.0 to 0.48.0 (#1602) - build(deps):
golang.org/x/textfrom 0.31.0 to 0.32.0 (#1602) - build(deps):
github.com/pierrec/lz4/v4from 4.1.22 to 4.1.23 (#1606) - build(deps):
github.com/google/go-querystringfrom 1.1.0 to 1.2.0 (#1607) - build(deps):
golang.org/x/sysfrom 0.39.0 to 0.40.0 (#1613) - build(deps):
golang.org/x/termfrom 0.38.0 to 0.39.0 (#1613) - build(deps):
golang.org/x/cryptofrom 0.46.0 to 0.47.0 (#1613) - build(deps):
golang.org/x/modfrom 0.31.0 to 0.32.0 (#1613) - build(deps):
golang.org/x/netfrom 0.48.0 to 0.49.0 (#1613) - build(deps):
golang.org/x/textfrom 0.32.0 to 0.33.0 (#1613) - build(deps):
github.com/fastly/go-fastly/v13from 12.1.0 to 12.1.1 (#1613) - build(deps):
github.com/clipperhouse/uax29/v2from 2.3.0 to 2.3.1 (#1625) - build(deps):
github.com/klauspost/compressfrom 1.18.2 to 1.18.3 (#1625) - build(deps):
github.com/pierrec/lz4/v4from 4.1.23 to 4.1.25 (#1625) - build(deps):
github.com/clipperhouse/uax29/v2from 2.3.1 to 2.4.0 (#1634) - build(deps):
github.com/clipperhouse/uax29/v2from 2.4.0 to 2.5.0 (#1647) - build(deps):
golang.org/x/sysfrom 0.40.0 to 0.41.0 (#1652) - build(deps):
golang.org/x/termfrom 0.39.0 to 0.40.0 (#1652) - build(deps):
golang.org/x/cryptofrom 0.47.0 to 0.48.0 (#1652) - build(deps):
golang.org/x/modfrom 0.32.0 to 0.33.0 (#1652) - build(deps):
github.com/clipperhouse/uax29/v2from 2.5.0 to 2.6.0 (#1652) - build(deps):
github.com/klauspost/compressfrom 1.18.3 to 1.18.4 (#1652) - build(deps):
golang.org/x/netfrom 0.49.0 to 0.50.0 (#1652) - build(deps):
golang.org/x/oauth2from 0.34.0 to 0.35.0 (#1652) - build(deps):
golang.org/x/textfrom 0.33.0 to 0.34.0 ([#1652](https:/...
v13.3.0
v13.2.0
v13.2.0 (2025-12-10)
Enhancements:
- feat(commands/ngwaf/workspaces): add support for update operation for NGWAF workspaces (#1578)
- feat(commands/ngwaf/lists): add support for CRUD operations for NGWAF Lists at account and workspace levels (#1582)
- feat(commands/ngwaf/workspaces/alerts): add support for operations for NGWAF alerts (#1589)
- feat(commands/ngwaf/customsignals): add support for CRUD operations for NGWAF Custom Signals (#1592)
- feat(commands/ngwaf/threshold): add support for CRUD operations for NGWAF Thresholds (#1595)
Bug fixes:
- fix(commands/ngwaf/virtualpatch): ensured a check was in place for the 'update' command that disallowed the --json and --verbose flag to be ran at the same time. (#1596)
- fix(commands/ngwaf/redaction): ensured a check was in place for the 'create' and 'update' commands that disallowed the --json and --verbose flag to be ran at the same time. (#1596)
Dependencies:
- build(deps):
golang.org/x/cryptofrom 0.43.0 to 0.45.0 (#1584) - build(deps):
actions/checkoutfrom 5 to 6 (#1587) - build(deps):
golang.org/x/modfrom 0.29.0 to 0.30.0 (#1588) - build(deps):
github.com/coreos/go-oidc/v3from 3.16.0 to 3.17.0 (#1588) - build(deps):
github.com/klauspost/compressfrom 1.18.1 to 1.18.2 (#1593) - build(deps):
golang.org/x/sysfrom 0.38.0 to 0.39.0 (#1594) - build(deps):
github.com/hashicorp/capfrom 0.11.0 to 0.12.0 (#1594) - build(deps):
golang.org/x/oauth2from 0.33.0 to 0.34.0 (#1594) - build(deps):
golang.org/x/syncfrom 0.18.0 to 0.19.0 (#1594)
v13.1.0
v13.1.0 (2025-11-12)
Enhancements:
- feat(service-version): Add JSON support to service-version clone command (#1550)
- feat(compute/build): Allow usage of Rust 1.91.1 and later patch releases (#1576)
- feat(commands/ngwaf/workspaces): add support for CRUD operations for NGWAF workspaces (#1570)
Dependencies:
v13.0.0
v13.0.0 (2025-10-30)
Breaking:
- breaking(tls-custom): correct 'tls-custom activation enable' command parameters to reflect expected input from API (#1562)
- breaking(compute/build): Block version 1.91.0 of Rust as it produces broken WASM packages. (#1571)
Enhancements:
- build(dockerfile-rust): add wasm tools to the rust docker container (#1552)
- feat(env): add detection for workspace ID (#1560)
Bug fixes:
- fix(compute): clarify fastly.toml error message when file not found (#1556)
Dependencies:
- build(deps):
github.com/hashicorp/capfrom 0.10.0 to 0.11.0 (#1546) - build(deps):
github.com/coreos/go-oidc/v3from 3.15.0 to 3.16.0 (#1546) - build(deps):
stefanzweifel/git-auto-commit-actionfrom 6 to 7 (#1549) - build(deps):
golang.org/x/sysfrom 0.36.0 to 0.37.0 (#1548) - build(deps):
golang.org/x/termfrom 0.35.0 to 0.36.0 (#1548) - build(deps):
golang.org/x/cryptofrom 0.42.0 to 0.43.0 (#1548) - build(deps):
golang.org/x/modfrom 0.28.0 to 0.29.0 (#1548) - build(deps):
golang.org/x/netfrom 0.44.0 to 0.45.0 (#1548) - build(deps):
golang.org/x/oauth2from 0.31.0 to 0.32.0 (#1548) - build(deps):
golang.org/x/textfrom 0.29.0 to 0.30.0 (#1548) - build(deps):
actions/setup-nodefrom 5 to 6 (#1559) - build(deps):
actions/download-artifactfrom 4 to 5 (#1559) - build(deps):
github.com/klauspost/compressfrom 1.18.0 to 1.18.1 (#1558) - build(deps):
golang.org/x/netfrom 0.45.0 to 0.46.0 (#1558) - build(deps):
github.com/clipperhouse/uax29/v2from 2.2.0 to 2.3.0 (#1564) - build(deps):
actions/upload-artifactfrom 4 to 5 (#1565) - build(deps):
actions/download-artifactfrom 5 to 6 (#1565)
v12.1.0
v12.0.0
v12.0.0 (2025-09-10)
Breaking:
- breaking(kvstoreentry): The 'describe' command now returns only key attributes (ie: generation, metadata) instead of a given key's value (#1529)
Enhancements:
- feat(logging): Add support for 'CompressionCodec' and 'GzipLevel' attribute to the HTTPS endpoint.
- feat(kvstoreentry): Add support for the 'prefix' parameter for List operations (#1526)
- feat(kvstoreentry): Add support for the add, append, prepend, metadata, if_generation_match, and background_fetch 'create' command operations (#1529)
- feat(kvstoreentry): Add support for the if_generation_match and metadata 'describe' command operations (#1529)
- feat(kvstoreentry): Add support for the if_generation_match and force 'delete' command operations (#1529)
- feat(kvstoreentry): Add the 'get' command operation which obtains the value of the item (#1529)
Bug fixes:
- fix(manifest): Ensure pushpin section is persisted during manifest file update (#1535)
Dependencies:
- build(deps):
github.com/ulikunitz/xzfrom 0.5.12 to 0.5.13 (#1524) - build(deps):
github.com/stretchr/testifyfrom 1.10.0 to 1.11.0 (#1527) - build(deps):
github.com/ulikunitz/xzfrom 0.5.13 to 0.5.14 (#1528) - build(deps):
github.com/stretchr/testifyfrom 1.11.0 to 1.11.1 (#1530) - build(deps):
github.com/ulikunitz/xzfrom 0.5.14 to 0.5.15 (#1530) - build(deps):
actions/setup-nodefrom 4 to 5 (#1534) - build(deps):
actions/setup-gofrom 5 to 6 (#1534) - build(deps):
golang.org/x/sysfrom 0.35.0 to 0.36.0 (#1533) - build(deps):
golang.org/x/termfrom 0.34.0 to 0.35.0 (#1533) - build(deps):
github.com/fastly/go-fastly/v11from 11.3.0 to 11.3.1 (#1533) - build(deps):
golang.org/x/cryptofrom 0.41.0 to 0.42.0 (#1533) - build(deps):
golang.org/x/modfrom 0.27.0 to 0.28.0 (#1533) - build(deps):
golang.org/x/oauth2from 0.30.0 to 0.31.0 (#1533) - build(deps):
golang.org/x/syncfrom 0.16.0 to 0.17.0 (#1533) - build(deps):
golang.org/x/textfrom 0.28.0 to 0.29.0 (#1533)