@supatype/cli 0.1.0-alpha.10 → 0.1.0-alpha.11

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 (188) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +104 -71
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/app/framework.js +1 -3
  5. package/dist/app/framework.js.map +1 -1
  6. package/dist/app/proxy-dev-app.d.ts +14 -0
  7. package/dist/app/proxy-dev-app.d.ts.map +1 -1
  8. package/dist/app/proxy-dev-app.js +109 -6
  9. package/dist/app/proxy-dev-app.js.map +1 -1
  10. package/dist/binary-cache.d.ts +1 -1
  11. package/dist/binary-cache.d.ts.map +1 -1
  12. package/dist/binary-cache.js +6 -1
  13. package/dist/binary-cache.js.map +1 -1
  14. package/dist/cli.d.ts.map +1 -1
  15. package/dist/cli.js +6 -0
  16. package/dist/cli.js.map +1 -1
  17. package/dist/commands/adopt.d.ts +3 -0
  18. package/dist/commands/adopt.d.ts.map +1 -0
  19. package/dist/commands/adopt.js +58 -0
  20. package/dist/commands/adopt.js.map +1 -0
  21. package/dist/commands/cloud.d.ts +4 -9
  22. package/dist/commands/cloud.d.ts.map +1 -1
  23. package/dist/commands/cloud.js +49 -91
  24. package/dist/commands/cloud.js.map +1 -1
  25. package/dist/commands/db.d.ts.map +1 -1
  26. package/dist/commands/db.js +25 -47
  27. package/dist/commands/db.js.map +1 -1
  28. package/dist/commands/deploy.d.ts.map +1 -1
  29. package/dist/commands/deploy.js +117 -74
  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 +21 -3
  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 +37 -37
  36. package/dist/commands/diff.js.map +1 -1
  37. package/dist/commands/doctor.d.ts +3 -0
  38. package/dist/commands/doctor.d.ts.map +1 -0
  39. package/dist/commands/doctor.js +77 -0
  40. package/dist/commands/doctor.js.map +1 -0
  41. package/dist/commands/functions.d.ts.map +1 -1
  42. package/dist/commands/functions.js +80 -33
  43. package/dist/commands/functions.js.map +1 -1
  44. package/dist/commands/init.d.ts +1 -0
  45. package/dist/commands/init.d.ts.map +1 -1
  46. package/dist/commands/init.js +26 -4
  47. package/dist/commands/init.js.map +1 -1
  48. package/dist/commands/introspect.d.ts +3 -0
  49. package/dist/commands/introspect.d.ts.map +1 -0
  50. package/dist/commands/introspect.js +34 -0
  51. package/dist/commands/introspect.js.map +1 -0
  52. package/dist/commands/link-helpers.d.ts +15 -0
  53. package/dist/commands/link-helpers.d.ts.map +1 -0
  54. package/dist/commands/link-helpers.js +187 -0
  55. package/dist/commands/link-helpers.js.map +1 -0
  56. package/dist/commands/migrate.d.ts.map +1 -1
  57. package/dist/commands/migrate.js +116 -14
  58. package/dist/commands/migrate.js.map +1 -1
  59. package/dist/commands/pull.d.ts.map +1 -1
  60. package/dist/commands/pull.js +32 -5
  61. package/dist/commands/pull.js.map +1 -1
  62. package/dist/commands/push.d.ts.map +1 -1
  63. package/dist/commands/push.js +102 -129
  64. package/dist/commands/push.js.map +1 -1
  65. package/dist/commands/status.d.ts +1 -1
  66. package/dist/commands/status.d.ts.map +1 -1
  67. package/dist/commands/status.js +93 -29
  68. package/dist/commands/status.js.map +1 -1
  69. package/dist/commands/update.d.ts.map +1 -1
  70. package/dist/commands/update.js +6 -2
  71. package/dist/commands/update.js.map +1 -1
  72. package/dist/config.d.ts +2 -1
  73. package/dist/config.d.ts.map +1 -1
  74. package/dist/config.js.map +1 -1
  75. package/dist/dev-compose.d.ts +23 -0
  76. package/dist/dev-compose.d.ts.map +1 -1
  77. package/dist/dev-compose.js +183 -6
  78. package/dist/dev-compose.js.map +1 -1
  79. package/dist/diff-output.d.ts +5 -1
  80. package/dist/diff-output.d.ts.map +1 -1
  81. package/dist/diff-output.js +69 -0
  82. package/dist/diff-output.js.map +1 -1
  83. package/dist/engine-client.d.ts +10 -1
  84. package/dist/engine-client.d.ts.map +1 -1
  85. package/dist/engine-client.js +64 -13
  86. package/dist/engine-client.js.map +1 -1
  87. package/dist/engine-push-output.d.ts +1 -0
  88. package/dist/engine-push-output.d.ts.map +1 -1
  89. package/dist/engine-push-output.js +4 -1
  90. package/dist/engine-push-output.js.map +1 -1
  91. package/dist/gitignore.d.ts +8 -0
  92. package/dist/gitignore.d.ts.map +1 -0
  93. package/dist/gitignore.js +41 -0
  94. package/dist/gitignore.js.map +1 -0
  95. package/dist/link.d.ts +66 -0
  96. package/dist/link.d.ts.map +1 -0
  97. package/dist/link.js +159 -0
  98. package/dist/link.js.map +1 -0
  99. package/dist/process-manager.d.ts +2 -0
  100. package/dist/process-manager.d.ts.map +1 -1
  101. package/dist/process-manager.js +2 -0
  102. package/dist/process-manager.js.map +1 -1
  103. package/dist/project-config.d.ts +8 -0
  104. package/dist/project-config.d.ts.map +1 -1
  105. package/dist/project-config.js.map +1 -1
  106. package/dist/pull-utils.d.ts +50 -14
  107. package/dist/pull-utils.d.ts.map +1 -1
  108. package/dist/pull-utils.js +152 -12
  109. package/dist/pull-utils.js.map +1 -1
  110. package/dist/resolve-target.d.ts +86 -0
  111. package/dist/resolve-target.d.ts.map +1 -0
  112. package/dist/resolve-target.js +291 -0
  113. package/dist/resolve-target.js.map +1 -0
  114. package/dist/runtime-routes.d.ts.map +1 -1
  115. package/dist/runtime-routes.js +7 -0
  116. package/dist/runtime-routes.js.map +1 -1
  117. package/dist/schema-ast-v2.d.ts +1 -1
  118. package/dist/schema-ast-v2.d.ts.map +1 -1
  119. package/dist/schema-ast-v2.js +2 -2
  120. package/dist/schema-ast-v2.js.map +1 -1
  121. package/dist/schema-sources.d.ts +40 -0
  122. package/dist/schema-sources.d.ts.map +1 -0
  123. package/dist/schema-sources.js +183 -0
  124. package/dist/schema-sources.js.map +1 -0
  125. package/dist/self-host-compose.d.ts +10 -0
  126. package/dist/self-host-compose.d.ts.map +1 -1
  127. package/dist/self-host-compose.js +85 -3
  128. package/dist/self-host-compose.js.map +1 -1
  129. package/dist/storage-provision.d.ts +4 -0
  130. package/dist/storage-provision.d.ts.map +1 -1
  131. package/dist/storage-provision.js +24 -2
  132. package/dist/storage-provision.js.map +1 -1
  133. package/dist/target-client.d.ts +10 -0
  134. package/dist/target-client.d.ts.map +1 -0
  135. package/dist/target-client.js +22 -0
  136. package/dist/target-client.js.map +1 -0
  137. package/dist/type-extractor.d.ts +11 -0
  138. package/dist/type-extractor.d.ts.map +1 -1
  139. package/dist/type-extractor.js +95 -8
  140. package/dist/type-extractor.js.map +1 -1
  141. package/package.json +1 -1
  142. package/src/app/framework.ts +1 -3
  143. package/src/app/proxy-dev-app.ts +113 -6
  144. package/src/binary-cache.ts +6 -1
  145. package/src/cli.ts +6 -0
  146. package/src/commands/adopt.ts +83 -0
  147. package/src/commands/cloud.ts +66 -108
  148. package/src/commands/db.ts +28 -52
  149. package/src/commands/deploy.ts +162 -104
  150. package/src/commands/dev.ts +24 -10
  151. package/src/commands/diff.ts +40 -41
  152. package/src/commands/doctor.ts +102 -0
  153. package/src/commands/functions.ts +95 -37
  154. package/src/commands/init.ts +25 -4
  155. package/src/commands/introspect.ts +47 -0
  156. package/src/commands/link-helpers.ts +228 -0
  157. package/src/commands/migrate.ts +163 -15
  158. package/src/commands/pull.ts +37 -9
  159. package/src/commands/push.ts +132 -166
  160. package/src/commands/status.ts +100 -33
  161. package/src/commands/update.ts +6 -2
  162. package/src/config.ts +2 -1
  163. package/src/dev-compose.ts +240 -6
  164. package/src/diff-output.ts +79 -1
  165. package/src/engine-client.ts +70 -13
  166. package/src/engine-push-output.ts +7 -3
  167. package/src/gitignore.ts +48 -0
  168. package/src/link.ts +242 -0
  169. package/src/process-manager.ts +4 -0
  170. package/src/project-config.ts +8 -0
  171. package/src/pull-utils.ts +217 -23
  172. package/src/resolve-target.ts +419 -0
  173. package/src/runtime-routes.ts +7 -0
  174. package/src/schema-ast-v2.ts +2 -1
  175. package/src/schema-sources.ts +248 -0
  176. package/src/self-host-compose.ts +87 -3
  177. package/src/storage-provision.ts +33 -1
  178. package/src/target-client.ts +40 -0
  179. package/src/type-extractor.ts +124 -11
  180. package/tests/cli-help.test.ts +27 -2
  181. package/tests/init.test.ts +1 -1
  182. package/tests/link.test.ts +148 -0
  183. package/tests/proxy-dev-app.test.ts +45 -1
  184. package/tests/pull-utils.test.ts +5 -4
  185. package/tests/runtime-contract.test.ts +44 -1
  186. package/tests/schema-sources.test.ts +119 -0
  187. package/tests/storage-provision.test.ts +100 -0
  188. package/tsconfig.tsbuildinfo +1 -1
