Summary
Bring all catalyst-backend dependencies (runtime + dev) up to their latest compatible versions, then verify the API still builds, migrates, lints, and passes tests.
This is a full refresh beyond Dependabot's weekly grouped minor/patch PRs — include major bumps where feasible, with intentional decisions documented for anything we intentionally pin or defer.
Scope
| Item |
Path |
| Package |
catalyst-backend/package.json |
| Lockfile |
root pnpm-lock.yaml (pnpm workspace) |
| Prisma |
prisma / @prisma/client / @prisma/adapter-pg + schema/migrations |
| Overrides |
existing overrides (e.g. @peculiar/asn1-schema) — re-evaluate necessity after upgrade |
Key stacks to refresh
- Fastify +
@fastify/* plugins (cors, helmet, multipart, rate-limit, swagger, websocket, compress)
- Prisma 7.x line and PostgreSQL adapter
- better-auth (+ passkey) / SimpleWebAuthn
- AWS SDK S3 client
- Zod (+ zod-to-json-schema)
- Pino, dotenv, node-cron, ssh2, pg/mysql2
- TypeScript, ESLint, Vitest, tsx
Acceptance criteria
Suggested approach
- Run
pnpm outdated --filter catalyst-backend and capture the baseline.
- Update patch/minor first; then majors by stack (Fastify plugins → Prisma → auth → AWS SDK → tooling).
- After Prisma bumps: regenerate client, run migrations against a disposable DB, fix adapter/config drift (
prisma/prisma.config.ts).
- Keep
better-auth / zod / typescript aligned with frontend when versions are shared.
- Validate production image packaging if dependency graph or Prisma engines change.
- Open a single PR (or stacked PRs for large majors).
Notes
- Dependabot already scans the monorepo root weekly. This issue is the deliberate full-upgrade pass.
- Keep Node
>=20 support unless coordinated repo-wide.
- Secrets/env: do not reintroduce hardcoded secrets;
API_KEY_SECRET falls back to BETTER_AUTH_SECRET only.
- Watch peer dependency conflicts across the pnpm workspace.
Related
Summary
Bring all
catalyst-backenddependencies (runtime + dev) up to their latest compatible versions, then verify the API still builds, migrates, lints, and passes tests.This is a full refresh beyond Dependabot's weekly grouped minor/patch PRs — include major bumps where feasible, with intentional decisions documented for anything we intentionally pin or defer.
Scope
catalyst-backend/package.jsonpnpm-lock.yaml(pnpm workspace)prisma/@prisma/client/@prisma/adapter-pg+ schema/migrationsoverrides(e.g.@peculiar/asn1-schema) — re-evaluate necessity after upgradeKey stacks to refresh
@fastify/*plugins (cors, helmet, multipart, rate-limit, swagger, websocket, compress)Acceptance criteria
catalyst-backend/package.json(pnpm outdated --filter catalyst-backendor equivalent).overrides— remove if no longer required, or update pins with justification.pnpm installsucceeds; lockfile updated at repo root.pnpm --filter catalyst-backend run db:generatesucceeds after Prisma bumps.pnpm --filter catalyst-backend run lintpasses.pnpm --filter catalyst-backend run buildpasses (includesfix-esm-extensions.mjspost-tsc).pnpm --filter catalyst-backend run testpasses.pnpm --filter catalyst-backend deploy --prod --legacypattern; see issue Container catalyst-backend fails to start #206 lessons — hoisted workspacenode_modulesmust not break runtime).Suggested approach
pnpm outdated --filter catalyst-backendand capture the baseline.prisma/prisma.config.ts).better-auth/zod/typescriptaligned with frontend when versions are shared.Notes
>=20support unless coordinated repo-wide.API_KEY_SECRETfalls back toBETTER_AUTH_SECRETonly.Related