@catladder/cli 0.0.0-next-4e7c6848 → 0.0.0-next-8b9ad5ca
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/bundles/catenv/index.js +617 -19
- package/dist/bundles/cli/index.js +811 -18
- package/dist/cli/src/adapters/baseContext.d.ts +4 -0
- package/dist/cli/src/adapters/baseContext.js +5 -0
- package/dist/cli/src/adapters/baseContext.js.map +1 -1
- package/dist/cli/src/adapters/nonInteractive.d.ts +9 -0
- package/dist/cli/src/adapters/nonInteractive.js +32 -0
- package/dist/cli/src/adapters/nonInteractive.js.map +1 -0
- package/dist/cli/src/adapters/programmatic.d.ts +1 -0
- package/dist/cli/src/adapters/programmatic.js +6 -1
- package/dist/cli/src/adapters/programmatic.js.map +1 -1
- package/dist/cli/src/adapters/terminal.d.ts +1 -0
- package/dist/cli/src/adapters/terminal.js +10 -1
- package/dist/cli/src/adapters/terminal.js.map +1 -1
- package/dist/cli/src/adapters/vaultManagerAccess.d.ts +8 -0
- package/dist/cli/src/adapters/vaultManagerAccess.js +26 -0
- package/dist/cli/src/adapters/vaultManagerAccess.js.map +1 -0
- package/dist/cli/src/apps/catenv/catenv.d.ts +2 -0
- package/dist/cli/src/apps/catenv/catenv.js +8 -1
- package/dist/cli/src/apps/catenv/catenv.js.map +1 -1
- package/dist/cli/src/apps/catenv/printVariables.d.ts +2 -2
- package/dist/cli/src/apps/catenv/printVariables.js +4 -4
- package/dist/cli/src/apps/catenv/printVariables.js.map +1 -1
- package/dist/cli/src/apps/catenv/types.d.ts +9 -0
- package/dist/cli/src/apps/catenv/writeDotEnvFiles.d.ts +2 -2
- package/dist/cli/src/apps/catenv/writeDotEnvFiles.js +1 -1
- package/dist/cli/src/apps/catenv/writeDotEnvFiles.js.map +1 -1
- package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js +52 -3
- package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/cli/src/catenv.js +3 -2
- package/dist/cli/src/catenv.js.map +1 -1
- package/dist/cli/src/commands/index.d.ts +1 -0
- package/dist/cli/src/commands/index.js +8 -1
- package/dist/cli/src/commands/index.js.map +1 -1
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.d.ts +37 -0
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.js +127 -0
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.js.map +1 -0
- package/dist/cli/src/config/getProjectConfig.d.ts +1 -1
- package/dist/cli/src/config/getProjectConfig.js +12 -2
- package/dist/cli/src/config/getProjectConfig.js.map +1 -1
- package/dist/cli/src/core/types.d.ts +15 -0
- package/dist/cli/src/core/types.js +8 -1
- package/dist/cli/src/core/types.js.map +1 -1
- package/dist/cli/src/git/gitProjectInformation.d.ts +1 -1
- package/dist/cli/src/git/gitProjectInformation.js +3 -3
- package/dist/cli/src/git/gitProjectInformation.js.map +1 -1
- package/dist/cli/src/utils/github.d.ts +15 -0
- package/dist/cli/src/utils/github.js +54 -0
- package/dist/cli/src/utils/github.js.map +1 -0
- package/dist/cli/src/vault/BitwardenVault.d.ts +24 -0
- package/dist/cli/src/vault/BitwardenVault.js +107 -0
- package/dist/cli/src/vault/BitwardenVault.js.map +1 -0
- package/dist/cli/src/vault/GitlabVault.d.ts +11 -0
- package/dist/cli/src/vault/GitlabVault.js +24 -0
- package/dist/cli/src/vault/GitlabVault.js.map +1 -0
- package/dist/cli/src/vault/VaultManager.d.ts +43 -0
- package/dist/cli/src/vault/VaultManager.js +131 -0
- package/dist/cli/src/vault/VaultManager.js.map +1 -0
- package/dist/cli/src/vault/bw.d.ts +15 -0
- package/dist/cli/src/vault/bw.js +89 -0
- package/dist/cli/src/vault/bw.js.map +1 -0
- package/dist/cli/src/vault/cache.d.ts +38 -0
- package/dist/cli/src/vault/cache.js +53 -0
- package/dist/cli/src/vault/cache.js.map +1 -0
- package/dist/cli/src/vault/index.d.ts +5 -0
- package/dist/cli/src/vault/index.js +48 -0
- package/dist/cli/src/vault/index.js.map +1 -0
- package/dist/cli/src/vault/types.d.ts +33 -0
- package/dist/cli/src/vault/types.js +5 -0
- package/dist/cli/src/vault/types.js.map +1 -0
- package/dist/pipeline/src/backends/index.d.ts +17 -1
- package/dist/pipeline/src/backends/index.js +33 -1
- package/dist/pipeline/src/backends/index.js.map +1 -1
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/deploy/cloudRun/index.js +11 -4
- package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/pipeline/src/types/config.d.ts +37 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapters/baseContext.ts +10 -0
- package/src/adapters/nonInteractive.ts +30 -0
- package/src/adapters/programmatic.ts +7 -1
- package/src/adapters/terminal.ts +9 -1
- package/src/adapters/vaultManagerAccess.ts +25 -0
- package/src/apps/catenv/catenv.ts +5 -1
- package/src/apps/catenv/printVariables.ts +16 -6
- package/src/apps/catenv/types.ts +9 -0
- package/src/apps/catenv/writeDotEnvFiles.ts +3 -3
- package/src/apps/cli/commands/project/commandConfigSecrets.ts +94 -9
- package/src/catenv.ts +22 -2
- package/src/commands/index.ts +1 -0
- package/src/commands/project/commandSecretsSyncGithub.ts +149 -0
- package/src/config/getProjectConfig.ts +21 -7
- package/src/core/types.ts +23 -0
- package/src/git/gitProjectInformation.ts +5 -3
- package/src/utils/github.ts +59 -0
- package/src/vault/BitwardenVault.ts +161 -0
- package/src/vault/GitlabVault.ts +25 -0
- package/src/vault/VaultManager.ts +211 -0
- package/src/vault/bw.ts +110 -0
- package/src/vault/cache.ts +80 -0
- package/src/vault/index.ts +5 -0
- package/src/vault/types.ts +42 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CommandContext, CommandDef, InputDef, InputResultType, InputsSchema, OptionalInput } from "../core/types";
|
|
2
|
+
import type { VaultManager } from "../vault/VaultManager";
|
|
2
3
|
/**
|
|
3
4
|
* Base class for CommandContext implementations.
|
|
4
5
|
* Handles caching, the `get()` method, and `promptDirect` delegation.
|
|
@@ -8,8 +9,11 @@ export declare abstract class BaseContext<TInputs extends InputsSchema> implemen
|
|
|
8
9
|
protected readonly command: CommandDef<TInputs>;
|
|
9
10
|
private cache;
|
|
10
11
|
constructor(command: CommandDef<TInputs>);
|
|
12
|
+
abstract readonly interactive: boolean;
|
|
11
13
|
abstract log(message: string): void;
|
|
12
14
|
abstract confirm(message: string): Promise<boolean>;
|
|
15
|
+
private readonly vaultManagerGetter;
|
|
16
|
+
getVaultManager(): Promise<VaultManager>;
|
|
13
17
|
/**
|
|
14
18
|
* Resolve a single input value. Called once per input (result is cached).
|
|
15
19
|
* Implementations check pre-supplied values, prompt interactively, use defaults, or throw.
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BaseContext = void 0;
|
|
7
|
+
const vaultManagerAccess_1 = require("./vaultManagerAccess");
|
|
7
8
|
/**
|
|
8
9
|
* Base class for CommandContext implementations.
|
|
9
10
|
* Handles caching, the `get()` method, and `promptDirect` delegation.
|
|
@@ -13,6 +14,10 @@ class BaseContext {
|
|
|
13
14
|
constructor(command) {
|
|
14
15
|
this.command = command;
|
|
15
16
|
this.cache = new Map();
|
|
17
|
+
this.vaultManagerGetter = (0, vaultManagerAccess_1.createVaultManagerGetter)(() => this);
|
|
18
|
+
}
|
|
19
|
+
getVaultManager() {
|
|
20
|
+
return this.vaultManagerGetter();
|
|
16
21
|
}
|
|
17
22
|
get(name) {
|
|
18
23
|
if (!this.cache.has(name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseContext.js","sourceRoot":"","sources":["../../../../src/adapters/baseContext.ts"],"names":[],"mappings":";;;AASA;;;;GAIG;AACH,MAAsB,WAAW;IAK/B,YAA+B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAFnD,UAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"baseContext.js","sourceRoot":"","sources":["../../../../src/adapters/baseContext.ts"],"names":[],"mappings":";;;AASA,6DAAgE;AAEhE;;;;GAIG;AACH,MAAsB,WAAW;IAK/B,YAA+B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAFnD,UAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;QAS/B,uBAAkB,GAAG,IAAA,6CAAwB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAPb,CAAC;IAS/D,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAWD,GAAG,CACD,IAAO;QAEP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,UAAU,IAAI,iCAAiC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CACpE,CACF,CAAC;YACJ,CAAC;YACD,iEAAiE;YACjE,4CAA4C;YAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1C,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,mBAAmB;wBAAE,OAAO,SAAS,CAAC;oBACxD,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAA0B;QAE1B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF;AA7DD,kCA6DC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IO } from "../core/types";
|
|
2
|
+
import type { SecretsMode } from "../vault";
|
|
3
|
+
/**
|
|
4
|
+
* the context of non-interactive runs (catenv via direnv): logging
|
|
5
|
+
* goes to stderr, any required interaction fails with a clear error.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createNonInteractiveIO(options?: {
|
|
8
|
+
vaultMode?: SecretsMode;
|
|
9
|
+
}): IO;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createNonInteractiveIO = void 0;
|
|
7
|
+
const types_1 = require("../core/types");
|
|
8
|
+
const vaultManagerAccess_1 = require("./vaultManagerAccess");
|
|
9
|
+
/**
|
|
10
|
+
* the context of non-interactive runs (catenv via direnv): logging
|
|
11
|
+
* goes to stderr, any required interaction fails with a clear error.
|
|
12
|
+
*/
|
|
13
|
+
function createNonInteractiveIO(options = {}) {
|
|
14
|
+
const io = {
|
|
15
|
+
interactive: false,
|
|
16
|
+
getVaultManager: (0, vaultManagerAccess_1.createVaultManagerGetter)(() => io, {
|
|
17
|
+
mode: options.vaultMode
|
|
18
|
+
}),
|
|
19
|
+
log(message) {
|
|
20
|
+
// stderr: stdout may be evaluated (direnv)
|
|
21
|
+
console.error(message);
|
|
22
|
+
},
|
|
23
|
+
async confirm(message) {
|
|
24
|
+
throw new types_1.NonInteractiveError(`confirmation ("${message}")`);
|
|
25
|
+
},
|
|
26
|
+
async promptDirect(spec) {
|
|
27
|
+
throw new types_1.NonInteractiveError(`input "${spec.name}"`);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
return io;
|
|
31
|
+
}
|
|
32
|
+
exports.createNonInteractiveIO = createNonInteractiveIO;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonInteractive.js","sourceRoot":"","sources":["../../../../src/adapters/nonInteractive.ts"],"names":[],"mappings":";;;AACA,yCAAoD;AAEpD,6DAAgE;AAEhE;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,UAAuC,EAAE;IAEzC,MAAM,EAAE,GAAO;QACb,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,IAAA,6CAAwB,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,EAAE,OAAO,CAAC,SAAS;SACxB,CAAC;QACF,GAAG,CAAC,OAAe;YACjB,2CAA2C;YAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAe;YAC3B,MAAM,IAAI,2BAAmB,CAAC,kBAAkB,OAAO,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,IAAI;YACrB,MAAM,IAAI,2BAAmB,CAAC,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;IACF,OAAO,EAAE,CAAC;AACZ,CAAC;AApBD,wDAoBC"}
|
|
@@ -9,6 +9,7 @@ export interface ProgrammaticOptions {
|
|
|
9
9
|
declare class ProgrammaticContext<TInputs extends InputsSchema> extends BaseContext<TInputs> {
|
|
10
10
|
private inputs;
|
|
11
11
|
private onLog?;
|
|
12
|
+
readonly interactive = false;
|
|
12
13
|
constructor(command: CommandDef<TInputs>, options: ProgrammaticOptions);
|
|
13
14
|
log(message: string): void;
|
|
14
15
|
confirm(): Promise<boolean>;
|
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createProgrammaticIO = exports.createProgrammaticContext = void 0;
|
|
7
7
|
const types_1 = require("../core/types");
|
|
8
8
|
const baseContext_1 = require("./baseContext");
|
|
9
|
+
const vaultManagerAccess_1 = require("./vaultManagerAccess");
|
|
9
10
|
class ProgrammaticContext extends baseContext_1.BaseContext {
|
|
10
11
|
constructor(command, options) {
|
|
11
12
|
var _a;
|
|
12
13
|
super(command);
|
|
14
|
+
this.interactive = false;
|
|
13
15
|
this.inputs = (_a = options.inputs) !== null && _a !== void 0 ? _a : {};
|
|
14
16
|
this.onLog = options.onLog;
|
|
15
17
|
}
|
|
@@ -46,7 +48,9 @@ function createProgrammaticIO(options = {}) {
|
|
|
46
48
|
inputs = {},
|
|
47
49
|
onLog
|
|
48
50
|
} = options;
|
|
49
|
-
|
|
51
|
+
const io = {
|
|
52
|
+
interactive: false,
|
|
53
|
+
getVaultManager: (0, vaultManagerAccess_1.createVaultManagerGetter)(() => io),
|
|
50
54
|
log(message) {
|
|
51
55
|
onLog === null || onLog === void 0 ? void 0 : onLog(message);
|
|
52
56
|
},
|
|
@@ -63,5 +67,6 @@ function createProgrammaticIO(options = {}) {
|
|
|
63
67
|
throw new types_1.MissingInputError(spec.name, spec.message);
|
|
64
68
|
}
|
|
65
69
|
};
|
|
70
|
+
return io;
|
|
66
71
|
}
|
|
67
72
|
exports.createProgrammaticIO = createProgrammaticIO;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programmatic.js","sourceRoot":"","sources":["../../../../src/adapters/programmatic.ts"],"names":[],"mappings":";;;AAOA,yCAAkD;AAClD,+CAA4C;
|
|
1
|
+
{"version":3,"file":"programmatic.js","sourceRoot":"","sources":["../../../../src/adapters/programmatic.ts"],"names":[],"mappings":";;;AAOA,yCAAkD;AAClD,+CAA4C;AAC5C,6DAAgE;AAShE,MAAM,mBAEJ,SAAQ,yBAAoB;IAM5B,YAAY,OAA4B,EAAE,OAA4B;;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,gBAAW,GAAG,KAAK,CAAC;QAI3B,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,OAAe;;QACjB,MAAA,IAAI,CAAC,KAAK,qDAAG,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,CAAC,oCAAoC;IACnD,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,IAAY,EACZ,IAAO;QAEP,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuB,CAAC;QACjD,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,OAA6B,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,yBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CACvC,OAA4B,EAC5B,UAA+B,EAAE;IAEjC,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AALD,8DAKC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,UAA+B,EAAE;IACpE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEvC,MAAM,EAAE,GAAO;QACb,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,IAAA,6CAAwB,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAe;YACjB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,YAAY,CAChB,IAA0B;YAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAC;YACjD,CAAC;YACD,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC,OAA6B,CAAC;YAC5C,CAAC;YACD,MAAM,IAAI,yBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;IACF,OAAO,EAAE,CAAC;AACZ,CAAC;AAzBD,oDAyBC"}
|
|
@@ -13,6 +13,7 @@ export interface TerminalOptions {
|
|
|
13
13
|
declare class TerminalContext<TInputs extends InputsSchema> extends BaseContext<TInputs> {
|
|
14
14
|
private options;
|
|
15
15
|
constructor(command: CommandDef<TInputs>, options: TerminalOptions);
|
|
16
|
+
get interactive(): boolean;
|
|
16
17
|
log(message: string): void;
|
|
17
18
|
confirm(message: string): Promise<boolean>;
|
|
18
19
|
protected resolveInput<P extends InputDef>(name: string, spec: P): Promise<InputResultType<P>>;
|
|
@@ -37,6 +37,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
37
37
|
exports.createTerminalIO = exports.createTerminalContext = void 0;
|
|
38
38
|
const types_1 = require("../core/types");
|
|
39
39
|
const baseContext_1 = require("./baseContext");
|
|
40
|
+
const vaultManagerAccess_1 = require("./vaultManagerAccess");
|
|
40
41
|
/**
|
|
41
42
|
* Resolve choices from a choices function.
|
|
42
43
|
*/
|
|
@@ -101,6 +102,10 @@ class TerminalContext extends baseContext_1.BaseContext {
|
|
|
101
102
|
super(command);
|
|
102
103
|
this.options = options;
|
|
103
104
|
}
|
|
105
|
+
get interactive() {
|
|
106
|
+
var _a;
|
|
107
|
+
return (_a = this.options.interactive) !== null && _a !== void 0 ? _a : process.stdin.isTTY === true;
|
|
108
|
+
}
|
|
104
109
|
log(message) {
|
|
105
110
|
console.log(message);
|
|
106
111
|
}
|
|
@@ -175,7 +180,10 @@ exports.createTerminalContext = createTerminalContext;
|
|
|
175
180
|
* Create a bare IO instance for terminal helper functions.
|
|
176
181
|
*/
|
|
177
182
|
function createTerminalIO(options = {}) {
|
|
178
|
-
|
|
183
|
+
var _a;
|
|
184
|
+
const io = {
|
|
185
|
+
interactive: (_a = options.interactive) !== null && _a !== void 0 ? _a : process.stdin.isTTY === true,
|
|
186
|
+
getVaultManager: (0, vaultManagerAccess_1.createVaultManagerGetter)(() => io),
|
|
179
187
|
log(message) {
|
|
180
188
|
console.log(message);
|
|
181
189
|
},
|
|
@@ -201,5 +209,6 @@ function createTerminalIO(options = {}) {
|
|
|
201
209
|
throw new types_1.MissingInputError(spec.name, spec.message);
|
|
202
210
|
}
|
|
203
211
|
};
|
|
212
|
+
return io;
|
|
204
213
|
}
|
|
205
214
|
exports.createTerminalIO = createTerminalIO;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../../src/adapters/terminal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,yCAAkD;AAClD,+CAA4C;
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../../src/adapters/terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IO } from "../core/types";
|
|
2
|
+
import type { VaultManagerOptions } from "../vault/VaultManager";
|
|
3
|
+
import { VaultManager } from "../vault/VaultManager";
|
|
4
|
+
/**
|
|
5
|
+
* lazily creates the vault manager of a context (once per context),
|
|
6
|
+
* loading the project config on first use
|
|
7
|
+
*/
|
|
8
|
+
export declare const createVaultManagerGetter: (io: () => IO, options?: Omit<VaultManagerOptions, "io">) => (() => Promise<VaultManager>);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createVaultManagerGetter = void 0;
|
|
7
|
+
const getProjectConfig_1 = require("../config/getProjectConfig");
|
|
8
|
+
const VaultManager_1 = require("../vault/VaultManager");
|
|
9
|
+
/**
|
|
10
|
+
* lazily creates the vault manager of a context (once per context),
|
|
11
|
+
* loading the project config on first use
|
|
12
|
+
*/
|
|
13
|
+
const createVaultManagerGetter = (io, options = {}) => {
|
|
14
|
+
let managerPromise;
|
|
15
|
+
return () => managerPromise !== null && managerPromise !== void 0 ? managerPromise : managerPromise = (async () => {
|
|
16
|
+
const config = await (0, getProjectConfig_1.getProjectConfig)();
|
|
17
|
+
if (!config) {
|
|
18
|
+
throw new Error("no catladder config found — the secrets vault needs a project config");
|
|
19
|
+
}
|
|
20
|
+
return new VaultManager_1.VaultManager(config, {
|
|
21
|
+
...options,
|
|
22
|
+
io: io()
|
|
23
|
+
});
|
|
24
|
+
})();
|
|
25
|
+
};
|
|
26
|
+
exports.createVaultManagerGetter = createVaultManagerGetter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vaultManagerAccess.js","sourceRoot":"","sources":["../../../../src/adapters/vaultManagerAccess.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAG9D,wDAAqD;AAErD;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACtC,EAAY,EACZ,UAA2C,EAAE,EACd,EAAE;IACjC,IAAI,cAAiD,CAAC;IACtD,OAAO,GAAG,EAAE,CACV,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,IAAd,cAAc,GAAK,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,2BAAY,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,EAAE,EAAC,CAAC;AACV,CAAC,CAAC;AAfW,QAAA,wBAAwB,4BAenC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Choice } from "./types";
|
|
2
|
+
import type { SecretsMode } from "../../vault";
|
|
2
3
|
type Options = {
|
|
3
4
|
verbose?: boolean;
|
|
4
5
|
printVariables?: boolean;
|
|
6
|
+
vaultMode?: SecretsMode;
|
|
5
7
|
};
|
|
6
8
|
declare const _default: (choice?: Choice, options?: Options) => Promise<void>;
|
|
7
9
|
export default _default;
|
|
@@ -9,12 +9,19 @@ const verboseBanner_1 = require("./verboseBanner");
|
|
|
9
9
|
const writeDotEnvFiles_1 = require("./writeDotEnvFiles");
|
|
10
10
|
const writeEnvDTs_1 = require("./writeEnvDTs");
|
|
11
11
|
const pipeline_1 = require("../../../../pipeline/src/index.js");
|
|
12
|
+
const nonInteractive_1 = require("../../adapters/nonInteractive");
|
|
12
13
|
exports.default = async (choice, options) => {
|
|
13
14
|
const config = await (0, getProjectConfig_1.getProjectConfig)();
|
|
14
15
|
if (!config) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const
|
|
18
|
+
const io = (0, nonInteractive_1.createNonInteractiveIO)({
|
|
19
|
+
vaultMode: options === null || options === void 0 ? void 0 : options.vaultMode
|
|
20
|
+
});
|
|
21
|
+
const context = {
|
|
22
|
+
...(0, pipeline_1.createCatenvContext)(config),
|
|
23
|
+
io
|
|
24
|
+
};
|
|
18
25
|
if (options === null || options === void 0 ? void 0 : options.verbose) {
|
|
19
26
|
(0, verboseBanner_1.printVerboseBanner)();
|
|
20
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;AAAA,oEAAiE;AACjE,qDAAkD;AAElD,mDAAqD;AACrD,yDAAsD;AACtD,+CAA8C;AAC9C,kDAG6B;
|
|
1
|
+
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;AAAA,oEAAiE;AACjE,qDAAkD;AAElD,mDAAqD;AACrD,yDAAsD;AACtD,+CAA8C;AAC9C,kDAG6B;AAE7B,kEAAuE;AAOvE,kBAAe,KAAK,EAAE,MAAe,EAAE,OAAiB,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,IAAA,uCAAsB,EAAC,EAAE,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,EAAE,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;IACvD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QACrB,IAAA,kCAAkB,GAAE,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,gCAAqB,EAAC,OAAO,CAAC;QAC9B,IAAA,mCAAgB,EAAC,OAAO,EAAE,MAAM,CAAC;QAEjC,IAAA,2BAAa,EAAC,OAAO,EAAE,MAAM,CAAC;QAC9B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACrB,CAAC,CAAC,IAAA,+BAAc,EAAC,OAAO,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CatenvCliContext } from "./types";
|
|
2
2
|
import type { Choice } from "./types";
|
|
3
|
-
export declare const printVariables: (context:
|
|
3
|
+
export declare const printVariables: (context: CatenvCliContext, choice?: Choice) => Promise<void>;
|
|
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.printVariables = void 0;
|
|
7
7
|
const getProjectConfig_1 = require("../../config/getProjectConfig");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
-
const getAllVariablesToPrint = async (config, choice) => {
|
|
9
|
+
const getAllVariablesToPrint = async (io, config, choice) => {
|
|
10
10
|
const {
|
|
11
11
|
env,
|
|
12
12
|
currentComponent
|
|
13
13
|
} = await (0, utils_1.getCurrentComponentAndEnvFromChoice)(config, choice);
|
|
14
14
|
if (currentComponent) {
|
|
15
|
-
return await (0, getProjectConfig_1.getEnvVarsResolved)(
|
|
15
|
+
return await (0, getProjectConfig_1.getEnvVarsResolved)(io, env, currentComponent);
|
|
16
16
|
} else {
|
|
17
17
|
// when in a monorep and not in a subapp, merge all env vars.
|
|
18
18
|
// this is not 100% correct, but better than not exporting any vars at all
|
|
19
19
|
// so we also add prefixed variants
|
|
20
20
|
return await Object.keys(config.components).reduce(async (acc, componentName) => {
|
|
21
|
-
const subappvars = await (0, getProjectConfig_1.getEnvVarsResolved)(
|
|
21
|
+
const subappvars = await (0, getProjectConfig_1.getEnvVarsResolved)(io, env, componentName);
|
|
22
22
|
delete subappvars["_ALL_ENV_VAR_KEYS"];
|
|
23
23
|
return {
|
|
24
24
|
...(await acc),
|
|
@@ -30,7 +30,7 @@ const getAllVariablesToPrint = async (config, choice) => {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
const printVariables = async (context, choice) => {
|
|
33
|
-
const variables = await getAllVariablesToPrint(context.config, choice);
|
|
33
|
+
const variables = await getAllVariablesToPrint(context.io, context.config, choice);
|
|
34
34
|
console.log(makeExportKeyValuestring(variables));
|
|
35
35
|
};
|
|
36
36
|
exports.printVariables = printVariables;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printVariables.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/printVariables.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"printVariables.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/printVariables.ts"],"names":[],"mappings":";;;AAGA,oEAAmE;AAEnE,mCAIiB;AAEjB,MAAM,sBAAsB,GAAG,KAAK,EAClC,EAAM,EACN,MAAc,EACd,MAAe,EACf,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,2CAAmC,EACzE,MAAM,EACN,MAAM,CACP,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,MAAM,IAAA,qCAAkB,EAAC,EAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,0EAA0E;QAC1E,mCAAmC;QACnC,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAChD,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAkB,EAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;YACpE,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACvC,OAAO;gBACL,GAAG,CAAC,MAAM,GAAG,CAAC;gBACd,GAAG,UAAU;gBACb,qCAAqC;gBACrC,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC/C,GAAG,IAAA,0BAAkB,EAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,EAAE;oBAC3D,KAAK;iBACN,CAAC,CACH;aACF,CAAC;QACJ,CAAC,EACD,OAAO,CAAC,OAAO,CAAC,EAA4B,CAAC,CAC9C,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,OAAyB,EACzB,MAAe,EACf,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAC5C,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,MAAM,EACd,MAAM,CACP,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB;AAEF,MAAM,wBAAwB,GAAG,CAAC,SAAiC,EAAE,EAAE,CACrE,IAAA,0BAAkB,EAAC,SAAS,EAAE;IAC5B,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;CACvC,CAAC,CAAC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import type { CatenvContext } from "../../../../pipeline/src/index.js";
|
|
2
|
+
import type { IO } from "../../core/types";
|
|
3
|
+
/**
|
|
4
|
+
* the pipeline's catenv context extended with the cli io context
|
|
5
|
+
* (non-interactive when run via direnv)
|
|
6
|
+
*/
|
|
7
|
+
export type CatenvCliContext = CatenvContext & {
|
|
8
|
+
io: IO;
|
|
9
|
+
};
|
|
1
10
|
export type Choice = {
|
|
2
11
|
env?: string;
|
|
3
12
|
componentName?: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Choice } from "./types";
|
|
2
|
-
import type {
|
|
3
|
-
export declare const writeDotEnvFiles: (context:
|
|
2
|
+
import type { CatenvCliContext } from "./types";
|
|
3
|
+
export declare const writeDotEnvFiles: (context: CatenvCliContext, choice?: Choice) => Promise<void>;
|
|
@@ -21,7 +21,7 @@ const writeDotEnvFiles = async (context, choice) => {
|
|
|
21
21
|
const componentsToActuallyWriteDotEnvNow = currentComponent ? componentsWithEnabledDotEnvWrite.includes(currentComponent) ? [currentComponent] : [] : componentsWithEnabledDotEnvWrite;
|
|
22
22
|
const gitRoot = await (0, projects_1.getGitRoot)();
|
|
23
23
|
for (const componentName of componentsToActuallyWriteDotEnvNow) {
|
|
24
|
-
const variables = await (0, getProjectConfig_1.getEnvVarsResolved)(
|
|
24
|
+
const variables = await (0, getProjectConfig_1.getEnvVarsResolved)(context.io, env, componentName);
|
|
25
25
|
delete variables["_ALL_ENV_VAR_KEYS"];
|
|
26
26
|
const componentDir = (0, utils_1.getComponentFullPath)(gitRoot, context.config, componentName);
|
|
27
27
|
const filePath = (0, path_1.join)(componentDir, ".env");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeDotEnvFiles.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/writeDotEnvFiles.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,oEAAmE;AACnE,mDAAkD;AAElD,mCAIiB;AAGV,MAAM,gBAAgB,GAAG,KAAK,EACnC,
|
|
1
|
+
{"version":3,"file":"writeDotEnvFiles.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/writeDotEnvFiles.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,oEAAmE;AACnE,mDAAkD;AAElD,mCAIiB;AAGV,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAyB,EACzB,MAAe,EACf,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,2CAAmC,EACzE,OAAO,CAAC,MAAM,EACd,MAAM,CACP,CAAC;IAEF,MAAM,gCAAgC,GAAG,MAAM,CAAC,OAAO,CACrD,OAAO,CAAC,MAAM,CAAC,UAAU,CAC1B;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,mCAAI,IAAI,CAAA,EAAA,CAAC,CAAC,8BAA8B;SACnF,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,kCAAkC,GAAG,gBAAgB;QACzD,CAAC,CAAC,gCAAgC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC3D,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACpB,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,GAAE,CAAC;IAEnC,KAAK,MAAM,aAAa,IAAI,kCAAkC,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,IAAA,qCAAkB,EAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QAC3E,OAAO,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAA,4BAAoB,EACvC,OAAO,EACP,OAAO,CAAC,MAAM,EACd,aAAa,CACd,CAAC;QACF,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE5C,MAAM,OAAO,CAAC,UAAU,CAAC,kBAAkB,CACzC,QAAQ,EACR,IAAA,0BAAkB,EAAC,SAAS,CAAC,EAC7B;YACE,WAAW,EAAE,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAxCW,QAAA,gBAAgB,oBAwC3B"}
|
|
@@ -8,7 +8,9 @@ const pipeline_1 = require("../../../../../../pipeline/src/index.js");
|
|
|
8
8
|
const common_tags_1 = require("common-tags");
|
|
9
9
|
const lodash_es_1 = require("lodash-es");
|
|
10
10
|
const getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
11
|
+
const commandSecretsSyncGithub_1 = require("../../../../commands/project/commandSecretsSyncGithub");
|
|
11
12
|
const editAsFile_1 = require("../../../../utils/editAsFile");
|
|
13
|
+
const github_1 = require("../../../../utils/github");
|
|
12
14
|
const gitlab_1 = require("../../../../utils/gitlab");
|
|
13
15
|
const promise_1 = require("../../../../utils/promise");
|
|
14
16
|
/* for convenience, parse json objects. that makes it easier to edit secrets that are object */
|
|
@@ -86,21 +88,68 @@ const doItFor = async (instance, envAndComponents) => {
|
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
}
|
|
91
|
+
const config = await (0, getProjectConfig_1.getProjectConfig)();
|
|
92
|
+
if (!config) {
|
|
93
|
+
throw new Error("no catladder config found");
|
|
94
|
+
}
|
|
89
95
|
instance.log("");
|
|
90
|
-
instance.log("
|
|
96
|
+
instance.log("writing all secrets to the vault, please wait...");
|
|
91
97
|
instance.log("");
|
|
92
98
|
for (const [componentName, envs] of Object.entries(envAndComponents)) {
|
|
93
99
|
for (const env of envs) {
|
|
94
|
-
instance.log("
|
|
95
|
-
await (
|
|
100
|
+
instance.log("writing " + env + ":" + componentName + "...\n");
|
|
101
|
+
await (await instance.getVaultManager()).writeSecrets(env, componentName, valuesToEdit[componentName][env]);
|
|
96
102
|
instance.log("");
|
|
97
103
|
instance.log("✅ " + env + ":" + componentName);
|
|
98
104
|
instance.log("--------------------------------\n");
|
|
99
105
|
}
|
|
100
106
|
}
|
|
107
|
+
await mirrorSecretsToCiBackends(instance, config, envAndComponents, valuesToEdit);
|
|
101
108
|
instance.log("done! 😻");
|
|
102
109
|
instance.log("");
|
|
103
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* the vault is the source of truth; every enabled CI backend receives
|
|
113
|
+
* a mirrored copy of the edited secrets (gitlab variables, github
|
|
114
|
+
* secrets), so all CI systems stay in sync
|
|
115
|
+
*/
|
|
116
|
+
const mirrorSecretsToCiBackends = async (instance, config, envAndComponents, valuesToEdit) => {
|
|
117
|
+
const enabled = (0, pipeline_1.getEnabledPipelineTypes)(config);
|
|
118
|
+
// gitlab mirror (unless gitlab is the vault itself, then it is
|
|
119
|
+
// already written)
|
|
120
|
+
if ((0, pipeline_1.getVaultConfig)(config).type !== "gitlab" && enabled.includes("gitlab")) {
|
|
121
|
+
for (const [componentName, envs] of Object.entries(envAndComponents)) {
|
|
122
|
+
for (const env of envs) {
|
|
123
|
+
await (0, gitlab_1.upsertAllVariables)(instance, valuesToEdit[componentName][env], env, componentName);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
instance.log("✅ mirrored to gitlab");
|
|
127
|
+
}
|
|
128
|
+
if (!enabled.includes("github")) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const secrets = Object.entries(envAndComponents).flatMap(([componentName, envs]) => envs.flatMap(env => {
|
|
132
|
+
var _a;
|
|
133
|
+
return Object.entries((_a = valuesToEdit[componentName][env]) !== null && _a !== void 0 ? _a : {}).map(([key, value]) => ({
|
|
134
|
+
name: (0, pipeline_1.getSecretVarName)(env, componentName, key),
|
|
135
|
+
value: typeof value === "string" ? value : JSON.stringify(value !== null && value !== void 0 ? value : "")
|
|
136
|
+
}));
|
|
137
|
+
}));
|
|
138
|
+
if (secrets.length === 0) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (!(await (0, github_1.isGhAuthenticated)())) {
|
|
142
|
+
instance.log("⚠️ github pipeline is enabled, but the github cli (gh) is not authenticated — run `project secrets-sync-github` later to mirror the secrets");
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const repo = await (0, commandSecretsSyncGithub_1.getConfiguredGithubRepo)();
|
|
146
|
+
if (!repo) {
|
|
147
|
+
instance.log("⚠️ github pipeline is enabled, but no github repository was found — run `project secrets-sync-github` later to mirror the secrets");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
instance.log(`mirroring ${secrets.length} secrets to github ('${repo}')...`);
|
|
151
|
+
await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets);
|
|
152
|
+
};
|
|
104
153
|
const projectConfigSecrets = async (io, envComponent) => {
|
|
105
154
|
if (!envComponent) {
|
|
106
155
|
const allEnvAndcomponents = await (0, getProjectConfig_1.getAllComponentsWithAllEnvsHierarchical)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/src/catenv.js
CHANGED
|
@@ -13,11 +13,12 @@ const catenv_1 = __importDefault(require("./apps/catenv/catenv"));
|
|
|
13
13
|
const parseChoice_1 = require("./config/parseChoice");
|
|
14
14
|
const packageInfos_1 = __importDefault(require("./packageInfos"));
|
|
15
15
|
const program = new commander_1.Command();
|
|
16
|
-
program.name("catenv").description("Environment variable and pipeline generation via direnv").version(packageInfos_1.default.version).argument("[envComponent]", "env or env:component").option("-v, --verbose", "verbose output").option("-p, --print-variables", "print variables").action((envComponent, opts) => {
|
|
16
|
+
program.name("catenv").description("Environment variable and pipeline generation via direnv").version(packageInfos_1.default.version).argument("[envComponent]", "env or env:component").option("-v, --verbose", "verbose output").option("-p, --print-variables", "print variables").addOption(new commander_1.Option("--vault-mode <mode>", ["how to interact with the secrets vault:", "auto: contact the vault when cached secrets are missing (may prompt to unlock)", "no-prompt: like auto, but fail instead of prompting", "offline: never contact the vault, use only locally cached secrets", "refresh: ignore the local cache once and refresh it from the vault"].join("\n")).choices(["auto", "no-prompt", "offline", "refresh"]).default("auto")).action((envComponent, opts) => {
|
|
17
17
|
var _a, _b;
|
|
18
18
|
(0, catenv_1.default)(envComponent ? (0, parseChoice_1.parseChoice)(envComponent) : null, {
|
|
19
19
|
verbose: (_a = opts.verbose) !== null && _a !== void 0 ? _a : false,
|
|
20
|
-
printVariables: (_b = opts.printVariables) !== null && _b !== void 0 ? _b : false
|
|
20
|
+
printVariables: (_b = opts.printVariables) !== null && _b !== void 0 ? _b : false,
|
|
21
|
+
vaultMode: opts.vaultMode
|
|
21
22
|
}).then(() => {
|
|
22
23
|
// we have to exit manually, because we have some file watches
|
|
23
24
|
process.exit();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../src/catenv.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../src/catenv.ts"],"names":[],"mappings":";;;;;AAAA,yCAA4C;AAC5C,kEAA0C;AAC1C,sDAAmD;AACnD,kEAA0C;AAG1C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,sBAAY,CAAC,OAAO,CAAC;KAC7B,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;KAClD,SAAS,CACR,IAAI,kBAAM,CACR,qBAAqB,EACrB;IACE,yCAAyC;IACzC,gFAAgF;IAChF,qDAAqD;IACrD,mEAAmE;IACnE,oEAAoE;CACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;KACE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;KACpD,OAAO,CAAC,MAAM,CAAC,CACnB;KACA,MAAM,CACL,CACE,YAAgC,EAChC,IAIC,EACD,EAAE;;IACF,IAAA,gBAAM,EAAC,YAAY,CAAC,CAAC,CAAC,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACtD,OAAO,EAAE,MAAA,IAAI,CAAC,OAAO,mCAAI,KAAK;QAC9B,cAAc,EAAE,MAAA,IAAI,CAAC,cAAc,mCAAI,KAAK;QAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACX,8DAA8D;QAC9D,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEJ,8EAA8E;AAC9E,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;;IACtC,OAAO,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;;IAC1C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,MAAA,MAAM,CAAC,KAAK,mCAAI,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -12,6 +12,7 @@ export { commandOpenGit } from "./project/commandOpenGit";
|
|
|
12
12
|
export { commandCloudSqlProxy } from "./project/commandCloudSqlProxy";
|
|
13
13
|
export { commandConfigSecrets } from "./project/commandConfigSecrets";
|
|
14
14
|
export { commandSecretsClearBackups } from "./project/commandSecretsClearBackups";
|
|
15
|
+
export { commandSecretsSyncGithub } from "./project/commandSecretsSyncGithub";
|
|
15
16
|
export { commandOpenLogs } from "./project/commandOpenLogs";
|
|
16
17
|
export { commandTriggerCronjobGeneral } from "./project/k8s/commandTriggerCronjob";
|
|
17
18
|
export { commandRenewToken } from "./project/commandRenewToken";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.commandStarwars = exports.commandDadjoke = exports.commandSecurityAuditCreate = exports.commandSecurityAuditEvaluate = exports.commandSecurityAuditCiJob = exports.commandRestoreDb = exports.commandMongoDestroyMember = exports.commandMongoPortForward = exports.commandMongoGetShell = exports.commandTriggerCronjobProject = exports.commandDeleteProject = exports.commandPauseProject = exports.commandDeletePods = exports.commandGetShell = exports.commandListPods = exports.commandNamespace = exports.commandSecurityEvaluate = exports.commandProjectRestoreDb = exports.commandCiJobLog = exports.commandCiJobOpen = exports.commandSetup = exports.commandGetMyTotalWorktime = exports.commandRenewToken = exports.commandTriggerCronjobGeneral = exports.commandOpenLogs = exports.commandSecretsClearBackups = exports.commandConfigSecrets = exports.commandCloudSqlProxy = exports.commandOpenGit = exports.commandOpenEnv = exports.commandPortForward = exports.commandEnvVars = exports.commandKubePortForward = exports.commandKubeGetShell = exports.commandKubeStopPortforward = exports.commandKubeListPods = exports.commandKubeListSecrets = exports.commandKubeListNamespaces = exports.commandKubeCurrentContext = void 0;
|
|
6
|
+
exports.commandStarwars = exports.commandDadjoke = exports.commandSecurityAuditCreate = exports.commandSecurityAuditEvaluate = exports.commandSecurityAuditCiJob = exports.commandRestoreDb = exports.commandMongoDestroyMember = exports.commandMongoPortForward = exports.commandMongoGetShell = exports.commandTriggerCronjobProject = exports.commandDeleteProject = exports.commandPauseProject = exports.commandDeletePods = exports.commandGetShell = exports.commandListPods = exports.commandNamespace = exports.commandSecurityEvaluate = exports.commandProjectRestoreDb = exports.commandCiJobLog = exports.commandCiJobOpen = exports.commandSetup = exports.commandGetMyTotalWorktime = exports.commandRenewToken = exports.commandTriggerCronjobGeneral = exports.commandOpenLogs = exports.commandSecretsSyncGithub = exports.commandSecretsClearBackups = exports.commandConfigSecrets = exports.commandCloudSqlProxy = exports.commandOpenGit = exports.commandOpenEnv = exports.commandPortForward = exports.commandEnvVars = exports.commandKubePortForward = exports.commandKubeGetShell = exports.commandKubeStopPortforward = exports.commandKubeListPods = exports.commandKubeListSecrets = exports.commandKubeListNamespaces = exports.commandKubeCurrentContext = void 0;
|
|
7
7
|
// General commands
|
|
8
8
|
var commandKubeCurrentContext_1 = require("./general/commandKubeCurrentContext");
|
|
9
9
|
Object.defineProperty(exports, "commandKubeCurrentContext", {
|
|
@@ -104,6 +104,13 @@ Object.defineProperty(exports, "commandSecretsClearBackups", {
|
|
|
104
104
|
return commandSecretsClearBackups_1.commandSecretsClearBackups;
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
|
+
var commandSecretsSyncGithub_1 = require("./project/commandSecretsSyncGithub");
|
|
108
|
+
Object.defineProperty(exports, "commandSecretsSyncGithub", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function () {
|
|
111
|
+
return commandSecretsSyncGithub_1.commandSecretsSyncGithub;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
107
114
|
var commandOpenLogs_1 = require("./project/commandOpenLogs");
|
|
108
115
|
Object.defineProperty(exports, "commandOpenLogs", {
|
|
109
116
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,2EAA0E;AAAjE,gIAAA,sBAAsB,OAAA;AAC/B,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,mFAAkF;AAAzE,wIAAA,0BAA0B,OAAA;AACnC,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,2EAA0E;AAAjE,gIAAA,sBAAsB,OAAA;AAE/B,mBAAmB;AACnB,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,mEAAkE;AAAzD,wHAAA,kBAAkB,OAAA;AAC3B,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,mFAAkF;AAAzE,wIAAA,0BAA0B,OAAA;AACnC,6DAA4D;AAAnD,kHAAA,eAAe,OAAA;AACxB,6EAAmF;AAA1E,qIAAA,4BAA4B,OAAA;AACrC,iEAAgE;AAAvD,sHAAA,iBAAiB,OAAA;AAC1B,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,uDAAsD;AAA7C,4GAAA,YAAY,OAAA;AACrB,6DAA8E;AAArE,mHAAA,gBAAgB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAC1C,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAEhC,uBAAuB;AACvB,mEAAkE;AAAzD,oHAAA,gBAAgB,OAAA;AACzB,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,qEAAoE;AAA3D,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,0HAAA,mBAAmB,OAAA;AAC5B,2EAA0E;AAAjE,4HAAA,oBAAoB,OAAA;AAC7B,6EAAmF;AAA1E,qIAAA,4BAA4B,OAAA;AAErC,mBAAmB;AACnB,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAChC,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AAEzB,oBAAoB;AACpB,kFAAiF;AAAxE,sIAAA,yBAAyB,OAAA;AAClC,wFAAuF;AAA9E,4IAAA,4BAA4B,OAAA;AACrC,oFAAmF;AAA1E,wIAAA,0BAA0B,OAAA;AAEnC,eAAe;AACf,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AACvB,yDAAwD;AAA/C,kHAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,2EAA0E;AAAjE,gIAAA,sBAAsB,OAAA;AAC/B,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,mFAAkF;AAAzE,wIAAA,0BAA0B,OAAA;AACnC,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,2EAA0E;AAAjE,gIAAA,sBAAsB,OAAA;AAE/B,mBAAmB;AACnB,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,mEAAkE;AAAzD,wHAAA,kBAAkB,OAAA;AAC3B,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,mFAAkF;AAAzE,wIAAA,0BAA0B,OAAA;AACnC,+EAA8E;AAArE,oIAAA,wBAAwB,OAAA;AACjC,6DAA4D;AAAnD,kHAAA,eAAe,OAAA;AACxB,6EAAmF;AAA1E,qIAAA,4BAA4B,OAAA;AACrC,iEAAgE;AAAvD,sHAAA,iBAAiB,OAAA;AAC1B,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAClC,uDAAsD;AAA7C,4GAAA,YAAY,OAAA;AACrB,6DAA8E;AAArE,mHAAA,gBAAgB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAC1C,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAEhC,uBAAuB;AACvB,mEAAkE;AAAzD,oHAAA,gBAAgB,OAAA;AACzB,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,iEAAgE;AAAvD,kHAAA,eAAe,OAAA;AACxB,qEAAoE;AAA3D,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,0HAAA,mBAAmB,OAAA;AAC5B,2EAA0E;AAAjE,4HAAA,oBAAoB,OAAA;AAC7B,6EAAmF;AAA1E,qIAAA,4BAA4B,OAAA;AAErC,mBAAmB;AACnB,uEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,6EAA4E;AAAnE,kIAAA,uBAAuB,OAAA;AAChC,iFAAgF;AAAvE,sIAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AAEzB,oBAAoB;AACpB,kFAAiF;AAAxE,sIAAA,yBAAyB,OAAA;AAClC,wFAAuF;AAA9E,4IAAA,4BAA4B,OAAA;AACrC,oFAAmF;AAA1E,wIAAA,0BAA0B,OAAA;AAEnC,eAAe;AACf,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AACvB,yDAAwD;AAA/C,kHAAA,eAAe,OAAA"}
|