@rockcarver/frodo-cli 2.0.0-65 → 2.0.0-66

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/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - \#404: Frodo now saves the `-k`/`--insecure` option in connection profiles.
13
+
14
+ ### Changed
15
+
16
+ - Update to frodo-lib 2.0.0-92
17
+
18
+ ### Fixed
19
+
20
+ - \#400: Frodo now properly honors the `-k`/`--insecure` option and allows connecting to platform instances using self-signed certificates.
21
+
22
+ ## [2.0.0-65] - 2024-07-06
23
+
10
24
  ### Add
11
25
 
12
26
  - rockcarver/frodo-lib#387: Support import of ESVs (variables and secrets). Frodo now supports importing ESV variables and secrets with two new commands:
@@ -14,17 +28,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
28
  - `frodo esv secret import`
15
29
 
16
30
  - Frodo now supports exporting (and importing) of ESV secret values. To leave stuartship of secret values with the cloud environment where they belong, frodo will always encrypt values using either encryption keys from the source environment (default) or the target environment (export option). Frodo will never export secrets in the clear. However, frodo supports importing clear values (as well as importing encrypted values). Use these new commands and parameters to export/import variables and secrets including secret values:
31
+
17
32
  - New parameters for existing `frodo esv secret export` and `frodo config export` commands:
18
-
19
- - `--include-active-values` Include the currently active (and loaded) secret value in the export. By default, secret values are encrypted server-side in the environment they are exported from. Use `--target <host url>` to have another environment perform the encryption.
20
33
 
21
- - `--target <host url>` Host URL of the environment to perform secret value encryption. The URL must resolve to an existing connection profile. Use this option to generate an export that can be imported into the target environment without requiring admin access to the source environment.
34
+ - `--include-active-values` Include the currently active (and loaded) secret value in the export. By default, secret values are encrypted server-side in the environment they are exported from. Use `--target <host url>` to have another environment perform the encryption.
35
+
36
+ - `--target <host url>` Host URL of the environment to perform secret value encryption. The URL must resolve to an existing connection profile. Use this option to generate an export that can be imported into the target environment without requiring admin access to the source environment.
22
37
 
23
38
  - New `frodo esv secret import` and updated existing `frodo config import` command and note-worthy parameters:
24
39
 
25
- - `--include-active-values` Import any secret values contained in the import file. By default, secret values are encrypted server-side in the environment they are exported from. Use `--source <host url>` to import a file exported from another environment than the one you are importing to.
40
+ - `--include-active-values` Import any secret values contained in the import file. By default, secret values are encrypted server-side in the environment they are exported from. Use `--source <host url>` to import a file exported from another environment than the one you are importing to.
26
41
 
27
- - `--source <host url>` Host URL of the environment which performed secret value encryption. The URL must resolve to an existing connection profile. Use this option to import a file that was exported from a different source environment than the one you are importing to.
42
+ - `--source <host url>` Host URL of the environment which performed secret value encryption. The URL must resolve to an existing connection profile. Use this option to import a file that was exported from a different source environment than the one you are importing to.
28
43
 
29
44
  - rockcarver/frodo-lib#394: Support for `base64aes` encoding for ESV secrets
30
45
 
@@ -1614,7 +1629,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1614
1629
  - Fixed problem with adding connection profiles
1615
1630
  - Miscellaneous bug fixes
1616
1631
 
