redkite 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +191 -23
- package/dist/build.d.ts +1 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +7 -1
- package/dist/build.js.map +1 -1
- package/dist/cli/agent.js +2 -2
- package/dist/cli/agent.js.map +1 -1
- package/dist/cli/config.d.ts +1 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +67 -14
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/dotenv.d.ts +2 -0
- package/dist/cli/dotenv.d.ts.map +1 -0
- package/dist/cli/dotenv.js +30 -0
- package/dist/cli/dotenv.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/screen.d.ts +10 -3
- package/dist/cli/screen.d.ts.map +1 -1
- package/dist/cli/screen.js +153 -36
- package/dist/cli/screen.js.map +1 -1
- package/dist/cli/viewer.d.ts.map +1 -1
- package/dist/cli/viewer.js +36 -4
- package/dist/cli/viewer.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +67 -0
- package/dist/config.js.map +1 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +17 -6
- package/dist/deploy.js.map +1 -1
- package/dist/docker.d.ts +1 -0
- package/dist/docker.d.ts.map +1 -1
- package/dist/docker.js +3 -0
- package/dist/docker.js.map +1 -1
- package/dist/dockerfile.d.ts +1 -0
- package/dist/dockerfile.d.ts.map +1 -1
- package/dist/dockerfile.js +16 -3
- package/dist/dockerfile.js.map +1 -1
- package/dist/environment.d.ts +2 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +56 -1
- package/dist/environment.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +1 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +1 -0
- package/dist/log.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +3 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/plugins/bitwarden.d.ts.map +1 -1
- package/dist/plugins/bitwarden.js +25 -6
- package/dist/plugins/bitwarden.js.map +1 -1
- package/dist/presets/nextApp.d.ts.map +1 -1
- package/dist/presets/nextApp.js +5 -4
- package/dist/presets/nextApp.js.map +1 -1
- package/dist/presets/nodeApp.d.ts.map +1 -1
- package/dist/presets/nodeApp.js +15 -6
- package/dist/presets/nodeApp.js.map +1 -1
- package/dist/secrets/manager.d.ts +9 -0
- package/dist/secrets/manager.d.ts.map +1 -0
- package/dist/secrets/manager.js +130 -0
- package/dist/secrets/manager.js.map +1 -0
- package/dist/secrets/store.d.ts.map +1 -1
- package/dist/secrets/store.js +46 -12
- package/dist/secrets/store.js.map +1 -1
- package/dist/services/ensure.js +1 -1
- package/dist/services/ensure.js.map +1 -1
- package/dist/services/index.d.ts +2 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +11 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/planned.d.ts +0 -1
- package/dist/services/planned.d.ts.map +1 -1
- package/dist/services/planned.js +3 -12
- package/dist/services/planned.js.map +1 -1
- package/dist/services/proxy.d.ts +7 -0
- package/dist/services/proxy.d.ts.map +1 -0
- package/dist/services/proxy.js +103 -0
- package/dist/services/proxy.js.map +1 -0
- package/dist/source.d.ts +1 -0
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +5 -5
- package/dist/source.js.map +1 -1
- package/dist/steps.d.ts +0 -6
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +4 -12
- package/dist/steps.js.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/build.ts +10 -1
- package/src/cli/agent.ts +2 -2
- package/src/cli/config.ts +77 -13
- package/src/cli/dotenv.ts +35 -0
- package/src/cli/index.ts +16 -8
- package/src/cli/screen.ts +193 -43
- package/src/cli/viewer.ts +41 -4
- package/src/config.ts +80 -0
- package/src/deploy.ts +19 -6
- package/src/docker.ts +5 -0
- package/src/dockerfile.ts +23 -3
- package/src/environment.ts +71 -1
- package/src/index.ts +2 -1
- package/src/log.ts +4 -0
- package/src/pipeline.ts +4 -0
- package/src/plugins/bitwarden.ts +38 -11
- package/src/presets/nextApp.ts +5 -4
- package/src/presets/nodeApp.ts +15 -6
- package/src/secrets/manager.ts +172 -0
- package/src/secrets/store.ts +51 -16
- package/src/services/ensure.ts +1 -1
- package/src/services/index.ts +13 -1
- package/src/services/planned.ts +3 -13
- package/src/services/proxy.ts +126 -0
- package/src/source.ts +13 -4
- package/src/steps.ts +4 -19
- package/src/types.ts +29 -4
- package/dist/nginx.d.ts +0 -4
- package/dist/nginx.d.ts.map +0 -1
- package/dist/nginx.js +0 -53
- package/dist/nginx.js.map +0 -1
- package/src/nginx.ts +0 -63
package/dist/environment.js
CHANGED
|
@@ -10,11 +10,66 @@ export async function envFileFor(app, context) {
|
|
|
10
10
|
if (!app.secrets)
|
|
11
11
|
return undefined;
|
|
12
12
|
const contents = await readEnv(app.secrets, context.secrets);
|
|
13
|
-
return await context.host.write(`apps/${app.name}/env`, contents);
|
|
13
|
+
return await context.host.write(`apps/${app.name}/env`, dockerEnv(contents));
|
|
14
14
|
}
|
|
15
15
|
// The flag, or nothing at all for an app that names no secrets
|
|
16
16
|
export async function envFlags(app, context) {
|
|
17
17
|
const path = await envFileFor(app, context);
|
|
18
18
|
return path ? [`--env-file ${path}`] : [];
|
|
19
19
|
}
|
|
20
|
+
// A vault holds dotenv, and docker's env file is not dotenv: a quote is part of
|
|
21
|
+
// the value there, so DATABASE_URL="postgres://..." reaches the process with the
|
|
22
|
+
// quote still on it and every url parser rejects the scheme
|
|
23
|
+
export function dockerEnv(contents) {
|
|
24
|
+
const lines = Object.entries(parseEnv(contents)).map(([key, value]) => {
|
|
25
|
+
// The format is one variable per line, so there is no spelling of this that
|
|
26
|
+
// docker would read back. Better to name the variable than to truncate it
|
|
27
|
+
if (value.includes("\n")) {
|
|
28
|
+
throw new Error(`${key} spans more than one line, which a docker env file cannot carry. ` +
|
|
29
|
+
"Pass it as a file secret instead");
|
|
30
|
+
}
|
|
31
|
+
return `${key}=${value}`;
|
|
32
|
+
});
|
|
33
|
+
return lines.length > 0 ? `${lines.join("\n")}\n` : "";
|
|
34
|
+
}
|
|
35
|
+
// Enough of the format to carry a credential: KEY=value, quotes stripped,
|
|
36
|
+
// blank lines and comments skipped. A quoted value may run past the end of its
|
|
37
|
+
// line, because a key or a certificate is written the way it was generated
|
|
38
|
+
export function parseEnv(contents) {
|
|
39
|
+
const values = {};
|
|
40
|
+
const lines = contents.split("\n");
|
|
41
|
+
for (let at = 0; at < lines.length; at += 1) {
|
|
42
|
+
const text = (lines[at] ?? "").trim();
|
|
43
|
+
if (!text || text.startsWith("#"))
|
|
44
|
+
continue;
|
|
45
|
+
const split = text.indexOf("=");
|
|
46
|
+
if (split < 1)
|
|
47
|
+
continue;
|
|
48
|
+
const key = text.slice(0, split).replace(/^export\s+/, "").trim();
|
|
49
|
+
const start = text.slice(split + 1).trim();
|
|
50
|
+
const edge = start[0];
|
|
51
|
+
if (edge !== '"' && edge !== "'") {
|
|
52
|
+
values[key] = start;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (start.length > 1 && start.endsWith(edge)) {
|
|
56
|
+
values[key] = start.slice(1, -1);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// The quote never closed on its own line. Take whole lines until one closes
|
|
60
|
+
// it, so a pem arrives whole rather than as its first line
|
|
61
|
+
const held = [start.slice(1)];
|
|
62
|
+
while (at + 1 < lines.length) {
|
|
63
|
+
at += 1;
|
|
64
|
+
const next = (lines[at] ?? "").trimEnd();
|
|
65
|
+
if (next.endsWith(edge)) {
|
|
66
|
+
held.push(next.slice(0, -1));
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
held.push(next);
|
|
70
|
+
}
|
|
71
|
+
values[key] = held.join("\n");
|
|
72
|
+
}
|
|
73
|
+
return values;
|
|
74
|
+
}
|
|
20
75
|
//# sourceMappingURL=environment.js.map
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,iDAAiD;AAEjD,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY,EAAE,OAAgB;IAC7D,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,MAAM,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,18 +9,19 @@ export * from "./host.js";
|
|
|
9
9
|
export * from "./layout.js";
|
|
10
10
|
export * from "./localHost.js";
|
|
11
11
|
export * from "./log.js";
|
|
12
|
-
export * from "./nginx.js";
|
|
13
12
|
export * from "./pipeline.js";
|
|
14
13
|
export * from "./plugin.js";
|
|
15
14
|
export * from "./plugins/index.js";
|
|
16
15
|
export * from "./recover.js";
|
|
17
16
|
export * from "./presets/index.js";
|
|
17
|
+
export * from "./secrets/manager.js";
|
|
18
18
|
export * from "./secrets/refs.js";
|
|
19
19
|
export * from "./secrets/store.js";
|
|
20
20
|
export * from "./shell.js";
|
|
21
21
|
export * from "./services/ensure.js";
|
|
22
22
|
export * from "./services/index.js";
|
|
23
23
|
export * from "./services/planned.js";
|
|
24
|
+
export * from "./services/proxy.js";
|
|
24
25
|
export * from "./source.js";
|
|
25
26
|
export * from "./sshHost.js";
|
|
26
27
|
export * from "./steps.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,18 +9,19 @@ export * from "./host.js";
|
|
|
9
9
|
export * from "./layout.js";
|
|
10
10
|
export * from "./localHost.js";
|
|
11
11
|
export * from "./log.js";
|
|
12
|
-
export * from "./nginx.js";
|
|
13
12
|
export * from "./pipeline.js";
|
|
14
13
|
export * from "./plugin.js";
|
|
15
14
|
export * from "./plugins/index.js";
|
|
16
15
|
export * from "./recover.js";
|
|
17
16
|
export * from "./presets/index.js";
|
|
17
|
+
export * from "./secrets/manager.js";
|
|
18
18
|
export * from "./secrets/refs.js";
|
|
19
19
|
export * from "./secrets/store.js";
|
|
20
20
|
export * from "./shell.js";
|
|
21
21
|
export * from "./services/ensure.js";
|
|
22
22
|
export * from "./services/index.js";
|
|
23
23
|
export * from "./services/planned.js";
|
|
24
|
+
export * from "./services/proxy.js";
|
|
24
25
|
export * from "./source.js";
|
|
25
26
|
export * from "./sshHost.js";
|
|
26
27
|
export * from "./steps.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
package/dist/log.d.ts
CHANGED
package/dist/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,IAAI,GAAG;IAEjB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,IAAI,GAAG;IAEjB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG;IAG9C,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AASF,eAAO,MAAM,MAAM,EAAE,GAMnB,CAAC"}
|
package/dist/log.js
CHANGED
package/dist/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sEAAsE;
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sEAAsE;AA2BtE,MAAM,OAAO,GAAS;IACpB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE;IACjD,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO;CACpB,CAAC,CAAC"}
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline.js
CHANGED
|
@@ -40,6 +40,9 @@ export class Aborted extends Error {
|
|
|
40
40
|
export async function runPipeline(run, steps, setting, signal) {
|
|
41
41
|
const ordered = sequence(steps, RUNS[run]);
|
|
42
42
|
const plan = { config: setting.config, environment: setting.environment };
|
|
43
|
+
// What the run will walk, said before any of it does. Nothing depends on it
|
|
44
|
+
// being heard: a log without a view has nothing to do with the list
|
|
45
|
+
setting.log.plan?.(ordered.map((step) => step.point));
|
|
43
46
|
// Every check before any step, so a run that is going to fail on a config
|
|
44
47
|
// mistake fails before it has created a network or built an image. Nothing
|
|
45
48
|
// wraps what a check throws: it is about the config, and the config is what
|
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitwarden.d.ts","sourceRoot":"","sources":["../../src/plugins/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bitwarden.d.ts","sourceRoot":"","sources":["../../src/plugins/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C,MAAM,MAAM,gBAAgB,GAAG;IAQ7B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,iBAAS,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAOrD;AA6CD,eAAO,MAAM,SAAS;eACT,MAAM,KAAG,SAAS;CAC7B,CAAC"}
|
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
import { definePlugin } from "../plugin.js";
|
|
2
|
+
import { secretsManagerStore } from "../secrets/manager.js";
|
|
2
3
|
import { bitwardenStore } from "../secrets/store.js";
|
|
3
4
|
// Redkite's own vault, and a plugin like any other: a deployment that does not
|
|
4
5
|
// register it cannot resolve a bitwarden ref, and says so before it builds.
|
|
5
|
-
//
|
|
6
|
-
//
|
|
6
|
+
//
|
|
7
|
+
// Bitwarden is two services rather than one. Secrets Manager holds secrets for
|
|
8
|
+
// machines and opens with an access token, which is what a deploy wants. The
|
|
9
|
+
// password manager holds a person's vault and wants a session obtained by
|
|
10
|
+
// unlocking it. The ids are different, the CLIs are different, and giving one
|
|
11
|
+
// service's credential to the other is how a deploy ends up waiting on a
|
|
12
|
+
// password prompt nobody can see.
|
|
13
|
+
// The one variable either side reads, so a job sets one thing whichever it is
|
|
7
14
|
const KEY = "BW_KEY";
|
|
8
15
|
function vault(options = {}) {
|
|
9
16
|
const secrets = options.secrets ?? true;
|
|
10
|
-
if (secrets === false)
|
|
11
|
-
return definePlugin({ name: "bitwarden" });
|
|
12
17
|
return definePlugin({
|
|
13
18
|
name: "bitwarden",
|
|
14
19
|
stores: { bitwarden: async (context) => await open(secrets, context) },
|
|
15
20
|
});
|
|
16
21
|
}
|
|
17
22
|
async function open(secrets, context) {
|
|
18
|
-
|
|
23
|
+
if (secrets === false)
|
|
24
|
+
return await passwords(context);
|
|
25
|
+
const token = typeof secrets === "string" ? secrets : process.env[KEY];
|
|
26
|
+
if (!token) {
|
|
27
|
+
throw new Error(`${KEY} is not set, and this deployment reads from Bitwarden Secrets ` +
|
|
28
|
+
"Manager. It is an access token, not a password. A deployment reading " +
|
|
29
|
+
"the password manager instead says bitwarden({ secrets: false })");
|
|
30
|
+
}
|
|
31
|
+
return await secretsManagerStore({ token, detail: context.detail });
|
|
32
|
+
}
|
|
33
|
+
// The personal vault. A session skips the login and the unlock, which is two
|
|
34
|
+
// fewer round trips and the only way a job without a master password gets in
|
|
35
|
+
async function passwords(context) {
|
|
36
|
+
const session = process.env[KEY];
|
|
19
37
|
if (session)
|
|
20
38
|
return await bitwardenStore({ session, detail: context.detail });
|
|
21
39
|
return await bitwardenStore({
|
|
@@ -29,7 +47,8 @@ function required(name) {
|
|
|
29
47
|
const value = process.env[name];
|
|
30
48
|
if (value)
|
|
31
49
|
return value;
|
|
32
|
-
throw new Error(`Neither ${KEY} nor ${name} is set, and this deployment reads its
|
|
50
|
+
throw new Error(`Neither ${KEY} nor ${name} is set, and this deployment reads its ` +
|
|
51
|
+
"environment from the Bitwarden password manager");
|
|
33
52
|
}
|
|
34
53
|
// The plugin is what a deployment registers; the item is what an app points at.
|
|
35
54
|
// Both are named bitwarden because both are the same vault, and the id is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitwarden.js","sourceRoot":"","sources":["../../src/plugins/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,4EAA4E;
|
|
1
|
+
{"version":3,"file":"bitwarden.js","sourceRoot":"","sources":["../../src/plugins/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,8EAA8E;AAC9E,yEAAyE;AACzE,kCAAkC;AAElC,8EAA8E;AAC9E,MAAM,GAAG,GAAG,QAAQ,CAAC;AAarB,SAAS,KAAK,CAAC,UAA4B,EAAE;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IAExC,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;KACvE,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAyB,EAAE,OAAoB;IACjE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,gEAAgE;YACpE,uEAAuE;YACvE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,KAAK,UAAU,SAAS,CAAC,OAAoB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO;QAAE,OAAO,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9E,OAAO,MAAM,cAAc,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC;QAClC,YAAY,EAAE,QAAQ,CAAC,kBAAkB,CAAC;QAC1C,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,IAAI,KAAK,CACb,WAAW,GAAG,QAAQ,IAAI,yCAAyC;QACjE,iDAAiD,CACpD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,4EAA4E;AAC5E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,CAAC,EAAU,EAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;CACjE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextApp.d.ts","sourceRoot":"","sources":["../../src/presets/nextApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAGzD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"nextApp.d.ts","sourceRoot":"","sources":["../../src/presets/nextApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAGzD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,SAAS,CAsD/D"}
|
package/dist/presets/nextApp.js
CHANGED
|
@@ -39,10 +39,11 @@ export function nextApp(options = {}) {
|
|
|
39
39
|
// whatever the repository put there, and plenty of apps have none
|
|
40
40
|
carry: ["/app/.next/static", { path: "/app/public", optional: true }],
|
|
41
41
|
entrypoint: start("node server.js"),
|
|
42
|
-
// app
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
42
|
+
// next-app is Next's own build cache, which only ever makes a build
|
|
43
|
+
// slower when it is dropped. node_modules is not here for the same
|
|
44
|
+
// reason it is not in nodeApp: a dropped mount and a kept layer is a
|
|
45
|
+
// build that cannot find what the manifest lists
|
|
46
|
+
caches: ["yarn", "npm", "next-app"],
|
|
46
47
|
}),
|
|
47
48
|
preset: "nextApp",
|
|
48
49
|
// The standalone tree traces from the workspace root, so an app in a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextApp.js","sourceRoot":"","sources":["../../src/presets/nextApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAavC,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,UAA0B,EAAE;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAE9C,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW;QACvC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC;QACtC,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;IAEF,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAChC,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAyB,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,GAAG,OAAO,CAAC;gBACT,GAAG,MAAM;gBACT,sEAAsE;gBACtE,oDAAoD;gBACpD,MAAM,EAAE,MAAM;gBACd,kEAAkE;gBAClE,6DAA6D;gBAC7D,UAAU,EAAE,KAAK,CAAC,6BAA6B,CAAC;gBAChD,qEAAqE;gBACrE,mDAAmD;gBACnD,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;aACpC,CAAC;YACF,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,OAAO,CAAC;YACT,GAAG,MAAM;YACT,MAAM,EAAE,uBAAuB;YAC/B,qEAAqE;YACrE,kEAAkE;YAClE,KAAK,EAAE,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrE,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC;YACnC,oEAAoE;YACpE,
|
|
1
|
+
{"version":3,"file":"nextApp.js","sourceRoot":"","sources":["../../src/presets/nextApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAavC,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,UAA0B,EAAE;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAE9C,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW;QACvC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC;QACtC,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;IAEF,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAChC,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAyB,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,GAAG,OAAO,CAAC;gBACT,GAAG,MAAM;gBACT,sEAAsE;gBACtE,oDAAoD;gBACpD,MAAM,EAAE,MAAM;gBACd,kEAAkE;gBAClE,6DAA6D;gBAC7D,UAAU,EAAE,KAAK,CAAC,6BAA6B,CAAC;gBAChD,qEAAqE;gBACrE,mDAAmD;gBACnD,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;aACpC,CAAC;YACF,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,OAAO,CAAC;YACT,GAAG,MAAM;YACT,MAAM,EAAE,uBAAuB;YAC/B,qEAAqE;YACrE,kEAAkE;YAClE,KAAK,EAAE,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrE,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC;YACnC,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,iDAAiD;YACjD,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;SACpC,CAAC;QACF,MAAM,EAAE,SAAS;QACjB,qEAAqE;QACrE,qEAAqE;QACrE,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeApp.d.ts","sourceRoot":"","sources":["../../src/presets/nodeApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"nodeApp.d.ts","sourceRoot":"","sources":["../../src/presets/nodeApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAoC1D"}
|
package/dist/presets/nodeApp.js
CHANGED
|
@@ -14,13 +14,22 @@ export function nodeApp(options) {
|
|
|
14
14
|
output: options.output,
|
|
15
15
|
carry: options.carry ?? [],
|
|
16
16
|
entrypoint: options.entrypoint,
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
|
|
17
|
+
// The package manager's own cache, and nothing else. node_modules used to
|
|
18
|
+
// be a mount too, and BuildKit drops a cache mount whenever it likes while
|
|
19
|
+
// keeping the layer that filled it: the install then does not re-run and
|
|
20
|
+
// the modules are simply gone. What that looks like is a build saying it
|
|
21
|
+
// cannot find a dependency the manifest plainly lists.
|
|
22
|
+
//
|
|
23
|
+
// Installed into the layer instead, they are there for every step below,
|
|
24
|
+
// for a migration run in this image afterwards, and for a check. The
|
|
25
|
+
// manager's cache still makes the install itself fast
|
|
26
|
+
caches: options.caches ?? ["yarn", "npm"],
|
|
21
27
|
submodules: options.submodules ?? false,
|
|
22
|
-
// The checkout arrives complete, so this is what a build step itself needs
|
|
23
|
-
|
|
28
|
+
// The checkout arrives complete, so this is what a build step itself needs.
|
|
29
|
+
// openssh-client is for the dependencies it resolves rather than the
|
|
30
|
+
// repository: a git+ssh entry in a manifest is fetched during the install,
|
|
31
|
+
// and git cannot do that without an ssh to run
|
|
32
|
+
aptPackages: ["git", "openssh-client"],
|
|
24
33
|
runtimePackages: ["curl"],
|
|
25
34
|
runtimeSteps: [],
|
|
26
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeApp.js","sourceRoot":"","sources":["../../src/presets/nodeApp.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,OAAO,CAAC,OAAuB;IAC7C,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,QAAQ,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE;QACtD,YAAY,EAAE,QAAQ,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE;QACtD,YAAY,EACV,OAAO,CAAC,YAAY,KAAK,KAAK;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI;gBACvB,KAAK,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;gBACpC,IAAI,EAAE,gCAAgC;gBACtC,YAAY,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;aACvD,CAAC;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,
|
|
1
|
+
{"version":3,"file":"nodeApp.js","sourceRoot":"","sources":["../../src/presets/nodeApp.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,OAAO,CAAC,OAAuB;IAC7C,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,QAAQ,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE;QACtD,YAAY,EAAE,QAAQ,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE;QACtD,YAAY,EACV,OAAO,CAAC,YAAY,KAAK,KAAK;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI;gBACvB,KAAK,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;gBACpC,IAAI,EAAE,gCAAgC;gBACtC,YAAY,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;aACvD,CAAC;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,uDAAuD;QACvD,EAAE;QACF,yEAAyE;QACzE,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QACzC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,4EAA4E;QAC5E,qEAAqE;QACrE,2EAA2E;QAC3E,+CAA+C;QAC/C,WAAW,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACtC,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SecretStore } from "./refs.js";
|
|
2
|
+
export type ManagerCredentials = {
|
|
3
|
+
token: string;
|
|
4
|
+
detail?: (message: string) => void;
|
|
5
|
+
bws?: Bws;
|
|
6
|
+
};
|
|
7
|
+
export type Bws = (args: string[], env: Record<string, string>) => Promise<string>;
|
|
8
|
+
export declare function secretsManagerStore(credentials: ManagerCredentials): Promise<SecretStore>;
|
|
9
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/secrets/manager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA2B7C,MAAM,MAAM,kBAAkB,GAAG;IAE/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnF,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,WAAW,CAAC,CA2BtB"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { chmodSync, existsSync } from "node:fs";
|
|
3
|
+
import { mkdir, rm, writeFile } from "node:fs/promises";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
// Bitwarden Secrets Manager, which is not the password manager: different
|
|
7
|
+
// service, different CLI, different credential. An access token opens a set of
|
|
8
|
+
// projects rather than a personal vault, which is what a deploy wants, and it
|
|
9
|
+
// is the whole of the authentication: nothing to log in to and nothing to
|
|
10
|
+
// unlock, so there is no session to obtain or lose.
|
|
11
|
+
// Not an npm package. The password manager's CLI is one and redkite installs
|
|
12
|
+
// it with npm; this one is a released binary, and the only thing on npm under
|
|
13
|
+
// its name belongs to somebody else entirely. Pinned for the same reason the
|
|
14
|
+
// other is: an unpinned CLI is a different program on a machine that has never
|
|
15
|
+
// run a deploy before
|
|
16
|
+
const VERSION = "2.1.0";
|
|
17
|
+
const RELEASES = "https://github.com/bitwarden/sdk-sm/releases/download";
|
|
18
|
+
const CLIS = join(homedir(), ".cache", "redkite", "cli");
|
|
19
|
+
// What the release calls each platform. Anything not here has to bring its own
|
|
20
|
+
const TARGETS = {
|
|
21
|
+
"linux-x64": "x86_64-unknown-linux-gnu",
|
|
22
|
+
"linux-arm64": "aarch64-unknown-linux-gnu",
|
|
23
|
+
"darwin-x64": "x86_64-apple-darwin",
|
|
24
|
+
"darwin-arm64": "aarch64-apple-darwin",
|
|
25
|
+
"win32-x64": "x86_64-pc-windows-msvc",
|
|
26
|
+
"win32-arm64": "aarch64-pc-windows-msvc",
|
|
27
|
+
};
|
|
28
|
+
export async function secretsManagerStore(credentials) {
|
|
29
|
+
const detail = credentials.detail ?? (() => { });
|
|
30
|
+
const bws = credentials.bws ?? (await resolve(detail));
|
|
31
|
+
// Fetched once each. A second read of the same item during a deploy is the
|
|
32
|
+
// same answer, and this avoids a process per call site
|
|
33
|
+
const cache = new Map();
|
|
34
|
+
const fetch = async (id) => {
|
|
35
|
+
detail(`reading ${id.slice(0, 8)}`);
|
|
36
|
+
const answer = await bws(["secret", "get", id, "--output", "json"], {
|
|
37
|
+
BWS_ACCESS_TOKEN: credentials.token,
|
|
38
|
+
}).catch((error) => {
|
|
39
|
+
throw new Error(`Could not read ${id} from Bitwarden Secrets Manager: ${messageOf(error)}`);
|
|
40
|
+
});
|
|
41
|
+
return valueOf(answer, id);
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
read: async (id) => {
|
|
45
|
+
const pending = cache.get(id) ?? fetch(id);
|
|
46
|
+
cache.set(id, pending);
|
|
47
|
+
return await pending;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// The secret's value, which is the whole of what a ref points at. Everything
|
|
52
|
+
// else the call answers with is about the item rather than in it
|
|
53
|
+
function valueOf(answer, id) {
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(answer);
|
|
56
|
+
if (typeof parsed.value === "string")
|
|
57
|
+
return parsed.value;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Falls through to the same refusal as a shape without a value
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Bitwarden Secrets Manager answered for ${id} without a value`);
|
|
63
|
+
}
|
|
64
|
+
async function resolve(detail) {
|
|
65
|
+
const file = await binary(detail);
|
|
66
|
+
return async (args, env) => await run(file, args, env);
|
|
67
|
+
}
|
|
68
|
+
async function binary(detail) {
|
|
69
|
+
const override = process.env["REDKITE_BWS_BIN"];
|
|
70
|
+
if (override)
|
|
71
|
+
return override;
|
|
72
|
+
const onPath = await run("bws", ["--version"], {}).then(() => true, () => false);
|
|
73
|
+
if (onPath)
|
|
74
|
+
return "bws";
|
|
75
|
+
const directory = join(CLIS, `bws-${VERSION}`);
|
|
76
|
+
const installed = join(directory, process.platform === "win32" ? "bws.exe" : "bws");
|
|
77
|
+
if (existsSync(installed))
|
|
78
|
+
return installed;
|
|
79
|
+
return await install(directory, installed, detail);
|
|
80
|
+
}
|
|
81
|
+
// Downloaded once per machine per pinned version, the way the other CLI is
|
|
82
|
+
// installed once. The archive is a zip with one file in it, and unzip is the
|
|
83
|
+
// one thing on every platform that reads one
|
|
84
|
+
async function install(directory, installed, detail) {
|
|
85
|
+
const target = TARGETS[`${process.platform}-${process.arch}`];
|
|
86
|
+
if (!target) {
|
|
87
|
+
throw new Error(`Bitwarden publishes no bws for ${process.platform}-${process.arch}. ` +
|
|
88
|
+
"Install it yourself and point REDKITE_BWS_BIN at it");
|
|
89
|
+
}
|
|
90
|
+
const url = `${RELEASES}/bws-v${VERSION}/bws-${target}-${VERSION}.zip`;
|
|
91
|
+
detail(`installing bws ${VERSION}, once for this machine`);
|
|
92
|
+
await mkdir(directory, { recursive: true });
|
|
93
|
+
const archive = join(directory, "bws.zip");
|
|
94
|
+
const answer = await globalThis.fetch(url);
|
|
95
|
+
if (!answer.ok)
|
|
96
|
+
throw new Error(`Could not download bws from ${url}: ${answer.status}`);
|
|
97
|
+
await writeFile(archive, Buffer.from(await answer.arrayBuffer()));
|
|
98
|
+
await run("unzip", ["-o", "-q", archive, "-d", directory], {}).catch((error) => {
|
|
99
|
+
throw new Error(`Could not unpack bws: ${messageOf(error)}`);
|
|
100
|
+
});
|
|
101
|
+
await rm(archive, { force: true });
|
|
102
|
+
// The zip carries no mode anything trusts, so it arrives unrunnable
|
|
103
|
+
chmodSync(installed, 0o755);
|
|
104
|
+
return installed;
|
|
105
|
+
}
|
|
106
|
+
// Nothing on stdin, and the output kept exactly as it came. The same reasoning
|
|
107
|
+
// as the password manager's runner: a question nobody can answer is a deploy
|
|
108
|
+
// that waits for ever
|
|
109
|
+
function run(file, args, env) {
|
|
110
|
+
return new Promise((resolve_, reject) => {
|
|
111
|
+
const child = spawn(file, args, {
|
|
112
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
113
|
+
env: { ...process.env, ...env },
|
|
114
|
+
});
|
|
115
|
+
let stdout = "";
|
|
116
|
+
let stderr = "";
|
|
117
|
+
child.stdout.on("data", (chunk) => (stdout += chunk.toString()));
|
|
118
|
+
child.stderr.on("data", (chunk) => (stderr += chunk.toString()));
|
|
119
|
+
child.on("error", reject);
|
|
120
|
+
child.on("close", (code) => {
|
|
121
|
+
if (code === 0)
|
|
122
|
+
return resolve_(stdout);
|
|
123
|
+
reject(new Error(stderr.trim() || stdout.trim() || `${file} exited ${code}`));
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function messageOf(error) {
|
|
128
|
+
return error instanceof Error ? error.message : String(error);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/secrets/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAsC7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAUzF,wBAAsB,cAAc,CAClC,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,WAAW,CAAC,CAsDtB"}
|