diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-journeys.ts b/src/cli/config-manager/config-manager-push/config-manager-push-journeys.ts new file mode 100644 index 000000000..ac9b8a17d --- /dev/null +++ b/src/cli/config-manager/config-manager-push/config-manager-push-journeys.ts @@ -0,0 +1,74 @@ +import { frodo } from '@rockcarver/frodo-lib'; +import { Option } from 'commander'; + +import { configManagerImportJourneys } from '../../../configManagerOps/FrConfigJourneysOps'; +import { getTokens } from '../../../ops/AuthenticateOps'; +import { printMessage, verboseMessage } from '../../../utils/Console'; +import { FrodoCommand } from '../../FrodoCommand'; + +const { CLOUD_DEPLOYMENT_TYPE_KEY, FORGEOPS_DEPLOYMENT_TYPE_KEY } = + frodo.utils.constants; + +const deploymentTypes = [ + CLOUD_DEPLOYMENT_TYPE_KEY, + FORGEOPS_DEPLOYMENT_TYPE_KEY, +]; + +export default function setup() { + const program = new FrodoCommand( + 'frodo config-manager push journeys', + [], + deploymentTypes + ); + + program + .description('Import journeys.') + .addOption( + new Option( + '-n, --name ', + 'Journey name, imports the specified Journey.' + ) + ) + .addOption( + new Option( + '-r, --realm ', + 'Imports the journeys to the specified realm' + ) + ) + .addOption(new Option('-d, --push-dependencies', 'Push dependencies.')) + // TO DO: implementing for 'check' + // .addOption( + // new Option('-c, --check Check first if ESVs changed') + // ) + .action(async (host, realm, user, password, options, command) => { + command.handleDefaultArgsAndOpts( + host, + realm, + user, + password, + options, + command + ); + + if (await getTokens(false, true, deploymentTypes)) { + verboseMessage('Importing config entity journeys'); + const outcome = await configManagerImportJourneys( + options.name, + options.realm, + options.pushDependencies + ); + 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..8176a9a4a 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 @@ -8,6 +8,7 @@ import EmailProvider from './config-manager-push-email-provider'; import EmailTemplates from './config-manager-push-email-templates'; import Endpoints from './config-manager-push-endpoints'; import InternalRoles from './config-manager-push-internal-roles'; +import Journeys from './config-manager-push-journeys'; import Kba from './config-manager-push-kba'; import Locales from './config-manager-push-locales'; import ManagedObjects from './config-manager-push-managed-objects'; @@ -43,6 +44,7 @@ export default function setup() { program.addCommand(UiConfig().name('ui-config')); program.addCommand(Authentication().name('authentication')); program.addCommand(ConnectorDefinitions().name('connector-definitions')); + program.addCommand(Journeys().name('journeys')); return program; } diff --git a/src/configManagerOps/FrConfigJourneysOps.ts b/src/configManagerOps/FrConfigJourneysOps.ts index ba06b1ba0..4f779b7df 100644 --- a/src/configManagerOps/FrConfigJourneysOps.ts +++ b/src/configManagerOps/FrConfigJourneysOps.ts @@ -3,13 +3,16 @@ import { MultiTreeExportInterface, TreeExportOptions, } from '@rockcarver/frodo-lib/types/ops/JourneyOps'; +import fs from 'fs'; import { extractFrConfigDataToFile } from '../utils/Config'; import { printError, verboseMessage } from '../utils/Console'; import { existScript, realmList, safeFileName } from '../utils/FrConfig'; +const { readRealms } = frodo.realm; + const { saveJsonToFile, getFilePath } = frodo.utils; -const { exportJourneys } = frodo.authn.journey; +const { exportJourneys, importJourneys } = frodo.authn.journey; export async function configManagerExportJourneys( name?, @@ -203,3 +206,212 @@ function journeyNodeNeedsScript(node) { (!node.hasOwnProperty('useScript') || node.useScript) ); } + +/** + * Process a journey directory for configManagerImportJourneys + * @param journeyDir path to the journey directory + * @param journeyName name of the journey + * @param dependencies if true, recursively include inner tree dependencies + * @param journeysBaseDir base directory containing all journeys for the realm + * @param processedJourneys set of already-processed journey names to prevent circular references + * @returns map of journey names to their import data + */ +function processJourney( + journeyDir: string, + journeyName: string, + dependencies: boolean, + journeysBaseDir: string, + processedJourneys: Set = new Set() +): Record { + if (processedJourneys.has(journeyName)) { + return {}; + } + processedJourneys.add(journeyName); + + const treeJsonPath = `${journeyDir}/${journeyName}.json`; + const treeData = fs.readFileSync(treeJsonPath, 'utf8'); + const tree = JSON.parse(treeData); + + const journeyData = { + circlesOfTrust: {}, + emailTemplates: {}, + innerNodes: {}, + nodes: {}, + saml2Entities: {}, + scripts: {}, + socialIdentityProviders: {}, + themes: [], + tree, + variable: {}, + }; + + const innerTreeNames: string[] = []; + + const nodesDir = `${journeyDir}/nodes`; + if (fs.existsSync(nodesDir)) { + const entries = fs.readdirSync(nodesDir, { withFileTypes: true }); + + for (const entry of entries) { + if (entry.isFile() && entry.name.endsWith('.json')) { + const nodeData = fs.readFileSync(`${nodesDir}/${entry.name}`, 'utf8'); + const node = JSON.parse(nodeData); + journeyData.nodes[node._id] = node; + + if (dependencies && node._type?._id === 'InnerTreeEvaluatorNode') { + innerTreeNames.push(node.tree); + } + } + + if (entry.isDirectory()) { + const pageNodeDir = `${nodesDir}/${entry.name}`; + const innerFiles = fs.readdirSync(pageNodeDir); + for (const innerFile of innerFiles) { + if (!innerFile.endsWith('.json')) continue; + const innerData = fs.readFileSync( + `${pageNodeDir}/${innerFile}`, + 'utf8' + ); + const innerNode = JSON.parse(innerData); + journeyData.innerNodes[innerNode._id] = innerNode; + } + } + } + } + + const trees: Record = { + [journeyName]: journeyData, + }; + + if (dependencies) { + for (const innerTreeName of innerTreeNames) { + const innerJourneyDir = `${journeysBaseDir}/${innerTreeName}`; + + const innerTrees = processJourney( + innerJourneyDir, + innerTreeName, + dependencies, + journeysBaseDir, + processedJourneys + ); + Object.assign(trees, innerTrees); + } + } + + return trees; +} + +/** + * Import journeys from fr-config-manager file structure + * @param name optional journey name to import + * @param realm optional realm to import to + * @param dependencies if true, push inner tree dependencies + * @returns true if successful, false otherwise + */ +export async function configManagerImportJourneys( + name?: string, + realm?: string, + dependencies?: boolean +): Promise { + try { + if (realm === '/' || realm === '__default__realm__') { + return true; + } + + const options = { deps: dependencies ?? false, reUuid: false }; + + if (realm) { + const journeysBaseDir = getFilePath(`realms/${realm}/journeys`); + + if (name) { + const journeyDir = `${journeysBaseDir}/${name}`; + const trees = processJourney( + journeyDir, + name, + dependencies ?? false, + journeysBaseDir + ); + await importJourneys({ trees }, options); + } else { + const journeyDirs = fs + .readdirSync(journeysBaseDir, { withFileTypes: true }) + .filter((dirent) => dirent.isDirectory()) + .map((dirent) => dirent.name); + + const trees: Record = {}; + const processed = new Set(); + for (const journeyName of journeyDirs) { + const journeyDir = `${journeysBaseDir}/${journeyName}`; + const journeyTrees = processJourney( + journeyDir, + journeyName, + dependencies ?? false, + journeysBaseDir, + processed + ); + Object.assign(trees, journeyTrees); + } + await importJourneys({ trees }, options); + } + } else if (name) { + const readRealmNames = await readRealms(); + for (const realmName of readRealmNames) { + if (realmName.name === '/' || realmName.name === '__default__realm__') + continue; + state.setRealm(realmName.name); + + const journeysDir = getFilePath( + `realms${realmName.parentPath + realmName.name}/journeys` + ); + if (!fs.existsSync(journeysDir)) continue; + + const journeyDir = `${journeysDir}/${name}`; + if (!fs.existsSync(journeyDir)) continue; + + const trees = processJourney( + journeyDir, + name, + dependencies ?? false, + journeysDir + ); + await importJourneys({ trees }, options); + } + } else { + const readRealmNames = await readRealms(); + for (const realmName of readRealmNames) { + if (realmName.name === '/' || realmName.name === '__default__realm__') + continue; + state.setRealm(realmName.name); + + const journeysDir = getFilePath( + `realms${realmName.parentPath + realmName.name}/journeys` + ); + if (!fs.existsSync(journeysDir)) continue; + + const journeyDirs = fs + .readdirSync(journeysDir, { withFileTypes: true }) + .filter((dirent) => dirent.isDirectory()) + .map((dirent) => dirent.name); + + const trees: Record = {}; + const processed = new Set(); + for (const journeyName of journeyDirs) { + const journeyDir = `${journeysDir}/${journeyName}`; + const journeyTrees = processJourney( + journeyDir, + journeyName, + dependencies ?? false, + journeysDir, + processed + ); + Object.assign(trees, journeyTrees); + } + await importJourneys({ trees }, options); + } + } + + return true; + } catch (error) { + printError(error, `Error importing journeys`); + } + return false; +} diff --git a/test/client_cli/en/__snapshots__/config-manager-push-journeys.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-journeys.test.js.snap new file mode 100644 index 000000000..00498ff65 --- /dev/null +++ b/test/client_cli/en/__snapshots__/config-manager-push-journeys.test.js.snap @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CLI help interface for 'config-manager push journeys' should be expected english 1`] = ` +"Usage: frodo config-manager push journeys [options] [host] [realm] [username] [password] + +[Experimental] Import journeys. + +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: + -d, --push-dependencies Push dependencies. + -n, --name Journey name, imports the specified Journey. + -r, --realm Imports the journeys to 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..1fd679403 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 @@ -23,6 +23,7 @@ Commands: endpoints [Experimental] Import custom endpoints objects. help display help for command internal-roles [Experimental] Import internal roles. + journeys [Experimental] Import journeys. kba [Experimental] Import kba configuration. locales [Experimental] Import custom locales objects. managed-objects [Experimental] Import managed objects. diff --git a/test/client_cli/en/config-manager-push-journeys.test.js b/test/client_cli/en/config-manager-push-journeys.test.js new file mode 100644 index 000000000..6415e9956 --- /dev/null +++ b/test/client_cli/en/config-manager-push-journeys.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 journeys --help'; +const { stdout } = await exec(CMD); + +test("CLI help interface for 'config-manager push journeys' should be expected english", async () => { + expect(stdout).toMatchSnapshot(); +}); diff --git a/test/e2e/__snapshots__/config-manager-push-journeys.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-journeys.e2e.test.js.snap new file mode 100644 index 000000000..4bd102b5b --- /dev/null +++ b/test/e2e/__snapshots__/config-manager-push-journeys.e2e.test.js.snap @@ -0,0 +1,9 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`frodo config-manager push journeys "frodo config-manager push journeys -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import the journeys into forgeops" 1`] = `""`; + +exports[`frodo config-manager push journeys "frodo config-manager push journeys -d -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should resolve dependencies when importing to forgeops" 1`] = `""`; + +exports[`frodo config-manager push journeys "frodo config-manager push journeys -n testJourney -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import a specific journey by name into forgeops" 1`] = `""`; + +exports[`frodo config-manager push journeys "frodo config-manager push journeys -r alpha -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import a journey to a specific realm" 1`] = `""`; diff --git a/test/e2e/config-manager-push-journeys.e2e.test.js b/test/e2e/config-manager-push-journeys.e2e.test.js new file mode 100644 index 000000000..bbacc641e --- /dev/null +++ b/test/e2e/config-manager-push-journeys.e2e.test.js @@ -0,0 +1,89 @@ +/** + * 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 journeys -D test/e2e/exports/fr-config-manager/forgeops -m forgeops +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push journeys -n testJourney -D test/e2e/exports/fr-config-manager/forgeops -m forgeops +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push journeys -d -D test/e2e/exports/fr-config-manager/forgeops -m forgeops +FRODO_MOCK=record FRODO_NO_CACHE=1 FRODO_HOST=https://nightly.gcp.forgeops.com/am frodo config-manager push journeys -r alpha -D test/e2e/exports/fr-config-manager/forgeops -m forgeops +*/ + +import cp from 'child_process'; +import { promisify } from 'util'; +import { getEnv, removeAnsiEscapeCodes } from './utils/TestUtils'; +import { forgeops_connection as fc } from './utils/TestConfig'; + +const exec = promisify(cp.exec); + +process.env['FRODO_MOCK'] = '1'; +const forgeopsEnv = getEnv(fc); + +const allDirectory = "test/e2e/exports/fr-config-manager/forgeops"; +describe('frodo config-manager push journeys', () => { + test(`"frodo config-manager push journeys -D ${allDirectory} -m forgeops": should import the journeys into forgeops"`, async () => { + const CMD = `frodo config-manager push journeys -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push journeys -n testJourney -D ${allDirectory} -m forgeops": should import a specific journey by name into forgeops"`, async () => { + const CMD = `frodo config-manager push journeys -n fr -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push journeys -d -D ${allDirectory} -m forgeops": should resolve dependencies when importing to forgeops"`, async () => { + const CMD = `frodo config-manager push journeys -d -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push journeys -r alpha -D ${allDirectory} -m forgeops": should import a journey to a specific realm"`, async () => { + const CMD = `frodo config-manager push journeys -r alpha -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/journeys/testJourney/testJourney.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/journeys/testJourney/testJourney.json new file mode 100644 index 000000000..79ad70581 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/journeys/testJourney/testJourney.json @@ -0,0 +1,29 @@ +{ + "_id": "testJourney", + "_rev": "106502847", + "description": "test", + "enabled": true, + "entryNodeId": "e301438c-0bd0-429c-ab0c-66126501069a", + "identityResource": "managed/user", + "innerTreeOnly": false, + "mustRun": false, + "noSession": false, + "nodes": {}, + "staticNodes": { + "70e691a5-1e33-4ac3-a356-e7b6d60d92e0": { + "x": 500, + "y": 50 + }, + "e301438c-0bd0-429c-ab0c-66126501069a": { + "x": 500, + "y": 350 + }, + "startNode": { + "x": 50, + "y": 250 + } + }, + "uiConfig": { + "categories": "[]" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/am_1076162899/recording.har new file mode 100644 index 000000000..f820a863b --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/am_1076162899/recording.har @@ -0,0 +1,1086 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 370, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 587, + "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.415Z", + "time": 26, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 26 + } + }, + { + "_id": "9f5671275c36a1c0090d0df26ce0e93f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 2, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "resource=2.0, protocol=1.0" + }, + { + "name": "x-openam-username", + "value": "amadmin" + }, + { + "name": "x-openam-password", + "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" + }, + { + "name": "content-length", + "value": "2" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 497, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" + }, + "response": { + "bodySize": 167, + "content": { + "mimeType": "application/json", + "size": 167, + "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "iPlanetDirectoryPro", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "amlbcookie", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.455Z", + "time": 28, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 28 + } + }, + { + "_id": "6a3744385d3fd7416ea7089e610fa7e7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "resource=4.0" + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"tokenId\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "getSessionInfo" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/sessions/?_action=getSessionInfo" + }, + "response": { + "bodySize": 291, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 291, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-04-06T15:08:48Z\",\"maxIdleExpirationTime\":\"2026-04-06T15:38:48Z\",\"maxSessionExpirationTime\":\"2026-04-06T17:08:47Z\",\"properties\":{\"AMCtxId\":\"31ac0519-fad4-4dde-8165-7ba7c7672dc5-12482\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "291" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.492Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_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-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 520, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 257, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 257, + "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.506Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_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-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "protocol=2.0,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 554, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 462, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 462, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"1074975162\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[\"am-config\",\"platform.dev.trivir.com\",\"am\"]},{\"_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": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "462" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 636, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.631Z", + "time": 17, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 17 + } + }, + { + "_id": "1b5684afd52c9eaef24954b59c4a12b3", + "_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-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 611, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees?_queryFilter=true" + }, + "response": { + "bodySize": 11903, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 11903, + "text": "{\"result\":[{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}},{\"_id\":\"ResetPassword\",\"_rev\":\"-1854762395\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\",\"innerTreeOnly\":false,\"description\":\"Reset Password Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"06c97be5-7fdd-4739-aea1-ecc7fe082865\":{\"connections\":{\"outcome\":\"e4c752f9-c625-48c9-9644-a58802fa9e9c\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":453,\"y\":66},\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\":{\"connections\":{\"false\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\",\"true\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":271,\"y\":21},\"989f0bf8-a328-4217-b82b-5275d79ca8bd\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":819,\"y\":61},\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\":{\"connections\":{\"outcome\":\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":103,\"y\":50},\"e4c752f9-c625-48c9-9644-a58802fa9e9c\":{\"connections\":{\"outcome\":\"989f0bf8-a328-4217-b82b-5275d79ca8bd\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":643,\"y\":50}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":79},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":981,\"y\":147},\"startNode\":{\"x\":25,\"y\":25}}},{\"_id\":\"Agent\",\"_rev\":\"1590168042\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Agent\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"35cb0861-c160-47ff-808c-3429ba18772c\":{\"connections\":{\"outcome\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":350,\"y\":200},\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\":{\"connections\":{\"false\":\"35cb0861-c160-47ff-808c-3429ba18772c\",\"true\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25},\"7a910023-cad2-4f49-9ce0-1a0c711613d3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Agent Data Store Decision\",\"nodeType\":\"AgentDataStoreDecisionNode\",\"x\":700,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"amsterService\",\"_rev\":\"-1457460165\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Amster utility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Amster Jwt Decision Node\",\"nodeType\":\"AmsterJwtDecisionNode\",\"x\":200,\"y\":30}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":30},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":130},\"startNode\":{\"x\":50,\"y\":30}}},{\"_id\":\"Registration\",\"_rev\":\"-285075550\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\",\"innerTreeOnly\":false,\"description\":\"Platform Registration Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Registration\\\"]\"},\"nodes\":{\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\":{\"connections\":{\"outcome\":\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":261,\"y\":168},\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\":{\"connections\":{\"outcome\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":681,\"y\":144},\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\":{\"connections\":{\"CREATED\":\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\",\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\"},\"displayName\":\"Create Object\",\"nodeType\":\"CreateObjectNode\",\"x\":537,\"y\":206}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":905,\"y\":171},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":741,\"y\":293},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ProgressiveProfile\",\"_rev\":\"-840266108\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"8afdaec3-275e-4301-bb53-34f03e6a4b29\",\"innerTreeOnly\":false,\"description\":\"Prompt for missing preferences on 3rd login\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Progressive Profile\\\"]\"},\"nodes\":{\"423a959a-a1b9-498a-b0f7-596b6b6e775a\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":766,\"y\":36},\"8afdaec3-275e-4301-bb53-34f03e6a4b29\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\"},\"displayName\":\"Login Count Decision\",\"nodeType\":\"LoginCountDecisionNode\",\"x\":152,\"y\":36},\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\"},\"displayName\":\"Query Filter Decision\",\"nodeType\":\"QueryFilterDecisionNode\",\"x\":357,\"y\":36},\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\":{\"connections\":{\"outcome\":\"423a959a-a1b9-498a-b0f7-596b6b6e775a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":555,\"y\":20}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":802,\"y\":312},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":919,\"y\":171},\"startNode\":{\"x\":50,\"y\":58.5}}},{\"_id\":\"ldapService\",\"_rev\":\"-1619916438\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\",\"innerTreeOnly\":false,\"description\":\"Authentication tree replacing old default chain for backward compatibility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"6c8349cc-7260-3e62-a3b1-396831a8398a\":{\"connections\":{\"outcome\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":500,\"y\":25},\"c81e728d-9d4c-3f63-af06-7f89cc14862d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":800,\"y\":25},\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\":{\"connections\":{\"false\":\"6c8349cc-7260-3e62-a3b1-396831a8398a\",\"true\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ForgottenUsername\",\"_rev\":\"350164141\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"5e2a7c95-94af-4b23-8724-deb13853726a\",\"innerTreeOnly\":false,\"description\":\"Forgotten Username Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Username Reset\\\"]\"},\"nodes\":{\"5e2a7c95-94af-4b23-8724-deb13853726a\":{\"connections\":{\"outcome\":\"bf9ea8d5-9802-4f26-9664-a21840faac23\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":139,\"y\":146},\"b93ce36e-1976-4610-b24f-8d6760b5463b\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":767,\"y\":188},\"bf9ea8d5-9802-4f26-9664-a21840faac23\":{\"connections\":{\"false\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\",\"true\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":324,\"y\":152},\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\":{\"connections\":{\"outcome\":\"b93ce36e-1976-4610-b24f-8d6760b5463b\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":563,\"y\":193}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":149},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":982,\"y\":252},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"UpdatePassword\",\"_rev\":\"1874809216\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"d1b79744-493a-44fe-bc26-7d324a8caa4e\",\"innerTreeOnly\":false,\"description\":\"Update password using active session\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\":{\"connections\":{\"false\":\"a3d97b53-e38a-4b24-aed0-a021050eb744\",\"true\":\"20237b34-26cb-4a0b-958f-abb422290d42\"},\"displayName\":\"Attribute Present Decision\",\"nodeType\":\"AttributePresentDecisionNode\",\"x\":288,\"y\":133},\"20237b34-26cb-4a0b-958f-abb422290d42\":{\"connections\":{\"outcome\":\"7d1deabe-cd98-49c8-943f-ca12305775f3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":526,\"y\":46},\"3990ce1f-cce6-435b-ae1c-f138e89411c1\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":1062,\"y\":189},\"7d1deabe-cd98-49c8-943f-ca12305775f3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":722,\"y\":45},\"a3d97b53-e38a-4b24-aed0-a021050eb744\":{\"connections\":{\"outcome\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":659,\"y\":223},\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\":{\"connections\":{\"outcome\":\"3990ce1f-cce6-435b-ae1c-f138e89411c1\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":943,\"y\":30},\"d1b79744-493a-44fe-bc26-7d324a8caa4e\":{\"connections\":{\"outcome\":\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\"},\"displayName\":\"Get Session Data\",\"nodeType\":\"SessionDataNode\",\"x\":122,\"y\":129}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1212,\"y\":128},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":939,\"y\":290},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"Login\",\"_rev\":\"-2008678727\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\",\"innerTreeOnly\":false,\"description\":\"Platform Login Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"bba3e0d8-8525-4e82-bf48-ac17f7988917\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":315,\"y\":140},\"33b24514-3e50-4180-8f08-ab6f4e51b07e\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":815,\"y\":180},\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\":{\"connections\":{\"outcome\":\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":136,\"y\":59},\"bba3e0d8-8525-4e82-bf48-ac17f7988917\":{\"connections\":{\"outcome\":\"33b24514-3e50-4180-8f08-ab6f4e51b07e\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":564,\"y\":132}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1008,\"y\":186},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":624,\"y\":267},\"startNode\":{\"x\":50,\"y\":25}}}],\"resultCount\":10,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.1,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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 644, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.654Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + }, + { + "_id": "e516217fa98dca815f8405cdd0fccecc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 400, + "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-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "400" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 626, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"testJourney\",\"description\":\"test\",\"enabled\":true,\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"identityResource\":\"managed/user\",\"innerTreeOnly\":false,\"mustRun\":false,\"noSession\":false,\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}},\"uiConfig\":{\"categories\":\"[]\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/testJourney" + }, + "response": { + "bodySize": 419, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 419, + "text": "{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "419" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=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": "\"106502847\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 629, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.673Z", + "time": 16, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 16 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/oauth2_393036114/recording.har new file mode 100644 index 000000000..3d8162a1e --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_D_m_314327836/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/0_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a684e2f67fd67a4263878c3124af167a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 365, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "365" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 565, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=UT-V7GkEQrkvC0Uf8hHxxCpr0Tk.*AAJTSQACMDIAAlNLABxoSmx4RFRHdUQxazZKWkx4S3IxQ2hHeER5ZE09AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=W81Z085VX8u_AhByXiQen1PERK1cyWiqyGu7VOTfp2U&code_challenge_method=S256" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/authorize" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "expires": "1970-01-01T00:00:00.000Z", + "httpOnly": true, + "name": "OAUTH_REQUEST_ATTRIBUTES", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=lgWjV5n97y5Zqe1li6U2gqlN5vU&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 673, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=lgWjV5n97y5Zqe1li6U2gqlN5vU&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-04-06T15:08:48.520Z", + "time": 17, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 17 + } + }, + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 224, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-73a260f9-a381-4c8b-8736-0ad421ee3f16" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "224" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=lgWjV5n97y5Zqe1li6U2gqlN5vU&code_verifier=t-udV2B7dp7tnauthStbK6xOzNytRI67h4PVcq9Z848" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1249, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1249, + "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:08:48 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1249" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 405, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:08:48.545Z", + "time": 74, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 74 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/am_1076162899/recording.har new file mode 100644 index 000000000..20207eccb --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/am_1076162899/recording.har @@ -0,0 +1,1086 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/0_d_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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 370, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 587, + "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 630, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.098Z", + "time": 34, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 34 + } + }, + { + "_id": "9f5671275c36a1c0090d0df26ce0e93f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 2, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "resource=2.0, protocol=1.0" + }, + { + "name": "x-openam-username", + "value": "amadmin" + }, + { + "name": "x-openam-password", + "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" + }, + { + "name": "content-length", + "value": "2" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 497, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" + }, + "response": { + "bodySize": 167, + "content": { + "mimeType": "application/json", + "size": 167, + "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "iPlanetDirectoryPro", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "amlbcookie", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.141Z", + "time": 32, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 32 + } + }, + { + "_id": "6a3744385d3fd7416ea7089e610fa7e7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "resource=4.0" + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"tokenId\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "getSessionInfo" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/sessions/?_action=getSessionInfo" + }, + "response": { + "bodySize": 291, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 291, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-04-06T15:10:19Z\",\"maxIdleExpirationTime\":\"2026-04-06T15:40:19Z\",\"maxSessionExpirationTime\":\"2026-04-06T17:10:18Z\",\"properties\":{\"AMCtxId\":\"31ac0519-fad4-4dde-8165-7ba7c7672dc5-12648\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "291" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.183Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_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-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 520, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 257, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 257, + "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.198Z", + "time": 9, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 9 + } + }, + { + "_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-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "protocol=2.0,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 554, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 462, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 462, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"1074975162\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[\"am-config\",\"platform.dev.trivir.com\",\"am\"]},{\"_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": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "462" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 637, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.284Z", + "time": 6, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 6 + } + }, + { + "_id": "1b5684afd52c9eaef24954b59c4a12b3", + "_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-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 611, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees?_queryFilter=true" + }, + "response": { + "bodySize": 11903, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 11903, + "text": "{\"result\":[{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}},{\"_id\":\"ResetPassword\",\"_rev\":\"-1854762395\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\",\"innerTreeOnly\":false,\"description\":\"Reset Password Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"06c97be5-7fdd-4739-aea1-ecc7fe082865\":{\"connections\":{\"outcome\":\"e4c752f9-c625-48c9-9644-a58802fa9e9c\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":453,\"y\":66},\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\":{\"connections\":{\"false\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\",\"true\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":271,\"y\":21},\"989f0bf8-a328-4217-b82b-5275d79ca8bd\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":819,\"y\":61},\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\":{\"connections\":{\"outcome\":\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":103,\"y\":50},\"e4c752f9-c625-48c9-9644-a58802fa9e9c\":{\"connections\":{\"outcome\":\"989f0bf8-a328-4217-b82b-5275d79ca8bd\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":643,\"y\":50}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":79},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":981,\"y\":147},\"startNode\":{\"x\":25,\"y\":25}}},{\"_id\":\"Agent\",\"_rev\":\"1590168042\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Agent\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"35cb0861-c160-47ff-808c-3429ba18772c\":{\"connections\":{\"outcome\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":350,\"y\":200},\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\":{\"connections\":{\"false\":\"35cb0861-c160-47ff-808c-3429ba18772c\",\"true\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25},\"7a910023-cad2-4f49-9ce0-1a0c711613d3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Agent Data Store Decision\",\"nodeType\":\"AgentDataStoreDecisionNode\",\"x\":700,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"amsterService\",\"_rev\":\"-1457460165\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Amster utility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Amster Jwt Decision Node\",\"nodeType\":\"AmsterJwtDecisionNode\",\"x\":200,\"y\":30}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":30},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":130},\"startNode\":{\"x\":50,\"y\":30}}},{\"_id\":\"Registration\",\"_rev\":\"-285075550\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\",\"innerTreeOnly\":false,\"description\":\"Platform Registration Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Registration\\\"]\"},\"nodes\":{\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\":{\"connections\":{\"outcome\":\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":261,\"y\":168},\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\":{\"connections\":{\"outcome\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":681,\"y\":144},\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\":{\"connections\":{\"CREATED\":\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\",\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\"},\"displayName\":\"Create Object\",\"nodeType\":\"CreateObjectNode\",\"x\":537,\"y\":206}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":905,\"y\":171},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":741,\"y\":293},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ProgressiveProfile\",\"_rev\":\"-840266108\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"8afdaec3-275e-4301-bb53-34f03e6a4b29\",\"innerTreeOnly\":false,\"description\":\"Prompt for missing preferences on 3rd login\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Progressive Profile\\\"]\"},\"nodes\":{\"423a959a-a1b9-498a-b0f7-596b6b6e775a\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":766,\"y\":36},\"8afdaec3-275e-4301-bb53-34f03e6a4b29\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\"},\"displayName\":\"Login Count Decision\",\"nodeType\":\"LoginCountDecisionNode\",\"x\":152,\"y\":36},\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\"},\"displayName\":\"Query Filter Decision\",\"nodeType\":\"QueryFilterDecisionNode\",\"x\":357,\"y\":36},\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\":{\"connections\":{\"outcome\":\"423a959a-a1b9-498a-b0f7-596b6b6e775a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":555,\"y\":20}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":802,\"y\":312},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":919,\"y\":171},\"startNode\":{\"x\":50,\"y\":58.5}}},{\"_id\":\"ldapService\",\"_rev\":\"-1619916438\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\",\"innerTreeOnly\":false,\"description\":\"Authentication tree replacing old default chain for backward compatibility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"6c8349cc-7260-3e62-a3b1-396831a8398a\":{\"connections\":{\"outcome\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":500,\"y\":25},\"c81e728d-9d4c-3f63-af06-7f89cc14862d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":800,\"y\":25},\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\":{\"connections\":{\"false\":\"6c8349cc-7260-3e62-a3b1-396831a8398a\",\"true\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ForgottenUsername\",\"_rev\":\"350164141\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"5e2a7c95-94af-4b23-8724-deb13853726a\",\"innerTreeOnly\":false,\"description\":\"Forgotten Username Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Username Reset\\\"]\"},\"nodes\":{\"5e2a7c95-94af-4b23-8724-deb13853726a\":{\"connections\":{\"outcome\":\"bf9ea8d5-9802-4f26-9664-a21840faac23\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":139,\"y\":146},\"b93ce36e-1976-4610-b24f-8d6760b5463b\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":767,\"y\":188},\"bf9ea8d5-9802-4f26-9664-a21840faac23\":{\"connections\":{\"false\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\",\"true\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":324,\"y\":152},\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\":{\"connections\":{\"outcome\":\"b93ce36e-1976-4610-b24f-8d6760b5463b\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":563,\"y\":193}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":149},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":982,\"y\":252},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"UpdatePassword\",\"_rev\":\"1874809216\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"d1b79744-493a-44fe-bc26-7d324a8caa4e\",\"innerTreeOnly\":false,\"description\":\"Update password using active session\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\":{\"connections\":{\"false\":\"a3d97b53-e38a-4b24-aed0-a021050eb744\",\"true\":\"20237b34-26cb-4a0b-958f-abb422290d42\"},\"displayName\":\"Attribute Present Decision\",\"nodeType\":\"AttributePresentDecisionNode\",\"x\":288,\"y\":133},\"20237b34-26cb-4a0b-958f-abb422290d42\":{\"connections\":{\"outcome\":\"7d1deabe-cd98-49c8-943f-ca12305775f3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":526,\"y\":46},\"3990ce1f-cce6-435b-ae1c-f138e89411c1\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":1062,\"y\":189},\"7d1deabe-cd98-49c8-943f-ca12305775f3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":722,\"y\":45},\"a3d97b53-e38a-4b24-aed0-a021050eb744\":{\"connections\":{\"outcome\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":659,\"y\":223},\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\":{\"connections\":{\"outcome\":\"3990ce1f-cce6-435b-ae1c-f138e89411c1\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":943,\"y\":30},\"d1b79744-493a-44fe-bc26-7d324a8caa4e\":{\"connections\":{\"outcome\":\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\"},\"displayName\":\"Get Session Data\",\"nodeType\":\"SessionDataNode\",\"x\":122,\"y\":129}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1212,\"y\":128},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":939,\"y\":290},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"Login\",\"_rev\":\"-2008678727\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\",\"innerTreeOnly\":false,\"description\":\"Platform Login Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"bba3e0d8-8525-4e82-bf48-ac17f7988917\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":315,\"y\":140},\"33b24514-3e50-4180-8f08-ab6f4e51b07e\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":815,\"y\":180},\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\":{\"connections\":{\"outcome\":\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":136,\"y\":59},\"bba3e0d8-8525-4e82-bf48-ac17f7988917\":{\"connections\":{\"outcome\":\"33b24514-3e50-4180-8f08-ab6f4e51b07e\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":564,\"y\":132}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1008,\"y\":186},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":624,\"y\":267},\"startNode\":{\"x\":50,\"y\":25}}}],\"resultCount\":10,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.1,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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 644, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.298Z", + "time": 8, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 8 + } + }, + { + "_id": "e516217fa98dca815f8405cdd0fccecc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 400, + "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-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "400" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 626, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"testJourney\",\"description\":\"test\",\"enabled\":true,\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"identityResource\":\"managed/user\",\"innerTreeOnly\":false,\"mustRun\":false,\"noSession\":false,\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}},\"uiConfig\":{\"categories\":\"[]\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/testJourney" + }, + "response": { + "bodySize": 419, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 419, + "text": "{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "419" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=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": "\"106502847\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 629, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.314Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/oauth2_393036114/recording.har new file mode 100644 index 000000000..a958a56f0 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_d_D_m_639961791/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/0_d_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a684e2f67fd67a4263878c3124af167a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 365, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "365" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 565, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=HTHgH8m_4svsW7qalgqqsTQ07fQ.*AAJTSQACMDIAAlNLABx5Q3VHSXlDN0prNGJPNzJaVTJYOTFlZEN2eUU9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=rZstOMJj2uB_yKBacVLnNqHVGXnjPvBc0BGmHxwVPyA&code_challenge_method=S256" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/authorize" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "expires": "1970-01-01T00:00:00.000Z", + "httpOnly": true, + "name": "OAUTH_REQUEST_ATTRIBUTES", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=umfzvWr9eSNdirRN5y6P8Aq9GEo&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 671, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=umfzvWr9eSNdirRN5y6P8Aq9GEo&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-04-06T15:10:19.217Z", + "time": 16, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 16 + } + }, + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 224, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-1e850ad1-635a-40c3-a392-488b31c0b867" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "224" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=umfzvWr9eSNdirRN5y6P8Aq9GEo&code_verifier=5sJvAYc_hlGKPBDofP5hTqnqlDSn6RsgzGTSCohBu3o" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1249, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1249, + "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:10:19 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1249" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 405, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:10:19.241Z", + "time": 36, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 36 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/am_1076162899/recording.har new file mode 100644 index 000000000..c673dbe4b --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/am_1076162899/recording.har @@ -0,0 +1,1086 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 370, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 587, + "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.112Z", + "time": 29, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 29 + } + }, + { + "_id": "9f5671275c36a1c0090d0df26ce0e93f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 2, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "resource=2.0, protocol=1.0" + }, + { + "name": "x-openam-username", + "value": "amadmin" + }, + { + "name": "x-openam-password", + "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" + }, + { + "name": "content-length", + "value": "2" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 497, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" + }, + "response": { + "bodySize": 167, + "content": { + "mimeType": "application/json", + "size": 167, + "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "iPlanetDirectoryPro", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "amlbcookie", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.147Z", + "time": 18, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 18 + } + }, + { + "_id": "6a3744385d3fd7416ea7089e610fa7e7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "resource=4.0" + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"tokenId\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "getSessionInfo" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/sessions/?_action=getSessionInfo" + }, + "response": { + "bodySize": 291, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 291, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-04-06T15:09:17Z\",\"maxIdleExpirationTime\":\"2026-04-06T15:39:17Z\",\"maxSessionExpirationTime\":\"2026-04-06T17:09:16Z\",\"properties\":{\"AMCtxId\":\"31ac0519-fad4-4dde-8165-7ba7c7672dc5-12560\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "291" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.171Z", + "time": 5, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 5 + } + }, + { + "_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-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 520, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 257, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 257, + "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 630, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.182Z", + "time": 6, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 6 + } + }, + { + "_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-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "protocol=2.0,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 554, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/global-config/realms/?_queryFilter=true" + }, + "response": { + "bodySize": 462, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 462, + "text": "{\"result\":[{\"_id\":\"Lw\",\"_rev\":\"1074975162\",\"parentPath\":null,\"active\":true,\"name\":\"/\",\"aliases\":[\"am-config\",\"platform.dev.trivir.com\",\"am\"]},{\"_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": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "462" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 637, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.261Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + }, + { + "_id": "1b5684afd52c9eaef24954b59c4a12b3", + "_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-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 611, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees?_queryFilter=true" + }, + "response": { + "bodySize": 11903, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 11903, + "text": "{\"result\":[{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}},{\"_id\":\"ResetPassword\",\"_rev\":\"-1854762395\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\",\"innerTreeOnly\":false,\"description\":\"Reset Password Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"06c97be5-7fdd-4739-aea1-ecc7fe082865\":{\"connections\":{\"outcome\":\"e4c752f9-c625-48c9-9644-a58802fa9e9c\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":453,\"y\":66},\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\":{\"connections\":{\"false\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\",\"true\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":271,\"y\":21},\"989f0bf8-a328-4217-b82b-5275d79ca8bd\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":819,\"y\":61},\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\":{\"connections\":{\"outcome\":\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":103,\"y\":50},\"e4c752f9-c625-48c9-9644-a58802fa9e9c\":{\"connections\":{\"outcome\":\"989f0bf8-a328-4217-b82b-5275d79ca8bd\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":643,\"y\":50}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":79},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":981,\"y\":147},\"startNode\":{\"x\":25,\"y\":25}}},{\"_id\":\"Agent\",\"_rev\":\"1590168042\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Agent\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"35cb0861-c160-47ff-808c-3429ba18772c\":{\"connections\":{\"outcome\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":350,\"y\":200},\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\":{\"connections\":{\"false\":\"35cb0861-c160-47ff-808c-3429ba18772c\",\"true\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25},\"7a910023-cad2-4f49-9ce0-1a0c711613d3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Agent Data Store Decision\",\"nodeType\":\"AgentDataStoreDecisionNode\",\"x\":700,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"amsterService\",\"_rev\":\"-1457460165\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Amster utility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Amster Jwt Decision Node\",\"nodeType\":\"AmsterJwtDecisionNode\",\"x\":200,\"y\":30}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":30},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":130},\"startNode\":{\"x\":50,\"y\":30}}},{\"_id\":\"Registration\",\"_rev\":\"-285075550\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\",\"innerTreeOnly\":false,\"description\":\"Platform Registration Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Registration\\\"]\"},\"nodes\":{\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\":{\"connections\":{\"outcome\":\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":261,\"y\":168},\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\":{\"connections\":{\"outcome\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":681,\"y\":144},\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\":{\"connections\":{\"CREATED\":\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\",\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\"},\"displayName\":\"Create Object\",\"nodeType\":\"CreateObjectNode\",\"x\":537,\"y\":206}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":905,\"y\":171},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":741,\"y\":293},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ProgressiveProfile\",\"_rev\":\"-840266108\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"8afdaec3-275e-4301-bb53-34f03e6a4b29\",\"innerTreeOnly\":false,\"description\":\"Prompt for missing preferences on 3rd login\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Progressive Profile\\\"]\"},\"nodes\":{\"423a959a-a1b9-498a-b0f7-596b6b6e775a\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":766,\"y\":36},\"8afdaec3-275e-4301-bb53-34f03e6a4b29\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\"},\"displayName\":\"Login Count Decision\",\"nodeType\":\"LoginCountDecisionNode\",\"x\":152,\"y\":36},\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\"},\"displayName\":\"Query Filter Decision\",\"nodeType\":\"QueryFilterDecisionNode\",\"x\":357,\"y\":36},\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\":{\"connections\":{\"outcome\":\"423a959a-a1b9-498a-b0f7-596b6b6e775a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":555,\"y\":20}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":802,\"y\":312},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":919,\"y\":171},\"startNode\":{\"x\":50,\"y\":58.5}}},{\"_id\":\"ldapService\",\"_rev\":\"-1619916438\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\",\"innerTreeOnly\":false,\"description\":\"Authentication tree replacing old default chain for backward compatibility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"6c8349cc-7260-3e62-a3b1-396831a8398a\":{\"connections\":{\"outcome\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":500,\"y\":25},\"c81e728d-9d4c-3f63-af06-7f89cc14862d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":800,\"y\":25},\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\":{\"connections\":{\"false\":\"6c8349cc-7260-3e62-a3b1-396831a8398a\",\"true\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ForgottenUsername\",\"_rev\":\"350164141\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"5e2a7c95-94af-4b23-8724-deb13853726a\",\"innerTreeOnly\":false,\"description\":\"Forgotten Username Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Username Reset\\\"]\"},\"nodes\":{\"5e2a7c95-94af-4b23-8724-deb13853726a\":{\"connections\":{\"outcome\":\"bf9ea8d5-9802-4f26-9664-a21840faac23\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":139,\"y\":146},\"b93ce36e-1976-4610-b24f-8d6760b5463b\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":767,\"y\":188},\"bf9ea8d5-9802-4f26-9664-a21840faac23\":{\"connections\":{\"false\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\",\"true\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":324,\"y\":152},\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\":{\"connections\":{\"outcome\":\"b93ce36e-1976-4610-b24f-8d6760b5463b\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":563,\"y\":193}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":149},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":982,\"y\":252},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"UpdatePassword\",\"_rev\":\"1874809216\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"d1b79744-493a-44fe-bc26-7d324a8caa4e\",\"innerTreeOnly\":false,\"description\":\"Update password using active session\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\":{\"connections\":{\"false\":\"a3d97b53-e38a-4b24-aed0-a021050eb744\",\"true\":\"20237b34-26cb-4a0b-958f-abb422290d42\"},\"displayName\":\"Attribute Present Decision\",\"nodeType\":\"AttributePresentDecisionNode\",\"x\":288,\"y\":133},\"20237b34-26cb-4a0b-958f-abb422290d42\":{\"connections\":{\"outcome\":\"7d1deabe-cd98-49c8-943f-ca12305775f3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":526,\"y\":46},\"3990ce1f-cce6-435b-ae1c-f138e89411c1\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":1062,\"y\":189},\"7d1deabe-cd98-49c8-943f-ca12305775f3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":722,\"y\":45},\"a3d97b53-e38a-4b24-aed0-a021050eb744\":{\"connections\":{\"outcome\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":659,\"y\":223},\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\":{\"connections\":{\"outcome\":\"3990ce1f-cce6-435b-ae1c-f138e89411c1\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":943,\"y\":30},\"d1b79744-493a-44fe-bc26-7d324a8caa4e\":{\"connections\":{\"outcome\":\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\"},\"displayName\":\"Get Session Data\",\"nodeType\":\"SessionDataNode\",\"x\":122,\"y\":129}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1212,\"y\":128},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":939,\"y\":290},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"Login\",\"_rev\":\"-2008678727\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\",\"innerTreeOnly\":false,\"description\":\"Platform Login Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"bba3e0d8-8525-4e82-bf48-ac17f7988917\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":315,\"y\":140},\"33b24514-3e50-4180-8f08-ab6f4e51b07e\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":815,\"y\":180},\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\":{\"connections\":{\"outcome\":\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":136,\"y\":59},\"bba3e0d8-8525-4e82-bf48-ac17f7988917\":{\"connections\":{\"outcome\":\"33b24514-3e50-4180-8f08-ab6f4e51b07e\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":564,\"y\":132}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1008,\"y\":186},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":624,\"y\":267},\"startNode\":{\"x\":50,\"y\":25}}}],\"resultCount\":10,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.1,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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 644, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.278Z", + "time": 8, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 8 + } + }, + { + "_id": "e516217fa98dca815f8405cdd0fccecc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 400, + "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-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "400" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 626, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"testJourney\",\"description\":\"test\",\"enabled\":true,\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"identityResource\":\"managed/user\",\"innerTreeOnly\":false,\"mustRun\":false,\"noSession\":false,\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}},\"uiConfig\":{\"categories\":\"[]\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/testJourney" + }, + "response": { + "bodySize": 419, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 419, + "text": "{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "419" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=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": "\"106502847\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 629, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.293Z", + "time": 9, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 9 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/oauth2_393036114/recording.har new file mode 100644 index 000000000..5dbee3420 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_n_D_m_1348920437/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/0_n_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a684e2f67fd67a4263878c3124af167a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 365, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "365" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 565, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=GgF_zEAaZhxSB_ifxU_ejEuGzAE.*AAJTSQACMDIAAlNLABxVNjBlMVgybUhna0xQQTBCNURtWDI5bnVldEU9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=VUv_5m3z_7uwdrXFGMpBg4QTFavKuTzkEAAk8cNm4JI&code_challenge_method=S256" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/authorize" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "expires": "1970-01-01T00:00:00.000Z", + "httpOnly": true, + "name": "OAUTH_REQUEST_ATTRIBUTES", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=zYbQtp8bgkrOkcx1xOniExxonDA&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 673, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=zYbQtp8bgkrOkcx1xOniExxonDA&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-04-06T15:09:17.195Z", + "time": 14, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 14 + } + }, + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 224, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-5081b650-f9d5-4e28-b92e-82b0a18165f4" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "224" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=zYbQtp8bgkrOkcx1xOniExxonDA&code_verifier=BGZ0A4cQ_f8uQ0Zu08EufFzrwChFUnHbHlVo138fiBE" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1249, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1249, + "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:09:17 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1249" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 405, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:09:17.220Z", + "time": 35, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 35 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/am_1076162899/recording.har new file mode 100644 index 000000000..017ddbe10 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/am_1076162899/recording.har @@ -0,0 +1,937 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/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-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "resource=1.1" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 370, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/*" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 587, + "text": "{\"_id\":\"*\",\"_rev\":\"2075994313\",\"domains\":[],\"protectedUserAttributes\":[\"telephoneNumber\",\"mail\"],\"cookieName\":\"iPlanetDirectoryPro\",\"secureCookie\":true,\"forgotPassword\":\"false\",\"forgotUsername\":\"false\",\"kbaEnabled\":\"false\",\"selfRegistration\":\"false\",\"lang\":\"en-US\",\"successfulUserRegistrationDestination\":\"default\",\"socialImplementations\":[],\"referralsEnabled\":\"false\",\"zeroPageLogin\":{\"enabled\":false,\"refererWhitelist\":[],\"allowedWithoutReferer\":true},\"realm\":\"/\",\"xuiUserSessionValidationEnabled\":true,\"fileBasedConfiguration\":true,\"userIdAttributes\":[],\"nodeDesignerXuiEnabled\":true}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:39 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:39.946Z", + "time": 26, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 26 + } + }, + { + "_id": "9f5671275c36a1c0090d0df26ce0e93f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 2, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "resource=2.0, protocol=1.0" + }, + { + "name": "x-openam-username", + "value": "amadmin" + }, + { + "name": "x-openam-password", + "value": "41ghjnKpNFAFU/HXw82HbFbitYNOOJ0g" + }, + { + "name": "content-length", + "value": "2" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 497, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/authenticate" + }, + "response": { + "bodySize": 167, + "content": { + "mimeType": "application/json", + "size": 167, + "text": "{\"tokenId\":\"\",\"successUrl\":\"/am/console\",\"realm\":\"/\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "iPlanetDirectoryPro", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + }, + { + "httpOnly": true, + "name": "amlbcookie", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:39 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:39.979Z", + "time": 20, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 20 + } + }, + { + "_id": "7a2803b95b7b030f104baf5a89ef50c3", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 128, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "resource=4.0" + }, + { + "name": "content-length", + "value": "128" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 437, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"tokenId\":\"\"}" + }, + "queryString": [ + { + "name": "_action", + "value": "getSessionInfo" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/sessions/?_action=getSessionInfo" + }, + "response": { + "bodySize": 291, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 291, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-04-06T15:11:39Z\",\"maxIdleExpirationTime\":\"2026-04-06T15:41:39Z\",\"maxSessionExpirationTime\":\"2026-04-06T17:11:38Z\",\"properties\":{\"AMCtxId\":\"31ac0519-fad4-4dde-8165-7ba7c7672dc5-12747\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:39 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "291" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:40.006Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_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-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 520, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/serverinfo/version" + }, + "response": { + "bodySize": 257, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 257, + "text": "{\"_id\":\"version\",\"_rev\":\"-466575464\",\"version\":\"8.0.1\",\"fullVersion\":\"ForgeRock Access Management 8.0.1 Build b59bc0908346197b0c33afcb9e733d0400feeea1 (2025-April-15 11:37)\",\"revision\":\"b59bc0908346197b0c33afcb9e733d0400feeea1\",\"date\":\"2025-April-15 11:37\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:39 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:40.025Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_id": "1b5684afd52c9eaef24954b59c4a12b3", + "_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-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 611, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "_queryFilter", + "value": "true" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees?_queryFilter=true" + }, + "response": { + "bodySize": 11903, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 11903, + "text": "{\"result\":[{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}},{\"_id\":\"ResetPassword\",\"_rev\":\"-1854762395\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\",\"innerTreeOnly\":false,\"description\":\"Reset Password Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"06c97be5-7fdd-4739-aea1-ecc7fe082865\":{\"connections\":{\"outcome\":\"e4c752f9-c625-48c9-9644-a58802fa9e9c\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":453,\"y\":66},\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\":{\"connections\":{\"false\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\",\"true\":\"06c97be5-7fdd-4739-aea1-ecc7fe082865\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":271,\"y\":21},\"989f0bf8-a328-4217-b82b-5275d79ca8bd\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":819,\"y\":61},\"cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b\":{\"connections\":{\"outcome\":\"21b8ddf3-0203-4ae1-ab05-51cf3a3a707a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":103,\"y\":50},\"e4c752f9-c625-48c9-9644-a58802fa9e9c\":{\"connections\":{\"outcome\":\"989f0bf8-a328-4217-b82b-5275d79ca8bd\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":643,\"y\":50}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":79},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":981,\"y\":147},\"startNode\":{\"x\":25,\"y\":25}}},{\"_id\":\"Agent\",\"_rev\":\"1590168042\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Agent\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"35cb0861-c160-47ff-808c-3429ba18772c\":{\"connections\":{\"outcome\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":350,\"y\":200},\"6c24a892-4bae-48ad-8d9c-8061257c9ed7\":{\"connections\":{\"false\":\"35cb0861-c160-47ff-808c-3429ba18772c\",\"true\":\"7a910023-cad2-4f49-9ce0-1a0c711613d3\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25},\"7a910023-cad2-4f49-9ce0-1a0c711613d3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Agent Data Store Decision\",\"nodeType\":\"AgentDataStoreDecisionNode\",\"x\":700,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"amsterService\",\"_rev\":\"-1457460165\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\",\"innerTreeOnly\":false,\"description\":\"Authentication Tree for Amster utility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"cfcd2084-95d5-35ef-a6e7-d7f9f98764db\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Amster Jwt Decision Node\",\"nodeType\":\"AmsterJwtDecisionNode\",\"x\":200,\"y\":30}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":30},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":130},\"startNode\":{\"x\":50,\"y\":30}}},{\"_id\":\"Registration\",\"_rev\":\"-285075550\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\",\"innerTreeOnly\":false,\"description\":\"Platform Registration Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Registration\\\"]\"},\"nodes\":{\"0c091c49-f3af-48fb-ac6f-07fba0499dd6\":{\"connections\":{\"outcome\":\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":261,\"y\":168},\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\":{\"connections\":{\"outcome\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":681,\"y\":144},\"ad5dcbb3-7335-49b7-b3e7-7d850bb88237\":{\"connections\":{\"CREATED\":\"97a15eb2-a015-4b6d-81a0-be78c3aa1a3b\",\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\"},\"displayName\":\"Create Object\",\"nodeType\":\"CreateObjectNode\",\"x\":537,\"y\":206}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":905,\"y\":171},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":741,\"y\":293},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ProgressiveProfile\",\"_rev\":\"-840266108\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"8afdaec3-275e-4301-bb53-34f03e6a4b29\",\"innerTreeOnly\":false,\"description\":\"Prompt for missing preferences on 3rd login\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Progressive Profile\\\"]\"},\"nodes\":{\"423a959a-a1b9-498a-b0f7-596b6b6e775a\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":766,\"y\":36},\"8afdaec3-275e-4301-bb53-34f03e6a4b29\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\"},\"displayName\":\"Login Count Decision\",\"nodeType\":\"LoginCountDecisionNode\",\"x\":152,\"y\":36},\"a1f45b44-5bf7-4c57-aa3f-75c619c7db8e\":{\"connections\":{\"false\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\",\"true\":\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\"},\"displayName\":\"Query Filter Decision\",\"nodeType\":\"QueryFilterDecisionNode\",\"x\":357,\"y\":36},\"a5aecad8-854a-4ed5-b719-ff6c90e858c0\":{\"connections\":{\"outcome\":\"423a959a-a1b9-498a-b0f7-596b6b6e775a\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":555,\"y\":20}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":802,\"y\":312},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":919,\"y\":171},\"startNode\":{\"x\":50,\"y\":58.5}}},{\"_id\":\"ldapService\",\"_rev\":\"-1619916438\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\",\"innerTreeOnly\":false,\"description\":\"Authentication tree replacing old default chain for backward compatibility\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"6c8349cc-7260-3e62-a3b1-396831a8398a\":{\"connections\":{\"outcome\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":500,\"y\":25},\"c81e728d-9d4c-3f63-af06-7f89cc14862d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":800,\"y\":25},\"eccbc87e-4b5c-32fe-a830-8fd9f2a7baf5\":{\"connections\":{\"false\":\"6c8349cc-7260-3e62-a3b1-396831a8398a\",\"true\":\"c81e728d-9d4c-3f63-af06-7f89cc14862d\"},\"displayName\":\"Zero Page Login Collector\",\"nodeType\":\"ZeroPageLoginNode\",\"x\":150,\"y\":25}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1000,\"y\":25},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":1000,\"y\":200},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"ForgottenUsername\",\"_rev\":\"350164141\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"5e2a7c95-94af-4b23-8724-deb13853726a\",\"innerTreeOnly\":false,\"description\":\"Forgotten Username Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Username Reset\\\"]\"},\"nodes\":{\"5e2a7c95-94af-4b23-8724-deb13853726a\":{\"connections\":{\"outcome\":\"bf9ea8d5-9802-4f26-9664-a21840faac23\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":139,\"y\":146},\"b93ce36e-1976-4610-b24f-8d6760b5463b\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":767,\"y\":188},\"bf9ea8d5-9802-4f26-9664-a21840faac23\":{\"connections\":{\"false\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\",\"true\":\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\"},\"displayName\":\"Identify Existing User\",\"nodeType\":\"IdentifyExistingUserNode\",\"x\":324,\"y\":152},\"d9a79f01-2ce3-4be2-a28a-975f35c3c8ca\":{\"connections\":{\"outcome\":\"b93ce36e-1976-4610-b24f-8d6760b5463b\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":563,\"y\":193}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":970,\"y\":149},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":982,\"y\":252},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"UpdatePassword\",\"_rev\":\"1874809216\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"d1b79744-493a-44fe-bc26-7d324a8caa4e\",\"innerTreeOnly\":false,\"description\":\"Update password using active session\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Password Reset\\\"]\"},\"nodes\":{\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\":{\"connections\":{\"false\":\"a3d97b53-e38a-4b24-aed0-a021050eb744\",\"true\":\"20237b34-26cb-4a0b-958f-abb422290d42\"},\"displayName\":\"Attribute Present Decision\",\"nodeType\":\"AttributePresentDecisionNode\",\"x\":288,\"y\":133},\"20237b34-26cb-4a0b-958f-abb422290d42\":{\"connections\":{\"outcome\":\"7d1deabe-cd98-49c8-943f-ca12305775f3\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":526,\"y\":46},\"3990ce1f-cce6-435b-ae1c-f138e89411c1\":{\"connections\":{\"FAILURE\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"PATCHED\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Patch Object\",\"nodeType\":\"PatchObjectNode\",\"x\":1062,\"y\":189},\"7d1deabe-cd98-49c8-943f-ca12305775f3\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":722,\"y\":45},\"a3d97b53-e38a-4b24-aed0-a021050eb744\":{\"connections\":{\"outcome\":\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\"},\"displayName\":\"Email Suspend Node\",\"nodeType\":\"EmailSuspendNode\",\"x\":659,\"y\":223},\"d018fcd1-4e22-4160-8c41-63bee51c9cb3\":{\"connections\":{\"outcome\":\"3990ce1f-cce6-435b-ae1c-f138e89411c1\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":943,\"y\":30},\"d1b79744-493a-44fe-bc26-7d324a8caa4e\":{\"connections\":{\"outcome\":\"0f0904e6-1da3-4cdb-9abf-0d2545016fab\"},\"displayName\":\"Get Session Data\",\"nodeType\":\"SessionDataNode\",\"x\":122,\"y\":129}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1212,\"y\":128},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":939,\"y\":290},\"startNode\":{\"x\":50,\"y\":25}}},{\"_id\":\"Login\",\"_rev\":\"-2008678727\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\",\"innerTreeOnly\":false,\"description\":\"Platform Login Tree\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[\\\"Authentication\\\"]\"},\"nodes\":{\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"bba3e0d8-8525-4e82-bf48-ac17f7988917\"},\"displayName\":\"Data Store Decision\",\"nodeType\":\"DataStoreDecisionNode\",\"x\":315,\"y\":140},\"33b24514-3e50-4180-8f08-ab6f4e51b07e\":{\"connections\":{\"false\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"true\":\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\"},\"displayName\":\"Inner Tree Evaluator\",\"nodeType\":\"InnerTreeEvaluatorNode\",\"x\":815,\"y\":180},\"a12bc72f-ad97-4f1e-a789-a1fa3dd566c8\":{\"connections\":{\"outcome\":\"2998c1c9-f4c8-4a00-b2c6-3426783ee49d\"},\"displayName\":\"Page Node\",\"nodeType\":\"PageNode\",\"x\":136,\"y\":59},\"bba3e0d8-8525-4e82-bf48-ac17f7988917\":{\"connections\":{\"outcome\":\"33b24514-3e50-4180-8f08-ab6f4e51b07e\"},\"displayName\":\"Increment Login Count\",\"nodeType\":\"IncrementLoginCountNode\",\"x\":564,\"y\":132}},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":1008,\"y\":186},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":624,\"y\":267},\"startNode\":{\"x\":50,\"y\":25}}}],\"resultCount\":10,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:40 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "protocol=2.1,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": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 644, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:40.116Z", + "time": 11, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 11 + } + }, + { + "_id": "e516217fa98dca815f8405cdd0fccecc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 400, + "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-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "400" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 626, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"testJourney\",\"description\":\"test\",\"enabled\":true,\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"identityResource\":\"managed/user\",\"innerTreeOnly\":false,\"mustRun\":false,\"noSession\":false,\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}},\"uiConfig\":{\"categories\":\"[]\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/testJourney" + }, + "response": { + "bodySize": 419, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 419, + "text": "{\"_id\":\"testJourney\",\"_rev\":\"106502847\",\"identityResource\":\"managed/user\",\"entryNodeId\":\"e301438c-0bd0-429c-ab0c-66126501069a\",\"innerTreeOnly\":false,\"description\":\"test\",\"noSession\":false,\"mustRun\":false,\"enabled\":true,\"uiConfig\":{\"categories\":\"[]\"},\"nodes\":{},\"staticNodes\":{\"70e691a5-1e33-4ac3-a356-e7b6d60d92e0\":{\"x\":500,\"y\":50},\"e301438c-0bd0-429c-ab0c-66126501069a\":{\"x\":500,\"y\":350},\"startNode\":{\"x\":50,\"y\":250}}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:40 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "419" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=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": "\"106502847\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 629, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:40.144Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/oauth2_393036114/recording.har new file mode 100644 index 000000000..15186211d --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/journeys_4003426976/0_r_D_m_3443305505/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/journeys/0_r_D_m/oauth2", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a684e2f67fd67a4263878c3124af167a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 365, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "365" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 565, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idm-admin-ui&csrf=odBoYXqjt43RV_B4Jywrcn--zSk.*AAJTSQACMDIAAlNLABxhMjhJOVZ6QkRDaHl0R2g4N0VsNXpOYWFIZjg9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=8hd67DJOo4_CgknvzVmYP8rHopJ3JiCCUnOPiqK9UDI&code_challenge_method=S256" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/authorize" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + }, + { + "expires": "1970-01-01T00:00:00.000Z", + "httpOnly": true, + "name": "OAUTH_REQUEST_ATTRIBUTES", + "path": "/", + "sameSite": "none", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:40 GMT" + }, + { + "name": "content-length", + "value": "0" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "OAUTH_REQUEST_ATTRIBUTES=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=xPOeHocGCP105-R-3OXQftuFOPo&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 673, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=xPOeHocGCP105-R-3OXQftuFOPo&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-04-06T15:11:40.039Z", + "time": 20, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 20 + } + }, + { + "_id": "ff75519a93ccab829f8ee8cf5e92b49f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 224, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/x-www-form-urlencoded" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-34" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-777aed16-5d20-4df9-9198-42ff452097f0" + }, + { + "name": "accept-api-version", + "value": "protocol=2.1,resource=1.0" + }, + { + "name": "content-length", + "value": "224" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 424, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/x-www-form-urlencoded", + "params": [], + "text": "client_id=idm-admin-ui&redirect_uri=https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html&grant_type=authorization_code&code=xPOeHocGCP105-R-3OXQftuFOPo&code_verifier=BsG8ayxNRBjm9Lb1CbMFCqeJaqW3a-J5QEa_4pJn0Z4" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1249, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1249, + "text": "{\"access_token\":\"\",\"scope\":\"openid fr:idm:*\",\"id_token\":\"\",\"token_type\":\"Bearer\",\"expires_in\":239}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 06 Apr 2026 15:11:40 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1249" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 405, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-06T15:11:40.067Z", + "time": 37, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 37 + } + } + ], + "pages": [], + "version": "1.2" + } +}