@prisma/composer 0.20.0 → 0.21.0-dev.2
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.
|
|
3
|
+
"version": "0.21.0-dev.2",
|
|
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.
|
|
44
|
-
"@internal/cli": "0.
|
|
45
|
-
"@internal/core": "0.
|
|
46
|
-
"@internal/foundation": "0.
|
|
47
|
-
"@internal/lowering": "0.
|
|
48
|
-
"@internal/nextjs": "0.
|
|
49
|
-
"@internal/node": "0.
|
|
50
|
-
"@internal/service-rpc": "0.
|
|
51
|
-
"@internal/tsdown-config": "0.
|
|
43
|
+
"@internal/assemble": "0.21.0-dev.2",
|
|
44
|
+
"@internal/cli": "0.21.0-dev.2",
|
|
45
|
+
"@internal/core": "0.21.0-dev.2",
|
|
46
|
+
"@internal/foundation": "0.21.0-dev.2",
|
|
47
|
+
"@internal/lowering": "0.21.0-dev.2",
|
|
48
|
+
"@internal/nextjs": "0.21.0-dev.2",
|
|
49
|
+
"@internal/node": "0.21.0-dev.2",
|
|
50
|
+
"@internal/service-rpc": "0.21.0-dev.2",
|
|
51
|
+
"@internal/tsdown-config": "0.21.0-dev.2",
|
|
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.
|
|
5
|
+
library_version: "0.21.0-dev.2"
|
|
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); a signed-in user deletes their own account with Better Auth's `POST /api/auth/delete-user` through the proxy (password, or a session < 24 h old); operators delete with `admin.removeUser({ userId })`; either way your own rows follow your `auth:User` FK's `onDelete` (`Cascade` deletes them, `Restrict` refuses the deletion) | `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`
|
|
448
|
-
|
|
449
|
-
|
|
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
|
|