@supatype/cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +143 -93
- package/.turbo/turbo-typecheck.log +1 -1
- package/deno.d.ts +52 -0
- package/dist/augmentation-generator.d.ts +22 -0
- package/dist/augmentation-generator.d.ts.map +1 -1
- package/dist/augmentation-generator.js +43 -7
- package/dist/augmentation-generator.js.map +1 -1
- package/dist/binary-cache.d.ts +14 -0
- package/dist/binary-cache.d.ts.map +1 -1
- package/dist/binary-cache.js +33 -13
- package/dist/binary-cache.js.map +1 -1
- package/dist/cache-clean.d.ts +15 -0
- package/dist/cache-clean.d.ts.map +1 -0
- package/dist/cache-clean.js +76 -0
- package/dist/cache-clean.js.map +1 -0
- package/dist/cache-pins.d.ts +51 -0
- package/dist/cache-pins.d.ts.map +1 -0
- package/dist/cache-pins.js +184 -0
- package/dist/cache-pins.js.map +1 -0
- package/dist/cli-install-method.d.ts +19 -0
- package/dist/cli-install-method.d.ts.map +1 -0
- package/dist/cli-install-method.js +60 -0
- package/dist/cli-install-method.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloud-credentials.d.ts +34 -0
- package/dist/cloud-credentials.d.ts.map +1 -0
- package/dist/cloud-credentials.js +139 -0
- package/dist/cloud-credentials.js.map +1 -0
- package/dist/commands/admin.d.ts +11 -0
- package/dist/commands/admin.d.ts.map +1 -1
- package/dist/commands/admin.js +131 -22
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/cache.d.ts.map +1 -1
- package/dist/commands/cache.js +67 -71
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +32 -8
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/db.d.ts +1 -0
- package/dist/commands/db.d.ts.map +1 -1
- package/dist/commands/db.js +147 -1
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +50 -10
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +28 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +60 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/functions.d.ts +7 -0
- package/dist/commands/functions.d.ts.map +1 -1
- package/dist/commands/functions.js +40 -6
- package/dist/commands/functions.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +5 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/hooks.d.ts +12 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +118 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +41 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/internal.d.ts +6 -0
- package/dist/commands/internal.d.ts.map +1 -0
- package/dist/commands/internal.js +22 -0
- package/dist/commands/internal.js.map +1 -0
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +2 -0
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/link-helpers.d.ts.map +1 -1
- package/dist/commands/link-helpers.js +8 -2
- package/dist/commands/link-helpers.js.map +1 -1
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +110 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +110 -7
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/self-update.d.ts +7 -0
- package/dist/commands/self-update.d.ts.map +1 -1
- package/dist/commands/self-update.js +18 -11
- package/dist/commands/self-update.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +18 -3
- package/dist/config.js.map +1 -1
- package/dist/db-preflight.d.ts +78 -0
- package/dist/db-preflight.d.ts.map +1 -0
- package/dist/db-preflight.js +452 -0
- package/dist/db-preflight.js.map +1 -0
- package/dist/dev-compose.d.ts +1 -1
- package/dist/dev-compose.d.ts.map +1 -1
- package/dist/dev-compose.js +129 -72
- package/dist/dev-compose.js.map +1 -1
- package/dist/env-file.d.ts +40 -2
- package/dist/env-file.d.ts.map +1 -1
- package/dist/env-file.js +132 -11
- package/dist/env-file.js.map +1 -1
- package/dist/field-masking-tier.d.ts +50 -0
- package/dist/field-masking-tier.d.ts.map +1 -0
- package/dist/field-masking-tier.js +91 -0
- package/dist/field-masking-tier.js.map +1 -0
- package/dist/functions-deno-types.d.ts +24 -0
- package/dist/functions-deno-types.d.ts.map +1 -0
- package/dist/functions-deno-types.js +155 -0
- package/dist/functions-deno-types.js.map +1 -0
- package/dist/hook-upload.d.ts +30 -0
- package/dist/hook-upload.d.ts.map +1 -0
- package/dist/hook-upload.js +86 -0
- package/dist/hook-upload.js.map +1 -0
- package/dist/hooks-generator.d.ts +8 -0
- package/dist/hooks-generator.d.ts.map +1 -0
- package/dist/hooks-generator.js +332 -0
- package/dist/hooks-generator.js.map +1 -0
- package/dist/link.d.ts +4 -0
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +2 -0
- package/dist/link.js.map +1 -1
- package/dist/local-secrets.d.ts +71 -0
- package/dist/local-secrets.d.ts.map +1 -0
- package/dist/local-secrets.js +100 -0
- package/dist/local-secrets.js.map +1 -0
- package/dist/model-hooks.d.ts +73 -0
- package/dist/model-hooks.d.ts.map +1 -0
- package/dist/model-hooks.js +211 -0
- package/dist/model-hooks.js.map +1 -0
- package/dist/postgres-ctl.d.ts +11 -0
- package/dist/postgres-ctl.d.ts.map +1 -1
- package/dist/postgres-ctl.js +25 -2
- package/dist/postgres-ctl.js.map +1 -1
- package/dist/project-config.d.ts +121 -1
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +150 -1
- package/dist/project-config.js.map +1 -1
- package/dist/resolve-target.d.ts +4 -0
- package/dist/resolve-target.d.ts.map +1 -1
- package/dist/resolve-target.js +69 -73
- package/dist/resolve-target.js.map +1 -1
- package/dist/schema-ast-v2.d.ts +2 -1
- package/dist/schema-ast-v2.d.ts.map +1 -1
- package/dist/schema-ast-v2.js +4 -2
- package/dist/schema-ast-v2.js.map +1 -1
- package/dist/schema-push-lock.d.ts.map +1 -1
- package/dist/schema-push-lock.js +43 -16
- package/dist/schema-push-lock.js.map +1 -1
- package/dist/self-host-compose.d.ts +24 -0
- package/dist/self-host-compose.d.ts.map +1 -1
- package/dist/self-host-compose.js +301 -69
- package/dist/self-host-compose.js.map +1 -1
- package/dist/service-role-check.d.ts +21 -0
- package/dist/service-role-check.d.ts.map +1 -0
- package/dist/service-role-check.js +85 -0
- package/dist/service-role-check.js.map +1 -0
- package/dist/target-client.d.ts +17 -0
- package/dist/target-client.d.ts.map +1 -1
- package/dist/target-client.js +69 -17
- package/dist/target-client.js.map +1 -1
- package/dist/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor.js +736 -32
- package/dist/type-extractor.js.map +1 -1
- package/dist/ui/runtime/command-chrome.js +1 -1
- package/dist/ui/runtime/command-chrome.js.map +1 -1
- package/dist/ui/runtime/stdin-after-ink.d.ts.map +1 -1
- package/dist/ui/runtime/stdin-after-ink.js +3 -1
- package/dist/ui/runtime/stdin-after-ink.js.map +1 -1
- package/package.json +4 -1
- package/scripts/generate-homebrew-formula.mjs +121 -0
- package/src/augmentation-generator.ts +46 -9
- package/src/binary-cache.ts +47 -15
- package/src/cache-clean.ts +81 -0
- package/src/cache-pins.ts +243 -0
- package/src/cli-install-method.ts +67 -0
- package/src/cli.ts +6 -0
- package/src/cloud-credentials.ts +183 -0
- package/src/commands/admin.ts +153 -28
- package/src/commands/cache.ts +90 -75
- package/src/commands/cloud.ts +32 -8
- package/src/commands/db.ts +162 -1
- package/src/commands/dev.ts +57 -8
- package/src/commands/doctor.ts +69 -3
- package/src/commands/functions.ts +42 -5
- package/src/commands/generate.ts +5 -1
- package/src/commands/hooks.ts +138 -0
- package/src/commands/init.ts +42 -8
- package/src/commands/internal.ts +23 -0
- package/src/commands/keys.ts +2 -0
- package/src/commands/link-helpers.ts +9 -2
- package/src/commands/login.ts +127 -0
- package/src/commands/push.ts +124 -7
- package/src/commands/self-update.ts +85 -13
- package/src/config.ts +22 -3
- package/src/db-preflight.ts +575 -0
- package/src/dev-compose.ts +144 -73
- package/src/env-file.ts +157 -11
- package/src/field-masking-tier.ts +107 -0
- package/src/functions-deno-types.ts +188 -0
- package/src/hook-upload.ts +107 -0
- package/src/hooks-generator.ts +352 -0
- package/src/link.ts +7 -0
- package/src/local-secrets.ts +104 -0
- package/src/model-hooks.ts +260 -0
- package/src/postgres-ctl.ts +29 -2
- package/src/project-config.ts +236 -2
- package/src/resolve-target.ts +113 -68
- package/src/schema-ast-v2.ts +5 -2
- package/src/schema-push-lock.ts +56 -17
- package/src/self-host-compose.ts +344 -68
- package/src/service-role-check.ts +111 -0
- package/src/target-client.ts +105 -18
- package/src/type-extractor.ts +883 -28
- package/src/ui/runtime/command-chrome.ts +1 -1
- package/src/ui/runtime/stdin-after-ink.ts +3 -1
- package/tests/access-composition.test.ts +667 -0
- package/tests/admin-studio-membership.test.ts +121 -0
- package/tests/api-schemas.test.ts +83 -0
- package/tests/archive-name-alias.test.ts +42 -0
- package/tests/augmentation-generator.test.ts +72 -4
- package/tests/cache-clean.test.ts +206 -0
- package/tests/cli-help.test.ts +3 -0
- package/tests/cli-install-method.test.ts +66 -0
- package/tests/command-chrome-coverage.test.ts +31 -26
- package/tests/command-chrome-wrap.test.ts +1 -0
- package/tests/db-preflight.test.ts +72 -0
- package/tests/doctor-render.test.ts +62 -0
- package/tests/doctor-service-role.test.ts +55 -0
- package/tests/env-file.test.ts +121 -0
- package/tests/external-database-compose.test.ts +184 -0
- package/tests/external-database-config.test.ts +154 -0
- package/tests/field-masking-tier.test.ts +184 -0
- package/tests/functions-deno-types.test.ts +197 -0
- package/tests/homebrew-formula.test.ts +58 -0
- package/tests/hook-upload.test.ts +125 -0
- package/tests/hooks-generator.test.ts +212 -0
- package/tests/init.test.ts +3 -0
- package/tests/local-secrets.test.ts +92 -0
- package/tests/model-hooks.test.ts +322 -0
- package/tests/runtime-contract.test.ts +113 -1
- package/tests/service-role-check.test.ts +109 -0
- package/tests/service-role-routes.test.ts +51 -0
- package/tests/target-client-refresh.test.ts +94 -0
- package/tests/type-extractor.test.ts +187 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/tests/engine-distribution.test.ts +0 -418
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-push-lock.d.ts","sourceRoot":"","sources":["../src/schema-push-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAC9C,eAAO,MAAM,sBAAsB,IAAI,CAAA;AA2DvC;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"schema-push-lock.d.ts","sourceRoot":"","sources":["../src/schema-push-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAC9C,eAAO,MAAM,sBAAsB,IAAI,CAAA;AA2DvC;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CA4CZ"}
|
package/dist/schema-push-lock.js
CHANGED
|
@@ -59,14 +59,23 @@ function schemaPushLockIsHeld(paths, cwd, composeProject) {
|
|
|
59
59
|
* `psql` inside the compose db container. Killing the holder releases the lock.
|
|
60
60
|
*/
|
|
61
61
|
export async function withComposeSchemaPushLock(paths, cwd, composeProject, fn) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
// The lock is held by a psql session reading from **stdin**, not by `-c … pg_sleep(86400)`.
|
|
63
|
+
//
|
|
64
|
+
// Killing the local `docker` client does not stop the process inside the container: `docker
|
|
65
|
+
// compose exec` does not forward the signal. With a sleeping session that meant every push
|
|
66
|
+
// left a backend holding this advisory lock for 24 hours — so `supatype push` never exited and
|
|
67
|
+
// the next push blocked on it. Observed end-to-end before this change.
|
|
68
|
+
//
|
|
69
|
+
// Closing stdin *does* propagate: psql sees EOF, exits, and the session ends, which is what
|
|
70
|
+
// releases an advisory lock. Deterministic, and it needs no signal to cross the boundary.
|
|
71
|
+
const args = dbExecArgs(paths, cwd, composeProject, ["-f", "-"]);
|
|
65
72
|
let stderrBuf = "";
|
|
66
73
|
const holder = spawn("docker", args, {
|
|
67
74
|
cwd,
|
|
68
|
-
stdio: ["
|
|
75
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
69
76
|
});
|
|
77
|
+
holder.stdin?.write(`SELECT pg_advisory_lock(${SCHEMA_PUSH_LOCK_CLASSID}, ${SCHEMA_PUSH_LOCK_OBJID});\n`);
|
|
78
|
+
// Deliberately not ended — the open pipe is what keeps the session, and the lock, alive.
|
|
70
79
|
holder.stderr?.on("data", (chunk) => {
|
|
71
80
|
stderrBuf += chunk.toString();
|
|
72
81
|
});
|
|
@@ -88,19 +97,37 @@ export async function withComposeSchemaPushLock(paths, cwd, composeProject, fn)
|
|
|
88
97
|
return await fn();
|
|
89
98
|
}
|
|
90
99
|
finally {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
await releaseHolder(holder, paths, cwd, composeProject);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* End the holder session, then confirm the lock is actually gone.
|
|
105
|
+
*
|
|
106
|
+
* Closing stdin is the mechanism; the check is because a leaked holder is silent and expensive —
|
|
107
|
+
* it blocks every later push. If EOF did not do it, terminate the backend directly.
|
|
108
|
+
*/
|
|
109
|
+
async function releaseHolder(holder, paths, cwd, composeProject) {
|
|
110
|
+
if (holder.exitCode === null) {
|
|
111
|
+
holder.stdin?.end();
|
|
112
|
+
await new Promise((resolveDone) => {
|
|
113
|
+
const t = setTimeout(() => {
|
|
114
|
+
holder.kill("SIGKILL");
|
|
115
|
+
resolveDone();
|
|
116
|
+
}, 5000);
|
|
117
|
+
holder.once("exit", () => {
|
|
118
|
+
clearTimeout(t);
|
|
119
|
+
resolveDone();
|
|
102
120
|
});
|
|
103
|
-
}
|
|
121
|
+
});
|
|
104
122
|
}
|
|
123
|
+
if (!schemaPushLockIsHeld(paths, cwd, composeProject))
|
|
124
|
+
return;
|
|
125
|
+
// Last resort: the session outlived its client. Ending it releases the lock.
|
|
126
|
+
spawnSync("docker", dbExecArgs(paths, cwd, composeProject, [
|
|
127
|
+
"-tAc",
|
|
128
|
+
`SELECT pg_terminate_backend(pid) FROM pg_stat_activity
|
|
129
|
+
WHERE pid <> pg_backend_pid()
|
|
130
|
+
AND query LIKE '%pg_advisory_lock(${SCHEMA_PUSH_LOCK_CLASSID}, ${SCHEMA_PUSH_LOCK_OBJID})%'`,
|
|
131
|
+
]), { cwd, stdio: "ignore" });
|
|
105
132
|
}
|
|
106
133
|
//# sourceMappingURL=schema-push-lock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-push-lock.js","sourceRoot":"","sources":["../src/schema-push-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,SAAS,eAAe,CACtB,KAA2B,EAC3B,GAAW,EACX,cAAsB;IAEtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IACnG,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CACjB,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,QAAkB;IAElB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAA;IAC/D,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IACvD,OAAO;QACL,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC;QAC9C,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,cAAc,IAAI,EAAE;QACpB,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,EAAE;QACF,IAAI;QACJ,iBAAiB;QACjB,GAAG,QAAQ;KACZ,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA2B,EAC3B,GAAW,EACX,cAAsB;IAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE;QAClD,MAAM;QACN;;;yBAGqB,wBAAwB;uBAC1B,sBAAsB;;OAEtC;KACJ,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACnE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAA;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,EAAoB;IAEpB,
|
|
1
|
+
{"version":3,"file":"schema-push-lock.js","sourceRoot":"","sources":["../src/schema-push-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DockerBrandOptions } from "./docker-runtime.js";
|
|
2
2
|
import { type SupatypeProjectConfig } from "./project-config.js";
|
|
3
|
+
import { type FieldMaskingTier } from "./field-masking-tier.js";
|
|
3
4
|
/** Env keys written when `versions` pins exist in supatype.config.ts. */
|
|
4
5
|
export declare const COMPOSE_PINNED_IMAGE_ENV_KEYS: readonly ["SUPATYPE_ENGINE_IMAGE", "SUPATYPE_SERVER_IMAGE", "SUPATYPE_POSTGRES_IMAGE"];
|
|
5
6
|
/** Compose image env vars that may be overridden manually in `.env`. */
|
|
@@ -40,8 +41,31 @@ export declare const COMPOSE_STUDIO_HOST_URL = "http://host.docker.internal:3002
|
|
|
40
41
|
export interface SelfHostComposeOptions {
|
|
41
42
|
/** `supatype dev` with provider docker: internal-only db/server; Kong on host :18473. */
|
|
42
43
|
devLocal?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Which mechanism enforces per-column rules, when the caller knows.
|
|
46
|
+
*
|
|
47
|
+
* Only the call sites that have loaded the schema can say — see `field-masking-tier.ts`. Left
|
|
48
|
+
* unset, the exposed schema list is today's, which is correct for every project without field
|
|
49
|
+
* rules and for every project on `supatype/postgres`.
|
|
50
|
+
*/
|
|
51
|
+
fieldMaskingTier?: FieldMaskingTier;
|
|
43
52
|
}
|
|
44
53
|
export declare function renderSelfHostCompose(config: SupatypeProjectConfig, cwd?: string, options?: SelfHostComposeOptions): string;
|
|
54
|
+
/**
|
|
55
|
+
* A loopback host in the external URL cannot work from inside a container.
|
|
56
|
+
*
|
|
57
|
+
* `127.0.0.1` means "this container" to every service in the stack, so an external database on the
|
|
58
|
+
* host machine is unreachable — while the *CLI* reaches it fine, because the CLI runs on the host.
|
|
59
|
+
* That asymmetry is the trap: `supatype db check` passes, `push` applies the schema, and then
|
|
60
|
+
* storage, realtime and the server all die with ECONNREFUSED against their own loopback. Found by
|
|
61
|
+
* rehearsing exactly that.
|
|
62
|
+
*
|
|
63
|
+
* Refused rather than rewritten. The compose file interpolates one `${DATABASE_URL}` for every
|
|
64
|
+
* service, so silently substituting a different host would mean the CLI and the stack no longer
|
|
65
|
+
* agree about which database they are talking to — the thing every other check here exists to
|
|
66
|
+
* prevent.
|
|
67
|
+
*/
|
|
68
|
+
export declare function loopbackExternalHost(config: SupatypeProjectConfig): string | undefined;
|
|
45
69
|
export declare function writeSelfHostCompose(cwd: string, config: SupatypeProjectConfig, options?: SelfHostComposeOptions): SelfHostComposePaths;
|
|
46
70
|
export interface RunDockerComposeOptions {
|
|
47
71
|
/** Suppress docker compose progress UI (container status lines). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-host-compose.d.ts","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,
|
|
1
|
+
{"version":3,"file":"self-host-compose.d.ts","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"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"}
|