@rockcarver/frodo-lib 0.17.3 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/cjs/api/Saml2Api.js +36 -14
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +23 -2
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/ops/IdpOps.js +3 -3
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +49 -35
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +104 -57
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +193 -186
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ScriptOps.test.js.map +1 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +5 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney1.journey.json +148 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney2.journey.json +76 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney3.journey.json +873 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney4.journey.json +930 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney5.journey.json +873 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney6.journey.json +148 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney7.journey.json +148 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney8.journey.json +148 -0
- package/cjs/test/mocks/JourneyOps/importJourney/FrodoTestJourney9.journey.json +148 -0
- package/esm/api/Saml2Api.mjs +17 -1
- package/esm/api/ScriptApi.mjs +17 -2
- package/esm/ops/IdpOps.mjs +4 -4
- package/esm/ops/JourneyOps.mjs +30 -21
- package/esm/ops/JourneyOps.test.mjs +220 -246
- package/esm/ops/Saml2Ops.mjs +66 -31
- package/esm/ops/Saml2Ops.test.mjs +399 -333
- package/esm/ops/ScriptOps.mjs +148 -152
- package/esm/ops/ScriptOps.test.mjs +282 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +4 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney1.journey.json +148 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney2.journey.json +76 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney3.journey.json +873 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney4.journey.json +930 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney5.journey.json +873 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney6.journey.json +148 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney7.journey.json +148 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney8.journey.json +148 -0
- package/esm/test/mocks/JourneyOps/importJourney/FrodoTestJourney9.journey.json +148 -0
- package/package.json +10 -2
- package/types/api/Saml2Api.d.ts +8 -1
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts +7 -1
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +17 -3
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +1 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +24 -12
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts +56 -20
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +1 -0
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
package/cjs/ops/ScriptOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptOps.js","names":["listScripts","long","scripts","getScripts","result","sort","a","b","name","localeCompare","table","createTable","langMap","JAVASCRIPT","GROOVY","forEach","script","push","wordwrap","_id","language","titleCase","context","split","join","description","printMessage","toString","error","exportScriptByName","file","fileName","getTypedFilename","scriptData","getScriptByName","length","element","scriptTextArray","convertBase64TextToArray","saveToFile","exportScriptsToFile","state","getRealm","scriptList","allScriptsData","createProgressIndicator","item","updateProgressIndicator","stopProgressIndicator","exportScriptsToFiles","createOrUpdateScript","id","data","putScript","e","response","status","newName","applyNameCollisionPolicy","message","importScriptsFromFile","reUuid","fs","readFile","err","JSON","parse","validateImport","meta","Object","keys","existingId","hasOwnProperty","call","newId","encodedScript","convertTextArrayToBase64","uuidv4","then"],"sources":["ops/ScriptOps.ts"],"sourcesContent":["import fs from 'fs';\nimport { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport { getScriptByName, getScripts, putScript } from '../api/ScriptApi';\nimport wordwrap from './utils/Wordwrap';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getTypedFilename,\n saveToFile,\n titleCase,\n validateImport,\n} from './utils/ExportImportUtils';\nimport * as state from '../shared/State';\n\n/**\n * List scripts\n */\nexport async function listScripts(long = false) {\n try {\n const scripts = (await getScripts()).result;\n scripts.sort((a, b) => a.name.localeCompare(b.name));\n if (long) {\n const table = createTable([\n 'Name',\n 'UUID',\n 'Language',\n 'Context',\n 'Description',\n ]);\n const langMap = { JAVASCRIPT: 'JS', GROOVY: 'Groovy' };\n scripts.forEach((script) => {\n table.push([\n wordwrap(script.name, 25, ' '),\n script._id,\n langMap[script.language],\n wordwrap(titleCase(script.context.split('_').join(' ')), 25),\n wordwrap(script.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n scripts.forEach((script) => {\n printMessage(`${script.name}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing scripts - ${error}`, 'error');\n }\n}\n\n/**\n * Export script to file\n * @param {String} name script name\n * @param {String} file file name\n */\nexport async function exportScriptByName(name, file) {\n let fileName = getTypedFilename(name, 'script');\n if (file) {\n fileName = file;\n }\n const scriptData = (await getScriptByName(name)).result;\n if (scriptData.length > 1) {\n printMessage(`Multiple scripts with name ${name} found...`, 'error');\n }\n scriptData.forEach((element) => {\n const scriptTextArray = convertBase64TextToArray(element.script);\n // eslint-disable-next-line no-param-reassign\n element.script = scriptTextArray;\n });\n saveToFile('script', scriptData, '_id', fileName);\n}\n\n/**\n * Export all scripts to single file\n * @param {String} file file name\n */\nexport async function exportScriptsToFile(file) {\n let fileName = getTypedFilename(`all${state.getRealm()}Scripts`, 'script');\n if (file) {\n fileName = file;\n }\n const scriptList = (await getScripts()).result;\n const allScriptsData = [];\n createProgressIndicator(scriptList.length, 'Exporting script');\n for (const item of scriptList) {\n updateProgressIndicator(`Reading script ${item.name}`);\n // eslint-disable-next-line no-await-in-loop\n const scriptData = (await getScriptByName(item.name)).result;\n scriptData.forEach((element) => {\n const scriptTextArray = convertBase64TextToArray(element.script);\n // eslint-disable-next-line no-param-reassign\n element.script = scriptTextArray;\n allScriptsData.push(element);\n });\n }\n stopProgressIndicator('Done');\n saveToFile('script', allScriptsData, '_id', fileName);\n}\n\n/**\n * Export all scripts to individual files\n */\nexport async function exportScriptsToFiles() {\n const scriptList = (await getScripts()).result;\n createProgressIndicator(scriptList.length, 'Exporting script');\n for (const item of scriptList) {\n updateProgressIndicator(`Reading script ${item.name}`);\n // eslint-disable-next-line no-await-in-loop\n const scriptData = (await getScriptByName(item.name)).result;\n scriptData.forEach((element) => {\n const scriptTextArray = convertBase64TextToArray(element.script);\n // eslint-disable-next-line no-param-reassign\n element.script = scriptTextArray;\n });\n const fileName = getTypedFilename(item.name, 'script');\n saveToFile('script', scriptData, '_id', fileName);\n }\n stopProgressIndicator('Done');\n}\n\n/**\n * Import script\n * @param {String} id script uuid\n * @param {Object} data script object\n * @returns {Object} a status object\n */\nexport async function createOrUpdateScript(id, data) {\n try {\n await putScript(id, data);\n return { error: false, name: data.name };\n } catch (e) {\n if (e.response?.status === 409) {\n printMessage(\n `createOrUpdateScript WARNING: script with name ${data.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n 'warn'\n );\n const newName = applyNameCollisionPolicy(data.name);\n // console.log(newName);\n printMessage(`Trying to save script as ${newName}`, 'warn');\n // eslint-disable-next-line no-param-reassign\n data.name = newName;\n await createOrUpdateScript(id, data);\n return { error: false, name: data.name };\n }\n printMessage(\n `createOrUpdateScript ERROR: put script error, script ${id} - ${e.message}`,\n 'error'\n );\n return { error: true, name: data.name };\n }\n}\n\nexport async function importScriptsFromFile(name, file, reUuid = false) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const scriptData = JSON.parse(data);\n if (validateImport(scriptData.meta)) {\n createProgressIndicator(Object.keys(scriptData.script).length, '');\n for (const existingId in scriptData.script) {\n if ({}.hasOwnProperty.call(scriptData.script, existingId)) {\n let newId = existingId;\n // console.log(id);\n const encodedScript = convertTextArrayToBase64(\n scriptData.script[existingId].script\n );\n scriptData.script[existingId].script = encodedScript;\n if (reUuid) {\n newId = uuidv4();\n // printMessage(\n // `Re-uuid-ing script ${scriptData.script[existingId].name} ${existingId} => ${newId}...`\n // );\n scriptData.script[existingId]._id = newId;\n }\n if (name) {\n // printMessage(\n // `Renaming script ${scriptData.script[existingId].name} => ${options.script}...`\n // );\n scriptData.script[existingId].name = name;\n }\n updateProgressIndicator(\n `Importing ${scriptData.script[existingId].name}`\n );\n // console.log(scriptData.script[id]);\n createOrUpdateScript(newId, scriptData.script[existingId]).then(\n (result) => {\n if (result == null)\n printMessage(\n `Error importing ${scriptData.script[existingId].name}`,\n 'error'\n );\n }\n );\n if (name) break;\n }\n }\n stopProgressIndicator('Done');\n // printMessage('Done');\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScriptOps.js","names":["createScriptExportTemplate","meta","getMetadata","script","getScripts","result","_getScripts","getScript","scriptId","response","_getScript","getScriptByName","name","_getScriptByName","length","Error","putScript","scriptData","Array","isArray","convertTextArrayToBase64","_putScript","error","status","printMessage","newName","applyNameCollisionPolicy","deleteScript","_deleteScript","exportScript","debugMessage","convertBase64TextToArray","exportData","_id","exportScriptByName","exportScripts","scriptList","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","importScripts","importData","reUuid","outcome","Object","keys","existingId","newId","uuidv4","message"],"sources":["ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getScript as _getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n deleteScript as _deleteScript,\n} from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { ScriptSkeleton } from '../api/ApiTypes';\nimport { ExportMetaData } from '../ops/OpsTypes';\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {ScriptExportInterface} an empty idp export template\n */\nexport function createScriptExportTemplate(): ScriptExportInterface {\n return {\n meta: getMetadata(),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts(): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts();\n return result;\n}\n\n/**\n * Get script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScript(scriptId: string): Promise<ScriptSkeleton> {\n const response = await _getScript(scriptId);\n return response;\n}\n\n/**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScriptByName(name: string): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName(name);\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${name}' not found`);\n default:\n throw new Error(`${result.length} scripts '${name}' found`);\n }\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\nexport async function putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n): Promise<boolean> {\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n const result = await _putScript(scriptId, scriptData);\n return result;\n } catch (error) {\n if (error.response?.status === 409) {\n printMessage(\n `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n 'warn'\n );\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n const result = await putScript(scriptId, scriptData);\n printMessage(`Saved script as ${newName}`, 'warn');\n return result;\n }\n throw error;\n }\n}\n\n/**\n * Delete script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function deleteScript(scriptId: string): Promise<ScriptSkeleton> {\n const response = await _deleteScript(scriptId);\n return response;\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript(\n scriptId: string\n): Promise<ScriptExportInterface> {\n debugMessage(`ScriptOps.exportScriptById: start`);\n const scriptData = await _getScript(scriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate();\n exportData.script[scriptData._id] = scriptData;\n debugMessage(`ScriptOps.exportScriptById: end`);\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName(\n name: string\n): Promise<ScriptExportInterface> {\n debugMessage(`ScriptOps.exportScriptByName: start`);\n const scriptData = await getScriptByName(name);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate();\n exportData.script[scriptData._id] = scriptData;\n debugMessage(`ScriptOps.exportScriptByName: end`);\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts(): Promise<ScriptExportInterface> {\n const scriptList = await getScripts();\n const exportData = createScriptExportTemplate();\n createProgressIndicator(\n scriptList.length,\n `Exporting ${scriptList.length} scripts...`\n );\n for (const script of scriptList) {\n updateProgressIndicator(`Reading script ${script.name}`);\n const scriptData = await getScriptByName(script.name);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator(`Exported ${scriptList.length} scripts.`);\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} name Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts(\n name: string,\n importData: ScriptExportInterface,\n reUuid = false\n): Promise<boolean> {\n let outcome = true;\n debugMessage(`ScriptOps.importScriptsFromFile: start`);\n createProgressIndicator(\n Object.keys(importData.script).length,\n 'Importing scripts...'\n );\n for (const existingId of Object.keys(importData.script)) {\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage(\n `ScriptOps.importScriptsFromFile: Re-uuid-ing script ${importData.script[existingId].name} ${existingId} => ${newId}...`\n );\n importData.script[existingId]._id = newId;\n }\n if (name) {\n debugMessage(\n `ScriptOps.importScriptsFromFile: Renaming script ${importData.script[existingId].name} => ${name}...`\n );\n importData.script[existingId].name = name;\n }\n try {\n await putScript(newId, importData.script[existingId]);\n updateProgressIndicator(`Imported ${importData.script[existingId].name}`);\n } catch (error) {\n outcome = false;\n printMessage(\n `Error importing script '${importData.script[existingId].name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n if (name) break;\n }\n stopProgressIndicator('Done');\n debugMessage(`ScriptOps.importScriptsFromFile: end`);\n return outcome;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptOps.test.js","names":["jest","setTimeout","autoSetupPolly","stageScript","script","create","Script","getScript","id","deleteScript","error","putScript","data","describe","script1","name","_id","description","default","language","context","createdBy","creationDate","lastModifiedBy","lastModifiedDate","script2","script3","script4","script5","import1","meta","origin","originAmVersion","exportedBy","exportDate","exportTool","exportToolVersion","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","createScriptExportTemplate","toBeDefined","response","toMatchSnapshot","any","Object","getScripts","getScriptByName","exportScript","exportScriptByName","exportScripts","importScripts","assertions","outcome","toBeTruthy"],"sources":["ops/ScriptOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record ScriptOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update ScriptOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only ScriptOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { jest } from '@jest/globals';\nimport { Script } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\nimport { ScriptSkeleton } from '../../types/api/ApiTypes';\n\n// Increase timeout for this test as pipeline keeps failing with error:\n// Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.\njest.setTimeout(30000);\n\nautoSetupPolly();\n\nasync function stageScript(\n script: { id: string; name: string; data: ScriptSkeleton },\n create = true\n) {\n // delete if exists, then create\n try {\n await Script.getScript(script.id);\n await Script.deleteScript(script.id);\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await Script.putScript(script.id, script.data);\n }\n }\n}\n\ndescribe('ScriptOps', () => {\n const script1 = {\n id: 'c9cb4b1e-1cd3-4e5b-8f56-140f83ba9f6d',\n name: 'FrodoTestScript1',\n data: {\n _id: 'c9cb4b1e-1cd3-4e5b-8f56-140f83ba9f6d',\n name: 'FrodoTestScript1',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n } as ScriptSkeleton,\n };\n const script2 = {\n id: 'b7259916-71ed-4675-8c5a-de86a80e4aed',\n name: 'FrodoTestScript2',\n data: {\n _id: 'b7259916-71ed-4675-8c5a-de86a80e4aed',\n name: 'FrodoTestScript2',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n } as ScriptSkeleton,\n };\n const script3 = {\n id: '3b2f6836-184c-4ee9-8a1d-557cb01837a5',\n name: 'FrodoTestScript3',\n data: {\n _id: '3b2f6836-184c-4ee9-8a1d-557cb01837a5',\n name: 'FrodoTestScript3',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n } as ScriptSkeleton,\n };\n const script4 = {\n id: '10643e95-873a-4ec0-b713-a7f56760d179',\n name: 'FrodoTestScript4',\n data: {\n _id: '10643e95-873a-4ec0-b713-a7f56760d179',\n name: 'FrodoTestScript4',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n } as ScriptSkeleton,\n };\n const script5 = {\n id: '5b3e4dd2-8060-4029-9ec1-6867932ab939',\n name: 'FrodoTestScript5',\n data: {\n _id: '5b3e4dd2-8060-4029-9ec1-6867932ab939',\n name: 'FrodoTestScript5',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n } as ScriptSkeleton,\n };\n const import1: { name: string; data: Script.ScriptExportInterface } = {\n name: 'FrodoTestScript5',\n data: {\n meta: {\n origin: 'https://openam-frodo-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2023-01-02T20:04:41.662Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.1 [v18.5.0]',\n },\n script: {\n '5b3e4dd2-8060-4029-9ec1-6867932ab939': {\n _id: '5b3e4dd2-8060-4029-9ec1-6867932ab939',\n name: 'FrodoTestScript5',\n description: 'Check if username has already been collected.',\n script: [\n '/* Check Username',\n ' *',\n ' * Author: volker.scheuber@forgerock.com',\n ' * ',\n ' * Check if username has already been collected.',\n ' * Return \"known\" if yes, \"unknown\" otherwise.',\n ' * ',\n ' * This script does not need to be parametrized. It will work properly as is.',\n ' * ',\n ' * The Scripted Decision Node needs the following outcomes defined:',\n ' * - known',\n ' * - unknown',\n ' */',\n '(function () {',\n ' if (null != sharedState.get(\"username\")) {',\n ' outcome = \"known\";',\n ' }',\n ' else {',\n ' outcome = \"unknown\";',\n ' }',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'AUTHENTICATION_TREE_DECISION_NODE',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageScript(script1);\n await stageScript(script2);\n await stageScript(script3, false);\n await stageScript(script4);\n await stageScript(script5, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageScript(script1, false);\n await stageScript(script2, false);\n await stageScript(script3, false);\n await stageScript(script4, false);\n await stageScript(script5, false);\n }\n });\n\n describe('createScriptExportTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.createScriptExportTemplate).toBeDefined();\n });\n\n test(`1: Create script export template`, async () => {\n const response = Script.createScriptExportTemplate();\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getScripts()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.getScripts).toBeDefined();\n });\n\n test(`1: Get scripts`, async () => {\n const response = await Script.getScripts();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getScript()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.getScript).toBeDefined();\n });\n\n test(`1: Get script by id '${script1.id}'`, async () => {\n const response = await Script.getScript(script1.id);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getScriptByName()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.getScriptByName).toBeDefined();\n });\n\n test(`1: Get script by name '${script1.name}'`, async () => {\n const response = await Script.getScriptByName(script1.name);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putScript()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.putScript).toBeDefined();\n });\n\n test(`1: Put script '${script3.id}'`, async () => {\n const response = await Script.putScript(script3.id, script3.data);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportScript()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.exportScript).toBeDefined();\n });\n\n test(`1: Export script by id ${script1.id}`, async () => {\n const response = await Script.exportScript(script1.id);\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportScriptByName()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.exportScriptByName).toBeDefined();\n });\n\n test(`1: Export script by name ${script1.name}`, async () => {\n const response = await Script.exportScriptByName(script1.name);\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportScripts()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.exportScripts).toBeDefined();\n });\n\n test('1: Export all scripts', async () => {\n const response = await Script.exportScripts();\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importScripts()', () => {\n test('0: Method is implemented', async () => {\n expect(Script.importScripts).toBeDefined();\n });\n\n test(`1: Import all scripts`, async () => {\n expect.assertions(1);\n const outcome = await Script.importScripts('', import1.data);\n expect(outcome).toBeTruthy();\n });\n\n test(`2: Import script by name`, async () => {\n expect.assertions(1);\n const outcome = await Script.importScripts(import1.name, import1.data);\n expect(outcome).toBeTruthy();\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getAgent = getAgent;
|
|
7
7
|
exports.getCirclesOfTrust = getCirclesOfTrust;
|
|
8
|
+
exports.getJourney = getJourney;
|
|
8
9
|
exports.getSaml2ProviderImportData = getSaml2ProviderImportData;
|
|
9
10
|
exports.getSaml2Providers = getSaml2Providers;
|
|
10
11
|
exports.getSaml2ProvidersImportData = getSaml2ProvidersImportData;
|
|
@@ -181,6 +182,10 @@ function getTree(treeId) {
|
|
|
181
182
|
var treeObject = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, "./TreeApi/getTree/".concat(treeId, ".json")), 'utf8'));
|
|
182
183
|
return treeObject;
|
|
183
184
|
}
|
|
185
|
+
function getJourney(journeyId) {
|
|
186
|
+
var treeObject = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, "./JourneyOps/importJourney/".concat(journeyId, ".journey.json")), 'utf8'));
|
|
187
|
+
return treeObject;
|
|
188
|
+
}
|
|
184
189
|
function mockGetTree(mock) {
|
|
185
190
|
mock.onGet(/.*?\/json\/realms\/root\/realms\/alpha\/realm-config\/authentication\/authenticationtrees\/trees\/.+/).reply(function (config) {
|
|
186
191
|
var elements = config.url ? config.url.split('/') : [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getServerInfo","variation","prefix","infoObject","getServerVersionInfo","versionObject","mockGetServerInfo","mock","onGet","reply","config","elements","url","split","id","length","mockStatus","mockResponse","expect","_id","toBe","mockGetServerVersionInfo","getTreeStepResponse","treeId","authId","key","treeStepsObj","mockStep","onPost","parsed","parseUrl","searchParam","body","data","toBeTruthy","mockAuthorize","parseQueryString","responseType","undefined","mockHeaders","headers","header","mockAccessToken","grantType","code","Object","entries","getTrees","treeObjects","mockGetTrees","getTree","treeObject","mockGetTree","mockPutTree","callback","onPut","mockTreeObj","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2ProviderImportData","entityId","importData","getTypedFilename","getSaml2ProvidersImportData","getSaml2Providers","providers","mockGetSaml2Providers","mockFindSaml2Providers","filter","match","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","slugify","error","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","realm","encodeURIComponent","getSocialProviders","objects","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","getAgent","agentType","agentId","mockGetAllConfigEntities","mockGetConfigEntity","substring","indexOf","mockPutConfigEntity","mockGetConfigEntitiesByType","console","log","entityType","mockCreateManagedObject","moId","uuidv4","mockAll"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseQueryString, parseUrl } from '../../api/utils/ApiUtils';\nimport slugify from 'slugify';\nimport { getTypedFilename } from '../../ops/utils/ExportImportUtils';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/****\n **\n ** AM Mocks and Utils\n **\n **/\n\n/**\n * Authentication Mocks\n */\n\nexport function getServerInfo(variation: string = null) {\n const prefix = 'info';\n const infoObject = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./ServerInfoApi/getServerInfo/${\n variation ? prefix + '-' + variation : prefix\n }.json`\n ),\n 'utf8'\n )\n );\n return infoObject;\n}\n\nexport function getServerVersionInfo(variation: string = null) {\n const prefix = 'version';\n const versionObject = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./ServerInfoApi/getServerVersionInfo/${\n variation ? prefix + '-' + variation : prefix\n }.json`\n ),\n 'utf8'\n )\n );\n return versionObject;\n}\n\nexport function mockGetServerInfo(mock: MockAdapter, variation: string = null) {\n mock.onGet(/.*?\\/json\\/serverinfo\\/\\*/).reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const id = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getServerInfo(variation);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(id);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetServerVersionInfo(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/json\\/serverinfo\\/version/).reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const id = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getServerVersionInfo(variation);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(id);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTreeStepResponse(\n treeId: string | undefined,\n authId: string | undefined\n) {\n const key = authId ? authId : 'undefined';\n const treeStepsObj = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AuthenticateApi/step/${treeId ? treeId : 'default'}_steps.json`\n ),\n 'utf8'\n )\n );\n return treeStepsObj[key];\n}\n\nexport function mockStep(mock: MockAdapter) {\n mock\n .onPost(/.*?\\/json\\/realms\\/root\\/authenticate.*/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const treeId = parsed.searchParam['authIndexValue'];\n const body = JSON.parse(config.data);\n const authId = body.authId;\n const mockStatus = 200;\n const mockResponse = getTreeStepResponse(treeId, authId);\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockAuthorize(mock: MockAdapter) {\n mock.onPost(/.*?\\/oauth2\\/authorize.*/).reply(function (config) {\n const parsed = parseQueryString(config.data);\n const responseType = parsed['response_type'];\n let mockStatus = 500;\n const mockResponse = undefined;\n const mockHeaders = {};\n if (responseType === 'code') {\n mockStatus = 302;\n const headers = readJsonFile(`./OAuth2OIDCApi/authorize/headers.json`);\n for (const header of headers) {\n mockHeaders[header['key']] = header['value'];\n }\n }\n if (typeof expect !== 'undefined') expect(mockHeaders).toBeTruthy();\n return [mockStatus, mockResponse, mockHeaders];\n });\n}\n\nexport function mockAccessToken(mock: MockAdapter) {\n mock.onPost(/.*?\\/oauth2\\/access_token.*/).reply(function (config) {\n const parsed = parseQueryString(config.data);\n const grantType = parsed['grant_type'];\n const code = parsed['code'];\n let mockStatus = 500;\n let mockResponse = undefined;\n const mockHeaders = {};\n if (grantType === 'authorization_code' && code) {\n mockStatus = 200;\n mockResponse = readJsonFile(`./OAuth2OIDCApi/accessToken/body.json`);\n const headers = readJsonFile(`./OAuth2OIDCApi/accessToken/headers.json`);\n for (const header of Object.entries(headers)) {\n mockHeaders[header['key']] = header['value'];\n }\n }\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse, mockHeaders];\n });\n}\n\n/**\n * Tree Mocks\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\n/**\n * Node Mocks\n */\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\n/**\n * Script Mocks\n */\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n if (typeof expect !== 'undefined')\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n/**\n * SAML Mocks\n */\nexport function getSaml2ProviderImportData(entityId: string) {\n const importData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Ops/importSaml2Provider/${getTypedFilename(\n entityId,\n 'saml',\n 'json'\n )}`\n ),\n 'utf8'\n )\n );\n return importData;\n}\n\nexport function getSaml2ProvidersImportData() {\n const importData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json`\n ),\n 'utf8'\n )\n );\n return importData;\n}\n\nexport function getSaml2Providers() {\n const providers = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return providers;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const filter = parsed.searchParam['_queryFilter'];\n const entityId = filter.match(/entityId eq '(.+?)'/)[1];\n const mockStatus = 200;\n let mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n try {\n mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/findSaml2Providers/${slugify(entityId)}_stub.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined')\n expect(mockResponse.result[0].entityId).toBe(entityId);\n } catch (error) {\n // ignore errors\n }\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined')\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encodeURIComponent(\n entityId\n )}.xml`\n ),\n 'utf8'\n );\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\n/**\n * Social Identity Provider Mocks\n */\n\nexport function getSocialProviders() {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * Agent test utils\n */\n\nexport function getAgent(agentType, agentId) {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/getAgentByTypeAndId/${agentType}/${agentId}.json`\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\n/****\n **\n ** IDM Mocks and Utils\n **\n **/\n\nexport function mockGetAllConfigEntities(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config$/).reply(function () {\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getAllConfigEntities/entities.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntity(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${\n variation ? entityId + '-' + variation : entityId\n }.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntitiesByType(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'.+?'/)\n .reply(function (config) {\n console.log('config.url=' + config.url);\n const entityType = config.url\n ? config.url.match(\n /.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'(.+?)'/\n )[1]\n : '';\n const mockStatus = 200;\n console.log('entityType=' + entityType);\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntitiesByType/${entityType}.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateManagedObject(\n mock: MockAdapter,\n callback: (mockManagedObjId: string, mockManagedObj) => void\n) {\n mock\n .onPost(/.*?\\/openidm\\/managed\\/.+?\\?_action=create/)\n .reply(function (config) {\n const mockStatus = 201;\n const mockResponse = JSON.parse(config.data);\n const moId = uuidv4();\n mockResponse._id = moId;\n callback(moId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\n/****\n **\n ** Mock Helpers & Utils\n **\n **/\n\nexport function mockAll(mock: MockAdapter) {\n mockGetServerInfo(mock);\n mockGetServerVersionInfo(mock);\n mockStep(mock);\n mockAuthorize(mock);\n mockAccessToken(mock);\n mockGetTrees(mock);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getServerInfo","variation","prefix","infoObject","getServerVersionInfo","versionObject","mockGetServerInfo","mock","onGet","reply","config","elements","url","split","id","length","mockStatus","mockResponse","expect","_id","toBe","mockGetServerVersionInfo","getTreeStepResponse","treeId","authId","key","treeStepsObj","mockStep","onPost","parsed","parseUrl","searchParam","body","data","toBeTruthy","mockAuthorize","parseQueryString","responseType","undefined","mockHeaders","headers","header","mockAccessToken","grantType","code","Object","entries","getTrees","treeObjects","mockGetTrees","getTree","treeObject","getJourney","journeyId","mockGetTree","mockPutTree","callback","onPut","mockTreeObj","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2ProviderImportData","entityId","importData","getTypedFilename","getSaml2ProvidersImportData","getSaml2Providers","providers","mockGetSaml2Providers","mockFindSaml2Providers","filter","match","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","slugify","error","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","realm","encodeURIComponent","getSocialProviders","objects","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","getAgent","agentType","agentId","mockGetAllConfigEntities","mockGetConfigEntity","substring","indexOf","mockPutConfigEntity","mockGetConfigEntitiesByType","console","log","entityType","mockCreateManagedObject","moId","uuidv4","mockAll"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseQueryString, parseUrl } from '../../api/utils/ApiUtils';\nimport slugify from 'slugify';\nimport { getTypedFilename } from '../../ops/utils/ExportImportUtils';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/****\n **\n ** AM Mocks and Utils\n **\n **/\n\n/**\n * Authentication Mocks\n */\n\nexport function getServerInfo(variation: string = null) {\n const prefix = 'info';\n const infoObject = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./ServerInfoApi/getServerInfo/${\n variation ? prefix + '-' + variation : prefix\n }.json`\n ),\n 'utf8'\n )\n );\n return infoObject;\n}\n\nexport function getServerVersionInfo(variation: string = null) {\n const prefix = 'version';\n const versionObject = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./ServerInfoApi/getServerVersionInfo/${\n variation ? prefix + '-' + variation : prefix\n }.json`\n ),\n 'utf8'\n )\n );\n return versionObject;\n}\n\nexport function mockGetServerInfo(mock: MockAdapter, variation: string = null) {\n mock.onGet(/.*?\\/json\\/serverinfo\\/\\*/).reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const id = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getServerInfo(variation);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(id);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetServerVersionInfo(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/json\\/serverinfo\\/version/).reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const id = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getServerVersionInfo(variation);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(id);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTreeStepResponse(\n treeId: string | undefined,\n authId: string | undefined\n) {\n const key = authId ? authId : 'undefined';\n const treeStepsObj = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AuthenticateApi/step/${treeId ? treeId : 'default'}_steps.json`\n ),\n 'utf8'\n )\n );\n return treeStepsObj[key];\n}\n\nexport function mockStep(mock: MockAdapter) {\n mock\n .onPost(/.*?\\/json\\/realms\\/root\\/authenticate.*/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const treeId = parsed.searchParam['authIndexValue'];\n const body = JSON.parse(config.data);\n const authId = body.authId;\n const mockStatus = 200;\n const mockResponse = getTreeStepResponse(treeId, authId);\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockAuthorize(mock: MockAdapter) {\n mock.onPost(/.*?\\/oauth2\\/authorize.*/).reply(function (config) {\n const parsed = parseQueryString(config.data);\n const responseType = parsed['response_type'];\n let mockStatus = 500;\n const mockResponse = undefined;\n const mockHeaders = {};\n if (responseType === 'code') {\n mockStatus = 302;\n const headers = readJsonFile(`./OAuth2OIDCApi/authorize/headers.json`);\n for (const header of headers) {\n mockHeaders[header['key']] = header['value'];\n }\n }\n if (typeof expect !== 'undefined') expect(mockHeaders).toBeTruthy();\n return [mockStatus, mockResponse, mockHeaders];\n });\n}\n\nexport function mockAccessToken(mock: MockAdapter) {\n mock.onPost(/.*?\\/oauth2\\/access_token.*/).reply(function (config) {\n const parsed = parseQueryString(config.data);\n const grantType = parsed['grant_type'];\n const code = parsed['code'];\n let mockStatus = 500;\n let mockResponse = undefined;\n const mockHeaders = {};\n if (grantType === 'authorization_code' && code) {\n mockStatus = 200;\n mockResponse = readJsonFile(`./OAuth2OIDCApi/accessToken/body.json`);\n const headers = readJsonFile(`./OAuth2OIDCApi/accessToken/headers.json`);\n for (const header of Object.entries(headers)) {\n mockHeaders[header['key']] = header['value'];\n }\n }\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse, mockHeaders];\n });\n}\n\n/**\n * Tree Mocks\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function getJourney(journeyId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./JourneyOps/importJourney/${journeyId}.journey.json`\n ),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\n/**\n * Node Mocks\n */\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\n/**\n * Script Mocks\n */\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n if (typeof expect !== 'undefined')\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n/**\n * SAML Mocks\n */\nexport function getSaml2ProviderImportData(entityId: string) {\n const importData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Ops/importSaml2Provider/${getTypedFilename(\n entityId,\n 'saml',\n 'json'\n )}`\n ),\n 'utf8'\n )\n );\n return importData;\n}\n\nexport function getSaml2ProvidersImportData() {\n const importData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json`\n ),\n 'utf8'\n )\n );\n return importData;\n}\n\nexport function getSaml2Providers() {\n const providers = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return providers;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const filter = parsed.searchParam['_queryFilter'];\n const entityId = filter.match(/entityId eq '(.+?)'/)[1];\n const mockStatus = 200;\n let mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n try {\n mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/findSaml2Providers/${slugify(entityId)}_stub.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined')\n expect(mockResponse.result[0].entityId).toBe(entityId);\n } catch (error) {\n // ignore errors\n }\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined')\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encodeURIComponent(\n entityId\n )}.xml`\n ),\n 'utf8'\n );\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\n/**\n * Social Identity Provider Mocks\n */\n\nexport function getSocialProviders() {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n if (typeof expect !== 'undefined') expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * Agent test utils\n */\n\nexport function getAgent(agentType, agentId) {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/getAgentByTypeAndId/${agentType}/${agentId}.json`\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\n/****\n **\n ** IDM Mocks and Utils\n **\n **/\n\nexport function mockGetAllConfigEntities(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config$/).reply(function () {\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getAllConfigEntities/entities.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntity(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${\n variation ? entityId + '-' + variation : entityId\n }.json`\n ),\n 'utf8'\n )\n );\n if (typeof expect !== 'undefined') expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntitiesByType(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'.+?'/)\n .reply(function (config) {\n console.log('config.url=' + config.url);\n const entityType = config.url\n ? config.url.match(\n /.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'(.+?)'/\n )[1]\n : '';\n const mockStatus = 200;\n console.log('entityType=' + entityType);\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntitiesByType/${entityType}.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateManagedObject(\n mock: MockAdapter,\n callback: (mockManagedObjId: string, mockManagedObj) => void\n) {\n mock\n .onPost(/.*?\\/openidm\\/managed\\/.+?\\?_action=create/)\n .reply(function (config) {\n const mockStatus = 201;\n const mockResponse = JSON.parse(config.data);\n const moId = uuidv4();\n mockResponse._id = moId;\n callback(moId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\n/****\n **\n ** Mock Helpers & Utils\n **\n **/\n\nexport function mockAll(mock: MockAdapter) {\n mockGetServerInfo(mock);\n mockGetServerVersionInfo(mock);\n mockStep(mock);\n mockAuthorize(mock);\n mockAccessToken(mock);\n mockGetTrees(mock);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"origin": "https://openam-volker-dev.forgeblocks.com/am",
|
|
4
|
+
"originAmVersion": "7.3.0",
|
|
5
|
+
"exportedBy": "volker.scheuber@forgerock.com",
|
|
6
|
+
"exportDate": "2023-01-04T19:10:44.037Z",
|
|
7
|
+
"exportTool": "frodo",
|
|
8
|
+
"exportToolVersion": "v0.17.3 [v18.7.0]"
|
|
9
|
+
},
|
|
10
|
+
"innerNodes": {
|
|
11
|
+
"f7446364-c2af-4a05-b3cc-e51d2cac5495": {
|
|
12
|
+
"_id": "f7446364-c2af-4a05-b3cc-e51d2cac5495",
|
|
13
|
+
"_rev": "1088101812",
|
|
14
|
+
"usernameAttribute": "userName",
|
|
15
|
+
"validateInput": false,
|
|
16
|
+
"_type": {
|
|
17
|
+
"_id": "ValidatedUsernameNode",
|
|
18
|
+
"name": "Platform Username",
|
|
19
|
+
"collection": true
|
|
20
|
+
},
|
|
21
|
+
"_outcomes": [
|
|
22
|
+
{
|
|
23
|
+
"id": "outcome",
|
|
24
|
+
"displayName": "Outcome"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"25f9ef92-b8a8-45fd-97bd-d32e90040202": {
|
|
29
|
+
"_id": "25f9ef92-b8a8-45fd-97bd-d32e90040202",
|
|
30
|
+
"_rev": "-1249183159",
|
|
31
|
+
"passwordAttribute": "password",
|
|
32
|
+
"validateInput": false,
|
|
33
|
+
"_type": {
|
|
34
|
+
"_id": "ValidatedPasswordNode",
|
|
35
|
+
"name": "Platform Password",
|
|
36
|
+
"collection": true
|
|
37
|
+
},
|
|
38
|
+
"_outcomes": [
|
|
39
|
+
{
|
|
40
|
+
"id": "outcome",
|
|
41
|
+
"displayName": "Outcome"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"nodes": {
|
|
47
|
+
"1c586352-4568-4918-8985-876f142d1427": {
|
|
48
|
+
"_id": "1c586352-4568-4918-8985-876f142d1427",
|
|
49
|
+
"_rev": "1832077009",
|
|
50
|
+
"_type": {
|
|
51
|
+
"_id": "DataStoreDecisionNode",
|
|
52
|
+
"name": "Data Store Decision",
|
|
53
|
+
"collection": true
|
|
54
|
+
},
|
|
55
|
+
"_outcomes": [
|
|
56
|
+
{
|
|
57
|
+
"id": "true",
|
|
58
|
+
"displayName": "True"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "false",
|
|
62
|
+
"displayName": "False"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"cc4b5c15-4af6-4a94-b0c6-fc6f31895b4f": {
|
|
67
|
+
"_id": "cc4b5c15-4af6-4a94-b0c6-fc6f31895b4f",
|
|
68
|
+
"_rev": "-1422384466",
|
|
69
|
+
"nodes": [
|
|
70
|
+
{
|
|
71
|
+
"_id": "f7446364-c2af-4a05-b3cc-e51d2cac5495",
|
|
72
|
+
"nodeType": "ValidatedUsernameNode",
|
|
73
|
+
"displayName": "Username"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"_id": "25f9ef92-b8a8-45fd-97bd-d32e90040202",
|
|
77
|
+
"nodeType": "ValidatedPasswordNode",
|
|
78
|
+
"displayName": "Password"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"pageDescription": {},
|
|
82
|
+
"pageHeader": {},
|
|
83
|
+
"_type": {
|
|
84
|
+
"_id": "PageNode",
|
|
85
|
+
"name": "Page Node",
|
|
86
|
+
"collection": true
|
|
87
|
+
},
|
|
88
|
+
"_outcomes": [
|
|
89
|
+
{
|
|
90
|
+
"id": "outcome",
|
|
91
|
+
"displayName": "Outcome"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"scripts": {},
|
|
97
|
+
"emailTemplates": {},
|
|
98
|
+
"socialIdentityProviders": {},
|
|
99
|
+
"themes": [],
|
|
100
|
+
"saml2Entities": {},
|
|
101
|
+
"circlesOfTrust": {},
|
|
102
|
+
"tree": {
|
|
103
|
+
"_id": "FrodoTestJourney1",
|
|
104
|
+
"_rev": "781670037",
|
|
105
|
+
"identityResource": "managed/alpha_user",
|
|
106
|
+
"uiConfig": {
|
|
107
|
+
"categories": "[\"Frodo\",\"Prototype\"]"
|
|
108
|
+
},
|
|
109
|
+
"entryNodeId": "cc4b5c15-4af6-4a94-b0c6-fc6f31895b4f",
|
|
110
|
+
"nodes": {
|
|
111
|
+
"1c586352-4568-4918-8985-876f142d1427": {
|
|
112
|
+
"connections": {
|
|
113
|
+
"false": "e301438c-0bd0-429c-ab0c-66126501069a",
|
|
114
|
+
"true": "70e691a5-1e33-4ac3-a356-e7b6d60d92e0"
|
|
115
|
+
},
|
|
116
|
+
"displayName": "Validate Credentials",
|
|
117
|
+
"nodeType": "DataStoreDecisionNode",
|
|
118
|
+
"x": 455,
|
|
119
|
+
"y": 137.5
|
|
120
|
+
},
|
|
121
|
+
"cc4b5c15-4af6-4a94-b0c6-fc6f31895b4f": {
|
|
122
|
+
"connections": {
|
|
123
|
+
"outcome": "1c586352-4568-4918-8985-876f142d1427"
|
|
124
|
+
},
|
|
125
|
+
"displayName": "Login Page",
|
|
126
|
+
"nodeType": "PageNode",
|
|
127
|
+
"x": 210,
|
|
128
|
+
"y": 109
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"description": "Frodo test journey",
|
|
132
|
+
"staticNodes": {
|
|
133
|
+
"70e691a5-1e33-4ac3-a356-e7b6d60d92e0": {
|
|
134
|
+
"x": 692,
|
|
135
|
+
"y": 230
|
|
136
|
+
},
|
|
137
|
+
"e301438c-0bd0-429c-ab0c-66126501069a": {
|
|
138
|
+
"x": 692,
|
|
139
|
+
"y": 80
|
|
140
|
+
},
|
|
141
|
+
"startNode": {
|
|
142
|
+
"x": 70,
|
|
143
|
+
"y": 155
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"enabled": true
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"origin": "https://openam-volker-dev.forgeblocks.com/am",
|
|
4
|
+
"originAmVersion": "7.3.0",
|
|
5
|
+
"exportedBy": "volker.scheuber@forgerock.com",
|
|
6
|
+
"exportDate": "2023-01-04T19:11:00.843Z",
|
|
7
|
+
"exportTool": "frodo",
|
|
8
|
+
"exportToolVersion": "v0.17.3 [v18.7.0]"
|
|
9
|
+
},
|
|
10
|
+
"innerNodes": {},
|
|
11
|
+
"nodes": {
|
|
12
|
+
"e3bc0d65-9f4d-4ca3-aa44-69fee11753a1": {
|
|
13
|
+
"_id": "e3bc0d65-9f4d-4ca3-aa44-69fee11753a1",
|
|
14
|
+
"_rev": "-724872196",
|
|
15
|
+
"tree": "FrodoTestJourney1",
|
|
16
|
+
"_type": {
|
|
17
|
+
"_id": "InnerTreeEvaluatorNode",
|
|
18
|
+
"name": "Inner Tree Evaluator",
|
|
19
|
+
"collection": true
|
|
20
|
+
},
|
|
21
|
+
"_outcomes": [
|
|
22
|
+
{
|
|
23
|
+
"id": "true",
|
|
24
|
+
"displayName": "True"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "false",
|
|
28
|
+
"displayName": "False"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"scripts": {},
|
|
34
|
+
"emailTemplates": {},
|
|
35
|
+
"socialIdentityProviders": {},
|
|
36
|
+
"themes": [],
|
|
37
|
+
"saml2Entities": {},
|
|
38
|
+
"circlesOfTrust": {},
|
|
39
|
+
"tree": {
|
|
40
|
+
"_id": "FrodoTestJourney2",
|
|
41
|
+
"_rev": "1682367743",
|
|
42
|
+
"identityResource": "managed/alpha_user",
|
|
43
|
+
"uiConfig": {
|
|
44
|
+
"categories": "[\"Frodo\",\"Prototype\"]"
|
|
45
|
+
},
|
|
46
|
+
"entryNodeId": "e3bc0d65-9f4d-4ca3-aa44-69fee11753a1",
|
|
47
|
+
"nodes": {
|
|
48
|
+
"e3bc0d65-9f4d-4ca3-aa44-69fee11753a1": {
|
|
49
|
+
"connections": {
|
|
50
|
+
"false": "e301438c-0bd0-429c-ab0c-66126501069a",
|
|
51
|
+
"true": "70e691a5-1e33-4ac3-a356-e7b6d60d92e0"
|
|
52
|
+
},
|
|
53
|
+
"displayName": "Login",
|
|
54
|
+
"nodeType": "InnerTreeEvaluatorNode",
|
|
55
|
+
"x": 210,
|
|
56
|
+
"y": 137.5
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"description": "Frodo test journey",
|
|
60
|
+
"staticNodes": {
|
|
61
|
+
"70e691a5-1e33-4ac3-a356-e7b6d60d92e0": {
|
|
62
|
+
"x": 440,
|
|
63
|
+
"y": 80
|
|
64
|
+
},
|
|
65
|
+
"e301438c-0bd0-429c-ab0c-66126501069a": {
|
|
66
|
+
"x": 440,
|
|
67
|
+
"y": 230
|
|
68
|
+
},
|
|
69
|
+
"startNode": {
|
|
70
|
+
"x": 70,
|
|
71
|
+
"y": 155
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"enabled": true
|
|
75
|
+
}
|
|
76
|
+
}
|