seamless-cli 0.12.1 → 0.13.0
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/README.md +98 -26
- package/dist/commands/check.js +67 -42
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.js +7 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/helpTopics.js +28 -11
- package/dist/commands/helpTopics.js.map +1 -1
- package/dist/commands/init.js +71 -42
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/sessions.js +8 -3
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/users.js +20 -7
- package/dist/commands/users.js.map +1 -1
- package/dist/commands/verify.js +3 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/whoami.js +21 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/core/admin.js +9 -2
- package/dist/core/admin.js.map +1 -1
- package/dist/core/authClient.js +71 -5
- package/dist/core/authClient.js.map +1 -1
- package/dist/core/config.js +55 -3
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.js +32 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/fetch.js +17 -1
- package/dist/core/fetch.js.map +1 -1
- package/dist/core/images.js +6 -0
- package/dist/core/images.js.map +1 -1
- package/dist/core/interactiveLogin.js +12 -13
- package/dist/core/interactiveLogin.js.map +1 -1
- package/dist/core/jwksKid.js +40 -0
- package/dist/core/jwksKid.js.map +1 -0
- package/dist/core/keychain.js +13 -26
- package/dist/core/keychain.js.map +1 -1
- package/dist/core/loginFlow.js +39 -14
- package/dist/core/loginFlow.js.map +1 -1
- package/dist/core/output.js +9 -29
- package/dist/core/output.js.map +1 -1
- package/dist/core/redact.js +68 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/secrets.js +0 -3
- package/dist/core/secrets.js.map +1 -1
- package/dist/core/systemConfig.js +39 -4
- package/dist/core/systemConfig.js.map +1 -1
- package/dist/core/templates.js +6 -4
- package/dist/core/templates.js.map +1 -1
- package/dist/generators/admin/admin.js +102 -1
- package/dist/generators/admin/admin.js.map +1 -1
- package/dist/generators/auth/auth.js +2 -59
- package/dist/generators/auth/auth.js.map +1 -1
- package/dist/generators/docker/docker.js +0 -20
- package/dist/generators/docker/docker.js.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/projectSetup.js +1 -12
- package/dist/prompts/projectSetup.js.map +1 -1
- package/package.json +2 -2
- package/verify/docker-compose.verify.yml +22 -20
- package/dist/core/jwks.js +0 -19
- package/dist/core/jwks.js.map +0 -1
- package/dist/utils/writeEnv.js +0 -9
- package/dist/utils/writeEnv.js.map +0 -1
|
@@ -1,2 +1,103 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import AdmZip from "adm-zip";
|
|
4
|
+
import { SEAMLESS_AUTH_ADMIN_DASHBOARD_REF, SEAMLESS_AUTH_ADMIN_DASHBOARD_REPO, } from "../../core/images.js";
|
|
5
|
+
// Mirrors the template source's ignore list: these are checkout artifacts, not
|
|
6
|
+
// project files, and a GitHub archive can carry the last two.
|
|
7
|
+
const IGNORED_NAMES = new Set([
|
|
8
|
+
"node_modules",
|
|
9
|
+
".git",
|
|
10
|
+
".github",
|
|
11
|
+
".DS_Store",
|
|
12
|
+
]);
|
|
13
|
+
export const ADMIN_DIR = "admin";
|
|
14
|
+
/**
|
|
15
|
+
* Downloads the admin dashboard into `<root>/admin` for `--admin=source`.
|
|
16
|
+
*
|
|
17
|
+
* A GitHub archive rather than a `git clone`: it matches how the starter
|
|
18
|
+
* templates arrive, needs no git binary on the developer's machine, and pins to
|
|
19
|
+
* the same ref the official image is built from, so the source and image modes
|
|
20
|
+
* scaffold the same dashboard. The tradeoff is that `admin/` arrives without
|
|
21
|
+
* history, which is the right default for a directory meant to be committed into
|
|
22
|
+
* the developer's own repository.
|
|
23
|
+
*
|
|
24
|
+
* Override the ref with SEAMLESS_ADMIN_DASHBOARD_REF, or scaffold from a local
|
|
25
|
+
* checkout with SEAMLESS_ADMIN_DASHBOARD_DIR, mirroring the template overrides.
|
|
26
|
+
*/
|
|
27
|
+
export async function generateAdminSource(root) {
|
|
28
|
+
const destDir = path.join(root, ADMIN_DIR);
|
|
29
|
+
const localDir = process.env.SEAMLESS_ADMIN_DASHBOARD_DIR;
|
|
30
|
+
if (localDir) {
|
|
31
|
+
copyDir(path.resolve(localDir), destDir);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const ref = process.env.SEAMLESS_ADMIN_DASHBOARD_REF ?? SEAMLESS_AUTH_ADMIN_DASHBOARD_REF;
|
|
35
|
+
await unpackArchive(SEAMLESS_AUTH_ADMIN_DASHBOARD_REPO, ref, destDir);
|
|
36
|
+
}
|
|
37
|
+
// The compose service is `build: ./admin`, so without this the stack fails on a
|
|
38
|
+
// missing build context rather than on anything the developer can act on.
|
|
39
|
+
if (!fs.existsSync(path.join(destDir, "Dockerfile"))) {
|
|
40
|
+
throw new Error(`The admin dashboard was unpacked into ${ADMIN_DIR}/ but has no Dockerfile, so \`docker compose up\` could not build it. Re-run with --admin=image to use the published image instead.`);
|
|
41
|
+
}
|
|
42
|
+
return destDir;
|
|
43
|
+
}
|
|
44
|
+
async function unpackArchive(repo, ref, destDir) {
|
|
45
|
+
const url = `https://github.com/${repo}/archive/${ref}.zip`;
|
|
46
|
+
const res = await fetch(url);
|
|
47
|
+
if (!res.ok) {
|
|
48
|
+
throw new Error(`Failed to download the admin dashboard (${res.status}) from ${url}.`);
|
|
49
|
+
}
|
|
50
|
+
const zip = new AdmZip(Buffer.from(await res.arrayBuffer()));
|
|
51
|
+
const entries = zip.getEntries();
|
|
52
|
+
if (entries.length === 0) {
|
|
53
|
+
throw new Error("The downloaded admin dashboard archive was empty.");
|
|
54
|
+
}
|
|
55
|
+
// GitHub archives nest everything under a single top-level directory.
|
|
56
|
+
const prefix = `${entries[0].entryName.split("/")[0]}/`;
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
if (entry.isDirectory || !entry.entryName.startsWith(prefix))
|
|
59
|
+
continue;
|
|
60
|
+
const rel = entry.entryName.slice(prefix.length);
|
|
61
|
+
if (rel.split("/").some((seg) => IGNORED_NAMES.has(seg)))
|
|
62
|
+
continue;
|
|
63
|
+
const out = containedPath(destDir, rel);
|
|
64
|
+
fs.mkdirSync(path.dirname(out), { recursive: true });
|
|
65
|
+
fs.writeFileSync(out, entry.getData());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Resolves an archive entry against the destination, refusing anything that escapes it.
|
|
70
|
+
*
|
|
71
|
+
* Entry names come from the archive, so a `../` in one would otherwise write wherever
|
|
72
|
+
* the developer can write. Not reachable today, since the archive is our own repository
|
|
73
|
+
* over https, but the check is what keeps a compromise of that source from becoming an
|
|
74
|
+
* arbitrary write. Failing the scaffold rather than skipping the entry, so a tampered
|
|
75
|
+
* archive cannot quietly produce a partial project.
|
|
76
|
+
*
|
|
77
|
+
* The templates source has the same shape and is tracked separately in #135.
|
|
78
|
+
*/
|
|
79
|
+
function containedPath(destDir, rel) {
|
|
80
|
+
const root = path.resolve(destDir);
|
|
81
|
+
const out = path.resolve(root, rel);
|
|
82
|
+
if (out !== root && !out.startsWith(root + path.sep)) {
|
|
83
|
+
throw new Error(`The admin dashboard archive contains an entry that would write outside the project: ${rel}`);
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
function copyDir(src, dest) {
|
|
88
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
89
|
+
for (const name of fs.readdirSync(src)) {
|
|
90
|
+
if (IGNORED_NAMES.has(name))
|
|
91
|
+
continue;
|
|
92
|
+
const from = path.join(src, name);
|
|
93
|
+
const to = path.join(dest, name);
|
|
94
|
+
const stat = fs.statSync(from);
|
|
95
|
+
if (stat.isDirectory()) {
|
|
96
|
+
copyDir(from, to);
|
|
97
|
+
}
|
|
98
|
+
else if (stat.isFile()) {
|
|
99
|
+
fs.copyFileSync(from, to);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
2
103
|
//# sourceMappingURL=admin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/generators/admin/admin.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/generators/admin/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { parseEnvString } from "../../core/env.js";
|
|
4
1
|
import { runCommand } from "../../core/exec.js";
|
|
5
|
-
import {
|
|
6
|
-
import { POSTGRES_IMAGE, SEAMLESS_AUTH_API_IMAGE } from "../../core/images.js";
|
|
7
|
-
import { buildAuthEnv, configureAuthLocalEnv, envToDockerBlock, } from "../docker/docker.js";
|
|
2
|
+
import { configureAuthLocalEnv } from "../docker/docker.js";
|
|
8
3
|
const AUTH_REPO = "https://github.com/fells-code/seamless-auth-api";
|
|
9
|
-
export async function generateAuthServer(
|
|
10
|
-
const { root } = context;
|
|
11
|
-
if (mode === "local") {
|
|
12
|
-
return await setupLocalAuth(root, oauth, adminMode, ownerEmail);
|
|
13
|
-
}
|
|
14
|
-
return await setupDockerAuth(root);
|
|
15
|
-
}
|
|
16
|
-
async function setupLocalAuth(root, oauth = [], adminMode = "api", ownerEmail) {
|
|
17
|
-
const authDir = path.join(root, "auth");
|
|
4
|
+
export async function generateAuthServer(root, oauth = [], adminMode = "api", ownerEmail) {
|
|
18
5
|
console.log("Cloning SeamlessAuth server...");
|
|
19
6
|
await runCommand("git", ["clone", AUTH_REPO, "auth"], root);
|
|
20
7
|
console.log("Writing auth environment...");
|
|
@@ -22,48 +9,4 @@ async function setupLocalAuth(root, oauth = [], adminMode = "api", ownerEmail) {
|
|
|
22
9
|
console.log("Auth server ready in /auth");
|
|
23
10
|
return shared;
|
|
24
11
|
}
|
|
25
|
-
async function setupDockerAuth(root) {
|
|
26
|
-
console.log("Creating docker-compose for SeamlessAuth...");
|
|
27
|
-
const raw = await fetchEnvExample();
|
|
28
|
-
const parsed = parseEnvString(raw);
|
|
29
|
-
const { env, shared } = buildAuthEnv(parsed, "docker");
|
|
30
|
-
const envBlock = envToDockerBlock(env);
|
|
31
|
-
const dockerCompose = `# Ports are published on 127.0.0.1 so this stack is reachable from this machine
|
|
32
|
-
# only. See the note in the full-stack compose for why that matters here.
|
|
33
|
-
services:
|
|
34
|
-
db:
|
|
35
|
-
image: ${POSTGRES_IMAGE}
|
|
36
|
-
container_name: seamless-db
|
|
37
|
-
ports:
|
|
38
|
-
- "127.0.0.1:5432:5432"
|
|
39
|
-
environment:
|
|
40
|
-
POSTGRES_USER: myuser
|
|
41
|
-
POSTGRES_PASSWORD: mypassword
|
|
42
|
-
POSTGRES_DB: postgres
|
|
43
|
-
volumes:
|
|
44
|
-
- pgdata:/var/lib/postgresql/data
|
|
45
|
-
healthcheck:
|
|
46
|
-
test: ["CMD-SHELL", "pg_isready -U myuser -d postgres"]
|
|
47
|
-
interval: 5s
|
|
48
|
-
timeout: 5s
|
|
49
|
-
retries: 5
|
|
50
|
-
|
|
51
|
-
auth:
|
|
52
|
-
image: ${SEAMLESS_AUTH_API_IMAGE}
|
|
53
|
-
container_name: seamless-auth
|
|
54
|
-
ports:
|
|
55
|
-
- "127.0.0.1:5312:5312"
|
|
56
|
-
environment:
|
|
57
|
-
${envBlock}
|
|
58
|
-
depends_on:
|
|
59
|
-
db:
|
|
60
|
-
condition: service_healthy
|
|
61
|
-
|
|
62
|
-
volumes:
|
|
63
|
-
pgdata:
|
|
64
|
-
`;
|
|
65
|
-
fs.writeFileSync(path.join(root, "docker-compose.yml"), dockerCompose.trim() + "\n");
|
|
66
|
-
console.log("Docker setup ready.");
|
|
67
|
-
return shared;
|
|
68
|
-
}
|
|
69
12
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/generators/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/generators/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,MAAM,SAAS,GAAG,iDAAiD,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,QAAkC,EAAE,EACpC,YAAuB,KAAK,EAC5B,UAAmB;IAEnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAE5D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -3,7 +3,6 @@ import path from "path";
|
|
|
3
3
|
import { fetchEnvExample } from "../../core/fetch.js";
|
|
4
4
|
import { parseEnv, parseEnvString } from "../../core/env.js";
|
|
5
5
|
import { generateSecret } from "../../core/secrets.js";
|
|
6
|
-
import { generateJWKS } from "../../core/jwks.js";
|
|
7
6
|
import { buildOAuthAuthEnv, withLoginMethod, } from "../../core/oauthProviders.js";
|
|
8
7
|
import { POSTGRES_IMAGE, SEAMLESS_AUTH_ADMIN_DASHBOARD_IMAGE, SEAMLESS_AUTH_API_IMAGE, } from "../../core/images.js";
|
|
9
8
|
export async function generateDockerCompose(root, options) {
|
|
@@ -175,7 +174,6 @@ function adminService(mode) {
|
|
|
175
174
|
- "127.0.0.1:5174:80"
|
|
176
175
|
environment:
|
|
177
176
|
API_URL: http://localhost:3000/
|
|
178
|
-
AUTH_MODE: server
|
|
179
177
|
volumes:
|
|
180
178
|
- ./admin:/app
|
|
181
179
|
- /app/node_modules
|
|
@@ -219,7 +217,6 @@ export function buildAuthEnv(env, mode, oauth = [], adminMode = "api", ownerEmai
|
|
|
219
217
|
}
|
|
220
218
|
env.PORT = "5312";
|
|
221
219
|
env.NODE_ENV = "development";
|
|
222
|
-
env.AUTH_MODE = "server";
|
|
223
220
|
env.ISSUER =
|
|
224
221
|
mode === "docker" ? "http://auth:5312" : "http://localhost:5312";
|
|
225
222
|
env.DB_HOST = mode === "docker" ? "db" : "localhost";
|
|
@@ -275,23 +272,6 @@ function indentMultiline(value, spaces) {
|
|
|
275
272
|
.map((line) => `${indent}${line}`)
|
|
276
273
|
.join("\n");
|
|
277
274
|
}
|
|
278
|
-
export function buildJWKSConfig() {
|
|
279
|
-
const kid = "main";
|
|
280
|
-
const { publicKey, privateKey } = generateJWKS();
|
|
281
|
-
return {
|
|
282
|
-
kid,
|
|
283
|
-
privateKey,
|
|
284
|
-
publicKey,
|
|
285
|
-
publicJwksJson: JSON.stringify({
|
|
286
|
-
keys: [
|
|
287
|
-
{
|
|
288
|
-
kid,
|
|
289
|
-
pem: publicKey,
|
|
290
|
-
},
|
|
291
|
-
],
|
|
292
|
-
}, null, 2),
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
275
|
export async function configureAuthLocalEnv(root, oauth = [], adminMode = "api", ownerEmail) {
|
|
296
276
|
const authDir = path.join(root, "auth");
|
|
297
277
|
const envExamplePath = path.join(authDir, ".env.example");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/generators/docker/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/generators/docker/docker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { extractFlag, hasHelpFlag } from "./core/args.js";
|
|
|
4
4
|
import { runCheck } from "./commands/check.js";
|
|
5
5
|
import { printCommandHelp, printHelp } from "./commands/help.js";
|
|
6
6
|
import { COMMANDS } from "./commands/helpTopics.js";
|
|
7
|
+
import { errorMessage } from "./core/errors.js";
|
|
7
8
|
import pkg from "../package.json" with { type: "json" };
|
|
8
9
|
import { runVerify } from "./commands/verify.js";
|
|
9
10
|
import { runProfile } from "./commands/profile.js";
|
|
@@ -60,7 +61,7 @@ async function main() {
|
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
if (command === "check") {
|
|
63
|
-
await runCheck();
|
|
64
|
+
await runCheck(args.slice(1));
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
67
|
if (command === "verify") {
|
|
@@ -157,11 +158,11 @@ function unknownCommand(name) {
|
|
|
157
158
|
}
|
|
158
159
|
main().catch((err) => {
|
|
159
160
|
if (isCancelled(err)) {
|
|
160
|
-
console.log(err
|
|
161
|
+
console.log(errorMessage(err));
|
|
161
162
|
// 130 is the conventional exit status for a command ended by Ctrl-C.
|
|
162
163
|
process.exit(130);
|
|
163
164
|
}
|
|
164
|
-
console.error("Error:", err
|
|
165
|
+
console.error("Error:", errorMessage(err));
|
|
165
166
|
process.exit(1);
|
|
166
167
|
});
|
|
167
168
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { select, text } from "@clack/prompts";
|
|
2
2
|
import { orCancel } from "../core/cancel.js";
|
|
3
3
|
import { requireInteractive } from "../core/tty.js";
|
|
4
4
|
export const AUTH_MODES = ["docker", "local"];
|
|
@@ -99,23 +99,12 @@ export async function runProjectSetupPrompts(templates, preselect = {}, knownEma
|
|
|
99
99
|
],
|
|
100
100
|
initialValue: "api",
|
|
101
101
|
})));
|
|
102
|
-
if (authMode === "local" && !assumeYes) {
|
|
103
|
-
requireInteractive("Auth server still requires Docker for full stack. Enable Docker?", "Pass --yes; Docker is enabled either way.");
|
|
104
|
-
const confirmDocker = orCancel(await confirm({
|
|
105
|
-
message: "Auth server still requires Docker for full stack. Enable Docker?",
|
|
106
|
-
initialValue: true,
|
|
107
|
-
}));
|
|
108
|
-
if (!confirmDocker) {
|
|
109
|
-
console.log("\nDocker is required for full seamless stack. Enabling automatically.\n");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
102
|
return {
|
|
113
103
|
web: true,
|
|
114
104
|
webTemplateId,
|
|
115
105
|
api: true,
|
|
116
106
|
apiTemplateId,
|
|
117
107
|
authMode,
|
|
118
|
-
useDocker: true,
|
|
119
108
|
adminMode,
|
|
120
109
|
ownerEmail: ownerEmail.trim(),
|
|
121
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectSetup.js","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"projectSetup.js","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seamless-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "The Seamless Auth command-line interface",
|
|
5
5
|
"homepage": "https://github.com/fells-code/seamless-cli#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"node": ">=24 <25"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"build": "tsc",
|
|
23
|
+
"build": "npm run clean && tsc",
|
|
24
24
|
"dev": "tsx src/index.ts",
|
|
25
25
|
"clean": "rm -rf dist",
|
|
26
26
|
"test": "vitest run",
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# Conformance stack for `seamless verify`.
|
|
2
|
-
# Brings up Postgres + the auth API + the Express adapter from local source
|
|
3
|
-
# (paths supplied by the verify command via env) so the Playwright harness can
|
|
4
|
-
# drive every auth flow. NODE_ENV=test enables the API's external-delivery seam
|
|
5
|
-
# so OTP / magic-link tokens are returned in responses (no real email/SMS).
|
|
6
2
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
3
|
+
# Postgres, the auth API built from local source, and two adopter backends that are
|
|
4
|
+
# deliberate twins (Express on 3000, Fastify on 3001) so a failure is attributable to
|
|
5
|
+
# one framework. The web starter is behind the `react` profile, since the api and
|
|
6
|
+
# adapter layers need no browser.
|
|
7
|
+
#
|
|
8
|
+
# Env comes from the `seamless verify` process, not a file:
|
|
9
|
+
# SEAMLESS_API_DIR absolute path to the seamless-auth-api source (build context)
|
|
10
|
+
# SEAMLESS_REACT_DIR absolute path to the web template to serve (react profile only)
|
|
11
|
+
# API_SERVICE_TOKEN shared secret between the API and both adapters
|
|
12
|
+
# JWKS_KID key id the adapters expect (must match the API's active kid)
|
|
13
|
+
# OWNER_EMAIL tenant owner; this email gets the admin role at signup
|
|
14
|
+
#
|
|
15
|
+
# The adapters are built from ./adapter-app and ./adapter-fastify-app in this repo,
|
|
16
|
+
# so they take no path from the environment.
|
|
13
17
|
|
|
14
18
|
name: seamless-verify
|
|
15
19
|
|
|
@@ -30,19 +34,17 @@ services:
|
|
|
30
34
|
retries: 20
|
|
31
35
|
|
|
32
36
|
auth-api:
|
|
33
|
-
# Built with the production Dockerfile (compiles dist/)
|
|
34
|
-
#
|
|
35
|
-
# is skipped. validateEnvs.sh gates startup on the env below.
|
|
37
|
+
# Built with the production Dockerfile (compiles dist/). Its validateEnvs.sh
|
|
38
|
+
# entrypoint runs the migrations and gates startup on the env below.
|
|
36
39
|
build:
|
|
37
40
|
context: ${SEAMLESS_API_DIR}
|
|
38
41
|
dockerfile: Dockerfile
|
|
39
42
|
ports:
|
|
40
43
|
- '5312:5312'
|
|
41
44
|
environment:
|
|
42
|
-
# `development
|
|
43
|
-
# auto-generated dev public key
|
|
44
|
-
#
|
|
45
|
-
# JWKS publication working so the adapter/SDKs can verify tokens.
|
|
45
|
+
# `development`, not `test`: signing treats any non-production env as dev, but
|
|
46
|
+
# the JWKS endpoint only serves the auto-generated dev public key under
|
|
47
|
+
# `development`. The adapters and SDKs need that key to verify tokens.
|
|
46
48
|
NODE_ENV: development
|
|
47
49
|
PORT: '5312'
|
|
48
50
|
APP_NAME: Seamless Verify
|
|
@@ -54,9 +56,9 @@ services:
|
|
|
54
56
|
DEFAULT_ROLES: user
|
|
55
57
|
AVAILABLE_ROLES: user,admin
|
|
56
58
|
LOGIN_METHODS: passkey,magic_link,email_otp,phone_otp,oauth
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
59
|
+
# The base URL for emailed magic links, required at boot: with a fresh DB
|
|
60
|
+
# there is no seeded system_config row to fall back on, so the server exits
|
|
61
|
+
# without it. The browser-visible web app runs on 5173.
|
|
60
62
|
FRONTEND_URL: http://localhost:5173
|
|
61
63
|
DB_LOGGING: 'false'
|
|
62
64
|
ACCESS_TOKEN_TTL: 15m
|
package/dist/core/jwks.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { generateKeyPairSync } from "crypto";
|
|
2
|
-
export function generateJWKS() {
|
|
3
|
-
const { publicKey, privateKey } = generateKeyPairSync("rsa", {
|
|
4
|
-
modulusLength: 2048,
|
|
5
|
-
publicKeyEncoding: {
|
|
6
|
-
type: "spki",
|
|
7
|
-
format: "pem",
|
|
8
|
-
},
|
|
9
|
-
privateKeyEncoding: {
|
|
10
|
-
type: "pkcs8",
|
|
11
|
-
format: "pem",
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
return {
|
|
15
|
-
publicKey,
|
|
16
|
-
privateKey,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=jwks.js.map
|
package/dist/core/jwks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwks.js","sourceRoot":"","sources":["../../src/core/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE;QAC3D,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE;YACjB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,KAAK;SACd;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;SACd;KACF,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC"}
|
package/dist/utils/writeEnv.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
export function writeEnv(dir, values) {
|
|
4
|
-
const env = Object.entries(values)
|
|
5
|
-
.map(([k, v]) => `${k}=${v}`)
|
|
6
|
-
.join("\n");
|
|
7
|
-
fs.writeFileSync(path.join(dir, ".env"), env + "\n");
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=writeEnv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeEnv.js","sourceRoot":"","sources":["../../src/utils/writeEnv.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,MAA2B;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC"}
|