@prisma/composer 0.20.0 → 0.21.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/composer",
3
- "version": "0.20.0",
3
+ "version": "0.21.0-dev.1",
4
4
  "type": "module",
5
5
  "description": "Prisma Composer — build a Prisma App by composing Modules. Core authoring, deploy pipeline, and the service-rpc/node/nextjs authoring surfaces. The `prisma-composer` CLI lives in @prisma/composer-cli.",
6
6
  "exports": {
@@ -40,15 +40,15 @@
40
40
  "@prisma/management-api-sdk": "^1.60.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@internal/assemble": "0.20.0",
44
- "@internal/cli": "0.20.0",
45
- "@internal/core": "0.20.0",
46
- "@internal/foundation": "0.20.0",
47
- "@internal/lowering": "0.20.0",
48
- "@internal/nextjs": "0.20.0",
49
- "@internal/node": "0.20.0",
50
- "@internal/service-rpc": "0.20.0",
51
- "@internal/tsdown-config": "0.20.0",
43
+ "@internal/assemble": "0.21.0-dev.1",
44
+ "@internal/cli": "0.21.0-dev.1",
45
+ "@internal/core": "0.21.0-dev.1",
46
+ "@internal/foundation": "0.21.0-dev.1",
47
+ "@internal/lowering": "0.21.0-dev.1",
48
+ "@internal/nextjs": "0.21.0-dev.1",
49
+ "@internal/node": "0.21.0-dev.1",
50
+ "@internal/service-rpc": "0.21.0-dev.1",
51
+ "@internal/tsdown-config": "0.21.0-dev.1",
52
52
  "@types/node": "^26.0.1",
53
53
  "tsdown": "^0.22.7",
54
54
  "typescript": "^6.0.3"
@@ -2,7 +2,7 @@
2
2
  name: prisma-composer-core-concepts
3
3
  metadata:
4
4
  library: "@prisma/composer"
5
- library_version: "0.20.0"
5
+ library_version: "0.21.0-dev.1"
6
6
  version: 2026.9.1
7
7
  description: >-
8
8
  Use when deploying or managing an app that uses Prisma Composer
@@ -369,6 +369,14 @@ that surprise:
369
369
  service it calls.
370
370
  5. Windows isn't supported yet.
371
371
 
372
+ Local Postgres runs on `@prisma/dev`, which `@prisma/composer-prisma-cloud`
373
+ declares as its own dependency (`^0.25.2`) and resolves from its own package.
374
+ Nothing needs adding to the app, and an app's own `@prisma/dev` (for example the
375
+ `^0.20.0` alchemy pulls in, which crashes on any Postgres message over 64 KiB) is
376
+ ignored. If the emulator reports that `@prisma/dev` did not resolve, the install
377
+ is broken: reinstall dependencies rather than adding `@prisma/dev` or `prisma`.
378
+ Cloud deployment and local apps without Postgres never load this runtime.
379
+
372
380
  ## Testing is an environment seam
373
381
 
374
382
  A test is just another environment: one where you decide what `load()` and
@@ -414,7 +422,7 @@ provision exactly like your own:
414
422
  | `cron` from `/cron` | An always-on scheduler (it holds Compute's keep-awake guard) firing your schedule at your runner service; `input` on `cron()` binds the runner's input schema | nothing |
415
423
  | `storage` from `/storage` | An S3-backed blob store (own Postgres + minted credentials) | `store` |
416
424
  | `streams` from `/streams` | Durable append-only event streams over a `store` | `streams` |
417
- | `auth` from `/auth` | Signup, login, sessions, and JWT verification (Better Auth in one service, own database) | `api`, `session`, `admin` |
425
+ | `auth` from `/auth` | Signup, login, sessions, and JWT verification (Better Auth in one service, own database). `auth({ signUp: 'closed' })` makes Better Auth refuse self-service sign-up; operator-created accounts go through `admin.createUser({ email, name, password?, emailVerified? })` from a service wired to `admin` (it throws on a duplicate email and sends no mail) | `api`, `session`, `admin` |
418
426
  | `email` from `/email` | Transactional email with a stored outbox (own service and database) | `send`, `outbox` |
419
427
 
420
428
  `bucket()` (imported alongside `rawPostgres`) is a raw S3-compatible bucket:
@@ -444,9 +452,10 @@ today the blocks above plus your own Modules are the whole set, so verify a
444
452
  crashes into a 502 restart loop unless the pool is small and
445
453
  reconnect-friendly (`new SQL({ url, max: 1, idleTimeout: 10 })` for Bun)
446
454
  and the process logs `uncaughtException`/`unhandledRejection` instead of
447
- dying. Under `dev` watch-restarts against the local emulator, add
448
- `prepare: false` as well: restarted processes collide on
449
- prepared-statement names in the emulator's shared session.
455
+ dying. Under `dev`, add `prepare: false` as well: the local Postgres
456
+ is one session shared by every connection and it outlives your
457
+ processes, so a restarted process collides on prepared-statement
458
+ names (42P05) and crash-loops.
450
459
  4. **Cold starts reset service-to-service connections.** A call into a
451
460
  scaled-to-zero service can get `ECONNRESET`; retry it.
452
461
  5. **Bind `0.0.0.0`, not loopback.** The platform routes external HTTP to
@@ -468,6 +477,15 @@ today the blocks above plus your own Modules are the whole set, so verify a
468
477
  contract columns compiles and deploys, then fails on the first timestamp
469
478
  read. Provide the global at the server entry
470
479
  (`import 'temporal-polyfill/global'`) or use string column types.
480
+ 10. **The auth module's `/api/auth/*` returns `403 MISSING_OR_NULL_ORIGIN`
481
+ to a Node script.** It is the browser surface: Better Auth origin-checks
482
+ any request carrying a cookie, an `Origin`/`Referer`, or a `Sec-Fetch-*`
483
+ header, and Node's built-in `fetch` sends `Sec-Fetch-Mode` on every
484
+ request (the same `curl` passes). Send an `Origin` equal to the module's
485
+ `baseUrl`, or, for provisioning, don't use that surface at all: call
486
+ `admin.createUser` from a service wired to the `admin` port. A deployed
487
+ stack's rpc ports are reachable only from inside its graph, so the app
488
+ exposes its own operator route that makes that call.
471
489
 
472
490
  ## What Composer doesn't do yet
473
491