@supatype/cli 0.1.0-alpha.13 → 0.1.0-alpha.15
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 +209 -92
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/app-config.d.ts +10 -0
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +72 -0
- package/dist/app-config.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +83 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/app.js +2 -2
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/init.d.ts +29 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +569 -90
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +15 -1
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +39 -4
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/self-host.d.ts.map +1 -1
- package/dist/commands/self-host.js +5 -5
- package/dist/commands/self-host.js.map +1 -1
- package/dist/kong-config.d.ts +9 -0
- package/dist/kong-config.d.ts.map +1 -1
- package/dist/kong-config.js +18 -1
- package/dist/kong-config.js.map +1 -1
- package/dist/project-config.d.ts +16 -0
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +34 -0
- package/dist/project-config.js.map +1 -1
- package/dist/prompts.d.ts +8 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +20 -0
- package/dist/prompts.js.map +1 -0
- package/dist/self-host-compose.d.ts.map +1 -1
- package/dist/self-host-compose.js +62 -17
- package/dist/self-host-compose.js.map +1 -1
- package/package.json +2 -1
- package/src/app-config.ts +80 -0
- package/src/cli.ts +2 -0
- package/src/commands/add.ts +94 -0
- package/src/commands/app.ts +2 -2
- package/src/commands/init.ts +738 -88
- package/src/commands/keys.ts +49 -4
- package/src/commands/self-host.ts +25 -5
- package/src/kong-config.ts +24 -1
- package/src/project-config.ts +45 -0
- package/src/prompts.ts +21 -0
- package/src/self-host-compose.ts +62 -17
- package/tests/config.test.ts +26 -0
- package/tests/init.test.ts +128 -15
- package/tests/runtime-contract.test.ts +111 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join, relative, resolve } from "node:path";
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
|
-
import { preferredFunctionsPathFromProject } from "./project-config.js";
|
|
4
|
+
import { preferredFunctionsPathFromProject, selfHostTlsEnabled } from "./project-config.js";
|
|
5
5
|
import { hasEngineOverride, hasStudioOverride, pinnedVersion, fetchLatestVersion, VERSION_PIN_LOCAL } from "./binary-cache.js";
|
|
6
6
|
import { buildKongDeclarative } from "./kong-config.js";
|
|
7
7
|
/** Env keys written when `versions` pins exist in supatype.config.ts. */
|
|
@@ -196,6 +196,11 @@ export function renderSelfHostCompose(config, cwd = process.cwd(), options) {
|
|
|
196
196
|
const projectMount = projectMountPath(cwd);
|
|
197
197
|
const kongMount = kongMountPath(cwd);
|
|
198
198
|
const devLocal = options?.devLocal === true;
|
|
199
|
+
const tlsEnabled = selfHostTlsEnabled(config, devLocal);
|
|
200
|
+
const domain = config.server.domain?.trim() ?? "";
|
|
201
|
+
// When TLS is on, default external URLs to https://<domain> so auth links/redirects use HTTPS.
|
|
202
|
+
const externalUrlFallback = tlsEnabled ? `https://${domain}` : "http://localhost:18473";
|
|
203
|
+
const siteUrlFallback = tlsEnabled ? `https://${domain}` : "http://localhost:3000";
|
|
199
204
|
const studioHostDev = devLocal && hasStudioOverride(config);
|
|
200
205
|
const appEnv = serverAppEnvForCompose(config, devLocal);
|
|
201
206
|
const staticDir = staticDirForCompose(config) ?? "./dist";
|
|
@@ -207,7 +212,7 @@ export function renderSelfHostCompose(config, cwd = process.cwd(), options) {
|
|
|
207
212
|
studio:
|
|
208
213
|
${studioService}
|
|
209
214
|
environment:
|
|
210
|
-
SUPATYPE_CLOUD_JSON: '{"url":"\${API_EXTERNAL_URL
|
|
215
|
+
SUPATYPE_CLOUD_JSON: '{"url":"\${API_EXTERNAL_URL:-${externalUrlFallback}}","anonKey":"\${ANON_KEY:-}"}'
|
|
211
216
|
expose:
|
|
212
217
|
- "3002"
|
|
213
218
|
`;
|
|
@@ -237,6 +242,44 @@ ${studioService}
|
|
|
237
242
|
: ` ports:
|
|
238
243
|
- "9000:9000"
|
|
239
244
|
- "9001:9001"
|
|
245
|
+
`;
|
|
246
|
+
const kongTlsEnv = tlsEnabled
|
|
247
|
+
? ` KONG_PROXY_LISTEN: "0.0.0.0:8000, 0.0.0.0:8443 ssl"
|
|
248
|
+
KONG_LUA_SSL_TRUSTED_CERTIFICATE: system
|
|
249
|
+
KONG_LUA_SSL_VERIFY_DEPTH: "2"
|
|
250
|
+
`
|
|
251
|
+
: "";
|
|
252
|
+
const kongPorts = tlsEnabled
|
|
253
|
+
? ` - "80:8000"
|
|
254
|
+
- "443:8443"`
|
|
255
|
+
: ` - "\${SUPATYPE_KONG_PORT:-18473}:8000"`;
|
|
256
|
+
const kongTlsDependsOn = tlsEnabled ? "\n - valkey" : "";
|
|
257
|
+
const valkeyBlock = tlsEnabled
|
|
258
|
+
? `
|
|
259
|
+
valkey:
|
|
260
|
+
image: \${SUPATYPE_VALKEY_IMAGE:-valkey/valkey:8-alpine}
|
|
261
|
+
command: ["valkey-server", "--appendonly", "yes"]
|
|
262
|
+
expose:
|
|
263
|
+
- "6379"
|
|
264
|
+
volumes:
|
|
265
|
+
- valkey-data:/data
|
|
266
|
+
`
|
|
267
|
+
: "";
|
|
268
|
+
const tlsHintComment = tlsEnabled
|
|
269
|
+
? ""
|
|
270
|
+
: ` # HTTPS is off. To enable automatic TLS (Let's Encrypt) for production, set in supatype.config.ts:
|
|
271
|
+
# server: { mode: "standalone", domain: "your.domain", tls: { email: "you@example.com" } }
|
|
272
|
+
# then re-run \`supatype self-host compose up -d\`. Kong publishes :80/:443 and provisions certs automatically.
|
|
273
|
+
`;
|
|
274
|
+
const volumesBlock = tlsEnabled
|
|
275
|
+
? `volumes:
|
|
276
|
+
db-data:
|
|
277
|
+
minio-data:
|
|
278
|
+
valkey-data:
|
|
279
|
+
`
|
|
280
|
+
: `volumes:
|
|
281
|
+
db-data:
|
|
282
|
+
minio-data:
|
|
240
283
|
`;
|
|
241
284
|
return `# Generated by supatype self-host compose
|
|
242
285
|
# Kong → supatype-server (unified gateway) → internal PostgREST / storage / etc.
|
|
@@ -297,12 +340,12 @@ ${dbPorts} volumes:
|
|
|
297
340
|
SUPATYPE_FUNCTIONS_ROOT: /project/functions
|
|
298
341
|
SUPATYPE_DENO_FUNCTIONS_DIR: /project/functions
|
|
299
342
|
PORT: "8001"
|
|
300
|
-
SUPATYPE_URL: \${API_EXTERNAL_URL
|
|
343
|
+
SUPATYPE_URL: \${API_EXTERNAL_URL:-${externalUrlFallback}}
|
|
301
344
|
SUPATYPE_ANON_KEY: \${ANON_KEY:-}
|
|
302
345
|
SUPATYPE_SERVICE_ROLE_KEY: \${SERVICE_ROLE_KEY:-}
|
|
303
346
|
STRIPE_SECRET_KEY: \${STRIPE_SECRET_KEY:-}
|
|
304
347
|
STRIPE_WEBHOOK_SECRET: \${STRIPE_WEBHOOK_SECRET:-}
|
|
305
|
-
SITE_URL: \${SITE_URL:-\${API_EXTERNAL_URL
|
|
348
|
+
SITE_URL: \${SITE_URL:-\${API_EXTERNAL_URL:-${externalUrlFallback}}}
|
|
306
349
|
depends_on:
|
|
307
350
|
db:
|
|
308
351
|
condition: service_healthy
|
|
@@ -341,7 +384,7 @@ ${serverPorts} volumes:
|
|
|
341
384
|
SUPATYPE_POSTGREST_URL: http://postgrest:3000
|
|
342
385
|
SUPATYPE_GRAPHQL_URL: http://postgrest:3000
|
|
343
386
|
SUPATYPE_STORAGE_URL: http://storage:5000
|
|
344
|
-
SUPATYPE_URL: \${API_EXTERNAL_URL
|
|
387
|
+
SUPATYPE_URL: \${API_EXTERNAL_URL:-${externalUrlFallback}}
|
|
345
388
|
SUPATYPE_ANON_KEY: \${ANON_KEY:-}
|
|
346
389
|
SUPATYPE_SERVICE_ROLE_KEY: \${SERVICE_ROLE_KEY:-}
|
|
347
390
|
SUPATYPE_SQL_DATABASE_URL: "postgresql://\${POSTGRES_USER:-supatype_admin}:\${POSTGRES_PASSWORD:-postgres}@db:5432/\${POSTGRES_DB:-supatype}"
|
|
@@ -351,11 +394,11 @@ ${serverPorts} volumes:
|
|
|
351
394
|
${appEnv}
|
|
352
395
|
GOTRUE_API_HOST: 0.0.0.0
|
|
353
396
|
GOTRUE_API_PORT: 9999
|
|
354
|
-
API_EXTERNAL_URL: \${API_EXTERNAL_URL
|
|
355
|
-
GOTRUE_API_EXTERNAL_URL: \${API_EXTERNAL_URL
|
|
397
|
+
API_EXTERNAL_URL: \${API_EXTERNAL_URL:-${externalUrlFallback}}
|
|
398
|
+
GOTRUE_API_EXTERNAL_URL: \${API_EXTERNAL_URL:-${externalUrlFallback}}
|
|
356
399
|
GOTRUE_DB_DRIVER: postgres
|
|
357
400
|
GOTRUE_DB_DATABASE_URL: "postgres://\${POSTGRES_USER:-supatype_admin}:\${POSTGRES_PASSWORD:-postgres}@db:5432/\${POSTGRES_DB:-supatype}?search_path=auth"
|
|
358
|
-
GOTRUE_SITE_URL: \${SITE_URL
|
|
401
|
+
GOTRUE_SITE_URL: \${SITE_URL:-${siteUrlFallback}}
|
|
359
402
|
GOTRUE_JWT_SECRET: \${JWT_SECRET:-super-secret-jwt-token-change-in-production}
|
|
360
403
|
GOTRUE_JWT_EXP: 3600
|
|
361
404
|
GOTRUE_JWT_AUD: authenticated
|
|
@@ -395,8 +438,7 @@ ${minioPorts} volumes:
|
|
|
395
438
|
depends_on:
|
|
396
439
|
db:
|
|
397
440
|
condition: service_healthy
|
|
398
|
-
${studioBlock}
|
|
399
|
-
kong:
|
|
441
|
+
${studioBlock}${valkeyBlock}${tlsHintComment} kong:
|
|
400
442
|
image: kong:3.6
|
|
401
443
|
environment:
|
|
402
444
|
KONG_DATABASE: "off"
|
|
@@ -405,17 +447,14 @@ ${studioBlock}
|
|
|
405
447
|
KONG_ADMIN_ACCESS_LOG: /dev/stdout
|
|
406
448
|
KONG_PROXY_ERROR_LOG: /dev/stderr
|
|
407
449
|
KONG_ADMIN_ERROR_LOG: /dev/stderr
|
|
408
|
-
volumes:
|
|
450
|
+
${kongTlsEnv} volumes:
|
|
409
451
|
- ${kongMount}:/etc/kong/kong.yml:ro
|
|
410
452
|
ports:
|
|
411
|
-
|
|
453
|
+
${kongPorts}
|
|
412
454
|
depends_on:
|
|
413
|
-
${kongDependsOn}
|
|
455
|
+
${kongDependsOn}${kongTlsDependsOn}
|
|
414
456
|
|
|
415
|
-
|
|
416
|
-
db-data:
|
|
417
|
-
minio-data:
|
|
418
|
-
`;
|
|
457
|
+
${volumesBlock}`;
|
|
419
458
|
}
|
|
420
459
|
function ensureComposeManifest(cwd) {
|
|
421
460
|
const manifestPath = join(cwd, ".supatype", "manifest.json");
|
|
@@ -441,12 +480,18 @@ export function writeSelfHostCompose(cwd, config, options) {
|
|
|
441
480
|
ensureComposeManifest(cwd);
|
|
442
481
|
writeFileSync(paths.composePath, renderSelfHostCompose(config, cwd, options), "utf8");
|
|
443
482
|
const studioHostDev = options?.devLocal === true && hasStudioOverride(config);
|
|
483
|
+
const tlsEnabled = selfHostTlsEnabled(config, options?.devLocal === true);
|
|
484
|
+
const domain = config.server.domain?.trim();
|
|
485
|
+
const acmeEmail = config.server.tls?.email?.trim();
|
|
444
486
|
writeFileSync(paths.kongPath, buildKongDeclarative({
|
|
445
487
|
unifiedGateway: true,
|
|
446
488
|
...(studioHostDev && {
|
|
447
489
|
studioServiceUrl: COMPOSE_STUDIO_HOST_URL,
|
|
448
490
|
studioStripPath: false,
|
|
449
491
|
}),
|
|
492
|
+
...(tlsEnabled && domain && acmeEmail
|
|
493
|
+
? { acme: { email: acmeEmail, domain, redisHost: "valkey" } }
|
|
494
|
+
: {}),
|
|
450
495
|
}), "utf8");
|
|
451
496
|
return paths;
|
|
452
497
|
}
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supatype/cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.15",
|
|
4
4
|
"description": "Supatype CLI — schema push, introspect, generate",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
+
"@clack/prompts": "^1.6.0",
|
|
22
23
|
"commander": "^12.1.0",
|
|
23
24
|
"pg": "^8.13.0",
|
|
24
25
|
"ts-morph": "^28.0.0",
|
package/src/app-config.ts
CHANGED
|
@@ -55,6 +55,86 @@ function updateAppConfigAst(configPath: string, input: UpdateAppConfigInput): st
|
|
|
55
55
|
return sourceFile.getFullText()
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
export interface UpdateServerConfigInput {
|
|
59
|
+
domain: string
|
|
60
|
+
tlsEmail: string
|
|
61
|
+
provider?: "kong" | "none"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Set `server.mode = "standalone"` plus `domain` and `tls` in supatype.config.ts,
|
|
66
|
+
* enabling self-host HTTPS. Preserves other `server` keys (port, etc).
|
|
67
|
+
*/
|
|
68
|
+
export function updateServerConfigInProject(cwd: string, input: UpdateServerConfigInput): string {
|
|
69
|
+
const configPath = resolve(cwd, "supatype.config.ts")
|
|
70
|
+
if (!existsSync(configPath)) {
|
|
71
|
+
throw new Error("supatype.config.ts not found. Run: supatype init")
|
|
72
|
+
}
|
|
73
|
+
const next = updateServerConfigAst(configPath, input)
|
|
74
|
+
writeFileSync(configPath, next, "utf8")
|
|
75
|
+
return configPath
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function updateServerConfigAst(configPath: string, input: UpdateServerConfigInput): string {
|
|
79
|
+
const project = new Project({
|
|
80
|
+
useInMemoryFileSystem: false,
|
|
81
|
+
skipAddingFilesFromTsConfig: true,
|
|
82
|
+
manipulationSettings: {
|
|
83
|
+
quoteKind: QuoteKind.Double,
|
|
84
|
+
},
|
|
85
|
+
})
|
|
86
|
+
const srcText = readFileSync(configPath, "utf8")
|
|
87
|
+
const sourceFile = project.createSourceFile(configPath, srcText, { overwrite: true })
|
|
88
|
+
const rootObject = getRootConfigObject(sourceFile)
|
|
89
|
+
|
|
90
|
+
const serverProperty = rootObject.getProperty("server")
|
|
91
|
+
|
|
92
|
+
if (serverProperty === undefined) {
|
|
93
|
+
rootObject.addPropertyAssignment({
|
|
94
|
+
name: "server",
|
|
95
|
+
initializer: renderServerInitializer(input),
|
|
96
|
+
})
|
|
97
|
+
} else if (Node.isPropertyAssignment(serverProperty)) {
|
|
98
|
+
const init = serverProperty.getInitializer()
|
|
99
|
+
if (init && Node.isObjectLiteralExpression(init)) {
|
|
100
|
+
patchServerObject(init, input)
|
|
101
|
+
} else {
|
|
102
|
+
serverProperty.setInitializer(renderServerInitializer(input))
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
serverProperty.remove()
|
|
106
|
+
rootObject.addPropertyAssignment({
|
|
107
|
+
name: "server",
|
|
108
|
+
initializer: renderServerInitializer(input),
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return sourceFile.getFullText()
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function renderServerInitializer(input: UpdateServerConfigInput): string {
|
|
116
|
+
const provider = input.provider ?? "kong"
|
|
117
|
+
return `{
|
|
118
|
+
mode: "standalone",
|
|
119
|
+
domain: "${input.domain}",
|
|
120
|
+
tls: { email: "${input.tlsEmail}", provider: "${provider}" },
|
|
121
|
+
}`
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function patchServerObject(serverObj: ObjectLiteralExpression, input: UpdateServerConfigInput): void {
|
|
125
|
+
upsertStringProperty(serverObj, "mode", "standalone")
|
|
126
|
+
upsertStringProperty(serverObj, "domain", input.domain)
|
|
127
|
+
const provider = input.provider ?? "kong"
|
|
128
|
+
const tlsInitializer = `{ email: "${input.tlsEmail}", provider: "${provider}" }`
|
|
129
|
+
const existing = serverObj.getProperty("tls")
|
|
130
|
+
if (existing && Node.isPropertyAssignment(existing)) {
|
|
131
|
+
existing.setInitializer(tlsInitializer)
|
|
132
|
+
} else {
|
|
133
|
+
if (existing) existing.remove()
|
|
134
|
+
serverObj.addPropertyAssignment({ name: "tls", initializer: tlsInitializer })
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
58
138
|
function getRootConfigObject(sourceFile: SourceFile): ObjectLiteralExpression {
|
|
59
139
|
const exportAssignment = sourceFile.getFirstDescendantByKind(SyntaxKind.ExportAssignment)
|
|
60
140
|
if (!exportAssignment) {
|
package/src/cli.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { registerMigrate } from "./commands/migrate.js"
|
|
|
15
15
|
import { registerSeed } from "./commands/seed.js"
|
|
16
16
|
import { registerKeys } from "./commands/keys.js"
|
|
17
17
|
import { registerApp } from "./commands/app.js"
|
|
18
|
+
import { registerAdd } from "./commands/add.js"
|
|
18
19
|
import { registerSelfHost } from "./commands/self-host.js"
|
|
19
20
|
import { registerCloud } from "./commands/cloud.js"
|
|
20
21
|
import { registerEngine } from "./commands/engine.js"
|
|
@@ -52,6 +53,7 @@ export function run(): void {
|
|
|
52
53
|
registerSeed(program)
|
|
53
54
|
registerKeys(program)
|
|
54
55
|
registerApp(program)
|
|
56
|
+
registerAdd(program)
|
|
55
57
|
registerSelfHost(program)
|
|
56
58
|
registerCloud(program)
|
|
57
59
|
registerEngine(program)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Command } from "commander"
|
|
2
|
+
import * as p from "@clack/prompts"
|
|
3
|
+
import { loadConfig } from "../config.js"
|
|
4
|
+
import { selfHostTlsEnabled } from "../project-config.js"
|
|
5
|
+
import { updateServerConfigInProject } from "../app-config.js"
|
|
6
|
+
import { ensureNotCancelled, printLogo } from "../prompts.js"
|
|
7
|
+
|
|
8
|
+
export function registerAdd(program: Command): void {
|
|
9
|
+
const addCmd = program
|
|
10
|
+
.command("add")
|
|
11
|
+
.description("Add capabilities to an existing project")
|
|
12
|
+
|
|
13
|
+
addCmd
|
|
14
|
+
.command("domain [domain]")
|
|
15
|
+
.description("Add a custom domain with automatic HTTPS (self-host)")
|
|
16
|
+
.option("--email <email>", "Email for Let's Encrypt TLS certificates")
|
|
17
|
+
.action(async (domainArg: string | undefined, opts: { email?: string }) => {
|
|
18
|
+
await addDomain(domainArg, opts.email)
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async function promptDomain(initial?: string): Promise<string> {
|
|
23
|
+
const trimmed = initial?.trim()
|
|
24
|
+
if (trimmed) return trimmed
|
|
25
|
+
return ensureNotCancelled(
|
|
26
|
+
await p.text({
|
|
27
|
+
message: "Please provide domain:",
|
|
28
|
+
placeholder: "demo.supatype.com",
|
|
29
|
+
validate: (v) => ((v ?? "").trim().length === 0 ? "Domain is required" : undefined),
|
|
30
|
+
}),
|
|
31
|
+
).trim()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async function promptEmail(initial?: string): Promise<string> {
|
|
35
|
+
const trimmed = initial?.trim()
|
|
36
|
+
if (trimmed) return trimmed
|
|
37
|
+
return ensureNotCancelled(
|
|
38
|
+
await p.text({
|
|
39
|
+
message: "Please provide email for TLS",
|
|
40
|
+
placeholder: "hello@supatype.com",
|
|
41
|
+
validate: (v) => ((v ?? "").trim().length === 0 ? "Email is required" : undefined),
|
|
42
|
+
}),
|
|
43
|
+
).trim()
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function addDomain(domainArg?: string, emailArg?: string): Promise<void> {
|
|
47
|
+
const cwd = process.cwd()
|
|
48
|
+
const interactive = !domainArg?.trim() || !emailArg?.trim()
|
|
49
|
+
|
|
50
|
+
if (interactive) {
|
|
51
|
+
printLogo()
|
|
52
|
+
p.intro("Add a custom domain")
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const domain = await promptDomain(domainArg)
|
|
56
|
+
const email = await promptEmail(emailArg)
|
|
57
|
+
|
|
58
|
+
try {
|
|
59
|
+
const configPath = updateServerConfigInProject(cwd, { domain, tlsEmail: email })
|
|
60
|
+
if (interactive) {
|
|
61
|
+
p.outro(`Updated ${configPath}`)
|
|
62
|
+
} else {
|
|
63
|
+
console.log(` updated ${configPath}`)
|
|
64
|
+
}
|
|
65
|
+
printDomainNextSteps(cwd, domain)
|
|
66
|
+
} catch (err) {
|
|
67
|
+
console.error((err as Error).message)
|
|
68
|
+
process.exit(1)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function printDomainNextSteps(cwd: string, domain: string): void {
|
|
73
|
+
let tlsActive = true
|
|
74
|
+
try {
|
|
75
|
+
tlsActive = selfHostTlsEnabled(loadConfig(cwd))
|
|
76
|
+
} catch {
|
|
77
|
+
// config re-load is best-effort for the warning below
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
console.log(`\nDomain set to ${domain} with automatic HTTPS.`)
|
|
81
|
+
if (!tlsActive) {
|
|
82
|
+
console.log(
|
|
83
|
+
"\nNote: a supatype.local.config.ts override (server.mode=dev) is suppressing HTTPS locally.\n" +
|
|
84
|
+
"That file is gitignored, so HTTPS still activates on your production server.",
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
console.log("\nGo live:")
|
|
88
|
+
console.log(` 1. Point DNS: an A record for ${domain} -> your server's public IP`)
|
|
89
|
+
console.log(" 2. Open ports 80 and 443 on the server firewall")
|
|
90
|
+
console.log(" 3. supatype self-host compose up -d # Kong provisions HTTPS automatically")
|
|
91
|
+
console.log(`\nYour Supatype platform goes live at https://${domain}`)
|
|
92
|
+
console.log(" Your app, REST, Auth, Storage, Realtime, Functions, and Studio — all behind one HTTPS domain.")
|
|
93
|
+
console.log(" Certificates persist in the valkey-data volume.\n")
|
|
94
|
+
}
|
package/src/commands/app.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function registerApp(program: Command): void {
|
|
|
14
14
|
.description("Configure app routing: --static for a built site, or proxy to a dev server")
|
|
15
15
|
.option("--static", "Serve a static directory at / (default: ./public, or [dir] argument)")
|
|
16
16
|
.option("--port <port>", "Port your app listens on (proxy mode)", "3000")
|
|
17
|
-
.option("--upstream <url>", "
|
|
17
|
+
.option("--upstream <url>", "URL of your running dev server (proxy mode; defaults to localhost:<port>)")
|
|
18
18
|
.option("--dockerfile <path>", "(deprecated) ignored — use supatype.config.ts")
|
|
19
19
|
.action(
|
|
20
20
|
(
|
|
@@ -77,7 +77,7 @@ function addProxyApp(cwd: string, port: string, upstream?: string): void {
|
|
|
77
77
|
try {
|
|
78
78
|
const configPath = updateAppConfigInProject(cwd, { mode: "proxy", upstream: upstreamUrl })
|
|
79
79
|
console.log(` updated ${configPath}`)
|
|
80
|
-
console.log(`\
|
|
80
|
+
console.log(`\nForwarding requests to your dev server at ${upstreamUrl}. The app will be available at ${localKongBaseUrl()}/\n`)
|
|
81
81
|
console.log("Run: supatype self-host compose render")
|
|
82
82
|
} catch (err) {
|
|
83
83
|
console.error((err as Error).message)
|