1617
- [unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-64...HEAD
1632
+ [unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-65...HEAD
1633
+ [2.0.0-65]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-64...v2.0.0-65
1618
1634
  [2.0.0-64]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-63...v2.0.0-64
1619
1635
  [2.0.0-63]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-62...v2.0.0-63
1620
1636
  [2.0.0-62]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-61...v2.0.0-62
package/dist/app.cjs CHANGED
@@ -125545,7 +125545,7 @@ function stringify(obj) {
125545
125545
  }
125546
125546
  var package_default = {
125547
125547
  name: "@rockcarver/frodo-lib",
125548
- version: "2.0.0-91",
125548
+ version: "2.0.0-92",
125549
125549
  type: "commonjs",
125550
125550
  main: "./dist/index.js",
125551
125551
  module: "./dist/esm/index.js",
@@ -143046,8 +143046,12 @@ function getHttpAgent() {
143046
143046
  });
143047
143047
  return httpAgent;
143048
143048
  }
143049
- function getHttpsAgent(allowInsecureConnection) {
143050
- if (httpsAgent) return httpsAgent;
143049
+ function getHttpsAgent(allowInsecureConnection, shareAgent = true) {
143050
+ if (httpsAgent && shareAgent) return httpsAgent;
143051
+ let agent;
143052
+ if (allowInsecureConnection) {
143053
+ console.error(`Allowing insecure connection`["yellow"]);
143054
+ }
143051
143055
  const options2 = {
143052
143056
  rejectUnauthorized: !allowInsecureConnection
143053
143057
  };
@@ -143055,17 +143059,19 @@ function getHttpsAgent(allowInsecureConnection) {
143055
143059
  if (httpsProxy) {
143056
143060
  console.error(`Using proxy ${httpsProxy}`["yellow"]);
143057
143061
  options2.rejectUnauthorized = !allowInsecureConnection;
143058
- httpsAgent = new import_https_proxy_agent.HttpsProxyAgent(httpsProxy, options2);
143059
- return httpsAgent;
143062
+ agent = new import_https_proxy_agent.HttpsProxyAgent(httpsProxy, options2);
143063
+ if (shareAgent) httpsAgent = agent;
143064
+ return agent;
143060
143065
  }
143061
- httpsAgent = new import_agentkeepalive.default.HttpsAgent({
143066
+ agent = new import_agentkeepalive.default.HttpsAgent({
143062
143067
  ...options2,
143063
143068
  maxSockets,
143064
143069
  maxFreeSockets,
143065
143070
  timeout: timeout3,
143066
143071
  freeSocketTimeout
143067
143072
  });
143068
- return httpsAgent;
143073
+ if (shareAgent) httpsAgent = agent;
143074
+ return agent;
143069
143075
  }
143070
143076
  function getProxy() {
143071
143077
  if (process.env.HTTPS_PROXY || process.env.https_proxy) return false;
@@ -143305,7 +143311,7 @@ function generateReleaseApi({
143305
143311
  },
143306
143312
  ...requestOverride,
143307
143313
  httpAgent: getHttpAgent(),
143308
- httpsAgent: getHttpsAgent(state2.getAllowInsecureConnection()),
143314
+ httpsAgent: getHttpsAgent(false, false),
143309
143315
  proxy: getProxy()
143310
143316
  };
143311
143317
  const request = axios_default.create(requestDetails);
@@ -155174,6 +155180,7 @@ Specify a sub-string uniquely identifying a single connection profile host URL.`
155174
155180
  }
155175
155181
  return {
155176
155182
  tenant: profiles[0].tenant,
155183
+ allowInsecureConnection: profiles[0].allowInsecureConnection,
155177
155184
  deploymentType: profiles[0].deploymentType,
155178
155185
  username: profiles[0].username ? profiles[0].username : null,
155179
155186
  password: profiles[0].encodedPassword ? await dataProtection.decrypt(profiles[0].encodedPassword) : null,
@@ -155245,6 +155252,8 @@ async function saveConnectionProfile({
155245
155252
  state: state2
155246
155253
  });
155247
155254
  }
155255
+ if (state2.getAllowInsecureConnection())
155256
+ profile.allowInsecureConnection = state2.getAllowInsecureConnection();
155248
155257
  if (state2.getDeploymentType())
155249
155258
  profile.deploymentType = state2.getDeploymentType();
155250
155259
  if (state2.getUsername()) profile.username = state2.getUsername();
@@ -156691,6 +156700,7 @@ async function getTokens({
156691
156700
  const conn = await getConnectionProfile({ state: state2 });
156692
156701
  usingConnectionProfile = true;
156693
156702
  state2.setHost(conn.tenant);
156703
+ state2.setAllowInsecureConnection(conn.allowInsecureConnection);
156694
156704
  state2.setDeploymentType(conn.deploymentType);
156695
156705
  state2.setUsername(conn.username);
156696
156706
  state2.setPassword(conn.password);
@@ -156705,6 +156715,7 @@ async function getTokens({
156705
156715
  if (!isValidUrl(state2.getHost())) {
156706
156716
  const conn = await getConnectionProfile({ state: state2 });
156707
156717
  state2.setHost(conn.tenant);
156718
+ state2.setAllowInsecureConnection(conn.allowInsecureConnection);
156708
156719
  state2.setDeploymentType(conn.deploymentType);
156709
156720
  }
156710
156721
  state2.setCookieName(await determineCookieName(state2));
@@ -167492,11 +167503,11 @@ async function getAllVersions({
167492
167503
  state: state2
167493
167504
  }) {
167494
167505
  const reqPromises = [];
167495
- endpoints.forEach((item) => {
167506
+ for (const item of endpoints) {
167496
167507
  reqPromises.push(
167497
167508
  generateReleaseApi({ baseUrl: item.base, state: state2 }).get(item.path)
167498
167509
  );
167499
- });
167510
+ }
167500
167511
  const result2 = await Promise.allSettled(reqPromises);
167501
167512
  return result2;
167502
167513
  }
@@ -187433,7 +187444,7 @@ var compareVersions = (v12, v2) => {
187433
187444
  // package.json
187434
187445
  var package_default2 = {
187435
187446
  name: "@rockcarver/frodo-cli",
187436
- version: "2.0.0-65",
187447
+ version: "2.0.0-66",
187437
187448
  type: "module",
187438
187449
  description: "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
187439
187450
  keywords: [
@@ -187547,7 +187558,7 @@ var package_default2 = {
187547
187558
  ]
187548
187559
  },
187549
187560
  devDependencies: {
187550
- "@rockcarver/frodo-lib": "2.0.0-91",
187561
+ "@rockcarver/frodo-lib": "2.0.0-92",
187551
187562
  "@types/colors": "^1.2.1",
187552
187563
  "@types/fs-extra": "^11.0.1",
187553
187564
  "@types/jest": "^29.2.3",