@red-hat-developer-hub/e2e-test-utils 2.1.15 → 2.1.17
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/deployment/rhdh/config/common/dynamic-plugins.yaml +5 -0
- package/dist/deployment/rhdh/constants.d.ts +0 -5
- package/dist/deployment/rhdh/constants.d.ts.map +1 -1
- package/dist/deployment/rhdh/constants.js +0 -5
- package/dist/deployment/rhdh/deployment.d.ts +2 -2
- package/dist/deployment/rhdh/deployment.d.ts.map +1 -1
- package/dist/deployment/rhdh/deployment.js +9 -25
- package/dist/deployment/rhdh/deployment.test.js +9 -9
- package/dist/deployment/rhdh/types.d.ts +0 -4
- package/dist/deployment/rhdh/types.d.ts.map +1 -1
- package/dist/playwright/helpers/github-session.test.js +1 -1
- package/dist/secrets/bitwarden.d.ts +43 -0
- package/dist/secrets/bitwarden.d.ts.map +1 -1
- package/dist/secrets/bitwarden.js +465 -53
- package/dist/secrets/cli.d.ts +48 -1
- package/dist/secrets/cli.d.ts.map +1 -1
- package/dist/secrets/cli.js +455 -28
- package/dist/secrets/command.d.ts +7 -0
- package/dist/secrets/command.d.ts.map +1 -1
- package/dist/secrets/command.js +103 -26
- package/dist/secrets/config.d.ts +11 -1
- package/dist/secrets/config.d.ts.map +1 -1
- package/dist/secrets/config.js +32 -1
- package/dist/secrets/environment-name.d.ts +2 -0
- package/dist/secrets/environment-name.d.ts.map +1 -0
- package/dist/secrets/environment-name.js +4 -0
- package/dist/secrets/environment.d.ts +10 -0
- package/dist/secrets/environment.d.ts.map +1 -1
- package/dist/secrets/environment.js +35 -4
- package/dist/secrets/exec.d.ts +9 -1
- package/dist/secrets/exec.d.ts.map +1 -1
- package/dist/secrets/exec.js +318 -38
- package/dist/secrets/gsm-wrapper.d.ts +42 -0
- package/dist/secrets/gsm-wrapper.d.ts.map +1 -0
- package/dist/secrets/gsm-wrapper.js +238 -0
- package/dist/secrets/gsm.d.ts +33 -0
- package/dist/secrets/gsm.d.ts.map +1 -0
- package/dist/secrets/gsm.js +172 -0
- package/dist/secrets/index.d.ts +9 -4
- package/dist/secrets/index.d.ts.map +1 -1
- package/dist/secrets/index.js +7 -2
- package/dist/secrets/lock.d.ts +3 -0
- package/dist/secrets/lock.d.ts.map +1 -0
- package/dist/secrets/lock.js +28 -0
- package/dist/secrets/mutation.d.ts +71 -0
- package/dist/secrets/mutation.d.ts.map +1 -0
- package/dist/secrets/mutation.js +210 -0
- package/dist/secrets/secret-input.d.ts +17 -0
- package/dist/secrets/secret-input.d.ts.map +1 -0
- package/dist/secrets/secret-input.js +40 -0
- package/dist/secrets/stream.d.ts +9 -0
- package/dist/secrets/stream.d.ts.map +1 -0
- package/dist/secrets/stream.js +211 -0
- package/dist/secrets/temporary-secret.d.ts +13 -0
- package/dist/secrets/temporary-secret.d.ts.map +1 -0
- package/dist/secrets/temporary-secret.js +87 -0
- package/dist/secrets/tests/bitwarden.test.js +640 -0
- package/dist/secrets/tests/cli.integration.test.js +131 -3
- package/dist/secrets/tests/cli.test.js +281 -6
- package/dist/secrets/tests/command.test.d.ts +2 -0
- package/dist/secrets/tests/command.test.d.ts.map +1 -0
- package/dist/secrets/tests/command.test.js +39 -0
- package/dist/secrets/tests/config.test.js +20 -1
- package/dist/secrets/tests/environment.test.js +145 -3
- package/dist/secrets/tests/exec.test.js +469 -2
- package/dist/secrets/tests/gsm-wrapper.test.d.ts +2 -0
- package/dist/secrets/tests/gsm-wrapper.test.d.ts.map +1 -0
- package/dist/secrets/tests/gsm-wrapper.test.js +166 -0
- package/dist/secrets/tests/gsm.test.d.ts +2 -0
- package/dist/secrets/tests/gsm.test.d.ts.map +1 -0
- package/dist/secrets/tests/gsm.test.js +181 -0
- package/dist/secrets/tests/mutation.test.d.ts +2 -0
- package/dist/secrets/tests/mutation.test.d.ts.map +1 -0
- package/dist/secrets/tests/mutation.test.js +390 -0
- package/dist/secrets/tests/secret-input.test.d.ts +2 -0
- package/dist/secrets/tests/secret-input.test.d.ts.map +1 -0
- package/dist/secrets/tests/secret-input.test.js +71 -0
- package/dist/secrets/tests/stream.test.d.ts +2 -0
- package/dist/secrets/tests/stream.test.d.ts.map +1 -0
- package/dist/secrets/tests/stream.test.js +88 -0
- package/dist/secrets/tests/temporary-secret.test.d.ts +2 -0
- package/dist/secrets/tests/temporary-secret.test.d.ts.map +1 -0
- package/dist/secrets/tests/temporary-secret.test.js +76 -0
- package/dist/utils/plugin-metadata.d.ts +5 -0
- package/dist/utils/plugin-metadata.d.ts.map +1 -1
- package/dist/utils/plugin-metadata.js +19 -0
- package/dist/utils/tests/plugin-metadata.test.js +17 -1
- package/dist/utils/workspace-paths.d.ts +0 -2
- package/dist/utils/workspace-paths.d.ts.map +1 -1
- package/dist/utils/workspace-paths.js +0 -4
- package/package.json +1 -1
- package/dist/deployment/rhdh/config/new-frontend-system/dynamic-plugins.yaml +0 -5
- package/dist/deployment/rhdh/config/new-frontend-system/value_file.yaml +0 -2
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
includes:
|
|
2
2
|
- dynamic-plugins.default.yaml
|
|
3
|
+
# TODO: switch these plugins to their quay.io {{inherit}} references once published.
|
|
3
4
|
plugins:
|
|
5
|
+
- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.54.6__1.1.0
|
|
6
|
+
disabled: false
|
|
7
|
+
- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-integrations:bs_1.54.6__1.1.0
|
|
8
|
+
disabled: false
|
|
4
9
|
- package: oci://quay.io/rhdh/red-hat-developer-hub-backstage-plugin-quickstart:{{inherit}}
|
|
5
10
|
disabled: true
|
|
@@ -4,11 +4,6 @@ export declare const DEFAULT_CONFIG_PATHS: {
|
|
|
4
4
|
appConfig: string;
|
|
5
5
|
secrets: string;
|
|
6
6
|
dynamicPlugins: string;
|
|
7
|
-
/** New frontend system (app-next): paths merged when the deployment uses NFS layers (explicit flag, `-app-next` namespace, or `USE_NEW_FRONTEND_SYSTEM`). */
|
|
8
|
-
newFrontendSystem: {
|
|
9
|
-
dynamicPlugins: string;
|
|
10
|
-
valueFile: string;
|
|
11
|
-
};
|
|
12
7
|
helm: {
|
|
13
8
|
valueFile: string;
|
|
14
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,eAAO,MAAM,oBAAoB;;;;;;;;;;CAyBhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,YAAY,EACZ;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CA0CF,CAAC;AAEF,eAAO,MAAM,SAAS,6BAA6B,CAAC"}
|
|
@@ -5,11 +5,6 @@ export const DEFAULT_CONFIG_PATHS = {
|
|
|
5
5
|
appConfig: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/app-config-rhdh.yaml"),
|
|
6
6
|
secrets: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/rhdh-secrets.yaml"),
|
|
7
7
|
dynamicPlugins: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/dynamic-plugins.yaml"),
|
|
8
|
-
/** New frontend system (app-next): paths merged when the deployment uses NFS layers (explicit flag, `-app-next` namespace, or `USE_NEW_FRONTEND_SYSTEM`). */
|
|
9
|
-
newFrontendSystem: {
|
|
10
|
-
dynamicPlugins: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/new-frontend-system/dynamic-plugins.yaml"),
|
|
11
|
-
valueFile: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/new-frontend-system/value_file.yaml"),
|
|
12
|
-
},
|
|
13
8
|
helm: {
|
|
14
9
|
valueFile: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/helm/value_file.yaml"),
|
|
15
10
|
},
|
|
@@ -13,8 +13,8 @@ export declare class RHDHDeployment {
|
|
|
13
13
|
/** Shared merge strategy for dynamic plugin arrays. */
|
|
14
14
|
private static readonly pluginMergeOpts;
|
|
15
15
|
/**
|
|
16
|
-
* Merges package defaults
|
|
17
|
-
*
|
|
16
|
+
* Merges package defaults, auth, and optional user config into a single
|
|
17
|
+
* dynamic plugins configuration.
|
|
18
18
|
*/
|
|
19
19
|
private _mergeBaseConfigs;
|
|
20
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAyB1E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAClB,SAAS,yBAAgC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;gBAE9B,SAAS,EAAE,MAAM;IAKvB,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CpD,eAAe;YAmBf,aAAa;IAwB3B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAM5B;IAEX;;;OAGG;YACW,iBAAiB;IAY/B;;OAEG;YACW,uBAAuB;IAgBrC;;;;;;;;OAQG;YACW,0BAA0B;YAoC1B,oBAAoB;YAWpB,eAAe;YA6Df,mBAAmB;IAmCjC,OAAO,KAAK,cAAc,GAIzB;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,cAAc,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,iBAAiB;YASjB,oBAAoB;IAsClC;;;OAGG;YACW,0BAA0B;IAwCxC,OAAO,CAAC,sBAAsB;IAsCxB,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;CAMlB"}
|
|
@@ -6,7 +6,7 @@ import os from "os";
|
|
|
6
6
|
import path from "path";
|
|
7
7
|
import { test, request, expect } from "@playwright/test";
|
|
8
8
|
import { mergeYamlFilesIfExists, deepMerge } from "../../utils/merge-yamls.js";
|
|
9
|
-
import { generatePluginsFromMetadata, processPluginsForDeployment, getNormalizedPluginMergeKey, disablePlugins, } from "../../utils/plugin-metadata.js";
|
|
9
|
+
import { generatePluginsFromMetadata, processPluginsForDeployment, getNormalizedPluginMergeKey, disablePlugins, applyDisabledPlugins, } from "../../utils/plugin-metadata.js";
|
|
10
10
|
import { envsubst } from "../../utils/common.js";
|
|
11
11
|
import { runOnce } from "../../playwright/run-once.js";
|
|
12
12
|
import cloneDeepWith from "lodash.clonedeepwith";
|
|
@@ -79,20 +79,20 @@ export class RHDHDeployment {
|
|
|
79
79
|
}
|
|
80
80
|
/** Shared merge strategy for dynamic plugin arrays. */
|
|
81
81
|
static pluginMergeOpts = {
|
|
82
|
-
arrayMergeStrategy: {
|
|
82
|
+
arrayMergeStrategy: {
|
|
83
|
+
byKey: "package",
|
|
84
|
+
normalizeKey: (item) => getNormalizedPluginMergeKey(item),
|
|
85
|
+
},
|
|
83
86
|
};
|
|
84
87
|
/**
|
|
85
|
-
* Merges package defaults
|
|
86
|
-
*
|
|
88
|
+
* Merges package defaults, auth, and optional user config into a single
|
|
89
|
+
* dynamic plugins configuration.
|
|
87
90
|
*/
|
|
88
91
|
async _mergeBaseConfigs(userConfigPath) {
|
|
89
92
|
const authConfig = AUTH_CONFIG_PATHS[this.deploymentConfig.auth];
|
|
90
93
|
const paths = [
|
|
91
94
|
DEFAULT_CONFIG_PATHS.dynamicPlugins,
|
|
92
95
|
authConfig.dynamicPlugins,
|
|
93
|
-
...(this.deploymentConfig.useNewFrontendSystem
|
|
94
|
-
? [DEFAULT_CONFIG_PATHS.newFrontendSystem.dynamicPlugins]
|
|
95
|
-
: []),
|
|
96
96
|
...(userConfigPath ? [userConfigPath] : []),
|
|
97
97
|
];
|
|
98
98
|
return await mergeYamlFilesIfExists(paths, RHDHDeployment.pluginMergeOpts);
|
|
@@ -139,9 +139,7 @@ export class RHDHDeployment {
|
|
|
139
139
|
let result = await processPluginsForDeployment(config, WorkspacePaths.metadataDir);
|
|
140
140
|
// Disable default plugins (PR builds only) — covers wrapper + OCI DPDY forms
|
|
141
141
|
if (process.env.GIT_PR_NUMBER) {
|
|
142
|
-
result =
|
|
143
|
-
arrayMergeStrategy: "concat",
|
|
144
|
-
});
|
|
142
|
+
result = applyDisabledPlugins(result, disabledPlugins);
|
|
145
143
|
}
|
|
146
144
|
return result;
|
|
147
145
|
}
|
|
@@ -153,17 +151,7 @@ export class RHDHDeployment {
|
|
|
153
151
|
async _deployWithHelm(valueFile) {
|
|
154
152
|
const chartVersion = await this._resolveChartVersion(this.deploymentConfig.version);
|
|
155
153
|
this._log(`Helm chart version resolved to: ${chartVersion}`);
|
|
156
|
-
const helmValuePaths = [
|
|
157
|
-
DEFAULT_CONFIG_PATHS.helm.valueFile,
|
|
158
|
-
...(this.deploymentConfig.useNewFrontendSystem
|
|
159
|
-
? [DEFAULT_CONFIG_PATHS.newFrontendSystem.valueFile]
|
|
160
|
-
: []),
|
|
161
|
-
valueFile,
|
|
162
|
-
...(this.deploymentConfig.useNewFrontendSystem &&
|
|
163
|
-
fs.existsSync(WorkspacePaths.valueFileAppNext)
|
|
164
|
-
? [WorkspacePaths.valueFileAppNext]
|
|
165
|
-
: []),
|
|
166
|
-
];
|
|
154
|
+
const helmValuePaths = [DEFAULT_CONFIG_PATHS.helm.valueFile, valueFile];
|
|
167
155
|
const valueFileObject = (await mergeYamlFilesIfExists(helmValuePaths));
|
|
168
156
|
this._logBoxen("Value File", valueFileObject);
|
|
169
157
|
// Merge dynamic plugins into the values file (including auth-specific plugins)
|
|
@@ -348,9 +336,6 @@ export class RHDHDeployment {
|
|
|
348
336
|
process.env.INSTALLATION_METHOD ??
|
|
349
337
|
"helm";
|
|
350
338
|
const namespace = input.namespace ?? this.deploymentConfig.namespace;
|
|
351
|
-
const useNewFrontendSystem = input.useNewFrontendSystem ??
|
|
352
|
-
(namespace.endsWith("-app-next") ||
|
|
353
|
-
process.env.USE_NEW_FRONTEND_SYSTEM === "true");
|
|
354
339
|
const base = {
|
|
355
340
|
version,
|
|
356
341
|
namespace,
|
|
@@ -359,7 +344,6 @@ export class RHDHDeployment {
|
|
|
359
344
|
secrets: input.secrets ?? WorkspacePaths.secrets,
|
|
360
345
|
dynamicPlugins: input.dynamicPlugins ?? WorkspacePaths.dynamicPlugins,
|
|
361
346
|
disablePlugins: input.disablePlugins ?? [],
|
|
362
|
-
useNewFrontendSystem,
|
|
363
347
|
};
|
|
364
348
|
if (method === "helm") {
|
|
365
349
|
return {
|
|
@@ -38,11 +38,11 @@ describe("dynamic-plugins merge (no user config path)", () => {
|
|
|
38
38
|
assert.strictEqual(plugins.length, 1, "merged config must have exactly one keycloak plugin");
|
|
39
39
|
assert.ok(plugins[0].package?.startsWith("oci://"), "metadata (OCI) must win over auth local path");
|
|
40
40
|
});
|
|
41
|
-
it("keeps user app-auth OCI ref over
|
|
42
|
-
const
|
|
41
|
+
it("keeps user app-auth OCI ref over package defaults for the same logical plugin", () => {
|
|
42
|
+
const packageDefaults = {
|
|
43
43
|
plugins: [
|
|
44
44
|
{
|
|
45
|
-
package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.
|
|
45
|
+
package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.54.6__1.1.0",
|
|
46
46
|
disabled: false,
|
|
47
47
|
},
|
|
48
48
|
],
|
|
@@ -55,7 +55,7 @@ describe("dynamic-plugins merge (no user config path)", () => {
|
|
|
55
55
|
},
|
|
56
56
|
],
|
|
57
57
|
};
|
|
58
|
-
const merged = deepMerge(
|
|
58
|
+
const merged = deepMerge(packageDefaults, userPlugins, {
|
|
59
59
|
arrayMergeStrategy: {
|
|
60
60
|
byKey: "package",
|
|
61
61
|
normalizeKey: (item) => getNormalizedPluginMergeKey(item),
|
|
@@ -63,22 +63,22 @@ describe("dynamic-plugins merge (no user config path)", () => {
|
|
|
63
63
|
});
|
|
64
64
|
const plugins = merged.plugins;
|
|
65
65
|
assert.strictEqual(plugins.length, 1);
|
|
66
|
-
assert.ok(plugins[0].package?.includes("older__0.0.1"), "user layer must win over
|
|
66
|
+
assert.ok(plugins[0].package?.includes("older__0.0.1"), "user layer must win over package defaults for the same logical plugin");
|
|
67
67
|
});
|
|
68
|
-
it("does not duplicate includes when
|
|
68
|
+
it("does not duplicate includes when a package layer omits includes", () => {
|
|
69
69
|
const common = {
|
|
70
70
|
includes: ["dynamic-plugins.default.yaml"],
|
|
71
71
|
plugins: [],
|
|
72
72
|
};
|
|
73
|
-
const
|
|
73
|
+
const packageLayer = {
|
|
74
74
|
plugins: [
|
|
75
75
|
{
|
|
76
|
-
package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.
|
|
76
|
+
package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.54.6__1.1.0",
|
|
77
77
|
disabled: false,
|
|
78
78
|
},
|
|
79
79
|
],
|
|
80
80
|
};
|
|
81
|
-
const merged = deepMerge(common,
|
|
81
|
+
const merged = deepMerge(common, packageLayer, {
|
|
82
82
|
arrayMergeStrategy: {
|
|
83
83
|
byKey: "package",
|
|
84
84
|
normalizeKey: (item) => getNormalizedPluginMergeKey(item),
|
|
@@ -15,8 +15,6 @@ export type DeploymentOptions = {
|
|
|
15
15
|
* `{{inherit}}`). Accepts display names, local paths, or OCI refs.
|
|
16
16
|
*/
|
|
17
17
|
disablePlugins?: string[];
|
|
18
|
-
/** When true, merge new-frontend-system (app-next) layers. When omitted, auto-detect: namespace ends with `-app-next` or `USE_NEW_FRONTEND_SYSTEM=true`. Pass false to disable. */
|
|
19
|
-
useNewFrontendSystem?: boolean;
|
|
20
18
|
};
|
|
21
19
|
export type HelmDeploymentConfig = {
|
|
22
20
|
method: "helm";
|
|
@@ -34,8 +32,6 @@ export type DeploymentConfigBase = {
|
|
|
34
32
|
secrets: string;
|
|
35
33
|
dynamicPlugins: string;
|
|
36
34
|
disablePlugins: string[];
|
|
37
|
-
/** New frontend system (Backstage app-next / NFS shell). */
|
|
38
|
-
useNewFrontendSystem: boolean;
|
|
39
35
|
};
|
|
40
36
|
export type DeploymentConfig = DeploymentConfigBase & (HelmDeploymentConfig | OperatorDeploymentConfig);
|
|
41
37
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CAAC,oBAAoB,GAAG,wBAAwB,CAAC,CAAC"}
|
|
@@ -16,7 +16,7 @@ describe("github session file naming", () => {
|
|
|
16
16
|
// same 30-second window submit the identical code and GitHub rejects the second.
|
|
17
17
|
// Sharing the session is the point; withGithubSessionLock is what makes it safe.
|
|
18
18
|
const file = githubSessionFile("rhdh-qe");
|
|
19
|
-
assert.doesNotMatch(path.basename(file), /
|
|
19
|
+
assert.doesNotMatch(path.basename(file), /project/);
|
|
20
20
|
});
|
|
21
21
|
it("is absolute, so it does not follow a later chdir", () => {
|
|
22
22
|
assert.ok(path.isAbsolute(githubSessionFile("rhdh-qe")));
|
|
@@ -16,19 +16,62 @@ export interface BitwardenAttachment {
|
|
|
16
16
|
id: string;
|
|
17
17
|
fileName: string;
|
|
18
18
|
}
|
|
19
|
+
export type BitwardenSecretStorage = "note" | "attachment";
|
|
20
|
+
export interface BitwardenSecretItem {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
value: string;
|
|
24
|
+
storage: BitwardenSecretStorage;
|
|
25
|
+
revisionDate: string;
|
|
26
|
+
raw: Record<string, unknown>;
|
|
27
|
+
attachments: readonly BitwardenAttachment[];
|
|
28
|
+
attachment?: BitwardenAttachment;
|
|
29
|
+
}
|
|
19
30
|
export interface BitwardenClientOptions {
|
|
20
31
|
command?: string;
|
|
21
32
|
env?: NodeJS.ProcessEnv;
|
|
22
33
|
runner?: BitwardenCommandRunner;
|
|
34
|
+
removeTemporaryDirectory?: (directory: string) => Promise<void>;
|
|
23
35
|
}
|
|
24
36
|
export declare class BitwardenClient {
|
|
25
37
|
private readonly command;
|
|
26
38
|
private readonly env;
|
|
27
39
|
private readonly runner;
|
|
40
|
+
private readonly removeTemporaryDirectory;
|
|
41
|
+
private sessionCheck?;
|
|
42
|
+
private readonly collections;
|
|
43
|
+
private readonly itemCollections;
|
|
28
44
|
constructor(options?: BitwardenClientOptions);
|
|
29
45
|
read(collectionId: ReadableCollectionId, selectors: readonly ExpandedSecretSelector[]): Promise<BitwardenSecret[]>;
|
|
46
|
+
readItem(collectionId: ReadableCollectionId, name: string): Promise<BitwardenSecretItem>;
|
|
47
|
+
findItem(collectionId: ReadableCollectionId, name: string): Promise<BitwardenSecretItem | undefined>;
|
|
48
|
+
createItem(collectionId: ReadableCollectionId, name: string, value: string, storage: BitwardenSecretStorage): Promise<BitwardenSecretItem>;
|
|
49
|
+
deleteItem(item: BitwardenSecretItem): Promise<void>;
|
|
50
|
+
updateItem(item: BitwardenSecretItem, value: string, storage?: BitwardenSecretStorage): Promise<BitwardenSecretItem>;
|
|
30
51
|
private resolveCollection;
|
|
52
|
+
private loadCollection;
|
|
31
53
|
private readSelector;
|
|
54
|
+
private ensureSession;
|
|
55
|
+
private checkSession;
|
|
56
|
+
private readItemById;
|
|
57
|
+
private parseItem;
|
|
58
|
+
private refreshItem;
|
|
59
|
+
private refreshItemById;
|
|
60
|
+
private findItemInCollection;
|
|
61
|
+
private collectionForItem;
|
|
62
|
+
private deleteItemById;
|
|
63
|
+
private itemPayload;
|
|
64
|
+
private updatedItemPayload;
|
|
65
|
+
private encodeItem;
|
|
66
|
+
private updateAttachment;
|
|
67
|
+
private convertNoteToAttachment;
|
|
68
|
+
private removeUploadedAttachment;
|
|
69
|
+
private convertAttachmentToNote;
|
|
70
|
+
private restoreNote;
|
|
71
|
+
private restoreAttachment;
|
|
72
|
+
private readAttachmentMetadata;
|
|
73
|
+
private editItem;
|
|
74
|
+
private createAttachment;
|
|
32
75
|
private runOrThrow;
|
|
33
76
|
}
|
|
34
77
|
//# sourceMappingURL=bitwarden.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitwarden.d.ts","sourceRoot":"","sources":["../../src/secrets/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bitwarden.d.ts","sourceRoot":"","sources":["../../src/secrets/bitwarden.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,sBAAsB;IACrC,CACE,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,YAAY,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,sBAAsB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAQD,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAEtB;IACnB,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IACJ,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;gBAE9D,OAAO,GAAE,sBAA2B;IAS1C,IAAI,CACR,YAAY,EAAE,oBAAoB,EAClC,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAC3C,OAAO,CAAC,eAAe,EAAE,CAAC;IA6BvB,QAAQ,CACZ,YAAY,EAAE,oBAAoB,EAClC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC;IAMzB,QAAQ,CACZ,YAAY,EAAE,oBAAoB,EAClC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAqCrC,UAAU,CACd,YAAY,EAAE,oBAAoB,EAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAsEzB,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD,UAAU,CACd,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAAqC,GAC7C,OAAO,CAAC,mBAAmB,CAAC;YA2CjB,iBAAiB;YAajB,cAAc;YA0Cd,YAAY;YA0EZ,aAAa;YAeb,YAAY;YAYZ,YAAY;YAmBZ,SAAS;YA+ET,WAAW;YAOX,eAAe;YASf,oBAAoB;IA8BlC,OAAO,CAAC,iBAAiB;YAUX,cAAc;IAO5B,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,UAAU;YAIJ,gBAAgB;YAuChB,uBAAuB;YAoDvB,wBAAwB;YAaxB,uBAAuB;YA8BvB,WAAW;YAcX,iBAAiB;YAgCjB,sBAAsB;YAetB,QAAQ;YAaR,gBAAgB;YA4ChB,UAAU;CAiBzB"}
|