diff --git a/src/cli/config-manager/config-manager-push/config-manager-push-authz-policies.ts b/src/cli/config-manager/config-manager-push/config-manager-push-authz-policies.ts new file mode 100644 index 000000000..d260b382c --- /dev/null +++ b/src/cli/config-manager/config-manager-push/config-manager-push-authz-policies.ts @@ -0,0 +1,136 @@ +import { frodo, state } from '@rockcarver/frodo-lib'; +import { Option } from 'commander'; + +import { + configManagerImportAuthzPoliciesAll, + configManagerImportAuthzPolicySet, + configManagerImportAuthzPolicySetsRealm, +} from '../../../configManagerOps/FrConfigAuthzPoliciesOps'; +import { getTokens } from '../../../ops/AuthenticateOps'; +import { printMessage } 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, +]; +const { constants } = frodo.utils; +const { readRealms } = frodo.realm; + +export default function setup() { + const program = new FrodoCommand( + 'frodo config-manager push authz-policies', + deploymentTypes + ); + + program + .description('Import authorization policies from realm.') + .addOption( + new Option( + '-r, --realm ', + 'Specifies the realm to import from. Only policy sets from this realm will be imported.' + ) + ) + .addOption( + new Option( + '-n, --policy-name ', + 'Import only a specific policy set with the name.' + ) + ) + + .action(async (host, realm, user, password, options, command) => { + command.handleDefaultArgsAndOpts( + host, + realm, + user, + password, + options, + command + ); + + // -r/--realm flag has precedence over [realm] arguement + if (options.realm) { + realm = options.realm; + } + + if (await getTokens(false, true, deploymentTypes)) { + let outcome: boolean; + + // -p/--p-set + if (options.policyName) { + printMessage( + `importing the policy set "${options.policyName}" in the ${state.getRealm()} realm.` + ); + + // try and find script in current realm + outcome = await configManagerImportAuthzPolicySet(options.policyName); + + // check other realms for the script but only if there is no config file specified + if (!outcome && !options.file) { + const checkedRealms: string[] = [state.getRealm()]; + for (const realm of await readRealms()) { + if (outcome) { + break; + } + if (!checkedRealms.includes(realm.name)) { + printMessage( + `importing the policy set "${options.policyName}" from the ${checkedRealms[checkedRealms.length - 1]} realm failed.` + ); + state.setRealm(realm.name); + checkedRealms.push(state.getRealm()); + printMessage( + `Looking for the policy set "${options.policyName}" in the ${state.getRealm()} realm now.` + ); + outcome = await configManagerImportAuthzPolicySet( + options.policyName + ); + } + } + if (!outcome) { + printMessage( + `Did not find the policy set "${options.policyName}" anywhere.` + ); + } + } + } + + // -r/--realm + else if (realm !== constants.DEFAULT_REALM_KEY) { + printMessage( + `importing all the policy sets in the ${state.getRealm()} realm.` + ); + outcome = await configManagerImportAuthzPolicySetsRealm( + options.realm + ); + } + + // import all policy sets from all realms, the default when no options are provided + else { + printMessage('importing all the policy sets in the host tenant.'); + outcome = await configManagerImportAuthzPoliciesAll(); + } + + if (!outcome) { + printMessage( + `Failed to import one or more authorization policy sets. ${options.verbose ? '' : 'Check --verbose for me details.'}` + ); + 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 dd3236361..857fcd4d6 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 @@ -1,6 +1,7 @@ import { FrodoStubCommand } from '../../FrodoCommand'; import AccessConfig from './config-manager-push-access-config'; import Audit from './config-manager-push-audit'; +import AuthzPolicies from './config-manager-push-authz-policies'; import EmailProvider from './config-manager-push-email-provider'; import EmailTemplates from './config-manager-push-email-templates'; import Endpoints from './config-manager-push-endpoints'; @@ -33,6 +34,7 @@ export default function setup() { program.addCommand(ManagedObjects().name('managed-objects')); program.addCommand(AccessConfig().name('access-config')); program.addCommand(Audit().name('audit')); + program.addCommand(AuthzPolicies().name('authz-policies')); return program; } diff --git a/src/configManagerOps/FrConfigAuthzPoliciesOps.ts b/src/configManagerOps/FrConfigAuthzPoliciesOps.ts index d0793c4c9..297b2a4bc 100644 --- a/src/configManagerOps/FrConfigAuthzPoliciesOps.ts +++ b/src/configManagerOps/FrConfigAuthzPoliciesOps.ts @@ -2,6 +2,8 @@ import { frodo, state } from '@rockcarver/frodo-lib'; import { PolicySkeleton } from '@rockcarver/frodo-lib/types/api/PoliciesApi'; import { PolicySetSkeleton } from '@rockcarver/frodo-lib/types/api/PolicySetApi'; import { ResourceTypeSkeleton } from '@rockcarver/frodo-lib/types/api/ResourceTypesApi'; +import { PolicySetExportInterface } from '@rockcarver/frodo-lib/types/ops/PolicySetOps'; +import fs from 'fs'; import { readFile } from 'fs/promises'; import { printError, verboseMessage } from '../utils/Console'; @@ -228,3 +230,153 @@ export async function configManagerExportAuthzPoliciesAll(): Promise { return false; } } + +/** + * Import all policy sets (with their policies and resource types) for the current realm + * @param realm the specified realm the user wants to improt to + * @returns {Promise} true if import was successful + */ +export async function configManagerImportAuthzPolicySetsRealm( + realm: string +): Promise { + try { + if (realm === '/') { + return true; + } + + state.setRealm(realm); + const realmAuthzDir = `realms/${state.getRealm()}/authorization`; + const resourcetype: Record = {}; + const resourceTypesDir = getFilePath(`${realmAuthzDir}/resource-types`); + + if (fs.existsSync(resourceTypesDir)) { + const readReadTypesFiles = fs.readdirSync(resourceTypesDir); + for (const file of readReadTypesFiles) { + if (file.endsWith('.json')) { + const data = JSON.parse( + fs.readFileSync(`${resourceTypesDir}/${file}`, 'utf8') + ); + resourcetype[data.uuid] = data; + } + } + } + + const policyset: Record = {}; + const policyMap: Record = {}; + const policySetsDir = getFilePath(`${realmAuthzDir}/policy-sets`); + + if (fs.existsSync(policySetsDir)) { + const readPolicySetDir = fs.readdirSync(policySetsDir); + + for (const psDir of readPolicySetDir) { + const psFilePath = `${policySetsDir}/${psDir}/${psDir}.json`; + const psData = JSON.parse(fs.readFileSync(psFilePath, 'utf8')); + policyset[psData.name] = psData; + const policiesDir = `${policySetsDir}/${psDir}/policies`; + + for (const file of fs.readdirSync(policiesDir)) { + if (file.endsWith('.json')) { + const pData = JSON.parse( + fs.readFileSync(`${policiesDir}/${file}`, 'utf8') + ); + policyMap[pData.name] = pData; + } + } + } + } + + const importData: PolicySetExportInterface = { + script: {}, + resourcetype, + policy: policyMap, + policyset, + }; + + await policySet.importPolicySets(importData); + return true; + } catch (error) { + printError(error); + return false; + } +} + +export async function configManagerImportAuthzPolicySet( + policySetName: string +): Promise { + try { + if (state.getRealm() === '/') { + return false; + } + const psDir = getFilePath( + `realms/${state.getRealm()}/authorization/policy-sets/${policySetName}` + ); + const psFilePath = `${psDir}/${policySetName}.json`; + const psData: PolicySetSkeleton = JSON.parse( + fs.readFileSync(psFilePath, 'utf8') + ); + + const policyMap: Record = {}; + const policiesDir = `${psDir}/policies`; + const policyFiles = fs.readdirSync(policiesDir); + + for (const file of policyFiles) { + if (file.endsWith('.json')) { + const pData: PolicySkeleton = JSON.parse( + fs.readFileSync(`${policiesDir}/${file}`, 'utf8') + ); + policyMap[pData.name] = pData; + } + } + + const resourcetype: Record = {}; + const resourceDir = getFilePath( + `realms/${state.getRealm()}/authorization/resource-types` + ); + + if (fs.existsSync(resourceDir)) { + const readResourceDir = fs.readdirSync(resourceDir); + for (const file of readResourceDir) { + if (file.endsWith('.json')) { + const rtData: ResourceTypeSkeleton = JSON.parse( + fs.readFileSync(`${resourceDir}/${file}`, 'utf8') + ); + if (psData.resourceTypeUuids.includes(rtData.uuid)) { + resourcetype[rtData.uuid] = rtData; + } + } + } + } + + const importData: PolicySetExportInterface = { + script: {}, + resourcetype, + policy: policyMap, + policyset: { [psData.name]: psData }, + }; + + await policySet.importPolicySet(policySetName, importData); + return true; + } catch (error) { + printError(error); + return false; + } +} + +/** + * Import all policy sets from all realms + * @returns {Promise} true if all imports were successful + */ +export async function configManagerImportAuthzPoliciesAll(): Promise { + try { + for (const realm of await readRealms()) { + state.setRealm(realm.name); + if (!(await configManagerImportAuthzPolicySetsRealm(realm.name))) { + return false; + } + } + return true; + } catch (error) { + printError(error); + return false; + } +} diff --git a/test/client_cli/en/__snapshots__/config-manager-push-authz-polocies.test.js.snap b/test/client_cli/en/__snapshots__/config-manager-push-authz-polocies.test.js.snap new file mode 100644 index 000000000..618a61e5f --- /dev/null +++ b/test/client_cli/en/__snapshots__/config-manager-push-authz-polocies.test.js.snap @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CLI help interface for 'config-manager push authz-policies' should be expected english 1`] = ` +"Usage: frodo config-manager push authz-policies [options] [host] [realm] [username] [password] + +[Experimental] Import authorization policies from realm. + +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: + -n, --policy-name Import only a specific policy set with + the name. + -r, --realm Specifies the realm to import from. Only + policy sets from this realm will be + imported. + -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 2e5fc5759..523533a26 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 @@ -15,6 +15,7 @@ Options: Commands: access-config [Experimental] Import access configuration. audit [Experimental] Import audit configuration. + authz-policies [Experimental] Import authorization policies from realm. email-provider [Experimental] Import email provider configuration. email-templates [Experimental] Import email template objects. endpoints [Experimental] Import custom endpoints objects. diff --git a/test/client_cli/en/config-manager-push-authz-polocies.test.js b/test/client_cli/en/config-manager-push-authz-polocies.test.js new file mode 100644 index 000000000..d10ef54dd --- /dev/null +++ b/test/client_cli/en/config-manager-push-authz-polocies.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 authz-policies --help'; +const { stdout } = await exec(CMD); + +test("CLI help interface for 'config-manager push authz-policies' should be expected english", async () => { + expect(stdout).toMatchSnapshot(); +}); diff --git a/test/e2e/__snapshots__/config-manager-push-authz-policies.e2e.test.js.snap b/test/e2e/__snapshots__/config-manager-push-authz-policies.e2e.test.js.snap new file mode 100644 index 000000000..a8c2c9cc8 --- /dev/null +++ b/test/e2e/__snapshots__/config-manager-push-authz-policies.e2e.test.js.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`frodo config-manager push authz-policies "frodo config-manager push authz-policies -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import the authz-policies into forgeops" 1`] = `""`; + +exports[`frodo config-manager push authz-policies "frodo config-manager push authz-policies -n test_id -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import a specific auth policy by name into forgeops" 1`] = `""`; + +exports[`frodo config-manager push authz-policies "frodo config-manager push authz-policies -r alpha -D test/e2e/exports/fr-config-manager/forgeops -m forgeops": should import a specific authz policy by name into forgeops" 1`] = `""`; diff --git a/test/e2e/config-manager-push-authz-policies.e2e.test.js b/test/e2e/config-manager-push-authz-policies.e2e.test.js new file mode 100644 index 000000000..2c9a1e0e9 --- /dev/null +++ b/test/e2e/config-manager-push-authz-policies.e2e.test.js @@ -0,0 +1,84 @@ +/** + * 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 authz-policies -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 authz-policies -n test_id -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 authz-policies -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 authz-policies', () => { + test(`"frodo config-manager push authz-policies -D ${allDirectory} -m forgeops": should import the authz-policies into forgeops"`, async () => { + const CMD = `frodo config-manager push authz-policies -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push authz-policies -r alpha -D ${allDirectory} -m forgeops": should import a specific authz policy by name into forgeops"`, async () => { + const CMD = `frodo config-manager push authz-policies -r alpha -D ${allDirectory} -m forgeops`; + const { stdout } = await exec(CMD, forgeopsEnv); + expect(removeAnsiEscapeCodes(stdout)).toMatchSnapshot(); + }); + test(`"frodo config-manager push authz-policies -n test_id -D ${allDirectory} -m forgeops": should import a specific auth policy by name into forgeops"`, async () => { + const CMD = `frodo config-manager push authz-policies -n test_id -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/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json new file mode 100644 index 000000000..a5ef48d34 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json @@ -0,0 +1,51 @@ +{ + "_id": "oauth2Scopes", + "_rev": "1595479030629", + "applicationType": "iPlanetAMWebAgentService", + "attributeNames": [], + "conditions": [ + "Script", + "AMIdentityMembership", + "IPv6", + "SimpleTime", + "IPv4", + "LEAuthLevel", + "LDAPFilter", + "AuthScheme", + "Session", + "AND", + "AuthenticateToRealm", + "ResourceEnvIP", + "SessionProperty", + "OAuth2Scope", + "OR", + "Transaction", + "NOT", + "AuthLevel", + "AuthenticateToService" + ], + "createdBy": "id=dsameuser,ou=user,ou=am-config", + "creationDate": 1578580064992, + "description": "The built-in Application used by the OAuth2 scope authorization process.", + "displayName": "Default OAuth2 Scopes Policy Set", + "editable": true, + "entitlementCombiner": "DenyOverride", + "lastModifiedBy": "id=dsameuser,ou=user,ou=am-config", + "lastModifiedDate": 1595479030629, + "name": "oauth2Scopes", + "resourceComparator": null, + "resourceTypeUuids": [ + "d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b" + ], + "saveIndex": null, + "searchIndex": null, + "subjects": [ + "AuthenticatedUsers", + "NOT", + "Identity", + "OR", + "AND", + "NONE", + "JwtClaim" + ] +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 1.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 1.json new file mode 100644 index 000000000..9faa7ade8 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 1.json @@ -0,0 +1,117 @@ +{ + "_id": "Test Policy Alpha 1", + "_rev": "1775494640551", + "actionValues": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "active": true, + "applicationName": "test-policy-set-alpha", + "condition": { + "conditions": [ + { + "requiredScopes": [ + "test", + "scope" + ], + "type": "OAuth2Scope" + }, + { + "scriptId": "11e1a3c0-038b-4c16-956a-6c9d89328cff", + "type": "Script" + }, + { + "condition": { + "scriptId": "9de3eb62-f131-4fac-a294-7bd170fd4acb", + "type": "Script" + }, + "type": "NOT" + }, + { + "conditions": [ + { + "comparator": "REGEX", + "decisionField": "decision", + "identityResource": "resource", + "queryField": "query", + "type": "IdmUser", + "value": "regex" + }, + { + "authenticateToService": "tree", + "type": "AuthenticateToService" + } + ], + "type": "OR" + } + ], + "type": "AND" + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": "2026-04-06T16:57:20.551Z", + "description": "Policy Description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": "2026-04-06T16:57:20.551Z", + "name": "Test Policy Alpha 1", + "resourceAttributes": [ + { + "propertyName": "sn", + "propertyValues": [ + "surName" + ], + "type": "Static" + }, + { + "propertyName": "cn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "sn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "cn", + "propertyValues": [ + "currentName" + ], + "type": "Static" + } + ], + "resourceTypeUuid": "f42519db-f43c-4325-b8d4-04a631ff46cb", + "resources": [ + "test/hello", + "*/test" + ], + "subject": { + "subjects": [ + { + "type": "AuthenticatedUsers" + }, + { + "type": "NONE" + }, + { + "subjects": [ + { + "claimName": "claim", + "claimValue": "val", + "type": "JwtClaim" + } + ], + "type": "OR" + }, + { + "subject": { + "subjectValues": [], + "type": "Identity" + }, + "type": "NOT" + } + ], + "type": "AND" + } +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 2.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 2.json new file mode 100644 index 000000000..ba4dff4d5 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/policies/Test Policy Alpha 2.json @@ -0,0 +1,117 @@ +{ + "_id": "Test Policy Alpha 2", + "_rev": "1775494640579", + "actionValues": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "active": true, + "applicationName": "test-policy-set-alpha", + "condition": { + "conditions": [ + { + "requiredScopes": [ + "test", + "scope" + ], + "type": "OAuth2Scope" + }, + { + "scriptId": "11e1a3c0-038b-4c16-956a-6c9d89328cff", + "type": "Script" + }, + { + "condition": { + "scriptId": "6b3cfd48-62d3-48ff-a96f-fe8f3a22ab30", + "type": "Script" + }, + "type": "NOT" + }, + { + "conditions": [ + { + "comparator": "REGEX", + "decisionField": "decision", + "identityResource": "resource", + "queryField": "query", + "type": "IdmUser", + "value": "regex" + }, + { + "authenticateToService": "tree", + "type": "AuthenticateToService" + } + ], + "type": "OR" + } + ], + "type": "AND" + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": "2026-04-06T16:57:20.579Z", + "description": "Policy Description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": "2026-04-06T16:57:20.579Z", + "name": "Test Policy Alpha 2", + "resourceAttributes": [ + { + "propertyName": "sn", + "propertyValues": [ + "surName" + ], + "type": "Static" + }, + { + "propertyName": "cn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "sn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "cn", + "propertyValues": [ + "currentName" + ], + "type": "Static" + } + ], + "resourceTypeUuid": "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "resources": [ + "*/test2", + "test2/hello" + ], + "subject": { + "subjects": [ + { + "type": "AuthenticatedUsers" + }, + { + "type": "NONE" + }, + { + "subjects": [ + { + "claimName": "claim", + "claimValue": "val", + "type": "JwtClaim" + } + ], + "type": "OR" + }, + { + "subject": { + "subjectValues": [], + "type": "Identity" + }, + "type": "NOT" + } + ], + "type": "AND" + } +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/test-policy-set-alpha.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/test-policy-set-alpha.json new file mode 100644 index 000000000..5edadf16a --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/policy-sets/test-policy-set-alpha/test-policy-set-alpha.json @@ -0,0 +1,54 @@ +{ + "_id": "test-policy-set-alpha", + "_rev": "1775494640522", + "applicationType": "iPlanetAMWebAgentService", + "attributeNames": [], + "conditions": [ + "AMIdentityMembership", + "AND", + "AuthLevel", + "AuthenticateToRealm", + "AuthenticateToService", + "IPv4", + "IPv6", + "IdmUser", + "LDAPFilter", + "LEAuthLevel", + "NOT", + "OAuth2Scope", + "OR", + "Policy", + "ResourceEnvIP", + "Script", + "Session", + "SessionProperty", + "SimpleTime", + "Transaction" + ], + "createdBy": "id=0300848e-5223-42cd-bccb-765728cdeb54,ou=user,ou=am-config", + "creationDate": 1775489615890, + "description": "Test policy set description", + "displayName": "Test Policy Set", + "editable": true, + "entitlementCombiner": "DenyOverride", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775494640522, + "name": "test-policy-set-alpha", + "resourceComparator": null, + "resourceTypeUuids": [ + "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "f42519db-f43c-4325-b8d4-04a631ff46cb" + ], + "saveIndex": null, + "searchIndex": null, + "subjects": [ + "AND", + "AuthenticatedUsers", + "Identity", + "JwtClaim", + "NONE", + "NOT", + "OR", + "Policy" + ] +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type 2.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type 2.json new file mode 100644 index 000000000..3d588d067 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type 2.json @@ -0,0 +1,20 @@ +{ + "_id": "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "actions": { + "create": true, + "delete": true, + "read": false, + "update": false + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": 1775494617151, + "description": "", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775494635356, + "name": "Test Resource Type 2", + "patterns": [ + "*/test2", + "test2/*" + ], + "uuid": "88e74fda-3e8b-47b3-b50d-22a456c9bab1" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type.json b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type.json new file mode 100644 index 000000000..5e8b1b747 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/alpha/authorization/resource-types/Test Resource Type.json @@ -0,0 +1,20 @@ +{ + "_id": "f42519db-f43c-4325-b8d4-04a631ff46cb", + "actions": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": 1775494635377, + "description": "Test resource description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775494635377, + "name": "Test Resource Type", + "patterns": [ + "test/*", + "*/test" + ], + "uuid": "f42519db-f43c-4325-b8d4-04a631ff46cb" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/iPlanetAMWebAgentService/iPlanetAMWebAgentService.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/iPlanetAMWebAgentService/iPlanetAMWebAgentService.json new file mode 100644 index 000000000..e0669c1a8 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/iPlanetAMWebAgentService/iPlanetAMWebAgentService.json @@ -0,0 +1,51 @@ +{ + "_id": "iPlanetAMWebAgentService", + "_rev": "1770388620391", + "applicationType": "iPlanetAMWebAgentService", + "attributeNames": [], + "conditions": [ + "Script", + "AMIdentityMembership", + "IPv6", + "SimpleTime", + "IPv4", + "LEAuthLevel", + "LDAPFilter", + "AuthScheme", + "Session", + "AND", + "AuthenticateToRealm", + "ResourceEnvIP", + "SessionProperty", + "OAuth2Scope", + "OR", + "Transaction", + "NOT", + "AuthLevel", + "AuthenticateToService" + ], + "createdBy": "id=dsameuser,ou=user,ou=am-config", + "creationDate": 1578580065033, + "description": "The built-in Application used by OpenAM Policy Agents.", + "displayName": "Default Policy Set", + "editable": true, + "entitlementCombiner": "DenyOverride", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1770388620391, + "name": "iPlanetAMWebAgentService", + "resourceComparator": null, + "resourceTypeUuids": [ + "76656a38-5f8e-401b-83aa-4ccb74ce88d2" + ], + "saveIndex": null, + "searchIndex": null, + "subjects": [ + "AuthenticatedUsers", + "NOT", + "Identity", + "OR", + "AND", + "NONE", + "JwtClaim" + ] +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json new file mode 100644 index 000000000..31c53f2f1 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/oauth2Scopes/oauth2Scopes.json @@ -0,0 +1,51 @@ +{ + "_id": "oauth2Scopes", + "_rev": "1770388620346", + "applicationType": "iPlanetAMWebAgentService", + "attributeNames": [], + "conditions": [ + "Script", + "AMIdentityMembership", + "IPv6", + "SimpleTime", + "IPv4", + "LEAuthLevel", + "LDAPFilter", + "AuthScheme", + "Session", + "AND", + "AuthenticateToRealm", + "ResourceEnvIP", + "SessionProperty", + "OAuth2Scope", + "OR", + "Transaction", + "NOT", + "AuthLevel", + "AuthenticateToService" + ], + "createdBy": "id=dsameuser,ou=user,ou=am-config", + "creationDate": 1578580064992, + "description": "The built-in Application used by the OAuth2 scope authorization process.", + "displayName": "Default OAuth2 Scopes Policy Set", + "editable": true, + "entitlementCombiner": "DenyOverride", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1770388620346, + "name": "oauth2Scopes", + "resourceComparator": null, + "resourceTypeUuids": [ + "d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b" + ], + "saveIndex": null, + "searchIndex": null, + "subjects": [ + "AuthenticatedUsers", + "NOT", + "Identity", + "OR", + "AND", + "NONE", + "JwtClaim" + ] +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 1.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 1.json new file mode 100644 index 000000000..537baeafd --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 1.json @@ -0,0 +1,117 @@ +{ + "_id": "Test Policy 1", + "_rev": "1775491883638", + "actionValues": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "active": true, + "applicationName": "test-policy-set", + "condition": { + "conditions": [ + { + "requiredScopes": [ + "test", + "scope" + ], + "type": "OAuth2Scope" + }, + { + "scriptId": "11e1a3c0-038b-4c16-956a-6c9d89328cff", + "type": "Script" + }, + { + "condition": { + "scriptId": "9de3eb62-f131-4fac-a294-7bd170fd4acb", + "type": "Script" + }, + "type": "NOT" + }, + { + "conditions": [ + { + "comparator": "REGEX", + "decisionField": "decision", + "identityResource": "resource", + "queryField": "query", + "type": "IdmUser", + "value": "regex" + }, + { + "authenticateToService": "tree", + "type": "AuthenticateToService" + } + ], + "type": "OR" + } + ], + "type": "AND" + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": "2026-04-06T16:08:13.272Z", + "description": "Policy Description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": "2026-04-06T16:11:23.638Z", + "name": "Test Policy 1", + "resourceAttributes": [ + { + "propertyName": "sn", + "propertyValues": [ + "surName" + ], + "type": "Static" + }, + { + "propertyName": "cn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "sn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "cn", + "propertyValues": [ + "currentName" + ], + "type": "Static" + } + ], + "resourceTypeUuid": "f42519db-f43c-4325-b8d4-04a631ff46cb", + "resources": [ + "test/hello", + "*/test" + ], + "subject": { + "subjects": [ + { + "type": "AuthenticatedUsers" + }, + { + "type": "NONE" + }, + { + "subjects": [ + { + "claimName": "claim", + "claimValue": "val", + "type": "JwtClaim" + } + ], + "type": "OR" + }, + { + "subject": { + "subjectValues": [], + "type": "Identity" + }, + "type": "NOT" + } + ], + "type": "AND" + } +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 2.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 2.json new file mode 100644 index 000000000..daef2ea06 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/policies/Test Policy 2.json @@ -0,0 +1,117 @@ +{ + "_id": "Test Policy 2", + "_rev": "1775492062512", + "actionValues": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "active": true, + "applicationName": "test-policy-set", + "condition": { + "conditions": [ + { + "requiredScopes": [ + "test", + "scope" + ], + "type": "OAuth2Scope" + }, + { + "scriptId": "11e1a3c0-038b-4c16-956a-6c9d89328cff", + "type": "Script" + }, + { + "condition": { + "scriptId": "6b3cfd48-62d3-48ff-a96f-fe8f3a22ab30", + "type": "Script" + }, + "type": "NOT" + }, + { + "conditions": [ + { + "comparator": "REGEX", + "decisionField": "decision", + "identityResource": "resource", + "queryField": "query", + "type": "IdmUser", + "value": "regex" + }, + { + "authenticateToService": "tree", + "type": "AuthenticateToService" + } + ], + "type": "OR" + } + ], + "type": "AND" + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": "2026-04-06T16:08:13.432Z", + "description": "Policy Description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": "2026-04-06T16:14:22.512Z", + "name": "Test Policy 2", + "resourceAttributes": [ + { + "propertyName": "sn", + "propertyValues": [ + "surName" + ], + "type": "Static" + }, + { + "propertyName": "cn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "sn", + "propertyValues": [], + "type": "User" + }, + { + "propertyName": "cn", + "propertyValues": [ + "currentName" + ], + "type": "Static" + } + ], + "resourceTypeUuid": "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "resources": [ + "*/test2", + "test2/hello" + ], + "subject": { + "subjects": [ + { + "type": "AuthenticatedUsers" + }, + { + "type": "NONE" + }, + { + "subjects": [ + { + "claimName": "claim", + "claimValue": "val", + "type": "JwtClaim" + } + ], + "type": "OR" + }, + { + "subject": { + "subjectValues": [], + "type": "Identity" + }, + "type": "NOT" + } + ], + "type": "AND" + } +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/test-policy-set.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/test-policy-set.json new file mode 100644 index 000000000..8bd6302e3 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/policy-sets/test-policy-set/test-policy-set.json @@ -0,0 +1,54 @@ +{ + "_id": "test-policy-set", + "_rev": "1775491730631", + "applicationType": "iPlanetAMWebAgentService", + "attributeNames": [], + "conditions": [ + "AMIdentityMembership", + "AND", + "AuthLevel", + "AuthenticateToRealm", + "AuthenticateToService", + "IPv4", + "IPv6", + "IdmUser", + "LDAPFilter", + "LEAuthLevel", + "NOT", + "OAuth2Scope", + "OR", + "Policy", + "ResourceEnvIP", + "Script", + "Session", + "SessionProperty", + "SimpleTime", + "Transaction" + ], + "createdBy": "id=0300848e-5223-42cd-bccb-765728cdeb54,ou=user,ou=am-config", + "creationDate": 1775489615890, + "description": "Test policy set description", + "displayName": "Test Policy Set", + "editable": true, + "entitlementCombiner": "DenyOverride", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775491730631, + "name": "test-policy-set", + "resourceComparator": null, + "resourceTypeUuids": [ + "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "f42519db-f43c-4325-b8d4-04a631ff46cb" + ], + "saveIndex": null, + "searchIndex": null, + "subjects": [ + "AND", + "AuthenticatedUsers", + "Identity", + "JwtClaim", + "NONE", + "NOT", + "OR", + "Policy" + ] +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type 2.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type 2.json new file mode 100644 index 000000000..b9311ed35 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type 2.json @@ -0,0 +1,20 @@ +{ + "_id": "88e74fda-3e8b-47b3-b50d-22a456c9bab1", + "actions": { + "create": true, + "delete": true, + "read": false, + "update": false + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": 1775491335488, + "description": "", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775491335488, + "name": "Test Resource Type 2", + "patterns": [ + "*/test2", + "test2/*" + ], + "uuid": "88e74fda-3e8b-47b3-b50d-22a456c9bab1" +} diff --git a/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type.json b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type.json new file mode 100644 index 000000000..34776c957 --- /dev/null +++ b/test/e2e/exports/fr-config-manager/forgeops/realms/root/authorization/resource-types/Test Resource Type.json @@ -0,0 +1,20 @@ +{ + "_id": "f42519db-f43c-4325-b8d4-04a631ff46cb", + "actions": { + "create": false, + "delete": false, + "read": true, + "update": true + }, + "createdBy": "id=amadmin,ou=user,ou=am-config", + "creationDate": 1775491328136, + "description": "Test resource description", + "lastModifiedBy": "id=amadmin,ou=user,ou=am-config", + "lastModifiedDate": 1775491328136, + "name": "Test Resource Type", + "patterns": [ + "test/*", + "*/test" + ], + "uuid": "f42519db-f43c-4325-b8d4-04a631ff46cb" +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_D_m_314327836/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_D_m_314327836/am_1076162899/recording.har new file mode 100644 index 000000000..4f9f3f33c --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_D_m_314327836/am_1076162899/recording.har @@ -0,0 +1,1567 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/0_D_m/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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, 23 Mar 2026 20:03:05 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.141Z", + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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, 23 Mar 2026 20:03:05 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.177Z", + "time": 17, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 17 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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": 292, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 292, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-03-23T20:03:05Z\",\"maxIdleExpirationTime\":\"2026-03-23T20:33:05Z\",\"maxSessionExpirationTime\":\"2026-03-23T22:03:04Z\",\"properties\":{\"AMCtxId\":\"43ba9500-5021-4093-850b-dc18b8548553-115243\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:05 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "292" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.203Z", + "time": 6, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 6 + } + }, + { + "_id": "6125d0328ad0dcaee55f73fd8b22ca14", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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, 23 Mar 2026 20:03:05 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.214Z", + "time": 5, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 5 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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, 23 Mar 2026 20:03:05 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-03-23T20:03:06.279Z", + "time": 10, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 10 + } + }, + { + "_id": "82b8cbc35dc155b85beadb9372c44a9a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 925, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "925" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 590, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"oauth2Scopes\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"Script\",\"AMIdentityMembership\",\"IPv6\",\"SimpleTime\",\"IPv4\",\"LEAuthLevel\",\"LDAPFilter\",\"AuthScheme\",\"Session\",\"AND\",\"AuthenticateToRealm\",\"ResourceEnvIP\",\"SessionProperty\",\"OAuth2Scope\",\"OR\",\"Transaction\",\"NOT\",\"AuthLevel\",\"AuthenticateToService\"],\"createdBy\":\"id=dsameuser,ou=user,ou=am-config\",\"creationDate\":1578580064992,\"description\":\"The built-in Application used by the OAuth2 scope authorization process.\",\"displayName\":\"Default OAuth2 Scopes Policy Set\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1773426680314,\"name\":\"oauth2Scopes\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AuthenticatedUsers\",\"NOT\",\"Identity\",\"OR\",\"AND\",\"NONE\",\"JwtClaim\"]}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/?_action=create" + }, + "response": { + "bodySize": 71, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 71, + "text": "{\"code\":409,\"reason\":\"Conflict\",\"message\":\"Application already exists\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:06 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "71" + }, + { + "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=2.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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 609, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 409, + "statusText": "Conflict" + }, + "startedDateTime": "2026-03-23T20:03:06.295Z", + "time": 22, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 22 + } + }, + { + "_id": "dfe6bc402771f7f7c2ebec04444d0029", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 925, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "925" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 586, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"oauth2Scopes\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"Script\",\"AMIdentityMembership\",\"IPv6\",\"SimpleTime\",\"IPv4\",\"LEAuthLevel\",\"LDAPFilter\",\"AuthScheme\",\"Session\",\"AND\",\"AuthenticateToRealm\",\"ResourceEnvIP\",\"SessionProperty\",\"OAuth2Scope\",\"OR\",\"Transaction\",\"NOT\",\"AuthLevel\",\"AuthenticateToService\"],\"createdBy\":\"id=dsameuser,ou=user,ou=am-config\",\"creationDate\":1578580064992,\"description\":\"The built-in Application used by the OAuth2 scope authorization process.\",\"displayName\":\"Default OAuth2 Scopes Policy Set\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1773426680314,\"name\":\"oauth2Scopes\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AuthenticatedUsers\",\"NOT\",\"Identity\",\"OR\",\"AND\",\"NONE\",\"JwtClaim\"]}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/oauth2Scopes" + }, + "response": { + "bodySize": 904, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 904, + "text": "{\"creationDate\":1578580064992,\"name\":\"oauth2Scopes\",\"displayName\":\"Default OAuth2 Scopes Policy Set\",\"description\":\"The built-in Application used by the OAuth2 scope authorization process.\",\"attributeNames\":[],\"createdBy\":\"id=dsameuser,ou=user,ou=am-config\",\"conditions\":[\"Script\",\"AMIdentityMembership\",\"IPv6\",\"SimpleTime\",\"IPv4\",\"LEAuthLevel\",\"LDAPFilter\",\"AuthScheme\",\"Session\",\"AND\",\"AuthenticateToRealm\",\"ResourceEnvIP\",\"SessionProperty\",\"OAuth2Scope\",\"OR\",\"Transaction\",\"NOT\",\"AuthLevel\",\"AuthenticateToService\"],\"subjects\":[\"AuthenticatedUsers\",\"NOT\",\"Identity\",\"OR\",\"AND\",\"NONE\",\"JwtClaim\"],\"applicationType\":\"iPlanetAMWebAgentService\",\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedDate\":1774296186042,\"editable\":true,\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"saveIndex\":null,\"searchIndex\":null,\"resourceComparator\":null,\"resourceTypeUuids\":[\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"]}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:06 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "904" + }, + { + "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=2.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": "\"1774296186042\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 633, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.324Z", + "time": 17, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 17 + } + }, + { + "_id": "633da07901928e4c0e9fc37971aefbb5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 590, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/?_action=create" + }, + "response": { + "bodySize": 71, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 71, + "text": "{\"code\":409,\"reason\":\"Conflict\",\"message\":\"Application already exists\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:06 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "71" + }, + { + "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=2.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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 608, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 409, + "statusText": "Conflict" + }, + "startedDateTime": "2026-03-23T20:03:06.348Z", + "time": 12, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 12 + } + }, + { + "_id": "1803852e546fae4cc666dc8843a5b4ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 581, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/test_id" + }, + "response": { + "bodySize": 873, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 873, + "text": "{\"creationDate\":1774279445225,\"name\":\"test_id\",\"displayName\":\"test policy\",\"description\":null,\"attributeNames\":[],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"],\"applicationType\":\"iPlanetAMWebAgentService\",\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedDate\":1774296186082,\"editable\":true,\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"saveIndex\":null,\"searchIndex\":null,\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"]}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:06 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "873" + }, + { + "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=2.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": "\"1774296186082\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 633, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.365Z", + "time": 15, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 15 + } + }, + { + "_id": "216b1e7b665f889210a505340bfd17eb", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 435, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "name": "accept-api-version", + "value": "resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "435" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 569, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test value\",\"_rev\":\"1774279459670\",\"actionValues\":{},\"active\":true,\"applicationName\":\"test_id\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T15:24:19.670Z\",\"description\":\"\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T15:24:19.670Z\",\"name\":\"test value\",\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"resources\":[\"*://*:*/*\"],\"subject\":{\"type\":\"NONE\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/policies/test%20value" + }, + "response": { + "bodySize": 435, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 435, + "text": "{\"_id\":\"test value\",\"_rev\":\"1774296186107\",\"name\":\"test value\",\"active\":true,\"description\":\"\",\"resources\":[\"*://*:*/*\"],\"applicationName\":\"test_id\",\"actionValues\":{},\"subject\":{\"type\":\"NONE\"},\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T20:03:06.107Z\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T19:27:15.424Z\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 20:03:06 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "435" + }, + { + "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=2.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": "\"1774296186107\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 633, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T20:03:06.385Z", + "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/authz-policies_3151337724/0_D_m_314327836/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_D_m_314327836/oauth2_393036114/recording.har new file mode 100644 index 000000000..bf30f9e4d --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_D_m_314327836/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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=2MhL83Ad2JOlZbpaKtpY9hg4K9U.*AAJTSQACMDIAAlNLABxVbHNTTkpBSGFjZVlXUDU4Um1NNk1OU3pVYXM9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=jwKeQ4Dm8qn8ZR0zXSgaQ9zx8UY2ey9lau68k2yWr5Q&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, 23 Mar 2026 20:03:05 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=g-DJ-Q2cDC9qT_8YbQ01Wu8ZuMM&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": 672, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=g-DJ-Q2cDC9qT_8YbQ01Wu8ZuMM&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-03-23T20:03:06.226Z", + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-e06eda91-18a8-41a4-a916-8ac8fc52a13e" + }, + { + "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=g-DJ-Q2cDC9qT_8YbQ01Wu8ZuMM&code_verifier=F2M8U7w3lZdune73Z0Z81Mj_PTB1q3zlvRSkAIczrtY" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1250, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1250, + "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, 23 Mar 2026 20:03:05 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1250" + }, + { + "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-03-23T20:03:06.246Z", + "time": 28, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 28 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/am_1076162899/recording.har new file mode 100644 index 000000000..f45c021f7 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/am_1076162899/recording.har @@ -0,0 +1,1252 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/0_n_D_m/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.660Z", + "time": 25, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 25 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.692Z", + "time": 17, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 17 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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": 292, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 292, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-03-23T19:58:57Z\",\"maxIdleExpirationTime\":\"2026-03-23T20:28:57Z\",\"maxSessionExpirationTime\":\"2026-03-23T21:58:56Z\",\"properties\":{\"AMCtxId\":\"43ba9500-5021-4093-850b-dc18b8548553-114895\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "292" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=4.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 610, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.716Z", + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "257" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.0" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"-466575464\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.726Z", + "time": 5, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 5 + } + }, + { + "_id": "7d9f50fd3e71cc96665ebde586994b01", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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, 23 Mar 2026 19:58:57 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": 635, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.785Z", + "time": 7, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 7 + } + }, + { + "_id": "633da07901928e4c0e9fc37971aefbb5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 590, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/?_action=create" + }, + "response": { + "bodySize": 71, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 71, + "text": "{\"code\":409,\"reason\":\"Conflict\",\"message\":\"Application already exists\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "71" + }, + { + "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=2.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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 609, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 409, + "statusText": "Conflict" + }, + "startedDateTime": "2026-03-23T19:58:57.798Z", + "time": 21, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 21 + } + }, + { + "_id": "1803852e546fae4cc666dc8843a5b4ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 581, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/test_id" + }, + "response": { + "bodySize": 873, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 873, + "text": "{\"creationDate\":1774279445225,\"name\":\"test_id\",\"displayName\":\"test policy\",\"description\":null,\"attributeNames\":[],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"],\"applicationType\":\"iPlanetAMWebAgentService\",\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedDate\":1774295937547,\"editable\":true,\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"saveIndex\":null,\"searchIndex\":null,\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"]}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "873" + }, + { + "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=2.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": "\"1774295937547\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.825Z", + "time": 15, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 15 + } + }, + { + "_id": "216b1e7b665f889210a505340bfd17eb", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 435, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "name": "accept-api-version", + "value": "resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "435" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 569, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test value\",\"_rev\":\"1774279459670\",\"actionValues\":{},\"active\":true,\"applicationName\":\"test_id\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T15:24:19.670Z\",\"description\":\"\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T15:24:19.670Z\",\"name\":\"test value\",\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"resources\":[\"*://*:*/*\"],\"subject\":{\"type\":\"NONE\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/policies/test%20value" + }, + "response": { + "bodySize": 435, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 435, + "text": "{\"_id\":\"test value\",\"_rev\":\"1774295937572\",\"name\":\"test value\",\"active\":true,\"description\":\"\",\"resources\":[\"*://*:*/*\"],\"applicationName\":\"test_id\",\"actionValues\":{},\"subject\":{\"type\":\"NONE\"},\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T19:58:57.572Z\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T19:27:15.424Z\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "435" + }, + { + "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=2.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": "\"1774295937572\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:58:57.846Z", + "time": 30, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 30 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/oauth2_393036114/recording.har new file mode 100644 index 000000000..324f6771d --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_n_D_m_1348920437/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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=ouFeLVbTohWW_TkYoTF0xnQx3Cc.*AAJTSQACMDIAAlNLABxFQXBKL1F2RXNsS0ZWWW9KNlMvck5qa3JGVTA9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=xPne54XGizmKqAdnOXtDajqaZzuWjeC-gZxVxWdqVFI&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, 23 Mar 2026 19:58:57 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=aPgW9GoeggtVHbIA6cuj_Z5nHqc&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": 672, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/platform/appAuthHelperRedirect.html?code=aPgW9GoeggtVHbIA6cuj_Z5nHqc&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-03-23T19:58:57.736Z", + "time": 11, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 11 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-ea75f460-c4a0-4169-b20c-2e97df46bdd4" + }, + { + "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=aPgW9GoeggtVHbIA6cuj_Z5nHqc&code_verifier=rbLc19U9a7xnt3_5W15KI2kJCM2yVsDJDom_UsG_Tww" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1250, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1250, + "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, 23 Mar 2026 19:58:57 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1250" + }, + { + "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-03-23T19:58:57.752Z", + "time": 27, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 27 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/am_1076162899/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/am_1076162899/recording.har new file mode 100644 index 000000000..46d5d95c0 --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/am_1076162899/recording.har @@ -0,0 +1,1269 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/0_r_D_m/am", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "ccd7a5defd0fdeaa986a2b54642d911a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "587" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "no-store" + }, + { + "name": "content-api-version", + "value": "resource=1.1" + }, + { + "name": "content-security-policy", + "value": "default-src 'none';frame-ancestors 'none';sandbox" + }, + { + "name": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "name": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "name": "etag", + "value": "\"2075994313\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 631, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:51:26.260Z", + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": "167" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "route=; Path=/am; Secure; HttpOnly" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "iPlanetDirectoryPro=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "amlbcookie=; Path=/; Secure; HttpOnly; SameSite=none" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "cache-control", + "value": "private" + }, + { + "name": "content-api-version", + "value": "resource=2.1" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 693, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:51:26.292Z", + "time": 19, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 19 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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": 292, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 292, + "text": "{\"username\":\"amadmin\",\"universalId\":\"id=amadmin,ou=user,ou=am-config\",\"realm\":\"/\",\"latestAccessTime\":\"2026-03-23T19:51:26Z\",\"maxIdleExpirationTime\":\"2026-03-23T20:21:26Z\",\"maxSessionExpirationTime\":\"2026-03-23T21:51:25Z\",\"properties\":{\"AMCtxId\":\"43ba9500-5021-4093-850b-dc18b8548553-114326\"}}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "292" + }, + { + "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": 609, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:51:26.317Z", + "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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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, 23 Mar 2026 19:51:26 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-03-23T19:51:26.328Z", + "time": 6, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 6 + } + }, + { + "_id": "82b8cbc35dc155b85beadb9372c44a9a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 925, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "925" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 590, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"oauth2Scopes\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"Script\",\"AMIdentityMembership\",\"IPv6\",\"SimpleTime\",\"IPv4\",\"LEAuthLevel\",\"LDAPFilter\",\"AuthScheme\",\"Session\",\"AND\",\"AuthenticateToRealm\",\"ResourceEnvIP\",\"SessionProperty\",\"OAuth2Scope\",\"OR\",\"Transaction\",\"NOT\",\"AuthLevel\",\"AuthenticateToService\"],\"createdBy\":\"id=dsameuser,ou=user,ou=am-config\",\"creationDate\":1578580064992,\"description\":\"The built-in Application used by the OAuth2 scope authorization process.\",\"displayName\":\"Default OAuth2 Scopes Policy Set\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1773426680314,\"name\":\"oauth2Scopes\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AuthenticatedUsers\",\"NOT\",\"Identity\",\"OR\",\"AND\",\"NONE\",\"JwtClaim\"]}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/?_action=create" + }, + "response": { + "bodySize": 904, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 904, + "text": "{\"creationDate\":1578580064992,\"name\":\"oauth2Scopes\",\"displayName\":\"Default OAuth2 Scopes Policy Set\",\"description\":\"The built-in Application used by the OAuth2 scope authorization process.\",\"attributeNames\":[],\"createdBy\":\"id=dsameuser,ou=user,ou=am-config\",\"conditions\":[\"Script\",\"AMIdentityMembership\",\"IPv6\",\"SimpleTime\",\"IPv4\",\"LEAuthLevel\",\"LDAPFilter\",\"AuthScheme\",\"Session\",\"AND\",\"AuthenticateToRealm\",\"ResourceEnvIP\",\"SessionProperty\",\"OAuth2Scope\",\"OR\",\"Transaction\",\"NOT\",\"AuthLevel\",\"AuthenticateToService\"],\"subjects\":[\"AuthenticatedUsers\",\"NOT\",\"Identity\",\"OR\",\"AND\",\"NONE\",\"JwtClaim\"],\"applicationType\":\"iPlanetAMWebAgentService\",\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedDate\":1774295486145,\"editable\":true,\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"saveIndex\":null,\"searchIndex\":null,\"resourceComparator\":null,\"resourceTypeUuids\":[\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"]}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "904" + }, + { + "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=2.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": "\"1774295486145\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "location", + "value": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/oauth2Scopes" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 735, + "httpVersion": "HTTP/1.1", + "redirectURL": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/oauth2Scopes", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2026-03-23T19:51:26.401Z", + "time": 32, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 32 + } + }, + { + "_id": "633da07901928e4c0e9fc37971aefbb5", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 590, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [ + { + "name": "_action", + "value": "create" + } + ], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/?_action=create" + }, + "response": { + "bodySize": 71, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 71, + "text": "{\"code\":409,\"reason\":\"Conflict\",\"message\":\"Application already exists\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "71" + }, + { + "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=2.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": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 609, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 409, + "statusText": "Conflict" + }, + "startedDateTime": "2026-03-23T19:51:26.438Z", + "time": 24, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 24 + } + }, + { + "_id": "1803852e546fae4cc666dc8843a5b4ce", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 889, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "name": "accept-api-version", + "value": "protocol=1.0,resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "889" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 581, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test_id\",\"applicationType\":\"iPlanetAMWebAgentService\",\"attributeNames\":[],\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":1774279445225,\"description\":null,\"displayName\":\"test policy\",\"editable\":true,\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":1774279445225,\"name\":\"test_id\",\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"],\"saveIndex\":null,\"searchIndex\":null,\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"]}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/applications/test_id" + }, + "response": { + "bodySize": 873, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 873, + "text": "{\"creationDate\":1774279445225,\"name\":\"test_id\",\"displayName\":\"test policy\",\"description\":null,\"attributeNames\":[],\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"conditions\":[\"AMIdentityMembership\",\"AND\",\"AuthLevel\",\"AuthScheme\",\"AuthenticateToRealm\",\"AuthenticateToService\",\"IPv4\",\"IPv6\",\"IdmUser\",\"LDAPFilter\",\"LEAuthLevel\",\"NOT\",\"OAuth2Scope\",\"OR\",\"Policy\",\"ResourceEnvIP\",\"Script\",\"Session\",\"SessionProperty\",\"SimpleTime\",\"Transaction\"],\"subjects\":[\"AND\",\"AuthenticatedUsers\",\"Identity\",\"JwtClaim\",\"NONE\",\"NOT\",\"OR\",\"Policy\"],\"applicationType\":\"iPlanetAMWebAgentService\",\"entitlementCombiner\":\"DenyOverride\",\"lastModifiedDate\":1774295486195,\"editable\":true,\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"saveIndex\":null,\"searchIndex\":null,\"resourceComparator\":null,\"resourceTypeUuids\":[\"76656a38-5f8e-401b-83aa-4ccb74ce88d2\",\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\"]}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "873" + }, + { + "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=2.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": "\"1774295486195\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 633, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:51:26.466Z", + "time": 16, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 16 + } + }, + { + "_id": "216b1e7b665f889210a505340bfd17eb", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 435, + "cookies": [], + "headers": [ + { + "name": "accept", + "value": "application/json, text/plain, */*" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "user-agent", + "value": "@rockcarver/frodo-lib/4.0.0-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "name": "accept-api-version", + "value": "resource=2.1" + }, + { + "name": "cookie", + "value": "iPlanetDirectoryPro=" + }, + { + "name": "content-length", + "value": "435" + }, + { + "name": "accept-encoding", + "value": "gzip, compress, deflate, br" + }, + { + "name": "host", + "value": "openam-frodo-dev.forgeblocks.com" + } + ], + "headersSize": 569, + "httpVersion": "HTTP/1.1", + "method": "PUT", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"_id\":\"test value\",\"_rev\":\"1774279459670\",\"actionValues\":{},\"active\":true,\"applicationName\":\"test_id\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T15:24:19.670Z\",\"description\":\"\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T15:24:19.670Z\",\"name\":\"test value\",\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"resources\":[\"*://*:*/*\"],\"subject\":{\"type\":\"NONE\"}}" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/json/realms/root/realms/alpha/policies/test%20value" + }, + "response": { + "bodySize": 435, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 435, + "text": "{\"_id\":\"test value\",\"_rev\":\"1774295486226\",\"name\":\"test value\",\"active\":true,\"description\":\"\",\"resources\":[\"*://*:*/*\"],\"applicationName\":\"test_id\",\"actionValues\":{},\"subject\":{\"type\":\"NONE\"},\"resourceTypeUuid\":\"d60b7a71-1dc6-44a5-8e48-e4b9d92dee8b\",\"lastModifiedBy\":\"id=amadmin,ou=user,ou=am-config\",\"lastModifiedDate\":\"2026-03-23T19:51:26.226Z\",\"createdBy\":\"id=amadmin,ou=user,ou=am-config\",\"creationDate\":\"2026-03-23T19:27:15.424Z\"}" + }, + "cookies": [ + { + "httpOnly": true, + "name": "route", + "path": "/am", + "secure": true, + "value": "" + } + ], + "headers": [ + { + "name": "date", + "value": "Mon, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "435" + }, + { + "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=2.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": "\"1774295486226\"" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains" + } + ], + "headersSize": 633, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-03-23T19:51:26.490Z", + "time": 39, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 39 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/oauth2_393036114/recording.har b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/oauth2_393036114/recording.har new file mode 100644 index 000000000..f2caea41b --- /dev/null +++ b/test/e2e/mocks/config-manager_4167095917/push_2272264157/authz-policies_3151337724/0_r_D_m_3443305505/oauth2_393036114/recording.har @@ -0,0 +1,289 @@ +{ + "log": { + "_recordingName": "config-manager/push/authz-policies/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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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=tV2LcgnZO3oRN6PkzghrhR7CU1A.*AAJTSQACMDIAAlNLABxJaFprUTFicCtpc3hpUkZROUR6SHNqV1JyWEU9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=p3MYjUckiDnNWhv2zZCRmFBbkEQXIxEKg-aej6dZaUk&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, 23 Mar 2026 19:51:26 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=axjC4N6ryh4jkTn3w6tgWnEkO_U&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=axjC4N6ryh4jkTn3w6tgWnEkO_U&iss=https%3A%2F%2Fplatform.dev.trivir.com%2Fam%2Foauth2&client_id=idm-admin-ui", + "status": 302, + "statusText": "Found" + }, + "startedDateTime": "2026-03-23T19:51:26.340Z", + "time": 13, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 13 + } + }, + { + "_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-30" + }, + { + "name": "x-forgerock-transactionid", + "value": "frodo-901527ab-318f-49fb-8472-9e96bf7083b8" + }, + { + "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=axjC4N6ryh4jkTn3w6tgWnEkO_U&code_verifier=OvG79E6pd_WczaifexITkOOpai3laFNy6nJ0tErD_n8" + }, + "queryString": [], + "url": "https://platform.dev.trivir.com/am/oauth2/access_token" + }, + "response": { + "bodySize": 1250, + "content": { + "mimeType": "application/json;charset=UTF-8", + "size": 1250, + "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, 23 Mar 2026 19:51:26 GMT" + }, + { + "name": "content-type", + "value": "application/json;charset=UTF-8" + }, + { + "name": "content-length", + "value": "1250" + }, + { + "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-03-23T19:51:26.359Z", + "time": 32, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 32 + } + } + ], + "pages": [], + "version": "1.2" + } +}