@celsoft/platform 0.13.0 → 0.15.0

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.
Files changed (43) hide show
  1. package/dist/adapters/drizzle.d.ts +2 -1
  2. package/dist/adapters/drizzle.js +15 -4
  3. package/dist/adapters/drizzle.js.map +1 -1
  4. package/dist/cli.js +6 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +1 -0
  7. package/dist/config.js +3 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/fakes.d.ts +2 -0
  10. package/dist/fakes.js +4 -0
  11. package/dist/fakes.js.map +1 -1
  12. package/dist/generate.d.ts +2 -0
  13. package/dist/generate.js +29 -1
  14. package/dist/generate.js.map +1 -1
  15. package/dist/lifecycle.js +20 -8
  16. package/dist/lifecycle.js.map +1 -1
  17. package/dist/ports.d.ts +2 -1
  18. package/dist/runtime/access.d.ts +76 -0
  19. package/dist/runtime/access.js +307 -0
  20. package/dist/runtime/access.js.map +1 -0
  21. package/dist/runtime/client.d.ts +2 -0
  22. package/dist/runtime/client.js +17 -2
  23. package/dist/runtime/client.js.map +1 -1
  24. package/dist/runtime/endpoints.d.ts +7 -0
  25. package/dist/runtime/endpoints.js +14 -1
  26. package/dist/runtime/endpoints.js.map +1 -1
  27. package/dist/runtime/index.d.ts +4 -0
  28. package/dist/runtime/index.js +11 -0
  29. package/dist/runtime/index.js.map +1 -1
  30. package/dist/runtime/link-header.d.ts +1 -0
  31. package/dist/runtime/link-header.js +4 -0
  32. package/dist/runtime/link-header.js.map +1 -0
  33. package/dist/runtime/mcp.d.ts +1 -1
  34. package/dist/runtime/mcp.js +2 -1
  35. package/dist/runtime/mcp.js.map +1 -1
  36. package/dist/schema.d.ts +1605 -643
  37. package/dist/schema.js +54 -1
  38. package/dist/schema.js.map +1 -1
  39. package/dist/wrangler-config.js +1 -1
  40. package/dist/wrangler-config.js.map +1 -1
  41. package/package.json +3 -2
  42. package/schema.json +5 -0
  43. package/skills/celsoft-platform/SKILL.md +121 -0
package/dist/schema.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { sql } from "drizzle-orm";
2
- import { boolean, index, integer, jsonb, pgTable, text, timestamp, uuid } from "drizzle-orm/pg-core";
2
+ import { boolean, check, foreignKey, index, integer, jsonb, pgTable, primaryKey, smallint, text, timestamp, unique, uuid } from "drizzle-orm/pg-core";
3
3
  // Better Auth's tables, with its core, admin and organization fields, transcribed from
4
4
  // getAuthTables() in the installed version; schema.test.ts fails when they drift apart.
5
5
  // Property keys stay camelCase because the Drizzle adapter matches Better Auth's field names
@@ -267,6 +267,58 @@ export const oauthClientAssertion = pgTable("oauth_client_assertion", {
267
267
  id: text("id").primaryKey(),
268
268
  expiresAt: at("expires_at").notNull(),
269
269
  });