@@ -1,40 +1,104 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { resolve } from "node:path";
2
4
  import { LOCAL_KONG_HOST_PORT, localKongBaseUrl } from "../local-gateway.js";
5
+ import { loadLocalEnvironment, loadProjectLink } from "../link.js";
6
+ import { resolveTarget, targetStatus } from "../resolve-target.js";
3
7
  export function registerStatus(program) {
4
8
  program
5
9
  .command("status")
6
- .description("Show current state of local dev services")
7
- .action(() => {
8
- const services = [
9
- { name: "Postgres", container: "supatype-postgres", port: 5432 },
10
- { name: "PostgREST", container: "supatype-postgrest", port: 3000 },
11
- { name: "GoTrue", container: "supatype-gotrue", port: 9999 },
12
- { name: "Kong", container: "supatype-kong", port: LOCAL_KONG_HOST_PORT },
13
- { name: "MinIO", container: "supatype-minio", port: 9000 },
14
- { name: "Realtime", container: "supatype-realtime", port: 4000 },
15
- { name: "Studio", container: "supatype-studio", port: 3100 },
16
- ].map((svc) => {
17
- const status = getContainerStatus(svc.container);
18
- const uptime = getContainerUptime(svc.container);
19
- return { ...svc, status, ...(uptime !== undefined && { uptime }) };
20
- });
21
- console.log("Supatype Local Development Stack\n");
22
- const maxName = Math.max(...services.map((s) => s.name.length));
23
- for (const svc of services) {
24
- const icon = svc.status === "running" ? "●" : svc.status === "stopped" ? "○" : "✕";
25
- const status = svc.status.padEnd(8);
26
- const port = svc.port ? `:${svc.port}` : "";
27
- const uptime = svc.uptime ? ` (${svc.uptime})` : "";
28
- console.log(` ${icon} ${svc.name.padEnd(maxName)} ${status} ${port}${uptime}`);
10
+ .description("Show linked target status or local dev services")
11
+ .option("--env <name>", "Target environment when linked")
12
+ .action(async (opts) => {
13
+ const cwd = process.cwd();
14
+ const link = loadProjectLink(cwd);
15
+ const localEnv = loadLocalEnvironment(cwd);
16
+ if (link || localEnv) {
17
+ try {
18
+ const target = resolveTarget(cwd, { env: opts.env });
19
+ if (target.mode !== "direct") {
20
+ await printLinkedStatus(target);
21
+ return;
22
+ }
23
+ }
24
+ catch (err) {
25
+ console.error(err.message);
26
+ process.exitCode = 1;
27
+ return;
28
+ }
29
29
  }
30
- const running = services.filter((s) => s.status === "running");
31
- console.log(`\n${running.length}/${services.length} services running`);
32
- if (running.length > 0) {
33
- console.log(`\nAPI URL: ${localKongBaseUrl()}`);
34
- console.log(`Studio: http://localhost:3100`);
35
- console.log(`Database: postgresql://supatype_admin:postgres@localhost:5432/postgres`);
30
+ printLocalStackStatus(cwd);
31
+ });
32
+ }
33
+ async function printLinkedStatus(target) {
34
+ console.log(`Target: ${target.mode} (${target.environment})`);
35
+ console.log(`Project: ${target.projectRef}`);
36
+ console.log(`API: ${target.apiBaseUrl}${target.apiPrefix}\n`);
37
+ try {
38
+ const data = (await targetStatus(target));
39
+ if (data.functions && Array.isArray(data.functions)) {
40
+ console.log(`Functions (${data.functions.length}):`);
41
+ for (const fn of data.functions) {
42
+ const name = typeof fn === "string" ? fn : fn.name;
43
+ if (name)
44
+ console.log(` • ${name}`);
45
+ }
46
+ console.log();
47
+ }
48
+ if (data.deploymentId) {
49
+ console.log(`Active deployment: ${data.deploymentId}`);
50
+ }
51
+ if (data.controlPlane) {
52
+ console.log(`Control plane: ${data.controlPlane}`);
36
53
  }
54
+ }
55
+ catch (err) {
56
+ console.warn(`Could not fetch remote status: ${err.message}`);
57
+ }
58
+ }
59
+ function printLocalStackStatus(cwd) {
60
+ const localEnv = loadLocalEnvironment(cwd);
61
+ const kongPort = localEnv?.kongPort ?? LOCAL_KONG_HOST_PORT;
62
+ const services = [
63
+ { name: "Postgres", container: "supatype-postgres", port: 5432 },
64
+ { name: "PostgREST", container: "supatype-postgrest", port: 3000 },
65
+ { name: "GoTrue", container: "supatype-gotrue", port: 9999 },
66
+ { name: "Kong", container: "supatype-kong", port: kongPort },
67
+ { name: "Control plane", container: "supatype-control-plane" },
68
+ { name: "MinIO", container: "supatype-minio", port: 9000 },
69
+ { name: "Realtime", container: "supatype-realtime", port: 4000 },
70
+ { name: "Studio", container: "supatype-studio", port: 3100 },
71
+ ].map((svc) => {
72
+ const status = getContainerStatus(svc.container);
73
+ const uptime = getContainerUptime(svc.container);
74
+ return { ...svc, status, ...(uptime !== undefined && { uptime }) };
37
75
  });
76
+ console.log("Supatype Local Development Stack\n");
77
+ const maxName = Math.max(...services.map((s) => s.name.length));
78
+ for (const svc of services) {
79
+ const icon = svc.status === "running" ? "●" : svc.status === "stopped" ? "○" : "✕";
80
+ const status = svc.status.padEnd(8);
81
+ const port = svc.port ? `:${svc.port}` : "";
82
+ const uptime = svc.uptime ? ` (${svc.uptime})` : "";
83
+ console.log(` ${icon} ${svc.name.padEnd(maxName)} ${status} ${port}${uptime}`);
84
+ }
85
+ const running = services.filter((s) => s.status === "running");
86
+ console.log(`\n${running.length}/${services.length} services running`);
87
+ if (running.length > 0) {
88
+ const apiUrl = localEnv?.apiUrl ?? localKongBaseUrl();
89
+ console.log(`\nAPI URL: ${apiUrl}`);
90
+ console.log(`Studio: http://localhost:3100`);
91
+ if (localEnv?.databaseUrl) {
92
+ console.log(`Database: ${localEnv.databaseUrl}`);
93
+ }
94
+ else {
95
+ console.log(`Database: postgresql://supatype_admin:postgres@localhost:5432/postgres`);
96
+ }
97
+ }
98
+ if (existsSync(resolve(cwd, ".supatype/environment.json"))) {
99
+ console.log("\nLocal environment file: .supatype/environment.json");
100
+ console.log("Link remote ops: supatype link --url <api> --token $SERVICE_ROLE_KEY");
101
+ }
38
102
  }
39
103
  function getContainerStatus(name) {
40
104
  const result = spawnSync("docker", ["inspect", "--format", "{{.State.Status}}", name], {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmBxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+GrD"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmBxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmHrD"}
@@ -6,7 +6,7 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
6
6
  import { basename, resolve } from "node:path";
7
7
  import { loadConfig } from "../config.js";
8
8
  import { resolveRuntimeProvider } from "../project-config.js";
9
- import { runDockerCompose, writeSelfHostCompose } from "../self-host-compose.js";
9
+ import { runDockerCompose, writeSelfHostCompose, composePullNeedsIgnoreFailures } from "../self-host-compose.js";
10
10
  import { syncComposeImagePins } from "../dev-compose.js";
11
11
  import { download, currentPlatform, fetchAllLatestVersions, pinnedVersion } from "../binary-cache.js";
12
12
  const CONFIG_CANDIDATES = ["supatype.config.ts", "supatype.config.js", "supatype.config.mjs"];
@@ -35,7 +35,11 @@ export function registerUpdate(program) {
35
35
  const paths = writeSelfHostCompose(cwd, config, { devLocal: true });
36
36
  syncComposeImagePins(cwd, config);
37
37
  console.log("Pulling self-host compose images...");
38
- const status = runDockerCompose(paths.composePath, ["pull"], cwd);
38
+ const pullArgs = ["pull"];
39
+ if (composePullNeedsIgnoreFailures(config, cwd)) {
40
+ pullArgs.push("--ignore-pull-failures");
41
+ }
42
+ const status = runDockerCompose(paths.composePath, pullArgs, cwd);
39
43
  if (status !== 0)
40
44
  process.exit(status);
41
45
  console.log("Compose images updated.");
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type SupatypeProjectConfig } from "./project-config.js";
2
+ import type { ExtractedSchemaAstV2 } from "./schema-ast-v2.js";
2
3
  export type { SupatypeProjectConfig } from "./project-config.js";
3
4
  /** Canonical project configuration shape (alias for clarity at call sites). */
4
5
  export type SupatypeConfig = SupatypeProjectConfig;
@@ -61,5 +62,5 @@ export declare function defineConfig(config: SupatypeProjectConfig): SupatypePro
61
62
  */
62
63
  export declare function loadConfig(cwd?: string): SupatypeProjectConfig;
63
64
  /** Load schema AST by evaluating the user's schema entry point via tsx. */
64
- export declare function loadSchemaAst(schemaPath: string, cwd?: string): unknown;
65
+ export declare function loadSchemaAst(schemaPath: string, cwd?: string): ExtractedSchemaAstV2;
65
66
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAG5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,iHAAiH;IACjH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE;QACJ,kEAAkE;QAClE,UAAU,EAAE,MAAM,CAAA;QAClB,+BAA+B;QAC/B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,GAAG,CAAC,EAAE;QACJ,gFAAgF;QAChF,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;QAC1B,+EAA+E;QAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,iBAAiB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAA;QAC7B,IAAI,CAAC,EAAE,iBAAiB,CAAA;QACxB,KAAK,CAAC,EAAE,iBAAiB,CAAA;QACzB,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtG,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAEjF;AAiCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,qBAAqB,CAyB7E;AAmED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAcT"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,iHAAiH;IACjH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE;QACJ,kEAAkE;QAClE,UAAU,EAAE,MAAM,CAAA;QAClB,+BAA+B;QAC/B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,GAAG,CAAC,EAAE;QACJ,gFAAgF;QAChF,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;QAC1B,+EAA+E;QAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,iBAAiB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAA;QAC7B,IAAI,CAAC,EAAE,iBAAiB,CAAA;QACxB,KAAK,CAAC,EAAE,iBAAiB,CAAA;QACzB,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtG,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAEjF;AAiCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,qBAAqB,CAyB7E;AAmED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,oBAAoB,CActB"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * `supatype dev` when `provider: docker` — full self-host Compose stack (Kong gateway).
3
3
  */
4
4
  import { type SupatypeProjectConfig } from "./project-config.js";
5
+ import { type DiffResult } from "./engine-client.js";
5
6
  /** Sync optional Docker image pins from config into `.env` (no JWT rotation). */
6
7
  export declare function syncComposeImagePins(cwd: string, config: SupatypeProjectConfig): void;
7
8
  export interface DevComposeOptions {
@@ -9,6 +10,28 @@ export interface DevComposeOptions {
9
10
  }
10
11
  /** In-compose Postgres URL (SCRAM; not published to the host). */
11
12
  export declare function composeDbUrl(): string;
13
+ /**
14
+ * When `provider: docker` and `overrides.engine` is set, ensure Postgres is published
15
+ * on the host (SUPATYPE_DEV_DB_PORT) so the local engine binary can connect.
16
+ */
17
+ export declare function ensureDockerDbPublishedForHostEngine(cwd: string, config: SupatypeProjectConfig): Promise<void>;
18
+ /**
19
+ * True when CLI should publish local Compose Postgres for the host-side engine
20
+ * (local dev with overrides.engine). False for remote DB URLs via config or --connection.
21
+ */
22
+ export declare function usesLocalDockerEngineDb(config: SupatypeProjectConfig, explicitConnection?: string): boolean;
23
+ /**
24
+ * Resolve a Postgres URL reachable from the host-side engine binary.
25
+ * Local docker + overrides.engine → SUPATYPE_DEV_DB_PORT on localhost.
26
+ * Remote self-host → set `connection` in config or pass `--connection`.
27
+ */
28
+ export declare function resolveHostEngineDatabaseUrl(cwd: string, config: SupatypeProjectConfig, explicit?: string): Promise<string>;
29
+ /**
30
+ * `supatype diff` when `provider: docker`. Uses in-compose schema-engine unless
31
+ * `overrides.engine` is set — then Postgres is published to the host and diff runs
32
+ * through the local engine binary.
33
+ */
34
+ export declare function diffSchemaDocker(cwd: string, config: SupatypeProjectConfig): Promise<DiffResult>;
12
35
  /**
13
36
  * `supatype push` when `provider: docker`. Uses in-compose schema-engine unless
14
37
  * `overrides.engine` is set — then Postgres is published to the host and push runs
@@ -1 +1 @@
1
- {"version":3,"file":"dev-compose.d.ts","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AA8B5B,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAIrF;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAA;CACf;AAED,kEAAkE;AAClE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAqVD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhG;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHtH"}
1
+ {"version":3,"file":"dev-compose.d.ts","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAc5B,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAqBjF,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAIrF;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAA;CACf;AAED,kEAAkE;AAClE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAoCD;;;GAGG;AACH,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAgYD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsDtG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhG;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqItH"}
@@ -7,18 +7,21 @@ import { dirname, join, resolve } from "node:path";
7
7
  import { spawnSync } from "node:child_process";
8
8
  import { startProxyDevApp } from "./app/proxy-dev-app.js";
9
9
  import { loadSchemaAst } from "./config.js";
10
- import { COMPOSE_DEV_KONG_PORT, projectRootFromConfig, resolveRuntimeProvider, schemaPathFromProject, } from "./project-config.js";
10
+ import { COMPOSE_DEV_KONG_PORT, connectionString, projectRootFromConfig, resolveRuntimeProvider, schemaPathFromProject, } from "./project-config.js";
11
11
  import { signJwt } from "./jwt.js";
12
12
  import { isPortInUse } from "./postgres-ctl.js";
13
13
  import { COMPOSE_PINNED_IMAGE_ENV_KEYS, composeDockerImageEnv, composeProjectName, runDockerCompose, schemaEngineImageForPush, writeSelfHostCompose, } from "./self-host-compose.js";
14
14
  import { hasEngineOverride } from "./binary-cache.js";
15
15
  import { startStudioViteDevServer } from "./studio-dev-server.js";
16
16
  import { ensureEngine, engineRequest } from "./engine-client.js";
17
+ import { writeSchemaSourcePushArtifacts } from "./schema-sources.js";
17
18
  import { endDevSession } from "./dev-session.js";
19
+ import { writeLocalEnvironment } from "./link.js";
18
20
  import { registerDevShutdown } from "./dev-shutdown.js";
19
- import { filterComposeNoise, formatEnginePushMessage, parseEnginePushOutput, } from "./engine-push-output.js";
21
+ import { filterComposeNoise, formatEnginePushMessage, parseEngineJsonOutput, parseEnginePushOutput, } from "./engine-push-output.js";
20
22
  import { withAdminRoles } from "./studio-admin-roles.js";
21
23
  import { restoreSystemRelationTargets } from "./restore-system-relation-targets.js";
24
+ import { provisionBucketsFromAst } from "./storage-provision.js";
22
25
  const LOCAL_JWT_SECRET = "super-secret-jwt-token-with-at-least-32-characters-long";
23
26
  /** Default host port for compose Postgres when `overrides.engine` is set (devLocal). */
24
27
  const COMPOSE_DEV_DB_PORT = 54329;
@@ -66,6 +69,59 @@ function hostComposeDbUrl(cwd) {
66
69
  const db = readEnvValue(cwd, "POSTGRES_DB", "supatype");
67
70
  return `postgresql://${user}:${pass}@127.0.0.1:${port}/${db}?sslmode=disable`;
68
71
  }
72
+ /**
73
+ * When `provider: docker` and `overrides.engine` is set, ensure Postgres is published
74
+ * on the host (SUPATYPE_DEV_DB_PORT) so the local engine binary can connect.
75
+ */
76
+ export async function ensureDockerDbPublishedForHostEngine(cwd, config) {
77
+ if (resolveRuntimeProvider(config) !== "docker") {
78
+ throw new Error("ensureDockerDbPublishedForHostEngine requires provider: docker");
79
+ }
80
+ if (!hasEngineOverride(config)) {
81
+ throw new Error("Docker Postgres is not published to the host without overrides.engine. " +
82
+ "Set overrides.engine in supatype.local.config.ts or pass --connection.");
83
+ }
84
+ const project = composeProjectName(config.project.name);
85
+ const kongPort = await resolveKongPort(cwd);
86
+ const devDbPort = await resolveDevDbPort(cwd);
87
+ const now = Math.floor(Date.now() / 1000);
88
+ const jwtBase = { iss: "supatype", iat: now, exp: now + 315_360_000 };
89
+ const anonKey = signJwt({ ...jwtBase, role: "anon" }, LOCAL_JWT_SECRET);
90
+ const serviceRoleKey = signJwt({ ...jwtBase, role: "service_role" }, LOCAL_JWT_SECRET);
91
+ ensureDevComposeEnv(cwd, config, anonKey, serviceRoleKey, kongPort, devDbPort);
92
+ const paths = writeSelfHostCompose(cwd, config, { devLocal: true });
93
+ const up = runDockerCompose(paths.composePath, ["up", "-d", "db"], cwd, project, { quiet: true });
94
+ if (up !== 0)
95
+ process.exit(up);
96
+ await waitComposeHealthy(paths, cwd, 120_000, project);
97
+ }
98
+ /**
99
+ * True when CLI should publish local Compose Postgres for the host-side engine
100
+ * (local dev with overrides.engine). False for remote DB URLs via config or --connection.
101
+ */
102
+ export function usesLocalDockerEngineDb(config, explicitConnection) {
103
+ if (explicitConnection?.trim())
104
+ return false;
105
+ if (config.connection?.trim())
106
+ return false;
107
+ return resolveRuntimeProvider(config) === "docker" && hasEngineOverride(config);
108
+ }
109
+ /**
110
+ * Resolve a Postgres URL reachable from the host-side engine binary.
111
+ * Local docker + overrides.engine → SUPATYPE_DEV_DB_PORT on localhost.
112
+ * Remote self-host → set `connection` in config or pass `--connection`.
113
+ */
114
+ export async function resolveHostEngineDatabaseUrl(cwd, config, explicit) {
115
+ if (explicit?.trim())
116
+ return explicit;
117
+ if (config.connection?.trim())
118
+ return config.connection;
119
+ if (usesLocalDockerEngineDb(config)) {
120
+ await ensureDockerDbPublishedForHostEngine(cwd, config);
121
+ return hostComposeDbUrl(cwd);
122
+ }
123
+ return connectionString(config);
124
+ }
69
125
  async function resolveKongPort(cwd) {
70
126
  const envPath = join(cwd, ".env");
71
127
  if (existsSync(envPath)) {
@@ -112,6 +168,8 @@ function ensureDevComposeEnv(cwd, config, anonKey, serviceRoleKey, kongPort, dev
112
168
  };
113
169
  if (devDbPort !== undefined) {
114
170
  updates.SUPATYPE_DEV_DB_PORT = String(devDbPort);
171
+ updates.DATABASE_URL =
172
+ `postgresql://supatype_admin:postgres@localhost:${devDbPort}/supatype?sslmode=disable`;
115
173
  }
116
174
  const removeImageKeys = COMPOSE_PINNED_IMAGE_ENV_KEYS.filter((key) => !(key in imagePins));
117
175
  upsertEnvFile(cwd, updates, removeImageKeys);
@@ -146,6 +204,9 @@ async function waitKongReady(kongPort, maxSec) {
146
204
  }
147
205
  throw new Error(`Kong gateway at ${base} did not become ready within ${maxSec}s`);
148
206
  }
207
+ async function provisionDockerStorageBuckets(ast, kongPort, serviceRoleKey) {
208
+ await provisionBucketsFromAst(ast, `http://localhost:${kongPort}/storage/v1`, serviceRoleKey);
209
+ }
149
210
  let _lastPushedAst = null;
150
211
  let _lastFailedAst = null;
151
212
  let _composePushInFlight = false;
@@ -218,12 +279,19 @@ async function runComposeSchemaPush(cwd, config, paths, schemaPath, composeProje
218
279
  console.log("[supatype] Applying schema via local engine (overrides.engine)...");
219
280
  await ensureEngine();
220
281
  const pgSchema = config.schema?.pg_schema ?? "public";
282
+ const sources = writeSchemaSourcePushArtifacts(cwd);
221
283
  try {
222
284
  await engineRequest("/push", {
223
285
  ast,
224
286
  database_url: hostComposeDbUrl(cwd),
225
287
  schema: pgSchema,
226
288
  force: true,
289
+ ...(sources
290
+ ? {
291
+ schema_sources_gz_base64: sources.payload.dataBase64,
292
+ schema_sources_manifest: sources.payload.manifest,
293
+ }
294
+ : {}),
227
295
  });
228
296
  }
229
297
  catch (err) {
@@ -239,11 +307,12 @@ async function runComposeSchemaPush(cwd, config, paths, schemaPath, composeProje
239
307
  return;
240
308
  }
241
309
  console.log("[supatype] Applying schema via compose schema-engine...");
242
- let push = await runComposeEnginePush(paths, cwd, composeProject, config);
310
+ const sources = writeSchemaSourcePushArtifacts(cwd);
311
+ let push = await runComposeEnginePush(paths, cwd, composeProject, config, sources);
243
312
  // Windows Docker bind mounts can lag briefly after the host write.
244
313
  if (push.status !== 0) {
245
314
  await new Promise((r) => setTimeout(r, 250));
246
- push = await runComposeEnginePush(paths, cwd, composeProject, config);
315
+ push = await runComposeEnginePush(paths, cwd, composeProject, config, sources);
247
316
  }
248
317
  if (push.status !== 0) {
249
318
  _lastFailedAst = astJson;
@@ -273,7 +342,7 @@ async function runComposeSchemaPushQueued(cwd, config, paths, schemaPath, compos
273
342
  _composePushInFlight = false;
274
343
  }
275
344
  }
276
- async function runComposeEnginePush(paths, cwd, composeProject, config) {
345
+ async function runComposeEnginePush(paths, cwd, composeProject, config, sources) {
277
346
  const envFile = resolve(cwd, ".env");
278
347
  const composeArgs = ["compose", "--progress", "quiet"];
279
348
  if (composeProject)
@@ -284,6 +353,9 @@ async function runComposeEnginePush(paths, cwd, composeProject, config) {
284
353
  composeArgs.push("--env-file", envFile);
285
354
  }
286
355
  composeArgs.push("--profile", "tools", "run", "--rm", "schema-engine", "push", "-i", "/project/.supatype/schema.ast.json", "--database-url", composeDbUrl(), "--force", "--non-interactive");
356
+ if (sources) {
357
+ composeArgs.push("--schema-sources-gz", sources.dockerGzPath, "--schema-sources-manifest", sources.dockerManifestPath);
358
+ }
287
359
  const pushEnv = {
288
360
  ...process.env,
289
361
  COMPOSE_PROGRESS: "quiet",
@@ -311,6 +383,90 @@ async function runComposeEnginePush(paths, cwd, composeProject, config) {
311
383
  }
312
384
  return { status: exitStatus, output };
313
385
  }
386
+ async function runComposeEngineDiff(paths, cwd, composeProject, config, pgSchema) {
387
+ const envFile = resolve(cwd, ".env");
388
+ const composeArgs = ["compose", "--progress", "quiet"];
389
+ if (composeProject)
390
+ composeArgs.push("-p", composeProject);
391
+ composeArgs.push("--project-directory", cwd);
392
+ composeArgs.push("-f", paths.composePath);
393
+ if (existsSync(envFile)) {
394
+ composeArgs.push("--env-file", envFile);
395
+ }
396
+ composeArgs.push("--profile", "tools", "run", "--rm", "schema-engine", "diff", "-i", "/project/.supatype/schema.ast.json", "--database-url", composeDbUrl(), "--schema", pgSchema);
397
+ const diffEnv = {
398
+ ...process.env,
399
+ COMPOSE_PROGRESS: "quiet",
400
+ };
401
+ const engineImage = await schemaEngineImageForPush(config);
402
+ if (engineImage) {
403
+ diffEnv.SUPATYPE_ENGINE_IMAGE = engineImage;
404
+ }
405
+ const result = spawnSync("docker", composeArgs, {
406
+ cwd,
407
+ encoding: "utf8",
408
+ maxBuffer: 10 * 1024 * 1024,
409
+ env: diffEnv,
410
+ });
411
+ const output = `${result.stdout ?? ""}${result.stderr ?? ""}`.trim();
412
+ const exitStatus = result.status ?? 1;
413
+ const diff = parseEngineJsonOutput(output);
414
+ return { status: exitStatus, output, diff };
415
+ }
416
+ /**
417
+ * `supatype diff` when `provider: docker`. Uses in-compose schema-engine unless
418
+ * `overrides.engine` is set — then Postgres is published to the host and diff runs
419
+ * through the local engine binary.
420
+ */
421
+ export async function diffSchemaDocker(cwd, config) {
422
+ if (resolveRuntimeProvider(config) !== "docker") {
423
+ throw new Error("diffSchemaDocker requires provider: docker");
424
+ }
425
+ const project = composeProjectName(config.project.name);
426
+ const pgSchema = config.schema?.pg_schema ?? "public";
427
+ if (hasEngineOverride(config)) {
428
+ await ensureDockerDbPublishedForHostEngine(cwd, config);
429
+ const schemaPath = schemaPathFromProject(config, cwd);
430
+ const ast = loadSchemaAst(schemaPath, cwd);
431
+ await ensureEngine();
432
+ return engineRequest("/diff", {
433
+ ast,
434
+ database_url: hostComposeDbUrl(cwd),
435
+ schema: pgSchema,
436
+ });
437
+ }
438
+ const kongPort = await resolveKongPort(cwd);
439
+ const now = Math.floor(Date.now() / 1000);
440
+ const jwtBase = { iss: "supatype", iat: now, exp: now + 315_360_000 };
441
+ const anonKey = signJwt({ ...jwtBase, role: "anon" }, LOCAL_JWT_SECRET);
442
+ const serviceRoleKey = signJwt({ ...jwtBase, role: "service_role" }, LOCAL_JWT_SECRET);
443
+ ensureDevComposeEnv(cwd, config, anonKey, serviceRoleKey, kongPort, undefined);
444
+ const paths = writeSelfHostCompose(cwd, config, { devLocal: true });
445
+ const up = runDockerCompose(paths.composePath, ["up", "-d", "db"], cwd, project, { quiet: true });
446
+ if (up !== 0)
447
+ process.exit(up);
448
+ await waitComposeHealthy(paths, cwd, 120_000, project);
449
+ const schemaPath = schemaPathFromProject(config, cwd);
450
+ const ast = loadSchemaAst(schemaPath, cwd);
451
+ const supatypeDir = join(cwd, ".supatype");
452
+ mkdirSync(supatypeDir, { recursive: true });
453
+ const astPath = join(supatypeDir, "schema.ast.json");
454
+ writeFileSync(astPath, JSON.stringify(ast));
455
+ let result = await runComposeEngineDiff(paths, cwd, project, config, pgSchema);
456
+ // Windows Docker bind mounts can lag briefly after the host write.
457
+ if (result.status !== 0) {
458
+ await new Promise((r) => setTimeout(r, 250));
459
+ result = await runComposeEngineDiff(paths, cwd, project, config, pgSchema);
460
+ }
461
+ if (result.status !== 0) {
462
+ const detail = filterComposeNoise(result.output) || result.output;
463
+ throw new Error(detail || `Engine schema diff failed (exit ${result.status})`);
464
+ }
465
+ if (!result.diff) {
466
+ throw new Error("Engine diff returned no result");
467
+ }
468
+ return result.diff;
469
+ }
314
470
  /**
315
471
  * `supatype push` when `provider: docker`. Uses in-compose schema-engine unless
316
472
  * `overrides.engine` is set — then Postgres is published to the host and push runs
@@ -335,7 +491,13 @@ export async function pushSchemaDocker(cwd, config) {
335
491
  process.exit(up);
336
492
  await waitComposeHealthy(paths, cwd, 120_000, project);
337
493
  const schemaPath = schemaPathFromProject(config, cwd);
494
+ const ast = loadSchemaAst(schemaPath, cwd);
338
495
  await runComposeSchemaPush(cwd, config, paths, schemaPath, project);
496
+ const upGateway = runDockerCompose(paths.composePath, ["up", "-d"], cwd, project, { quiet: true });
497
+ if (upGateway !== 0)
498
+ process.exit(upGateway);
499
+ await waitKongReady(kongPort, 120);
500
+ await provisionDockerStorageBuckets(ast, kongPort, serviceRoleKey);
339
501
  console.log("[supatype] Schema pushed.");
340
502
  }
341
503
  export async function runDevCompose(cwd, config, opts) {
@@ -365,6 +527,16 @@ export async function runDevCompose(cwd, config, opts) {
365
527
  await runComposeSchemaPush(cwd, config, paths, schemaPath, project).catch((e) => console.error("[supatype] Initial schema push failed:", e.message));
366
528
  console.log("[supatype] Waiting for API gateway...");
367
529
  await waitKongReady(kongPort, 120);
530
+ writeLocalEnvironment(cwd, {
531
+ target: "local",
532
+ apiUrl: `http://localhost:${kongPort}`,
533
+ databaseUrl: hasEngineOverride(config) ? hostComposeDbUrl(cwd) : composeDbUrl(),
534
+ projectRef: config.project.name,
535
+ kongPort,
536
+ provider: "docker",
537
+ });
538
+ const ast = loadSchemaAst(schemaPath, cwd);
539
+ await provisionDockerStorageBuckets(ast, kongPort, serviceRoleKey);
368
540
  const pidDir = join(homedir(), ".supatype", "projects", config.project.name, "pid");
369
541
  mkdirSync(pidDir, { recursive: true });
370
542
  let studioProc = null;
@@ -432,7 +604,12 @@ export async function runDevCompose(cwd, config, opts) {
432
604
  debounceTimer = setTimeout(() => {
433
605
  debounceTimer = null;
434
606
  console.log(`\n[supatype] Change detected in ${filename}, pushing schema...`);
435
- runComposeSchemaPushQueued(cwd, config, paths, schemaPath, project).catch((e) => console.error("[supatype] Schema push failed:", e.message));
607
+ runComposeSchemaPushQueued(cwd, config, paths, schemaPath, project)
608
+ .then(async () => {
609
+ const updatedAst = loadSchemaAst(schemaPath, cwd);
610
+ await provisionDockerStorageBuckets(updatedAst, kongPort, serviceRoleKey);
611
+ })
612
+ .catch((e) => console.error("[supatype] Schema push failed:", e.message));
436
613
  }, 300);
437
614
  });
438
615
  }