Skip to content

v4.18.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 01:10
· 188 commits to main since this release
Immutable release. Only release title and notes can be modified.
b2e0ad1

The fork's first minor release: Pulumi and the providers updated, Astro 6 and 7, and fixes for sst dev and deploys. Still built on upstream v4.17.1.

⚠️ Breaking changes

All from the Pulumi and provider update (#18):

  • Node.js 22 or later is required. Pulumi's Node.js SDK, which runs your sst.config.ts, needs it. On an older Node.js the CLI warns that SST needs Node.js 22 or later. Node.js 20 mostly works, but inline Lambda callbacks fail. Upgrade Node.js everywhere you run sst, CI included.
  • A deploy role with limited permissions needs cloudfront:TagResource and cloudfront:ListTagsForResource. The first deploy updates the tags on every site's and Router's CloudFront Functions and KV stores. Add both before you deploy.
  • A provider version pinned in sst.config.ts has to be at least aws 7.48.0, command 1.2.1, docker-build 0.0.22, random 4.21.2 or tls 5.6.1. A lower pin stops with You specified version <pin> of the "<provider>" provider. SST needs <version> or higher. Raise the pin or remove it.
  • The first deploy after upgrading redeploys your containers. Every image SST builds with docker-build is rebuilt once, so each Service, Task and container Function gets a new task definition revision and a rolling deployment. Your own command.local.Command and remote.Command resources run once more too.

Fixes

  • sst dev no longer freezes when one of its clients stops reading. A pane, a browser tab or another client that stopped reading events used to block the whole event bus, so every function invocation timed out until sst dev was restarted. That client now misses events instead, and the log file gets a warning. (#27, anomalyco/sst#7013)
  • sst dev no longer crashes with concurrent map read and map write when many invocations arrive at once. (#23, anomalyco/sst#6970)
  • A new function URL or SSR site no longer fails to deploy now and then with ResourceConflictException: The function could not be updated due to a concurrent update operation. The URL's permissions are now added after the URL exists. Existing stacks get the new ordering with no resource changes. (#22, anomalyco/sst#6933)
  • ApiGatewayV2 with cors: false leaves the CORS configuration unset, as its docs say. It used to set an empty one, under which API Gateway answers preflight requests itself and ignores the CORS headers your routes return. The next deploy removes the empty configuration from an existing API, in place. (#26, anomalyco/sst#6748)
  • SsrSite deploys to Auckland (ap-southeast-6). The deploy crashed, because the region had no coordinates. (#18, anomalyco/sst#6792)

Changes

  • Pulumi 3.267.0, and newer providers: @pulumi/aws 7.48.0, command 1.2.1, docker-build 0.0.22, random 4.21.2 and tls 5.6.1. Cloudflare stays at 6.15.0, because from 6.18 the first deploy of an existing D1 database fails (pulumi/pulumi-cloudflare#1583). Vercel stays at 4.6.0. (#18)
  • Function exposes its function URL resource as nodes.url, when url is set. (#22)
  • Pulumi's log files and workspace file go to SST's folder instead of ~/.pulumi. (#18)

Astro 6 and 7

SST's astro-sst 3.x can't build an Astro 6 or 7 app. The fork now publishes the adapter as @sst-community/astro-sst 4.0.0, which works with Astro 5.6 and later, 6 and 7. Install it under the old name so import aws from "astro-sst" keeps working:

npm install astro-sst@npm:@sst-community/astro-sst
  • sst init installs it for a new Astro app.
  • sst.aws.Astro stops before the build when an Astro 6 or 7 app still has SST's adapter, and names the package.json line to change.
  • It fixes bugs from 3.1.4: cookies keep Max-Age, several cookies in stream mode arrive as separate headers, binary responses such as AVIF are no longer corrupted, trailing-slash redirects and src/fetch.ts work, and Astro.clientAddress can't be spoofed. The adapter's changelog has the full list, including what changes when you switch.
  • Astro 5.0 to 5.5 need SST's 3.x, or an Astro upgrade.

(#47)

Install

npm install sst@npm:@sst-community/sst@4.18.0

To switch an existing project, set its dependency to "sst": "npm:@sst-community/sst@4.18.0" and reinstall. Without Node:

curl -fsSL https://raw.githubusercontent.com/sst-community/sst/main/install | bash