From 8f05a4341438a172fb796d744ab976157ff07b14 Mon Sep 17 00:00:00 2001 From: Huston Franklin Date: Sun, 25 Jun 2023 15:20:06 -0600 Subject: [PATCH 01/10] feat: Add config-manager push secrets command --- .../config-manager-push-secrets.ts | 52 + .../config-manager-push.ts | 2 + src/configManagerOps/FrConfigSecretOps.ts | 31 +- .../config-manager-push-secrets.test.js.snap | 66 + .../config-manager-push.test.js.snap | 1 + .../en/config-manager-push-secrets.test.js | 10 + ...nfig-manager-push-secrets.e2e.test.js.snap | 3 + .../config-manager-push-secrets.e2e.test.js | 72 + ...sv-osaic-fradmin-serviceclient-secret.json | 7 + .../esv-push-aws-sns-access-key-id.json | 7 + .../esv-push-aws-sns-access-key-secret.json | 7 + .../esvs/secrets/esv-sns-access-key-id.json | 7 + .../secrets/esv-sns-access-key-secret.json | 7 + .../am_1076162899/recording.har | 631 +++++ .../environment_1072573434/recording.har | 514 ++++ .../oauth2_393036114/recording.har | 289 ++ .../mocks/default_2470140894/recording.har | 2338 +++++++++++++++++ 17 files changed, 4043 insertions(+), 1 deletion(-) create mode 100644 src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts create mode 100644 test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap create mode 100644 test/client_cli/en/config-manager-push-secrets.test.js create mode 100644 test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap create mode 100644 test/e2e/config-manager-push-secrets.e2e.test.js create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/default_2470140894/recording.har diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts new file mode 100644 index 000000000..3ed2e63c7 --- /dev/null +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -0,0 +1,52 @@ +import { frodo } from '@rockcarver/frodo-lib'; + +import { configManagerImportSecrets } from '../../../configManagerOps/FrConfigSecretOps'; +import { getTokens } from '../../../ops/AuthenticateOps'; +import { printMessage, verboseMessage } from '../../../utils/Console'; +import { FrodoCommand } from '../../FrodoCommand'; + +const { CLOUD_DEPLOYMENT_TYPE_KEY, FORGEOPS_DEPLOYMENT_TYPE_KEY } = + frodo.utils.constants; + +const deploymentTypes = [ + CLOUD_DEPLOYMENT_TYPE_KEY, + FORGEOPS_DEPLOYMENT_TYPE_KEY, +]; + +export default function setup() { + const program = new FrodoCommand( + 'frodo config-manager push secrets', + [], + deploymentTypes + ); + + program + .description('Import secrets.') + .action(async (host, realm, user, password, options, command) => { + command.handleDefaultArgsAndOpts( + host, + realm, + user, + password, + options, + command + ); + + if (await getTokens(false, true, deploymentTypes)) { + verboseMessage('Importing secrets'); + const outcome = await configManagerImportSecrets(); + if (!outcome) process.exitCode = 1; + } + // unrecognized combination of options or no options + else { + printMessage( + 'Unrecognized combination of options or no options...', + 'error' + ); + program.help(); + process.exitCode = 1; + } + }); + + return program; +} diff --git a/src/cli/config-manager/config-manager-push/config-manager-push.ts b/src/cli/config-manager/config-manager-push/config-manager-push.ts index 542ec2c7e..4ccab545a 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push.ts @@ -24,6 +24,7 @@ import Restart from './config-manager-push-restart'; import Schedules from './config-manager-push-schedules'; import SecretMappings from './config-manager-push-secret-mappings'; import ServiceObjects from './config-manager-push-service-objects'; +import Secrets from './config-manager-push-secrets'; import TermsAndConditions from './config-manager-push-terms-and-conditions'; import Themes from './config-manager-push-themes'; import UiConfig from './config-manager-push-ui-config'; @@ -62,6 +63,7 @@ export default function setup() { program.addCommand(Restart().name('restart')); program.addCommand(Journeys().name('journeys')); program.addCommand(Variables().name('variables')); + program.addCommand(Secrets().name('secrets')); return program; } diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 231f9fa09..0573bf412 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -1,6 +1,7 @@ import { frodo } from '@rockcarver/frodo-lib'; import { SecretSkeleton } from '@rockcarver/frodo-lib/types/api/cloud/SecretsApi'; import { SecretsExportInterface } from '@rockcarver/frodo-lib/types/ops/cloud/SecretsOps'; +import fs from 'fs'; import { createProgressIndicator, @@ -10,7 +11,7 @@ import { } from '../utils/Console'; const { getFilePath, saveJsonToFile } = frodo.utils; -const { readSecrets, exportSecret } = frodo.cloud.secret; +const { readSecrets, exportSecret, importSecret } = frodo.cloud.secret; /** * Export all secrets to individual files in fr-config-manager format @@ -87,3 +88,31 @@ export async function configManagerExportSecrets( } return false; } + +export async function configManagerImportSecrets(): Promise { + try { + const secretsDir = getFilePath('esvs/secrets'); + const secretsFiles = fs.readdirSync(secretsDir); + + for (const secretsFile of secretsFiles) { + const filePath = `${secretsDir}/${secretsFile}`; + const readFile = fs.readFileSync(filePath, 'utf-8'); + const importData = JSON.parse(readFile); + + const singleSecretImport: SecretsExportInterface = { + secret: { [importData._id]: importData }, + }; + + try { + await importSecret(importData._id, singleSecretImport, false); + } catch (err) { + printError(err); + } + } + + return true; + } catch (err) { + printError(err); + return false; + } +} diff --git a/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap new file mode 100644 index 000000000..47775fce0 --- /dev/null +++ b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap @@ -0,0 +1,66 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CLI help interface for 'config-manager push secrets' should be expected english 1`] = ` +"Usage: frodo config-manager push secrets [options] [host] [realm] [username] [password] + +Import secrets. + +Arguments: + host AM base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring or alias. + realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.) + username Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees. + password Password. + +Options: + --curlirize Output all network calls in curl format. + -D, --directory Set the working directory. + --debug Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting. + --flush-cache Flush token cache. + -h, --help Help + --idm-host IDM base URL, e.g.: https://cdk.idm.example.com/myidm. Use only if your IDM installation resides in a different domain and/or if the base path differs from the default "/openidm". + -k, --insecure Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://:), in that case the proxy must provide this capability. (default: Don't allow insecure connections) + --login-client-id Specify a custom OAuth2 client id to use a your own oauth2 client for IDM API calls in deployments of type "cloud" or "forgeops". Your custom client must be configured as a public client and allow the authorization code grant using the "openid fr:idm:*" scope. Use the "--redirect-uri" parameter if you have configured a custom redirect uri (default: "/platform/appAuthHelperRedirect.html"). + --login-redirect-uri Specify a custom redirect URI to use with your custom OAuth2 client (efault: "/platform/appAuthHelperRedirect.html"). + -m, --type Override auto-detected deployment type. Valid values for type: + classic: A classic Access Management-only deployment with custom layout and configuration. + cloud: A ForgeRock Identity Cloud environment. + forgeops: A ForgeOps CDK or CDM deployment. + The detected or provided deployment type controls certain behavior like obtaining an Identity Management admin token or not and whether to export/import referenced email templates or how to walk through the tenant admin login flow of Identity Cloud and handle MFA (choices: "classic", "cloud", "forgeops") + --no-cache Disable token cache for this operation. + --passphrase The passphrase for the Amster private key if it is encrypted. + --private-key File containing the private key for authenticating with Amster. Supported formats include PEM (both PKCS#1 and PKCS#8 variants), OpenSSH, DNSSEC, and JWK. + --retry Retry failed operations. Valid values for strategy: + everything: Retry all failed operations. + network: Retry only network-related failed operations. + nothing: Do not retry failed operations. + The selected retry strategy controls how the CLI handles failures. (choices: "nothing", "everything", "network", default: Do not retry failed operations.) + --sa-id Service account id. + --sa-jwk-file File containing the JSON Web Key (JWK) associated with the the service account. + --use-realm-prefix-on-managed-objects Set to true if you want to use the realm name as a prefix on managed object configuration, e.g. managed/alpha_user, managed/alpha_application or managed/bravo_organization. When false, the default behaviour of using managed/user etc. is retained. This option is ignored when the deployment type is "cloud". + --verbose Verbose output during command execution. If specified, may or may not produce additional output. + +Environment Variables: + FRODO_HOST: AM base URL. Overridden by 'host' argument. + FRODO_IDM_HOST: IDM base URL. Overridden by '--idm-host' option. + FRODO_REALM: Realm. Overridden by 'realm' argument. + FRODO_USERNAME: Username. Overridden by 'username' argument. + FRODO_PASSWORD: Password. Overridden by 'password' argument. + FRODO_LOGIN_CLIENT_ID: OAuth2 client id for IDM API calls. Overridden by '--login-client-id' option. + FRODO_LOGIN_REDIRECT_URI: Redirect Uri for custom OAuth2 client id. Overridden by '--login-redirect-uri' option. + FRODO_SA_ID: Service account uuid. Overridden by '--sa-id' option. + FRODO_SA_JWK: Service account JWK. Overridden by '--sa-jwk-file' option but takes the actual JWK as a value, not a file name. + FRODO_AMSTER_PASSPHRASE: Passphrase for the Amster private key if it is encrypted. Overridden by '--passphrase' option. + FRODO_AMSTER_PRIVATE_KEY: Amster private key. Overridden by '--private-key' option but takes the actual private key as a value (i.e. the file contents), not a file name. Supported formats include PEM (both PKCS#1 and PKCS#8 variants), OpenSSH, DNSSEC, and JWK. + FRODO_NO_CACHE: Disable token cache. Same as '--no-cache' option. + FRODO_TOKEN_CACHE_PATH: Use this token cache file instead of '~/.frodo/TokenCache.json'. + FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'. + FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use. When using an Amster private key, specifies which journey to use for Amster authentication as opposed to the default 'amsterService' journey. + FRODO_AUTHENTICATION_HEADER_OVERRIDES: Map of headers: '{"host":"am.example.com:8081"}'. These headers are sent with all requests and can be used to override default behavior, for example to set a custom host header for Proxy Connect-protected PingOne Advanced Identity Cloud environments. + FRODO_CONFIGURATION_HEADER_OVERRIDES: Map of headers: '{"X-Configuration-Type":"mutable"}'. These headers are sent with all configuration requests and can be used to override default behavior, for example to set a custom configuration header for mutable PingOne Advanced Identity Cloud environments. + FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'. + FRODO_IGA: Set to "true" to enable IGA (Identity Governance) endpoints for cloud deployments, or "false" to disable them, overriding auto-detected value. + FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file. + FRODO_MASTER_KEY: Use this master key instead of what's in '~/.frodo/masterkey.key'. Takes precedence over FRODO_MASTER_KEY_PATH. + +" +`; diff --git a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap index e0c932fb4..590dcca20 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap @@ -35,6 +35,7 @@ Commands: remote-servers [Experimental] Import RCS config. schedules [Experimental] Import schedules. service-objects [Experimental] Import service objects. + secrets Import secrets. terms-and-conditions [Experimental] Import terms and conditions. themes [Experimental] Import themes. ui-config [Experimental] Import UI configuration. diff --git a/test/client_cli/en/config-manager-push-secrets.test.js b/test/client_cli/en/config-manager-push-secrets.test.js new file mode 100644 index 000000000..2d301ae00 --- /dev/null +++ b/test/client_cli/en/config-manager-push-secrets.test.js @@ -0,0 +1,10 @@ +import cp from 'child_process'; +import { promisify } from 'util'; + +const exec = promisify(cp.exec); +const CMD = 'frodo config-manager push secrets --help'; +const { stdout } = await exec(CMD); + +test("CLI help interface for 'config-manager push secrets' should be expected english", async () => { + expect(stdout).toMatchSnapshot(); +}); \ No newline at end of file diff --git a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap new file mode 100644 index 000000000..81a71bacd --- /dev/null +++ b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/forgeops -m cloud": should import the secrets into cloud" 1`] = `""`; diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js new file mode 100644 index 000000000..1023fa4ec --- /dev/null +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -0,0 +1,72 @@ +/** + * Follow this process to write e2e tests for the CLI project: + * + * 1. Test if all the necessary mocks for your tests already exist. + * In mock mode, run the command you want to test with the same arguments + * and parameters exactly as you want to test it, for example: + * + * $ FRODO_MOCK=1 frodo conn save https://openam-frodo-dev.forgeblocks.com/am volker.scheuber@forgerock.com Sup3rS3cr3t! + * + * If your command completes without errors and with the expected results, + * all the required mocks already exist and you are good to write your + * test and skip to step #4. + * + * If, however, your command fails and you see errors like the one below, + * you know you need to record the mock responses first: + * + * [Polly] [adapter:node-http] Recording for the following request is not found and `recordIfMissing` is `false`. + * + * 2. Record mock responses for your exact command. + * In mock record mode, run the command you want to test with the same arguments + * and parameters exactly as you want to test it, for example: + * + * $ FRODO_MOCK=record frodo conn save https://openam-frodo-dev.forgeblocks.com/am volker.scheuber@forgerock.com Sup3rS3cr3t! + * + * Wait until you see all the Polly instances (mock recording adapters) have + * shutdown before you try to run step #1 again. + * Messages like these indicate mock recording adapters shutting down: + * + * Polly instance 'conn/4' stopping in 3s... + * Polly instance 'conn/4' stopping in 2s... + * Polly instance 'conn/save/3' stopping in 3s... + * Polly instance 'conn/4' stopping in 1s... + * Polly instance 'conn/save/3' stopping in 2s... + * Polly instance 'conn/4' stopped. + * Polly instance 'conn/save/3' stopping in 1s... + * Polly instance 'conn/save/3' stopped. + * + * 3. Validate your freshly recorded mock responses are complete and working. + * Re-run the exact command you want to test in mock mode (see step #1). + * + * 4. Write your test. + * Make sure to use the exact command including number of arguments and params. + * + * 5. Commit both your test and your new recordings to the repository. + * Your tests are likely going to reside outside the frodo-lib project but + * the recordings must be committed to the frodo-lib project. + */ + +/* +// ForgeOps +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/forgeops -m cloud +*/ + +import cp from 'child_process'; +import { promisify } from 'util'; +import { getEnv, removeAnsiEscapeCodes } from './utils/TestUtils'; +import { connection as c } from './utils/TestConfig'; + +const exec = promisify(cp.exec); + +process.env['FRODO_MOCK'] = '1'; +const cloudEnv = getEnv(c); + +const allDirectory = "test/e2e/exports/fr-config-manager/forgeops"; + +describe('frodo config-manager push secrets', () => { + test(`"frodo config-manager push secrets -D ${allDirectory} -m cloud": should import the secrets into cloud"`, async () => { + const CMD = `frodo config-manager push secrets -D ${allDirectory} -m cloud`; + const { stdout } = await exec(CMD, cloudEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json new file mode 100644 index 000000000..b0cf925f2 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-osaic-fradmin-serviceclient-secret", + "description": "Used in OSUserLogin journey. Not sure what this is used for.\n\n1/12/2026 Dylan Berry", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_OSAIC_FRADMIN_SERVICECLIENT_SECRET}" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json new file mode 100644 index 000000000..aa8e000f2 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-push-aws-sns-access-key-id", + "description": "", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_PUSH_AWS_SNS_ACCESS_KEY_ID}" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json new file mode 100644 index 000000000..fd9682b03 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-push-aws-sns-access-key-secret", + "description": "", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_PUSH_AWS_SNS_ACCESS_KEY_SECRET}" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json new file mode 100644 index 000000000..5e1c4e7c4 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-sns-access-key-id", + "description": "", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_SNS_ACCESS_KEY_ID}" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json new file mode 100644 index 000000000..7f6809c2a --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-sns-access-key-secret", + "description": "", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_SNS_ACCESS_KEY_SECRET}" +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har new file mode 100644 index 000000000..10fad1e7b --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har @@ -0,0 +1,631 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D_m/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 370, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 587, + "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:32:59.958Z", + "time": 24, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 24 + } + }, + { + "_id": "9f5671275c36a1c0090d0df26ce0e93f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 2, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "resource=2.0, protocol=1.0" + }, + { + "name": "x-openam-username", + "value": "amadmin" + }, + { + "name": "x-openam-password", + "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" + }, + { + "name": "content-length", + "value": "2" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 497, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" + }, + "response": { + "bodySize": 167, + "content": { + "mimeType": "application/json", + "size": 167, + "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "iPlanetDirectoryPro", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "amlbcookie", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:32:59.991Z", + "time": 28, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 28 + } + }, + { + "_id": "6a3744385d3fd7416ea7089e610fa7e7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "resource=4.0" + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"tokenId\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "getSessionInfo" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/sessions/?_action=getSessionInfo" + }, + "response": { + "bodySize": 291, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 291, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-03-13T19:32:58Z\",\"maxIdleExpirationTime\":\"2026-03-13T20:02:58Z\",\"maxSessionExpirationTime\":\"2026-03-13T21:32:57Z\",\"properties\":{\"AMCtxId\":\"131ba34f-c775-497f-b770-09af0f2dbef6-51462\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "291" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:33:00.030Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 520, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 257, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 257, + "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:33:00.055Z", + "time": 8, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 8 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har new file mode 100644 index 000000000..91b7fa31e --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har @@ -0,0 +1,514 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D_m/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "816cc699f6f22e5bd145f4c6a4258b9c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 198, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "198" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 422, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" + }, + "response": { + "bodySize": 146, + "content": { + "mimeType": "text/html", + "size": 146, + "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "text/html" + }, + { + "name": "content-length", + "value": "146" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 173, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2026-03-13T19:33:00.146Z", + "time": 2, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2 + } + }, + { + "_id": "563d49c758720f5b2532c03090d4276e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 414, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/environment/secrets/esv-push-aws-sns-access-key-id" + }, + "response": { + "bodySize": 146, + "content": { + "mimeType": "text/html", + "size": 146, + "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "text/html" + }, + { + "name": "content-length", + "value": "146" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 173, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2026-03-13T19:33:00.157Z", + "time": 3, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 3 + } + }, + { + "_id": "82a501dce1692c1ac484e6c6ebd1dc31", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 418, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/environment/secrets/esv-push-aws-sns-access-key-secret" + }, + "response": { + "bodySize": 146, + "content": { + "mimeType": "text/html", + "size": 146, + "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "text/html" + }, + { + "name": "content-length", + "value": "146" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 173, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2026-03-13T19:33:00.167Z", + "time": 3, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 3 + } + }, + { + "_id": "f5e9ea027a198dc9fc57c89b89ca289c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 405, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/environment/secrets/esv-sns-access-key-id" + }, + "response": { + "bodySize": 146, + "content": { + "mimeType": "text/html", + "size": 146, + "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "text/html" + }, + { + "name": "content-length", + "value": "146" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 173, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2026-03-13T19:33:00.175Z", + "time": 2, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2 + } + }, + { + "_id": "c72e65b84ca522764db84f0cb2bc59d5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 409, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/environment/secrets/esv-sns-access-key-secret" + }, + "response": { + "bodySize": 146, + "content": { + "mimeType": "text/html", + "size": 146, + "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "text/html" + }, + { + "name": "content-length", + "value": "146" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 173, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2026-03-13T19:33:00.184Z", + "time": 2, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har new file mode 100644 index 000000000..27af06d35 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a684e2f67fd67a4263878c3124af167a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 365, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "365" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 565, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=GZqVUEJDU7_myXMg4afwsIkdjJc.*AAJTSQACMDIAAlNLABxxT1FHM1Q3cWNlc0wwUEFVNk9NWjhPN1lZMzQ9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=thuzUVxQXi59AlU229K7jSNb0d6cersukH6m7fF1wl8&code_challenge_method=S256" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/authorize" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "expires": "1970-01-01T00:00:00.000Z", + "httpOnly": true, + "name": "OAUTH_REQUEST_ATTRIBUTES", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 673, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-03-13T19:33:00.071Z", + "time": 19, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 19 + } + }, + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 224, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "224" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&code_verifier=b4C_2jMrNKeu94X2uVwIKQus3COwPwSTY6xZuFnetas" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1249, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1249, + "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:32:58 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1249" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 404, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:33:00.096Z", + "time": 42, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 42 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/default_2470140894/recording.har b/test/e2e/mocks/default_2470140894/recording.har new file mode 100644 index 000000000..5d6e8b817 --- /dev/null +++ b/test/e2e/mocks/default_2470140894/recording.har @@ -0,0 +1,2338 @@ +{ + "log": { + "_recordingName": "default", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 585, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 585, + "text": "{\"_id\":\"*\",\"_rev\":\"-494299414\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-494299414\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "585" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:45 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 787, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:45.332Z", + "time": 117, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 117 + } + }, + { + "_id": "322b3145be067ea6a89b81f04628602c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 1362, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "1362" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 443, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:ws:admin fr:am:* fr:autoaccess:* fr:idc:esv:* fr:idc:analytics:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1884, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1884, + "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:ws:admin fr:am:* fr:autoaccess:* fr:idc:esv:* fr:idc:analytics:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1884" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:45 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 561, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:45.466Z", + "time": 105, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 105 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1980, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 280, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 280, + "text": "{\"_id\":\"version\",\"_rev\":\"103025458\",\"version\":\"8.1.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 8.1.0-SNAPSHOT Build 363328899230d72a7c5f4fdd6cafc3675d109ccd (2026-February-13 10:03)\",\"revision\":\"363328899230d72a7c5f4fdd6cafc3675d109ccd\",\"date\":\"2026-February-13 10:03\"}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"103025458\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "280" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:45 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 786, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:45.579Z", + "time": 73, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 73 + } + }, + { + "_id": "3631cfb75061a35339b442a95d4f2fb2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1992, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/810dd2f4-874b-4aad-9e0a-f8a57789f182?_fields=%2A" + }, + "response": { + "bodySize": 1408, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1408, + "text": "{\"_id\":\"810dd2f4-874b-4aad-9e0a-f8a57789f182\",\"_rev\":\"4773460a-f4b4-4472-a12b-8c7b7ad4fd76-9686\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1773261131370\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:ws:admin\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"GIyq6foAjk7VGtM7NyJQZMEUxtAgSe02sjjgp4ey4go\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"rBa78YjWw5-Hkd2rP8uuY2fikjMf9FVeP2AUabFL2qqgVCJxs035yKQDlMAYAFnKaSUXME0vXhZKNkP5ZsWdYAl_sS-0o8HBO4AQk8dXSB--NnkPd0S-6c-sb01oy5tet1WFiKI8dfhzH9KZ65oy3ouzaSsnTjIpFQNMVaq1qQE3m2gPnmwMoRQZdP_hClkXMTtkdRapTL_cdxw7tYGGwpjFz2IJRX-fjFpE79NZdQ_dUaeWOm3tnoHAHjh01IrFu7qlT0o5Bf7-gDvoXU3eYAy5D9LcZAeXr8DiEqK-2aBltV43JSk-Z119DQhRUOFOVMlfbZzHYcWlMgPHBnneleAzChhaDnTxd3NGfqF329wfxQHUaGdj7-eVlXEEYIxmzVwFOiEK0ogEtyvkrlYqQiarxSGt1teNShBpb2QtKL4UPLh7ufxe6K961QuL-FmCkKbjGFxYY0PTegeIsf3rYTNKJRpADC9rGPDF67c5yuMbbBZU9G_GRq5Lj8yS5vG94oCM7PGmKzxxavS7neBu0BH6cqn_u6kuvbfcLtmszo7JqMnY6SqPIp0PU1wfizkjeXKG0s_6rtqQ57pH5IpZTUYwCrtkqcOLEColrUwort43MY12P-ELDuq-IaZFRxJWn8A9dqplVJzOQViUfHHtTVu5W2KiumLSXsxWUsQTb8E\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:45 GMT" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"4773460a-f4b4-4472-a12b-8c7b7ad4fd76-9686\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1408" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 682, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:45.628Z", + "time": 126, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 126 + } + }, + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1931, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1975, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1975, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:autoaccess:*\",\"description\":\"All Auto Access APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:ws:admin\",\"description\":\"All PingFederate APIs\"},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1975" + }, + { + "name": "etag", + "value": "W/\"7b7-9oeZSONSS8Sn+SSr15TXAygvvcE\"" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:45 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "05a1c734-314c-499c-b2c5-a27061553c0d" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 413, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:45.660Z", + "time": 61, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 61 + } + }, + { + "_id": "816cc699f6f22e5bd145f4c6a4258b9c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 198, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "198" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1975, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:46 GMT" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "685dea75-4492-4f20-b89b-1b1d8314935e" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-03-13T19:52:45.786Z", + "time": 240, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 240 + } + }, + { + "_id": "68670a919d6931f1dadaf884a0c62966", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 103, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "103" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1999, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:46 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "61831c9d-3ab1-4e32-aa31-8642be2fdeb6" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:46.035Z", + "time": 605, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 605 + } + }, + { + "_id": "5bd7f1b2add5f52266ba9cb4f5b5114c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1954, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" + }, + "response": { + "bodySize": 339, + "content": { + "mimeType": "application/json", + "size": 339, + "text": "{\"_id\":\"esv-osaic-fradmin-serviceclient-secret\",\"activeVersion\":\"1\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:38.743047Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:46 GMT" + }, + { + "name": "content-length", + "value": "339" + }, + { + "name": "x-forgerock-transactionid", + "value": "a30ba7d3-9877-43b5-b1ea-3cba2052c5b0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:46.659Z", + "time": 155, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 155 + } + }, + { + "_id": "563d49c758720f5b2532c03090d4276e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1967, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:47 GMT" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "2f7e5d1e-abc9-4703-844f-0dc0d01525d0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-03-13T19:52:46.824Z", + "time": 266, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 266 + } + }, + { + "_id": "cfe4b481736e534bfea5f8128119b472", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 18, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "18" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1990, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:47 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "f4168fb7-a2a6-437d-903c-149170150c23" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:47.113Z", + "time": 431, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 431 + } + }, + { + "_id": "aad1b3818ec0e184fa219a6137a748f0", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1946, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id" + }, + "response": { + "bodySize": 246, + "content": { + "mimeType": "application/json", + "size": 246, + "text": "{\"_id\":\"esv-push-aws-sns-access-key-id\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:39.673227Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:47 GMT" + }, + { + "name": "content-length", + "value": "246" + }, + { + "name": "x-forgerock-transactionid", + "value": "faeeb37b-5520-4118-8219-d7bd9f0a7821" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:47.560Z", + "time": 151, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 151 + } + }, + { + "_id": "82a501dce1692c1ac484e6c6ebd1dc31", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1971, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:48 GMT" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "c72b45c3-c249-486a-b54b-fc58835593aa" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-03-13T19:52:47.723Z", + "time": 296, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 296 + } + }, + { + "_id": "f364e1f67a4357d2bac1314ae6300cd9", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 18, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "18" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1994, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:48 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "df962dd8-a1cf-4b59-9792-540b2fca8bce" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:48.033Z", + "time": 465, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 465 + } + }, + { + "_id": "a43c33dc9aa195d4c822f0ebbf960ecd", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1950, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret" + }, + "response": { + "bodySize": 250, + "content": { + "mimeType": "application/json", + "size": 250, + "text": "{\"_id\":\"esv-push-aws-sns-access-key-secret\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:40.637978Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:48 GMT" + }, + { + "name": "content-length", + "value": "250" + }, + { + "name": "x-forgerock-transactionid", + "value": "c5ba41a6-d578-473f-9c4e-fdd52432a69b" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:48.514Z", + "time": 158, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 158 + } + }, + { + "_id": "f5e9ea027a198dc9fc57c89b89ca289c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1958, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:48 GMT" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "e8a8aa7b-36d4-41d7-88bd-8445c899187c" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-03-13T19:52:48.677Z", + "time": 252, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 252 + } + }, + { + "_id": "73d0dff5f14a668fd2446cb09da683e0", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 18, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "18" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1981, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:49 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "a64d742d-7d3a-42dc-9948-c2539bf736fa" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:48.944Z", + "time": 499, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 499 + } + }, + { + "_id": "f8628163528ed660925b6ea220a47b28", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1937, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id" + }, + "response": { + "bodySize": 237, + "content": { + "mimeType": "application/json", + "size": 237, + "text": "{\"_id\":\"esv-sns-access-key-id\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:41.602432Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:49 GMT" + }, + { + "name": "content-length", + "value": "237" + }, + { + "name": "x-forgerock-transactionid", + "value": "0f7e10c0-6e34-4db8-8add-d2e482d3dc01" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:49.464Z", + "time": 150, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 150 + } + }, + { + "_id": "c72e65b84ca522764db84f0cb2bc59d5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 113, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "113" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1962, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:49 GMT" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "2ff24644-6b2e-4bf1-970e-7f7a80585fa4" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-03-13T19:52:49.631Z", + "time": 236, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 236 + } + }, + { + "_id": "0d4df37c3527862faff9963480cd6514", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 18, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "18" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1985, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:50 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "0704a73c-3a50-4367-8d0c-9767940cc68b" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:49.879Z", + "time": 722, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 722 + } + }, + { + "_id": "8d3ec55575ec12059cc0c762c49c4fa2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-22" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1941, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret" + }, + "response": { + "bodySize": 241, + "content": { + "mimeType": "application/json", + "size": 241, + "text": "{\"_id\":\"esv-sns-access-key-secret\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:42.847978Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Fri, 13 Mar 2026 19:52:50 GMT" + }, + { + "name": "content-length", + "value": "241" + }, + { + "name": "x-forgerock-transactionid", + "value": "0629d1bc-32f1-4ea2-b7d0-6499222a296f" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-13T19:52:50.618Z", + "time": 149, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 149 + } + } + ], + "pages": [], + "version": "1.2" + } +} From 124b1efa6d6598929f3c6e2d3eb368867fb78015 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Tue, 31 Mar 2026 14:46:00 -0600 Subject: [PATCH 02/10] Add test secrets --- .../secrets/esv-osaic-fradmin-serviceclient-secret.json | 7 ------- .../esvs/secrets/esv-push-aws-sns-access-key-id.json | 7 ------- .../esvs/secrets/esv-push-aws-sns-access-key-secret.json | 7 ------- .../forgeops/esvs/secrets/esv-sns-access-key-id.json | 7 ------- .../forgeops/esvs/secrets/esv-sns-access-key-secret.json | 7 ------- .../fr-config-manager/forgeops/esvs/secrets/esv-test.json | 7 +++++++ 6 files changed, 7 insertions(+), 35 deletions(-) delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json create mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json deleted file mode 100644 index b0cf925f2..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-osaic-fradmin-serviceclient-secret.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-osaic-fradmin-serviceclient-secret", - "description": "Used in OSUserLogin journey. Not sure what this is used for.\n\n1/12/2026 Dylan Berry", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_OSAIC_FRADMIN_SERVICECLIENT_SECRET}" -} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json deleted file mode 100644 index aa8e000f2..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-id.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-push-aws-sns-access-key-id", - "description": "", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_PUSH_AWS_SNS_ACCESS_KEY_ID}" -} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json deleted file mode 100644 index fd9682b03..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-push-aws-sns-access-key-secret.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-push-aws-sns-access-key-secret", - "description": "", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_PUSH_AWS_SNS_ACCESS_KEY_SECRET}" -} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json deleted file mode 100644 index 5e1c4e7c4..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-id.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-sns-access-key-id", - "description": "", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_SNS_ACCESS_KEY_ID}" -} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json deleted file mode 100644 index 7f6809c2a..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-sns-access-key-secret.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-sns-access-key-secret", - "description": "", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_SNS_ACCESS_KEY_SECRET}" -} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json new file mode 100644 index 000000000..cad16dc61 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-test", + "description": "test", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_TEST}" +} From 85f958e07a611540c283902d09b091676a39fc39 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Wed, 10 Jun 2026 10:32:32 -0600 Subject: [PATCH 03/10] Add resolve place holder and support .env files for secret imports --- .../config-manager-push-secrets.ts | 19 +- src/configManagerOps/FrConfigSecretOps.ts | 170 +++++- ...nfig-manager-push-secrets.e2e.test.js.snap | 4 +- .../config-manager-push-secrets.e2e.test.js | 16 +- .../esvs/secrets/esv-fr-test-secret.json | 7 + .../cloud/esvs/secrets/esv-test-secret.json | 7 + .../forgeops/esvs/secrets/esv-test.json | 7 - .../am_1076162899/recording.har | 312 ++++++++++ .../environment_1072573434/recording.har | 565 ++++++++++++++++++ .../oauth2_393036114/recording.har | 146 +++++ .../openidm_3290118515/recording.har | 310 ++++++++++ .../am_1076162899/recording.har | 312 ++++++++++ .../environment_1072573434/recording.har | 345 +++++++++++ .../oauth2_393036114/recording.har | 146 +++++ .../openidm_3290118515/recording.har | 310 ++++++++++ 15 files changed, 2645 insertions(+), 31 deletions(-) create mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-fr-test-secret.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts index 3ed2e63c7..6107ca80f 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -1,4 +1,5 @@ import { frodo } from '@rockcarver/frodo-lib'; +import { Option } from 'commander'; import { configManagerImportSecrets } from '../../../configManagerOps/FrConfigSecretOps'; import { getTokens } from '../../../ops/AuthenticateOps'; @@ -22,6 +23,19 @@ export default function setup() { program .description('Import secrets.') + .addOption( + new Option( + '-n, --name ', + 'Secret name; import only the specified secret' + ) + ) + .addOption( + new Option( + '-e, --env ', + 'Value to set for the secret. Will override .env files and environment variables.' + ) + ) + .action(async (host, realm, user, password, options, command) => { command.handleDefaultArgsAndOpts( host, @@ -34,7 +48,10 @@ export default function setup() { if (await getTokens(false, true, deploymentTypes)) { verboseMessage('Importing secrets'); - const outcome = await configManagerImportSecrets(); + const outcome = await configManagerImportSecrets( + options.name, + options.env + ); if (!outcome) process.exitCode = 1; } // unrecognized combination of options or no options diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 0573bf412..c1d5d4ab7 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -1,4 +1,4 @@ -import { frodo } from '@rockcarver/frodo-lib'; +import { frodo, FrodoError } from '@rockcarver/frodo-lib'; import { SecretSkeleton } from '@rockcarver/frodo-lib/types/api/cloud/SecretsApi'; import { SecretsExportInterface } from '@rockcarver/frodo-lib/types/ops/cloud/SecretsOps'; import fs from 'fs'; @@ -11,7 +11,13 @@ import { } from '../utils/Console'; const { getFilePath, saveJsonToFile } = frodo.utils; -const { readSecrets, exportSecret, importSecret } = frodo.cloud.secret; +const { + readSecrets, + exportSecret, + createSecret, + createVersionOfSecret, + readSecret, +} = frodo.cloud.secret; /** * Export all secrets to individual files in fr-config-manager format @@ -89,30 +95,158 @@ export async function configManagerExportSecrets( return false; } -export async function configManagerImportSecrets(): Promise { +export function loadEnvFile(): Record { + const envPath = getFilePath('.env'); + if (!fs.existsSync(envPath)) { + return {}; + } + const out: Record = {}; + const contents = fs.readFileSync(envPath, 'utf8'); + for (const rawLine of contents.split('\n')) { + const line = rawLine.trim(); + if (!line || line.startsWith('#')) { + continue; + } + const eq = line.indexOf('='); + if (eq === -1) { + continue; + } + const key = line.slice(0, eq).trim(); + let value = line.slice(eq + 1).trim(); + if ( + (value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'")) + ) { + value = value.slice(1, -1); + } + if (key) { + out[key] = value; + } + } + return out; +} + +export function resolvePlaceholder( + placeholder: string, + envFile: Record = {} +): string { + const match = placeholder.match(/^\$\{(BASE64:)?(.+)\}$/); + if (!match) { + throw new FrodoError(`Invalid placeholder format: ${placeholder}`); + } + const isBase64 = !!match[1]; + const name = match[2]; + + let value: string; + if (name in envFile) { + value = envFile[name]; + } else if (name in process.env) { + value = process.env[name]; + } else { + throw new FrodoError(`No value found for ${name}`); + } + return isBase64 ? value : Buffer.from(value).toString('base64'); +} + +export async function configManagerImportSecrets( + secretName?: string, + value?: string +): Promise { + const errors = []; + const spinnerId = createProgressIndicator( + 'indeterminate', + 0, + `Reading secrets...` + ); + let indicatorId: string; try { - const secretsDir = getFilePath('esvs/secrets'); - const secretsFiles = fs.readdirSync(secretsDir); + const secretsDir = getFilePath(`esvs/secrets/`); + if (!fs.existsSync(secretsDir)) { + stopProgressIndicator(spinnerId, `No secrets found`, 'fail'); + return true; + } - for (const secretsFile of secretsFiles) { - const filePath = `${secretsDir}/${secretsFile}`; - const readFile = fs.readFileSync(filePath, 'utf-8'); - const importData = JSON.parse(readFile); + const files = fs + .readdirSync(secretsDir) + .filter((name) => name.toLowerCase().endsWith('.json')) + .map((name) => + JSON.parse(fs.readFileSync(`${secretsDir}/${name}`, 'utf8')) + ) + .filter((data) => !secretName || data._id === secretName); - const singleSecretImport: SecretsExportInterface = { - secret: { [importData._id]: importData }, - }; + if (files.length === 0) { + stopProgressIndicator( + spinnerId, + secretName + ? `No matching secret found for ${secretName}` + : 'No secrets found to import', + 'fail' + ); + return true; + } + + stopProgressIndicator( + spinnerId, + `Successfully read ${files.length} secrets.`, + 'success' + ); + + const envFile = loadEnvFile(); + indicatorId = createProgressIndicator( + 'determinate', + files.length, + 'Importing secrets' + ); + + for (const importData of files) { try { - await importSecret(importData._id, singleSecretImport, false); - } catch (err) { - printError(err); + let secretValue: string; + if (value) { + secretValue = value; + } else if (importData.valueBase64) { + secretValue = resolvePlaceholder(importData.valueBase64, envFile); + } else { + throw new FrodoError( + `No value provided for secret ${importData._id}` + ); + } + + let exists = true; + try { + await readSecret(importData._id); + } catch { + exists = false; + } + + if (exists) { + await createVersionOfSecret(importData._id, secretValue); + } else { + await createSecret( + importData._id, + secretValue, + importData.description, + importData.encoding, + importData.useInPlaceholders + ); + } + updateProgressIndicator( + indicatorId, + `Imported secret ${importData._id}` + ); + } catch (error) { + errors.push(error); } } - + + if (errors.length > 0) { + throw new FrodoError(`Error importing secrets`, errors); + } + stopProgressIndicator(indicatorId, `${files.length} secrets imported.`); return true; - } catch (err) { - printError(err); + } catch (error) { + stopProgressIndicator(indicatorId, `Error importing secrets`, 'fail'); + printError(error); return false; } } diff --git a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap index 81a71bacd..97d752cdc 100644 --- a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap @@ -1,3 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/forgeops -m cloud": should import the secrets into cloud" 1`] = `""`; +exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 1`] = `""`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value test/e2e/exports/fr-config-manager/cloud": should import the specified secret into cloud 1`] = `""`; diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index 1023fa4ec..0ff623f5a 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -48,7 +48,10 @@ /* // ForgeOps -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/forgeops -m cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D test/e2e/exports/fr-config-manager/cloud + + */ import cp from 'child_process'; @@ -61,11 +64,16 @@ const exec = promisify(cp.exec); process.env['FRODO_MOCK'] = '1'; const cloudEnv = getEnv(c); -const allDirectory = "test/e2e/exports/fr-config-manager/forgeops"; +const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; describe('frodo config-manager push secrets', () => { - test(`"frodo config-manager push secrets -D ${allDirectory} -m cloud": should import the secrets into cloud"`, async () => { - const CMD = `frodo config-manager push secrets -D ${allDirectory} -m cloud`; + test(`"frodo config-manager push secrets -D ${allDirectory} ": should import the secrets into cloud"`, async () => { + const CMD = `frodo config-manager push secrets -D ${allDirectory} `; + const { stdout } = await exec(CMD, cloudEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value ${allDirectory}": should import the specified secret into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D ${allDirectory}`; const { stdout } = await exec(CMD, cloudEnv); expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); }); diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-fr-test-secret.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-fr-test-secret.json new file mode 100644 index 000000000..89628e2bd --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-fr-test-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-fr-test-secret", + "description": "this is a fr-config manager test secret", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_FR_TEST_SECRET}" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json new file mode 100644 index 000000000..765387057 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-test-secret", + "description": "This is a frodo test", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_TEST_SECRET}" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json b/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json deleted file mode 100644 index cad16dc61..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/esvs/secrets/esv-test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-test", - "description": "test", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_TEST}" -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har new file mode 100644 index 000000000..b7ed1aaa4 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har @@ -0,0 +1,312 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 398, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 614, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 614, + "text": "{\"_id\":\"*\",\"_rev\":\"959929574\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"311468432e97f1f\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"959929574\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "614" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:32 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 779, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:32.476Z", + "time": 153, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 153 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1926, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 273, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 273, + "text": "{\"_id\":\"version\",\"_rev\":\"1245987628\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 96952edaffd9295f1b26b1145ff158e577b2ecb0 (2026-June-02 12:57)\",\"revision\":\"96952edaffd9295f1b26b1145ff158e577b2ecb0\",\"date\":\"2026-June-02 12:57\"}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-security-policy", + "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"1245987628\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "273" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:32 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 780, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:32.833Z", + "time": 119, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 119 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har new file mode 100644 index 000000000..c4c4e6c88 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har @@ -0,0 +1,565 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1877, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1910, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1910, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"},{\"scope\":\"fr:iga:*\",\"description\":\"All Identity Governance APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1910" + }, + { + "name": "etag", + "value": "W/\"776-b2xCO2Gdrqb/5HdcH8WdC8M9zoM\"" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:33 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "1d58c1b9-ae9a-4d82-924b-3ef1e4652d4e" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:32.959Z", + "time": 102, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 102 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1880, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 274, + "content": { + "mimeType": "application/json", + "size": 274, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:50.576152Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:33 GMT" + }, + { + "name": "content-length", + "value": "274" + }, + { + "name": "x-forgerock-transactionid", + "value": "411059da-570a-4fa2-af5c-a1ee0a9e0252" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:33.189Z", + "time": 246, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 246 + } + }, + { + "_id": "7b696e2730ae7eb2e4b4a790799e32a7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 62, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "62" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1925, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"YlhrdFpuSXRkR1Z6ZEMxelpXTnlaWFF0ZG1Gc2RXVT0=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-06-10T15:28:50.429774Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:34 GMT" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "fe3714c6-a53d-4a2b-a5b6-6b3403ea7dda" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:33.657Z", + "time": 667, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 667 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1877, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 251, + "content": { + "mimeType": "application/json", + "size": 251, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:53.77035Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:34 GMT" + }, + { + "name": "content-length", + "value": "251" + }, + { + "name": "x-forgerock-transactionid", + "value": "25a0d24f-2b03-4895-b9e2-f3601e73a676" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:34.330Z", + "time": 202, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 202 + } + }, + { + "_id": "9391660beec37afba9a79ebc36128427", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 58, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "58" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1922, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"YlhrdGRHVnpkQzF6WldOeVpYUXRkbUZzZFdVPQ==\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-06-10T15:28:53.682355Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:35 GMT" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "43350927-aff5-4054-a3f6-b4612734c99b" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:34.751Z", + "time": 694, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 694 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har new file mode 100644 index 000000000..c7588e2dd --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 1328, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "1328" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 453, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*" + }, + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1780, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1780, + "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "frame-ancestors 'self'" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1780" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:32 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 556, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:32.641Z", + "time": 187, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 187 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har new file mode 100644 index 000000000..1569dcfc1 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_D/openidm", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1938, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + }, + "response": { + "bodySize": 1401, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1401, + "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:32 GMT" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1401" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:32.868Z", + "time": 178, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 178 + } + }, + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1938, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + }, + "response": { + "bodySize": 1401, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1401, + "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:58:33 GMT" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1401" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:58:33.074Z", + "time": 107, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 107 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har new file mode 100644 index 000000000..fb363ab12 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har @@ -0,0 +1,312 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_e_D/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 398, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 614, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 614, + "text": "{\"_id\":\"*\",\"_rev\":\"959929574\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"311468432e97f1f\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"959929574\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "614" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 804, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.114Z", + "time": 152, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 152 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1926, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 273, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 273, + "text": "{\"_id\":\"version\",\"_rev\":\"1245987628\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 96952edaffd9295f1b26b1145ff158e577b2ecb0 (2026-June-02 12:57)\",\"revision\":\"96952edaffd9295f1b26b1145ff158e577b2ecb0\",\"date\":\"2026-June-02 12:57\"}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-security-policy", + "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"1245987628\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "273" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 805, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.447Z", + "time": 120, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 120 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har new file mode 100644 index 000000000..2847df73e --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har @@ -0,0 +1,345 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_e_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1877, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1910, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1910, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"},{\"scope\":\"fr:iga:*\",\"description\":\"All Identity Governance APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1910" + }, + { + "name": "etag", + "value": "W/\"776-b2xCO2Gdrqb/5HdcH8WdC8M9zoM\"" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "d07e1c02-918d-457f-86a9-3826340d8f52" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.573Z", + "time": 103, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 103 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1880, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 274, + "content": { + "mimeType": "application/json", + "size": 274, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:50.576152Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:49 GMT" + }, + { + "name": "content-length", + "value": "274" + }, + { + "name": "x-forgerock-transactionid", + "value": "2420a527-237d-4293-98c4-01ebfd8ee69e" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.793Z", + "time": 253, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 253 + } + }, + { + "_id": "92ca3fa364e51f0e112701bfa76a26ec", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 38, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "38" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1925, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"bXktdGVzdC12YWx1ZQ==\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-06-10T15:59:50.596941Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:51 GMT" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "c02aa0cc-71d4-45cb-a806-f16ef3ab23c9" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:49.282Z", + "time": 2099, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2099 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har new file mode 100644 index 000000000..5fc277e5c --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_e_D/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 1328, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "1328" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 453, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*" + }, + "queryString": [], + "url": "https://openam-trivir-fairfax.forgeblocks.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1780, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1780, + "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "frame-ancestors 'self'" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1780" + }, + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 581, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.279Z", + "time": 162, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 162 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har new file mode 100644 index 000000000..168f93c70 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_e_D/openidm", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1938, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + }, + "response": { + "bodySize": 1401, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1401, + "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1401" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 683, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.481Z", + "time": 181, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 181 + } + }, + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-43" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1938, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + }, + "response": { + "bodySize": 1401, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1401, + "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "Wed, 10 Jun 2026 15:59:48 GMT" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1401" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + } + ], + "headersSize": 683, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-06-10T15:59:48.685Z", + "time": 100, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 100 + } + } + ], + "pages": [], + "version": "1.2" + } +} From f130e6058b94f0bed014e57b3f1049c4d76ae3c2 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Wed, 10 Jun 2026 11:06:54 -0600 Subject: [PATCH 04/10] update tests --- .../config-manager-push-secrets.test.js.snap | 73 +++++-------------- .../config-manager-push.test.js.snap | 2 +- 2 files changed, 19 insertions(+), 56 deletions(-) diff --git a/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap index 47775fce0..f4288fd1f 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap @@ -3,64 +3,27 @@ exports[`CLI help interface for 'config-manager push secrets' should be expected english 1`] = ` "Usage: frodo config-manager push secrets [options] [host] [realm] [username] [password] -Import secrets. +[Experimental] Import secrets. Arguments: - host AM base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring or alias. - realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.) - username Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees. - password Password. + host AM base URL, e.g.: https://cdk.iam.example.com/am. To use + a connection profile, just specify a unique substring or + alias. + realm Realm. Specify realm as '/' for the root realm or 'realm' + or '/parent/child' otherwise. (default: "alpha" for + Identity Cloud tenants, "/" otherwise.) + username Username to login with. Must be an admin user with + appropriate rights to manage authentication + journeys/trees. + password Password. Options: - --curlirize Output all network calls in curl format. - -D, --directory Set the working directory. - --debug Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting. - --flush-cache Flush token cache. - -h, --help Help - --idm-host IDM base URL, e.g.: https://cdk.idm.example.com/myidm. Use only if your IDM installation resides in a different domain and/or if the base path differs from the default "/openidm". - -k, --insecure Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://:), in that case the proxy must provide this capability. (default: Don't allow insecure connections) - --login-client-id Specify a custom OAuth2 client id to use a your own oauth2 client for IDM API calls in deployments of type "cloud" or "forgeops". Your custom client must be configured as a public client and allow the authorization code grant using the "openid fr:idm:*" scope. Use the "--redirect-uri" parameter if you have configured a custom redirect uri (default: "/platform/appAuthHelperRedirect.html"). - --login-redirect-uri Specify a custom redirect URI to use with your custom OAuth2 client (efault: "/platform/appAuthHelperRedirect.html"). - -m, --type Override auto-detected deployment type. Valid values for type: - classic: A classic Access Management-only deployment with custom layout and configuration. - cloud: A ForgeRock Identity Cloud environment. - forgeops: A ForgeOps CDK or CDM deployment. - The detected or provided deployment type controls certain behavior like obtaining an Identity Management admin token or not and whether to export/import referenced email templates or how to walk through the tenant admin login flow of Identity Cloud and handle MFA (choices: "classic", "cloud", "forgeops") - --no-cache Disable token cache for this operation. - --passphrase The passphrase for the Amster private key if it is encrypted. - --private-key File containing the private key for authenticating with Amster. Supported formats include PEM (both PKCS#1 and PKCS#8 variants), OpenSSH, DNSSEC, and JWK. - --retry Retry failed operations. Valid values for strategy: - everything: Retry all failed operations. - network: Retry only network-related failed operations. - nothing: Do not retry failed operations. - The selected retry strategy controls how the CLI handles failures. (choices: "nothing", "everything", "network", default: Do not retry failed operations.) - --sa-id Service account id. - --sa-jwk-file File containing the JSON Web Key (JWK) associated with the the service account. - --use-realm-prefix-on-managed-objects Set to true if you want to use the realm name as a prefix on managed object configuration, e.g. managed/alpha_user, managed/alpha_application or managed/bravo_organization. When false, the default behaviour of using managed/user etc. is retained. This option is ignored when the deployment type is "cloud". - --verbose Verbose output during command execution. If specified, may or may not produce additional output. - -Environment Variables: - FRODO_HOST: AM base URL. Overridden by 'host' argument. - FRODO_IDM_HOST: IDM base URL. Overridden by '--idm-host' option. - FRODO_REALM: Realm. Overridden by 'realm' argument. - FRODO_USERNAME: Username. Overridden by 'username' argument. - FRODO_PASSWORD: Password. Overridden by 'password' argument. - FRODO_LOGIN_CLIENT_ID: OAuth2 client id for IDM API calls. Overridden by '--login-client-id' option. - FRODO_LOGIN_REDIRECT_URI: Redirect Uri for custom OAuth2 client id. Overridden by '--login-redirect-uri' option. - FRODO_SA_ID: Service account uuid. Overridden by '--sa-id' option. - FRODO_SA_JWK: Service account JWK. Overridden by '--sa-jwk-file' option but takes the actual JWK as a value, not a file name. - FRODO_AMSTER_PASSPHRASE: Passphrase for the Amster private key if it is encrypted. Overridden by '--passphrase' option. - FRODO_AMSTER_PRIVATE_KEY: Amster private key. Overridden by '--private-key' option but takes the actual private key as a value (i.e. the file contents), not a file name. Supported formats include PEM (both PKCS#1 and PKCS#8 variants), OpenSSH, DNSSEC, and JWK. - FRODO_NO_CACHE: Disable token cache. Same as '--no-cache' option. - FRODO_TOKEN_CACHE_PATH: Use this token cache file instead of '~/.frodo/TokenCache.json'. - FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'. - FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use. When using an Amster private key, specifies which journey to use for Amster authentication as opposed to the default 'amsterService' journey. - FRODO_AUTHENTICATION_HEADER_OVERRIDES: Map of headers: '{"host":"am.example.com:8081"}'. These headers are sent with all requests and can be used to override default behavior, for example to set a custom host header for Proxy Connect-protected PingOne Advanced Identity Cloud environments. - FRODO_CONFIGURATION_HEADER_OVERRIDES: Map of headers: '{"X-Configuration-Type":"mutable"}'. These headers are sent with all configuration requests and can be used to override default behavior, for example to set a custom configuration header for mutable PingOne Advanced Identity Cloud environments. - FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'. - FRODO_IGA: Set to "true" to enable IGA (Identity Governance) endpoints for cloud deployments, or "false" to disable them, overriding auto-detected value. - FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file. - FRODO_MASTER_KEY: Use this master key instead of what's in '~/.frodo/masterkey.key'. Takes precedence over FRODO_MASTER_KEY_PATH. - + -e, --env Value to set for the secret. Will override .env files and + environment variables. + -n, --name Secret name; import only the specified secret + -h, --help Help + -hh, --help-more Help with all options. + -hhh, --help-all Help with all options, environment variables, and usage + examples. " `; diff --git a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap index 590dcca20..1de2040a5 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap @@ -34,8 +34,8 @@ Commands: password-policy [Experimental] Import password-policy objects. remote-servers [Experimental] Import RCS config. schedules [Experimental] Import schedules. + secrets [Experimental] Import secrets. service-objects [Experimental] Import service objects. - secrets Import secrets. terms-and-conditions [Experimental] Import terms and conditions. themes [Experimental] Import themes. ui-config [Experimental] Import UI configuration. From be0129f69fa861363768ec70f3710e27b262a234 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 18 Jun 2026 12:43:37 -0600 Subject: [PATCH 05/10] update import to use readToJson function. UPdate tests --- src/configManagerOps/FrConfigSecretOps.ts | 31 +++---- .../config-manager-push-secrets.e2e.test.js | 8 +- .../am_1076162899/recording.har | 24 +++--- .../environment_1072573434/recording.har | 86 +++++++++---------- .../oauth2_393036114/recording.har | 12 +-- .../openidm_3290118515/recording.har | 24 +++--- 6 files changed, 93 insertions(+), 92 deletions(-) diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index c1d5d4ab7..99ed5c356 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -10,7 +10,7 @@ import { updateProgressIndicator, } from '../utils/Console'; -const { getFilePath, saveJsonToFile } = frodo.utils; +const { getFilePath, saveJsonToFile, readToJson } = frodo.utils; const { readSecrets, exportSecret, @@ -166,15 +166,12 @@ export async function configManagerImportSecrets( return true; } - const files = fs + const fileNames = fs .readdirSync(secretsDir) .filter((name) => name.toLowerCase().endsWith('.json')) - .map((name) => - JSON.parse(fs.readFileSync(`${secretsDir}/${name}`, 'utf8')) - ) - .filter((data) => !secretName || data._id === secretName); + .filter((name) => !secretName || name === secretName); - if (files.length === 0) { + if (fileNames.length === 0) { stopProgressIndicator( spinnerId, secretName @@ -187,7 +184,7 @@ export async function configManagerImportSecrets( stopProgressIndicator( spinnerId, - `Successfully read ${files.length} secrets.`, + `Successfully read ${fileNames.length} secrets.`, 'success' ); @@ -195,21 +192,19 @@ export async function configManagerImportSecrets( indicatorId = createProgressIndicator( 'determinate', - files.length, + fileNames.length, 'Importing secrets' ); - for (const importData of files) { + for (const fileName of fileNames) { try { - let secretValue: string; - if (value) { - secretValue = value; - } else if (importData.valueBase64) { - secretValue = resolvePlaceholder(importData.valueBase64, envFile); - } else { + const importData = readToJson(`${secretsDir}/${fileName}`, {overrideValue: value, envFile, base64Encode: false}) + const secretValue = importData.valueBase64 + + if (!secretValue){ throw new FrodoError( `No value provided for secret ${importData._id}` - ); + ) } let exists = true; @@ -242,7 +237,7 @@ export async function configManagerImportSecrets( if (errors.length > 0) { throw new FrodoError(`Error importing secrets`, errors); } - stopProgressIndicator(indicatorId, `${files.length} secrets imported.`); + stopProgressIndicator(indicatorId, `${fileNames.length} secrets imported.`); return true; } catch (error) { stopProgressIndicator(indicatorId, `Error importing secrets`, 'fail'); diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index 0ff623f5a..398421a19 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -69,7 +69,13 @@ const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; describe('frodo config-manager push secrets', () => { test(`"frodo config-manager push secrets -D ${allDirectory} ": should import the secrets into cloud"`, async () => { const CMD = `frodo config-manager push secrets -D ${allDirectory} `; - const { stdout } = await exec(CMD, cloudEnv); + const { stdout, stderr } = await exec(CMD, { + env: { + ...cloudEnv.env, + ESV_FR_TEST_SECRET: "my-fr-test-secret-value", + ESV_TEST_SECRET: "my-test-secret-value" + } + }); expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); }); test(`"frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value ${allDirectory}": should import the specified secret into cloud`, async () => { diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har index b7ed1aaa4..af2a2e15b 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har @@ -29,7 +29,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "accept-api-version", @@ -113,11 +113,11 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:32 GMT" + "value": "Thu, 18 Jun 2026 18:06:59 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "strict-transport-security", @@ -142,8 +142,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:32.476Z", - "time": 153, + "startedDateTime": "2026-06-18T18:06:59.302Z", + "time": 174, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 153 + "wait": 174 } }, { @@ -176,7 +176,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "accept-api-version", @@ -264,11 +264,11 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:32 GMT" + "value": "Thu, 18 Jun 2026 18:06:59 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "strict-transport-security", @@ -293,8 +293,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:32.833Z", - "time": 119, + "startedDateTime": "2026-06-18T18:06:59.726Z", + "time": 138, "timings": { "blocked": -1, "connect": -1, @@ -302,7 +302,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 119 + "wait": 138 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har index c4c4e6c88..79bb29ea4 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har @@ -77,11 +77,11 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:33 GMT" + "value": "Thu, 18 Jun 2026 18:07:00 GMT" }, { "name": "x-forgerock-transactionid", - "value": "1d58c1b9-ae9a-4d82-924b-3ef1e4652d4e" + "value": "e0004780-0ddd-47ad-900b-be5e783b8bc6" }, { "name": "strict-transport-security", @@ -106,8 +106,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:32.959Z", - "time": 102, + "startedDateTime": "2026-06-18T18:06:59.871Z", + "time": 202, "timings": { "blocked": -1, "connect": -1, @@ -115,7 +115,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 102 + "wait": 202 } }, { @@ -162,11 +162,11 @@ "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret" }, "response": { - "bodySize": 274, + "bodySize": 273, "content": { "mimeType": "application/json", - "size": 274, - "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:50.576152Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" + "size": 273, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"5\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T16:24:38.791731Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":true,\"loadedVersion\":\"5\",\"useInPlaceholders\":true}" }, "cookies": [], "headers": [ @@ -176,15 +176,15 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:33 GMT" + "value": "Thu, 18 Jun 2026 18:07:00 GMT" }, { "name": "content-length", - "value": "274" + "value": "273" }, { "name": "x-forgerock-transactionid", - "value": "411059da-570a-4fa2-af5c-a1ee0a9e0252" + "value": "f099d0df-ad43-43bc-9be4-3fe8408fa72f" }, { "name": "strict-transport-security", @@ -209,8 +209,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:33.189Z", - "time": 246, + "startedDateTime": "2026-06-18T18:07:00.298Z", + "time": 311, "timings": { "blocked": -1, "connect": -1, @@ -218,15 +218,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 246 + "wait": 311 } }, { - "_id": "7b696e2730ae7eb2e4b4a790799e32a7", + "_id": "de017a59d6965d89d9fbcdb39793985d", "_order": 0, "cache": {}, "request": { - "bodySize": 62, + "bodySize": 50, "cookies": [], "headers": [ { @@ -251,7 +251,7 @@ }, { "name": "content-length", - "value": "62" + "value": "50" }, { "name": "accept-encoding", @@ -268,7 +268,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"valueBase64\":\"YlhrdFpuSXRkR1Z6ZEMxelpXTnlaWFF0ZG1Gc2RXVT0=\"}" + "text": "{\"valueBase64\":\"bXktZnItdGVzdC1zZWNyZXQtdmFsdWU=\"}" }, "queryString": [ { @@ -283,7 +283,7 @@ "content": { "mimeType": "application/json", "size": 93, - "text": "{\"createDate\":\"2026-06-10T15:28:50.429774Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" + "text": "{\"createDate\":\"2026-06-18T18:07:02.407747Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"6\"}" }, "cookies": [], "headers": [ @@ -293,7 +293,7 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:34 GMT" + "value": "Thu, 18 Jun 2026 18:07:03 GMT" }, { "name": "content-length", @@ -301,7 +301,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "fe3714c6-a53d-4a2b-a5b6-6b3403ea7dda" + "value": "ed861653-07ea-40f4-b227-691bfbe2e1a8" }, { "name": "strict-transport-security", @@ -326,8 +326,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:33.657Z", - "time": 667, + "startedDateTime": "2026-06-18T18:07:00.925Z", + "time": 2538, "timings": { "blocked": -1, "connect": -1, @@ -335,7 +335,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 667 + "wait": 2538 } }, { @@ -382,11 +382,11 @@ "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-test-secret" }, "response": { - "bodySize": 251, + "bodySize": 250, "content": { "mimeType": "application/json", - "size": 251, - "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:53.77035Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + "size": 250, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:53.77035Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":true,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" }, "cookies": [], "headers": [ @@ -396,15 +396,15 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:34 GMT" + "value": "Thu, 18 Jun 2026 18:07:03 GMT" }, { "name": "content-length", - "value": "251" + "value": "250" }, { "name": "x-forgerock-transactionid", - "value": "25a0d24f-2b03-4895-b9e2-f3601e73a676" + "value": "71af2d40-374e-492b-a01c-51312e243907" }, { "name": "strict-transport-security", @@ -429,8 +429,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:34.330Z", - "time": 202, + "startedDateTime": "2026-06-18T18:07:03.469Z", + "time": 223, "timings": { "blocked": -1, "connect": -1, @@ -438,15 +438,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 202 + "wait": 223 } }, { - "_id": "9391660beec37afba9a79ebc36128427", + "_id": "ab1e41089a12f86190cfce126358596d", "_order": 0, "cache": {}, "request": { - "bodySize": 58, + "bodySize": 46, "cookies": [], "headers": [ { @@ -471,7 +471,7 @@ }, { "name": "content-length", - "value": "58" + "value": "46" }, { "name": "accept-encoding", @@ -488,7 +488,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"valueBase64\":\"YlhrdGRHVnpkQzF6WldOeVpYUXRkbUZzZFdVPQ==\"}" + "text": "{\"valueBase64\":\"bXktdGVzdC1zZWNyZXQtdmFsdWU=\"}" }, "queryString": [ { @@ -503,7 +503,7 @@ "content": { "mimeType": "application/json", "size": 93, - "text": "{\"createDate\":\"2026-06-10T15:28:53.682355Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"}" + "text": "{\"createDate\":\"2026-06-18T18:07:05.112565Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" }, "cookies": [], "headers": [ @@ -513,7 +513,7 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:35 GMT" + "value": "Thu, 18 Jun 2026 18:07:05 GMT" }, { "name": "content-length", @@ -521,7 +521,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "43350927-aff5-4054-a3f6-b4612734c99b" + "value": "7af7c8ac-b0a2-4b98-ab7f-c1804774e6ce" }, { "name": "strict-transport-security", @@ -546,8 +546,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:34.751Z", - "time": 694, + "startedDateTime": "2026-06-18T18:07:03.944Z", + "time": 2027, "timings": { "blocked": -1, "connect": -1, @@ -555,7 +555,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 694 + "wait": 2027 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har index c7588e2dd..ea1944dd5 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har @@ -29,7 +29,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "accept-api-version", @@ -98,11 +98,11 @@ }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:32 GMT" + "value": "Thu, 18 Jun 2026 18:06:59 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "strict-transport-security", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:32.641Z", - "time": 187, + "startedDateTime": "2026-06-18T18:06:59.493Z", + "time": 226, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 187 + "wait": 226 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har index 1569dcfc1..c2e050f0f 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har @@ -29,7 +29,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "authorization", @@ -66,7 +66,7 @@ "headers": [ { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:32 GMT" + "value": "Thu, 18 Jun 2026 18:06:59 GMT" }, { "name": "vary", @@ -118,7 +118,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "strict-transport-security", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:32.868Z", - "time": 178, + "startedDateTime": "2026-06-18T18:06:59.767Z", + "time": 273, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 178 + "wait": 273 } }, { @@ -177,7 +177,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "authorization", @@ -214,7 +214,7 @@ "headers": [ { "name": "date", - "value": "Wed, 10 Jun 2026 15:58:33 GMT" + "value": "Thu, 18 Jun 2026 18:07:00 GMT" }, { "name": "vary", @@ -266,7 +266,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-58d41fa9-5f4b-4472-8db9-5133c4a8cd97" + "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" }, { "name": "strict-transport-security", @@ -291,8 +291,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:58:33.074Z", - "time": 107, + "startedDateTime": "2026-06-18T18:07:00.080Z", + "time": 210, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 107 + "wait": 210 } } ], From 6b1adb6065bb1bd68b2604c8378ceb69ad847e25 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 18 Jun 2026 14:33:33 -0600 Subject: [PATCH 06/10] update FrConfigSecretOps to use loadEnvFile from frodo-lib --- src/configManagerOps/FrConfigSecretOps.ts | 33 +---------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 99ed5c356..4c4de95f2 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -10,7 +10,7 @@ import { updateProgressIndicator, } from '../utils/Console'; -const { getFilePath, saveJsonToFile, readToJson } = frodo.utils; +const { getFilePath, saveJsonToFile, readToJson, loadEnvFile } = frodo.utils; const { readSecrets, exportSecret, @@ -95,37 +95,6 @@ export async function configManagerExportSecrets( return false; } -export function loadEnvFile(): Record { - const envPath = getFilePath('.env'); - if (!fs.existsSync(envPath)) { - return {}; - } - const out: Record = {}; - const contents = fs.readFileSync(envPath, 'utf8'); - for (const rawLine of contents.split('\n')) { - const line = rawLine.trim(); - if (!line || line.startsWith('#')) { - continue; - } - const eq = line.indexOf('='); - if (eq === -1) { - continue; - } - const key = line.slice(0, eq).trim(); - let value = line.slice(eq + 1).trim(); - if ( - (value.startsWith('"') && value.endsWith('"')) || - (value.startsWith("'") && value.endsWith("'")) - ) { - value = value.slice(1, -1); - } - if (key) { - out[key] = value; - } - } - return out; -} - export function resolvePlaceholder( placeholder: string, envFile: Record = {} From 22bed9c989584284686aa2b2872a1a4215d140e1 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Mon, 17 Aug 2026 14:15:27 -0600 Subject: [PATCH 07/10] wip --- esvs/secrets/esv-fr-test-secret.json | 7 + esvs/secrets/esv-test-secret.json | 7 + .../config-manager-push-secrets.ts | 36 +- .../config-manager-push.ts | 2 +- src/configManagerOps/FrConfigSecretOps.ts | 152 +- .../config-manager-push-secrets.e2e.test.js | 24 +- .../mocks/default_2470140894/recording.har | 2338 ----------------- 7 files changed, 117 insertions(+), 2449 deletions(-) create mode 100644 esvs/secrets/esv-fr-test-secret.json create mode 100644 esvs/secrets/esv-test-secret.json delete mode 100644 test/e2e/mocks/default_2470140894/recording.har diff --git a/esvs/secrets/esv-fr-test-secret.json b/esvs/secrets/esv-fr-test-secret.json new file mode 100644 index 000000000..89628e2bd --- /dev/null +++ b/esvs/secrets/esv-fr-test-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-fr-test-secret", + "description": "this is a fr-config manager test secret", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_FR_TEST_SECRET}" +} diff --git a/esvs/secrets/esv-test-secret.json b/esvs/secrets/esv-test-secret.json new file mode 100644 index 000000000..765387057 --- /dev/null +++ b/esvs/secrets/esv-test-secret.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-test-secret", + "description": "This is a frodo test", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_TEST_SECRET}" +} diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts index 6107ca80f..94393d223 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -3,7 +3,7 @@ import { Option } from 'commander'; import { configManagerImportSecrets } from '../../../configManagerOps/FrConfigSecretOps'; import { getTokens } from '../../../ops/AuthenticateOps'; -import { printMessage, verboseMessage } from '../../../utils/Console'; +import { verboseMessage } from '../../../utils/Console'; import { FrodoCommand } from '../../FrodoCommand'; const { CLOUD_DEPLOYMENT_TYPE_KEY, FORGEOPS_DEPLOYMENT_TYPE_KEY } = @@ -29,12 +29,8 @@ export default function setup() { 'Secret name; import only the specified secret' ) ) - .addOption( - new Option( - '-e, --env ', - 'Value to set for the secret. Will override .env files and environment variables.' - ) - ) + + .addOption(new Option('-p, --prune', 'Prune old configureation')) .action(async (host, realm, user, password, options, command) => { command.handleDefaultArgsAndOpts( @@ -46,23 +42,15 @@ export default function setup() { command ); - if (await getTokens(false, true, deploymentTypes)) { - verboseMessage('Importing secrets'); - const outcome = await configManagerImportSecrets( - options.name, - options.env - ); - if (!outcome) process.exitCode = 1; - } - // unrecognized combination of options or no options - else { - printMessage( - 'Unrecognized combination of options or no options...', - 'error' - ); - program.help(); - process.exitCode = 1; - } + const getTokensIsSuccessful = await getTokens( + false, + true, + deploymentTypes + ); + if (!getTokensIsSuccessful) process.exit(1); + verboseMessage('Importing secrets to cloud'); + const outcome = await configManagerImportSecrets(); + if (!outcome) process.exitCode = 1; }); return program; diff --git a/src/cli/config-manager/config-manager-push/config-manager-push.ts b/src/cli/config-manager/config-manager-push/config-manager-push.ts index 4ccab545a..f0479a7df 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push.ts @@ -23,8 +23,8 @@ import RemoteServers from './config-manager-push-remote-servers'; import Restart from './config-manager-push-restart'; import Schedules from './config-manager-push-schedules'; import SecretMappings from './config-manager-push-secret-mappings'; -import ServiceObjects from './config-manager-push-service-objects'; import Secrets from './config-manager-push-secrets'; +import ServiceObjects from './config-manager-push-service-objects'; import TermsAndConditions from './config-manager-push-terms-and-conditions'; import Themes from './config-manager-push-themes'; import UiConfig from './config-manager-push-ui-config'; diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 4c4de95f2..93e69bb3c 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -1,22 +1,27 @@ -import { frodo, FrodoError } from '@rockcarver/frodo-lib'; -import { SecretSkeleton } from '@rockcarver/frodo-lib/types/api/cloud/SecretsApi'; +import { frodo } from '@rockcarver/frodo-lib'; +import { + SecretSkeleton, + VersionOfSecretSkeleton, +} from '@rockcarver/frodo-lib/types/api/cloud/SecretsApi'; import { SecretsExportInterface } from '@rockcarver/frodo-lib/types/ops/cloud/SecretsOps'; import fs from 'fs'; import { createProgressIndicator, printError, + printMessage, stopProgressIndicator, updateProgressIndicator, } from '../utils/Console'; -const { getFilePath, saveJsonToFile, readToJson, loadEnvFile } = frodo.utils; +const { getFilePath, saveJsonToFile, readJsonFile } = frodo.utils; const { readSecrets, exportSecret, createSecret, createVersionOfSecret, - readSecret, + pruneVersionsOfSecret, + importSecrets, } = frodo.cloud.secret; /** @@ -95,33 +100,15 @@ export async function configManagerExportSecrets( return false; } -export function resolvePlaceholder( - placeholder: string, - envFile: Record = {} -): string { - const match = placeholder.match(/^\$\{(BASE64:)?(.+)\}$/); - if (!match) { - throw new FrodoError(`Invalid placeholder format: ${placeholder}`); - } - const isBase64 = !!match[1]; - const name = match[2]; - - let value: string; - if (name in envFile) { - value = envFile[name]; - } else if (name in process.env) { - value = process.env[name]; - } else { - throw new FrodoError(`No value found for ${name}`); - } - return isBase64 ? value : Buffer.from(value).toString('base64'); -} - +/** + * Import secrets to to cloud from fr-config-manager format + * @param {string} secretName optional name of secret to import + * @returns {Promise} true if successful, false otherwise + */ export async function configManagerImportSecrets( secretName?: string, - value?: string + prune?: boolean ): Promise { - const errors = []; const spinnerId = createProgressIndicator( 'indeterminate', 0, @@ -132,13 +119,13 @@ export async function configManagerImportSecrets( const secretsDir = getFilePath(`esvs/secrets/`); if (!fs.existsSync(secretsDir)) { stopProgressIndicator(spinnerId, `No secrets found`, 'fail'); - return true; + return false; } const fileNames = fs .readdirSync(secretsDir) .filter((name) => name.toLowerCase().endsWith('.json')) - .filter((name) => !secretName || name === secretName); + .filter((name) => !secretName || name === `${secretName}.json`); if (fileNames.length === 0) { stopProgressIndicator( @@ -148,7 +135,7 @@ export async function configManagerImportSecrets( : 'No secrets found to import', 'fail' ); - return true; + return false; } stopProgressIndicator( @@ -157,56 +144,83 @@ export async function configManagerImportSecrets( 'success' ); - const envFile = loadEnvFile(); - indicatorId = createProgressIndicator( - 'determinate', - fileNames.length, + 'indeterminate', + 0, 'Importing secrets' ); + const remoteSecrets = Object.fromEntries( + (await readSecrets()).map((s) => [s._id, s]) + ); + const secrets = {} as Record; + for (const fileName of fileNames) { try { - const importData = readToJson(`${secretsDir}/${fileName}`, {overrideValue: value, envFile, base64Encode: false}) - const secretValue = importData.valueBase64 - - if (!secretValue){ - throw new FrodoError( - `No value provided for secret ${importData._id}` - ) - } - - let exists = true; - try { - await readSecret(importData._id); - } catch { - exists = false; - } - - if (exists) { - await createVersionOfSecret(importData._id, secretValue); + const secret = readJsonFile( + `${secretsDir}/${fileName}` + ) as SecretSkeleton & { + valueBase4?: string; + versions?: VersionOfSecretSkeleton[]; + }; + if (prune) await pruneVersionsOfSecret(secret._id, false, true); + if (secret.valueBase64 !== undefined) { + secret.activeValue = secret.valueBase64; } else { - await createSecret( - importData._id, - secretValue, - importData.description, - importData.encoding, - importData.useInPlaceholders + const versions = [...secret.versions].sort((a, b) => + Number(a.version) - Number(b.version) ? 1 : -1 ); + for (let i = 0; i < versions.length - 1; ++i) { + if (i === 0 && !remoteSecrets[secret._id]) { + await createSecret( + secret._id, + versions[i].valueBase64, + secret.description, + secret.encoding, + secret.useInPlaceholders + ); + } else { + await createVersionOfSecret(secret._id, versions[i].valueBase64); + } + } + secret.activeValue = versions[versions.length - 1].valueBase64; } - updateProgressIndicator( - indicatorId, - `Imported secret ${importData._id}` - ); - } catch (error) { - errors.push(error); + secrets[secret._id] = secret; + } catch (e) { + printError(e, `Error importing secret from "${fileName}"`); } } - - if (errors.length > 0) { - throw new FrodoError(`Error importing secrets`, errors); + const includeActiveValues = true; + + const imported = await importSecrets( + { secret: secrets }, + includeActiveValues + ); + + let unchanged = 0; + let updated = 0; + + for (const s of imported) { + if ( + remoteSecrets[s._id] && + remoteSecrets[s._id].activeVersion === s.activeVersion + ) { + printMessage(`Secret ${s._id} unchanged version ${s.activeVersion}`); + unchanged++; + } else { + printMessage(`Secret ${s._id} created version ${s.activeVersion}`); + updated++; + } } - stopProgressIndicator(indicatorId, `${fileNames.length} secrets imported.`); + + stopProgressIndicator(indicatorId, `${imported.length} secrets imported.`); + + printMessage( + updated > 0 + ? `Changes made to secrets: ${updated} updated, ${unchanged} unchanged` + : `No changes, (${unchanged} secrets(s) already up to date)` + ); + return true; } catch (error) { stopProgressIndicator(indicatorId, `Error importing secrets`, 'fail'); diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index 398421a19..707e3e3e0 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -47,19 +47,17 @@ */ /* -// ForgeOps -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D test/e2e/exports/fr-config-manager/cloud +// cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D test/e2e/exports/fr-config-manager/cloud */ -import cp from 'child_process'; -import { promisify } from 'util'; -import { getEnv, removeAnsiEscapeCodes } from './utils/TestUtils'; +import { getEnv, testSuccess } from './utils/TestUtils'; import { connection as c } from './utils/TestConfig'; -const exec = promisify(cp.exec); + process.env['FRODO_MOCK'] = '1'; const cloudEnv = getEnv(c); @@ -69,18 +67,10 @@ const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; describe('frodo config-manager push secrets', () => { test(`"frodo config-manager push secrets -D ${allDirectory} ": should import the secrets into cloud"`, async () => { const CMD = `frodo config-manager push secrets -D ${allDirectory} `; - const { stdout, stderr } = await exec(CMD, { - env: { - ...cloudEnv.env, - ESV_FR_TEST_SECRET: "my-fr-test-secret-value", - ESV_TEST_SECRET: "my-test-secret-value" - } - }); - expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + testSuccess(CMD, cloudEnv) }); test(`"frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value ${allDirectory}": should import the specified secret into cloud`, async () => { const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D ${allDirectory}`; - const { stdout } = await exec(CMD, cloudEnv); - expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + testSuccess(CMD, cloudEnv) }); }); \ No newline at end of file diff --git a/test/e2e/mocks/default_2470140894/recording.har b/test/e2e/mocks/default_2470140894/recording.har deleted file mode 100644 index 5d6e8b817..000000000 --- a/test/e2e/mocks/default_2470140894/recording.har +++ /dev/null @@ -1,2338 +0,0 @@ -{ - "log": { - "_recordingName": "default", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "ccd7a5defd0fdeaa986a2b54642d911a", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "accept-api-version", - "value": "resource=1.1" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 388, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" - }, - "response": { - "bodySize": 585, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 585, - "text": "{\"_id\":\"*\",\"_rev\":\"-494299414\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-security-policy-report-only", - "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "content-api-version", - "value": "resource=1.1" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "etag", - "value": "\"-494299414\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "585" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:45 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 787, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:45.332Z", - "time": 117, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 117 - } - }, - { - "_id": "322b3145be067ea6a89b81f04628602c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 1362, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/x-www-form-urlencoded" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "accept-api-version", - "value": "protocol=2.1,resource=1.0" - }, - { - "name": "content-length", - "value": "1362" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 443, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/x-www-form-urlencoded", - "params": [], - "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:ws:admin fr:am:* fr:autoaccess:* fr:idc:esv:* fr:idc:analytics:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" - }, - "response": { - "bodySize": 1884, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 1884, - "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:ws:admin fr:am:* fr:autoaccess:* fr:idc:esv:* fr:idc:analytics:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-security-policy-report-only", - "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "1884" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:45 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 561, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:45.466Z", - "time": 105, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 105 - } - }, - { - "_id": "6125d0328ad0dcaee55f73fd8b22ca14", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "accept-api-version", - "value": "resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1980, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" - }, - "response": { - "bodySize": 280, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 280, - "text": "{\"_id\":\"version\",\"_rev\":\"103025458\",\"version\":\"8.1.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 8.1.0-SNAPSHOT Build 363328899230d72a7c5f4fdd6cafc3675d109ccd (2026-February-13 10:03)\",\"revision\":\"363328899230d72a7c5f4fdd6cafc3675d109ccd\",\"date\":\"2026-February-13 10:03\"}" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-security-policy-report-only", - "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "content-api-version", - "value": "resource=1.0" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "etag", - "value": "\"103025458\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "280" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:45 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 786, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:45.579Z", - "time": 73, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 73 - } - }, - { - "_id": "3631cfb75061a35339b442a95d4f2fb2", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1992, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [ - { - "name": "_fields", - "value": "*" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/810dd2f4-874b-4aad-9e0a-f8a57789f182?_fields=%2A" - }, - "response": { - "bodySize": 1408, - "content": { - "mimeType": "application/json;charset=utf-8", - "size": 1408, - "text": "{\"_id\":\"810dd2f4-874b-4aad-9e0a-f8a57789f182\",\"_rev\":\"4773460a-f4b4-4472-a12b-8c7b7ad4fd76-9686\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1773261131370\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:ws:admin\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"GIyq6foAjk7VGtM7NyJQZMEUxtAgSe02sjjgp4ey4go\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"rBa78YjWw5-Hkd2rP8uuY2fikjMf9FVeP2AUabFL2qqgVCJxs035yKQDlMAYAFnKaSUXME0vXhZKNkP5ZsWdYAl_sS-0o8HBO4AQk8dXSB--NnkPd0S-6c-sb01oy5tet1WFiKI8dfhzH9KZ65oy3ouzaSsnTjIpFQNMVaq1qQE3m2gPnmwMoRQZdP_hClkXMTtkdRapTL_cdxw7tYGGwpjFz2IJRX-fjFpE79NZdQ_dUaeWOm3tnoHAHjh01IrFu7qlT0o5Bf7-gDvoXU3eYAy5D9LcZAeXr8DiEqK-2aBltV43JSk-Z119DQhRUOFOVMlfbZzHYcWlMgPHBnneleAzChhaDnTxd3NGfqF329wfxQHUaGdj7-eVlXEEYIxmzVwFOiEK0ogEtyvkrlYqQiarxSGt1teNShBpb2QtKL4UPLh7ufxe6K961QuL-FmCkKbjGFxYY0PTegeIsf3rYTNKJRpADC9rGPDF67c5yuMbbBZU9G_GRq5Lj8yS5vG94oCM7PGmKzxxavS7neBu0BH6cqn_u6kuvbfcLtmszo7JqMnY6SqPIp0PU1wfizkjeXKG0s_6rtqQ57pH5IpZTUYwCrtkqcOLEColrUwort43MY12P-ELDuq-IaZFRxJWn8A9dqplVJzOQViUfHHtTVu5W2KiumLSXsxWUsQTb8E\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:45 GMT" - }, - { - "name": "vary", - "value": "Origin" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "content-type", - "value": "application/json;charset=utf-8" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "etag", - "value": "\"4773460a-f4b4-4472-a12b-8c7b7ad4fd76-9686\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "x-frame-options", - "value": "DENY" - }, - { - "name": "content-length", - "value": "1408" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-4a12871e-e915-4c10-ac82-8fe47bb2a05f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 682, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:45.628Z", - "time": 126, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 126 - } - }, - { - "_id": "ccc7ec61c2094114d7917814bb19b83b", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1931, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" - }, - "response": { - "bodySize": 1975, - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 1975, - "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:autoaccess:*\",\"description\":\"All Auto Access APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:ws:admin\",\"description\":\"All PingFederate APIs\"},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "name": "content-length", - "value": "1975" - }, - { - "name": "etag", - "value": "W/\"7b7-9oeZSONSS8Sn+SSr15TXAygvvcE\"" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:45 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "05a1c734-314c-499c-b2c5-a27061553c0d" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 413, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:45.660Z", - "time": 61, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 61 - } - }, - { - "_id": "816cc699f6f22e5bd145f4c6a4258b9c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 198, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "198" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1975, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" - }, - "response": { - "bodySize": 76, - "content": { - "mimeType": "application/json", - "size": 76, - "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:46 GMT" - }, - { - "name": "content-length", - "value": "76" - }, - { - "name": "x-forgerock-transactionid", - "value": "685dea75-4492-4f20-b89b-1b1d8314935e" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 400, - "statusText": "Bad Request" - }, - "startedDateTime": "2026-03-13T19:52:45.786Z", - "time": 240, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 240 - } - }, - { - "_id": "68670a919d6931f1dadaf884a0c62966", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 103, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "103" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1999, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "setDescription" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret?_action=setDescription" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:46 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "x-forgerock-transactionid", - "value": "61831c9d-3ab1-4e32-aa31-8642be2fdeb6" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 291, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:46.035Z", - "time": 605, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 605 - } - }, - { - "_id": "5bd7f1b2add5f52266ba9cb4f5b5114c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1954, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" - }, - "response": { - "bodySize": 339, - "content": { - "mimeType": "application/json", - "size": 339, - "text": "{\"_id\":\"esv-osaic-fradmin-serviceclient-secret\",\"activeVersion\":\"1\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:38.743047Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:46 GMT" - }, - { - "name": "content-length", - "value": "339" - }, - { - "name": "x-forgerock-transactionid", - "value": "a30ba7d3-9877-43b5-b1ea-3cba2052c5b0" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:46.659Z", - "time": 155, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 155 - } - }, - { - "_id": "563d49c758720f5b2532c03090d4276e", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1967, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id" - }, - "response": { - "bodySize": 76, - "content": { - "mimeType": "application/json", - "size": 76, - "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:47 GMT" - }, - { - "name": "content-length", - "value": "76" - }, - { - "name": "x-forgerock-transactionid", - "value": "2f7e5d1e-abc9-4703-844f-0dc0d01525d0" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 400, - "statusText": "Bad Request" - }, - "startedDateTime": "2026-03-13T19:52:46.824Z", - "time": 266, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 266 - } - }, - { - "_id": "cfe4b481736e534bfea5f8128119b472", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 18, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "18" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1990, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"description\":\"\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "setDescription" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id?_action=setDescription" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:47 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "x-forgerock-transactionid", - "value": "f4168fb7-a2a6-437d-903c-149170150c23" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 291, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:47.113Z", - "time": 431, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 431 - } - }, - { - "_id": "aad1b3818ec0e184fa219a6137a748f0", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1946, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-id" - }, - "response": { - "bodySize": 246, - "content": { - "mimeType": "application/json", - "size": 246, - "text": "{\"_id\":\"esv-push-aws-sns-access-key-id\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:39.673227Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:47 GMT" - }, - { - "name": "content-length", - "value": "246" - }, - { - "name": "x-forgerock-transactionid", - "value": "faeeb37b-5520-4118-8219-d7bd9f0a7821" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:47.560Z", - "time": 151, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 151 - } - }, - { - "_id": "82a501dce1692c1ac484e6c6ebd1dc31", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1971, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret" - }, - "response": { - "bodySize": 76, - "content": { - "mimeType": "application/json", - "size": 76, - "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:48 GMT" - }, - { - "name": "content-length", - "value": "76" - }, - { - "name": "x-forgerock-transactionid", - "value": "c72b45c3-c249-486a-b54b-fc58835593aa" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 400, - "statusText": "Bad Request" - }, - "startedDateTime": "2026-03-13T19:52:47.723Z", - "time": 296, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 296 - } - }, - { - "_id": "f364e1f67a4357d2bac1314ae6300cd9", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 18, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "18" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1994, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"description\":\"\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "setDescription" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret?_action=setDescription" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:48 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "x-forgerock-transactionid", - "value": "df962dd8-a1cf-4b59-9792-540b2fca8bce" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 291, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:48.033Z", - "time": 465, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 465 - } - }, - { - "_id": "a43c33dc9aa195d4c822f0ebbf960ecd", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1950, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-push-aws-sns-access-key-secret" - }, - "response": { - "bodySize": 250, - "content": { - "mimeType": "application/json", - "size": 250, - "text": "{\"_id\":\"esv-push-aws-sns-access-key-secret\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:40.637978Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:48 GMT" - }, - { - "name": "content-length", - "value": "250" - }, - { - "name": "x-forgerock-transactionid", - "value": "c5ba41a6-d578-473f-9c4e-fdd52432a69b" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:48.514Z", - "time": 158, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 158 - } - }, - { - "_id": "f5e9ea027a198dc9fc57c89b89ca289c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1958, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id" - }, - "response": { - "bodySize": 76, - "content": { - "mimeType": "application/json", - "size": 76, - "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:48 GMT" - }, - { - "name": "content-length", - "value": "76" - }, - { - "name": "x-forgerock-transactionid", - "value": "e8a8aa7b-36d4-41d7-88bd-8445c899187c" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 400, - "statusText": "Bad Request" - }, - "startedDateTime": "2026-03-13T19:52:48.677Z", - "time": 252, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 252 - } - }, - { - "_id": "73d0dff5f14a668fd2446cb09da683e0", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 18, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "18" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1981, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"description\":\"\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "setDescription" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id?_action=setDescription" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:49 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "x-forgerock-transactionid", - "value": "a64d742d-7d3a-42dc-9948-c2539bf736fa" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 291, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:48.944Z", - "time": 499, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 499 - } - }, - { - "_id": "f8628163528ed660925b6ea220a47b28", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1937, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-id" - }, - "response": { - "bodySize": 237, - "content": { - "mimeType": "application/json", - "size": 237, - "text": "{\"_id\":\"esv-sns-access-key-id\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:41.602432Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:49 GMT" - }, - { - "name": "content-length", - "value": "237" - }, - { - "name": "x-forgerock-transactionid", - "value": "0f7e10c0-6e34-4db8-8add-d2e482d3dc01" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:49.464Z", - "time": 150, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 150 - } - }, - { - "_id": "c72e65b84ca522764db84f0cb2bc59d5", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1962, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret" - }, - "response": { - "bodySize": 76, - "content": { - "mimeType": "application/json", - "size": 76, - "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:49 GMT" - }, - { - "name": "content-length", - "value": "76" - }, - { - "name": "x-forgerock-transactionid", - "value": "2ff24644-6b2e-4bf1-970e-7f7a80585fa4" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 400, - "statusText": "Bad Request" - }, - "startedDateTime": "2026-03-13T19:52:49.631Z", - "time": 236, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 236 - } - }, - { - "_id": "0d4df37c3527862faff9963480cd6514", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 18, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "18" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1985, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"description\":\"\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "setDescription" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret?_action=setDescription" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:50 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "x-forgerock-transactionid", - "value": "0704a73c-3a50-4367-8d0c-9767940cc68b" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 291, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:49.879Z", - "time": 722, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 722 - } - }, - { - "_id": "8d3ec55575ec12059cc0c762c49c4fa2", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1941, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-sns-access-key-secret" - }, - "response": { - "bodySize": 241, - "content": { - "mimeType": "application/json", - "size": 241, - "text": "{\"_id\":\"esv-sns-access-key-secret\",\"activeVersion\":\"1\",\"description\":\"\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-03-13T19:30:42.847978Z\",\"lastChangedBy\":\"Frodo-SA-1773261131370\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:52:50 GMT" - }, - { - "name": "content-length", - "value": "241" - }, - { - "name": "x-forgerock-transactionid", - "value": "0629d1bc-32f1-4ea2-b7d0-6499222a296f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:52:50.618Z", - "time": 149, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 149 - } - } - ], - "pages": [], - "version": "1.2" - } -} From cfabcad0ca5b2c48809f88798175ec642c6e7875 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Tue, 18 Aug 2026 08:18:47 -0600 Subject: [PATCH 08/10] fixup! wip --- src/cli/FrodoCommand.ts | 2 +- .../config-manager-push-secrets.ts | 2 +- src/cli/idm/idm-export.ts | 8 +- src/cli/idm/idm-import.ts | 13 +- src/cli/idm/idm-schema-object-export.ts | 8 +- src/cli/idm/idm-schema-object-import.ts | 2 +- src/cli/promote/promote.ts | 2 +- src/configManagerOps/FrConfigSecretOps.ts | 5 +- .../config-manager-push-secrets.e2e.test.js | 16 +- .../am_1076162899/recording.har | 631 ------------------ .../environment_1072573434/recording.har | 514 -------------- .../oauth2_393036114/recording.har | 289 -------- 12 files changed, 45 insertions(+), 1447 deletions(-) delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har diff --git a/src/cli/FrodoCommand.ts b/src/cli/FrodoCommand.ts index 524aa1a6d..d952434a1 100644 --- a/src/cli/FrodoCommand.ts +++ b/src/cli/FrodoCommand.ts @@ -2538,4 +2538,4 @@ export class FrodoCommand extends FrodoStubCommand { ); } } -} +} \ No newline at end of file diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts index 94393d223..f8263b600 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -49,7 +49,7 @@ export default function setup() { ); if (!getTokensIsSuccessful) process.exit(1); verboseMessage('Importing secrets to cloud'); - const outcome = await configManagerImportSecrets(); + const outcome = await configManagerImportSecrets(options.name, options.prune); if (!outcome) process.exitCode = 1; }); diff --git a/src/cli/idm/idm-export.ts b/src/cli/idm/idm-export.ts index b4549dac7..53993bb89 100644 --- a/src/cli/idm/idm-export.ts +++ b/src/cli/idm/idm-export.ts @@ -54,6 +54,12 @@ export default function setup() { 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -i, and -a.' ) ) + .addOption( + new Option( + '-a, --all', + 'Export all IDM configuration objects into a single file in directory -D. Ignored with -i.' + ) + ) .addOption( new Option( '-N, --no-metadata', @@ -157,4 +163,4 @@ export default function setup() { ); return program; -} +} \ No newline at end of file diff --git a/src/cli/idm/idm-import.ts b/src/cli/idm/idm-import.ts index a3f0d52e9..69beb7f8d 100644 --- a/src/cli/idm/idm-import.ts +++ b/src/cli/idm/idm-import.ts @@ -64,6 +64,13 @@ export default function setup() { 'Import all IDM configuration objects from separate files in directory -D. Ignored with -i, and -a.' ) ) + .addOption( + new Option( + '-a, --all', + 'Export all IDM configuration objects into a single file in directory -D. Ignored with -i.' + ) + ) + .action( // implement command logic inside action handler async ( @@ -129,7 +136,9 @@ export default function setup() { verboseMessage( `Importing first object${envMessage}${fileMessage}...` ); - const outcome = await importFirstConfigEntityFromFile(options.file); + const outcome = await importFirstConfigEntityFromFile( + options.file + ); if (!outcome) process.exitCode = 1; } // require --directory -D for all-separate functions @@ -168,4 +177,4 @@ export default function setup() { ); return program; -} +} \ No newline at end of file diff --git a/src/cli/idm/idm-schema-object-export.ts b/src/cli/idm/idm-schema-object-export.ts index 04cbea003..a05ed58cc 100644 --- a/src/cli/idm/idm-schema-object-export.ts +++ b/src/cli/idm/idm-schema-object-export.ts @@ -63,6 +63,12 @@ export default function setup() { 'Do not extract and save idm scripts to separate files. Ignored with -a and -A.' ).default(true, 'true') ) + .addOption( + new Option( + '-N, --no-metadata', + 'Does not include metadata in the export file.' + ) + ) .action( // implement command logic inside action handler async (host, realm, user, password, options, command) => { @@ -140,4 +146,4 @@ export default function setup() { ); return program; -} +} \ No newline at end of file diff --git a/src/cli/idm/idm-schema-object-import.ts b/src/cli/idm/idm-schema-object-import.ts index 22e343122..d96bd20ad 100644 --- a/src/cli/idm/idm-schema-object-import.ts +++ b/src/cli/idm/idm-schema-object-import.ts @@ -111,4 +111,4 @@ export default function setup() { ); return program; -} +} \ No newline at end of file diff --git a/src/cli/promote/promote.ts b/src/cli/promote/promote.ts index e7ab814d4..213b7cc28 100644 --- a/src/cli/promote/promote.ts +++ b/src/cli/promote/promote.ts @@ -127,4 +127,4 @@ export default function setup() { ); return program; -} +} \ No newline at end of file diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 93e69bb3c..65fa4a254 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -160,7 +160,7 @@ export async function configManagerImportSecrets( const secret = readJsonFile( `${secretsDir}/${fileName}` ) as SecretSkeleton & { - valueBase4?: string; + valueBase64?: string; versions?: VersionOfSecretSkeleton[]; }; if (prune) await pruneVersionsOfSecret(secret._id, false, true); @@ -187,6 +187,9 @@ export async function configManagerImportSecrets( } secrets[secret._id] = secret; } catch (e) { + if (e instanceof Error && e.message.includes('No value found for placeholder')){ + continue; + } printError(e, `Error importing secret from "${fileName}"`); } } diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index 707e3e3e0..20a1782d9 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -49,8 +49,8 @@ /* // cloud FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D test/e2e/exports/fr-config-manager/cloud - +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -E ESV_TEST_SECRET="new version" -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3 -D test/e2e/exports/fr-config-manager/cloud */ @@ -69,8 +69,16 @@ describe('frodo config-manager push secrets', () => { const CMD = `frodo config-manager push secrets -D ${allDirectory} `; testSuccess(CMD, cloudEnv) }); - test(`"frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value ${allDirectory}": should import the specified secret into cloud`, async () => { - const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value -D ${allDirectory}`; + test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" ${allDirectory}": should import the specified secret into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" -D ${allDirectory}`; + testSuccess(CMD, cloudEnv) + }); + test(`"frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3" ${allDirectory}": should import the specified secret into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3" -D ${allDirectory}`; + testSuccess(CMD, cloudEnv) + }); + test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ${allDirectory}": should import the specified secret into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_TEST_SECRET="new version" -D ${allDirectory}`; testSuccess(CMD, cloudEnv) }); }); \ No newline at end of file diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har deleted file mode 100644 index 10fad1e7b..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/am_1076162899/recording.har +++ /dev/null @@ -1,631 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secrets/0_D_m/am", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "ccd7a5defd0fdeaa986a2b54642d911a", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "resource=1.1" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 370, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" - }, - "response": { - "bodySize": 587, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 587, - "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "587" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "content-api-version", - "value": "resource=1.1" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "etag", - "value": "\"2075994313\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 631, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:32:59.958Z", - "time": 24, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 24 - } - }, - { - "_id": "9f5671275c36a1c0090d0df26ce0e93f", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 2, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "resource=2.0, protocol=1.0" - }, - { - "name": "x-openam-username", - "value": "amadmin" - }, - { - "name": "x-openam-password", - "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" - }, - { - "name": "content-length", - "value": "2" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 497, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" - }, - "response": { - "bodySize": 167, - "content": { - "mimeType": "application/json", - "size": 167, - "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - }, - { - "httpOnly": true, - "name": "iPlanetDirectoryPro", - "path": "/", - "sameSite": "none", - "secure": true, - "value": "" - }, - { - "httpOnly": true, - "name": "amlbcookie", - "path": "/", - "sameSite": "none", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "content-length", - "value": "167" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "private" - }, - { - "name": "content-api-version", - "value": "resource=2.1" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 693, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:32:59.991Z", - "time": 28, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 28 - } - }, - { - "_id": "6a3744385d3fd7416ea7089e610fa7e7", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 128, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "resource=4.0" - }, - { - "name": "content-length", - "value": "128" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 424, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"tokenId\":\"\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "getSessionInfo" - } - ], - "url": "https://platform.dev.trivir.com/am/json/realms/root/sessions/?_action=getSessionInfo" - }, - "response": { - "bodySize": 291, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 291, - "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-03-13T19:32:58Z\",\"maxIdleExpirationTime\":\"2026-03-13T20:02:58Z\",\"maxSessionExpirationTime\":\"2026-03-13T21:32:57Z\",\"properties\":{\"AMCtxId\":\"131ba34f-c775-497f-b770-09af0f2dbef6-51462\"}}" - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "291" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "private" - }, - { - "name": "content-api-version", - "value": "resource=4.0" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 610, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:33:00.030Z", - "time": 10, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 10 - } - }, - { - "_id": "6125d0328ad0dcaee55f73fd8b22ca14", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "resource=1.0" - }, - { - "name": "cookie", - "value": "iPlanetDirectoryPro=" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 520, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" - }, - "response": { - "bodySize": 257, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 257, - "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "257" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "content-api-version", - "value": "resource=1.0" - }, - { - "name": "content-security-policy", - "value": "default-src 'none';frame-ancestors 'none';sandbox" - }, - { - "name": "cross-origin-opener-policy", - "value": "same-origin" - }, - { - "name": "cross-origin-resource-policy", - "value": "same-origin" - }, - { - "name": "etag", - "value": "\"-466575464\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 631, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:33:00.055Z", - "time": 8, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 8 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har deleted file mode 100644 index 91b7fa31e..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/environment_1072573434/recording.har +++ /dev/null @@ -1,514 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secrets/0_D_m/environment", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "816cc699f6f22e5bd145f4c6a4258b9c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 198, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "198" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 422, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"Used in OSUserLogin journey. Not sure what this is used for.\\n\\n1/12/2026 Dylan Berry\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/environment/secrets/esv-osaic-fradmin-serviceclient-secret" - }, - "response": { - "bodySize": 146, - "content": { - "mimeType": "text/html", - "size": 146, - "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "text/html" - }, - { - "name": "content-length", - "value": "146" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 173, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 404, - "statusText": "Not Found" - }, - "startedDateTime": "2026-03-13T19:33:00.146Z", - "time": 2, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 2 - } - }, - { - "_id": "563d49c758720f5b2532c03090d4276e", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 414, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/environment/secrets/esv-push-aws-sns-access-key-id" - }, - "response": { - "bodySize": 146, - "content": { - "mimeType": "text/html", - "size": 146, - "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "text/html" - }, - { - "name": "content-length", - "value": "146" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 173, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 404, - "statusText": "Not Found" - }, - "startedDateTime": "2026-03-13T19:33:00.157Z", - "time": 3, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 3 - } - }, - { - "_id": "82a501dce1692c1ac484e6c6ebd1dc31", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 418, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/environment/secrets/esv-push-aws-sns-access-key-secret" - }, - "response": { - "bodySize": 146, - "content": { - "mimeType": "text/html", - "size": 146, - "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "text/html" - }, - { - "name": "content-length", - "value": "146" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 173, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 404, - "statusText": "Not Found" - }, - "startedDateTime": "2026-03-13T19:33:00.167Z", - "time": 3, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 3 - } - }, - { - "_id": "f5e9ea027a198dc9fc57c89b89ca289c", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 405, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/environment/secrets/esv-sns-access-key-id" - }, - "response": { - "bodySize": 146, - "content": { - "mimeType": "text/html", - "size": 146, - "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "text/html" - }, - { - "name": "content-length", - "value": "146" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 173, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 404, - "statusText": "Not Found" - }, - "startedDateTime": "2026-03-13T19:33:00.175Z", - "time": 2, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 2 - } - }, - { - "_id": "c72e65b84ca522764db84f0cb2bc59d5", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 113, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "113" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 409, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"cGxhY2Vob2xkZXIgc2VjcmV0IHZhbHVl\",\"description\":\"\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/environment/secrets/esv-sns-access-key-secret" - }, - "response": { - "bodySize": 146, - "content": { - "mimeType": "text/html", - "size": 146, - "text": "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n" - }, - "cookies": [], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "text/html" - }, - { - "name": "content-length", - "value": "146" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 173, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 404, - "statusText": "Not Found" - }, - "startedDateTime": "2026-03-13T19:33:00.184Z", - "time": 2, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 2 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har deleted file mode 100644 index 27af06d35..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_m_314327836/oauth2_393036114/recording.har +++ /dev/null @@ -1,289 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secrets/0_D_m/oauth2", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "a684e2f67fd67a4263878c3124af167a", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 365, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/x-www-form-urlencoded" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "protocol=2.1,resource=1.0" - }, - { - "name": "cookie", - "value": "iPlanetDirectoryPro=" - }, - { - "name": "content-length", - "value": "365" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 565, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/x-www-form-urlencoded", - "params": [], - "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=GZqVUEJDU7_myXMg4afwsIkdjJc.*AAJTSQACMDIAAlNLABxxT1FHM1Q3cWNlc0wwUEFVNk9NWjhPN1lZMzQ9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=thuzUVxQXi59AlU229K7jSNb0d6cersukH6m7fF1wl8&code_challenge_method=S256" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/am/oauth2/authorize" - }, - "response": { - "bodySize": 0, - "content": { - "mimeType": "text/plain", - "size": 0 - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - }, - { - "expires": "1970-01-01T00:00:00.000Z", - "httpOnly": true, - "name": "OAUTH_REQUEST_ATTRIBUTES", - "path": "/", - "sameSite": "none", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-length", - "value": "0" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "location", - "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 673, - "httpVersion": "HTTP/1.1", - "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", - "status": 302, - "statusText": "Found" - }, - "startedDateTime": "2026-03-13T19:33:00.071Z", - "time": 19, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 19 - } - }, - { - "_id": "ff75519a93ccab829f8ee8cf5e92b49f", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 224, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/x-www-form-urlencoded" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-22" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-855b2dcb-c346-4ee7-be57-256b8b2782c2" - }, - { - "name": "accept-api-version", - "value": "protocol=2.1,resource=1.0" - }, - { - "name": "content-length", - "value": "224" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 424, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/x-www-form-urlencoded", - "params": [], - "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=wILMmrk-bOAgIAS3LjgDbrMt3uQ&code_verifier=b4C_2jMrNKeu94X2uVwIKQus3COwPwSTY6xZuFnetas" - }, - "queryString": [], - "url": "https://platform.dev.trivir.com/am/oauth2/access_token" - }, - "response": { - "bodySize": 1249, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 1249, - "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" - }, - "cookies": [ - { - "httpOnly": true, - "name": "route", - "path": "/am", - "secure": true, - "value": "" - } - ], - "headers": [ - { - "name": "date", - "value": "Fri, 13 Mar 2026 19:32:58 GMT" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "1249" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "_fromType": "array", - "name": "set-cookie", - "value": "route=; Path=/am; Secure; HttpOnly" - }, - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "x-content-type-options", - "value": "nosniff" - }, - { - "name": "cache-control", - "value": "no-store" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains" - } - ], - "headersSize": 404, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-13T19:33:00.096Z", - "time": 42, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 42 - } - } - ], - "pages": [], - "version": "1.2" - } -} From cfcc29ffa3a874c917de3b212f5e8fc7cf487471 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 20 Aug 2026 09:18:31 -0600 Subject: [PATCH 09/10] fixup! resolve PR comments. update tests --- src/cli/FrodoCommand.ts | 2 +- .../config-manager-push-secrets.ts | 5 +- src/cli/idm/idm-export.ts | 8 +- src/cli/idm/idm-import.ts | 13 +- src/cli/idm/idm-schema-object-export.ts | 8 +- src/cli/idm/idm-schema-object-import.ts | 2 +- src/cli/promote/promote.ts | 2 +- src/configManagerOps/FrConfigSecretOps.ts | 5 +- ...nfig-manager-push-secrets.e2e.test.js.snap | 40 +- .../config-manager-push-secrets.e2e.test.js | 22 +- .../cloud/esvs/secrets/esv-test-secret-2.json | 7 + .../cloud/esvs/secrets/esv-test-secret-3.json | 7 + .../am_1076162899/recording.har | 72 +- .../environment_1072573434/recording.har | 403 +-------- .../oauth2_393036114/recording.har | 40 +- .../openidm_3290118515/recording.har | 66 +- .../am_1076162899/recording.har | 74 +- .../environment_1072573434/recording.har | 775 ++++++++++++++++++ .../oauth2_393036114/recording.har | 42 +- .../openidm_3290118515/recording.har | 310 +++++++ .../am_1076162899/recording.har | 312 +++++++ .../environment_1072573434/recording.har | 775 ++++++++++++++++++ .../oauth2_393036114/recording.har | 146 ++++ .../openidm_3290118515/recording.har | 66 +- .../environment_1072573434/recording.har | 345 -------- .../am_1076162899/recording.har | 312 +++++++ .../environment_1072573434/recording.har | 775 ++++++++++++++++++ .../oauth2_393036114/recording.har | 146 ++++ .../openidm_3290118515/recording.har | 310 +++++++ 29 files changed, 4153 insertions(+), 937 deletions(-) create mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_e_D_978558405 => 0_n_E_D_3715918565}/am_1076162899/recording.har (68%) create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/environment_1072573434/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_e_D_978558405 => 0_n_E_D_3715918565}/oauth2_393036114/recording.har (67%) create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/openidm_3290118515/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/oauth2_393036114/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_e_D_978558405 => 0_n_E_n_E_D_602310692}/openidm_3290118515/recording.har (59%) delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har diff --git a/src/cli/FrodoCommand.ts b/src/cli/FrodoCommand.ts index d952434a1..524aa1a6d 100644 --- a/src/cli/FrodoCommand.ts +++ b/src/cli/FrodoCommand.ts @@ -2538,4 +2538,4 @@ export class FrodoCommand extends FrodoStubCommand { ); } } -} \ No newline at end of file +} diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts index f8263b600..208d632bc 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -49,7 +49,10 @@ export default function setup() { ); if (!getTokensIsSuccessful) process.exit(1); verboseMessage('Importing secrets to cloud'); - const outcome = await configManagerImportSecrets(options.name, options.prune); + const outcome = await configManagerImportSecrets( + options.name, + options.prune + ); if (!outcome) process.exitCode = 1; }); diff --git a/src/cli/idm/idm-export.ts b/src/cli/idm/idm-export.ts index 53993bb89..b4549dac7 100644 --- a/src/cli/idm/idm-export.ts +++ b/src/cli/idm/idm-export.ts @@ -54,12 +54,6 @@ export default function setup() { 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -i, and -a.' ) ) - .addOption( - new Option( - '-a, --all', - 'Export all IDM configuration objects into a single file in directory -D. Ignored with -i.' - ) - ) .addOption( new Option( '-N, --no-metadata', @@ -163,4 +157,4 @@ export default function setup() { ); return program; -} \ No newline at end of file +} diff --git a/src/cli/idm/idm-import.ts b/src/cli/idm/idm-import.ts index 69beb7f8d..a3f0d52e9 100644 --- a/src/cli/idm/idm-import.ts +++ b/src/cli/idm/idm-import.ts @@ -64,13 +64,6 @@ export default function setup() { 'Import all IDM configuration objects from separate files in directory -D. Ignored with -i, and -a.' ) ) - .addOption( - new Option( - '-a, --all', - 'Export all IDM configuration objects into a single file in directory -D. Ignored with -i.' - ) - ) - .action( // implement command logic inside action handler async ( @@ -136,9 +129,7 @@ export default function setup() { verboseMessage( `Importing first object${envMessage}${fileMessage}...` ); - const outcome = await importFirstConfigEntityFromFile( - options.file - ); + const outcome = await importFirstConfigEntityFromFile(options.file); if (!outcome) process.exitCode = 1; } // require --directory -D for all-separate functions @@ -177,4 +168,4 @@ export default function setup() { ); return program; -} \ No newline at end of file +} diff --git a/src/cli/idm/idm-schema-object-export.ts b/src/cli/idm/idm-schema-object-export.ts index a05ed58cc..04cbea003 100644 --- a/src/cli/idm/idm-schema-object-export.ts +++ b/src/cli/idm/idm-schema-object-export.ts @@ -63,12 +63,6 @@ export default function setup() { 'Do not extract and save idm scripts to separate files. Ignored with -a and -A.' ).default(true, 'true') ) - .addOption( - new Option( - '-N, --no-metadata', - 'Does not include metadata in the export file.' - ) - ) .action( // implement command logic inside action handler async (host, realm, user, password, options, command) => { @@ -146,4 +140,4 @@ export default function setup() { ); return program; -} \ No newline at end of file +} diff --git a/src/cli/idm/idm-schema-object-import.ts b/src/cli/idm/idm-schema-object-import.ts index d96bd20ad..22e343122 100644 --- a/src/cli/idm/idm-schema-object-import.ts +++ b/src/cli/idm/idm-schema-object-import.ts @@ -111,4 +111,4 @@ export default function setup() { ); return program; -} \ No newline at end of file +} diff --git a/src/cli/promote/promote.ts b/src/cli/promote/promote.ts index 213b7cc28..e7ab814d4 100644 --- a/src/cli/promote/promote.ts +++ b/src/cli/promote/promote.ts @@ -127,4 +127,4 @@ export default function setup() { ); return program; -} \ No newline at end of file +} diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 65fa4a254..524a03a30 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -187,7 +187,10 @@ export async function configManagerImportSecrets( } secrets[secret._id] = secret; } catch (e) { - if (e instanceof Error && e.message.includes('No value found for placeholder')){ + if ( + e instanceof Error && + e.message.includes('No value found for placeholder') + ) { continue; } printError(e, `Error importing secret from "${fileName}"`); diff --git a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap index 97d752cdc..a3027a873 100644 --- a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap @@ -2,4 +2,42 @@ exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 1`] = `""`; -exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -e my-test-value test/e2e/exports/fr-config-manager/cloud": should import the specified secret into cloud 1`] = `""`; +exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 2`] = ` +"Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. +✔ Successfully read 4 secrets. +• 0 secrets imported. +No changes, (0 secrets(s) already up to date) +" +`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 1`] = `""`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 2`] = ` +"Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. +✔ Successfully read 1 secrets. +Secret esv-test-secret unchanged version 2 +• 1 secrets imported. +No changes, (1 secrets(s) already up to date) +" +`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" test/e2e/exports/fr-config-manager/cloud": should import the specified secret into cloud 1`] = `""`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" test/e2e/exports/fr-config-manager/cloud": should import the specified secret into cloud 2`] = ` +"Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. +✔ Successfully read 1 secrets. +Secret esv-fr-test-secret created version 3 +• 1 secrets imported. +Changes made to secrets: 1 updated, 0 unchanged +" +`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 1`] = `""`; + +exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 2`] = ` +"Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. +✔ Successfully read 1 secrets. +• 0 secrets imported. +No changes, (0 secrets(s) already up to date) +" +`; diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index 20a1782d9..c9f3a4fd4 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -49,9 +49,9 @@ /* // cloud FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -E ESV_TEST_SECRET="new version" -D test/e2e/exports/fr-config-manager/cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3 -D test/e2e/exports/fr-config-manager/cloud - +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret --env ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret --env ESV_TEST_SECRET="new test version" -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud */ import { getEnv, testSuccess } from './utils/TestUtils'; @@ -67,18 +67,18 @@ const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; describe('frodo config-manager push secrets', () => { test(`"frodo config-manager push secrets -D ${allDirectory} ": should import the secrets into cloud"`, async () => { const CMD = `frodo config-manager push secrets -D ${allDirectory} `; - testSuccess(CMD, cloudEnv) + await testSuccess(CMD, cloudEnv) }); test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" ${allDirectory}": should import the specified secret into cloud`, async () => { const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" -D ${allDirectory}`; - testSuccess(CMD, cloudEnv) + await testSuccess(CMD, cloudEnv) }); - test(`"frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3" ${allDirectory}": should import the specified secret into cloud`, async () => { - const CMD = `frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="test2" -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test3" -D ${allDirectory}`; - testSuccess(CMD, cloudEnv) + test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D ${allDirectory}": should import multiple specified secrets into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D ${allDirectory}`; + await testSuccess(CMD, cloudEnv) }); - test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ${allDirectory}": should import the specified secret into cloud`, async () => { - const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_TEST_SECRET="new version" -D ${allDirectory}`; - testSuccess(CMD, cloudEnv) + test(`"frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D ${allDirectory}": should import multiple specified secrets into cloud`, async () => { + const CMD = `frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D ${allDirectory}`; + await testSuccess(CMD, cloudEnv) }); }); \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json new file mode 100644 index 000000000..6e16dc5a6 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-test-secret-2", + "description": "Test Secret Two", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_TEST_SECRET_2}" +} \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json new file mode 100644 index 000000000..782d841c9 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-test-secret-3", + "description": "Test Secret Three", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_TEST_SECRET_3}" +} \ No newline at end of file diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har index af2a2e15b..128d3a0af 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "accept-api-version", @@ -44,24 +44,24 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 398, + "headersSize": 385, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/*" + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" }, "response": { - "bodySize": 614, + "bodySize": 636, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 614, - "text": "{\"_id\":\"*\",\"_rev\":\"959929574\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"311468432e97f1f\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" + "size": 636, + "text": "{\"_id\":\"*\",\"_rev\":\"-660094397\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":true,\"cdkDeployment\":false}" }, "cookies": [], "headers": [ { "name": "content-security-policy", - "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" }, { "name": "content-security-policy-report-only", @@ -89,7 +89,7 @@ }, { "name": "etag", - "value": "\"959929574\"" + "value": "" }, { "name": "expires", @@ -109,15 +109,15 @@ }, { "name": "content-length", - "value": "614" + "value": "636" }, { "name": "date", - "value": "Thu, 18 Jun 2026 18:06:59 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "strict-transport-security", @@ -129,21 +129,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 779, + "headersSize": 1200, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:06:59.302Z", - "time": 174, + "startedDateTime": "2026-08-20T15:16:05.083Z", + "time": 124, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 174 + "wait": 124 } }, { @@ -172,11 +172,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "accept-api-version", @@ -195,18 +195,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1926, + "headersSize": 1956, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/version" + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" }, "response": { - "bodySize": 273, + "bodySize": 276, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 273, - "text": "{\"_id\":\"version\",\"_rev\":\"1245987628\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 96952edaffd9295f1b26b1145ff158e577b2ecb0 (2026-June-02 12:57)\",\"revision\":\"96952edaffd9295f1b26b1145ff158e577b2ecb0\",\"date\":\"2026-June-02 12:57\"}" + "size": 276, + "text": "{\"_id\":\"version\",\"_rev\":\"682709768\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 1e6c015f8efa612ddc1fca2905bac0a4425e6ea0 (2026-August-14 17:23)\",\"revision\":\"1e6c015f8efa612ddc1fca2905bac0a4425e6ea0\",\"date\":\"2026-August-14 17:23\"}" }, "cookies": [], "headers": [ @@ -216,7 +216,7 @@ }, { "name": "content-security-policy", - "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" }, { "name": "content-security-policy-report-only", @@ -244,7 +244,7 @@ }, { "name": "etag", - "value": "\"1245987628\"" + "value": "" }, { "name": "expires", @@ -260,15 +260,15 @@ }, { "name": "content-length", - "value": "273" + "value": "276" }, { "name": "date", - "value": "Thu, 18 Jun 2026 18:06:59 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "strict-transport-security", @@ -280,21 +280,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 780, + "headersSize": 1199, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:06:59.726Z", - "time": 138, + "startedDateTime": "2026-08-20T15:16:05.352Z", + "time": 84, "timings": { "blocked": -1, "connect": -1, @@ -302,7 +302,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 138 + "wait": 84 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har index 79bb29ea4..5bcb996cf 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har @@ -25,7 +25,7 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "accept-api-version", @@ -44,18 +44,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1877, + "headersSize": 1907, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/scopes/service-accounts" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" }, "response": { - "bodySize": 1910, + "bodySize": 1991, "content": { "mimeType": "application/json; charset=utf-8", - "size": 1910, - "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"},{\"scope\":\"fr:iga:*\",\"description\":\"All Identity Governance APIs\"}]" + "size": 1991, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" }, "cookies": [], "headers": [ @@ -69,19 +69,19 @@ }, { "name": "content-length", - "value": "1910" + "value": "1991" }, { "name": "etag", - "value": "W/\"776-b2xCO2Gdrqb/5HdcH8WdC8M9zoM\"" + "value": "" }, { "name": "date", - "value": "Thu, 18 Jun 2026 18:07:00 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "e0004780-0ddd-47ad-900b-be5e783b8bc6" + "value": "" }, { "name": "strict-transport-security", @@ -93,21 +93,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 388, + "headersSize": 413, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:06:59.871Z", - "time": 202, + "startedDateTime": "2026-08-20T15:16:05.442Z", + "time": 75, "timings": { "blocked": -1, "connect": -1, @@ -115,11 +115,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 202 + "wait": 75 } }, { - "_id": "ad91a46b67f814df834d83a7f8131008", + "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", "_order": 0, "cache": {}, "request": { @@ -136,7 +136,7 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "accept-api-version", @@ -155,18 +155,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1880, + "headersSize": 1891, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" }, "response": { - "bodySize": 273, + "bodySize": 2728, "content": { "mimeType": "application/json", - "size": 273, - "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"5\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T16:24:38.791731Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":true,\"loadedVersion\":\"5\",\"useInPlaceholders\":true}" + "size": 2728, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" }, "cookies": [], "headers": [ @@ -176,235 +176,11 @@ }, { "name": "date", - "value": "Thu, 18 Jun 2026 18:07:00 GMT" - }, - { - "name": "content-length", - "value": "273" - }, - { - "name": "x-forgerock-transactionid", - "value": "f099d0df-ad43-43bc-9be4-3fe8408fa72f" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" - } - ], - "headersSize": 300, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-18T18:07:00.298Z", - "time": 311, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 311 - } - }, - { - "_id": "de017a59d6965d89d9fbcdb39793985d", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 50, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "50" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1925, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"bXktZnItdGVzdC1zZWNyZXQtdmFsdWU=\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "create" - } - ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" - }, - "response": { - "bodySize": 93, - "content": { - "mimeType": "application/json", - "size": 93, - "text": "{\"createDate\":\"2026-06-18T18:07:02.407747Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"6\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Thu, 18 Jun 2026 18:07:03 GMT" - }, - { - "name": "content-length", - "value": "93" - }, - { - "name": "x-forgerock-transactionid", - "value": "ed861653-07ea-40f4-b227-691bfbe2e1a8" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" - } - ], - "headersSize": 299, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-18T18:07:00.925Z", - "time": 2538, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 2538 - } - }, - { - "_id": "0b347f3163c26e50f02a2c38a0f934f8", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1877, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-test-secret" - }, - "response": { - "bodySize": 250, - "content": { - "mimeType": "application/json", - "size": 250, - "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:53.77035Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":true,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Thu, 18 Jun 2026 18:07:03 GMT" - }, - { - "name": "content-length", - "value": "250" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "71af2d40-374e-492b-a01c-51312e243907" + "value": "" }, { "name": "strict-transport-security", @@ -416,138 +192,25 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" - } - ], - "headersSize": 300, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-18T18:07:03.469Z", - "time": 223, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 223 - } - }, - { - "_id": "ab1e41089a12f86190cfce126358596d", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 46, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "46" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1922, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"bXktdGVzdC1zZWNyZXQtdmFsdWU=\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "create" - } - ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" - }, - "response": { - "bodySize": 93, - "content": { - "mimeType": "application/json", - "size": 93, - "text": "{\"createDate\":\"2026-06-18T18:07:05.112565Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Thu, 18 Jun 2026 18:07:05 GMT" - }, - { - "name": "content-length", - "value": "93" - }, - { - "name": "x-forgerock-transactionid", - "value": "7af7c8ac-b0a2-4b98-ab7f-c1804774e6ce" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" + "value": "" }, { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "name": "transfer-encoding", + "value": "chunked" } ], - "headersSize": 299, + "headersSize": 332, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:07:03.944Z", - "time": 2027, + "startedDateTime": "2026-08-20T15:16:05.597Z", + "time": 523, "timings": { "blocked": -1, "connect": -1, @@ -555,7 +218,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 2027 + "wait": 523 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har index ea1944dd5..47885dd4e 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har @@ -12,7 +12,7 @@ "_order": 0, "cache": {}, "request": { - "bodySize": 1328, + "bodySize": 1349, "cookies": [], "headers": [ { @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "accept-api-version", @@ -37,7 +37,7 @@ }, { "name": "content-length", - "value": "1328" + "value": "1349" }, { "name": "accept-encoding", @@ -48,29 +48,29 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 453, + "headersSize": 440, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/x-www-form-urlencoded", "params": [], - "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*" + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" }, "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/oauth2/access_token" + "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" }, "response": { - "bodySize": 1780, + "bodySize": 1850, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 1780, - "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + "size": 1850, + "text": "{\"access_token\":\"\",\"scope\":\"fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" }, "cookies": [], "headers": [ { "name": "content-security-policy", - "value": "frame-ancestors 'self'" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com" }, { "name": "content-security-policy-report-only", @@ -94,15 +94,15 @@ }, { "name": "content-length", - "value": "1780" + "value": "1850" }, { "name": "date", - "value": "Thu, 18 Jun 2026 18:06:59 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "strict-transport-security", @@ -114,21 +114,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 556, + "headersSize": 951, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:06:59.493Z", - "time": 226, + "startedDateTime": "2026-08-20T15:16:05.220Z", + "time": 125, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 226 + "wait": 125 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har index c2e050f0f..7b44abcb1 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "authorization", @@ -44,7 +44,7 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1938, + "headersSize": 1968, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [ @@ -53,20 +53,20 @@ "value": "*" } ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" }, "response": { - "bodySize": 1401, + "bodySize": 1394, "content": { "mimeType": "application/json;charset=utf-8", - "size": 1401, - "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 18 Jun 2026 18:06:59 GMT" + "value": "" }, { "name": "vary", @@ -94,7 +94,7 @@ }, { "name": "etag", - "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + "value": "" }, { "name": "expires", @@ -114,11 +114,11 @@ }, { "name": "content-length", - "value": "1401" + "value": "1394" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "strict-transport-security", @@ -130,11 +130,11 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], "headersSize": 658, @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:06:59.767Z", - "time": 273, + "startedDateTime": "2026-08-20T15:16:05.413Z", + "time": 157, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 273 + "wait": 157 } }, { @@ -173,11 +173,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "authorization", @@ -192,7 +192,7 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1938, + "headersSize": 1968, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [ @@ -201,20 +201,20 @@ "value": "*" } ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" }, "response": { - "bodySize": 1401, + "bodySize": 1394, "content": { "mimeType": "application/json;charset=utf-8", - "size": 1401, - "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 18 Jun 2026 18:07:00 GMT" + "value": "" }, { "name": "vary", @@ -242,7 +242,7 @@ }, { "name": "etag", - "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + "value": "" }, { "name": "expires", @@ -262,11 +262,11 @@ }, { "name": "content-length", - "value": "1401" + "value": "1394" }, { "name": "x-forgerock-transactionid", - "value": "frodo-02e4dfe9-c45d-4239-9c8f-885483d80dd8" + "value": "" }, { "name": "strict-transport-security", @@ -278,21 +278,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 658, + "headersSize": 683, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-18T18:07:00.080Z", - "time": 210, + "startedDateTime": "2026-08-20T15:16:05.523Z", + "time": 67, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 210 + "wait": 67 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/am_1076162899/recording.har similarity index 68% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/am_1076162899/recording.har index fb363ab12..4f7926bbc 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/am_1076162899/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_e_D/am", + "_recordingName": "config-manager/push/secrets/0_n_E_D/am", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "accept-api-version", @@ -44,24 +44,24 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 398, + "headersSize": 385, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/*" + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" }, "response": { - "bodySize": 614, + "bodySize": 636, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 614, - "text": "{\"_id\":\"*\",\"_rev\":\"959929574\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"311468432e97f1f\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" + "size": 636, + "text": "{\"_id\":\"*\",\"_rev\":\"-660094397\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":true,\"cdkDeployment\":false}" }, "cookies": [], "headers": [ { "name": "content-security-policy", - "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" }, { "name": "content-security-policy-report-only", @@ -89,7 +89,7 @@ }, { "name": "etag", - "value": "\"959929574\"" + "value": "" }, { "name": "expires", @@ -109,15 +109,15 @@ }, { "name": "content-length", - "value": "614" + "value": "636" }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "strict-transport-security", @@ -129,21 +129,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 804, + "headersSize": 1175, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:59:48.114Z", - "time": 152, + "startedDateTime": "2026-08-20T15:09:47.372Z", + "time": 124, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 152 + "wait": 124 } }, { @@ -172,11 +172,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "accept-api-version", @@ -195,18 +195,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1926, + "headersSize": 1956, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/json/serverinfo/version" + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" }, "response": { - "bodySize": 273, + "bodySize": 276, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 273, - "text": "{\"_id\":\"version\",\"_rev\":\"1245987628\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 96952edaffd9295f1b26b1145ff158e577b2ecb0 (2026-June-02 12:57)\",\"revision\":\"96952edaffd9295f1b26b1145ff158e577b2ecb0\",\"date\":\"2026-June-02 12:57\"}" + "size": 276, + "text": "{\"_id\":\"version\",\"_rev\":\"682709768\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 1e6c015f8efa612ddc1fca2905bac0a4425e6ea0 (2026-August-14 17:23)\",\"revision\":\"1e6c015f8efa612ddc1fca2905bac0a4425e6ea0\",\"date\":\"2026-August-14 17:23\"}" }, "cookies": [], "headers": [ @@ -216,7 +216,7 @@ }, { "name": "content-security-policy", - "value": "frame-ancestors 'self', default-src 'none';frame-ancestors 'none';sandbox" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" }, { "name": "content-security-policy-report-only", @@ -244,7 +244,7 @@ }, { "name": "etag", - "value": "\"1245987628\"" + "value": "" }, { "name": "expires", @@ -260,15 +260,15 @@ }, { "name": "content-length", - "value": "273" + "value": "276" }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "strict-transport-security", @@ -280,21 +280,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 805, + "headersSize": 1174, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:59:48.447Z", - "time": 120, + "startedDateTime": "2026-08-20T15:09:47.648Z", + "time": 90, "timings": { "blocked": -1, "connect": -1, @@ -302,7 +302,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 120 + "wait": 90 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/environment_1072573434/recording.har new file mode 100644 index 000000000..e25db221b --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/environment_1072573434/recording.har @@ -0,0 +1,775 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_E_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1991, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1991, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1991" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:47.743Z", + "time": 74, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 74 + } + }, + { + "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1891, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" + }, + "response": { + "bodySize": 2728, + "content": { + "mimeType": "application/json", + "size": 2728, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"2\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:00:00.009975Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"1\",\"description\":\"Test Secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:06.765897Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 307, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:47.898Z", + "time": 156, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 156 + } + }, + { + "_id": "4c5f206b65ff2addf68b8313b737086c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1931, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"dGVzdDE=\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-08-20T15:09:48.061Z", + "time": 731, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 731 + } + }, + { + "_id": "d51aa306af762f230ff7bf9ace00453c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 57, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "57" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1954, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"this is a fr-config manager test secret\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 266, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:48.799Z", + "time": 687, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 687 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1910, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 273, + "content": { + "mimeType": "application/json", + "size": 273, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"2\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:00:00.009975Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "273" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:49.493Z", + "time": 205, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 205 + } + }, + { + "_id": "e8a68276a5b54b19c96173733cfc679b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 26, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "26" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1955, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"dGVzdDE=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T15:09:50.226711Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:49.703Z", + "time": 1041, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1041 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1910, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 273, + "content": { + "mimeType": "application/json", + "size": 273, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "273" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:50.750Z", + "time": 305, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 305 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/oauth2_393036114/recording.har similarity index 67% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/oauth2_393036114/recording.har index 5fc277e5c..58f9087f5 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_e_D/oauth2", + "_recordingName": "config-manager/push/secrets/0_n_E_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -12,7 +12,7 @@ "_order": 0, "cache": {}, "request": { - "bodySize": 1328, + "bodySize": 1349, "cookies": [], "headers": [ { @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "accept-api-version", @@ -37,7 +37,7 @@ }, { "name": "content-length", - "value": "1328" + "value": "1349" }, { "name": "accept-encoding", @@ -48,29 +48,29 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 453, + "headersSize": 440, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/x-www-form-urlencoded", "params": [], - "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*" + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" }, "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/am/oauth2/access_token" + "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" }, "response": { - "bodySize": 1780, + "bodySize": 1850, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 1780, - "text": "{\"access_token\":\"\",\"scope\":\"fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:am:* fr:idc:esv:* fr:idc:content-security-policy:* fr:iga:* fr:idc:certificate:* fr:idm:* fr:idc:analytics:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + "size": 1850, + "text": "{\"access_token\":\"\",\"scope\":\"fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" }, "cookies": [], "headers": [ { "name": "content-security-policy", - "value": "frame-ancestors 'self'" + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com" }, { "name": "content-security-policy-report-only", @@ -94,15 +94,15 @@ }, { "name": "content-length", - "value": "1780" + "value": "1850" }, { "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "strict-transport-security", @@ -114,21 +114,21 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + "value": "" } ], - "headersSize": 581, + "headersSize": 951, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:59:48.279Z", - "time": 162, + "startedDateTime": "2026-08-20T15:09:47.510Z", + "time": 133, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 162 + "wait": 133 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/openidm_3290118515/recording.har new file mode 100644 index 000000000..bc2644b24 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_D_3715918565/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_E_D/openidm", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1968, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" + }, + "response": { + "bodySize": 1394, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1394" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:47.709Z", + "time": 170, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 170 + } + }, + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1968, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" + }, + "response": { + "bodySize": 1394, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1394" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:09:47.823Z", + "time": 67, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 67 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/am_1076162899/recording.har new file mode 100644 index 000000000..6780df5e4 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/am_1076162899/recording.har @@ -0,0 +1,312 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_E_n_E_D/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 385, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 636, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 636, + "text": "{\"_id\":\"*\",\"_rev\":\"-660094397\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":true,\"cdkDeployment\":false}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "636" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 1200, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:08.206Z", + "time": 124, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 124 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1956, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 276, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 276, + "text": "{\"_id\":\"version\",\"_rev\":\"682709768\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 1e6c015f8efa612ddc1fca2905bac0a4425e6ea0 (2026-August-14 17:23)\",\"revision\":\"1e6c015f8efa612ddc1fca2905bac0a4425e6ea0\",\"date\":\"2026-August-14 17:23\"}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "276" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 1199, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:08.475Z", + "time": 89, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 89 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/environment_1072573434/recording.har new file mode 100644 index 000000000..08eb77cdb --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/environment_1072573434/recording.har @@ -0,0 +1,775 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_E_n_E_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1991, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1991, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1991" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 413, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:08.570Z", + "time": 77, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 77 + } + }, + { + "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1891, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" + }, + "response": { + "bodySize": 2728, + "content": { + "mimeType": "application/json", + "size": 2728, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 332, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:08.729Z", + "time": 163, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 163 + } + }, + { + "_id": "9bb42eddc544520dd848457b94259c4c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 125, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "125" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1928, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-08-20T15:14:08.897Z", + "time": 355, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 355 + } + }, + { + "_id": "a1772d75b8630d5c2564ba3189aff812", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 38, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "38" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1951, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"This is a frodo test\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 291, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:09.261Z", + "time": 679, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 679 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:09.946Z", + "time": 178, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 178 + } + }, + { + "_id": "78ebc7d0f95d9efdc890a6a44515383d", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 42, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "42" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T15:10:17.145888Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 324, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:10.131Z", + "time": 677, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 677 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 325, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:10.814Z", + "time": 177, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 177 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/oauth2_393036114/recording.har new file mode 100644 index 000000000..31a8cede6 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_E_n_E_D/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 1349, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "1349" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 440, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1850, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1850, + "text": "{\"access_token\":\"\",\"scope\":\"fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1850" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 976, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:14:08.344Z", + "time": 125, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 125 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/openidm_3290118515/recording.har similarity index 59% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/openidm_3290118515/recording.har index 168f93c70..d7941d2a3 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_E_n_E_D_602310692/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_e_D/openidm", + "_recordingName": "config-manager/push/secrets/0_n_E_n_E_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "authorization", @@ -44,7 +44,7 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1938, + "headersSize": 1968, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [ @@ -53,20 +53,20 @@ "value": "*" } ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" }, "response": { - "bodySize": 1401, + "bodySize": 1394, "content": { "mimeType": "application/json;charset=utf-8", - "size": 1401, - "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" }, "cookies": [], "headers": [ { "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" + "value": "" }, { "name": "vary", @@ -94,7 +94,7 @@ }, { "name": "etag", - "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + "value": "" }, { "name": "expires", @@ -114,11 +114,11 @@ }, { "name": "content-length", - "value": "1401" + "value": "1394" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "strict-transport-security", @@ -130,11 +130,11 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + "value": "" } ], "headersSize": 683, @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:59:48.481Z", - "time": 181, + "startedDateTime": "2026-08-20T15:14:08.534Z", + "time": 163, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 181 + "wait": 163 } }, { @@ -173,11 +173,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" + "value": "" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "authorization", @@ -192,7 +192,7 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1938, + "headersSize": 1968, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [ @@ -201,20 +201,20 @@ "value": "*" } ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/openidm/managed/svcacct/10d76629-78da-4265-868b-9a0cb68ebdb4?_fields=%2A" + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" }, "response": { - "bodySize": 1401, + "bodySize": 1394, "content": { "mimeType": "application/json;charset=utf-8", - "size": 1401, - "text": "{\"_id\":\"10d76629-78da-4265-868b-9a0cb68ebdb4\",\"_rev\":\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1777919406717\",\"description\":\"dsevy@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:autoaccess:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:iga:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"hshlr1hlp8bXdLNDrh3rESiHNsMS68c4XtbZX9i_Seg\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"owg6VJta_1o9VqyQk4Xs2kA_BDcyWEN1WMERqaJIFCbtecz_IMBp2G5m76dawbB9QvUsFvMqfJ2OGbaCcfC2o5lkxEu4nxdKLKYZ4-JTGsbPN6j-f9yr0LCjFMPd1BRxKQ98euSu5UZ0_gy9QN-eS4zB5zJsb8E7Y7FXsxG6vgd8dCqCSPjJeSmZhnQEeqJeysGlA5jMzQUP9Lvgm2aZp5wz7DXzF9lvsqRjm49H9wlERjy4KDmjlp5Rr3lz8ZXGgsaIdp18hUrPFKJP5qxkICfnbxdyK858A5puUypj1OAqrOtAnwjk5lMPOYzBWjWV72RPnOY3-6KAHo8uFXK3EH8AN8ErHxhpo-soV0e7-Z7gEnmt0rliY3j_-2AHA0Q5G1k52cGQ-dARGzgAQacpdnQv_pT0k83DGZPrpR6PqBRkyiJBD_PTvySZohxFgjpJfJmkYec7Pg40xri_LN1ozkLRBdQwL2zaQFYtq_VZC20a8Y7NpqpoLcvFIB9W2NS03qTokvId7gdSgdcVmpOo4n7OZZCouD6cyWyJ6Nj9uaxz-mw4Mdzhpd8cclSV_gXeWMBBoW3dZ7zzkEFMWHBT2x9S8JAZor_aaGJ2MXOoNoHRg-q9shNhQ3h7U14MXfL7I9R4ixClZMOpxILa0VT0Vzm-h685xkXwa28WLSw21QU\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" }, "cookies": [], "headers": [ { "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" + "value": "" }, { "name": "vary", @@ -242,7 +242,7 @@ }, { "name": "etag", - "value": "\"4b025e5d-c082-45f8-a3e9-0ac1db308dff-21339\"" + "value": "" }, { "name": "expires", @@ -262,11 +262,11 @@ }, { "name": "content-length", - "value": "1401" + "value": "1394" }, { "name": "x-forgerock-transactionid", - "value": "frodo-ef33b93b-89a5-415a-a75c-ed07a2e9a208" + "value": "" }, { "name": "strict-transport-security", @@ -278,11 +278,11 @@ }, { "name": "via", - "value": "1.1 google" + "value": "" }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + "value": "" } ], "headersSize": 683, @@ -291,8 +291,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-06-10T15:59:48.685Z", - "time": 100, + "startedDateTime": "2026-08-20T15:14:08.653Z", + "time": 69, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 100 + "wait": 69 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har deleted file mode 100644 index 2847df73e..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_e_D_978558405/environment_1072573434/recording.har +++ /dev/null @@ -1,345 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secrets/0_n_e_D/environment", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "ccc7ec61c2094114d7917814bb19b83b", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1877, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/scopes/service-accounts" - }, - "response": { - "bodySize": 1910, - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 1910, - "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"},{\"scope\":\"fr:iga:*\",\"description\":\"All Identity Governance APIs\"}]" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "name": "content-length", - "value": "1910" - }, - { - "name": "etag", - "value": "W/\"776-b2xCO2Gdrqb/5HdcH8WdC8M9zoM\"" - }, - { - "name": "date", - "value": "Wed, 10 Jun 2026 15:59:48 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "d07e1c02-918d-457f-86a9-3826340d8f52" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" - } - ], - "headersSize": 388, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-10T15:59:48.573Z", - "time": 103, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 103 - } - }, - { - "_id": "ad91a46b67f814df834d83a7f8131008", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1880, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret" - }, - "response": { - "bodySize": 274, - "content": { - "mimeType": "application/json", - "size": 274, - "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-06-10T15:28:50.576152Z\",\"lastChangedBy\":\"Frodo-SA-1777919406717\",\"loaded\":false,\"loadedVersion\":\"2\",\"useInPlaceholders\":true}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Wed, 10 Jun 2026 15:59:49 GMT" - }, - { - "name": "content-length", - "value": "274" - }, - { - "name": "x-forgerock-transactionid", - "value": "2420a527-237d-4293-98c4-01ebfd8ee69e" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 325, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-10T15:59:48.793Z", - "time": 253, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 253 - } - }, - { - "_id": "92ca3fa364e51f0e112701bfa76a26ec", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 38, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-43" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "38" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1925, - "httpVersion": "HTTP/1.1", - "method": "POST", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"valueBase64\":\"bXktdGVzdC12YWx1ZQ==\"}" - }, - "queryString": [ - { - "name": "_action", - "value": "create" - } - ], - "url": "https://openam-trivir-fairfax.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" - }, - "response": { - "bodySize": 93, - "content": { - "mimeType": "application/json", - "size": 93, - "text": "{\"createDate\":\"2026-06-10T15:59:50.596941Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Wed, 10 Jun 2026 15:59:51 GMT" - }, - { - "name": "content-length", - "value": "93" - }, - { - "name": "x-forgerock-transactionid", - "value": "c02aa0cc-71d4-45cb-a806-f16ef3ab23c9" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - } - ], - "headersSize": 324, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-06-10T15:59:49.282Z", - "time": 2099, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 2099 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har new file mode 100644 index 000000000..d0ef32de6 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har @@ -0,0 +1,312 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 385, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 636, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 636, + "text": "{\"_id\":\"*\",\"_rev\":\"-660094397\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"6ac6499e9da2071\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":true,\"cdkDeployment\":false}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "636" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 1175, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:26.506Z", + "time": 261, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 261 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1956, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 276, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 276, + "text": "{\"_id\":\"version\",\"_rev\":\"682709768\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 1e6c015f8efa612ddc1fca2905bac0a4425e6ea0 (2026-August-14 17:23)\",\"revision\":\"1e6c015f8efa612ddc1fca2905bac0a4425e6ea0\",\"date\":\"2026-August-14 17:23\"}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com, default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "276" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 1174, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:26.928Z", + "time": 88, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 88 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har new file mode 100644 index 000000000..fb9a2f40e --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har @@ -0,0 +1,775 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1991, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1991, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1991" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:27.022Z", + "time": 73, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 73 + } + }, + { + "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1891, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" + }, + "response": { + "bodySize": 2728, + "content": { + "mimeType": "application/json", + "size": 2728, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 307, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:27.175Z", + "time": 156, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 156 + } + }, + { + "_id": "9bb42eddc544520dd848457b94259c4c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 125, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "125" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1928, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-08-20T15:15:27.339Z", + "time": 757, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 757 + } + }, + { + "_id": "a1772d75b8630d5c2564ba3189aff812", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 38, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "38" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1951, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"This is a frodo test\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 266, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:28.103Z", + "time": 553, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 553 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:28.661Z", + "time": 174, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 174 + } + }, + { + "_id": "78ebc7d0f95d9efdc890a6a44515383d", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 42, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "42" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T15:10:17.145888Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:28.840Z", + "time": 792, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 792 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:29.637Z", + "time": 201, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 201 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har new file mode 100644 index 000000000..98a1a913a --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 1349, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "1349" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 440, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "assertion=&client_id=service-account&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1850, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1850, + "text": "{\"access_token\":\"\",\"scope\":\"fr:am:* fr:idc:esv:* fr:idc:analytics:* fr:idc:telemetry:* fr:idc:custom-domain:* fr:idc:release:* fr:idc:sso-cookie:* fr:idc:content-security-policy:* fr:idc:certificate:* fr:idm:* fr:idc:dataset:* fr:idc:cookie-domain:* fr:idc:promotion:*\",\"token_type\":\"Bearer\",\"expires_in\":899}" + }, + "cookies": [], + "headers": [ + { + "name": "content-security-policy", + "value": "connect-src 'self' https://*.googletagmanager.com https://*.google-analytics.com https://cdn.forgerock.com; form-action 'self' https://*.pingidentity.com; frame-ancestors 'self' https://*.pingidentity.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googletagmanager.com https://*.google-analytics.com; script-src-elem 'self' 'unsafe-inline' https://*.googletagmanager.com https://*.google-analytics.com" + }, + { + "name": "content-security-policy-report-only", + "value": "frame-ancestors 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1850" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 951, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:26.779Z", + "time": 140, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 140 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har new file mode 100644 index 000000000..0815bd499 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/openidm", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1968, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" + }, + "response": { + "bodySize": 1394, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1394" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:26.992Z", + "time": 178, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 178 + } + }, + { + "_id": "9cb8561357870863838a9948da32d1e8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1968, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_fields", + "value": "*" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/openidm/managed/svcacct/a4438bd2-3e7f-4924-b422-46d5cb049b21?_fields=%2A" + }, + "response": { + "bodySize": 1394, + "content": { + "mimeType": "application/json;charset=utf-8", + "size": 1394, + "text": "{\"_id\":\"a4438bd2-3e7f-4924-b422-46d5cb049b21\",\"_rev\":\"fe92e226-481b-4208-a6ef-5b8378e8d937-41244\",\"accountStatus\":\"active\",\"name\":\"Frodo-SA-1784660925315\",\"description\":\"phales@trivir.com's Frodo Service Account\",\"scopes\":[\"fr:am:*\",\"fr:idc:analytics:*\",\"fr:idc:certificate:*\",\"fr:idc:content-security-policy:*\",\"fr:idc:cookie-domain:*\",\"fr:idc:custom-domain:*\",\"fr:idc:dataset:*\",\"fr:idc:esv:*\",\"fr:idm:*\",\"fr:idc:promotion:*\",\"fr:idc:release:*\",\"fr:idc:sso-cookie:*\",\"fr:idc:telemetry:*\"],\"jwks\":\"{\\\"keys\\\":[{\\\"kty\\\":\\\"RSA\\\",\\\"kid\\\":\\\"8GP2_8kFC4G22JXxDAz4RX0ZfNB7LHTgMcrCcpRLKtU\\\",\\\"alg\\\":\\\"RS256\\\",\\\"e\\\":\\\"AQAB\\\",\\\"n\\\":\\\"5mHyhvq1p_5h8BF8AYjZdx8L812q0ddyNlM9Cfy-upkOAO1Bx5SI8X8WkoHX2r90INRBCIPh5sqOm_vUZIE4fdzX54Bsa35V3z9S8JcHAte0uyM3SkFP3bYwzV3iRDgg5-naUqRPSoaORsj-SxeT3o8n04kuvg9MwwIOWuOx0fKtEQdJXTzeiAhRbUEQUYGlDdAC6Gz-L16OMgLWUhX-eiLHGjarm6wq-brnrfdDZqJ2XfAeZ04QIFpEl7kOh1Mhj7MZMx-LZy7itR7xG1nd_nE-ZP6-O_3mgWxWxISP-3AXjD1MOPl5z7c_T89TYIAM8oHSf-1fkNkWgwA8G0frdh2EKeOFexKGjPQO3aNPeYWBaGJ1NQHij-RmtXstHX3-qiy32NT2sheMgNcSfmlPQqAEhU3Md45JUFyBacgbJEYq6ygQUSvyNGAeQVEMJ8VBWa6jvuqKXGYVIaNvn-7CWYDhJBKHJXtqfhXndGCBf_6VMqpWfEBB2awzpep0knZTKggZp-ppDJAjrm_RntFEgEIOoc69CekpU9oNV9cFFL6nl3oPNq1Qw1tkjtpJSbLwQAYNyo1qy1Z95xWt4TcOe7EvlSRMOUuREUYc0IUOJfvXeJbSe0BcWUXG_7Vi8W3jyjTZIt9KrATt6jx09EbtzzgVfk2IJhWmPd0H3Y-Rohc\\\"}]}\",\"maxCachingTime\":\"15\",\"maxIdleTime\":\"15\",\"maxSessionTime\":\"15\",\"quotaLimit\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "vary", + "value": "Origin" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "content-type", + "value": "application/json;charset=utf-8" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-frame-options", + "value": "DENY" + }, + { + "name": "content-length", + "value": "1394" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 658, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T15:15:27.101Z", + "time": 67, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 67 + } + } + ], + "pages": [], + "version": "1.2" + } +} From e54c82de8b7a9ac9ba40aa0c9291f629221222e8 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 20 Aug 2026 11:51:13 -0600 Subject: [PATCH 10/10] fixup! resolve PR comments. update tests --- esvs/secrets/esv-fr-test-secret.json | 7 - esvs/secrets/esv-test-secret.json | 7 - .../config-manager-push-secrets.ts | 15 +- src/configManagerOps/FrConfigSecretOps.ts | 24 +- .../config-manager-push-secrets.test.js.snap | 39 +- .../config-manager-push.test.js.snap | 2 +- ...nfig-manager-push-secrets.e2e.test.js.snap | 31 +- ...ig-manager-push-variables.e2e.test.js.snap | 8 +- .../config-manager-push-secrets.e2e.test.js | 15 +- .../config-manager-push-variables.e2e.test.js | 4 +- test/e2e/env/configManager1.env | 10 + .../fr-test-2.env => env/configManager2.env} | 0 .../cloud/esvs/secrets/esv-prune-secrets.json | 7 + .../cloud/esvs/secrets/esv-test-secret-2.json | 7 - .../cloud/esvs/secrets/esv-test-secret-3.json | 7 - .../cloud/esvs/secrets/esv-test-secret.json | 35 +- .../fr-config-manager/cloud/fr-test.env | 1 - .../environment_1072573434/recording.har | 228 -- .../am_1076162899/recording.har | 14 +- .../environment_1072573434/recording.har | 2422 +++++++++++++++++ .../oauth2_393036114/recording.har | 8 +- .../openidm_3290118515/recording.har | 16 +- .../am_1076162899/recording.har | 18 +- .../environment_1072573434/recording.har | 635 ++++- .../oauth2_393036114/recording.har | 8 +- .../openidm_3290118515/recording.har | 10 +- 26 files changed, 3157 insertions(+), 421 deletions(-) delete mode 100644 esvs/secrets/esv-fr-test-secret.json delete mode 100644 esvs/secrets/esv-test-secret.json create mode 100644 test/e2e/env/configManager1.env rename test/e2e/{exports/fr-config-manager/cloud/fr-test-2.env => env/configManager2.env} (100%) create mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-prune-secrets.json delete mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json delete mode 100644 test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json delete mode 100644 test/e2e/exports/fr-config-manager/cloud/fr-test.env delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_env_n_env_D_209339160 => 0_env-file_D_431639163}/am_1076162899/recording.har (97%) create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/environment_1072573434/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_env_n_env_D_209339160 => 0_env-file_D_431639163}/oauth2_393036114/recording.har (96%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_D_2157136892 => 0_env-file_D_431639163}/openidm_3290118515/recording.har (97%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_D_2157136892 => 0_p_n_E_D_2492187502}/am_1076162899/recording.har (96%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_env_n_env_D_209339160 => 0_p_n_E_D_2492187502}/environment_1072573434/recording.har (50%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_D_2157136892 => 0_p_n_E_D_2492187502}/oauth2_393036114/recording.har (96%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/{0_n_env_n_env_D_209339160 => 0_p_n_E_D_2492187502}/openidm_3290118515/recording.har (97%) diff --git a/esvs/secrets/esv-fr-test-secret.json b/esvs/secrets/esv-fr-test-secret.json deleted file mode 100644 index 89628e2bd..000000000 --- a/esvs/secrets/esv-fr-test-secret.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-fr-test-secret", - "description": "this is a fr-config manager test secret", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_FR_TEST_SECRET}" -} diff --git a/esvs/secrets/esv-test-secret.json b/esvs/secrets/esv-test-secret.json deleted file mode 100644 index 765387057..000000000 --- a/esvs/secrets/esv-test-secret.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-test-secret", - "description": "This is a frodo test", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_TEST_SECRET}" -} diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts index 208d632bc..0c68cfdb0 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secrets.ts @@ -6,13 +6,9 @@ import { getTokens } from '../../../ops/AuthenticateOps'; import { verboseMessage } from '../../../utils/Console'; import { FrodoCommand } from '../../FrodoCommand'; -const { CLOUD_DEPLOYMENT_TYPE_KEY, FORGEOPS_DEPLOYMENT_TYPE_KEY } = - frodo.utils.constants; +const { CLOUD_DEPLOYMENT_TYPE_KEY } = frodo.utils.constants; -const deploymentTypes = [ - CLOUD_DEPLOYMENT_TYPE_KEY, - FORGEOPS_DEPLOYMENT_TYPE_KEY, -]; +const deploymentTypes = [CLOUD_DEPLOYMENT_TYPE_KEY]; export default function setup() { const program = new FrodoCommand( @@ -30,7 +26,12 @@ export default function setup() { ) ) - .addOption(new Option('-p, --prune', 'Prune old configureation')) + .addOption( + new Option( + '-p, --prune', + 'Prunes old versions that are still enabled before importing the new version(s)' + ) + ) .action(async (host, realm, user, password, options, command) => { command.handleDefaultArgsAndOpts( diff --git a/src/configManagerOps/FrConfigSecretOps.ts b/src/configManagerOps/FrConfigSecretOps.ts index 524a03a30..486852f6f 100644 --- a/src/configManagerOps/FrConfigSecretOps.ts +++ b/src/configManagerOps/FrConfigSecretOps.ts @@ -101,8 +101,9 @@ export async function configManagerExportSecrets( } /** - * Import secrets to to cloud from fr-config-manager format + * Import secrets to cloud from fr-config-manager format * @param {string} secretName optional name of secret to import + * @param {boolean} prune if true, prunes old enabled versions before importing new versions. * @returns {Promise} true if successful, false otherwise */ export async function configManagerImportSecrets( @@ -145,8 +146,8 @@ export async function configManagerImportSecrets( ); indicatorId = createProgressIndicator( - 'indeterminate', - 0, + 'determinate', + fileNames.length, 'Importing secrets' ); @@ -167,8 +168,8 @@ export async function configManagerImportSecrets( if (secret.valueBase64 !== undefined) { secret.activeValue = secret.valueBase64; } else { - const versions = [...secret.versions].sort((a, b) => - Number(a.version) - Number(b.version) ? 1 : -1 + const versions = secret.versions.sort((a, b) => + Number(a.version) > Number(b.version) ? 1 : -1 ); for (let i = 0; i < versions.length - 1; ++i) { if (i === 0 && !remoteSecrets[secret._id]) { @@ -187,21 +188,12 @@ export async function configManagerImportSecrets( } secrets[secret._id] = secret; } catch (e) { - if ( - e instanceof Error && - e.message.includes('No value found for placeholder') - ) { - continue; - } printError(e, `Error importing secret from "${fileName}"`); } + updateProgressIndicator(indicatorId, `Exported secret ${secrets._id}`); } - const includeActiveValues = true; - const imported = await importSecrets( - { secret: secrets }, - includeActiveValues - ); + const imported = await importSecrets({ secret: secrets }, true); let unchanged = 0; let updated = 0; diff --git a/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap index f4288fd1f..c872d654a 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push-secrets.test.js.snap @@ -6,24 +6,29 @@ exports[`CLI help interface for 'config-manager push secrets' should be expected [Experimental] Import secrets. Arguments: - host AM base URL, e.g.: https://cdk.iam.example.com/am. To use - a connection profile, just specify a unique substring or - alias. - realm Realm. Specify realm as '/' for the root realm or 'realm' - or '/parent/child' otherwise. (default: "alpha" for - Identity Cloud tenants, "/" otherwise.) - username Username to login with. Must be an admin user with - appropriate rights to manage authentication - journeys/trees. - password Password. + host AM base URL, e.g.: https://cdk.iam.example.com/am. To use a + connection profile, just specify a unique substring or + alias. + realm Realm. Specify realm as '/' for the root realm or 'realm' + or '/parent/child' otherwise. (default: "alpha" for + Identity Cloud tenants, "/" otherwise.) + username Username to login with. Must be an admin user with + appropriate rights to manage authentication journeys/trees. + If given without a password, and it matches the username + already stored in the connection profile for the target + host, frodo uses that profile's stored password instead of + requiring it on the command line. + password Password. + +Deployment: Cloud-only Options: - -e, --env Value to set for the secret. Will override .env files and - environment variables. - -n, --name Secret name; import only the specified secret - -h, --help Help - -hh, --help-more Help with all options. - -hhh, --help-all Help with all options, environment variables, and usage - examples. + -n, --name Secret name; import only the specified secret + -p, --prune Prunes old versions that are still enabled before importing + the new version(s) + -h, --help Help + -hh, --help-more Help with all options. + -hhh, --help-all Help with all options, environment variables, and usage + examples. " `; diff --git a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap index 1de2040a5..fdc16ba8d 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push.test.js.snap @@ -34,7 +34,6 @@ Commands: password-policy [Experimental] Import password-policy objects. remote-servers [Experimental] Import RCS config. schedules [Experimental] Import schedules. - secrets [Experimental] Import secrets. service-objects [Experimental] Import service objects. terms-and-conditions [Experimental] Import terms and conditions. themes [Experimental] Import themes. @@ -45,6 +44,7 @@ Commands: iga-workflows [Experimental] Import iga-workflows. restart [Experimental] Restart the environment. secret-mappings [Experimental] Import secret mappings. + secrets [Experimental] Import secrets. variables [Experimental] Import variables. " `; diff --git a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap index a3027a873..aab2f8353 100644 --- a/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-push-secrets.e2e.test.js.snap @@ -1,12 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 1`] = `""`; +exports[`frodo config-manager push secrets "frodo config-manager push secrets --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 1`] = `""`; -exports[`frodo config-manager push secrets "frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 2`] = ` +exports[`frodo config-manager push secrets "frodo config-manager push secrets --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import the secrets into cloud" 2`] = ` "Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. -✔ Successfully read 4 secrets. -• 0 secrets imported. -No changes, (0 secrets(s) already up to date) +✔ Successfully read 3 secrets. +Error importing secret from "esv-prune-secrets.json" +No value found for placeholder "ESV_PRUNE_SECRETS" +Secret esv-fr-test-secret created version 4 +Secret esv-test-secret created version 8 +• 2 secrets imported. +Changes made to secrets: 2 updated, 0 unchanged " `; @@ -15,9 +19,10 @@ exports[`frodo config-manager push secrets "frodo config-manager push secrets -n exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 2`] = ` "Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. ✔ Successfully read 1 secrets. -Secret esv-test-secret unchanged version 2 -• 1 secrets imported. -No changes, (1 secrets(s) already up to date) +Error importing secret from "esv-test-secret.json" +No value found for placeholder "ESV_TEST_SECRET_1" +• 0 secrets imported. +No changes, (0 secrets(s) already up to date) " `; @@ -32,12 +37,14 @@ Changes made to secrets: 1 updated, 0 unchanged " `; -exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 1`] = `""`; +exports[`frodo config-manager push secrets "frodo config-manager push secrets -p -n esv-prune-secrets -E ESV_PRUNE_SECRETS=test3 -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 1`] = `""`; -exports[`frodo config-manager push secrets "frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 2`] = ` +exports[`frodo config-manager push secrets "frodo config-manager push secrets -p -n esv-prune-secrets -E ESV_PRUNE_SECRETS=test3 -D test/e2e/exports/fr-config-manager/cloud": should import multiple specified secrets into cloud 2`] = ` "Experimental feature in use: 'frodo config-manager push secrets'. This feature may change without notice. ✔ Successfully read 1 secrets. -• 0 secrets imported. -No changes, (0 secrets(s) already up to date) +• Pruned 3 versions from secret esv-prune-secrets. +Secret esv-prune-secrets unchanged version 4 +• 1 secrets imported. +No changes, (1 secrets(s) already up to date) " `; diff --git a/test/e2e/__snapshots__/config-manager-push-variables.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-variables.e2e.test.js.snap index 4ae6c901e..8e0682338 100644 --- a/test/e2e/__snapshots__/config-manager-push-variables.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-push-variables.e2e.test.js.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Should import variables into cloud "frodo config-manager push variables --env-file test/e2e/exports/fr-config-manager/cloud/fr-test-2.env --env-file test/e2e/exports/fr-config-manager/cloud/fr-test.env -D test/e2e/exports/fr-config-manager/cloud ": should import two variables into cloud" 1`] = `""`; +exports[`Should import variables into cloud "frodo config-manager push variables --env-file test/e2e/env/configManager2.env --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import two variables into cloud" 1`] = `""`; -exports[`Should import variables into cloud "frodo config-manager push variables --env-file test/e2e/exports/fr-config-manager/cloud/fr-test-2.env --env-file test/e2e/exports/fr-config-manager/cloud/fr-test.env -D test/e2e/exports/fr-config-manager/cloud ": should import two variables into cloud" 2`] = ` +exports[`Should import variables into cloud "frodo config-manager push variables --env-file test/e2e/env/configManager2.env --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import two variables into cloud" 2`] = ` "Experimental feature in use: 'frodo config-manager push variables'. This feature may change without notice. ✔ Successfully read 2 variables. Variable esv-fr-var-test-2 updated @@ -12,9 +12,9 @@ Changes made to variables: 2 updated, 0 unchanged " `; -exports[`Should import variables into cloud "frodo config-manager push variables --name esv-fr-var-test --env ESV_FR_VAR_TEST="test2" --env-file test/e2e/exports/fr-config-manager/cloud/fr-test.env -D test/e2e/exports/fr-config-manager/cloud ": should import the specified variable into cloud" 1`] = `""`; +exports[`Should import variables into cloud "frodo config-manager push variables --name esv-fr-var-test --env ESV_FR_VAR_TEST="test2" --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import the specified variable into cloud" 1`] = `""`; -exports[`Should import variables into cloud "frodo config-manager push variables --name esv-fr-var-test --env ESV_FR_VAR_TEST="test2" --env-file test/e2e/exports/fr-config-manager/cloud/fr-test.env -D test/e2e/exports/fr-config-manager/cloud ": should import the specified variable into cloud" 2`] = ` +exports[`Should import variables into cloud "frodo config-manager push variables --name esv-fr-var-test --env ESV_FR_VAR_TEST="test2" --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud ": should import the specified variable into cloud" 2`] = ` "Experimental feature in use: 'frodo config-manager push variables'. This feature may change without notice. ✔ Successfully read 1 variables. Variable esv-fr-var-test updated diff --git a/test/e2e/config-manager-push-secrets.e2e.test.js b/test/e2e/config-manager-push-secrets.e2e.test.js index c9f3a4fd4..d0419138b 100644 --- a/test/e2e/config-manager-push-secrets.e2e.test.js +++ b/test/e2e/config-manager-push-secrets.e2e.test.js @@ -48,10 +48,12 @@ /* // cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" -D test/e2e/exports/fr-config-manager/cloud FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-fr-test-secret --env ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret --env ESV_TEST_SECRET="new test version" -D test/e2e/exports/fr-config-manager/cloud -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -p --name esv-test-secret --env-file test/e2e/env/configManager1.env -D test/e2e/exports/fr-config-manager/cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secrets -p -n esv-prune-secrets -E ESV_PRUNE_SECRETS=test3 -D test/e2e/exports/fr-config-manager/cloud + */ import { getEnv, testSuccess } from './utils/TestUtils'; @@ -63,10 +65,11 @@ process.env['FRODO_MOCK'] = '1'; const cloudEnv = getEnv(c); const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; +const envDir = "test/e2e/env/configManager1.env" describe('frodo config-manager push secrets', () => { - test(`"frodo config-manager push secrets -D ${allDirectory} ": should import the secrets into cloud"`, async () => { - const CMD = `frodo config-manager push secrets -D ${allDirectory} `; + test(`"frodo config-manager push secrets --env-file ${envDir} -D ${allDirectory} ": should import the secrets into cloud"`, async () => { + const CMD = `frodo config-manager push secrets --env-file ${envDir} -D ${allDirectory} `; await testSuccess(CMD, cloudEnv) }); test(`"frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="test1" ${allDirectory}": should import the specified secret into cloud`, async () => { @@ -77,8 +80,8 @@ describe('frodo config-manager push secrets', () => { const CMD = `frodo config-manager push secrets -n esv-fr-test-secret -E ESV_FR_TEST_SECRET="new fr version" -n esv-test-secret -E ESV_TEST_SECRET="new test version" -D ${allDirectory}`; await testSuccess(CMD, cloudEnv) }); - test(`"frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D ${allDirectory}": should import multiple specified secrets into cloud`, async () => { - const CMD = `frodo config-manager push secrets -n esv-test-secret -E ESV_TEST_SECRET="tes6" -n esv-test-secret-2 -E ESV_TEST_SECRET="test7" -D ${allDirectory}`; + test(`"frodo config-manager push secrets -p -n esv-prune-secrets -E ESV_PRUNE_SECRETS=test3 -D ${allDirectory}": should import multiple specified secrets into cloud`, async () => { + const CMD = `frodo config-manager push secrets -p -n esv-prune-secrets -E ESV_PRUNE_SECRETS=test3 -D ${allDirectory}`; await testSuccess(CMD, cloudEnv) }); }); \ No newline at end of file diff --git a/test/e2e/config-manager-push-variables.e2e.test.js b/test/e2e/config-manager-push-variables.e2e.test.js index d6893409c..a721f69cf 100644 --- a/test/e2e/config-manager-push-variables.e2e.test.js +++ b/test/e2e/config-manager-push-variables.e2e.test.js @@ -62,8 +62,8 @@ process.env['FRODO_MOCK'] = '1'; const cloudEnv = getEnv(c); const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; -const envDir1 = "test/e2e/exports/fr-config-manager/cloud/fr-test.env" -const envDir2 = "test/e2e/exports/fr-config-manager/cloud/fr-test-2.env" +const envDir1 = "test/e2e/env/configManager1.env" +const envDir2 = "test/e2e/env/configManager2.env" describe('Should import variables into cloud', () => { test(`"frodo config-manager push variables -E ESV_FR_VAR_TEST_2="20" -E ESV_FR_VAR_TEST='this is a test' -D ${allDirectory} ": should import two variables into cloud"`, async () => { diff --git a/test/e2e/env/configManager1.env b/test/e2e/env/configManager1.env new file mode 100644 index 000000000..91903e060 --- /dev/null +++ b/test/e2e/env/configManager1.env @@ -0,0 +1,10 @@ +ESV_FR_VAR_TEST=test3 + +ESV_FR_TEST_SECRET=fr-secret1 + +ESV_TEST_SECRET_1=esv-secret1 +ESV_TEST_SECRET_2=esv-secret2 +ESV_TEST_SECRET_3=esv-secret3 +ESV_TEST_SECRET_4=esv-secret4 +ESV_TEST_SECRET_5=esv-secret5 +ESV_TEST_SECRET_6=esv-secret6 \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/fr-test-2.env b/test/e2e/env/configManager2.env similarity index 100% rename from test/e2e/exports/fr-config-manager/cloud/fr-test-2.env rename to test/e2e/env/configManager2.env diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-prune-secrets.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-prune-secrets.json new file mode 100644 index 000000000..c3329dd60 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-prune-secrets.json @@ -0,0 +1,7 @@ +{ + "_id": "esv-prune-secrets", + "description": "test config-manager push -p flag", + "encoding": "generic", + "useInPlaceholders": true, + "valueBase64": "${ESV_PRUNE_SECRETS}" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json deleted file mode 100644 index 6e16dc5a6..000000000 --- a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-2.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-test-secret-2", - "description": "Test Secret Two", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_TEST_SECRET_2}" -} \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json deleted file mode 100644 index 782d841c9..000000000 --- a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret-3.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "_id": "esv-test-secret-3", - "description": "Test Secret Three", - "encoding": "generic", - "useInPlaceholders": true, - "valueBase64": "${ESV_TEST_SECRET_3}" -} \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json index 765387057..06e42fd9c 100644 --- a/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json +++ b/test/e2e/exports/fr-config-manager/cloud/esvs/secrets/esv-test-secret.json @@ -3,5 +3,36 @@ "description": "This is a frodo test", "encoding": "generic", "useInPlaceholders": true, - "valueBase64": "${ESV_TEST_SECRET}" -} + "versions": [ + { + "valueBase64": "${ESV_TEST_SECRET_1}", + "status": "DESTROYED", + "version": "1" + }, + { + "valueBase64": "${ESV_TEST_SECRET_2}", + "status": "DISABLED", + "version": "2" + }, + { + "valueBase64": "${ESV_TEST_SECRET_3}", + "status": "ENABLED", + "version": "3" + }, + { + "valueBase64": "${ESV_TEST_SECRET_4}", + "status": "DESTROYED", + "version": "4" + }, + { + "valueBase64": "${ESV_TEST_SECRET_5}", + "status": "DISABLED", + "version": "5" + }, + { + "valueBase64": "${ESV_TEST_SECRET_6}", + "status": "ENABLED", + "version": "6" + } + ] +} \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/cloud/fr-test.env b/test/e2e/exports/fr-config-manager/cloud/fr-test.env deleted file mode 100644 index 6995b3bbf..000000000 --- a/test/e2e/exports/fr-config-manager/cloud/fr-test.env +++ /dev/null @@ -1 +0,0 @@ -ESV_FR_VAR_TEST=test3 \ No newline at end of file diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har deleted file mode 100644 index 5bcb996cf..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/environment_1072573434/recording.har +++ /dev/null @@ -1,228 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secrets/0_D/environment", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "ccc7ec61c2094114d7917814bb19b83b", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1907, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" - }, - "response": { - "bodySize": 1991, - "content": { - "mimeType": "application/json; charset=utf-8", - "size": 1991, - "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" - }, - "cookies": [], - "headers": [ - { - "name": "x-frame-options", - "value": "SAMEORIGIN" - }, - { - "name": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "name": "content-length", - "value": "1991" - }, - { - "name": "etag", - "value": "" - }, - { - "name": "date", - "value": "" - }, - { - "name": "x-forgerock-transactionid", - "value": "" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "" - }, - { - "name": "alt-svc", - "value": "" - } - ], - "headersSize": 413, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-08-20T15:16:05.442Z", - "time": 75, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 75 - } - }, - { - "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [ - { - "name": "accept", - "value": "application/json, text/plain, */*" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "user-agent", - "value": "" - }, - { - "name": "accept-api-version", - "value": "protocol=1.0,resource=1.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 1891, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" - }, - "response": { - "bodySize": 2728, - "content": { - "mimeType": "application/json", - "size": 2728, - "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" - }, - "cookies": [], - "headers": [ - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "" - }, - { - "name": "x-forgerock-transactionid", - "value": "" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000; includeSubDomains; preload;" - }, - { - "name": "x-robots-tag", - "value": "none" - }, - { - "name": "via", - "value": "" - }, - { - "name": "alt-svc", - "value": "" - }, - { - "name": "transfer-encoding", - "value": "chunked" - } - ], - "headersSize": 332, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-08-20T15:16:05.597Z", - "time": 523, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 523 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/am_1076162899/recording.har similarity index 97% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/am_1076162899/recording.har index d0ef32de6..6b682a74e 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/am_1076162899/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/am", + "_recordingName": "config-manager/push/secrets/0_env-file_D/am", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -142,8 +142,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:26.506Z", - "time": 261, + "startedDateTime": "2026-08-20T17:28:05.402Z", + "time": 302, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 261 + "wait": 302 } }, { @@ -293,8 +293,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:26.928Z", - "time": 88, + "startedDateTime": "2026-08-20T17:28:05.897Z", + "time": 104, "timings": { "blocked": -1, "connect": -1, @@ -302,7 +302,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 88 + "wait": 104 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/environment_1072573434/recording.har new file mode 100644 index 000000000..27fbab202 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/environment_1072573434/recording.har @@ -0,0 +1,2422 @@ +{ + "log": { + "_recordingName": "config-manager/push/secrets/0_env-file_D/environment", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccc7ec61c2094114d7917814bb19b83b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/scopes/service-accounts" + }, + "response": { + "bodySize": 1991, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 1991, + "text": "[{\"scope\":\"fr:am:*\",\"description\":\"All Access Management APIs\"},{\"scope\":\"fr:idc:analytics:*\",\"description\":\"All Analytics APIs\"},{\"scope\":\"fr:idc:certificate:*\",\"description\":\"All TLS certificate APIs\",\"childScopes\":[{\"scope\":\"fr:idc:certificate:read\",\"description\":\"Read TLS certificates\"}]},{\"scope\":\"fr:idc:content-security-policy:*\",\"description\":\"All content security policy APIs\",\"childScopes\":[{\"scope\":\"fr:idc:content-security-policy:read\",\"description\":\"Read content security policy\"}]},{\"scope\":\"fr:idc:cookie-domain:*\",\"description\":\"All cookie domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:cookie-domain:read\",\"description\":\"Read cookie domains\"}]},{\"scope\":\"fr:idc:custom-domain:*\",\"description\":\"All custom domain APIs\",\"childScopes\":[{\"scope\":\"fr:idc:custom-domain:read\",\"description\":\"Read custom domains\"}]},{\"scope\":\"fr:idc:dataset:*\",\"description\":\"All dataset deletion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:dataset:read\",\"description\":\"Read dataset deletions\"}]},{\"scope\":\"fr:idc:esv:*\",\"description\":\"All ESV APIs\",\"childScopes\":[{\"scope\":\"fr:idc:esv:read\",\"description\":\"Read ESVs, excluding values of secrets\"},{\"scope\":\"fr:idc:esv:update\",\"description\":\"Create, modify, and delete ESVs\"},{\"scope\":\"fr:idc:esv:restart\",\"description\":\"Restart workloads that consume ESVs\"}]},{\"scope\":\"fr:idc:promotion:*\",\"description\":\"All configuration promotion APIs\",\"childScopes\":[{\"scope\":\"fr:idc:promotion:read\",\"description\":\"Read configuration promotion\"}]},{\"scope\":\"fr:idc:release:*\",\"description\":\"All product release APIs\",\"childScopes\":[{\"scope\":\"fr:idc:release:read\",\"description\":\"Read product release\"}]},{\"scope\":\"fr:idc:sso-cookie:*\",\"description\":\"All SSO cookie APIs\",\"childScopes\":[{\"scope\":\"fr:idc:sso-cookie:read\",\"description\":\"Read SSO cookie\"}]},{\"scope\":\"fr:idc:telemetry:*\",\"description\":\"All telemetry APIs\",\"childScopes\":[{\"scope\":\"fr:idc:telemetry:read\",\"description\":\"Read telemetry\"}]},{\"scope\":\"fr:idm:*\",\"description\":\"All Identity Management APIs\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "content-length", + "value": "1991" + }, + { + "name": "etag", + "value": "" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 388, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:06.007Z", + "time": 74, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 74 + } + }, + { + "_id": "a24d647eb74a9e69a6b0bd9ed23dc6ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1891, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" + }, + "response": { + "bodySize": 2722, + "content": { + "mimeType": "application/json", + "size": 2722, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T16:22:23.14401Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 307, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:06.198Z", + "time": 235, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 235 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:06.439Z", + "time": 202, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 202 + } + }, + { + "_id": "49a0f5b4671408ecd1e5a55621e19c4d", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDE=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:07.294518Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:06.648Z", + "time": 1218, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1218 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"3\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:07.440612Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:07.872Z", + "time": 179, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 179 + } + }, + { + "_id": "33c0471dcd268f2bcf8b5dcef76683c2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDI=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:08.773384Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:08.056Z", + "time": 1288, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1288 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 2, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"4\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:08.943223Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:09.349Z", + "time": 175, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 175 + } + }, + { + "_id": "a25303d0c9a2457bf001522e40350083", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDM=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:10.373066Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"5\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:09.529Z", + "time": 1396, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1396 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 3, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"5\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:10.527787Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:10.930Z", + "time": 238, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 238 + } + }, + { + "_id": "7bd13f9cf35831d3c8093e9569fb3498", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDQ=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:11.980417Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"6\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:11.173Z", + "time": 1529, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1529 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 4, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"6\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:12.117676Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:12.706Z", + "time": 181, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 181 + } + }, + { + "_id": "df1c4de302b784cf39229c9de58b3315", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDU=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:13.510119Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"7\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:12.892Z", + "time": 1114, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1114 + } + }, + { + "_id": "af241374fae54bde1a9e65fc0f2c2cf5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 136, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "136" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1931, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZnItc2VjcmV0MQ==\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-08-20T17:28:14.013Z", + "time": 432, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 432 + } + }, + { + "_id": "d51aa306af762f230ff7bf9ace00453c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 57, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "57" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1954, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"this is a fr-config manager test secret\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 266, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:14.451Z", + "time": 587, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 587 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1910, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 267, + "content": { + "mimeType": "application/json", + "size": 267, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T16:22:23.14401Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "267" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:15.043Z", + "time": 247, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 247 + } + }, + { + "_id": "8a928f56a0965a97a7949566960e538c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1955, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZnItc2VjcmV0MQ==\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:15.862138Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:15.296Z", + "time": 1063, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1063 + } + }, + { + "_id": "ad91a46b67f814df834d83a7f8131008", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1910, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-fr-test-secret" + }, + "response": { + "bodySize": 272, + "content": { + "mimeType": "application/json", + "size": 272, + "text": "{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"4\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:16.00491Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "272" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:16.365Z", + "time": 176, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 176 + } + }, + { + "_id": "75ce21cbfa0555e6ac164762cd6b00ad", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 117, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "117" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1928, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDY=\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 76, + "content": { + "mimeType": "application/json", + "size": 76, + "text": "{\"code\":400,\"message\":\"Failed to create secret, the secret already exists\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "76" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 400, + "statusText": "Bad Request" + }, + "startedDateTime": "2026-08-20T17:28:16.547Z", + "time": 352, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 352 + } + }, + { + "_id": "a1772d75b8630d5c2564ba3189aff812", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 38, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "38" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1951, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"description\":\"This is a frodo test\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "setDescription" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret?_action=setDescription" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 266, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:16.905Z", + "time": 603, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 603 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 5, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 250, + "content": { + "mimeType": "application/json", + "size": 250, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"7\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:13.6641Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "250" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:17.515Z", + "time": 173, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 173 + } + }, + { + "_id": "b94e1a3cb2eabf6e4eb10a0d334a4088", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 34, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "34" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1952, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"valueBase64\":\"ZXN2LXNlY3JldDY=\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + }, + "response": { + "bodySize": 93, + "content": { + "mimeType": "application/json", + "size": 93, + "text": "{\"createDate\":\"2026-08-20T17:28:18.303913Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"8\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "93" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:17.693Z", + "time": 1105, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1105 + } + }, + { + "_id": "0b347f3163c26e50f02a2c38a0f934f8", + "_order": 6, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1907, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + }, + "response": { + "bodySize": 252, + "content": { + "mimeType": "application/json", + "size": 252, + "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"8\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:18.442007Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "252" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:28:18.803Z", + "time": 165, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 165 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/oauth2_393036114/recording.har similarity index 96% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/oauth2_393036114/recording.har index 98a1a913a..f7be61793 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/oauth2", + "_recordingName": "config-manager/push/secrets/0_env-file_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:26.779Z", - "time": 140, + "startedDateTime": "2026-08-20T17:28:05.718Z", + "time": 172, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 140 + "wait": 172 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/openidm_3290118515/recording.har similarity index 97% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/openidm_3290118515/recording.har index 7b44abcb1..fee2bbbe7 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_env-file_D_431639163/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_D/openidm", + "_recordingName": "config-manager/push/secrets/0_env-file_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:16:05.413Z", - "time": 157, + "startedDateTime": "2026-08-20T17:28:05.961Z", + "time": 230, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 157 + "wait": 230 } }, { @@ -285,14 +285,14 @@ "value": "" } ], - "headersSize": 683, + "headersSize": 658, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:16:05.523Z", - "time": 67, + "startedDateTime": "2026-08-20T17:28:06.088Z", + "time": 104, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 67 + "wait": 104 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/am_1076162899/recording.har similarity index 96% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/am_1076162899/recording.har index 128d3a0af..a53d9027a 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/am_1076162899/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_D/am", + "_recordingName": "config-manager/push/secrets/0_p_n_E_D/am", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -136,14 +136,14 @@ "value": "" } ], - "headersSize": 1200, + "headersSize": 1175, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:16:05.083Z", - "time": 124, + "startedDateTime": "2026-08-20T17:45:02.511Z", + "time": 125, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 124 + "wait": 125 } }, { @@ -287,14 +287,14 @@ "value": "" } ], - "headersSize": 1199, + "headersSize": 1174, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:16:05.352Z", - "time": 84, + "startedDateTime": "2026-08-20T17:45:02.805Z", + "time": 81, "timings": { "blocked": -1, "connect": -1, @@ -302,7 +302,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 84 + "wait": 81 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/environment_1072573434/recording.har similarity index 50% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/environment_1072573434/recording.har index fb9a2f40e..5fcb09a64 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/environment_1072573434/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/environment", + "_recordingName": "config-manager/push/secrets/0_p_n_E_D/environment", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -106,8 +106,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:27.022Z", - "time": 73, + "startedDateTime": "2026-08-20T17:45:02.892Z", + "time": 70, "timings": { "blocked": -1, "connect": -1, @@ -115,7 +115,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 73 + "wait": 70 } }, { @@ -162,11 +162,11 @@ "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets" }, "response": { - "bodySize": 2728, + "bodySize": 2993, "content": { "mimeType": "application/json", - "size": 2728, - "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"3\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:09:50.375415Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":10,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" + "size": 2993, + "text": "{\"pagedResultsCookie\":null,\"remainingPagedResults\":-1,\"result\":[{\"_id\":\"esv-fr-test-secret\",\"activeVersion\":\"4\",\"description\":\"this is a fr-config manager test secret\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:28:16.00491Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-1\",\"activeVersion\":\"1\",\"description\":\"description1\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:28.148471Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-12\",\"activeVersion\":\"6\",\"description\":\"description12\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:41.78403Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"6\",\"useInPlaceholders\":true},{\"_id\":\"esv-frodo-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"description2\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T16:40:29.652917Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-p1recognize-apikey\",\"activeVersion\":\"1\",\"description\":\"PingOne Recognize Api Key\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-10T20:50:10.916694Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-prune-secrets\",\"activeVersion\":\"4\",\"description\":\"test config-manager push -p flag\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:44:04.578441Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret\",\"activeVersion\":\"14\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:37:45.688914Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-2\",\"activeVersion\":\"1\",\"description\":\"Test Secret Two\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:51:36.657796Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-3\",\"activeVersion\":\"1\",\"description\":\"Test Secret Three\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-07-08T17:52:02.874153Z\",\"lastChangedBy\":\"volker.scheuber@pingidentity.com\",\"loaded\":true,\"loadedVersion\":\"1\",\"useInPlaceholders\":true},{\"_id\":\"esv-test-secret-4\",\"activeVersion\":\"4\",\"description\":\"Testing secret using versioning\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-13T15:51:32.560483Z\",\"lastChangedBy\":\"Frodo-SA-1783448612033\",\"loaded\":true,\"loadedVersion\":\"4\",\"useInPlaceholders\":false},{\"_id\":\"esv-test-secret-5\",\"activeVersion\":\"3\",\"description\":\"Test secret in placeholders\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-12T20:23:09.16232Z\",\"lastChangedBy\":\"phales@trivir.com\",\"loaded\":true,\"loadedVersion\":\"3\",\"useInPlaceholders\":true}],\"resultCount\":11,\"totalPagedResults\":-1,\"totalPagedResultsPolicy\":\"NONE\"}" }, "cookies": [], "headers": [ @@ -209,8 +209,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:27.175Z", - "time": 156, + "startedDateTime": "2026-08-20T17:45:03.043Z", + "time": 145, "timings": { "blocked": -1, "connect": -1, @@ -218,15 +218,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 156 + "wait": 145 } }, { - "_id": "9bb42eddc544520dd848457b94259c4c", + "_id": "98889c35643baa613c749d9e7ff17e3f", "_order": 0, "cache": {}, "request": { - "bodySize": 125, + "bodySize": 0, "cookies": [], "headers": [ { @@ -249,9 +249,211 @@ "name": "authorization", "value": "Bearer " }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1909, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets" + }, + "response": { + "bodySize": 265, + "content": { + "mimeType": "application/json", + "size": 265, + "text": "{\"_id\":\"esv-prune-secrets\",\"activeVersion\":\"4\",\"description\":\"test config-manager push -p flag\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:44:04.578441Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "265" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:45:03.194Z", + "time": 256, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 256 + } + }, + { + "_id": "10bfa66b5fe05e3c524c4176243a9cf8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1918, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets/versions" + }, + "response": { + "bodySize": 373, + "content": { + "mimeType": "application/json", + "size": 373, + "text": "[{\"createDate\":\"2026-08-20T17:44:04.428452Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"},{\"createDate\":\"2026-08-20T17:43:57.308045Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"3\"},{\"createDate\":\"2026-08-20T17:43:47.69513Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"},{\"createDate\":\"2026-08-20T17:41:09.062734Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"1\"}]" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, { "name": "content-length", - "value": "125" + "value": "373" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 300, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:45:03.456Z", + "time": 1586, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1586 + } + }, + { + "_id": "4e4fd1d5ed66a0bd35ee755cc02cde76", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " }, { "name": "accept-encoding", @@ -262,16 +464,329 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1928, + "headersSize": 1923, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets/versions/3" + }, + "response": { + "bodySize": 95, + "content": { + "mimeType": "application/json", + "size": 95, + "text": "{\"createDate\":\"2026-08-20T17:43:57.308045Z\",\"loaded\":false,\"status\":\"DESTROYED\",\"version\":\"3\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "95" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:45:05.048Z", + "time": 1035, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1035 + } + }, + { + "_id": "2f5eafa24688b055e119f734eb14c59e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1923, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets/versions/2" + }, + "response": { + "bodySize": 94, + "content": { + "mimeType": "application/json", + "size": 94, + "text": "{\"createDate\":\"2026-08-20T17:43:47.69513Z\",\"loaded\":false,\"status\":\"DESTROYED\",\"version\":\"2\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "94" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:45:06.089Z", + "time": 652, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 652 + } + }, + { + "_id": "f444471270348771a0414fb84ebe16b5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1923, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets/versions/1" + }, + "response": { + "bodySize": 95, + "content": { + "mimeType": "application/json", + "size": 95, + "text": "{\"createDate\":\"2026-08-20T17:41:09.062734Z\",\"loaded\":false,\"status\":\"DESTROYED\",\"version\":\"1\"}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "date", + "value": "" + }, + { + "name": "content-length", + "value": "95" + }, + { + "name": "x-forgerock-transactionid", + "value": "" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" + }, + { + "name": "via", + "value": "" + }, + { + "name": "alt-svc", + "value": "" + } + ], + "headersSize": 299, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-08-20T17:45:06.746Z", + "time": 795, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 795 + } + }, + { + "_id": "fd2ecb55aa60cbe0c1991c57993b7ed1", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 121, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=1.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "121" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 1930, "httpVersion": "HTTP/1.1", "method": "PUT", "postData": { "mimeType": "application/json", "params": [], - "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" + "text": "{\"valueBase64\":\"dGVzdDM=\",\"description\":\"test config-manager push -p flag\",\"encoding\":\"generic\",\"useInPlaceholders\":true}" }, "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets" }, "response": { "bodySize": 76, @@ -321,8 +836,8 @@ "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2026-08-20T15:15:27.339Z", - "time": 757, + "startedDateTime": "2026-08-20T17:45:07.547Z", + "time": 1958, "timings": { "blocked": -1, "connect": -1, @@ -330,15 +845,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 757 + "wait": 1958 } }, { - "_id": "a1772d75b8630d5c2564ba3189aff812", + "_id": "e44fd39a689ce6ff6a314dfe77a99140", "_order": 0, "cache": {}, "request": { - "bodySize": 38, + "bodySize": 50, "cookies": [], "headers": [ { @@ -363,7 +878,7 @@ }, { "name": "content-length", - "value": "38" + "value": "50" }, { "name": "accept-encoding", @@ -374,13 +889,13 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1951, + "headersSize": 1953, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\"description\":\"This is a frodo test\"}" + "text": "{\"description\":\"test config-manager push -p flag\"}" }, "queryString": [ { @@ -388,7 +903,7 @@ "value": "setDescription" } ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret?_action=setDescription" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets?_action=setDescription" }, "response": { "bodySize": 0, @@ -433,8 +948,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:28.103Z", - "time": 553, + "startedDateTime": "2026-08-20T17:45:09.511Z", + "time": 1127, "timings": { "blocked": -1, "connect": -1, @@ -442,12 +957,12 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 553 + "wait": 1127 } }, { - "_id": "0b347f3163c26e50f02a2c38a0f934f8", - "_order": 0, + "_id": "98889c35643baa613c749d9e7ff17e3f", + "_order": 1, "cache": {}, "request": { "bodySize": 0, @@ -482,18 +997,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1907, + "headersSize": 1909, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets" }, "response": { - "bodySize": 252, + "bodySize": 265, "content": { "mimeType": "application/json", - "size": 252, - "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + "size": 265, + "text": "{\"_id\":\"esv-prune-secrets\",\"activeVersion\":\"4\",\"description\":\"test config-manager push -p flag\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:45:07.185348Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" }, "cookies": [], "headers": [ @@ -507,7 +1022,7 @@ }, { "name": "content-length", - "value": "252" + "value": "265" }, { "name": "x-forgerock-transactionid", @@ -536,8 +1051,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:28.661Z", - "time": 174, + "startedDateTime": "2026-08-20T17:45:10.645Z", + "time": 281, "timings": { "blocked": -1, "connect": -1, @@ -545,15 +1060,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 174 + "wait": 281 } }, { - "_id": "78ebc7d0f95d9efdc890a6a44515383d", + "_id": "f8770e3f552bc881d3219c3fb8ae207a", "_order": 0, "cache": {}, "request": { - "bodySize": 42, + "bodySize": 26, "cookies": [], "headers": [ { @@ -578,7 +1093,7 @@ }, { "name": "content-length", - "value": "42" + "value": "26" }, { "name": "accept-encoding", @@ -589,13 +1104,13 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1952, + "headersSize": 1954, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\"valueBase64\":\"bmV3IHRlc3QgdmVyc2lvbg==\"}" + "text": "{\"valueBase64\":\"dGVzdDM=\"}" }, "queryString": [ { @@ -603,14 +1118,14 @@ "value": "create" } ], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret/versions?_action=create" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets/versions?_action=create" }, "response": { "bodySize": 93, "content": { "mimeType": "application/json", "size": 93, - "text": "{\"createDate\":\"2026-08-20T15:10:17.145888Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"2\"}" + "text": "{\"createDate\":\"2026-08-20T17:44:04.428452Z\",\"loaded\":false,\"status\":\"ENABLED\",\"version\":\"4\"}" }, "cookies": [], "headers": [ @@ -653,8 +1168,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:28.840Z", - "time": 792, + "startedDateTime": "2026-08-20T17:45:10.931Z", + "time": 381, "timings": { "blocked": -1, "connect": -1, @@ -662,12 +1177,12 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 792 + "wait": 381 } }, { - "_id": "0b347f3163c26e50f02a2c38a0f934f8", - "_order": 1, + "_id": "98889c35643baa613c749d9e7ff17e3f", + "_order": 2, "cache": {}, "request": { "bodySize": 0, @@ -702,18 +1217,18 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 1907, + "headersSize": 1909, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-test-secret" + "url": "https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-prune-secrets" }, "response": { - "bodySize": 252, + "bodySize": 265, "content": { "mimeType": "application/json", - "size": 252, - "text": "{\"_id\":\"esv-test-secret\",\"activeVersion\":\"2\",\"description\":\"This is a frodo test\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T15:10:17.285694Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"1\",\"useInPlaceholders\":true}" + "size": 265, + "text": "{\"_id\":\"esv-prune-secrets\",\"activeVersion\":\"4\",\"description\":\"test config-manager push -p flag\",\"encoding\":\"generic\",\"lastChangeDate\":\"2026-08-20T17:45:07.185348Z\",\"lastChangedBy\":\"Frodo-SA-1784660925315\",\"loaded\":false,\"loadedVersion\":\"\",\"useInPlaceholders\":true}" }, "cookies": [], "headers": [ @@ -727,7 +1242,7 @@ }, { "name": "content-length", - "value": "252" + "value": "265" }, { "name": "x-forgerock-transactionid", @@ -756,8 +1271,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:29.637Z", - "time": 201, + "startedDateTime": "2026-08-20T17:45:11.317Z", + "time": 181, "timings": { "blocked": -1, "connect": -1, @@ -765,7 +1280,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 201 + "wait": 181 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/oauth2_393036114/recording.har similarity index 96% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/oauth2_393036114/recording.har index 47885dd4e..529827b6a 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_D_2157136892/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_D/oauth2", + "_recordingName": "config-manager/push/secrets/0_p_n_E_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:16:05.220Z", - "time": 125, + "startedDateTime": "2026-08-20T17:45:02.652Z", + "time": 145, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 125 + "wait": 145 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/openidm_3290118515/recording.har similarity index 97% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/openidm_3290118515/recording.har index 0815bd499..7177bbacc 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_n_env_n_env_D_209339160/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secrets_3084510534/0_p_n_E_D_2492187502/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secrets/0_n_env_n_env_D/openidm", + "_recordingName": "config-manager/push/secrets/0_p_n_E_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:26.992Z", - "time": 178, + "startedDateTime": "2026-08-20T17:45:02.864Z", + "time": 159, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 178 + "wait": 159 } }, { @@ -291,7 +291,7 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-08-20T15:15:27.101Z", + "startedDateTime": "2026-08-20T17:45:02.968Z", "time": 67, "timings": { "blocked": -1,