@supatype/cli 0.2.1 → 0.3.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.
Files changed (173) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +193 -157
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/api-config-cache.d.ts +34 -0
  5. package/dist/api-config-cache.d.ts.map +1 -0
  6. package/dist/api-config-cache.js +123 -0
  7. package/dist/api-config-cache.js.map +1 -0
  8. package/dist/cache-identity-scope.d.ts +38 -0
  9. package/dist/cache-identity-scope.d.ts.map +1 -0
  10. package/dist/cache-identity-scope.js +70 -0
  11. package/dist/cache-identity-scope.js.map +1 -0
  12. package/dist/cache-provider.d.ts +30 -0
  13. package/dist/cache-provider.d.ts.map +1 -0
  14. package/dist/cache-provider.js +60 -0
  15. package/dist/cache-provider.js.map +1 -0
  16. package/dist/cli-version-embedded.js +1 -1
  17. package/dist/commands/add.js +1 -1
  18. package/dist/commands/add.js.map +1 -1
  19. package/dist/commands/admin.d.ts.map +1 -1
  20. package/dist/commands/admin.js +21 -4
  21. package/dist/commands/admin.js.map +1 -1
  22. package/dist/commands/cache.d.ts +1 -1
  23. package/dist/commands/cache.js +3 -3
  24. package/dist/commands/cache.js.map +1 -1
  25. package/dist/commands/cloud.d.ts.map +1 -1
  26. package/dist/commands/cloud.js +2 -1
  27. package/dist/commands/cloud.js.map +1 -1
  28. package/dist/commands/deploy.d.ts.map +1 -1
  29. package/dist/commands/deploy.js +2 -1
  30. package/dist/commands/deploy.js.map +1 -1
  31. package/dist/commands/dev.d.ts.map +1 -1
  32. package/dist/commands/dev.js +61 -8
  33. package/dist/commands/dev.js.map +1 -1
  34. package/dist/commands/diff.d.ts.map +1 -1
  35. package/dist/commands/diff.js +2 -1
  36. package/dist/commands/diff.js.map +1 -1
  37. package/dist/commands/functions.d.ts.map +1 -1
  38. package/dist/commands/functions.js +6 -2
  39. package/dist/commands/functions.js.map +1 -1
  40. package/dist/commands/init.d.ts.map +1 -1
  41. package/dist/commands/init.js +13 -9
  42. package/dist/commands/init.js.map +1 -1
  43. package/dist/commands/keys.d.ts +35 -0
  44. package/dist/commands/keys.d.ts.map +1 -1
  45. package/dist/commands/keys.js +90 -6
  46. package/dist/commands/keys.js.map +1 -1
  47. package/dist/commands/migrate.d.ts.map +1 -1
  48. package/dist/commands/migrate.js +2 -1
  49. package/dist/commands/migrate.js.map +1 -1
  50. package/dist/commands/push.d.ts.map +1 -1
  51. package/dist/commands/push.js +61 -1
  52. package/dist/commands/push.js.map +1 -1
  53. package/dist/compose-services.d.ts.map +1 -1
  54. package/dist/compose-services.js +2 -1
  55. package/dist/compose-services.js.map +1 -1
  56. package/dist/dev-compose.d.ts +13 -0
  57. package/dist/dev-compose.d.ts.map +1 -1
  58. package/dist/dev-compose.js +119 -16
  59. package/dist/dev-compose.js.map +1 -1
  60. package/dist/engine-floor.d.ts +11 -1
  61. package/dist/engine-floor.d.ts.map +1 -1
  62. package/dist/engine-floor.js +49 -16
  63. package/dist/engine-floor.js.map +1 -1
  64. package/dist/functions-deno-types.d.ts +9 -0
  65. package/dist/functions-deno-types.d.ts.map +1 -1
  66. package/dist/functions-deno-types.js +45 -1
  67. package/dist/functions-deno-types.js.map +1 -1
  68. package/dist/functions-router-gen.d.ts.map +1 -1
  69. package/dist/functions-router-gen.js +113 -81
  70. package/dist/functions-router-gen.js.map +1 -1
  71. package/dist/kong-config.d.ts +1 -1
  72. package/dist/model-cache.d.ts +44 -0
  73. package/dist/model-cache.d.ts.map +1 -0
  74. package/dist/model-cache.js +106 -0
  75. package/dist/model-cache.js.map +1 -0
  76. package/dist/model-hooks.d.ts +5 -0
  77. package/dist/model-hooks.d.ts.map +1 -1
  78. package/dist/model-hooks.js +29 -1
  79. package/dist/model-hooks.js.map +1 -1
  80. package/dist/model-versioning.d.ts +80 -0
  81. package/dist/model-versioning.d.ts.map +1 -0
  82. package/dist/model-versioning.js +140 -0
  83. package/dist/model-versioning.js.map +1 -0
  84. package/dist/postgres-ctl.d.ts +55 -0
  85. package/dist/postgres-ctl.d.ts.map +1 -1
  86. package/dist/postgres-ctl.js +84 -8
  87. package/dist/postgres-ctl.js.map +1 -1
  88. package/dist/preview-config-check.d.ts +21 -0
  89. package/dist/preview-config-check.d.ts.map +1 -0
  90. package/dist/preview-config-check.js +47 -0
  91. package/dist/preview-config-check.js.map +1 -0
  92. package/dist/project-config.d.ts +182 -5
  93. package/dist/project-config.d.ts.map +1 -1
  94. package/dist/project-config.js +125 -8
  95. package/dist/project-config.js.map +1 -1
  96. package/dist/resolve-target.d.ts +9 -0
  97. package/dist/resolve-target.d.ts.map +1 -1
  98. package/dist/resolve-target.js.map +1 -1
  99. package/dist/rest-cache-admin.d.ts.map +1 -1
  100. package/dist/rest-cache-admin.js +6 -2
  101. package/dist/rest-cache-admin.js.map +1 -1
  102. package/dist/schema-ast-v2.d.ts +32 -1
  103. package/dist/schema-ast-v2.d.ts.map +1 -1
  104. package/dist/schema-ast-v2.js +14 -1
  105. package/dist/schema-ast-v2.js.map +1 -1
  106. package/dist/self-host-compose.d.ts +20 -1
  107. package/dist/self-host-compose.d.ts.map +1 -1
  108. package/dist/self-host-compose.js +227 -29
  109. package/dist/self-host-compose.js.map +1 -1
  110. package/dist/studio-admin-roles.d.ts +8 -1
  111. package/dist/studio-admin-roles.d.ts.map +1 -1
  112. package/dist/studio-admin-roles.js +16 -2
  113. package/dist/studio-admin-roles.js.map +1 -1
  114. package/dist/type-extractor.d.ts +7 -0
  115. package/dist/type-extractor.d.ts.map +1 -1
  116. package/dist/type-extractor.js +234 -3
  117. package/dist/type-extractor.js.map +1 -1
  118. package/package.json +2 -2
  119. package/src/api-config-cache.ts +142 -0
  120. package/src/cache-identity-scope.ts +92 -0
  121. package/src/cache-provider.ts +61 -0
  122. package/src/cli-version-embedded.ts +1 -1
  123. package/src/commands/add.ts +1 -1
  124. package/src/commands/admin.ts +23 -6
  125. package/src/commands/cache.ts +3 -3
  126. package/src/commands/cloud.ts +2 -1
  127. package/src/commands/deploy.ts +2 -1
  128. package/src/commands/dev.ts +68 -7
  129. package/src/commands/diff.ts +2 -1
  130. package/src/commands/functions.ts +6 -2
  131. package/src/commands/init.ts +13 -9
  132. package/src/commands/keys.ts +112 -7
  133. package/src/commands/migrate.ts +2 -1
  134. package/src/commands/push.ts +68 -1
  135. package/src/compose-services.ts +2 -1
  136. package/src/dev-compose.ts +151 -15
  137. package/src/engine-floor.ts +73 -16
  138. package/src/functions-deno-types.ts +48 -1
  139. package/src/functions-router-gen.ts +113 -81
  140. package/src/kong-config.ts +1 -1
  141. package/src/model-cache.ts +122 -0
  142. package/src/model-hooks.ts +26 -2
  143. package/src/model-versioning.ts +167 -0
  144. package/src/postgres-ctl.ts +103 -9
  145. package/src/preview-config-check.ts +52 -0
  146. package/src/project-config.ts +273 -11
  147. package/src/resolve-target.ts +11 -1
  148. package/src/rest-cache-admin.ts +8 -2
  149. package/src/schema-ast-v2.ts +47 -0
  150. package/src/self-host-compose.ts +250 -29
  151. package/src/studio-admin-roles.ts +16 -2
  152. package/src/type-extractor.ts +281 -2
  153. package/tests/api-config-cache-seed.test.ts +180 -0
  154. package/tests/cache-identity-scope.test.ts +61 -0
  155. package/tests/cache-provider-config.test.ts +132 -0
  156. package/tests/engine-floor.test.ts +43 -0
  157. package/tests/external-database-compose.test.ts +74 -3
  158. package/tests/field-masking-tier.test.ts +3 -3
  159. package/tests/fixtures/identity-scope-corpus.json +42 -0
  160. package/tests/functions-concurrency.test.ts +71 -0
  161. package/tests/init.test.ts +36 -2
  162. package/tests/keys-write.test.ts +148 -0
  163. package/tests/model-cache-declaration.test.ts +229 -0
  164. package/tests/model-cache-manifest.test.ts +99 -0
  165. package/tests/model-hooks.test.ts +55 -0
  166. package/tests/model-versions.test.ts +229 -0
  167. package/tests/native-keyspace.test.ts +130 -0
  168. package/tests/preview-config-check.test.ts +104 -0
  169. package/tests/rest-cache-admin.test.ts +36 -0
  170. package/tests/runtime-contract.test.ts +176 -22
  171. package/tests/studio-admin-roles.test.ts +32 -0
  172. package/tests/type-extractor.test.ts +113 -0
  173. package/tsconfig.tsbuildinfo +1 -1
