From 8faa32df8578f63249e8be5adcca502a10b9179c Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Tue, 24 Mar 2026 13:47:45 -0600 Subject: [PATCH 1/4] feat: Add config-manager push secret-mappings command --- .../config-manager-pus-secret-mappings.ts | 67 ++ .../config-manager-push.ts | 4 +- .../FrConfigSecretMappingsOps.ts | 42 +- ...-manager-push-secret-mappings.test.js.snap | 68 +++ ...onfig-manager-push-secret-mappings.test.js | 10 + ...ager-push-secret-mappings.e2e.test.js.snap | 7 + ...g-manager-push-secret-mappings.e2e.test.js | 86 +++ ...ervices.oauth2.stateless.signing.HMAC.json | 13 + .../am_1076162899/recording.har | 576 ++++++++++++++++++ .../environment_1072573434/recording.har | 125 ++++ .../oauth2_393036114/recording.har | 146 +++++ .../openidm_3290118515/recording.har | 310 ++++++++++ .../am_1076162899/recording.har | 576 ++++++++++++++++++ .../environment_1072573434/recording.har | 125 ++++ .../oauth2_393036114/recording.har | 146 +++++ .../openidm_3290118515/recording.har | 310 ++++++++++ .../am_1076162899/recording.har | 576 ++++++++++++++++++ .../environment_1072573434/recording.har | 125 ++++ .../oauth2_393036114/recording.har | 146 +++++ .../openidm_3290118515/recording.har | 310 ++++++++++ 20 files changed, 3765 insertions(+), 3 deletions(-) create mode 100644 src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts create mode 100644 test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap create mode 100644 test/client_cli/en/config-manager-push-secret-mappings.test.js create mode 100644 test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap create mode 100644 test/e2e/config-manager-push-secret-mappings.e2e.test.js create mode 100644 test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har diff --git a/src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts b/src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts new file mode 100644 index 000000000..20ba52178 --- /dev/null +++ b/src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts @@ -0,0 +1,67 @@ +import { frodo } from '@rockcarver/frodo-lib'; +import { Option } from 'commander'; + +import { configManagerImportSecretMappings } from '../../../configManagerOps/FrConfigSecretMappingsOps'; +import { getTokens } from '../../../ops/AuthenticateOps'; +import { printMessage, verboseMessage } from '../../../utils/Console'; +import { FrodoCommand } from '../../FrodoCommand'; + +const { CLOUD_DEPLOYMENT_TYPE_KEY } = frodo.utils.constants; + +const deploymentTypes = [CLOUD_DEPLOYMENT_TYPE_KEY]; + +export default function setup() { + const program = new FrodoCommand( + 'frodo config-manager push secret-mappings', + [], + deploymentTypes + ); + + program + .description('Import secret mappings.') + .addOption( + new Option( + '-n, --name ', + 'Name of the secret mapping, It will only import secret mapping with the name. Works both with mapping._id or alias.' + ) + ) + .addOption( + new Option( + '-r, --realm ', + 'Specific realm to get secret mappings from (overrides environment)' + ) + ) + .action(async (host, realm, user, password, options, command) => { + command.handleDefaultArgsAndOpts( + host, + realm, + user, + password, + options, + command + ); + if (options.realm) { + realm = options.realm; + } + + if (await getTokens(false, true, deploymentTypes)) { + verboseMessage('importing config entity secret-mappings'); + const outcome = await configManagerImportSecretMappings( + options.name, + realm + ); + 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 cf423832d..9f034de47 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 @@ -4,6 +4,7 @@ import Audit from './config-manager-push-audit'; import Authentication from './config-manager-push-authentication'; import ConnectorDefinitions from './config-manager-push-connector-definitions'; import CookieDomains from './config-manager-push-cookie-domain'; +import SecretMappings from './config-manager-pus-secret-mappings'; import EmailProvider from './config-manager-push-email-provider'; import EmailTemplates from './config-manager-push-email-templates'; import Endpoints from './config-manager-push-endpoints'; @@ -23,7 +24,6 @@ export default function setup() { const program = new FrodoStubCommand('push').description( 'Import configuration optimized for CI/CD pipelines (format compatible with fr-config-manager).' ); - program.addCommand(Themes().name('themes')); program.addCommand(TermsAndConditions().name('terms-and-conditions')); program.addCommand(PasswordPolicy().name('password-policy')); @@ -43,6 +43,6 @@ export default function setup() { program.addCommand(UiConfig().name('ui-config')); program.addCommand(Authentication().name('authentication')); program.addCommand(ConnectorDefinitions().name('connector-definitions')); - + program.addCommand(SecretMappings().name('secret-mappings')); return program; } diff --git a/src/configManagerOps/FrConfigSecretMappingsOps.ts b/src/configManagerOps/FrConfigSecretMappingsOps.ts index 0aaf29f90..175a22b3d 100644 --- a/src/configManagerOps/FrConfigSecretMappingsOps.ts +++ b/src/configManagerOps/FrConfigSecretMappingsOps.ts @@ -1,10 +1,11 @@ import { frodo, state } from '@rockcarver/frodo-lib'; +import fs from 'fs'; import { printError } from '../utils/Console'; import { realmList } from '../utils/FrConfig'; const { saveJsonToFile, getFilePath } = frodo.utils; -const { readSecretStoreMappings } = frodo.secretStore; +const { readSecretStoreMappings, importSecretStores } = frodo.secretStore; export async function configManagerExportSecretMappings( name?, @@ -20,6 +21,8 @@ export async function configManagerExportSecretMappings( processSecretMappings(readData, `realms/${realm}/secret-mappings`, name); } else { for (const realm of await realmList()) { + // fr-config-manager doesn't support root secret-mappings + if (realm === '/') continue; state.setRealm(realm); const readData = await readSecretStoreMappings( 'ESV', @@ -65,3 +68,40 @@ async function aliasSearch(object, name) { return false; } } + +export async function configManagerImportSecretMappings( + name?: string, + realm?: string +): Promise { + try { + if (realm && realm !== '__default__realm__' && name) { + const filePath = getFilePath( + `realms/${realm}/secret-mappings/${name}.json` + ); + const readFile = fs.readFileSync(filePath, 'utf8'); + const importData = JSON.parse(readFile); + const mappingData = { secretstore: { [importData._id]: importData } }; + await importSecretStores(mappingData, false, importData._id); + } else { + for (const realmName of await realmList()) { + // fr-config-manager doesn't support root secret-mappingsgit + if (realmName === '/') continue; + const filePath = getFilePath(`realms/${realmName}/secret-mappings/`); + if (!fs.existsSync(filePath)) continue; + const readDir = fs.readdirSync(filePath, 'utf8'); + for (const fileName of readDir) { + const fullPath = `${filePath}/${fileName}`; + const readFile = fs.readFileSync(fullPath, 'utf8'); + const importData = JSON.parse(readFile); + const mappingData = { secretstore: { [importData._id]: importData } }; + + await importSecretStores(mappingData, false, importData._id); + } + } + } + return true; + } catch (error) { + printError(error, `Error importing secret mappings`); + return false; + } +} diff --git a/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap new file mode 100644 index 000000000..afeea8347 --- /dev/null +++ b/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap @@ -0,0 +1,68 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CLI help interface for 'config-manager push secret-mappings' should be expected english 1`] = ` +"Usage: frodo config-manager push secret-mappings [options] [host] [realm] [username] [password] + +Import secret mappings. + +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") + -n, --name Name of the secret mapping, It will only import secret mapping with the name. Works both with mapping._id or alias. + --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. + -r, --realm Specific realm to get secret mappings from (overrides environment) + --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/config-manager-push-secret-mappings.test.js b/test/client_cli/en/config-manager-push-secret-mappings.test.js new file mode 100644 index 000000000..95a97d37c --- /dev/null +++ b/test/client_cli/en/config-manager-push-secret-mappings.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 secret-mappings --help'; +const { stdout } = await exec(CMD); + +test("CLI help interface for 'config-manager push secret-mappings' should be expected english", async () => { + expect(stdout).toMatchSnapshot(); +}); diff --git a/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap new file mode 100644 index 000000000..8ec0e800b --- /dev/null +++ b/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -D test/e2e/exports/fr-config-manager/cloud -m cloud": should import the password policy into cloud" 1`] = `""`; + +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC test/e2e/exports/fr-config-manager/cloud -m cloud": should import a specific password policy by name into cloud" 1`] = `""`; + +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -r alpha test/e2e/exports/fr-config-manager/cloud -m cloud": should import a specific password policy by name into cloud" 1`] = `""`; diff --git a/test/e2e/config-manager-push-secret-mappings.e2e.test.js b/test/e2e/config-manager-push-secret-mappings.e2e.test.js new file mode 100644 index 000000000..325be8019 --- /dev/null +++ b/test/e2e/config-manager-push-secret-mappings.e2e.test.js @@ -0,0 +1,86 @@ +/** + * 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 secret-mappings -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 secret-mappings -r alpha -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 secret-mappings -n am.services.oauth2.stateless.signing.HMAC -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/cloud"; + +describe('frodo config-manager push secret-mappings', () => { + test(`"frodo config-manager push secret-mappings -D ${allDirectory} -m cloud": should import the password policy into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -D ${allDirectory} -m cloud`; + const { stdout } = await exec(CMD, cloudEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + + test(`"frodo config-manager push secret-mappings -r alpha ${allDirectory} -m cloud": should import a specific password policy by name into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -r alpha -D ${allDirectory} -m cloud`; + const { stdout } = await exec(CMD, cloudEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC ${allDirectory} -m cloud": should import a specific password policy by name into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC -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/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json new file mode 100644 index 000000000..0171234e7 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json @@ -0,0 +1,13 @@ +{ + "_id": "am.services.oauth2.stateless.signing.HMAC", + "_rev": "2072507862", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "esv-oauth2-signing-key." + ], + "secretId": "am.services.oauth2.stateless.signing.HMAC" +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har new file mode 100644 index 000000000..558406da1 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har @@ -0,0 +1,576 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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": 615, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 615, + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" + }, + "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": "\"1955877839\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "615" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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-24T19:39:05.094Z", + "time": 174, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 174 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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": 275, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 275, + "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" + }, + "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": "\"-220465726\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "275" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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-24T19:39:05.441Z", + "time": 82, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 82 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "name": "accept-api-version", + "value": "protocol=2.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": 2014, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 420, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 420, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "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": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.0,resource=1.0, 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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 775, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-24T19:39:05.674Z", + "time": 236, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 236 + } + }, + { + "_id": "171a4453a6c1eeeae59de1697dcd8310", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 227, + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "227" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2099, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" + }, + "response": { + "bodySize": 114, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 114, + "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" + }, + "cookies": [], + "headers": [ + { + "name": "cache-control", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000;includeSubDomains;preload" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 283, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 403, + "statusText": "Forbidden" + }, + "startedDateTime": "2026-03-24T19:39:05.916Z", + "time": 50, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 50 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har new file mode 100644 index 000000000..ee00c6d93 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har @@ -0,0 +1,125 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_D_m/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-30" + }, + { + "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": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "e37b711c-e3a3-4ced-a1e6-54a7da2d1ce4" + }, + { + "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-24T19:39:05.528Z", + "time": 68, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 68 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har new file mode 100644 index 000000000..d31cbc39e --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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": "Tue, 24 Mar 2026 19:39:05 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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-24T19:39:05.281Z", + "time": 154, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 154 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har new file mode 100644 index 000000000..4827397d6 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_D_m/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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": "Tue, 24 Mar 2026 19:39:05 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-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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-24T19:39:05.477Z", + "time": 169, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 169 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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": "Tue, 24 Mar 2026 19:39:05 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-6297e560-def0-4da7-a276-c46d646bf9f6" + }, + { + "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-24T19:39:05.602Z", + "time": 66, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 66 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har new file mode 100644 index 000000000..8163bfb81 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har @@ -0,0 +1,576 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_n_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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": 615, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 615, + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" + }, + "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": "\"1955877839\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "615" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:40:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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-24T19:40:27.339Z", + "time": 128, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 128 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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": 275, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 275, + "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" + }, + "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": "\"-220465726\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "275" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:40:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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-24T19:40:27.595Z", + "time": 74, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 74 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "name": "accept-api-version", + "value": "protocol=2.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": 2014, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 420, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 420, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "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": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.0,resource=1.0, 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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:40:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 800, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-24T19:40:27.823Z", + "time": 161, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 161 + } + }, + { + "_id": "171a4453a6c1eeeae59de1697dcd8310", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 227, + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "227" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2099, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" + }, + "response": { + "bodySize": 114, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 114, + "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" + }, + "cookies": [], + "headers": [ + { + "name": "cache-control", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000;includeSubDomains;preload" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:40:28 GMT" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 283, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 403, + "statusText": "Forbidden" + }, + "startedDateTime": "2026-03-24T19:40:27.989Z", + "time": 51, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 51 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har new file mode 100644 index 000000000..2bf52fec5 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har @@ -0,0 +1,125 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/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-30" + }, + { + "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": "Tue, 24 Mar 2026 19:40:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "dc84ff1e-e1d8-4527-87d3-0e3a916b6601" + }, + { + "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-24T19:40:27.675Z", + "time": 68, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 68 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har new file mode 100644 index 000000000..0c7e21e45 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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": "Tue, 24 Mar 2026 19:40:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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-24T19:40:27.480Z", + "time": 109, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 109 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har new file mode 100644 index 000000000..158e9ee54 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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": "Tue, 24 Mar 2026 19:40:27 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-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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-24T19:40:27.634Z", + "time": 157, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 157 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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": "Tue, 24 Mar 2026 19:40:27 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-b502e16e-e234-4710-9804-f4b7ccaede84" + }, + { + "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-24T19:40:27.751Z", + "time": 66, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 66 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har new file mode 100644 index 000000000..cbea9f8fe --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har @@ -0,0 +1,576 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_r_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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": 615, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 615, + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" + }, + "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": "\"1955877839\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "615" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:39 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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-24T19:39:39.539Z", + "time": 127, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 127 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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": 275, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 275, + "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" + }, + "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": "\"-220465726\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "275" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:39 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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-24T19:39:39.798Z", + "time": 76, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 76 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "name": "accept-api-version", + "value": "protocol=2.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": 2014, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 420, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 420, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "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": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.0,resource=1.0, 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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:40 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 800, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-24T19:39:40.029Z", + "time": 274, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 274 + } + }, + { + "_id": "171a4453a6c1eeeae59de1697dcd8310", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 227, + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "227" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2099, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" + }, + "response": { + "bodySize": 114, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 114, + "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" + }, + "cookies": [], + "headers": [ + { + "name": "cache-control", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000;includeSubDomains;preload" + }, + { + "name": "date", + "value": "Tue, 24 Mar 2026 19:39:40 GMT" + }, + { + "name": "via", + "value": "1.1 google" + }, + { + "name": "alt-svc", + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 283, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 403, + "statusText": "Forbidden" + }, + "startedDateTime": "2026-03-24T19:39:40.309Z", + "time": 54, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 54 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har new file mode 100644 index 000000000..b6328f414 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har @@ -0,0 +1,125 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/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-30" + }, + { + "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": "Tue, 24 Mar 2026 19:39:39 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "cf32edfd-6298-47e8-bbdc-7c5a2b1db8b8" + }, + { + "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-24T19:39:39.879Z", + "time": 69, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 69 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har new file mode 100644 index 000000000..77f59a234 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har @@ -0,0 +1,146 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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": "Tue, 24 Mar 2026 19:39:39 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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-24T19:39:39.679Z", + "time": 112, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 112 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har new file mode 100644 index 000000000..b38a4a159 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har @@ -0,0 +1,310 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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": "Tue, 24 Mar 2026 19:39:39 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-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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-24T19:39:39.837Z", + "time": 160, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 160 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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": "Tue, 24 Mar 2026 19:39:40 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-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + }, + { + "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-24T19:39:39.955Z", + "time": 66, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 66 + } + } + ], + "pages": [], + "version": "1.2" + } +} From 49030db8d8666eb565afc779300f064304ab4bb6 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 2 Apr 2026 11:53:47 -0600 Subject: [PATCH 2/4] Fix import secret mappings bug. Update tests. --- ...=> config-manager-push-secret-mappings.ts} | 17 +- .../config-manager-push.ts | 2 +- .../FrConfigSecretMappingsOps.ts | 78 +- test.json | 60 + ...-manager-push-secret-mappings.test.js.snap | 78 +- .../config-manager-push.test.js.snap | 3 + ...ager-push-secret-mappings.e2e.test.js.snap | 6 +- ...g-manager-push-secret-mappings.e2e.test.js | 18 +- .../am.services.iot.cert.verification.json | 13 + .../am.services.oauth2.oidc.signing.RSA.json | 13 + ...am.services.selfservice.token.signing.json | 13 + ...ion.nodes.persistentcookie.encryption.json | 13 + ...n.fidometadataservice.rootcertificate.json | 13 + ...rvices.oauth2.stateless.signing.ES512.json | 13 + ...ervices.oauth2.stateless.signing.HMAC.json | 13 - .../am_1076162899/recording.har | 1400 +++++++++++++++++ .../environment_1072573434/recording.har | 14 +- .../oauth2_393036114/recording.har | 16 +- .../openidm_3290118515/recording.har | 30 +- .../am_1076162899/recording.har | 576 ------- .../am_1076162899/recording.har | 344 +++- .../environment_1072573434/recording.har | 14 +- .../oauth2_393036114/recording.har | 16 +- .../openidm_3290118515/recording.har | 30 +- .../am_1076162899/recording.har | 212 +-- .../environment_1072573434/recording.har | 14 +- .../oauth2_393036114/recording.har | 16 +- .../openidm_3290118515/recording.har | 30 +- 28 files changed, 2064 insertions(+), 1001 deletions(-) rename src/cli/config-manager/config-manager-push/{config-manager-pus-secret-mappings.ts => config-manager-push-secret-mappings.ts} (81%) create mode 100644 test.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.iot.cert.verification.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.oauth2.oidc.signing.RSA.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.selfservice.token.signing.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.persistentcookie.encryption.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate.json create mode 100644 test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.services.oauth2.stateless.signing.ES512.json delete mode 100644 test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json create mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/am_1076162899/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_D_m_314327836 => 0_D_2157136892}/environment_1072573434/recording.har (93%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_D_m_314327836 => 0_D_2157136892}/oauth2_393036114/recording.har (91%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_D_m_314327836 => 0_D_2157136892}/openidm_3290118515/recording.har (93%) delete mode 100644 test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_r_D_m_3443305505 => 0_r_D_4127468429}/am_1076162899/recording.har (58%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_r_D_m_3443305505 => 0_r_D_4127468429}/environment_1072573434/recording.har (94%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_r_D_m_3443305505 => 0_r_D_4127468429}/oauth2_393036114/recording.har (92%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_r_D_m_3443305505 => 0_r_D_4127468429}/openidm_3290118515/recording.har (93%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_D_m_314327836 => 0_r_n_D_4228197756}/am_1076162899/recording.har (67%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_n_D_m_1348920437 => 0_r_n_D_4228197756}/environment_1072573434/recording.har (93%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_n_D_m_1348920437 => 0_r_n_D_4228197756}/oauth2_393036114/recording.har (91%) rename test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/{0_n_D_m_1348920437 => 0_r_n_D_4228197756}/openidm_3290118515/recording.har (93%) diff --git a/src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts b/src/cli/config-manager/config-manager-push/config-manager-push-secret-mappings.ts similarity index 81% rename from src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts rename to src/cli/config-manager/config-manager-push/config-manager-push-secret-mappings.ts index 20ba52178..1949e0f48 100644 --- a/src/cli/config-manager/config-manager-push/config-manager-pus-secret-mappings.ts +++ b/src/cli/config-manager/config-manager-push/config-manager-push-secret-mappings.ts @@ -22,13 +22,13 @@ export default function setup() { .addOption( new Option( '-n, --name ', - 'Name of the secret mapping, It will only import secret mapping with the name. Works both with mapping._id or alias.' + 'Name of the secret mapping, It will only import secret mapping with the specified name.' ) ) .addOption( new Option( '-r, --realm ', - 'Specific realm to get secret mappings from (overrides environment)' + 'Realm name; imports only the secret mappings of the specified realm.' ) ) .action(async (host, realm, user, password, options, command) => { @@ -40,15 +40,22 @@ export default function setup() { options, command ); - if (options.realm) { - realm = options.realm; + + if (options.name && !options.realm) { + printMessage( + 'The -n/--policy-name option requires -r/--realm to be specified.', + 'error' + ); + program.help(); + process.exitCode = 1; + return; } if (await getTokens(false, true, deploymentTypes)) { verboseMessage('importing config entity secret-mappings'); const outcome = await configManagerImportSecretMappings( options.name, - realm + options.realm ); if (!outcome) process.exitCode = 1; } 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 9f034de47..66c8b36b0 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 @@ -4,7 +4,6 @@ import Audit from './config-manager-push-audit'; import Authentication from './config-manager-push-authentication'; import ConnectorDefinitions from './config-manager-push-connector-definitions'; import CookieDomains from './config-manager-push-cookie-domain'; -import SecretMappings from './config-manager-pus-secret-mappings'; import EmailProvider from './config-manager-push-email-provider'; import EmailTemplates from './config-manager-push-email-templates'; import Endpoints from './config-manager-push-endpoints'; @@ -16,6 +15,7 @@ import OrgPrivileges from './config-manager-push-org-privileges'; import PasswordPolicy from './config-manager-push-password-policy'; import Schedules from './config-manager-push-schedules'; import ServiceObjects from './config-manager-push-service-objects'; +import SecretMappings from './config-manager-push-secret-mappings'; 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/FrConfigSecretMappingsOps.ts b/src/configManagerOps/FrConfigSecretMappingsOps.ts index 175a22b3d..921e21a44 100644 --- a/src/configManagerOps/FrConfigSecretMappingsOps.ts +++ b/src/configManagerOps/FrConfigSecretMappingsOps.ts @@ -5,8 +5,10 @@ import { printError } from '../utils/Console'; import { realmList } from '../utils/FrConfig'; const { saveJsonToFile, getFilePath } = frodo.utils; -const { readSecretStoreMappings, importSecretStores } = frodo.secretStore; +const { readSecretStoreMappings, updateSecretStoreMapping } = frodo.secretStore; +const ESV_SECRET_STORE_ID = 'ESV'; +const ESV_SECRET_STORE_TYPE = 'GoogleSecretManagerSecretStoreProvider'; export async function configManagerExportSecretMappings( name?, realm? @@ -14,19 +16,22 @@ export async function configManagerExportSecretMappings( try { if (realm && realm !== '__default__realm__') { const readData = await readSecretStoreMappings( - 'ESV', - 'GoogleSecretManagerSecretStoreProvider', + ESV_SECRET_STORE_ID, + ESV_SECRET_STORE_TYPE, false ); processSecretMappings(readData, `realms/${realm}/secret-mappings`, name); } else { for (const realm of await realmList()) { - // fr-config-manager doesn't support root secret-mappings - if (realm === '/') continue; - state.setRealm(realm); + if ( + realm === '/' && + state.getDeploymentType() === + frodo.utils.constants.CLOUD_DEPLOYMENT_TYPE_KEY + ) + continue; const readData = await readSecretStoreMappings( - 'ESV', - 'GoogleSecretManagerSecretStoreProvider', + ESV_SECRET_STORE_ID, + ESV_SECRET_STORE_TYPE, false ); processSecretMappings( @@ -69,33 +74,72 @@ async function aliasSearch(object, name) { } } +/** + * Import all secrets to individual files in fr-config-manager format + * @param {string} name the name of the file to be imported + * @param {string} realm the name of teh specified realm to import to + * @returns {Promise} true if successful, false otherwise + */ export async function configManagerImportSecretMappings( name?: string, realm?: string ): Promise { try { - if (realm && realm !== '__default__realm__' && name) { + if (realm && name) { + state.setRealm(realm); const filePath = getFilePath( `realms/${realm}/secret-mappings/${name}.json` ); const readFile = fs.readFileSync(filePath, 'utf8'); const importData = JSON.parse(readFile); - const mappingData = { secretstore: { [importData._id]: importData } }; - await importSecretStores(mappingData, false, importData._id); + await updateSecretStoreMapping( + ESV_SECRET_STORE_ID, + ESV_SECRET_STORE_TYPE, + importData, + false + ); + saveJsonToFile(importData, 'name-realm-test.json'); + } else if (realm && realm !== '/') { + state.setRealm(realm); + const filePath = getFilePath(`realms/${realm}/secret-mappings/`); + if (fs.existsSync(filePath)) { + const readDir = fs.readdirSync(filePath, 'utf8'); + for (const fileName of readDir) { + const fullPath = `${filePath}${fileName}`; + const readFile = fs.readFileSync(fullPath, 'utf8'); + const importData = JSON.parse(readFile); + await updateSecretStoreMapping( + ESV_SECRET_STORE_ID, + ESV_SECRET_STORE_TYPE, + importData, + false + ); + saveJsonToFile(importData, 'realm-test.json'); + } + } } else { for (const realmName of await realmList()) { - // fr-config-manager doesn't support root secret-mappingsgit - if (realmName === '/') continue; + if ( + realmName === '/' && + state.getDeploymentType() === + frodo.utils.constants.CLOUD_DEPLOYMENT_TYPE_KEY + ) + continue; + state.setRealm(realmName); const filePath = getFilePath(`realms/${realmName}/secret-mappings/`); if (!fs.existsSync(filePath)) continue; const readDir = fs.readdirSync(filePath, 'utf8'); for (const fileName of readDir) { - const fullPath = `${filePath}/${fileName}`; + const fullPath = `${filePath}${fileName}`; const readFile = fs.readFileSync(fullPath, 'utf8'); const importData = JSON.parse(readFile); - const mappingData = { secretstore: { [importData._id]: importData } }; - - await importSecretStores(mappingData, false, importData._id); + await updateSecretStoreMapping( + ESV_SECRET_STORE_ID, + ESV_SECRET_STORE_TYPE, + importData, + false + ); + saveJsonToFile(importData, 'test.json'); } } } diff --git a/test.json b/test.json new file mode 100644 index 000000000..11af42fc6 --- /dev/null +++ b/test.json @@ -0,0 +1,60 @@ +{ + "meta": { + "exportDate": "2026-04-02T17:35:45.032Z", + "exportTool": "frodo", + "exportToolVersion": "v4.0.0-34 [v24.13.0]", + "exportedBy": "phales@trivir.com", + "origin": "https://openam-frodo-dev.forgeblocks.com/am", + "originAmVersion": "9.0.0" + }, + "secretstore": { + "am.authentication.nodes.persistentcookie.encryption": { + "_id": "am.authentication.nodes.persistentcookie.encryption", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Btest2" + ], + "secretId": "am.authentication.nodes.persistentcookie.encryption" + }, + "am.authentication.nodes.webauthn.fidometadataservice.rootcertificate": { + "_id": "am.authentication.nodes.webauthn.fidometadataservice.rootcertificate", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Btest" + ], + "secretId": "am.authn.authid.signing.HMAC" + }, + "am.services.oauth2.oidc.signing.RSA": { + "_id": "am.services.oauth2.oidc.signing.RSA", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Atest" + ], + "secretId": "am.services.oauth2.oidc.signing.RSA" + }, + "am.services.selfservice.token.signing": { + "_id": "am.services.selfservice.token.signing", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Atest2" + ], + "secretId": "am.services.selfservice.token.signing" + } + } +} diff --git a/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap index afeea8347..e737efe7c 100644 --- a/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap +++ b/test/client_cli/en/__snapshots__/config-manager-push-secret-mappings.test.js.snap @@ -3,66 +3,30 @@ exports[`CLI help interface for 'config-manager push secret-mappings' should be expected english 1`] = ` "Usage: frodo config-manager push secret-mappings [options] [host] [realm] [username] [password] -Import secret mappings. +[Experimental] Import secret mappings. 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") - -n, --name Name of the secret mapping, It will only import secret mapping with the name. Works both with mapping._id or alias. - --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. - -r, --realm Specific realm to get secret mappings from (overrides environment) - --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. +Deployment: Cloud-only +Options: + -n, --name Name of the secret mapping, It will only import secret + mapping with the specified name. + -r, --realm Realm name; imports only the secret mappings of the + specified realm. + -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 c079ca13f..ed03f8f5a 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 @@ -33,5 +33,8 @@ Commands: terms-and-conditions [Experimental] Import terms and conditions. themes [Experimental] Import themes. ui-config [Experimental] Import UI configuration. + + (Cloud-only): + secret-mappings [Experimental] Import secret mappings. " `; diff --git a/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap index 8ec0e800b..703bba0ea 100644 --- a/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-push-secret-mappings.e2e.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -D test/e2e/exports/fr-config-manager/cloud -m cloud": should import the password policy into cloud" 1`] = `""`; +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -D test/e2e/exports/fr-config-manager/cloud ": should import the secret mapping into cloud" 1`] = `""`; -exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC test/e2e/exports/fr-config-manager/cloud -m cloud": should import a specific password policy by name into cloud" 1`] = `""`; +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -r alpha -n am.services.iot.cert.verification -D test/e2e/exports/fr-config-manager/cloud": should import a specific secret mapping by name into cloud" 1`] = `""`; -exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -r alpha test/e2e/exports/fr-config-manager/cloud -m cloud": should import a specific password policy by name into cloud" 1`] = `""`; +exports[`frodo config-manager push secret-mappings "frodo config-manager push secret-mappings -r bravo -D test/e2e/exports/fr-config-manager/cloud": should import a specific secret-mapping by name into cloud" 1`] = `""`; diff --git a/test/e2e/config-manager-push-secret-mappings.e2e.test.js b/test/e2e/config-manager-push-secret-mappings.e2e.test.js index 325be8019..958c53d40 100644 --- a/test/e2e/config-manager-push-secret-mappings.e2e.test.js +++ b/test/e2e/config-manager-push-secret-mappings.e2e.test.js @@ -48,9 +48,9 @@ /* // ForgeOps -FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push secret-mappings -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 secret-mappings -r alpha -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 secret-mappings -n am.services.oauth2.stateless.signing.HMAC -D test/e2e/exports/fr-config-manager/forgeops -m cloud +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secret-mappings -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 secret-mappings -r bravo -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 secret-mappings -r alpha -n am.services.iot.cert.verification -D test/e2e/exports/fr-config-manager/cloud */ @@ -67,19 +67,19 @@ const cloudEnv = getEnv(c); const allDirectory = "test/e2e/exports/fr-config-manager/cloud"; describe('frodo config-manager push secret-mappings', () => { - test(`"frodo config-manager push secret-mappings -D ${allDirectory} -m cloud": should import the password policy into cloud"`, async () => { - const CMD = `frodo config-manager push secret-mappings -D ${allDirectory} -m cloud`; + test(`"frodo config-manager push secret-mappings -D ${allDirectory} ": should import the secret mapping into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -D ${allDirectory} `; const { stdout } = await exec(CMD, cloudEnv); expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); }); - test(`"frodo config-manager push secret-mappings -r alpha ${allDirectory} -m cloud": should import a specific password policy by name into cloud"`, async () => { - const CMD = `frodo config-manager push secret-mappings -r alpha -D ${allDirectory} -m cloud`; + test(`"frodo config-manager push secret-mappings -r bravo -D ${allDirectory}": should import a specific secret-mapping by name into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -r bravo -D ${allDirectory}`; const { stdout } = await exec(CMD, cloudEnv); expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); }); - test(`"frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC ${allDirectory} -m cloud": should import a specific password policy by name into cloud"`, async () => { - const CMD = `frodo config-manager push secret-mappings -n am.services.oauth2.stateless.signing.HMAC -D ${allDirectory} -m cloud`; + test(`"frodo config-manager push secret-mappings -r alpha -n am.services.iot.cert.verification -D ${allDirectory}": should import a specific secret mapping by name into cloud"`, async () => { + const CMD = `frodo config-manager push secret-mappings -r alpha -n am.services.iot.cert.verification -D ${allDirectory}`; const { stdout } = await exec(CMD, cloudEnv); expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); }); diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.iot.cert.verification.json b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.iot.cert.verification.json new file mode 100644 index 000000000..6c875685e --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.iot.cert.verification.json @@ -0,0 +1,13 @@ +{ + "_id": "am.services.iot.cert.verification", + "_rev": "-297472146", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Atest3" + ], + "secretId": "am.services.iot.cert.verification" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.oauth2.oidc.signing.RSA.json b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.oauth2.oidc.signing.RSA.json new file mode 100644 index 000000000..9dfd95fe4 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.oauth2.oidc.signing.RSA.json @@ -0,0 +1,13 @@ +{ + "_id": "am.services.oauth2.oidc.signing.RSA", + "_rev": "-2046502567", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Atest" + ], + "secretId": "am.services.oauth2.oidc.signing.RSA" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.selfservice.token.signing.json b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.selfservice.token.signing.json new file mode 100644 index 000000000..0aa1c45de --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/alpha/secret-mappings/am.services.selfservice.token.signing.json @@ -0,0 +1,13 @@ +{ + "_id": "am.services.selfservice.token.signing", + "_rev": "1981656929", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Atest2" + ], + "secretId": "am.services.selfservice.token.signing" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.persistentcookie.encryption.json b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.persistentcookie.encryption.json new file mode 100644 index 000000000..0d93b0b78 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.persistentcookie.encryption.json @@ -0,0 +1,13 @@ +{ + "_id": "am.authentication.nodes.persistentcookie.encryption", + "_rev": "-161166124", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Btest2" + ], + "secretId": "am.authentication.nodes.persistentcookie.encryption" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate.json b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate.json new file mode 100644 index 000000000..f6d684a7f --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate.json @@ -0,0 +1,13 @@ +{ + "_id": "am.authentication.nodes.webauthn.fidometadataservice.rootcertificate", + "_rev": "132743902", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Btest" + ], + "secretId": "am.authentication.nodes.webauthn.fidometadataservice.rootcertificate" +} diff --git a/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.services.oauth2.stateless.signing.ES512.json b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.services.oauth2.stateless.signing.ES512.json new file mode 100644 index 000000000..88ce999fa --- /dev/null +++ b/test/e2e/exports/fr-config-manager/cloud/realms/bravo/secret-mappings/am.services.oauth2.stateless.signing.ES512.json @@ -0,0 +1,13 @@ +{ + "_id": "am.services.oauth2.stateless.signing.ES512", + "_rev": "-224635891", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings" + }, + "aliases": [ + "Btest3" + ], + "secretId": "am.services.oauth2.stateless.signing.ES512" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json deleted file mode 100644 index 0171234e7..000000000 --- a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/secret-mappings/am.services.oauth2.stateless.signing.HMAC.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "_id": "am.services.oauth2.stateless.signing.HMAC", - "_rev": "2072507862", - "_type": { - "_id": "mappings", - "collection": true, - "name": "Mappings" - }, - "aliases": [ - "esv-oauth2-signing-key." - ], - "secretId": "am.services.oauth2.stateless.signing.HMAC" -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/am_1076162899/recording.har new file mode 100644 index 000000000..0d2e304d6 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/am_1076162899/recording.har @@ -0,0 +1,1400 @@ +{ + "log": { + "_recordingName": "config-manager/push/secret-mappings/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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 615, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 615, + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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,\"allowedWithoutReferer\":true,\"refererWhitelist\":[]},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" + }, + "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": "\"1955877839\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "615" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:25 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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-04-08T17:37:25.814Z", + "time": 180, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 180 + } + }, + { + "_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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 275, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 275, + "text": "{\"_id\":\"version\",\"_rev\":\"-824275682\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 75a770de430656acd9cf271c54af448902e5589a (2026-March-25 18:41)\",\"revision\":\"75a770de430656acd9cf271c54af448902e5589a\",\"date\":\"2026-March-25 18:41\"}" + }, + "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": "\"-824275682\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "275" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:26 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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-04-08T17:37:26.184Z", + "time": 140, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 140 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.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": 2014, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 420, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 420, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "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": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.0,resource=1.0, 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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:26 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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" + }, + { + "name": "transfer-encoding", + "value": "chunked" + } + ], + "headersSize": 800, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:26.602Z", + "time": 213, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 213 + } + }, + { + "_id": "10f09c71840c1ea5c1676542cdc3ea45", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 174, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "174" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2134, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.iot.cert.verification\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Atest3\"],\"secretId\":\"am.services.iot.cert.verification\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.iot.cert.verification" + }, + "response": { + "bodySize": 194, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 194, + "text": "{\"_id\":\"am.services.iot.cert.verification\",\"_rev\":\"-297472146\",\"secretId\":\"am.services.iot.cert.verification\",\"aliases\":[\"Atest3\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"-297472146\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "194" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 751, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:26.822Z", + "time": 269, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 269 + } + }, + { + "_id": "dadc149f7f51f8a7c20211d11ed3453c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 177, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "177" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2136, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.oauth2.oidc.signing.RSA\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Atest\"],\"secretId\":\"am.services.oauth2.oidc.signing.RSA\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.oauth2.oidc.signing.RSA" + }, + "response": { + "bodySize": 198, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 198, + "text": "{\"_id\":\"am.services.oauth2.oidc.signing.RSA\",\"_rev\":\"-2046502567\",\"secretId\":\"am.services.oauth2.oidc.signing.RSA\",\"aliases\":[\"Atest\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"-2046502567\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "198" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 752, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:27.098Z", + "time": 262, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 262 + } + }, + { + "_id": "3530c5cf06e3388db01b023f9af919d7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 182, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "182" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2138, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.selfservice.token.signing\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Atest2\"],\"secretId\":\"am.services.selfservice.token.signing\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.selfservice.token.signing" + }, + "response": { + "bodySize": 202, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 202, + "text": "{\"_id\":\"am.services.selfservice.token.signing\",\"_rev\":\"1981656929\",\"secretId\":\"am.services.selfservice.token.signing\",\"aliases\":[\"Atest2\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"1981656929\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "202" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 751, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:27.368Z", + "time": 182, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 182 + } + }, + { + "_id": "6d03e6cda63a7293a7f7e354d14336e8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 210, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "210" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2152, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.authentication.nodes.persistentcookie.encryption\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest2\"],\"secretId\":\"am.authentication.nodes.persistentcookie.encryption\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.authentication.nodes.persistentcookie.encryption" + }, + "response": { + "bodySize": 230, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 230, + "text": "{\"_id\":\"am.authentication.nodes.persistentcookie.encryption\",\"_rev\":\"-161166124\",\"secretId\":\"am.authentication.nodes.persistentcookie.encryption\",\"aliases\":[\"Btest2\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"-161166124\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "230" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 751, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:27.557Z", + "time": 228, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 228 + } + }, + { + "_id": "dcd133bd9bd499a97f5c6daff9a5496c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 243, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "243" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2169, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest\"],\"secretId\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate" + }, + "response": { + "bodySize": 262, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 262, + "text": "{\"_id\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"_rev\":\"132743902\",\"secretId\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"aliases\":[\"Btest\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"132743902\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "262" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:27 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 750, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:27.791Z", + "time": 187, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 187 + } + }, + { + "_id": "cd525f1167835ed943176ac17e4b4846", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 192, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "192" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2143, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.ES512\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest3\"],\"secretId\":\"am.services.oauth2.stateless.signing.ES512\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.oauth2.stateless.signing.ES512" + }, + "response": { + "bodySize": 212, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 212, + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.ES512\",\"_rev\":\"-224635891\",\"secretId\":\"am.services.oauth2.stateless.signing.ES512\",\"aliases\":[\"Btest3\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"-224635891\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "212" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:28 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" + }, + { + "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": 751, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:27.982Z", + "time": 192, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 192 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/environment_1072573434/recording.har similarity index 93% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/environment_1072573434/recording.har index ee00c6d93..635b1904b 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/environment_1072573434/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_D_m/environment", + "_recordingName": "config-manager/push/secret-mappings/0_D/environment", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,7 +25,7 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "accept-api-version", @@ -77,11 +77,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:37:26 GMT" }, { "name": "x-forgerock-transactionid", - "value": "e37b711c-e3a3-4ced-a1e6-54a7da2d1ce4" + "value": "efa496d6-31a4-4d41-b231-49d4fd5fd52d" }, { "name": "strict-transport-security", @@ -106,8 +106,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.528Z", - "time": 68, + "startedDateTime": "2026-04-08T17:37:26.330Z", + "time": 132, "timings": { "blocked": -1, "connect": -1, @@ -115,7 +115,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 68 + "wait": 132 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/oauth2_393036114/recording.har similarity index 91% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/oauth2_393036114/recording.har index d31cbc39e..7eb8678bb 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_D_m/oauth2", + "_recordingName": "config-manager/push/secret-mappings/0_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "accept-api-version", @@ -98,11 +98,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:37:26 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "strict-transport-security", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.281Z", - "time": 154, + "startedDateTime": "2026-04-08T17:37:26.011Z", + "time": 166, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 154 + "wait": 166 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/openidm_3290118515/recording.har similarity index 93% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/openidm_3290118515/recording.har index 4827397d6..e4416d3ea 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_2157136892/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_D_m/openidm", + "_recordingName": "config-manager/push/secret-mappings/0_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "authorization", @@ -66,7 +66,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:37:26 GMT" }, { "name": "vary", @@ -118,7 +118,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "strict-transport-security", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.477Z", - "time": 169, + "startedDateTime": "2026-04-08T17:37:26.222Z", + "time": 307, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 169 + "wait": 307 } }, { @@ -173,11 +173,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "authorization", @@ -214,7 +214,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:37:26 GMT" }, { "name": "vary", @@ -266,7 +266,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-c26967b7-b710-4f90-9d74-7648c26b13f2" }, { "name": "strict-transport-security", @@ -291,8 +291,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.602Z", - "time": 66, + "startedDateTime": "2026-04-08T17:37:26.468Z", + "time": 127, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 66 + "wait": 127 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har deleted file mode 100644 index 8163bfb81..000000000 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/am_1076162899/recording.har +++ /dev/null @@ -1,576 +0,0 @@ -{ - "log": { - "_recordingName": "config-manager/push/secret-mappings/0_n_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-30" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "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": 615, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 615, - "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" - }, - "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": "\"1955877839\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "615" - }, - { - "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "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-24T19:40:27.339Z", - "time": 128, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 128 - } - }, - { - "_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-30" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "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": 275, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 275, - "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" - }, - "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": "\"-220465726\"" - }, - { - "name": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "content-length", - "value": "275" - }, - { - "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "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-24T19:40:27.595Z", - "time": 74, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 74 - } - }, - { - "_id": "7d9f50fd3e71cc96665ebde586994b01", - "_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-30" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "name": "accept-api-version", - "value": "protocol=2.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": 2014, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [ - { - "name": "_queryFilter", - "value": "true" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" - }, - "response": { - "bodySize": 420, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 420, - "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" - }, - "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": "private" - }, - { - "name": "content-api-version", - "value": "protocol=2.0,resource=1.0, 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": "expires", - "value": "0" - }, - { - "name": "pragma", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "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" - }, - { - "name": "transfer-encoding", - "value": "chunked" - } - ], - "headersSize": 800, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2026-03-24T19:40:27.823Z", - "time": 161, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 161 - } - }, - { - "_id": "171a4453a6c1eeeae59de1697dcd8310", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 227, - "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-30" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" - }, - { - "name": "accept-api-version", - "value": "protocol=2.1,resource=2.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "227" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 2099, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" - }, - "response": { - "bodySize": 114, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 114, - "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" - }, - "cookies": [], - "headers": [ - { - "name": "cache-control", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000;includeSubDomains;preload" - }, - { - "name": "date", - "value": "Tue, 24 Mar 2026 19:40:28 GMT" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - }, - { - "name": "transfer-encoding", - "value": "chunked" - } - ], - "headersSize": 283, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 403, - "statusText": "Forbidden" - }, - "startedDateTime": "2026-03-24T19:40:27.989Z", - "time": 51, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 51 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/am_1076162899/recording.har similarity index 58% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/am_1076162899/recording.har index cbea9f8fe..00d6299af 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/am_1076162899/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/am", + "_recordingName": "config-manager/push/secret-mappings/0_r_D/am", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "accept-api-version", @@ -55,7 +55,7 @@ "content": { "mimeType": "application/json;charset=UTF-8", "size": 615, - "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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,\"allowedWithoutReferer\":true,\"refererWhitelist\":[]},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" }, "cookies": [], "headers": [ @@ -113,11 +113,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:39 GMT" + "value": "Wed, 08 Apr 2026 17:37:53 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -142,8 +142,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.539Z", - "time": 127, + "startedDateTime": "2026-04-08T17:37:53.472Z", + "time": 180, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 127 + "wait": 180 } }, { @@ -172,11 +172,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "accept-api-version", @@ -206,7 +206,7 @@ "content": { "mimeType": "application/json;charset=UTF-8", "size": 275, - "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" + "text": "{\"_id\":\"version\",\"_rev\":\"-824275682\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 75a770de430656acd9cf271c54af448902e5589a (2026-March-25 18:41)\",\"revision\":\"75a770de430656acd9cf271c54af448902e5589a\",\"date\":\"2026-March-25 18:41\"}" }, "cookies": [], "headers": [ @@ -244,7 +244,7 @@ }, { "name": "etag", - "value": "\"-220465726\"" + "value": "\"-824275682\"" }, { "name": "expires", @@ -264,11 +264,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:39 GMT" + "value": "Wed, 08 Apr 2026 17:37:53 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -293,8 +293,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.798Z", - "time": 76, + "startedDateTime": "2026-04-08T17:37:53.833Z", + "time": 134, "timings": { "blocked": -1, "connect": -1, @@ -302,15 +302,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 76 + "wait": 134 } }, { - "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_id": "6d03e6cda63a7293a7f7e354d14336e8", "_order": 0, "cache": {}, "request": { - "bodySize": 0, + "bodySize": 210, "cookies": [], "headers": [ { @@ -323,20 +323,24 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "accept-api-version", - "value": "protocol=2.0,resource=1.0" + "value": "protocol=2.1,resource=2.0" }, { "name": "authorization", "value": "Bearer " }, + { + "name": "content-length", + "value": "210" + }, { "name": "accept-encoding", "value": "gzip, compress, deflate, br" @@ -346,23 +350,179 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 2014, + "headersSize": 2152, "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [ + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.authentication.nodes.persistentcookie.encryption\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest2\"],\"secretId\":\"am.authentication.nodes.persistentcookie.encryption\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.authentication.nodes.persistentcookie.encryption" + }, + "response": { + "bodySize": 230, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 230, + "text": "{\"_id\":\"am.authentication.nodes.persistentcookie.encryption\",\"_rev\":\"-161166124\",\"secretId\":\"am.authentication.nodes.persistentcookie.encryption\",\"aliases\":[\"Btest2\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "_queryFilter", - "value": "true" + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "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": "\"-161166124\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "230" + }, + { + "name": "date", + "value": "Wed, 08 Apr 2026 17:37:54 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" + }, + { + "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" } ], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + "headersSize": 751, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T17:37:54.238Z", + "time": 286, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 286 + } + }, + { + "_id": "dcd133bd9bd499a97f5c6daff9a5496c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 243, + "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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=2.0" + }, + { + "name": "authorization", + "value": "Bearer " + }, + { + "name": "content-length", + "value": "243" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 2169, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest\"],\"secretId\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.authentication.nodes.webauthn.fidometadataservice.rootcertificate" }, "response": { - "bodySize": 420, + "bodySize": 262, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 420, - "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + "size": 262, + "text": "{\"_id\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"_rev\":\"132743902\",\"secretId\":\"am.authentication.nodes.webauthn.fidometadataservice.rootcertificate\",\"aliases\":[\"Btest\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":true}}" }, "cookies": [], "headers": [ @@ -382,10 +542,6 @@ "name": "cache-control", "value": "private" }, - { - "name": "content-api-version", - "value": "protocol=2.0,resource=1.0, resource=1.0" - }, { "name": "content-security-policy", "value": "default-src 'none';frame-ancestors 'none';sandbox" @@ -398,6 +554,10 @@ "name": "cross-origin-resource-policy", "value": "same-origin" }, + { + "name": "etag", + "value": "\"132743902\"" + }, { "name": "expires", "value": "0" @@ -410,13 +570,17 @@ "name": "content-type", "value": "application/json;charset=UTF-8" }, + { + "name": "content-length", + "value": "262" + }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:40 GMT" + "value": "Wed, 08 Apr 2026 17:37:54 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -433,20 +597,16 @@ { "name": "alt-svc", "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - }, - { - "name": "transfer-encoding", - "value": "chunked" } ], - "headersSize": 800, + "headersSize": 750, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:40.029Z", - "time": 274, + "startedDateTime": "2026-04-08T17:37:54.532Z", + "time": 195, "timings": { "blocked": -1, "connect": -1, @@ -454,15 +614,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 274 + "wait": 195 } }, { - "_id": "171a4453a6c1eeeae59de1697dcd8310", + "_id": "cd525f1167835ed943176ac17e4b4846", "_order": 0, "cache": {}, "request": { - "bodySize": 227, + "bodySize": 192, "cookies": [], "headers": [ { @@ -475,11 +635,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "accept-api-version", @@ -491,7 +651,7 @@ }, { "name": "content-length", - "value": "227" + "value": "192" }, { "name": "accept-encoding", @@ -502,28 +662,64 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 2099, + "headersSize": 2143, "httpVersion": "HTTP/1.1", "method": "PUT", "postData": { "mimeType": "application/json", "params": [], - "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.ES512\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Btest3\"],\"secretId\":\"am.services.oauth2.stateless.signing.ES512\"}" }, "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/bravo/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.oauth2.stateless.signing.ES512" }, "response": { - "bodySize": 114, + "bodySize": 212, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 114, - "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" + "size": 212, + "text": "{\"_id\":\"am.services.oauth2.stateless.signing.ES512\",\"_rev\":\"-224635891\",\"secretId\":\"am.services.oauth2.stateless.signing.ES512\",\"aliases\":[\"Btest3\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":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": "private" + }, + { + "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": "\"-224635891\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", "value": "no-cache" }, { @@ -531,12 +727,24 @@ "value": "application/json;charset=UTF-8" }, { - "name": "strict-transport-security", - "value": "max-age=31536000;includeSubDomains;preload" + "name": "content-length", + "value": "212" }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:40 GMT" + "value": "Wed, 08 Apr 2026 17:37:54 GMT" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload;" + }, + { + "name": "x-robots-tag", + "value": "none" }, { "name": "via", @@ -545,20 +753,16 @@ { "name": "alt-svc", "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - }, - { - "name": "transfer-encoding", - "value": "chunked" } ], - "headersSize": 283, + "headersSize": 751, "httpVersion": "HTTP/1.1", "redirectURL": "", - "status": 403, - "statusText": "Forbidden" + "status": 200, + "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:40.309Z", - "time": 54, + "startedDateTime": "2026-04-08T17:37:54.733Z", + "time": 193, "timings": { "blocked": -1, "connect": -1, @@ -566,7 +770,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 54 + "wait": 193 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/environment_1072573434/recording.har similarity index 94% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/environment_1072573434/recording.har index b6328f414..ddec5e340 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/environment_1072573434/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/environment", + "_recordingName": "config-manager/push/secret-mappings/0_r_D/environment", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,7 +25,7 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "accept-api-version", @@ -77,11 +77,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:39 GMT" + "value": "Wed, 08 Apr 2026 17:37:54 GMT" }, { "name": "x-forgerock-transactionid", - "value": "cf32edfd-6298-47e8-bbdc-7c5a2b1db8b8" + "value": "60174065-445a-4401-b762-90f5cd1ff2f8" }, { "name": "strict-transport-security", @@ -106,8 +106,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.879Z", - "time": 69, + "startedDateTime": "2026-04-08T17:37:53.974Z", + "time": 127, "timings": { "blocked": -1, "connect": -1, @@ -115,7 +115,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 69 + "wait": 127 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/oauth2_393036114/recording.har similarity index 92% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/oauth2_393036114/recording.har index 77f59a234..69dcccc4c 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/oauth2", + "_recordingName": "config-manager/push/secret-mappings/0_r_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "accept-api-version", @@ -98,11 +98,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:39 GMT" + "value": "Wed, 08 Apr 2026 17:37:53 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.679Z", - "time": 112, + "startedDateTime": "2026-04-08T17:37:53.665Z", + "time": 161, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 112 + "wait": 161 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/openidm_3290118515/recording.har similarity index 93% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/openidm_3290118515/recording.har index b38a4a159..01c5642d3 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_m_3443305505/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_D_4127468429/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_r_D_m/openidm", + "_recordingName": "config-manager/push/secret-mappings/0_r_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "authorization", @@ -66,7 +66,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:39 GMT" + "value": "Wed, 08 Apr 2026 17:37:54 GMT" }, { "name": "vary", @@ -118,7 +118,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.837Z", - "time": 160, + "startedDateTime": "2026-04-08T17:37:53.864Z", + "time": 225, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 160 + "wait": 225 } }, { @@ -173,11 +173,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "authorization", @@ -214,7 +214,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:40 GMT" + "value": "Wed, 08 Apr 2026 17:37:54 GMT" }, { "name": "vary", @@ -266,7 +266,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-2a7ecacb-d961-4ab2-bbd2-68f67f501cf8" + "value": "frodo-abce65e8-dadc-4472-a710-0e0e343f0af7" }, { "name": "strict-transport-security", @@ -291,8 +291,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:39.955Z", - "time": 66, + "startedDateTime": "2026-04-08T17:37:54.108Z", + "time": 122, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 66 + "wait": 122 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/am_1076162899/recording.har similarity index 67% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/am_1076162899/recording.har index 558406da1..b4428ca4c 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_D_m_314327836/am_1076162899/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/am_1076162899/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_D_m/am", + "_recordingName": "config-manager/push/secret-mappings/0_r_n_D/am", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "accept-api-version", @@ -55,7 +55,7 @@ "content": { "mimeType": "application/json;charset=UTF-8", "size": 615, - "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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\":false}" + "text": "{\"_id\":\"*\",\"_rev\":\"1955877839\",\"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,\"allowedWithoutReferer\":true,\"refererWhitelist\":[]},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"cloudOnlyFeaturesEnabled\":true,\"oauth2AIAgentsEnabled\":false}" }, "cookies": [], "headers": [ @@ -113,11 +113,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:38:14 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -142,7 +142,7 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.094Z", + "startedDateTime": "2026-04-08T17:38:14.417Z", "time": 174, "timings": { "blocked": -1, @@ -172,11 +172,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "accept-api-version", @@ -206,7 +206,7 @@ "content": { "mimeType": "application/json;charset=UTF-8", "size": 275, - "text": "{\"_id\":\"version\",\"_rev\":\"-220465726\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build ae075392fb3a6d6df6e0d2a756048c5269e0d3c8 (2026-March-20 16:29)\",\"revision\":\"ae075392fb3a6d6df6e0d2a756048c5269e0d3c8\",\"date\":\"2026-March-20 16:29\"}" + "text": "{\"_id\":\"version\",\"_rev\":\"-824275682\",\"version\":\"9.0.0-SNAPSHOT\",\"fullVersion\":\"ForgeRock Access Management 9.0.0-SNAPSHOT Build 75a770de430656acd9cf271c54af448902e5589a (2026-March-25 18:41)\",\"revision\":\"75a770de430656acd9cf271c54af448902e5589a\",\"date\":\"2026-March-25 18:41\"}" }, "cookies": [], "headers": [ @@ -244,7 +244,7 @@ }, { "name": "etag", - "value": "\"-220465726\"" + "value": "\"-824275682\"" }, { "name": "expires", @@ -264,11 +264,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:38:14 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -293,8 +293,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.441Z", - "time": 82, + "startedDateTime": "2026-04-08T17:38:14.780Z", + "time": 136, "timings": { "blocked": -1, "connect": -1, @@ -302,15 +302,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 82 + "wait": 136 } }, { - "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_id": "10f09c71840c1ea5c1676542cdc3ea45", "_order": 0, "cache": {}, "request": { - "bodySize": 0, + "bodySize": 174, "cookies": [], "headers": [ { @@ -323,20 +323,24 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "accept-api-version", - "value": "protocol=2.0,resource=1.0" + "value": "protocol=2.1,resource=2.0" }, { "name": "authorization", "value": "Bearer " }, + { + "name": "content-length", + "value": "174" + }, { "name": "accept-encoding", "value": "gzip, compress, deflate, br" @@ -346,23 +350,23 @@ "value": "openam-frodo-dev.forgeblocks.com" } ], - "headersSize": 2014, + "headersSize": 2134, "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [ - { - "name": "_queryFilter", - "value": "true" - } - ], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/global-config/realms/?_queryFilter=true" + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"am.services.iot.cert.verification\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"Atest3\"],\"secretId\":\"am.services.iot.cert.verification\"}" + }, + "queryString": [], + "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/GoogleSecretManagerSecretStoreProvider/ESV/mappings/am.services.iot.cert.verification" }, "response": { - "bodySize": 420, + "bodySize": 194, "content": { "mimeType": "application/json;charset=UTF-8", - "size": 420, - "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"-345738000\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[]},{\"_id\":\"L2FscGhh\",\"_rev\":\"362268810\",\"parentPath\":\"/\",\"active\":true,\"name\":\"alpha\",\"aliases\":[]},{\"_id\":\"L2JyYXZv\",\"_rev\":\"480875699\",\"parentPath\":\"/\",\"active\":true,\"name\":\"bravo\",\"aliases\":[]}],\"resultCount\":3,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + "size": 194, + "text": "{\"_id\":\"am.services.iot.cert.verification\",\"_rev\":\"-297472146\",\"secretId\":\"am.services.iot.cert.verification\",\"aliases\":[\"Atest3\"],\"_type\":{\"_id\":\"mappings\",\"name\":\"Mappings\",\"collection\":true}}" }, "cookies": [], "headers": [ @@ -382,10 +386,6 @@ "name": "cache-control", "value": "private" }, - { - "name": "content-api-version", - "value": "protocol=2.0,resource=1.0, resource=1.0" - }, { "name": "content-security-policy", "value": "default-src 'none';frame-ancestors 'none';sandbox" @@ -398,6 +398,10 @@ "name": "cross-origin-resource-policy", "value": "same-origin" }, + { + "name": "etag", + "value": "\"-297472146\"" + }, { "name": "expires", "value": "0" @@ -410,13 +414,17 @@ "name": "content-type", "value": "application/json;charset=UTF-8" }, + { + "name": "content-length", + "value": "194" + }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" + "value": "Wed, 08 Apr 2026 17:38:15 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -432,133 +440,17 @@ }, { "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000" - }, - { - "name": "transfer-encoding", - "value": "chunked" + "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" } ], - "headersSize": 775, + "headersSize": 751, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:39:05.674Z", - "time": 236, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 236 - } - }, - { - "_id": "171a4453a6c1eeeae59de1697dcd8310", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 227, - "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-30" - }, - { - "name": "x-forgerock-transactionid", - "value": "frodo-6297e560-def0-4da7-a276-c46d646bf9f6" - }, - { - "name": "accept-api-version", - "value": "protocol=2.1,resource=2.0" - }, - { - "name": "authorization", - "value": "Bearer " - }, - { - "name": "content-length", - "value": "227" - }, - { - "name": "accept-encoding", - "value": "gzip, compress, deflate, br" - }, - { - "name": "host", - "value": "openam-frodo-dev.forgeblocks.com" - } - ], - "headersSize": 2099, - "httpVersion": "HTTP/1.1", - "method": "PUT", - "postData": { - "mimeType": "application/json", - "params": [], - "text": "{\"_id\":\"am.services.oauth2.stateless.signing.HMAC\",\"_rev\":\"2072507862\",\"_type\":{\"_id\":\"mappings\",\"collection\":true,\"name\":\"Mappings\"},\"aliases\":[\"esv-oauth2-signing-key.\"],\"secretId\":\"am.services.oauth2.stateless.signing.HMAC\"}" - }, - "queryString": [], - "url": "https://openam-frodo-dev.forgeblocks.com/am/json/realms/root/realms/alpha/realm-config/secrets/stores/mappings/am.services.oauth2.stateless.signing.HMAC" - }, - "response": { - "bodySize": 114, - "content": { - "mimeType": "application/json;charset=UTF-8", - "size": 114, - "text": "{\"code\":403,\"reason\":\"Forbidden\",\"message\":\"This operation is not available in PingOne Advanced Identity Cloud.\"}" - }, - "cookies": [], - "headers": [ - { - "name": "cache-control", - "value": "no-cache" - }, - { - "name": "content-type", - "value": "application/json;charset=UTF-8" - }, - { - "name": "strict-transport-security", - "value": "max-age=31536000;includeSubDomains;preload" - }, - { - "name": "date", - "value": "Tue, 24 Mar 2026 19:39:05 GMT" - }, - { - "name": "via", - "value": "1.1 google" - }, - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" - }, - { - "name": "transfer-encoding", - "value": "chunked" - } - ], - "headersSize": 283, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 403, - "statusText": "Forbidden" - }, - "startedDateTime": "2026-03-24T19:39:05.916Z", - "time": 50, + "startedDateTime": "2026-04-08T17:38:15.184Z", + "time": 304, "timings": { "blocked": -1, "connect": -1, @@ -566,7 +458,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 50 + "wait": 304 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/environment_1072573434/recording.har similarity index 93% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/environment_1072573434/recording.har index 2bf52fec5..c2d96bd37 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/environment_1072573434/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/environment_1072573434/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/environment", + "_recordingName": "config-manager/push/secret-mappings/0_r_n_D/environment", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,7 +25,7 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "accept-api-version", @@ -77,11 +77,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" + "value": "Wed, 08 Apr 2026 17:38:14 GMT" }, { "name": "x-forgerock-transactionid", - "value": "dc84ff1e-e1d8-4527-87d3-0e3a916b6601" + "value": "cc77fbfe-e12f-49d9-b388-b516c42ab589" }, { "name": "strict-transport-security", @@ -106,8 +106,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:40:27.675Z", - "time": 68, + "startedDateTime": "2026-04-08T17:38:14.921Z", + "time": 126, "timings": { "blocked": -1, "connect": -1, @@ -115,7 +115,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 68 + "wait": 126 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/oauth2_393036114/recording.har similarity index 91% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/oauth2_393036114/recording.har index 0c7e21e45..d300c8ed4 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/oauth2_393036114/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/oauth2_393036114/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/oauth2", + "_recordingName": "config-manager/push/secret-mappings/0_r_n_D/oauth2", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "accept-api-version", @@ -98,11 +98,11 @@ }, { "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" + "value": "Wed, 08 Apr 2026 17:38:14 GMT" }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -127,8 +127,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:40:27.480Z", - "time": 109, + "startedDateTime": "2026-04-08T17:38:14.605Z", + "time": 168, "timings": { "blocked": -1, "connect": -1, @@ -136,7 +136,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 109 + "wait": 168 } } ], diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/openidm_3290118515/recording.har similarity index 93% rename from test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har rename to test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/openidm_3290118515/recording.har index 158e9ee54..c464e775e 100644 --- a/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_n_D_m_1348920437/openidm_3290118515/recording.har +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/secret-mappings_2964824403/0_r_n_D_4228197756/openidm_3290118515/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "config-manager/push/secret-mappings/0_n_D_m/openidm", + "_recordingName": "config-manager/push/secret-mappings/0_r_n_D/openidm", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -25,11 +25,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "authorization", @@ -66,7 +66,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" + "value": "Wed, 08 Apr 2026 17:38:14 GMT" }, { "name": "vary", @@ -118,7 +118,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:40:27.634Z", - "time": 157, + "startedDateTime": "2026-04-08T17:38:14.818Z", + "time": 239, "timings": { "blocked": -1, "connect": -1, @@ -152,7 +152,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 157 + "wait": 239 } }, { @@ -173,11 +173,11 @@ }, { "name": "user-agent", - "value": "@rockcarver/frodo-lib/4.0.0-30" + "value": "@rockcarver/frodo-lib/4.0.0-34" }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "authorization", @@ -214,7 +214,7 @@ "headers": [ { "name": "date", - "value": "Tue, 24 Mar 2026 19:40:27 GMT" + "value": "Wed, 08 Apr 2026 17:38:15 GMT" }, { "name": "vary", @@ -266,7 +266,7 @@ }, { "name": "x-forgerock-transactionid", - "value": "frodo-b502e16e-e234-4710-9804-f4b7ccaede84" + "value": "frodo-72af1624-6f63-48bc-8993-178cda96056d" }, { "name": "strict-transport-security", @@ -291,8 +291,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2026-03-24T19:40:27.751Z", - "time": 66, + "startedDateTime": "2026-04-08T17:38:15.054Z", + "time": 122, "timings": { "blocked": -1, "connect": -1, @@ -300,7 +300,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 66 + "wait": 122 } } ], From 588b35ece7a167badfae09cc3093e640e8eb1214 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Wed, 8 Apr 2026 11:52:36 -0600 Subject: [PATCH 3/4] Add // cloud to testing file --- test/e2e/config-manager-push-secret-mappings.e2e.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/config-manager-push-secret-mappings.e2e.test.js b/test/e2e/config-manager-push-secret-mappings.e2e.test.js index 958c53d40..8b2f92be0 100644 --- a/test/e2e/config-manager-push-secret-mappings.e2e.test.js +++ b/test/e2e/config-manager-push-secret-mappings.e2e.test.js @@ -47,7 +47,7 @@ */ /* -// ForgeOps +// Cloud FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://openam-frodo-dev.forgeblocks.com/am frodo config-manager push secret-mappings -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 secret-mappings -r bravo -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 secret-mappings -r alpha -n am.services.iot.cert.verification -D test/e2e/exports/fr-config-manager/cloud From 90789bcdb3bf32429f888b3fa22dbada158559c6 Mon Sep 17 00:00:00 2001 From: Dallin Sevy Date: Thu, 28 May 2026 09:47:14 -0600 Subject: [PATCH 4/4] update snapshots --- .../config-manager-push.test.js.snap | 2 +- ...nager-export-secret-mappings.e2e.test.js.snap | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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 ed03f8f5a..8ca5d604d 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,6 @@ Commands: ui-config [Experimental] Import UI configuration. (Cloud-only): - secret-mappings [Experimental] Import secret mappings. + secret-mappings [Experimental] Import secret mappings. " `; diff --git a/test/e2e/__snapshots__/config-manager-export-secret-mappings.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-export-secret-mappings.e2e.test.js.snap index 1d7290197..26b047051 100644 --- a/test/e2e/__snapshots__/config-manager-export-secret-mappings.e2e.test.js.snap +++ b/test/e2e/__snapshots__/config-manager-export-secret-mappings.e2e.test.js.snap @@ -52,6 +52,22 @@ exports[`frodo config-manager pulls "frodo config-manager pull secret-mappings - } `; +exports[`frodo config-manager pulls "frodo config-manager pull secret-mappings -D secretMappingTestDir": should export the secret-mappings in fr-config-manager style": secretMappingTestDir/realms/bravo/secret-mappings/am.services.httpclient.mtls.clientcert.testClientCert.secret.json 1`] = ` +{ + "_id": "am.services.httpclient.mtls.clientcert.testClientCert.secret", + "_rev": "243715290", + "_type": { + "_id": "mappings", + "collection": true, + "name": "Mappings", + }, + "aliases": [ + "esv-test-client-cert", + ], + "secretId": "am.services.httpclient.mtls.clientcert.testClientCert.secret", +} +`; + exports[`frodo config-manager pulls "frodo config-manager pull secret-mappings -r alpha -D secretMappingTestDir": should export the secret-mappings in alpha realm in fr-config-manager style" 1`] = `0`; exports[`frodo config-manager pulls "frodo config-manager pull secret-mappings -r alpha -D secretMappingTestDir": should export the secret-mappings in alpha realm in fr-config-manager style" 2`] = `""`;