@byline/cli 2.2.2 → 2.2.3
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/dist/commands/setup-checks.d.ts +8 -6
- package/dist/commands/setup-checks.d.ts.map +1 -1
- package/dist/commands/setup-checks.js +28 -20
- package/dist/commands/setup-checks.js.map +1 -1
- package/dist/manifest/env.d.ts +20 -6
- package/dist/manifest/env.d.ts.map +1 -1
- package/dist/manifest/env.js +26 -6
- package/dist/manifest/env.js.map +1 -1
- package/dist/phases/env.d.ts.map +1 -1
- package/dist/phases/env.js +57 -30
- package/dist/phases/env.js.map +1 -1
- package/dist/phases/seed-admin.js +3 -3
- package/dist/phases/seed-admin.js.map +1 -1
- package/dist/phases/seed-docs.js +3 -3
- package/dist/phases/seed-docs.js.map +1 -1
- package/dist/templates/byline/server.config.ts +1 -1
- package/dist/templates/byline-examples/server.config.ts +1 -1
- package/package.json +1 -1
|
@@ -3,14 +3,16 @@ export type SetupCheckResult = 'proceed' | 'aborted';
|
|
|
3
3
|
/**
|
|
4
4
|
* Pre-flight gate for `byline setup`. Policy:
|
|
5
5
|
*
|
|
6
|
-
* - Missing core `@byline/*` deps
|
|
7
|
-
* - Missing `.env`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* - Missing core `@byline/*` deps → hard bail (seeds will throw on import).
|
|
7
|
+
* - Missing both `.env` and `.env.local` → hard bail (every downstream phase
|
|
8
|
+
* reads them).
|
|
9
|
+
* - Missing keys across either file → warn and confirm (default No). Some
|
|
10
|
+
* keys may legitimately be supplied via
|
|
11
|
+
* shell env; the user is best placed
|
|
12
|
+
* to judge.
|
|
11
13
|
*
|
|
12
14
|
* `--yes` does NOT auto-confirm the soft warning — the default is No, so
|
|
13
|
-
* `-y` against a partial
|
|
15
|
+
* `-y` against a partial env aborts. That matches the intent: `-y` is
|
|
14
16
|
* "I don't want to type defaults," not "I don't care if my env is broken."
|
|
15
17
|
*/
|
|
16
18
|
export declare function runSetupChecks(ctx: Context): Promise<SetupCheckResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-checks.d.ts","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEpD
|
|
1
|
+
{"version":3,"file":"setup-checks.d.ts","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgD5E"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { DEP_SPECS } from '../manifest/deps.js';
|
|
3
|
-
import { ENV_SPECS } from '../manifest/env.js';
|
|
3
|
+
import { ENV_FILE_PATHS, ENV_SPECS } from '../manifest/env.js';
|
|
4
4
|
/**
|
|
5
5
|
* Pre-flight gate for `byline setup`. Policy:
|
|
6
6
|
*
|
|
7
|
-
* - Missing core `@byline/*` deps
|
|
8
|
-
* - Missing `.env`
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* - Missing core `@byline/*` deps → hard bail (seeds will throw on import).
|
|
8
|
+
* - Missing both `.env` and `.env.local` → hard bail (every downstream phase
|
|
9
|
+
* reads them).
|
|
10
|
+
* - Missing keys across either file → warn and confirm (default No). Some
|
|
11
|
+
* keys may legitimately be supplied via
|
|
12
|
+
* shell env; the user is best placed
|
|
13
|
+
* to judge.
|
|
12
14
|
*
|
|
13
15
|
* `--yes` does NOT auto-confirm the soft warning — the default is No, so
|
|
14
|
-
* `-y` against a partial
|
|
16
|
+
* `-y` against a partial env aborts. That matches the intent: `-y` is
|
|
15
17
|
* "I don't want to type defaults," not "I don't care if my env is broken."
|
|
16
18
|
*/
|
|
17
19
|
export async function runSetupChecks(ctx) {
|
|
@@ -29,16 +31,18 @@ export async function runSetupChecks(ctx) {
|
|
|
29
31
|
ctx.logger.info('or run the full wizard: byline init');
|
|
30
32
|
return 'aborted';
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
const envFilesPresent = Object.keys(ENV_FILE_PATHS).filter((f) => existsSync(ctx.resolve(ENV_FILE_PATHS[f])));
|
|
35
|
+
if (envFilesPresent.length === 0) {
|
|
36
|
+
ctx.logger.error('neither .env nor .env.local found — run `byline init --only env` to scaffold them');
|
|
34
37
|
return 'aborted';
|
|
35
38
|
}
|
|
36
39
|
const missingEnvKeys = findMissingEnvKeys(ctx);
|
|
37
40
|
if (missingEnvKeys.length > 0) {
|
|
38
|
-
ctx.logger.warn('
|
|
41
|
+
ctx.logger.warn('env files are missing keys Byline expects:');
|
|
39
42
|
for (const key of missingEnvKeys) {
|
|
40
43
|
const spec = ENV_SPECS.find((s) => s.key === key);
|
|
41
|
-
|
|
44
|
+
const target = spec ? ENV_FILE_PATHS[spec.file] : '.env';
|
|
45
|
+
ctx.logger.raw(` - ${key} (${spec?.group}, ${target}) — ${spec?.description}`);
|
|
42
46
|
}
|
|
43
47
|
ctx.logger.info('these may be supplied via shell env instead; otherwise downstream phases will fail');
|
|
44
48
|
const ok = await ctx.prompter.confirm({
|
|
@@ -70,16 +74,20 @@ function findMissingBylineDeps(ctx) {
|
|
|
70
74
|
return DEP_SPECS.filter((s) => s.group === 'byline' && !declared.has(s.name));
|
|
71
75
|
}
|
|
72
76
|
function findMissingEnvKeys(ctx) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
// Read each file independently and check each spec against the file it
|
|
78
|
+
// actually belongs to. A key missing from `.env.local` is missing even if
|
|
79
|
+
// a stray copy lives in `.env` (and vice versa) — we want each value in
|
|
80
|
+
// the canonical place.
|
|
81
|
+
const present = { public: new Set(), secret: new Set() };
|
|
82
|
+
for (const file of Object.keys(ENV_FILE_PATHS)) {
|
|
83
|
+
try {
|
|
84
|
+
present[file] = parseEnvKeys(readFileSync(ctx.resolve(ENV_FILE_PATHS[file]), 'utf8'));
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// missing file → empty set; missing keys will be reported below
|
|
88
|
+
}
|
|
80
89
|
}
|
|
81
|
-
|
|
82
|
-
return ENV_SPECS.filter((s) => !present.has(s.key)).map((s) => s.key);
|
|
90
|
+
return ENV_SPECS.filter((s) => !present[s.file].has(s.key)).map((s) => s.key);
|
|
83
91
|
}
|
|
84
92
|
/**
|
|
85
93
|
* Minimal `.env` key extractor — we only need to know which keys are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-checks.js","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,SAAS,EAAgB,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"setup-checks.js","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest/env.d.ts
CHANGED
|
@@ -1,18 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single source of truth for the environment variables Byline expects in the
|
|
3
|
-
* host application's `.env`. Consumed by the `env` phase (to
|
|
4
|
-
* and by `doctor` (to report which keys are missing).
|
|
3
|
+
* host application's `.env` / `.env.local`. Consumed by the `env` phase (to
|
|
4
|
+
* render the files) and by `doctor` (to report which keys are missing).
|
|
5
5
|
*
|
|
6
|
-
* Each entry describes what the key is for
|
|
7
|
-
* (
|
|
8
|
-
*
|
|
6
|
+
* Each entry describes what the key is for and which file it belongs in
|
|
7
|
+
* (per the TanStack Start / Vite convention — see
|
|
8
|
+
* https://tanstack.com/start/latest/docs/framework/react/guide/environment-variables#environment-file-setup).
|
|
9
|
+
* How its value is obtained (default, prompt, generated, computed from db
|
|
10
|
+
* answers) is the env phase's concern — keep that logic in `phases/env.ts`,
|
|
11
|
+
* not here.
|
|
12
|
+
*
|
|
13
|
+
* `file: 'public'` → `.env`, committed to git, no secrets.
|
|
14
|
+
* `file: 'secret'` → `.env.local`, gitignored, secrets only.
|
|
9
15
|
*/
|
|
10
|
-
export type EnvKey = 'VITE_SERVER_URL' | '
|
|
16
|
+
export type EnvKey = 'VITE_SERVER_URL' | 'BYLINE_DB_POSTGRES_CONNECTION_STRING' | 'BYLINE_JWT_SECRET' | 'BYLINE_SUPERADMIN_EMAIL' | 'BYLINE_SUPERADMIN_PASSWORD';
|
|
17
|
+
export type EnvFile = 'public' | 'secret';
|
|
11
18
|
export interface EnvSpec {
|
|
12
19
|
key: EnvKey;
|
|
13
20
|
description: string;
|
|
14
21
|
group: 'app' | 'database' | 'auth';
|
|
22
|
+
file: EnvFile;
|
|
15
23
|
}
|
|
16
24
|
export declare const ENV_SPECS: readonly EnvSpec[];
|
|
17
25
|
export declare const ENV_KEYS: readonly EnvKey[];
|
|
26
|
+
/**
|
|
27
|
+
* Relative file paths (from the host app root) corresponding to each
|
|
28
|
+
* `EnvFile` classification. Centralised here so the env phase and any
|
|
29
|
+
* future tooling agree on where to read/write.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ENV_FILE_PATHS: Record<EnvFile, string>;
|
|
18
32
|
//# sourceMappingURL=env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/manifest/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/manifest/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,MAAM,GACd,iBAAiB,GACjB,sCAAsC,GACtC,mBAAmB,GACnB,yBAAyB,GACzB,4BAA4B,CAAA;AAEhC,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEzC,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,CAAA;IAClC,IAAI,EAAE,OAAO,CAAA;CACd;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EA+B9B,CAAA;AAEV,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EAAgC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAGlD,CAAA"}
|
package/dist/manifest/env.js
CHANGED
|
@@ -1,38 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single source of truth for the environment variables Byline expects in the
|
|
3
|
-
* host application's `.env`. Consumed by the `env` phase (to
|
|
4
|
-
* and by `doctor` (to report which keys are missing).
|
|
3
|
+
* host application's `.env` / `.env.local`. Consumed by the `env` phase (to
|
|
4
|
+
* render the files) and by `doctor` (to report which keys are missing).
|
|
5
5
|
*
|
|
6
|
-
* Each entry describes what the key is for
|
|
7
|
-
* (
|
|
8
|
-
*
|
|
6
|
+
* Each entry describes what the key is for and which file it belongs in
|
|
7
|
+
* (per the TanStack Start / Vite convention — see
|
|
8
|
+
* https://tanstack.com/start/latest/docs/framework/react/guide/environment-variables#environment-file-setup).
|
|
9
|
+
* How its value is obtained (default, prompt, generated, computed from db
|
|
10
|
+
* answers) is the env phase's concern — keep that logic in `phases/env.ts`,
|
|
11
|
+
* not here.
|
|
12
|
+
*
|
|
13
|
+
* `file: 'public'` → `.env`, committed to git, no secrets.
|
|
14
|
+
* `file: 'secret'` → `.env.local`, gitignored, secrets only.
|
|
9
15
|
*/
|
|
10
16
|
export const ENV_SPECS = [
|
|
11
17
|
{
|
|
12
18
|
key: 'VITE_SERVER_URL',
|
|
13
19
|
description: 'Public origin used by SSR and the admin UI',
|
|
14
20
|
group: 'app',
|
|
21
|
+
file: 'public',
|
|
15
22
|
},
|
|
16
23
|
{
|
|
17
|
-
key: '
|
|
24
|
+
key: 'BYLINE_DB_POSTGRES_CONNECTION_STRING',
|
|
18
25
|
description: 'Postgres connection string consumed by @byline/db-postgres',
|
|
19
26
|
group: 'database',
|
|
27
|
+
file: 'secret',
|
|
20
28
|
},
|
|
21
29
|
{
|
|
22
30
|
key: 'BYLINE_JWT_SECRET',
|
|
23
31
|
description: 'Signing secret for the built-in JwtSessionProvider (>= 32 bytes of entropy)',
|
|
24
32
|
group: 'auth',
|
|
33
|
+
file: 'secret',
|
|
25
34
|
},
|
|
26
35
|
{
|
|
27
36
|
key: 'BYLINE_SUPERADMIN_EMAIL',
|
|
28
37
|
description: 'Bootstrap super-admin email seeded by byline/seed.ts',
|
|
29
38
|
group: 'auth',
|
|
39
|
+
file: 'secret',
|
|
30
40
|
},
|
|
31
41
|
{
|
|
32
42
|
key: 'BYLINE_SUPERADMIN_PASSWORD',
|
|
33
43
|
description: 'Bootstrap super-admin password seeded by byline/seed.ts',
|
|
34
44
|
group: 'auth',
|
|
45
|
+
file: 'secret',
|
|
35
46
|
},
|
|
36
47
|
];
|
|
37
48
|
export const ENV_KEYS = ENV_SPECS.map((s) => s.key);
|
|
49
|
+
/**
|
|
50
|
+
* Relative file paths (from the host app root) corresponding to each
|
|
51
|
+
* `EnvFile` classification. Centralised here so the env phase and any
|
|
52
|
+
* future tooling agree on where to read/write.
|
|
53
|
+
*/
|
|
54
|
+
export const ENV_FILE_PATHS = {
|
|
55
|
+
public: '.env',
|
|
56
|
+
secret: '.env.local',
|
|
57
|
+
};
|
|
38
58
|
//# sourceMappingURL=env.js.map
|
package/dist/manifest/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/manifest/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/manifest/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,MAAM,CAAC,MAAM,SAAS,GAAuB;IAC3C;QACE,GAAG,EAAE,iBAAiB;QACtB,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,QAAQ;KACf;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;KACf;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,WAAW,EAAE,6EAA6E;QAC1F,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,QAAQ;KACf;IACD;QACE,GAAG,EAAE,yBAAyB;QAC9B,WAAW,EAAE,sDAAsD;QACnE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,QAAQ;KACf;IACD;QACE,GAAG,EAAE,4BAA4B;QACjC,WAAW,EAAE,yDAAyD;QACtE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,QAAQ;KACf;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,QAAQ,GAAsB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,YAAY;CACrB,CAAA"}
|
package/dist/phases/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,KAqHtB,CAAA"}
|
package/dist/phases/env.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { buildPgUrl } from '../lib/pg-url.js';
|
|
4
|
-
import { ENV_SPECS } from '../manifest/env.js';
|
|
4
|
+
import { ENV_FILE_PATHS, ENV_SPECS } from '../manifest/env.js';
|
|
5
5
|
export const envPhase = {
|
|
6
6
|
id: 'env',
|
|
7
|
-
title: 'Env — generate .env (JWT
|
|
7
|
+
title: 'Env — generate .env (public defaults) and .env.local (secrets: JWT, admin creds, DB URL)',
|
|
8
8
|
defaultMode: 'confirm',
|
|
9
9
|
async detect(ctx) {
|
|
10
10
|
if (ctx.state.isComplete('env'))
|
|
@@ -15,31 +15,33 @@ export const envPhase = {
|
|
|
15
15
|
return 'pending';
|
|
16
16
|
},
|
|
17
17
|
async plan(ctx) {
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const missing = ENV_SPECS.filter((s) => !existing[s.key]);
|
|
18
|
+
const existing = readAllEnvFiles(ctx);
|
|
19
|
+
const missing = ENV_SPECS.filter((s) => !existing[s.file][s.key]);
|
|
21
20
|
const notes = [];
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
for (const file of Object.keys(ENV_FILE_PATHS)) {
|
|
22
|
+
const path = ctx.resolve(ENV_FILE_PATHS[file]);
|
|
23
|
+
if (existsSync(path)) {
|
|
24
|
+
notes.push(`${ENV_FILE_PATHS[file]} exists — preserving existing keys, appending what is missing`);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
notes.push(`${ENV_FILE_PATHS[file]} does not exist — will create`);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
if (missing.length === 0) {
|
|
29
31
|
notes.push('all required keys already present — nothing to do');
|
|
30
32
|
}
|
|
31
33
|
else {
|
|
32
|
-
for (const s of missing)
|
|
33
|
-
notes.push(` + ${s.key} (${s.description})`);
|
|
34
|
+
for (const s of missing) {
|
|
35
|
+
notes.push(` + ${s.key} → ${ENV_FILE_PATHS[s.file]} (${s.description})`);
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
return { writes: [], commands: [], notes };
|
|
36
39
|
},
|
|
37
40
|
async apply(_plan, ctx) {
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const missing = new Set(ENV_SPECS.filter((s) => !existing[s.key]).map((s) => s.key));
|
|
41
|
+
const existing = readAllEnvFiles(ctx);
|
|
42
|
+
const missing = new Set(ENV_SPECS.filter((s) => !existing[s.file][s.key]).map((s) => s.key));
|
|
41
43
|
if (missing.size === 0) {
|
|
42
|
-
ctx.logger.info('all required env vars already set — leaving .env unchanged');
|
|
44
|
+
ctx.logger.info('all required env vars already set — leaving .env / .env.local unchanged');
|
|
43
45
|
return { state: 'done' };
|
|
44
46
|
}
|
|
45
47
|
const a = ctx.state.get().answers;
|
|
@@ -47,7 +49,10 @@ export const envPhase = {
|
|
|
47
49
|
ctx.logger.error('db answers missing — run the db phase first');
|
|
48
50
|
return { state: 'blocked' };
|
|
49
51
|
}
|
|
50
|
-
const values = {
|
|
52
|
+
const values = {
|
|
53
|
+
public: { ...existing.public },
|
|
54
|
+
secret: { ...existing.secret },
|
|
55
|
+
};
|
|
51
56
|
if (missing.has('VITE_SERVER_URL')) {
|
|
52
57
|
ctx.prompter.note([
|
|
53
58
|
'The URL where this installation will be running.',
|
|
@@ -55,14 +60,14 @@ export const envPhase = {
|
|
|
55
60
|
'For local dev the default is fine; in production set this to your',
|
|
56
61
|
'public origin (e.g. https://cms.example.com).',
|
|
57
62
|
].join('\n'), 'VITE_SERVER_URL');
|
|
58
|
-
values.VITE_SERVER_URL = await ctx.prompter.text({
|
|
63
|
+
values.public.VITE_SERVER_URL = await ctx.prompter.text({
|
|
59
64
|
message: 'Public origin URL',
|
|
60
65
|
placeholder: 'http://localhost:3000/',
|
|
61
66
|
defaultValue: 'http://localhost:3000/',
|
|
62
67
|
});
|
|
63
68
|
}
|
|
64
69
|
if (missing.has('BYLINE_JWT_SECRET')) {
|
|
65
|
-
values.BYLINE_JWT_SECRET = randomBytes(64).toString('base64url');
|
|
70
|
+
values.secret.BYLINE_JWT_SECRET = randomBytes(64).toString('base64url');
|
|
66
71
|
ctx.logger.step('generated BYLINE_JWT_SECRET (64 random bytes, base64url)');
|
|
67
72
|
}
|
|
68
73
|
if (missing.has('BYLINE_SUPERADMIN_EMAIL')) {
|
|
@@ -71,20 +76,20 @@ export const envPhase = {
|
|
|
71
76
|
defaultValue: a.adminEmail ?? 'admin@byline.local',
|
|
72
77
|
});
|
|
73
78
|
ctx.state.patchAnswers({ adminEmail: email });
|
|
74
|
-
values.BYLINE_SUPERADMIN_EMAIL = email;
|
|
79
|
+
values.secret.BYLINE_SUPERADMIN_EMAIL = email;
|
|
75
80
|
}
|
|
76
81
|
if (missing.has('BYLINE_SUPERADMIN_PASSWORD')) {
|
|
77
82
|
const pw = await ctx.prompter.password({
|
|
78
83
|
message: 'Byline super-admin password (min 8 chars)',
|
|
79
84
|
validate: (v) => (v.length < 8 ? 'must be at least 8 characters' : undefined),
|
|
80
85
|
});
|
|
81
|
-
values.BYLINE_SUPERADMIN_PASSWORD = pw;
|
|
86
|
+
values.secret.BYLINE_SUPERADMIN_PASSWORD = pw;
|
|
82
87
|
}
|
|
83
|
-
if (missing.has('
|
|
88
|
+
if (missing.has('BYLINE_DB_POSTGRES_CONNECTION_STRING')) {
|
|
84
89
|
const dbPassword = await resolveDbPassword(ctx);
|
|
85
90
|
if (!dbPassword)
|
|
86
91
|
return { state: 'blocked' };
|
|
87
|
-
values.
|
|
92
|
+
values.secret.BYLINE_DB_POSTGRES_CONNECTION_STRING = buildPgUrl({
|
|
88
93
|
host: a.dbHost,
|
|
89
94
|
port: a.dbPort ?? 5432,
|
|
90
95
|
user: a.dbUser,
|
|
@@ -92,8 +97,11 @@ export const envPhase = {
|
|
|
92
97
|
database: a.dbName,
|
|
93
98
|
});
|
|
94
99
|
}
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
for (const file of Object.keys(values)) {
|
|
101
|
+
const path = ctx.resolve(ENV_FILE_PATHS[file]);
|
|
102
|
+
writeFileSync(path, renderEnvFile(values[file], file), 'utf8');
|
|
103
|
+
ctx.logger.success(`wrote ${path}`);
|
|
104
|
+
}
|
|
97
105
|
return { state: 'done' };
|
|
98
106
|
},
|
|
99
107
|
};
|
|
@@ -106,15 +114,22 @@ async function resolveDbPassword(ctx) {
|
|
|
106
114
|
return fromEnv;
|
|
107
115
|
}
|
|
108
116
|
const pw = await ctx.prompter.password({
|
|
109
|
-
message: 'Application database role password (re-enter to compose
|
|
117
|
+
message: 'Application database role password (re-enter to compose BYLINE_DB_POSTGRES_CONNECTION_STRING)',
|
|
110
118
|
});
|
|
111
119
|
if (!pw) {
|
|
112
|
-
ctx.logger.error('password is required to compose
|
|
120
|
+
ctx.logger.error('password is required to compose BYLINE_DB_POSTGRES_CONNECTION_STRING');
|
|
113
121
|
return null;
|
|
114
122
|
}
|
|
115
123
|
ctx.secrets.dbPassword = pw;
|
|
116
124
|
return pw;
|
|
117
125
|
}
|
|
126
|
+
function readAllEnvFiles(ctx) {
|
|
127
|
+
const out = { public: {}, secret: {} };
|
|
128
|
+
for (const file of Object.keys(ENV_FILE_PATHS)) {
|
|
129
|
+
out[file] = readEnvFile(ctx.resolve(ENV_FILE_PATHS[file]));
|
|
130
|
+
}
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
118
133
|
function readEnvFile(path) {
|
|
119
134
|
if (!existsSync(path))
|
|
120
135
|
return {};
|
|
@@ -136,16 +151,19 @@ function readEnvFile(path) {
|
|
|
136
151
|
}
|
|
137
152
|
return out;
|
|
138
153
|
}
|
|
139
|
-
function renderEnvFile(values) {
|
|
140
|
-
|
|
154
|
+
function renderEnvFile(values, file) {
|
|
155
|
+
// Only emit specs belonging to this file; the other file owns the rest.
|
|
156
|
+
const fileSpecs = ENV_SPECS.filter((s) => s.file === file);
|
|
157
|
+
const known = new Set(fileSpecs.map((s) => s.key));
|
|
141
158
|
const groups = { app: [], database: [], auth: [] };
|
|
142
|
-
for (const spec of
|
|
159
|
+
for (const spec of fileSpecs) {
|
|
143
160
|
const v = values[spec.key];
|
|
144
161
|
if (v === undefined)
|
|
145
162
|
continue;
|
|
146
163
|
groups[spec.group].push(`# ${spec.description}\n${spec.key}=${formatEnvValue(v)}`);
|
|
147
164
|
}
|
|
148
165
|
const sections = [];
|
|
166
|
+
sections.push(file === 'public' ? PUBLIC_FILE_HEADER : SECRET_FILE_HEADER);
|
|
149
167
|
if (groups.app.length)
|
|
150
168
|
sections.push(`# App\n${groups.app.join('\n\n')}`);
|
|
151
169
|
if (groups.database.length)
|
|
@@ -166,4 +184,13 @@ function formatEnvValue(v) {
|
|
|
166
184
|
return v;
|
|
167
185
|
return `"${v.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
168
186
|
}
|
|
187
|
+
// TanStack Start / Vite convention — see
|
|
188
|
+
// https://tanstack.com/start/latest/docs/framework/react/guide/environment-variables#environment-file-setup
|
|
189
|
+
// `.env` is committed; `.env.local` is gitignored and holds secrets.
|
|
190
|
+
const PUBLIC_FILE_HEADER = `# Public, non-secret defaults. Safe to commit to git.
|
|
191
|
+
# Secrets (DB URL, JWT signing key, admin credentials) live in .env.local.
|
|
192
|
+
# See https://tanstack.com/start/latest/docs/framework/react/guide/environment-variables#environment-file-setup`;
|
|
193
|
+
const SECRET_FILE_HEADER = `# Local secrets — DO NOT commit. Gitignored by default.
|
|
194
|
+
# Public, non-secret defaults live in .env.
|
|
195
|
+
# See https://tanstack.com/start/latest/docs/framework/react/guide/environment-variables#environment-file-setup`;
|
|
169
196
|
//# sourceMappingURL=env.js.map
|
package/dist/phases/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export const seedAdminPhase = {
|
|
|
25
25
|
commands: [cmd],
|
|
26
26
|
notes: [
|
|
27
27
|
`runs ${SEED_ENTRY} via the ${ctx.pm} runner`,
|
|
28
|
-
'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env',
|
|
28
|
+
'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env.local',
|
|
29
29
|
'idempotent — re-running is safe; already-seeded admin reports "no changes"',
|
|
30
30
|
],
|
|
31
31
|
};
|
|
@@ -60,8 +60,8 @@ function preflightCheck(ctx) {
|
|
|
60
60
|
ctx.logger.error('byline/seeds/admin.ts not found — run scaffold first');
|
|
61
61
|
return 'blocked';
|
|
62
62
|
}
|
|
63
|
-
if (!existsSync(ctx.resolve('.env'))) {
|
|
64
|
-
ctx.logger.error('.env
|
|
63
|
+
if (!existsSync(ctx.resolve('.env')) && !existsSync(ctx.resolve('.env.local'))) {
|
|
64
|
+
ctx.logger.error('neither .env nor .env.local found — run env phase first');
|
|
65
65
|
return 'blocked';
|
|
66
66
|
}
|
|
67
67
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-admin.js","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAK7B,MAAM,UAAU,GAAG,sBAAsB,CAAA;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,mEAAmE;IAC1E,WAAW,EAAE,SAAS;IAEtB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAA;QACrD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC,2DAA2D,CAAC;aACrE,CAAA;QACH,CAAC;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,OAAO;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,GAAG,CAAC;YACf,KAAK,EAAE;gBACL,QAAQ,UAAU,YAAY,GAAG,CAAC,EAAE,SAAS;gBAC7C,
|
|
1
|
+
{"version":3,"file":"seed-admin.js","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"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"}
|
package/dist/phases/seed-docs.js
CHANGED
|
@@ -29,7 +29,7 @@ export const seedDocsPhase = {
|
|
|
29
29
|
commands: [cmd],
|
|
30
30
|
notes: [
|
|
31
31
|
`runs ${SEED_ENTRY} via the ${ctx.pm} runner`,
|
|
32
|
-
'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env',
|
|
32
|
+
'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env.local',
|
|
33
33
|
'idempotent — re-running is safe; already-seeded admin reports "no changes"',
|
|
34
34
|
],
|
|
35
35
|
};
|
|
@@ -64,8 +64,8 @@ function preflightCheck(ctx) {
|
|
|
64
64
|
ctx.logger.error('byline/seeds/docs.ts not found — run scaffold first');
|
|
65
65
|
return 'blocked';
|
|
66
66
|
}
|
|
67
|
-
if (!existsSync(ctx.resolve('.env'))) {
|
|
68
|
-
ctx.logger.error('.env
|
|
67
|
+
if (!existsSync(ctx.resolve('.env')) && !existsSync(ctx.resolve('.env.local'))) {
|
|
68
|
+
ctx.logger.error('neither .env nor .env.local found — run env phase first');
|
|
69
69
|
return 'blocked';
|
|
70
70
|
}
|
|
71
71
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-docs.js","sourceRoot":"","sources":["../../src/phases/seed-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAK7B,MAAM,UAAU,GAAG,qBAAqB,CAAA;AAExC,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,4CAA4C;IACnD,WAAW,EAAE,SAAS;IAEtB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,MAAM,CAAA;QACpD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;YAC/D,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QAChD,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC,2DAA2D,CAAC;aACrE,CAAA;QACH,CAAC;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,OAAO;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,GAAG,CAAC;YACf,KAAK,EAAE;gBACL,QAAQ,UAAU,YAAY,GAAG,CAAC,EAAE,SAAS;gBAC7C,
|
|
1
|
+
{"version":3,"file":"seed-docs.js","sourceRoot":"","sources":["../../src/phases/seed-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ declare global {
|
|
|
48
48
|
|
|
49
49
|
async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
|
|
50
50
|
const db = pgAdapter({
|
|
51
|
-
connectionString: process.env.
|
|
51
|
+
connectionString: process.env.BYLINE_DB_POSTGRES_CONNECTION_STRING || '',
|
|
52
52
|
collections,
|
|
53
53
|
defaultContentLocale: i18n.content.defaultLocale,
|
|
54
54
|
})
|
|
@@ -78,7 +78,7 @@ async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
|
|
|
78
78
|
// heavier until we have a second adapter or a second DI consumer
|
|
79
79
|
// to justify the ceremony.
|
|
80
80
|
const db = pgAdapter({
|
|
81
|
-
connectionString: process.env.
|
|
81
|
+
connectionString: process.env.BYLINE_DB_POSTGRES_CONNECTION_STRING || '',
|
|
82
82
|
collections,
|
|
83
83
|
defaultContentLocale: i18n.content.defaultLocale,
|
|
84
84
|
})
|