@@ -6,8 +6,10 @@ import { fatalError } from "./ui/fatal.js";
6
6
  import { apiSchemaList, externalDatabaseUrl, hooksPathFromProject, preferredFunctionsPathFromProject, realtimeEnabled, serviceRoleRoutes, selfHostTlsEnabled, usesExternalDatabase, } from "./project-config.js";
7
7
  import { hasEngineOverride, hasStudioOverride, pinnedVersion, fetchLatestVersion, VERSION_PIN_LOCAL } from "./binary-cache.js";
8
8
  import { buildKongDeclarative } from "./kong-config.js";
9
+ import { keyspaceInPostgres } from "./cache-provider.js";
9
10
  import { readEnvFile } from "./env-file.js";
10
11
  import { fieldMaskingTierFromProject } from "./field-masking-tier.js";
12
+ import { projectHasVersionedModels } from "./model-versioning.js";
11
13
  /** Env keys written when `versions` pins exist in supatype.config.ts. */
12
14
  export const COMPOSE_PINNED_IMAGE_ENV_KEYS = [
13
15
  "SUPATYPE_ENGINE_IMAGE",
@@ -22,7 +24,25 @@ export const COMPOSE_IMAGE_ENV_KEYS = [
22
24
  "SUPATYPE_STUDIO_IMAGE",
23
25
  "SUPATYPE_STORAGE_IMAGE",
24
26
  "SUPATYPE_FUNCTIONS_WORKER_IMAGE",
27
+ "SUPATYPE_SEAWEEDFS_IMAGE",
25
28
  ];
29
+ /** Pinned by digest, because the registry this replaced proved a tag can be taken away. */
30
+ const SEAWEEDFS_IMAGE = "chrislusf/seaweedfs:4.46@sha256:08d516132314207d10c8e37cbffc1f32b147d870169688734cc61c6231625b62";
31
+ /** Credentials the object store is configured with and the storage service is handed. */
32
+ /**
33
+ * The prefix Kong's ACME plugin stores its certificates under.
34
+ *
35
+ * Not a guess and not configurable: the plugin prefixes every key it writes
36
+ * with this and enforces it in its own `reserved_words.lua`, so it is the one
37
+ * durable thing in a keyspace that is otherwise a cache. Verified on a live
38
+ * instance — both ACME keys survived `kill -9` with only this prefix named
39
+ * durable, and a response-cache key beside them did not.
40
+ */
41
+ const ACME_KEY_PREFIX = "kong_acme:";
42
+ const OBJECT_STORE_ACCESS_KEY = "supatype";
43
+ const OBJECT_STORE_SECRET_KEY = "supatype-secret";
44
+ /** Where the rendered SeaweedFS identity file sits, resolved from the project root like kong.yml. */
45
+ const SEAWEED_CONFIG_MOUNT = ".supatype/self-host/s3.json";
26
46
  /** Map a config version pin to a Docker Hub image reference. */
27
47
  export function dockerImageRef(component, version, config) {
28
48
  const trimmed = version.trim();
@@ -121,6 +141,28 @@ export async function schemaEngineImageForPush(config) {
121
141
  const version = await fetchLatestVersion("engine");
122
142
  return dockerImageRef("engine", version);
123
143
  }
144
+ /**
145
+ * SeaweedFS reads its identities from a file, so the stack's credentials are a generated artifact
146
+ * beside the compose file rather than two env vars inside it.
147
+ *
148
+ * There is deliberately no `anonymous` identity. Declaring one with `Read` would make every bucket
149
+ * world-readable and the per-bucket policy decorative, which is the opposite of what
150
+ * `applyPublicPolicy` is for: a bucket is public because its policy says so.
151
+ */
152
+ export function renderSeaweedIdentities() {
153
+ const identities = {
154
+ identities: [
155
+ {
156
+ name: "supatype",
157
+ credentials: [
158
+ { accessKey: OBJECT_STORE_ACCESS_KEY, secretKey: OBJECT_STORE_SECRET_KEY },
159
+ ],
160
+ actions: ["Admin", "Read", "List", "Tagging", "Write"],
161
+ },
162
+ ],
163
+ };
164
+ return `${JSON.stringify(identities, null, 2)}\n`;
165
+ }
124
166
  export function selfHostComposePaths(cwd) {
125
167
  const dir = resolve(cwd, ".supatype", "self-host");
126
168
  return {
@@ -128,6 +170,7 @@ export function selfHostComposePaths(cwd) {
128
170
  composePath: join(dir, "docker-compose.yml"),
129
171
  kongPath: join(dir, "kong.yml"),
130
172
  nginxPath: join(dir, "nginx.conf"),
173
+ s3ConfigPath: join(dir, "s3.json"),
131
174
  };
132
175
  }
133
176
  export function appUpstreamForCompose(config) {
@@ -239,6 +282,12 @@ export function renderSelfHostCompose(config, cwd = process.cwd(), options) {
239
282
  const projectMount = projectMountPath(cwd);
240
283
  const kongMount = kongMountPath(cwd);
241
284
  const external = usesExternalDatabase(config);
285
+ // Both halves come from the caller because both need the schema loaded, which this renderer does
286
+ // not do. See `SelfHostComposeOptions`.
287
+ const restSchemas = apiSchemaList(config, {
288
+ ...(options?.fieldMaskingTier !== undefined && { tier: options.fieldMaskingTier }),
289
+ drafts: options?.drafts === true,
290
+ });
242
291
  const ownerUrl = ownerDatabaseUrl(config);
243
292
  // the auth driver wants the `postgres://` spelling; an external URL is used as given.
244
293
  const authUrl = external ? ownerUrl : ownerDatabaseUrl(config, "postgres");
@@ -280,20 +329,42 @@ ${studioService}
280
329
  - "127.0.0.1:\${SUPATYPE_DEV_DB_PORT:-54329}:5432"
281
330
  `
282
331
  : ` ports:
283
- - "5432:5432"
332
+ - "\${SUPATYPE_DB_PORT:-5432}:5432"
284
333
  `
285
334
  : "";
335
+ // Host ports, every one of them overridable.
336
+ //
337
+ // Kong's has been `${SUPATYPE_KONG_PORT:-18473}` for as long as `supatype dev` has picked a free
338
+ // one per project and written it back to .env. These three were fixed literals, so the second
339
+ // project on a machine could not start: Docker refuses the bind and compose reports only that
340
+ // the stack would not come up, naming no port. Two projects side by side is the normal case
341
+ // here (this repository ships eight examples), so a literal is the wrong default.
342
+ //
343
+ // Defaults are the previous literals, so a project with none of these set behaves exactly as
344
+ // before. Allocating them per project the way the Kong port is allocated is the follow-up; this
345
+ // makes a second stack possible rather than automatic.
286
346
  const serverPorts = devLocal
287
347
  ? ""
288
348
  : ` ports:
289
- - "9999:9999"
349
+ - "\${SUPATYPE_SERVER_PORT:-9999}:9999"
290
350
  `;
291
- const minioPorts = devLocal
351
+ const seaweedPorts = devLocal
292
352
  ? ""
293
353
  : ` ports:
294
- - "9000:9000"
295
- - "9001:9001"
354
+ - "\${SUPATYPE_SEAWEEDFS_PORT:-8333}:8333"
296
355
  `;
356
+ // One source for the credentials: the server is configured with them and the storage service is
357
+ // handed them, and a mismatch does not fail at start, it fails at the first upload.
358
+ const objectStoreBlock = ` seaweedfs:
359
+ # Identities come from a config file rather than env vars, and the anonymous identity is
360
+ # deliberately absent: a bucket is public because of its policy, never because the server is
361
+ # open. Written beside this file by the same generator, so the two cannot drift.
362
+ image: \${SUPATYPE_SEAWEEDFS_IMAGE:-${SEAWEEDFS_IMAGE}}
363
+ command: server -dir=/data -s3 -s3.port=8333 -s3.config=/etc/seaweedfs/s3.json
364
+ volumes:
365
+ - storage-data:/data
366
+ - ${SEAWEED_CONFIG_MOUNT}:/etc/seaweedfs/s3.json:ro
367
+ ${seaweedPorts}`;
297
368
  const kongTlsEnv = tlsEnabled
298
369
  ? ` KONG_PROXY_LISTEN: "0.0.0.0:8000, 0.0.0.0:8443 ssl"
299
370
  KONG_LUA_SSL_TRUSTED_CERTIFICATE: system
@@ -304,7 +375,16 @@ ${studioService}
304
375
  ? ` - "80:8000"
305
376
  - "443:8443"`
306
377
  : ` - "\${SUPATYPE_KONG_PORT:-18473}:8000"`;
307
- const valkeyBlock = `
378
+ // The RESP server the response cache and Kong's ACME certificates use.
379
+ // Either a Valkey sidecar, or pg_keyspace inside the Postgres container --
380
+ // one stateful service instead of two.
381
+ const keyspaceInPg = keyspaceInPostgres(config);
382
+ const respHost = keyspaceInPg ? "db" : "valkey";
383
+ const valkeyBlock = keyspaceInPg
384
+ ? ` # No \`valkey\` service: cache.provider is "pg_keyspace", so the RESP keyspace is
385
+ # served by the \`db\` container on :6379. See extensions/pg_keyspace in supatype/postgres.
386
+ `
387
+ : `
308
388
  valkey:
309
389
  image: \${SUPATYPE_VALKEY_IMAGE:-valkey/valkey:8-alpine}
310
390
  command: ["valkey-server", "--appendonly", "yes"]
@@ -313,7 +393,9 @@ ${studioService}
313
393
  volumes:
314
394
  - valkey-data:/data
315
395
  `;
316
- const kongValkeyDepends = "\n - valkey";
396
+ // With the keyspace inside Postgres, waiting on `db` is already what every
397
+ // other service does, so Kong needs no extra dependency of its own.
398
+ const kongValkeyDepends = keyspaceInPg ? "" : "\n - valkey";
317
399
  const tlsHintComment = tlsEnabled
318
400
  ? ""
319
401
  : ` # HTTPS is off. To enable automatic TLS (Let's Encrypt) for production, set in supatype.config.ts:
@@ -322,9 +404,8 @@ ${studioService}
322
404
  `;
323
405
  // An external database is not ours to declare a volume for.
324
406
  const volumesBlock = `volumes:
325
- ${external ? "" : " db-data:\n"} minio-data:
326
- valkey-data:
327
- `;
407
+ ${external ? "" : " db-data:\n"} storage-data:
408
+ ${keyspaceInPg ? "" : " valkey-data:\n"}`;
328
409
  // `depends_on` for the services that talk to Postgres. With an external database there is no
329
410
  // container to wait on, so the clause disappears entirely and each service retries on connect
330
411
  // instead: which is also what covers a database that restarts *after* boot, something no
@@ -366,6 +447,86 @@ ${dbDependency}`
366
447
  `
367
448
  : "";
368
449
  const realtimeServerEnv = realtime ? " SUPATYPE_REALTIME_URL: http://realtime:4000" : "";
450
+ // pg_keyspace registers background workers and requests shared memory at
451
+ // postmaster start, so it has to be in `shared_preload_libraries` -- there is
452
+ // no runtime toggle. The image turns it on from the environment
453
+ // (SUPATYPE_KEYSPACE_ENABLED) and writes the configuration itself, which is
454
+ // why this does not restate the preload list: the entrypoint appends
455
+ // pg_keyspace to the image's own list, in the right place (before
456
+ // supatype_mask, so the mask stays outermost and the image's
457
+ // pg_keyspace.require_mask = on is satisfied rather than refusing to serve).
458
+ // Restating it here would be a copy that goes stale the first time the image
459
+ // adds a library.
460
+ //
461
+ // Durability is `ephemeral` for everything, with ACME the one exception.
462
+ // A response cache that went through the WAL would put this stack's busiest
463
+ // write on disk to keep a copy of something that expires in seconds; a
464
+ // certificate that did not survive `docker compose restart db` would be
465
+ // re-issued against Let's Encrypt's rate limits, or fail. So the default is
466
+ // the cheap one and the certificates are named.
467
+ //
468
+ // `kong_acme:` is not a guess. Kong's ACME plugin prefixes every key it
469
+ // stores with it and enforces that prefix in its own reserved_words.lua;
470
+ // proven on a live instance, where both ACME keys survived `kill -9` under
471
+ // this exact configuration and the response-cache key did not.
472
+ //
473
+ // It is set whether or not TLS is on today. The override costs nothing when
474
+ // no key matches it, and a stack that turns TLS on later should not need a
475
+ // database restart before its certificates are safe to store.
476
+ const durablePrefixes = config.cache?.durablePrefixes ?? [];
477
+ const durabilityOverrides = [ACME_KEY_PREFIX, ...durablePrefixes]
478
+ .map((prefix) => `${prefix}=durable`)
479
+ .join(", ");
480
+ // Sizing is shared memory, reserved at postmaster start whether or not the
481
+ // cache is used, so the defaults are a self-hosted stack's floor rather than
482
+ // the extension's own (1M keys x 512 B reserves ~689 MiB per worker before
483
+ // rings and row cache). These are measured on a live PG16 build, not derived:
484
+ // this profile reserves ~235 MiB, of which ~16 MiB is a fixed row-cache
485
+ // directory that rowcache_mb does not describe and cannot be declined.
486
+ const keyspaceDbEnv = keyspaceInPg
487
+ ? ` # The RESP keyspace, in place of a Valkey sidecar. The image writes
488
+ # /etc/postgresql-custom/pg_keyspace.conf from these before any server starts.
489
+ SUPATYPE_KEYSPACE_ENABLED: "1"
490
+ # Durable keys are rows in this database; without it they land in \`postgres\`.
491
+ SUPATYPE_KEYSPACE_DATABASE: \${POSTGRES_DB:-supatype}
492
+ SUPATYPE_KEYSPACE_DURABILITY: ephemeral
493
+ SUPATYPE_KEYSPACE_DURABILITY_OVERRIDES: "${durabilityOverrides}"
494
+ SUPATYPE_KEYSPACE_KEYS: "200000"
495
+ SUPATYPE_KEYSPACE_RING_MB: "16"
496
+ SUPATYPE_KEYSPACE_ROWCACHE_MB: "64"
497
+ # Mode B, the row cache itself. The segment above is reserved either way; these two decide
498
+ # whether anything decodes into it or serves from it, and the image refuses readthrough
499
+ # without decode because that pair serves stale rows forever rather than merely wasting
500
+ # memory.
501
+ #
502
+ # From .env rather than a literal, because only a push can answer this: the switches follow
503
+ # whether any model declares \`cache: { rows: true }\`, and \`self-host compose render\` runs
504
+ # with no schema in hand. Default off, so a project that declares no row cache does not pin
505
+ # WAL behind a replication slot it never reads.
506
+ SUPATYPE_KEYSPACE_ROWCACHE_DECODE: "\${SUPATYPE_KEYSPACE_ROWCACHE_DECODE:-0}"
507
+ SUPATYPE_KEYSPACE_ROWCACHE_READTHROUGH: "\${SUPATYPE_KEYSPACE_ROWCACHE_READTHROUGH:-0}"
508
+ # Both decoders this stack runs, because the image's setting REPLACES the allowlist.
509
+ #
510
+ # Turning the row cache on makes the entrypoint write
511
+ # \`output_plugin_libraries = 'supacache_keys'\`, and PostgreSQL then refuses every other
512
+ # plugin. Realtime decodes with wal2json, so a project that declared \`cache: { rows: true }\`
513
+ # silently lost realtime: the service stayed up, answered /health/ready with 200, and logged
514
+ # \`library "wal2json" may not be used as an output plugin\` once a second while every
515
+ # subscription reported SUBSCRIBED and delivered nothing.
516
+ #
517
+ # Named here rather than left to the image because only this file knows both features are in
518
+ # the same stack.
519
+ SUPATYPE_KEYSPACE_OUTPUT_PLUGIN_LIBRARIES: "supacache_keys, wal2json"
520
+ `
521
+ : "";
522
+ // Not published to the host: the keyspace is reachable to the compose network
523
+ // (server, Kong) and nothing else. A RESP port on a public interface is an
524
+ // unauthenticated read of every cached response.
525
+ const keyspaceExpose = keyspaceInPg
526
+ ? ` expose:
527
+ - "6379"
528
+ `
529
+ : "";
369
530
  const dbServiceBlock = external
370
531
  ? ` # No \`db\` service: database.external points this stack at a Postgres it does not manage.
371
532
  # Every service reads \${DATABASE_URL} from .env, and \`supatype db check\` reports what that
@@ -379,7 +540,7 @@ ${dbDependency}`
379
540
  POSTGRES_DB: \${POSTGRES_DB:-supatype}
380
541
  # Read by the image's init to password the \`authenticator\` role PostgREST connects as.
381
542
  AUTHENTICATOR_PASSWORD: \${AUTHENTICATOR_PASSWORD:?AUTHENTICATOR_PASSWORD is missing from .env}
382
- ${dbPorts} volumes:
543
+ ${keyspaceDbEnv}${dbPorts}${keyspaceExpose} volumes:
383
544
  - db-data:/var/lib/postgresql/data
384
545
  healthcheck:
385
546
  # -h 127.0.0.1 forces TCP. Without it \`pg_isready\` uses the Unix socket, which the
@@ -416,7 +577,7 @@ ${dbServiceBlock} postgrest:
416
577
  # Derived from schema.pg_schema (or schema.api_schemas). Hardcoding this is why choosing a
417
578
  # non-public pg_schema used to give a correct push and an API that answered PGRST106 for
418
579
  # everything: the engine moved and PostgREST was never told.
419
- PGRST_DB_SCHEMA: "${apiSchemaList(config, options?.fieldMaskingTier)}"
580
+ PGRST_DB_SCHEMA: "${restSchemas}"
420
581
  PGRST_DB_ANON_ROLE: anon
421
582
  PGRST_JWT_SECRET: \${JWT_SECRET:?JWT_SECRET is missing from .env}
422
583
  PGRST_DB_EXTRA_SEARCH_PATH: public,extensions
@@ -430,10 +591,10 @@ ${dbDependency}
430
591
  PORT: 5000
431
592
  DATABASE_URL: "${ownerUrl}"
432
593
  JWT_SECRET: \${JWT_SECRET:?JWT_SECRET is missing from .env}
433
- S3_ENDPOINT: http://minio:9000
594
+ S3_ENDPOINT: http://seaweedfs:8333
434
595
  S3_REGION: us-east-1
435
- S3_ACCESS_KEY: supatype
436
- S3_SECRET_KEY: supatype-secret
596
+ S3_ACCESS_KEY: ${OBJECT_STORE_ACCESS_KEY}
597
+ S3_SECRET_KEY: ${OBJECT_STORE_SECRET_KEY}
437
598
  S3_FORCE_PATH_STYLE: "true"
438
599
  ${dbDependency}
439
600
  functions-worker:
@@ -449,6 +610,10 @@ ${dbDependency}
449
610
  # outside. One worker rather than two: a second container would cost a pod per project on
450
611
  # cloud, for isolation the route boundary already provides.
451
612
  SUPATYPE_HOOKS_ROOT: /project/hooks
613
+ # Every log line the worker writes carries this, and on cloud it is the label Loki indexes
614
+ # each project's logs under. Without it a line is collected and filed under no project, which
615
+ # is the same as losing it.
616
+ SUPATYPE_PROJECT_REF: ${JSON.stringify(config.project.name)}
452
617
  PORT: "8001"
453
618
  # In-compose loopback to Kong (not API_EXTERNAL_URL / localhost, unreachable from this container).
454
619
  SUPATYPE_URL: http://kong:8000
@@ -494,7 +659,17 @@ ${dbDependency}
494
659
  # stays visible instead of hiding in a crash loop.
495
660
  restart: on-failure:5
496
661
  ${serverPorts} volumes:
662
+ # The project is read-only: the server reads the schema, the manifest and the functions, and
663
+ # has no business editing any of them.
497
664
  - ${projectMount}:/project:ro
665
+ # .supatype is the exception, and only because one file in it is not project source.
666
+ # api-config.json is the operator's runtime state: which tables have caching switched on,
667
+ # the project TTL, max_rows. PATCH /admin/v1/config/rest writes it, which is what Studio's
668
+ # cache panel and the CLI's cache commands call. Under the read-only mount alone that PATCH
669
+ # fails with "read-only file system", so a cache a model declares can be read back as
670
+ # declared and never actually switched on. A narrower bind than making the whole project
671
+ # writable, because the rest of the tree keeps the guarantee.
672
+ - ${projectMount}/.supatype:/project/.supatype
498
673
  working_dir: /project
499
674
  environment:
500
675
  SUPATYPE_MODE: ${devLocal ? "dev" : "standalone"}
@@ -512,7 +687,7 @@ ${serverPorts} volumes:
512
687
  SUPATYPE_FUNCTIONS_WORKER_URL: http://functions-worker:8001
513
688
  ${realtimeServerEnv}
514
689
  SUPATYPE_CONTROL_PLANE_URL: http://control-plane:8080
515
- SUPATYPE_VALKEY_ADDR: valkey:6379
690
+ SUPATYPE_VALKEY_ADDR: ${respHost}:6379
516
691
  ${appEnv}
517
692
  SUPATYPE_API_HOST: 0.0.0.0
518
693
  SUPATYPE_API_PORT: 9999
@@ -545,9 +720,7 @@ ${appEnv}
545
720
  SUPATYPE_DISABLE_SIGNUP: \${DISABLE_SIGNUP:-false}
546
721
  ${devLocal ? " STUDIO_OPEN_DEV: \"1\"\n" : ""}
547
722
  depends_on:
548
- ${dbDependencyClause} valkey:
549
- condition: service_started
550
- postgrest:
723
+ ${dbDependencyClause}${keyspaceInPg ? "" : " valkey:\n condition: service_started\n"} postgrest:
551
724
  condition: service_started
552
725
  storage:
553
726
  condition: service_started
@@ -556,15 +729,7 @@ ${dbDependencyClause} valkey:
556
729
  ${realtimeDependency} control-plane:
557
730
  condition: service_started
558
731
 
559
- minio:
560
- image: minio/minio:RELEASE.2024-11-07T00-52-20Z
561
- command: server /data --console-address ":9001"
562
- environment:
563
- MINIO_ROOT_USER: supatype
564
- MINIO_ROOT_PASSWORD: supatype-secret
565
- ${minioPorts} volumes:
566
- - minio-data:/data
567
-
732
+ ${objectStoreBlock}
568
733
  schema-engine:
569
734
  image: \${SUPATYPE_ENGINE_IMAGE:-supatype/schema-engine:latest}
570
735
  profiles: ["tools"]
@@ -581,6 +746,16 @@ ${dbDependency}${studioBlock}${valkeyBlock}${tlsHintComment} kong:
581
746
  KONG_ADMIN_ACCESS_LOG: /dev/stdout
582
747
  KONG_PROXY_ERROR_LOG: /dev/stderr
583
748
  KONG_ADMIN_ERROR_LOG: /dev/stderr
749
+ # Cookies are not scoped by port, so every project a developer runs on localhost shares one
750
+ # cookie jar and every request through this gateway carries the lot, which overruns nginx's
751
+ # default buffers and answers "Request header or cookie too large" about cookies belonging to
752
+ # something else entirely.
753
+ #
754
+ # Kept equal to large_client_header_buffers in packages/studio/nginx.conf, where the reason
755
+ # for the two numbers is written down. Both hops need it and they need the same value: this
756
+ # one carries API calls, that one the page, and a request that clears one and fails the other
757
+ # is worse to diagnose than one that fails outright.
758
+ KONG_NGINX_HTTP_LARGE_CLIENT_HEADER_BUFFERS: "4 32k"
584
759
  ${kongTlsEnv} volumes:
585
760
  - ${kongMount}:/etc/kong/kong.yml:ro
586
761
  ports:
@@ -740,12 +915,24 @@ function resolveFieldMaskingTier(cwd, config, options) {
740
915
  return options.fieldMaskingTier;
741
916
  return fieldMaskingTierFromProject(cwd, config);
742
917
  }
918
+ /**
919
+ * Whether this project has a versioned model, unless the caller already knows.
920
+ *
921
+ * Same seam as the tier above, and the same reason: the renderer does not load the schema, so a
922
+ * caller that has can say, and `writeSelfHostCompose` answers for the callers that have not.
923
+ */
924
+ function resolveDrafts(cwd, config, options) {
925
+ if (options?.drafts !== undefined)
926
+ return options.drafts;
927
+ return projectHasVersionedModels(cwd, config);
928
+ }
743
929
  export function writeSelfHostCompose(cwd, config, options) {
744
930
  assertExternalUrlMatchesEnv(cwd, config);
745
931
  const tier = resolveFieldMaskingTier(cwd, config, options);
746
932
  const resolved = {
747
933
  ...options,
748
934
  ...(tier !== undefined && { fieldMaskingTier: tier }),
935
+ drafts: resolveDrafts(cwd, config, options),
749
936
  };
750
937
  assertExternalUrlReachableFromContainers(config);
751
938
  const paths = selfHostComposePaths(cwd);
@@ -753,6 +940,7 @@ export function writeSelfHostCompose(cwd, config, options) {
753
940
  ensureProjectFunctionsDir(cwd, config);
754
941
  ensureComposeManifest(cwd, config);
755
942
  writeFileSync(paths.composePath, renderSelfHostCompose(config, cwd, resolved), "utf8");
943
+ writeFileSync(paths.s3ConfigPath, renderSeaweedIdentities(), "utf8");
756
944
  const studioHostDev = options?.devLocal === true && hasStudioOverride(config);
757
945
  const tlsEnabled = selfHostTlsEnabled(config, options?.devLocal === true);
758
946
  const domain = config.server.domain?.trim();
@@ -763,8 +951,18 @@ export function writeSelfHostCompose(cwd, config, options) {
763
951
  studioServiceUrl: COMPOSE_STUDIO_HOST_URL,
764
952
  studioStripPath: false,
765
953
  }),
954
+ // Kong stores its certificates wherever the RESP server is. With
955
+ // pg_keyspace that is the database container, and they are durable
956
+ // there because the keyspace defaults to durable and nothing names
957
+ // Kong's keys as an exception.
766
958
  ...(tlsEnabled && domain && acmeEmail
767
- ? { acme: { email: acmeEmail, domain, redisHost: "valkey" } }
959
+ ? {
960
+ acme: {
961
+ email: acmeEmail,
962
+ domain,
963
+ redisHost: keyspaceInPostgres(config) ? "db" : "valkey",
964
+ },
965
+ }
768
966
  : {}),
769
967
  }), "utf8");
770
968
  return paths;
@@ -1 +1 @@
1
- {"version":3,"file":"self-host-compose.js","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-host-compose.js","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@ import type { SupatypeProjectConfig } from "./project-config.js";
2
2
  export declare const DEFAULT_STUDIO_ADMIN_ROLES: readonly ["admin", "supatype_admin"];
3
3
  /** Studio admin roles from `supatype.config.ts` `admin.roles` or defaults. */
4
4
  export declare function studioAdminRoles(cfg: SupatypeProjectConfig): string[];
5
- /** Merge `adminRoles` into engine admin-config JSON for Studio and supatype-server. */
5
+ /**
6
+ * Merge the project's own settings into engine admin-config JSON for Studio and supatype-server.
7
+ *
8
+ * The engine derives everything it can from the schema. These two cannot be derived from it: which
9
+ * JWT roles may open Studio, and where the project's front end renders each model. Both are facts
10
+ * about a deployment rather than about a shape, so they live in `supatype.config.ts` and are folded
11
+ * in here, at the one place the file is written.
12
+ */
6
13
  export declare function withAdminRoles(admin: unknown, cfg: SupatypeProjectConfig): Record<string, unknown>;
7
14
  //# sourceMappingURL=studio-admin-roles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"studio-admin-roles.d.ts","sourceRoot":"","sources":["../src/studio-admin-roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,eAAO,MAAM,0BAA0B,sCAAuC,CAAA;AAE9E,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAIrE;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGlG"}
1
+ {"version":3,"file":"studio-admin-roles.d.ts","sourceRoot":"","sources":["../src/studio-admin-roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,eAAO,MAAM,0BAA0B,sCAAuC,CAAA;AAE9E,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAIrE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUlG"}
@@ -6,9 +6,23 @@ export function studioAdminRoles(cfg) {
6
6
  return roles;
7
7
  return [...DEFAULT_STUDIO_ADMIN_ROLES];
8
8
  }
9
- /** Merge `adminRoles` into engine admin-config JSON for Studio and supatype-server. */
9
+ /**
10
+ * Merge the project's own settings into engine admin-config JSON for Studio and supatype-server.
11
+ *
12
+ * The engine derives everything it can from the schema. These two cannot be derived from it: which
13
+ * JWT roles may open Studio, and where the project's front end renders each model. Both are facts
14
+ * about a deployment rather than about a shape, so they live in `supatype.config.ts` and are folded
15
+ * in here, at the one place the file is written.
16
+ */
10
17
  export function withAdminRoles(admin, cfg) {
11
18
  const base = typeof admin === "object" && admin !== null ? admin : {};
12
- return { ...base, adminRoles: studioAdminRoles(cfg) };
19
+ const livePreview = cfg.admin?.livePreview;
20
+ return {
21
+ ...base,
22
+ adminRoles: studioAdminRoles(cfg),
23
+ // Omitted rather than written empty: Studio treats an absent entry as "this project has not
24
+ // said", which is what drives the message asking for it.
25
+ ...(livePreview !== undefined && Object.keys(livePreview).length > 0 && { livePreview }),
26
+ };
13
27
  }
14
28
  //# sourceMappingURL=studio-admin-roles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"studio-admin-roles.js","sourceRoot":"","sources":["../src/studio-admin-roles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAU,CAAA;AAE9E,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,GAA0B;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAA;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACzD,OAAO,CAAC,GAAG,0BAA0B,CAAC,CAAA;AACxC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,GAA0B;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClG,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"studio-admin-roles.js","sourceRoot":"","sources":["../src/studio-admin-roles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAU,CAAA;AAE9E,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,GAA0B;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAA;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACzD,OAAO,CAAC,GAAG,0BAA0B,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,GAA0B;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClG,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAA;IAC1C,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC;QACjC,4FAA4F;QAC5F,yDAAyD;QACzD,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;KACzF,CAAA;AACH,CAAC"}
@@ -12,4 +12,11 @@ export interface SchemaSourceGraph {
12
12
  files: SchemaSourceFile[];
13
13
  }
14
14
  export declare function collectSchemaSourcePaths(entryAbsPath: string, projectRoot: string): SchemaSourceGraph;
15
+ /** The parsed `cache` block. Absent entirely when the model declared none. */
16
+ export interface ParsedModelCache {
17
+ enabled?: boolean;
18
+ maxTtl?: number;
19
+ public?: boolean;
20
+ rows?: boolean;
21
+ }
15
22
  //# sourceMappingURL=type-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-extractor.d.ts","sourceRoot":"","sources":["../src/type-extractor.ts"],"names":[],"mappings":"AAcA,OAAO,EAOL,KAAK,oBAAoB,EAM1B,MAAM,oBAAoB,CAAA;AAG3B,YAAY,EAAE,oBAAoB,IAAI,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAM/G,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,oBAAoB,GAAG,IAAI,CAwH7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,CA4BrG"}
1
+ {"version":3,"file":"type-extractor.d.ts","sourceRoot":"","sources":["../src/type-extractor.ts"],"names":[],"mappings":"AAeA,OAAO,EAOL,KAAK,oBAAoB,EAM1B,MAAM,oBAAoB,CAAA;AAG3B,YAAY,EAAE,oBAAoB,IAAI,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAM/G,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,oBAAoB,GAAG,IAAI,CAoI7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,CA4BrG;AA86FD,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf"}