270
+ // Access: the item tree, grants and links behind app.access; see docs/design.md, App Code, Access.
271
+ // Levels are stored as numbers, 1 read to 5 manage. An item's parent is another item, or the user
272
+ // or organization at the top of its chain, named by the reserved kinds "user" and "organization".
273
+ export const accessItem = pgTable("access_item", {
274
+ kind: text("kind").notNull(),
275
+ id: text("id").notNull(),
276
+ parentKind: text("parent_kind").notNull(),
277
+ parentId: text("parent_id").notNull(),
278
+ restricted: boolean("restricted").notNull().default(false),
279
+ ...timestamps(),
280
+ }, (t) => [
281
+ primaryKey({ columns: [t.kind, t.id] }),
282
+ index("access_item_parent_idx").on(t.parentKind, t.parentId),
283
+ check("access_item_kind", sql `${t.kind} not in ('user', 'organization')`),
284
+ ]);
285
+ export const accessGrant = pgTable("access_grant", {
286
+ id: id(),
287
+ itemKind: text("item_kind").notNull(),
288
+ itemId: text("item_id").notNull(),
289
+ userId: uuid("user_id").references(() => user.id, { onDelete: "cascade" }),
290
+ teamId: uuid("team_id").references(() => team.id, { onDelete: "cascade" }),
291
+ organizationId: uuid("organization_id").references(() => organization.id, { onDelete: "cascade" }),
292
+ email: text("email"),
293
+ level: smallint("level").notNull(),
294
+ grantedBy: uuid("granted_by").references(() => user.id, { onDelete: "set null" }),
295
+ ...timestamps(),
296
+ }, (t) => [
297
+ foreignKey({ columns: [t.itemKind, t.itemId], foreignColumns: [accessItem.kind, accessItem.id], name: "access_grant_item_fk" }).onDelete("cascade"),
298
+ unique("access_grant_once").on(t.itemKind, t.itemId, t.userId, t.teamId, t.organizationId, t.email).nullsNotDistinct(),
299
+ check("access_grant_one_grantee", sql `num_nonnulls(${t.userId}, ${t.teamId}, ${t.organizationId}, ${t.email}) = 1`),
300
+ check("access_grant_level", sql `${t.level} between 1 and 5`),
301
+ check("access_grant_email_lower", sql `${t.email} = lower(${t.email})`),
302
+ index("access_grant_user_idx").on(t.userId),
303
+ index("access_grant_team_idx").on(t.teamId),
304
+ index("access_grant_organization_idx").on(t.organizationId),
305
+ index("access_grant_email_idx").on(t.email),
306
+ ]);
307
+ // Only a hash of each link's token is stored, so the database never holds a working link.
308
+ export const accessLink = pgTable("access_link", {
309
+ id: id(),
310
+ itemKind: text("item_kind").notNull(),
311
+ itemId: text("item_id").notNull(),
312
+ tokenHash: text("token_hash").notNull().unique(),
313
+ level: smallint("level").notNull(),
314
+ expiresAt: at("expires_at"),
315
+ createdBy: uuid("created_by").references(() => user.id, { onDelete: "set null" }),
316
+ ...timestamps(),
317
+ }, (t) => [
318
+ foreignKey({ columns: [t.itemKind, t.itemId], foreignColumns: [accessItem.kind, accessItem.id], name: "access_link_item_fk" }).onDelete("cascade"),
319
+ check("access_link_level", sql `${t.level} between 1 and 3`),
320
+ index("access_link_item_idx").on(t.itemKind, t.itemId),
321
+ ]);
270
322
  export const authSchema = {
271
323
  user,
272
324
  session,
@@ -286,4 +338,5 @@ export const authSchema = {
286
338
  oauthConsent,
287
339
  oauthClientAssertion,
288
340
  };
341
+ export const accessSchema = { accessItem, accessGrant, accessLink };
289
342
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export function wranglerConfig({ config, worker, hostname, accountId, hyperdrive
20
20
  workers_dev: false,
21
21
  routes: [{ pattern: hostname, custom_domain: true }],
22
22
  observability: { enabled: true },
23
- vars: { ...vars, APP_NAME: config.name, LIVE_ROOMS: config.live ? "on" : "off", ...(auth && { AUTH_ORGANIZATIONS: auth.organizations ? "on" : "off", MCP: config.mcp ? "on" : "off" }) },
23
+ vars: { ...vars, APP_NAME: config.name, LIVE_ROOMS: config.live ? "on" : "off", ...(auth && { AUTH_ORGANIZATIONS: auth.organizations ? "on" : "off", MCP: config.mcp ? "on" : "off", ACCESS: config.access ? "on" : "off" }) },
24
24
  ...(config.frontend && {
25
25
  assets: { directory: fromGenerated(config.frontend), not_found_handling: "single-page-application", run_worker_first: ["/api/*", ...(auth ? SCREEN_PATHS : []), ...(config.mcp ? ["/mcp", "/.well-known/*"] : [])] },
26
26
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"wrangler-config.js","sourceRoot":"","sources":["../src/wrangler-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrangler-config.js","sourceRoot":"","sources":["../src/wrangler-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celsoft/platform",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Deploy apps to Cloudflare Workers with Neon Postgres, prod on push and a preview per pull request",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,7 +25,8 @@
25
25
  },
26
26
  "files": [
27
27
  "dist",
28
- "schema.json"
28
+ "schema.json",
29
+ "skills"
29
30
  ],
30
31
  "scripts": {
31
32
  "prepare": "tsc -b && node dist/write-schema.js"
package/schema.json CHANGED
@@ -108,6 +108,11 @@
108
108
  "description": "Serve endpoints marked for MCP at /mcp, to AI clients that sign in with OAuth; needs auth",
109
109
  "type": "boolean"
110
110
  },
111
+ "access": {
112
+ "default": false,
113
+ "description": "Items, levels, grants and links through app.access; needs auth",
114
+ "type": "boolean"
115
+ },
111
116
  "secrets": {
112
117
  "default": [],
113
118
  "type": "array",
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: celsoft-platform
3
+ description: "MUST READ before changing an app built on @celsoft/platform: its endpoints, tables and migrations, pages, auth, files, email, live rooms, MCP tools, item access, platform.jsonc, deploys or previews. Matches the installed version of the package."
4
+ ---
5
+
6
+ # Working on a @celsoft/platform app
7
+
8
+ The app runs on Cloudflare Workers with a Neon Postgres database. The platform owns the Worker,
9
+ the cloud resources and the deploys; the app writes its endpoints, tables and pages. Run every
10
+ command as `npx @celsoft/platform <command>` from the app's folder.
11
+
12
+ ## Files
13
+
14
+ | File | Who writes it | Rule |
15
+ | --- | --- | --- |
16
+ | `platform.jsonc` | The app | What the app turns on; validated on every run |
17
+ | `src/worker.ts` | The app | `export default defineApp(handler, { schema, endpoints, live })` |
18
+ | `src/schema.ts` | The app | Drizzle tables; `id()` and `timestamps()` from `@celsoft/platform/schema` |
19
+ | Frontend (`frontend` in `platform.jsonc`) | The app | Static files, or a `build` script's output |
20
+ | `drizzle/` | `db generate` | Commit; never edit |
21
+ | `.github/workflows/platform.yml` | `init` | Commit; never edit |
22
+ | `.platform/` | The platform | Gitignored; regenerated on install, `dev` and deploy; never edit |
23
+
24
+ ## Endpoints
25
+
26
+ Every type is a Zod schema. Declare each API or MCP function in `defineApp`'s `endpoints`:
27
+
28
+ ```ts
29
+ import { defineApp, endpoint, EndpointError } from "@celsoft/platform";
30
+ import { z } from "zod";
31
+
32
+ export default defineApp(undefined, {
33
+ schema,
34
+ endpoints: {
35
+ getNote: endpoint(
36
+ {
37
+ serve: ["api", "mcp"], // the API by default; "mcp" makes it an MCP tool
38
+ method: "GET",
39
+ path: "/api/notes/:id", // under /api/; :name must be an input field
40
+ description: "Read one note", // the MCP tool's description
41
+ input: z.object({ id: z.uuid() }),
42
+ output: z.object({ id: z.uuid(), body: z.string() }),
43
+ },
44
+ async ({ id }, app) => {
45
+ const user = await app.requireUser();
46
+ const [note] = await app.db.select().from(notes).where(and(eq(notes.id, id), eq(notes.userId, user.id)));
47
+ if (!note) throw new EndpointError(404, "not found");
48
+ return note;
49
+ },
50
+ ),
51
+ },
52
+ });
53
+ ```
54
+
55
+ 1. **Inputs:** path parameters, the query and a JSON body merge into one input object; URL strings are converted to the schema's types.
56
+ 2. **Checks:** bad input is a 400; an output that does not match its schema is a 500, logged.
57
+ 3. **Errors:** throw `EndpointError(status, message)`; a thrown `Response`, as `requireUser()` throws, keeps its status.
58
+ 4. **Access:** every `/api/` path needs a signed-in user except under `/api/public/`; MCP calls always carry one.
59
+ 5. **Item access:** with `access` on, `access: { kind: "note", id: "id", level: "write" }` in the definition checks the caller's level on the item whose id is in that input field before the function runs, and answers 404 when it falls short.
60
+ 6. **Frontend calls:** a bundled frontend imports `call` from `.platform/client` and calls `call("getNote", { id })`, typed from the endpoints.
61
+ 7. **Hand-written routes:** the `handler` (first argument, or `undefined`) takes every request no endpoint answers, for uploads, downloads and streaming.
62
+
63
+ ## `app`
64
+
65
+ Each request gets `app`: `db` (Drizzle, typed with `schema`), `auth`, `session()`, `requireUser()`,
66
+ `files` (R2, folders), `email` (`app.email.send(...)`), `live` (`app.live.publish(room, message)`),
67
+ `access` (with `access` on), `env` and `waitUntil`. Each is created on first use.
68
+
69
+ ## Access
70
+
71
+ With `"access": true`, the platform keeps who may do what to the app's items:
72
+
73
+ 1. **Place every item** when it is created or moved, in the same transaction as the app's own row:
74
+ `await app.db.transaction(async (tx) => { ...insert...; await app.access.in(tx).place("note", id, "folder", folderId); })`.
75
+ The top of a tree is `"user", userId` or `"organization", orgId`; an item never placed is reachable by nobody.
76
+ 2. **Levels:** `read` < `create` < `write` < `delete` < `manage`; each includes those below.
77
+ 3. **Where they come from:** owning the item (`manage`), organization roles (member `read`, admin `delete`, owner `manage`), grants, and links; the highest wins, and a level on a folder covers everything inside it.
78
+ 4. **Grants:** `app.access.share(kind, id, { user | team | organization | email }, level, { email: { path: "/notes/7" } })`, `revoke`, `grants`, `sharedWithMe(kind)`; sharing needs `manage`, and a new grant to a person emails them a link to `path` (`email: false` sends none).
79
+ 5. **Links:** `app.access.link(kind, id, level, { expires })` returns a token, at most `write`; build addresses such as `/#note=7&link=<token>`, and `call()` sends the `#link=` token as the `x-access-link` header. Endpoints a signed-out link holder uses go under `/api/public/`.
80
+ 6. **Restrict:** `app.access.restrict(kind, id)` stops levels from above reaching an item, except organization owners and admins.
81
+ 7. **Check:** `can(kind, id, level)` and `require(kind, id, level)` in hand-written routes; `require` throws a 404.
82
+ 8. **Lists:** `.where(await app.access.accessible("note", "read", notes.id))` filters in the same query.
83
+ 9. **Delete:** `app.access.remove(kind, id)` needs `delete` and refuses an item that still has children.
84
+ 10. **Kinds:** lowercase names the app chooses, never `user` or `organization`; ids are strings.
85
+
86
+ ## Tables and migrations
87
+
88
+ 1. **Change** `src/schema.ts`, then run `npx @celsoft/platform db generate`; read and commit the SQL in `drizzle/`.
89
+ For data changes, `db generate --custom <name>` writes an empty migration to fill with SQL; it is the one `drizzle/` file you edit, before it is deployed.
90
+ 2. **Deploy** applies new migrations; it stops before any change when the schema has changes with no generated migration.
91
+ 3. **Auth tables** come from the platform; reference users with `user.id` from `@celsoft/platform/schema`.
92
+ 4. **Ids** are `uuid` filled by Postgres's `uuidv7()`; never supply them.
93
+
94
+ ## Features in `platform.jsonc`
95
+
96
+ 1. **`database`:** a Neon project id; prod, each preview and `dev` get their own branch.
97
+ 2. **`email`:** sending from `noreply@<hostname>` through Resend; previews and `dev` capture email instead of sending.
98
+ 3. **`auth`:** sign-up and sign-in at `/login`, `/signup`, `/forgot`, `/reset`; `{ "organizations": true }` adds teams. Needs `database` and `email`.
99
+ 4. **`files`:** `app.files` in an R2 bucket; previews share one bucket under their PR's folder.
100
+ 5. **`live`:** rooms over WebSockets; `live: { message: schema, canJoin, canSend, onMessage }` in `defineApp`; browsers use `live()` from `@celsoft/platform/live`. Joining and sending are refused unless `canJoin` and `canSend` say yes.
101
+ 6. **`mcp`:** serves endpoints with `serve` including `"mcp"` at `/mcp` to AI clients that sign in with OAuth. Needs `auth`.
102
+ 7. **`access`:** `app.access`, for who may do what to the app's items; see Access above. Needs `auth`.
103
+
104
+ ## Commands
105
+
106
+ | Command | What it does |
107
+ | --- | --- |
108
+ | `dev` | Runs the app locally on its own `dev` database branch; starts the `dev` script beside it, with `plugins: [platform()]` from `@celsoft/platform/vite` |
109
+ | `db generate` | Writes migrations for schema changes |
110
+ | `generate` | Rewrites `.platform/`; also runs on install |
111
+ | `deploy` / `preview <pr>` | Deploy prod or a PR's preview; CI runs these on push and on pull requests |
112
+ | `previews` | Lists the previews that exist |
113
+ | `owner reset <email>` | Makes that account the owner and sets its password |
114
+ | `--dry-run` | On any command, shows what would change |
115
+
116
+ ## Rules
117
+
118
+ 1. **Never edit generated files:** `drizzle/` (except a new `--custom` migration), the workflow and `.platform/`; regenerate them instead.
119
+ 2. **Never read or print** `.env.secrets`; it holds the deploy tokens.
120
+ 3. **Resource names are reserved:** anything in the Cloudflare account named after the app, or the app followed by `--`, belongs to the platform.
121
+ 4. **Failures stop the run:** a failed build, migration or check leaves the running version in place; fix the cause rather than working around it.