Skip to content

Update a deployed PDS

Cirrus is published as @getcirrus/pds on npm. The scaffolded project pins the version; updating means bumping the dependency and redeploying.

From the project directory:

Terminal window
pnpm list @getcirrus/pds

Compare against the releases on GitHub or the npm page.

Before updating, read the changelog for breaking changes:

Cirrus follows semver while in beta, but the surface area is still in flux. Breaking changes are noted explicitly in the changelog.

Terminal window
pnpm update @getcirrus/pds

For a major-version bump, allow majors:

Terminal window
pnpm update @getcirrus/pds --latest

If both packages updated, also update @getcirrus/oauth-provider.

Terminal window
pnpm dev

The Vite dev server starts the Worker locally on port 5173. Use pds status --dev and pds passkey list --dev to verify auth and the Durable Object still work as expected.

Terminal window
pnpm run deploy

wrangler deploy pushes the updated Worker. The Durable Object’s storage is preserved. Existing sessions remain valid unless a release explicitly invalidates them (the changelog calls this out).

After deploy, run pds status against production to confirm the upgraded Worker is healthy.

If the new release is broken, roll back by pinning the previous version:

Terminal window
pnpm add @getcirrus/pds@<previous-version>
pnpm run deploy

The Durable Object’s storage is forward-compatible within a major version. Rolling back across a major may not work if the release included storage migrations — the changelog flags this.

The scaffolder (create-pds) is a separate package. It does not need to be updated to update an existing deployment; create-pds is only used to scaffold a new project.

To use a newer scaffolder for a new project:

Terminal window
npm create pds@latest