@rockcarver/frodo-lib 0.16.2-2 → 0.16.2-3
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/AgentApi.js +221 -0
- package/cjs/api/AgentApi.js.map +1 -0
- package/cjs/api/AgentApi.test.js.map +1 -0
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/BaseApi.js +15 -11
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/index.js +5 -1
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AgentOps.js +805 -0
- package/cjs/ops/AgentOps.js.map +1 -0
- package/cjs/ops/AgentOps.test.js.map +1 -0
- package/cjs/ops/AuthenticateOps.js +8 -8
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
- package/cjs/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
- package/cjs/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
- package/cjs/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
- package/cjs/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/cjs/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
- package/cjs/test/mocks/AgentApi/getAgents/agents.json +3862 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +147 -20
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/esm/api/AgentApi.mjs +164 -0
- package/esm/api/AgentApi.test.mjs +267 -0
- package/esm/api/BaseApi.mjs +16 -4
- package/esm/index.mjs +2 -0
- package/esm/ops/AgentOps.mjs +576 -0
- package/esm/ops/AgentOps.test.mjs +1212 -0
- package/esm/ops/AuthenticateOps.mjs +8 -8
- package/esm/ops/JourneyOps.test.mjs +4 -8
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/esm/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
- package/esm/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
- package/esm/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
- package/esm/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
- package/esm/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/esm/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
- package/esm/test/mocks/AgentApi/getAgents/agents.json +3862 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +136 -20
- package/package.json +2 -2
- package/types/api/AgentApi.d.ts +51 -0
- package/types/api/AgentApi.d.ts.map +1 -0
- package/types/api/ApiTypes.d.ts +3 -0
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +210 -0
- package/types/ops/AgentOps.d.ts.map +1 -0
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +5 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +35 -2
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentOps.js","names":["AGENT_TYPE_IG","AGENT_TYPE_JAVA","AGENT_TYPE_WEB","createAgentExportTemplate","meta","agents","getAgents","debugMessage","resolved","Promise","all","getAgentsByType","concat","result","error","printMessage","message","response","data","sort","a","b","_id","localeCompare","getAgent","agentId","findAgentById","length","_getAgentByTypeAndId","_type","Error","getAgentByTypeAndId","agentType","getIdentityGatewayAgents","getIdentityGatewayAgent","gatewayId","putIdentityGatewayAgent","gatewayData","putAgentByTypeAndId","getJavaAgents","getJavaAgent","putJavaAgent","agentData","getWebAgents","getWebAgent","putWebAgent","exportAgents","exportData","agent","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","agentObject","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","importData","validateImport","Object","keys","importIdentityGatewayAgents","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","deleteAgents","deleteAgentByTypeAndId","deleteAgent","deleteIdentityGatewayAgents","deleteIdentityGatewayAgent","findAgentByTypeAndId","deleteJavaAgents","deleteJavaAgent","deleteWebAgents","deleteWebAgent"],"sources":["ops/AgentOps.ts"],"sourcesContent":["import { debugMessage, printMessage } from './utils/Console';\nimport {\n getAgentsByType,\n getAgentByTypeAndId as _getAgentByTypeAndId,\n putAgentByTypeAndId,\n findAgentById,\n deleteAgentByTypeAndId,\n findAgentByTypeAndId,\n} from '../api/AgentApi';\nimport { AgentSkeleton } from '../api/ApiTypes';\nimport { AgentExportInterface } from './OpsTypes';\nimport { validateImport } from './utils/ExportImportUtils';\n\nexport const AGENT_TYPE_IG = 'IdentityGatewayAgent';\nexport const AGENT_TYPE_JAVA = 'J2EEAgent';\nexport const AGENT_TYPE_WEB = 'WebAgent';\n\n/**\n * Create an empty single tree export template\n * @returns {SingleTreeExportInterface} an empty single tree export template\n */\nexport function createAgentExportTemplate(): AgentExportInterface {\n return {\n meta: {},\n agents: {},\n } as AgentExportInterface;\n}\n\n/**\n * Get all agents. Results are sorted aphabetically.\n * @returns {Promise<TreeSkeleton[]>} a promise that resolves to an array of agent objects\n */\nexport async function getAgents(): Promise<AgentSkeleton[]> {\n debugMessage(`AgentOps.getAgents: start`);\n let agents = [];\n try {\n const resolved = await Promise.all([\n getAgentsByType('IdentityGatewayAgent'),\n getAgentsByType('J2EEAgent'),\n getAgentsByType('WebAgent'),\n ]);\n agents = agents.concat(resolved[0].result);\n agents = agents.concat(resolved[1].result);\n agents = agents.concat(resolved[2].result);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n agents.sort((a, b) => a._id.localeCompare(b._id));\n debugMessage(`AgentOps.getAgents: end`);\n return agents;\n}\n\n/**\n * Get agent\n * @param {string} agentId agent id/name\n * @returns {Promise} a promise that resolves to an agent object\n */\nexport async function getAgent(agentId) {\n debugMessage(`AgentOps.getAgent: start`);\n const agents = await findAgentById(agentId);\n if (agents.length === 1) {\n const result = await _getAgentByTypeAndId(agents[0]._type, agents[0]._id);\n debugMessage(`AgentOps.getAgent: end`);\n return result;\n } else if (agents.length === 0) {\n throw new Error(`Agent '${agentId}' not found`);\n } else {\n throw new Error(`${agents.length} agents '${agentId}' found`);\n }\n}\n\n/**\n * Get agent by type and id\n * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)\n * @param {string} agentId agent id/name\n * @returns {Promise} a promise that resolves to an agent object\n */\nexport async function getAgentByTypeAndId(agentType, agentId) {\n debugMessage(`AgentOps.getAgentByTypeAndId: start`);\n const result = await _getAgentByTypeAndId(agentType, agentId);\n debugMessage(`AgentOps.getAgentByTypeAndId: start`);\n return result;\n}\n\n/**\n * Get identity gateway agents\n * @returns {Promise} a promise that resolves to an array of IdentityGatewayAgent objects\n */\nexport async function getIdentityGatewayAgents() {\n debugMessage(`AgentOps.getIdentityGatewayAgents: start`);\n const { result } = await getAgentsByType(AGENT_TYPE_IG);\n debugMessage(`AgentOps.getIdentityGatewayAgents: end`);\n return result;\n}\n\n/**\n * Get identity gateway agent\n * @param {string} gatewayId gateway id\n * @returns {Promise} a promise that resolves to an object containing an IdentityGatewayAgent object\n */\nexport async function getIdentityGatewayAgent(gatewayId: string) {\n debugMessage(`AgentOps.getIdentityGatewayAgent: start`);\n const result = await getAgentByTypeAndId(AGENT_TYPE_IG, gatewayId);\n debugMessage(`AgentOps.getIdentityGatewayAgent: end`);\n return result;\n}\n\n/**\n * Put identity gateway agent\n * @param {string} gatewayId gateway id\n * @param {Object} gatewayData IdentityGatewayAgent object\n * @returns {Promise} a promise that resolves to an object containing an IdentityGatewayAgent object\n */\nexport async function putIdentityGatewayAgent(gatewayId: string, gatewayData) {\n debugMessage(`AgentOps.putIdentityGatewayAgent: start`);\n const result = await putAgentByTypeAndId(\n AGENT_TYPE_IG,\n gatewayId,\n gatewayData\n );\n debugMessage(`AgentOps.putIdentityGatewayAgent: end`);\n return result;\n}\n\n/**\n * Get java agents\n * @returns {Promise} a promise that resolves to an array of J2EEAgent objects\n */\nexport async function getJavaAgents() {\n debugMessage(`AgentOps.getJavaAgents: start`);\n const { result } = await getAgentsByType(AGENT_TYPE_JAVA);\n debugMessage(`AgentOps.getJavaAgents: end`);\n return result;\n}\n\n/**\n * Get java agent\n * @param {string} agentId java agent id\n * @returns {Promise} a promise that resolves to an object containing an J2EEAgent object\n */\nexport async function getJavaAgent(agentId: string) {\n debugMessage(`AgentOps.getJavaAgent: start`);\n const result = await getAgentByTypeAndId(AGENT_TYPE_JAVA, agentId);\n debugMessage(`AgentOps.getJavaAgent: end`);\n return result;\n}\n\n/**\n * Put java agent\n * @param {string} agentId java agent id\n * @param {Object} agentData java agent object\n * @returns {Promise} a promise that resolves to an object containing an java agent object\n */\nexport async function putJavaAgent(agentId: string, agentData) {\n debugMessage(`AgentOps.putJavaAgent: start`);\n const result = await putAgentByTypeAndId(AGENT_TYPE_JAVA, agentId, agentData);\n debugMessage(`AgentOps.putJavaAgent: end`);\n return result;\n}\n\n/**\n * Get web agents\n * @returns {Promise} a promise that resolves to an array of WebAgent objects\n */\nexport async function getWebAgents() {\n debugMessage(`AgentOps.getWebAgents: start`);\n const { result } = await getAgentsByType(AGENT_TYPE_WEB);\n debugMessage(`AgentOps.getWebAgents: end`);\n return result;\n}\n\n/**\n * Get web agent\n * @param {string} agentId web agent id\n * @returns {Promise} a promise that resolves to an object containing an WebAgent object\n */\nexport async function getWebAgent(agentId: string) {\n debugMessage(`AgentOps.getWebAgent: start`);\n const result = await getAgentByTypeAndId(AGENT_TYPE_WEB, agentId);\n debugMessage(`AgentOps.getWebAgent: end`);\n return result;\n}\n\n/**\n * Put web agent\n * @param {string} agentId web agent id\n * @param {Object} agentData WebAgent object\n * @returns {Promise} a promise that resolves to an object containing an WebAgent object\n */\nexport async function putWebAgent(agentId: string, agentData) {\n debugMessage(`AgentOps.putWebAgent: start`);\n const result = await putAgentByTypeAndId(AGENT_TYPE_WEB, agentId, agentData);\n debugMessage(`AgentOps.putWebAgent: end`);\n return result;\n}\n\n/**\n * Export all agents. The response can be saved to file as is.\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportAgents(): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportAgents: start`);\n const exportData = createAgentExportTemplate();\n const agents = await getAgents();\n for (const agent of agents) {\n exportData.agents[agent._id] = agent;\n }\n debugMessage(`AgentOps.exportAgents: end`);\n return exportData;\n}\n\n/**\n * Export all identity gateway agents. The response can be saved to file as is.\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportIdentityGatewayAgents(): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportIdentityGatewayAgents: start`);\n const exportData = createAgentExportTemplate();\n const agents = await getIdentityGatewayAgents();\n for (const agent of agents) {\n exportData.agents[agent._id] = agent;\n }\n debugMessage(`AgentOps.exportIdentityGatewayAgents: end`);\n return exportData;\n}\n\n/**\n * Export all java agents. The response can be saved to file as is.\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportJavaAgents(): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportJavaAgents: start`);\n const exportData = createAgentExportTemplate();\n const agents = await getJavaAgents();\n for (const agent of agents) {\n exportData.agents[agent._id] = agent;\n }\n debugMessage(`AgentOps.exportJavaAgents: end`);\n return exportData;\n}\n\n/**\n * Export all web agents. The response can be saved to file as is.\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportWebAgents(): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportWebAgents: start`);\n const exportData = createAgentExportTemplate();\n const agents = await getWebAgents();\n for (const agent of agents) {\n exportData.agents[agent._id] = agent;\n }\n debugMessage(`AgentOps.exportWebAgents: end`);\n return exportData;\n}\n\n/**\n * Export agent. The response can be saved to file as is.\n * @param agentId agent id/name\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportAgent(agentId): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportAgent: start`);\n const exportData = createAgentExportTemplate();\n const agentObject = await getAgent(agentId);\n exportData.agents[agentId] = agentObject;\n debugMessage(`AgentOps.exportAgent: end`);\n return exportData;\n}\n\n/**\n * Export identity gateway agent. The response can be saved to file as is.\n * @param agentId agent id/name\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportIdentityGatewayAgent(\n agentId\n): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportIdentityGatewayAgent: start`);\n const exportData = createAgentExportTemplate();\n const agentObject = await getIdentityGatewayAgent(agentId);\n exportData.agents[agentId] = agentObject;\n debugMessage(`AgentOps.exportIdentityGatewayAgent: end`);\n return exportData;\n}\n\n/**\n * Export java agent. The response can be saved to file as is.\n * @param agentId agent id/name\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportJavaAgent(agentId): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportJavaAgent: start`);\n const exportData = createAgentExportTemplate();\n const agentObject = await getJavaAgent(agentId);\n exportData.agents[agentId] = agentObject;\n debugMessage(`AgentOps.exportJavaAgent: end`);\n return exportData;\n}\n\n/**\n * Export web agent. The response can be saved to file as is.\n * @param agentId agent id/name\n * @returns {Promise<AgentExportInterface} Promise resolving to an AgentExportInterface object.\n */\nexport async function exportWebAgent(agentId): Promise<AgentExportInterface> {\n debugMessage(`AgentOps.exportWebAgent: start`);\n const exportData = createAgentExportTemplate();\n const agentObject = await getWebAgent(agentId);\n exportData.agents[agentId] = agentObject;\n debugMessage(`AgentOps.exportWebAgent: end`);\n return exportData;\n}\n\n/**\n * Import agents. The import data is usually read from an agent export file.\n * @param {AgentExportInterface} importData agent import data.\n */\nexport async function importAgents(\n importData: AgentExportInterface\n): Promise<void> {\n debugMessage(`AgentOps.importAgents: start`);\n if (validateImport(importData.meta)) {\n for (const agentId of Object.keys(importData.agents)) {\n const agentType = importData.agents[agentId]._type._id;\n debugMessage(`AgentOps.importAgents: ${agentId} [${agentType}]`);\n await putAgentByTypeAndId(agentType, agentId, importData.agents[agentId]);\n }\n } else {\n throw new Error('Invalid meta data.');\n }\n debugMessage(`AgentOps.importAgents: end`);\n}\n\n/**\n * Import identity gateway agents. The import data is usually read from an agent export file.\n * @param {AgentExportInterface} importData agent import data.\n */\nexport async function importIdentityGatewayAgents(\n importData: AgentExportInterface\n): Promise<void> {\n debugMessage(`AgentOps.importIdentityGatewayAgents: start`);\n if (validateImport(importData.meta)) {\n for (const agentId of Object.keys(importData.agents)) {\n const agentType = importData.agents[agentId]._type._id;\n if (agentType !== AGENT_TYPE_IG)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_IG}' but got '${agentType}'.`\n );\n await putAgentByTypeAndId(agentType, agentId, importData.agents[agentId]);\n }\n } else {\n throw new Error('Invalid meta data.');\n }\n debugMessage(`AgentOps.importIdentityGatewayAgents: end`);\n}\n\n/**\n * Import java agents. The import data is usually read from an agent export file.\n * @param {AgentExportInterface} importData agent import data.\n */\nexport async function importJavaAgents(\n importData: AgentExportInterface\n): Promise<void> {\n debugMessage(`AgentOps.importJavaAgents: start`);\n if (validateImport(importData.meta)) {\n for (const agentId of Object.keys(importData.agents)) {\n const agentType = importData.agents[agentId]._type._id;\n if (agentType !== AGENT_TYPE_JAVA)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_JAVA}' but got '${agentType}'.`\n );\n await putAgentByTypeAndId(agentType, agentId, importData.agents[agentId]);\n }\n } else {\n throw new Error('Invalid meta data.');\n }\n debugMessage(`AgentOps.importJavaAgents: end`);\n}\n\n/**\n * Import web agents. The import data is usually read from an agent export file.\n * @param {AgentExportInterface} importData agent import data.\n */\nexport async function importWebAgents(\n importData: AgentExportInterface\n): Promise<void> {\n debugMessage(`AgentOps.importWebAgents: start`);\n if (validateImport(importData.meta)) {\n for (const agentId of Object.keys(importData.agents)) {\n const agentType = importData.agents[agentId]._type._id;\n if (agentType !== AGENT_TYPE_WEB)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_WEB}' but got '${agentType}'.`\n );\n await putAgentByTypeAndId(agentType, agentId, importData.agents[agentId]);\n }\n } else {\n throw new Error('Invalid meta data.');\n }\n debugMessage(`AgentOps.importWebAgents: end`);\n}\n\n/**\n * Import agent. The import data is usually read from an agent export file.\n * @param {string} agentId agent id/name\n * @param {AgentExportInterface} importData agent import data.\n * @returns {Promise} Promise resolving to an agent object.\n */\nexport async function importAgent(agentId, importData: AgentExportInterface) {\n debugMessage(`AgentOps.importAgent: start`);\n if (validateImport(importData.meta)) {\n const agentType = importData.agents[agentId]?._type._id;\n const result = await putAgentByTypeAndId(\n agentType,\n agentId,\n importData.agents[agentId]\n );\n debugMessage(`AgentOps.importAgent: end`);\n return result;\n } else {\n throw new Error('Invalid meta data.');\n }\n}\n\n/**\n * Import identity gateway agent. The import data is usually read from an agent export file.\n * @param {string} agentId agent id/name\n * @param {AgentExportInterface} importData agent import data.\n * @returns {Promise} Promise resolving to an agent object.\n */\nexport async function importIdentityGatewayAgent(\n agentId,\n importData: AgentExportInterface\n) {\n debugMessage(`AgentOps.importIdentityGatewayAgent: start`);\n if (validateImport(importData.meta)) {\n const agentType = importData.agents[agentId]?._type._id;\n if (agentType !== AGENT_TYPE_IG)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_IG}' but got '${agentType}'.`\n );\n const result = await putAgentByTypeAndId(\n agentType,\n agentId,\n importData.agents[agentId]\n );\n debugMessage(`AgentOps.importIdentityGatewayAgent: end`);\n return result;\n } else {\n throw new Error('Invalid meta data.');\n }\n}\n\n/**\n * Import java agent. The import data is usually read from an agent export file.\n * @param {string} agentId agent id/name\n * @param {AgentExportInterface} importData agent import data.\n * @returns {Promise} Promise resolving to an agent object.\n */\nexport async function importJavaAgent(\n agentId,\n importData: AgentExportInterface\n) {\n debugMessage(`AgentOps.importJavaAgent: start`);\n if (validateImport(importData.meta)) {\n const agentType = importData.agents[agentId]?._type._id;\n if (agentType !== AGENT_TYPE_JAVA)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_JAVA}' but got '${agentType}'.`\n );\n const result = await putAgentByTypeAndId(\n agentType,\n agentId,\n importData.agents[agentId]\n );\n debugMessage(`AgentOps.importJavaAgent: end`);\n return result;\n } else {\n throw new Error('Invalid meta data.');\n }\n}\n\n/**\n * Import java agent. The import data is usually read from an agent export file.\n * @param {string} agentId agent id/name\n * @param {AgentExportInterface} importData agent import data.\n * @returns {Promise} Promise resolving to an agent object.\n */\nexport async function importWebAgent(\n agentId,\n importData: AgentExportInterface\n) {\n debugMessage(`AgentOps.importWebAgent: start`);\n if (validateImport(importData.meta)) {\n const agentType = importData.agents[agentId]?._type._id;\n if (agentType !== AGENT_TYPE_WEB)\n throw new Error(\n `Wrong agent type! Expected '${AGENT_TYPE_WEB}' but got '${agentType}'.`\n );\n const result = await putAgentByTypeAndId(\n agentType,\n agentId,\n importData.agents[agentId]\n );\n debugMessage(`AgentOps.importWebAgent: end`);\n return result;\n } else {\n throw new Error('Invalid meta data.');\n }\n}\n\n/**\n * Delete all agents\n */\nexport async function deleteAgents() {\n debugMessage(`AgentOps.deleteAgents: start`);\n const agents = await getAgents();\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n debugMessage(`AgentOps.deleteAgents: end`);\n}\n\n/**\n * Delete agent\n * @param agentId agent id/name\n */\nexport async function deleteAgent(agentId: string) {\n debugMessage(`AgentOps.deleteAgent: start`);\n const agents = await findAgentById(agentId);\n if (agents.length) {\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type'], agent['_id']);\n }\n } else {\n throw new Error(`Agent '${agentId}' not found!`);\n }\n debugMessage(`AgentOps.deleteAgent: end`);\n}\n\n/**\n * Delete all identity gateway agents\n */\nexport async function deleteIdentityGatewayAgents() {\n debugMessage(`AgentOps.deleteIdentityGatewayAgents: start`);\n const agents = await getIdentityGatewayAgents();\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteIdentityGatewayAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n debugMessage(`AgentOps.deleteIdentityGatewayAgents: end`);\n}\n\n/**\n * Delete identity gateway agent\n * @param agentId agent id/name\n */\nexport async function deleteIdentityGatewayAgent(agentId: string) {\n debugMessage(`AgentOps.deleteIdentityGatewayAgent: start`);\n const agents = await findAgentByTypeAndId(AGENT_TYPE_IG, agentId);\n if (agents.length) {\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteIdentityGatewayAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n } else {\n throw new Error(`Identity gateway agent '${agentId}' not found!`);\n }\n debugMessage(`AgentOps.deleteIdentityGatewayAgent: end`);\n}\n\n/**\n * Delete all java agents\n */\nexport async function deleteJavaAgents() {\n debugMessage(`AgentOps.deleteJavaAgents: start`);\n const agents = await getJavaAgents();\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteJavaAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n debugMessage(`AgentOps.deleteJavaAgents: end`);\n}\n\n/**\n * Delete java agent\n * @param agentId agent id/name\n */\nexport async function deleteJavaAgent(agentId: string) {\n debugMessage(`AgentOps.deleteJavaAgent: start`);\n const agents = await findAgentByTypeAndId(AGENT_TYPE_JAVA, agentId);\n if (agents.length) {\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteJavaAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n } else {\n throw new Error(`Java agent '${agentId}' not found!`);\n }\n debugMessage(`AgentOps.deleteJavaAgent: end`);\n}\n\n/**\n * Delete all web agents\n */\nexport async function deleteWebAgents() {\n debugMessage(`AgentOps.deleteWebAgents: start`);\n const agents = await getWebAgents();\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteWebAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n debugMessage(`AgentOps.deleteWebAgents: end`);\n}\n\n/**\n * Delete web agent\n * @param agentId agent id/name\n */\nexport async function deleteWebAgent(agentId: string) {\n debugMessage(`AgentOps.deleteWebAgent: start`);\n const agents = await findAgentByTypeAndId(AGENT_TYPE_WEB, agentId);\n if (agents.length) {\n for (const agent of agents) {\n debugMessage(`AgentOps.deleteWebAgent: '${agent['_id']}'`);\n await deleteAgentByTypeAndId(agent['_type']['_id'], agent['_id']);\n }\n } else {\n throw new Error(`Web agent '${agentId}' not found!`);\n }\n debugMessage(`AgentOps.deleteWebAgent: end`);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentOps.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Agent","createAgentExportTemplate","toBeDefined","template","meta","agents","exportTemplate","console","dir","toBeTruthy","toMatchObject","getAgents","agentTypes","agentIds","mockGetAgentsByType","assertions","length","toBe","agent","toContain","_type","_id","getAgent","agentType","agentId","mockFindAgentById","mockGetAgentByTypeAndId","getAgentByTypeAndId","getIdentityGatewayAgents","getIdentityGatewayAgent","putIdentityGatewayAgent","agentData","mockPutAgentByTypeAndId","mockAgentType","mockAgentId","mockAgentObj","isEqualJson","getJavaAgents","getJavaAgent","putJavaAgent","getWebAgents","getWebAgent","putWebAgent","exportAgents","exportData","Object","keys","values","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","ig_mytestrun_com","ig_chico","ajays_client","api_client","tomcatagent","javaAgent","apacheagent","webserver","importIdentityGatewayAgents","error","message","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","deleteAgents","mockDeleteAgentByTypeAndId","deleteAgent","deleteIdentityGatewayAgents","deleteIdentityGatewayAgent","mockFindAgentByTypeAndId","deleteJavaAgents","deleteJavaAgent","deleteWebAgents","deleteWebAgent"],"sources":["ops/AgentOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Agent, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { isEqualJson } from './utils/OpsUtils';\nimport {\n mockGetAgentsByType,\n mockGetAgentByTypeAndId,\n mockFindAgentById,\n mockPutAgentByTypeAndId,\n getAgent,\n mockDeleteAgentByTypeAndId,\n mockFindAgentByTypeAndId,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { AgentExportInterface } from './OpsTypes';\n\nconst mock = new MockAdapter(axios);\n\nstate.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');\nstate.default.session.setRealm('alpha');\nstate.default.session.setCookieName('cookieName');\nstate.default.session.setCookieValue('cookieValue');\nstate.default.session.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);\n\ndescribe('AgentOps - createAgentExportTemplate()', () => {\n test('createAgentExportTemplate() 0: Method is implemented', async () => {\n expect(Agent.createAgentExportTemplate).toBeDefined();\n });\n\n test('createAgentExportTemplate() 1: Get all agent types', async () => {\n const template: AgentExportInterface = { meta: {}, agents: {} };\n const exportTemplate = Agent.createAgentExportTemplate();\n console.dir(exportTemplate);\n expect(exportTemplate).toBeTruthy();\n expect(exportTemplate).toMatchObject<AgentExportInterface>(template);\n });\n});\n\ndescribe('AgentOps - getAgents()', () => {\n test('getAgents() 0: Method is implemented', async () => {\n expect(Agent.getAgents).toBeDefined();\n });\n\n test('getAgents() 1: Get all agents', async () => {\n const agentTypes = ['IdentityGatewayAgent', 'J2EEAgent', 'WebAgent'];\n const agentIds = [\n 'ig_mytestrun_com',\n 'ig_chico',\n 'ajays_client',\n 'api_client',\n 'tomcatagent',\n 'javaAgent',\n 'apacheagent',\n 'webserver',\n ];\n mockGetAgentsByType(mock);\n expect.assertions(21);\n const agents = await Agent.getAgents();\n expect(agents).toBeTruthy();\n expect(agents.length).toBe(8);\n for (const agent of agents) {\n expect(agentTypes).toContain(agent._type._id);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - getAgent()', () => {\n test('getAgent() 0: Method is implemented', async () => {\n expect(Agent.getAgent).toBeDefined();\n });\n\n test('getAgent() 1: Get agent \"ig_mytestrun_com\" (gateway)', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(5);\n const agent = await Agent.getAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getAgent() 2: Get agent \"tomcatagent\" (java)', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(5);\n const agent = await Agent.getAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getAgent() 3: Get agent \"apacheagent\" (web)', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(5);\n const agent = await Agent.getAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - getAgentByTypeAndId()', () => {\n test('getAgentByTypeAndId() 0: Method is implemented', async () => {\n expect(Agent.getAgentByTypeAndId).toBeDefined();\n });\n\n test('getAgentByTypeAndId() 1: Get gateway agent \"ig_mytestrun_com\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getAgentByTypeAndId(agentType, agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getAgentByTypeAndId() 2: Get java agent \"tomcatagent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getAgentByTypeAndId(agentType, agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getAgentByTypeAndId() 3: Get web agent \"apacheagent\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getAgentByTypeAndId(agentType, agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - getIdentityGatewayAgents()', () => {\n test('getIdentityGatewayAgents() 0: Method is implemented', async () => {\n expect(Agent.getIdentityGatewayAgents).toBeDefined();\n });\n\n test('getIdentityGatewayAgents() 1: Get gateway agents', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentIds = [\n 'ig_mytestrun_com',\n 'ig_chico',\n 'ajays_client',\n 'api_client',\n ];\n mockGetAgentsByType(mock);\n expect.assertions(10);\n const agents = await Agent.getIdentityGatewayAgents();\n expect(agents).toBeTruthy();\n for (const agent of agents) {\n expect(agent._type._id).toBe(agentType);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - getIdentityGatewayAgent()', () => {\n test('getIdentityGatewayAgent() 0: Method is implemented', async () => {\n expect(Agent.getIdentityGatewayAgent).toBeDefined();\n });\n\n test('getIdentityGatewayAgent() 1: Get gateway agent \"ig_mytestrun_com\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getIdentityGatewayAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getIdentityGatewayAgent() 2: Get gateway agent \"ig_chico\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_chico';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getIdentityGatewayAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getIdentityGatewayAgent() 3: Get gateway agent \"ajays_client\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ajays_client';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getIdentityGatewayAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getIdentityGatewayAgent() 4: Get gateway agent \"api_client\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'api_client';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getIdentityGatewayAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - putIdentityGatewayAgent()', () => {\n test('putIdentityGatewayAgent() 0: Method is implemented', async () => {\n expect(Agent.putIdentityGatewayAgent).toBeDefined();\n });\n\n test('putIdentityGatewayAgent() 1: Put gateway agent \"ig_mytestrun_com\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putIdentityGatewayAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n\n test('putIdentityGatewayAgent() 2: Put gateway agent \"ig_chico\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_chico';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putIdentityGatewayAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n\n test('putIdentityGatewayAgent() 3: Put gateway agent \"ajays_client\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ajays_client';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putIdentityGatewayAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n\n test('putIdentityGatewayAgent() 4: Put gateway agent \"api_client\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'api_client';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putIdentityGatewayAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - getJavaAgents()', () => {\n test('getJavaAgents() 0: Method is implemented', async () => {\n expect(Agent.getJavaAgents).toBeDefined();\n });\n\n test('getJavaAgents() 1: Get java agents', async () => {\n const agentType = 'J2EEAgent';\n const agentIds = ['tomcatagent', 'javaAgent'];\n mockGetAgentsByType(mock);\n expect.assertions(6);\n const agents = await Agent.getJavaAgents();\n expect(agents).toBeTruthy();\n for (const agent of agents) {\n expect(agent._type._id).toBe(agentType);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - getJavaAgent()', () => {\n test('getJavaAgent() 0: Method is implemented', async () => {\n expect(Agent.getJavaAgent).toBeDefined();\n });\n\n test('getJavaAgent() 1: Get java agent \"tomcatagent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getJavaAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getJavaAgent() 2: Get java agent \"javaAgent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'javaAgent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getJavaAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - putJavaAgent()', () => {\n test('putJavaAgent() 0: Method is implemented', async () => {\n expect(Agent.putJavaAgent).toBeDefined();\n });\n\n test('putJavaAgent() 1: Put java agent \"tomcatagent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putJavaAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n\n test('putJavaAgent() 2: Put java agent \"javaAgent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'javaAgent';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putJavaAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - getWebAgents()', () => {\n test('getWebAgents() 0: Method is implemented', async () => {\n expect(Agent.getWebAgents).toBeDefined();\n });\n\n test('getWebAgents() 1: Get web agents', async () => {\n const agentType = 'WebAgent';\n const agentIds = ['apacheagent', 'webserver'];\n mockGetAgentsByType(mock);\n expect.assertions(6);\n const agents = await Agent.getWebAgents();\n expect(agents).toBeTruthy();\n for (const agent of agents) {\n expect(agent._type._id).toBe(agentType);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - getWebAgent()', () => {\n test('getWebAgent() 0: Method is implemented', async () => {\n expect(Agent.getWebAgent).toBeDefined();\n });\n\n test('getWebAgent() 1: Get web agent \"apacheagent\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getWebAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n\n test('getWebAgent() 2: Get web agent \"webserver\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'webserver';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(4);\n const agent = await Agent.getWebAgent(agentId);\n expect(agent).toBeTruthy();\n expect(agent._type._id).toBe(agentType);\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - putWebAgent()', () => {\n test('putWebAgent() 0: Method is implemented', async () => {\n expect(Agent.putWebAgent).toBeDefined();\n });\n\n test('putWebAgent() 1: Put java agent \"apacheagent\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putWebAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n\n test('putWebAgent() 2: Put web agent \"webserver\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'webserver';\n const agentData = getAgent(agentType, agentId);\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(5);\n const agent = await Agent.putWebAgent(agentId, agentData);\n expect(agent).toBeTruthy();\n expect(agent._id).toBe(agentId);\n });\n});\n\ndescribe('AgentOps - exportAgents()', () => {\n test('exportAgents() 0: Method is implemented', async () => {\n expect(Agent.exportAgents).toBeDefined();\n });\n\n test('exportAgents() 1: Export all agents', async () => {\n const agentTypes = ['IdentityGatewayAgent', 'J2EEAgent', 'WebAgent'];\n const agentIds = [\n 'ig_mytestrun_com',\n 'ig_chico',\n 'ajays_client',\n 'api_client',\n 'tomcatagent',\n 'javaAgent',\n 'apacheagent',\n 'webserver',\n ];\n mockGetAgentsByType(mock);\n expect.assertions(22);\n const exportData = await Agent.exportAgents();\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(8);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentTypes).toContain(agent._type._id);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportIdentityGatewayAgents()', () => {\n test('exportIdentityGatewayAgents() 0: Method is implemented', async () => {\n expect(Agent.exportIdentityGatewayAgents).toBeDefined();\n });\n\n test('exportIdentityGatewayAgents() 1: Export gateway agents', async () => {\n const agentTypes = ['IdentityGatewayAgent'];\n const agentIds = [\n 'ig_mytestrun_com',\n 'ig_chico',\n 'ajays_client',\n 'api_client',\n ];\n mockGetAgentsByType(mock);\n expect.assertions(12);\n const exportData = await Agent.exportIdentityGatewayAgents();\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(4);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentTypes).toContain(agent._type._id);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportJavaAgents()', () => {\n test('exportJavaAgents() 0: Method is implemented', async () => {\n expect(Agent.exportJavaAgents).toBeDefined();\n });\n\n test('exportJavaAgents() 1: Export java agents', async () => {\n const agentTypes = ['J2EEAgent'];\n const agentIds = ['tomcatagent', 'javaAgent'];\n mockGetAgentsByType(mock);\n expect.assertions(8);\n const exportData = await Agent.exportJavaAgents();\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(2);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentTypes).toContain(agent._type._id);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportWebAgents()', () => {\n test('exportWebAgents() 0: Method is implemented', async () => {\n expect(Agent.exportJavaAgents).toBeDefined();\n });\n\n test('exportWebAgents() 1: Export web agents', async () => {\n const agentTypes = ['WebAgent'];\n const agentIds = ['apacheagent', 'webserver'];\n mockGetAgentsByType(mock);\n expect.assertions(8);\n const exportData = await Agent.exportWebAgents();\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(2);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentTypes).toContain(agent._type._id);\n expect(agentIds).toContain(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportAgent()', () => {\n test('exportAgent() 0: Method is implemented', async () => {\n expect(Agent.exportAgent).toBeDefined();\n });\n\n test('exportAgent() 1: Export agent \"ig_mytestrun_com\" (gateway)', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(7);\n const exportData = await Agent.exportAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n\n test('exportAgent() 2: Export agent \"tomcatagent\" (java)', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(7);\n const exportData = await Agent.exportAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n\n test('exportAgent() 3: Export agent \"apacheagent\" (web)', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentById(mock);\n mockGetAgentByTypeAndId(mock);\n expect.assertions(7);\n const exportData = await Agent.exportAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportIdentityGatewayAgent()', () => {\n test('exportIdentityGatewayAgent() 0: Method is implemented', async () => {\n expect(Agent.exportIdentityGatewayAgent).toBeDefined();\n });\n\n test('exportIdentityGatewayAgent() 1: Export gateway agent \"ig_mytestrun_com\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(6);\n const exportData = await Agent.exportIdentityGatewayAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportJavaAgent()', () => {\n test('exportJavaAgent() 0: Method is implemented', async () => {\n expect(Agent.exportJavaAgent).toBeDefined();\n });\n\n test('exportJavaAgent() 2: Export java agent \"tomcatagent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(6);\n const exportData = await Agent.exportJavaAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - exportWebAgent()', () => {\n test('exportWebAgent() 0: Method is implemented', async () => {\n expect(Agent.exportWebAgent).toBeDefined();\n });\n\n test('exportWebAgent() 3: Export web agent \"apacheagent\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockGetAgentByTypeAndId(mock);\n expect.assertions(6);\n const exportData = await Agent.exportWebAgent(agentId);\n expect(exportData).toBeTruthy();\n expect(exportData.agents).toBeTruthy();\n expect(Object.keys(exportData.agents).length).toBe(1);\n for (const agent of Object.values(exportData.agents)) {\n expect(agentType).toBe(agent._type._id);\n expect(agentId).toBe(agent._id);\n }\n });\n});\n\ndescribe('AgentOps - importAgents()', () => {\n test('importAgents() 0: Method is implemented', async () => {\n expect(Agent.importAgents).toBeDefined();\n });\n\n test('importAgents() 1: Import all agents', async () => {\n const agents = {\n ig_mytestrun_com: 'IdentityGatewayAgent',\n ig_chico: 'IdentityGatewayAgent',\n ajays_client: 'IdentityGatewayAgent',\n api_client: 'IdentityGatewayAgent',\n tomcatagent: 'J2EEAgent',\n javaAgent: 'J2EEAgent',\n apacheagent: 'WebAgent',\n webserver: 'WebAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(25);\n await Agent.importAgents(exportData);\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - importIdentityGatewayAgents()', () => {\n test('importIdentityGatewayAgents() 0: Method is implemented', async () => {\n expect(Agent.importIdentityGatewayAgents).toBeDefined();\n });\n\n test('importIdentityGatewayAgents() 1: Import all gateway agents', async () => {\n const agents = {\n ig_mytestrun_com: 'IdentityGatewayAgent',\n ig_chico: 'IdentityGatewayAgent',\n ajays_client: 'IdentityGatewayAgent',\n api_client: 'IdentityGatewayAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(13);\n await Agent.importIdentityGatewayAgents(exportData);\n expect(true).toBeTruthy();\n });\n\n test('importIdentityGatewayAgents() 2: Import agents with wrong type', async () => {\n const agents = {\n tomcatagent: 'J2EEAgent',\n javaAgent: 'J2EEAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.importIdentityGatewayAgents(exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'IdentityGatewayAgent' but got 'J2EEAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - importJavaAgents()', () => {\n test('importJavaAgents() 0: Method is implemented', async () => {\n expect(Agent.importJavaAgents).toBeDefined();\n });\n\n test('importJavaAgents() 1: Import all java agents', async () => {\n const agents = {\n tomcatagent: 'J2EEAgent',\n javaAgent: 'J2EEAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(7);\n await Agent.importJavaAgents(exportData);\n expect(true).toBeTruthy();\n });\n\n test('importJavaAgents() 2: Import agents with wrong type', async () => {\n const agents = {\n apacheagent: 'WebAgent',\n webserver: 'WebAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.importJavaAgents(exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'J2EEAgent' but got 'WebAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - importWebAgents()', () => {\n test('importWebAgents() 0: Method is implemented', async () => {\n expect(Agent.importWebAgents).toBeDefined();\n });\n\n test('importWebAgents() 1: Import all web agents', async () => {\n const agents = {\n apacheagent: 'WebAgent',\n webserver: 'WebAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(7);\n await Agent.importWebAgents(exportData);\n expect(true).toBeTruthy();\n });\n\n test('importWebAgents() 2: Import agents with wrong type', async () => {\n const agents = {\n ig_mytestrun_com: 'IdentityGatewayAgent',\n ig_chico: 'IdentityGatewayAgent',\n ajays_client: 'IdentityGatewayAgent',\n api_client: 'IdentityGatewayAgent',\n };\n const exportData = Agent.createAgentExportTemplate();\n for (const agentId of Object.keys(agents)) {\n const agentType = agents[agentId];\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n }\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.importWebAgents(exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'WebAgent' but got 'IdentityGatewayAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - importAgent()', () => {\n test('importAgent() 0: Method is implemented', async () => {\n expect(Agent.importAgent).toBeDefined();\n });\n\n test('importAgent() 1: Import gateway agent', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n\n test('importAgent() 2: Import java agent', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n\n test('importAgent() 3: Import web agent', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - importIdentityGatewayAgent()', () => {\n test('importIdentityGatewayAgent() 0: Method is implemented', async () => {\n expect(Agent.importIdentityGatewayAgent).toBeDefined();\n });\n\n test('importIdentityGatewayAgent() 1: Import gateway agent \"ig_mytestrun_com\"', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importIdentityGatewayAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n\n test('importIdentityGatewayAgent() 2: Import agent with wrong type', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(2);\n try {\n await Agent.importIdentityGatewayAgent(agentId, exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'IdentityGatewayAgent' but got 'J2EEAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - importJavaAgent()', () => {\n test('importJavaAgent() 0: Method is implemented', async () => {\n expect(Agent.importJavaAgents).toBeDefined();\n });\n\n test('importJavaAgent() 1: Import java agent \"tomcatagent\"', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importJavaAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n\n test('importJavaAgent() 2: Import agent with wrong type', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(2);\n try {\n await Agent.importJavaAgent(agentId, exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'J2EEAgent' but got 'WebAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - importWebAgent()', () => {\n test('importWebAgent() 0: Method is implemented', async () => {\n expect(Agent.importWebAgent).toBeDefined();\n });\n\n test('importWebAgent() 1: Import web agent \"apacheagent\"', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(4);\n await Agent.importWebAgent(agentId, exportData);\n expect(true).toBeTruthy();\n });\n\n test('importWebAgent() 2: Import agent with wrong type', async () => {\n const exportData = Agent.createAgentExportTemplate();\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n const agentData = getAgent(agentType, agentId);\n exportData.agents[agentId] = agentData;\n mockPutAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();\n }\n );\n expect.assertions(2);\n try {\n await Agent.importWebAgent(agentId, exportData);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n \"Wrong agent type! Expected 'WebAgent' but got 'IdentityGatewayAgent'.\"\n );\n }\n });\n});\n\ndescribe('AgentOps - deleteAgents()', () => {\n test('deleteAgents() 0: Method is implemented', async () => {\n expect(Agent.deleteAgents).toBeDefined();\n });\n\n test('deleteAgents() 1: Delete all agents', async () => {\n const agents = {\n ig_mytestrun_com: 'IdentityGatewayAgent',\n ig_chico: 'IdentityGatewayAgent',\n ajays_client: 'IdentityGatewayAgent',\n api_client: 'IdentityGatewayAgent',\n tomcatagent: 'J2EEAgent',\n javaAgent: 'J2EEAgent',\n apacheagent: 'WebAgent',\n webserver: 'WebAgent',\n };\n mockGetAgentsByType(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(28);\n await Agent.deleteAgents();\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - deleteAgent()', () => {\n test('deleteAgent() 0: Method is implemented', async () => {\n expect(Agent.deleteAgent).toBeDefined();\n });\n\n test('deleteAgent() 1: Delete agent \"ig_mytestrun_com\" (gateway)', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentById(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteAgent(agentId);\n expect(true).toBeTruthy();\n });\n\n test('deleteAgent() 2: Delete agent \"tomcatagent\" (java)', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentById(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteAgent(agentId);\n expect(true).toBeTruthy();\n });\n\n test('deleteAgent() 3: Delete agent \"apacheagent\" (web)', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentById(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteAgent(agentId);\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - deleteIdentityGatewayAgents()', () => {\n test('deleteIdentityGatewayAgents() 0: Method is implemented', async () => {\n expect(Agent.deleteIdentityGatewayAgents).toBeDefined();\n });\n\n test('deleteIdentityGatewayAgents() 1: Delete all gateway agents', async () => {\n const agents = {\n ig_mytestrun_com: 'IdentityGatewayAgent',\n ig_chico: 'IdentityGatewayAgent',\n ajays_client: 'IdentityGatewayAgent',\n api_client: 'IdentityGatewayAgent',\n };\n mockGetAgentsByType(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(14);\n await Agent.deleteIdentityGatewayAgents();\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - deleteIdentityGatewayAgent()', () => {\n test('deleteIdentityGatewayAgent() 0: Method is implemented', async () => {\n expect(Agent.deleteIdentityGatewayAgent).toBeDefined();\n });\n\n test('deleteIdentityGatewayAgent() 1: Delete gateway agent \"ig_mytestrun_com\"', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteIdentityGatewayAgent(agentId);\n expect(true).toBeTruthy();\n });\n\n test('deleteIdentityGatewayAgent() 2: Delete agent of wrong type \"tomcatagent\" (java)', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteIdentityGatewayAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n `Identity gateway agent '${agentId}' not found!`\n );\n }\n });\n\n test('deleteIdentityGatewayAgent() 3: Delete agent of wrong type \"apacheagent\" (web)', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteIdentityGatewayAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(\n `Identity gateway agent '${agentId}' not found!`\n );\n }\n });\n});\n\ndescribe('AgentOps - deleteJavaAgents()', () => {\n test('deleteJavaAgents() 0: Method is implemented', async () => {\n expect(Agent.deleteJavaAgents).toBeDefined();\n });\n\n test('deleteJavaAgents() 1: Delete all java agents', async () => {\n const agents = {\n tomcatagent: 'J2EEAgent',\n javaAgent: 'J2EEAgent',\n };\n mockGetAgentsByType(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(8);\n await Agent.deleteJavaAgents();\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - deleteJavaAgent()', () => {\n test('deleteJavaAgent() 0: Method is implemented', async () => {\n expect(Agent.deleteJavaAgent).toBeDefined();\n });\n\n test('deleteJavaAgent() 1: Delete java agent \"tomcatagent\"', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteJavaAgent(agentId);\n expect(true).toBeTruthy();\n });\n\n test('deleteJavaAgent() 2: Delete agent of wrong type \"ig_mytestrun_com\" (gateway)', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteJavaAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(`Java agent '${agentId}' not found!`);\n }\n });\n\n test('deleteJavaAgent() 3: Delete agent of wrong type \"apacheagent\" (web)', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteJavaAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(`Java agent '${agentId}' not found!`);\n }\n });\n});\n\ndescribe('AgentOps - deleteWebAgents()', () => {\n test('deleteWebAgents() 0: Method is implemented', async () => {\n expect(Agent.deleteWebAgents).toBeDefined();\n });\n\n test('deleteWebAgents() 1: Delete all web agents', async () => {\n const agents = {\n apacheagent: 'WebAgent',\n webserver: 'WebAgent',\n };\n mockGetAgentsByType(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(Object.values(agents)).toContain(mockAgentType);\n expect(Object.keys(agents)).toContain(mockAgentId);\n }\n );\n expect.assertions(8);\n await Agent.deleteWebAgents();\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('AgentOps - deleteWebAgent()', () => {\n test('deleteWebAgent() 0: Method is implemented', async () => {\n expect(Agent.deleteWebAgent).toBeDefined();\n });\n\n test('deleteWebAgent() 1: Delete web agent \"apacheagent\"', async () => {\n const agentType = 'WebAgent';\n const agentId = 'apacheagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(5);\n await Agent.deleteWebAgent(agentId);\n expect(true).toBeTruthy();\n });\n\n test('deleteWebAgent() 2: Delete agent of wrong type \"ig_mytestrun_com\" (gateway)', async () => {\n const agentType = 'IdentityGatewayAgent';\n const agentId = 'ig_mytestrun_com';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteWebAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(`Web agent '${agentId}' not found!`);\n }\n });\n\n test('deleteWebAgent() 3: Delete agent of wrong type \"tomcatagent\" (java)', async () => {\n const agentType = 'J2EEAgent';\n const agentId = 'tomcatagent';\n mockFindAgentByTypeAndId(mock);\n mockDeleteAgentByTypeAndId(\n mock,\n (mockAgentType, mockAgentId, mockAgentObj) => {\n expect(mockAgentObj).toBeTruthy();\n expect(agentType).toBe(mockAgentType);\n expect(agentId).toBe(mockAgentId);\n }\n );\n expect.assertions(2);\n try {\n await Agent.deleteWebAgent(agentId);\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe(`Web agent '${agentId}' not found!`);\n }\n });\n});\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var _crypto = require("crypto");
|
|
|
9
9
|
var _readlineSync = _interopRequireDefault(require("readline-sync"));
|
|
10
10
|
var _Base = require("../api/utils/Base64");
|
|
11
11
|
var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
|
|
12
|
-
var
|
|
12
|
+
var globalConfig = _interopRequireWildcard(require("../storage/StaticStorage"));
|
|
13
13
|
var _Console = require("./utils/Console");
|
|
14
14
|
var _ServerInfoApi = require("../api/ServerInfoApi");
|
|
15
15
|
var _AuthenticateApi = require("../api/AuthenticateApi");
|
|
@@ -93,8 +93,8 @@ function checkAndHandle2FA(payload) {
|
|
|
93
93
|
* @param {String} deploymentType deployment type
|
|
94
94
|
*/
|
|
95
95
|
function determineDefaultRealm(deploymentType) {
|
|
96
|
-
if (_SessionStorage.default.session.getRealm() ===
|
|
97
|
-
_SessionStorage.default.session.setRealm(
|
|
96
|
+
if (_SessionStorage.default.session.getRealm() === globalConfig.DEFAULT_REALM_KEY) {
|
|
97
|
+
_SessionStorage.default.session.setRealm(globalConfig.DEPLOYMENT_TYPE_REALM_MAP[deploymentType]);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -122,14 +122,14 @@ function _determineDeploymentType() {
|
|
|
122
122
|
maxRedirects: 0
|
|
123
123
|
};
|
|
124
124
|
var bodyFormData = "redirect_uri=".concat(redirectURL, "&scope=").concat(idmAdminScope, "&response_type=code&client_id=").concat(fidcClientId, "&csrf=").concat(_SessionStorage.default.session.getCookieValue(), "&decision=allow&code_challenge=").concat(challenge, "&code_challenge_method=").concat(challengeMethod);
|
|
125
|
-
var deploymentType =
|
|
125
|
+
var deploymentType = globalConfig.CLASSIC_DEPLOYMENT_TYPE_KEY;
|
|
126
126
|
try {
|
|
127
127
|
yield (0, _OAuth2OIDCApi.authorize)(bodyFormData, config);
|
|
128
128
|
} catch (e) {
|
|
129
129
|
var _e$response, _e$response$headers, _e$response$headers$l;
|
|
130
130
|
if (((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 302 && ((_e$response$headers = e.response.headers) === null || _e$response$headers === void 0 ? void 0 : (_e$response$headers$l = _e$response$headers.location) === null || _e$response$headers$l === void 0 ? void 0 : _e$response$headers$l.indexOf('code=')) > -1) {
|
|
131
131
|
(0, _Console.printMessage)('ForgeRock Identity Cloud ', 'info', false);
|
|
132
|
-
deploymentType =
|
|
132
|
+
deploymentType = globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY;
|
|
133
133
|
} else {
|
|
134
134
|
try {
|
|
135
135
|
bodyFormData = "redirect_uri=".concat(redirectURL, "&scope=").concat(idmAdminScope, "&response_type=code&client_id=").concat(forgeopsClientId, "&csrf=").concat(_SessionStorage.default.session.getCookieValue(), "&decision=allow&code_challenge=").concat(challenge, "&code_challenge_method=").concat(challengeMethod);
|
|
@@ -139,7 +139,7 @@ function _determineDeploymentType() {
|
|
|
139
139
|
if (((_ex$response = ex.response) === null || _ex$response === void 0 ? void 0 : _ex$response.status) === 302 && ((_ex$response$headers = ex.response.headers) === null || _ex$response$headers === void 0 ? void 0 : (_ex$response$headers$ = _ex$response$headers.location) === null || _ex$response$headers$ === void 0 ? void 0 : _ex$response$headers$.indexOf('code=')) > -1) {
|
|
140
140
|
adminClientId = forgeopsClientId;
|
|
141
141
|
(0, _Console.printMessage)('ForgeOps deployment ', 'info', false);
|
|
142
|
-
deploymentType =
|
|
142
|
+
deploymentType = globalConfig.FORGEOPS_DEPLOYMENT_TYPE_KEY;
|
|
143
143
|
} else {
|
|
144
144
|
(0, _Console.printMessage)('Classic deployment ', 'info', false);
|
|
145
145
|
}
|
|
@@ -297,7 +297,7 @@ function _getAccessToken() {
|
|
|
297
297
|
return null;
|
|
298
298
|
}
|
|
299
299
|
var response = null;
|
|
300
|
-
if (_SessionStorage.default.session.getDeploymentType() ===
|
|
300
|
+
if (_SessionStorage.default.session.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY) {
|
|
301
301
|
var config = {
|
|
302
302
|
auth: {
|
|
303
303
|
username: adminClientId,
|
|
@@ -349,7 +349,7 @@ function _getTokens() {
|
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
yield authenticate();
|
|
352
|
-
if (_SessionStorage.default.session.getCookieValue() && !_SessionStorage.default.session.getBearerToken() && (_SessionStorage.default.session.getDeploymentType() ===
|
|
352
|
+
if (_SessionStorage.default.session.getCookieValue() && !_SessionStorage.default.session.getBearerToken() && (_SessionStorage.default.session.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY || _SessionStorage.default.session.getDeploymentType() === globalConfig.FORGEOPS_DEPLOYMENT_TYPE_KEY)) {
|
|
353
353
|
yield getAccessToken();
|
|
354
354
|
}
|
|
355
355
|
if (save && _SessionStorage.default.session.getCookieValue() && credsFromParameters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticateOps.js","names":["adminClientPassword","redirectUrlTemplate","idmAdminScope","adminClientId","getCookieName","getServerInfo","data","cookieName","error","printMessage","checkAndHandle2FA","payload","element","callbacks","type","input","value","includes","need2fa","output","code","readlineSync","question","determineDefaultRealm","deploymentType","storage","session","getRealm","global","DEFAULT_REALM_KEY","setRealm","DEPLOYMENT_TYPE_REALM_MAP","determineDeploymentType","fidcClientId","forgeopsClientId","verifier","encodeBase64Url","randomBytes","challenge","createHash","update","digest","challengeMethod","redirectURL","url","resolve","getTenant","config","maxRedirects","bodyFormData","getCookieValue","CLASSIC_DEPLOYMENT_TYPE_KEY","authorize","e","response","status","headers","location","indexOf","CLOUD_DEPLOYMENT_TYPE_KEY","ex","FORGEOPS_DEPLOYMENT_TYPE_KEY","getSemanticVersion","versionInfo","versionString","version","rx","match","Error","authenticate","setCookieName","getUsername","getPassword","response1","step","skip2FA","response2","setCookieValue","getDeploymentType","setDeploymentType","getServerVersionInfo","setAmVersion","message","getAuthCode","codeChallenge","codeChallengeMethod","redirectLocationURL","request","res","responseUrl","queryObject","parse","query","getAccessToken","authCode","auth","username","password","accessToken","setBearerToken","access_token","getTokens","save","credsFromParameters","conn","getConnectionProfile","setTenant","tenant","setUsername","setPassword","setAuthenticationService","authenticationService","setAuthenticationHeaderOverrides","authenticationHeaderOverrides","getBearerToken","saveConnectionProfile"],"sources":["ops/AuthenticateOps.ts"],"sourcesContent":["import url from 'url';\nimport { createHash, randomBytes } from 'crypto';\nimport readlineSync from 'readline-sync';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport storage from '../storage/SessionStorage';\nimport * as global from '../storage/StaticStorage';\nimport { printMessage } from './utils/Console';\nimport { getServerInfo, getServerVersionInfo } from '../api/ServerInfoApi';\nimport { step } from '../api/AuthenticateApi';\nimport { accessToken, authorize } from '../api/OAuth2OIDCApi';\nimport {\n getConnectionProfile,\n saveConnectionProfile,\n} from './ConnectionProfileOps';\n\nconst adminClientPassword = 'doesnotmatter';\nconst redirectUrlTemplate = '/platform/appAuthHelperRedirect.html';\n\nconst idmAdminScope = 'fr:idm:* openid';\n\nlet adminClientId = 'idmAdminClient';\n\n/**\n * Helper function to get cookie name\n * @returns {String} cookie name\n */\nasync function getCookieName() {\n try {\n return (await getServerInfo()).data.cookieName;\n } catch (error) {\n printMessage(`Error getting cookie name: ${error}`, 'error');\n return null;\n }\n}\n\n/**\n * Helper function to determine if this is a setup mfa prompt in the ID Cloud tenant admin login journey\n * @param {Object} payload response from the previous authentication journey step\n * @returns {Object} an object indicating if 2fa is required and the original payload\n */\nfunction checkAndHandle2FA(payload) {\n // let skippable = false;\n if ('callbacks' in payload) {\n for (const element of payload.callbacks) {\n if (element.type === 'HiddenValueCallback') {\n if (element.input[0].value.includes('skip')) {\n // skippable = true;\n element.input[0].value = 'Skip';\n return {\n need2fa: true,\n payload,\n };\n }\n }\n if (element.type === 'NameCallback') {\n if (element.output[0].value.includes('code')) {\n // skippable = false;\n printMessage('2FA is enabled and required for this user...');\n const code = readlineSync.question(`${element.output[0].value}: `);\n element.input[0].value = code;\n return {\n need2fa: true,\n payload,\n };\n }\n }\n }\n // console.info(\"NO2FA\");\n return {\n need2fa: false,\n payload,\n };\n }\n // console.info(\"NO2FA\");\n return {\n need2fa: false,\n payload,\n };\n}\n\n/**\n * Helper function to set the default realm by deployment type\n * @param {String} deploymentType deployment type\n */\nfunction determineDefaultRealm(deploymentType) {\n if (storage.session.getRealm() === global.DEFAULT_REALM_KEY) {\n storage.session.setRealm(global.DEPLOYMENT_TYPE_REALM_MAP[deploymentType]);\n }\n}\n\n/**\n * Helper function to determine the deployment type\n * @returns {String} deployment type\n */\nasync function determineDeploymentType() {\n const fidcClientId = 'idmAdminClient';\n const forgeopsClientId = 'idm-admin-ui';\n\n const verifier = encodeBase64Url(randomBytes(32));\n const challenge = encodeBase64Url(\n createHash('sha256').update(verifier).digest()\n );\n const challengeMethod = 'S256';\n const redirectURL = url.resolve(\n storage.session.getTenant(),\n redirectUrlTemplate\n );\n\n const config = {\n maxRedirects: 0,\n };\n let bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${fidcClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${challenge}&code_challenge_method=${challengeMethod}`;\n\n let deploymentType = global.CLASSIC_DEPLOYMENT_TYPE_KEY;\n try {\n await authorize(bodyFormData, config);\n } catch (e) {\n if (\n e.response?.status === 302 &&\n e.response.headers?.location?.indexOf('code=') > -1\n ) {\n printMessage('ForgeRock Identity Cloud ', 'info', false);\n deploymentType = global.CLOUD_DEPLOYMENT_TYPE_KEY;\n } else {\n try {\n bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${forgeopsClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${challenge}&code_challenge_method=${challengeMethod}`;\n await authorize(bodyFormData, config);\n } catch (ex) {\n if (\n ex.response?.status === 302 &&\n ex.response.headers?.location?.indexOf('code=') > -1\n ) {\n adminClientId = forgeopsClientId;\n printMessage('ForgeOps deployment ', 'info', false);\n deploymentType = global.FORGEOPS_DEPLOYMENT_TYPE_KEY;\n } else {\n printMessage('Classic deployment ', 'info', false);\n }\n }\n }\n printMessage('detected.');\n }\n determineDefaultRealm(deploymentType);\n return deploymentType;\n}\n\n/**\n * Helper function to extract the semantic version string from a version info object\n * @param {Object} versionInfo version info object\n * @returns {String} semantic version\n */\nasync function getSemanticVersion(versionInfo) {\n if ('version' in versionInfo) {\n const versionString = versionInfo.version;\n const rx = /([\\d]\\.[\\d]\\.[\\d](\\.[\\d])*)/g;\n const version = versionString.match(rx);\n return version[0];\n }\n throw new Error('Cannot extract semantic version from version info object.');\n}\n\n/**\n * Helper function to authenticate and obtain and store session cookie\n * @returns {String} empty string or null\n */\nasync function authenticate() {\n storage.session.setCookieName(await getCookieName());\n try {\n const config = {\n headers: {\n 'X-OpenAM-Username': storage.session.getUsername(),\n 'X-OpenAM-Password': storage.session.getPassword(),\n },\n };\n const response1 = (await step({}, config)).data;\n const skip2FA = checkAndHandle2FA(response1);\n let response2 = {};\n if (skip2FA.need2fa) {\n response2 = (await step(skip2FA.payload)).data;\n } else {\n response2 = skip2FA.payload;\n }\n if ('tokenId' in response2) {\n storage.session.setCookieValue(response2['tokenId']);\n if (!storage.session.getDeploymentType()) {\n storage.session.setDeploymentType(await determineDeploymentType());\n } else {\n determineDefaultRealm(storage.session.getDeploymentType());\n }\n const versionInfo = (await getServerVersionInfo()).data;\n\n // https://github.com/rockcarver/frodo-cli/issues/109\n // printMessage(`Connected to ${versionInfo.fullVersion}`);\n\n // https://github.com/rockcarver/frodo-cli/issues/102\n printMessage(\n `Connected to [${storage.session.getTenant()}], [${\n !storage.session.getRealm() ? 'alpha' : storage.session.getRealm()\n }] realm, as [${storage.session.getUsername()}]`\n );\n const version = await getSemanticVersion(versionInfo);\n storage.session.setAmVersion(version);\n return '';\n }\n printMessage(`error authenticating`, 'error');\n printMessage('+++ likely cause, bad credentials!!! +++', 'error');\n return null;\n } catch (e) {\n if (e.response?.status === 401) {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage('+++ likely cause, bad credentials +++', 'error');\n }\n if (e.message === 'self signed certificate') {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage('+++ use -k, --insecure option to allow +++', 'error');\n } else {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage(e.response?.data, 'error');\n }\n return null;\n }\n}\n\n/**\n * Helper function to obtain an oauth2 authorization code\n * @param {String} redirectURL oauth2 redirect uri\n * @param {String} codeChallenge PKCE code challenge\n * @param {String} codeChallengeMethod PKCE code challenge method\n * @returns {String} oauth2 authorization code or null\n */\nasync function getAuthCode(redirectURL, codeChallenge, codeChallengeMethod) {\n try {\n const bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${adminClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${codeChallenge}&code_challenge_method=${codeChallengeMethod}`;\n const config = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n const response = await authorize(bodyFormData, config);\n if (response.status < 200 || response.status > 399) {\n printMessage('error getting auth code', 'error');\n printMessage(\n 'likely cause: mismatched parameters with OAuth client config',\n 'error'\n );\n return null;\n }\n const redirectLocationURL = response.request.res.responseUrl;\n const queryObject = url.parse(redirectLocationURL, true).query;\n if ('code' in queryObject) {\n return queryObject.code;\n }\n printMessage('auth code not found', 'error');\n return null;\n } catch (error) {\n printMessage(`error getting auth code - ${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n return null;\n }\n}\n\n/**\n * Helper function to obtain oauth2 access token\n * @returns {String} empty string or null\n */\nasync function getAccessToken() {\n try {\n const verifier = encodeBase64Url(randomBytes(32));\n const challenge = encodeBase64Url(\n createHash('sha256').update(verifier).digest()\n );\n const challengeMethod = 'S256';\n const redirectURL = url.resolve(\n storage.session.getTenant(),\n redirectUrlTemplate\n );\n const authCode = await getAuthCode(redirectURL, challenge, challengeMethod);\n if (authCode == null) {\n printMessage('error getting auth code', 'error');\n return null;\n }\n let response = null;\n if (\n storage.session.getDeploymentType() === global.CLOUD_DEPLOYMENT_TYPE_KEY\n ) {\n const config = {\n auth: {\n username: adminClientId,\n password: adminClientPassword,\n },\n };\n const bodyFormData = `redirect_uri=${redirectURL}&grant_type=authorization_code&code=${authCode}&code_verifier=${verifier}`;\n response = await accessToken(bodyFormData, config);\n } else {\n const bodyFormData = `client_id=${adminClientId}&redirect_uri=${redirectURL}&grant_type=authorization_code&code=${authCode}&code_verifier=${verifier}`;\n response = await accessToken(bodyFormData);\n }\n if (response.status < 200 || response.status > 399) {\n printMessage(`access token call returned ${response.status}`, 'error');\n return null;\n }\n if ('access_token' in response.data) {\n storage.session.setBearerToken(response.data.access_token);\n return '';\n }\n printMessage(\"can't get access token\", 'error');\n return null;\n } catch (e) {\n printMessage('error getting access token - ', 'error');\n return null;\n }\n}\n\n/**\n * Get tokens\n * @param {boolean} save true to save a connection profile upon successful authentication, false otherwise\n * @returns {boolean} true if tokens were successfully obtained, false otherwise\n */\nexport async function getTokens(save = false) {\n let credsFromParameters = true;\n // if username/password on cli are empty, try to read from connections.json\n if (\n storage.session.getUsername() == null &&\n storage.session.getPassword() == null\n ) {\n credsFromParameters = false;\n const conn = await getConnectionProfile();\n if (conn) {\n storage.session.setTenant(conn.tenant);\n storage.session.setUsername(conn.username);\n storage.session.setPassword(conn.password);\n storage.session.setAuthenticationService(conn.authenticationService);\n storage.session.setAuthenticationHeaderOverrides(\n conn.authenticationHeaderOverrides\n );\n } else {\n return false;\n }\n }\n await authenticate();\n if (\n storage.session.getCookieValue() &&\n !storage.session.getBearerToken() &&\n (storage.session.getDeploymentType() === global.CLOUD_DEPLOYMENT_TYPE_KEY ||\n storage.session.getDeploymentType() ===\n global.FORGEOPS_DEPLOYMENT_TYPE_KEY)\n ) {\n await getAccessToken();\n }\n if (save && storage.session.getCookieValue() && credsFromParameters) {\n // valid cookie, which means valid username/password combo. Save it in connections.json\n saveConnectionProfile();\n return true;\n }\n if (!storage.session.getCookieValue()) {\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthenticateOps.js","names":["adminClientPassword","redirectUrlTemplate","idmAdminScope","adminClientId","getCookieName","getServerInfo","data","cookieName","error","printMessage","checkAndHandle2FA","payload","element","callbacks","type","input","value","includes","need2fa","output","code","readlineSync","question","determineDefaultRealm","deploymentType","storage","session","getRealm","globalConfig","DEFAULT_REALM_KEY","setRealm","DEPLOYMENT_TYPE_REALM_MAP","determineDeploymentType","fidcClientId","forgeopsClientId","verifier","encodeBase64Url","randomBytes","challenge","createHash","update","digest","challengeMethod","redirectURL","url","resolve","getTenant","config","maxRedirects","bodyFormData","getCookieValue","CLASSIC_DEPLOYMENT_TYPE_KEY","authorize","e","response","status","headers","location","indexOf","CLOUD_DEPLOYMENT_TYPE_KEY","ex","FORGEOPS_DEPLOYMENT_TYPE_KEY","getSemanticVersion","versionInfo","versionString","version","rx","match","Error","authenticate","setCookieName","getUsername","getPassword","response1","step","skip2FA","response2","setCookieValue","getDeploymentType","setDeploymentType","getServerVersionInfo","setAmVersion","message","getAuthCode","codeChallenge","codeChallengeMethod","redirectLocationURL","request","res","responseUrl","queryObject","parse","query","getAccessToken","authCode","auth","username","password","accessToken","setBearerToken","access_token","getTokens","save","credsFromParameters","conn","getConnectionProfile","setTenant","tenant","setUsername","setPassword","setAuthenticationService","authenticationService","setAuthenticationHeaderOverrides","authenticationHeaderOverrides","getBearerToken","saveConnectionProfile"],"sources":["ops/AuthenticateOps.ts"],"sourcesContent":["import url from 'url';\nimport { createHash, randomBytes } from 'crypto';\nimport readlineSync from 'readline-sync';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport storage from '../storage/SessionStorage';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { printMessage } from './utils/Console';\nimport { getServerInfo, getServerVersionInfo } from '../api/ServerInfoApi';\nimport { step } from '../api/AuthenticateApi';\nimport { accessToken, authorize } from '../api/OAuth2OIDCApi';\nimport {\n getConnectionProfile,\n saveConnectionProfile,\n} from './ConnectionProfileOps';\n\nconst adminClientPassword = 'doesnotmatter';\nconst redirectUrlTemplate = '/platform/appAuthHelperRedirect.html';\n\nconst idmAdminScope = 'fr:idm:* openid';\n\nlet adminClientId = 'idmAdminClient';\n\n/**\n * Helper function to get cookie name\n * @returns {String} cookie name\n */\nasync function getCookieName() {\n try {\n return (await getServerInfo()).data.cookieName;\n } catch (error) {\n printMessage(`Error getting cookie name: ${error}`, 'error');\n return null;\n }\n}\n\n/**\n * Helper function to determine if this is a setup mfa prompt in the ID Cloud tenant admin login journey\n * @param {Object} payload response from the previous authentication journey step\n * @returns {Object} an object indicating if 2fa is required and the original payload\n */\nfunction checkAndHandle2FA(payload) {\n // let skippable = false;\n if ('callbacks' in payload) {\n for (const element of payload.callbacks) {\n if (element.type === 'HiddenValueCallback') {\n if (element.input[0].value.includes('skip')) {\n // skippable = true;\n element.input[0].value = 'Skip';\n return {\n need2fa: true,\n payload,\n };\n }\n }\n if (element.type === 'NameCallback') {\n if (element.output[0].value.includes('code')) {\n // skippable = false;\n printMessage('2FA is enabled and required for this user...');\n const code = readlineSync.question(`${element.output[0].value}: `);\n element.input[0].value = code;\n return {\n need2fa: true,\n payload,\n };\n }\n }\n }\n // console.info(\"NO2FA\");\n return {\n need2fa: false,\n payload,\n };\n }\n // console.info(\"NO2FA\");\n return {\n need2fa: false,\n payload,\n };\n}\n\n/**\n * Helper function to set the default realm by deployment type\n * @param {String} deploymentType deployment type\n */\nfunction determineDefaultRealm(deploymentType) {\n if (storage.session.getRealm() === globalConfig.DEFAULT_REALM_KEY) {\n storage.session.setRealm(\n globalConfig.DEPLOYMENT_TYPE_REALM_MAP[deploymentType]\n );\n }\n}\n\n/**\n * Helper function to determine the deployment type\n * @returns {String} deployment type\n */\nasync function determineDeploymentType() {\n const fidcClientId = 'idmAdminClient';\n const forgeopsClientId = 'idm-admin-ui';\n\n const verifier = encodeBase64Url(randomBytes(32));\n const challenge = encodeBase64Url(\n createHash('sha256').update(verifier).digest()\n );\n const challengeMethod = 'S256';\n const redirectURL = url.resolve(\n storage.session.getTenant(),\n redirectUrlTemplate\n );\n\n const config = {\n maxRedirects: 0,\n };\n let bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${fidcClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${challenge}&code_challenge_method=${challengeMethod}`;\n\n let deploymentType = globalConfig.CLASSIC_DEPLOYMENT_TYPE_KEY;\n try {\n await authorize(bodyFormData, config);\n } catch (e) {\n if (\n e.response?.status === 302 &&\n e.response.headers?.location?.indexOf('code=') > -1\n ) {\n printMessage('ForgeRock Identity Cloud ', 'info', false);\n deploymentType = globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY;\n } else {\n try {\n bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${forgeopsClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${challenge}&code_challenge_method=${challengeMethod}`;\n await authorize(bodyFormData, config);\n } catch (ex) {\n if (\n ex.response?.status === 302 &&\n ex.response.headers?.location?.indexOf('code=') > -1\n ) {\n adminClientId = forgeopsClientId;\n printMessage('ForgeOps deployment ', 'info', false);\n deploymentType = globalConfig.FORGEOPS_DEPLOYMENT_TYPE_KEY;\n } else {\n printMessage('Classic deployment ', 'info', false);\n }\n }\n }\n printMessage('detected.');\n }\n determineDefaultRealm(deploymentType);\n return deploymentType;\n}\n\n/**\n * Helper function to extract the semantic version string from a version info object\n * @param {Object} versionInfo version info object\n * @returns {String} semantic version\n */\nasync function getSemanticVersion(versionInfo) {\n if ('version' in versionInfo) {\n const versionString = versionInfo.version;\n const rx = /([\\d]\\.[\\d]\\.[\\d](\\.[\\d])*)/g;\n const version = versionString.match(rx);\n return version[0];\n }\n throw new Error('Cannot extract semantic version from version info object.');\n}\n\n/**\n * Helper function to authenticate and obtain and store session cookie\n * @returns {String} empty string or null\n */\nasync function authenticate() {\n storage.session.setCookieName(await getCookieName());\n try {\n const config = {\n headers: {\n 'X-OpenAM-Username': storage.session.getUsername(),\n 'X-OpenAM-Password': storage.session.getPassword(),\n },\n };\n const response1 = (await step({}, config)).data;\n const skip2FA = checkAndHandle2FA(response1);\n let response2 = {};\n if (skip2FA.need2fa) {\n response2 = (await step(skip2FA.payload)).data;\n } else {\n response2 = skip2FA.payload;\n }\n if ('tokenId' in response2) {\n storage.session.setCookieValue(response2['tokenId']);\n if (!storage.session.getDeploymentType()) {\n storage.session.setDeploymentType(await determineDeploymentType());\n } else {\n determineDefaultRealm(storage.session.getDeploymentType());\n }\n const versionInfo = (await getServerVersionInfo()).data;\n\n // https://github.com/rockcarver/frodo-cli/issues/109\n // printMessage(`Connected to ${versionInfo.fullVersion}`);\n\n // https://github.com/rockcarver/frodo-cli/issues/102\n printMessage(\n `Connected to [${storage.session.getTenant()}], [${\n !storage.session.getRealm() ? 'alpha' : storage.session.getRealm()\n }] realm, as [${storage.session.getUsername()}]`\n );\n const version = await getSemanticVersion(versionInfo);\n storage.session.setAmVersion(version);\n return '';\n }\n printMessage(`error authenticating`, 'error');\n printMessage('+++ likely cause, bad credentials!!! +++', 'error');\n return null;\n } catch (e) {\n if (e.response?.status === 401) {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage('+++ likely cause, bad credentials +++', 'error');\n }\n if (e.message === 'self signed certificate') {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage('+++ use -k, --insecure option to allow +++', 'error');\n } else {\n printMessage(`error authenticating - ${e.message}`, 'error');\n printMessage(e.response?.data, 'error');\n }\n return null;\n }\n}\n\n/**\n * Helper function to obtain an oauth2 authorization code\n * @param {String} redirectURL oauth2 redirect uri\n * @param {String} codeChallenge PKCE code challenge\n * @param {String} codeChallengeMethod PKCE code challenge method\n * @returns {String} oauth2 authorization code or null\n */\nasync function getAuthCode(redirectURL, codeChallenge, codeChallengeMethod) {\n try {\n const bodyFormData = `redirect_uri=${redirectURL}&scope=${idmAdminScope}&response_type=code&client_id=${adminClientId}&csrf=${storage.session.getCookieValue()}&decision=allow&code_challenge=${codeChallenge}&code_challenge_method=${codeChallengeMethod}`;\n const config = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n const response = await authorize(bodyFormData, config);\n if (response.status < 200 || response.status > 399) {\n printMessage('error getting auth code', 'error');\n printMessage(\n 'likely cause: mismatched parameters with OAuth client config',\n 'error'\n );\n return null;\n }\n const redirectLocationURL = response.request.res.responseUrl;\n const queryObject = url.parse(redirectLocationURL, true).query;\n if ('code' in queryObject) {\n return queryObject.code;\n }\n printMessage('auth code not found', 'error');\n return null;\n } catch (error) {\n printMessage(`error getting auth code - ${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n return null;\n }\n}\n\n/**\n * Helper function to obtain oauth2 access token\n * @returns {String} empty string or null\n */\nasync function getAccessToken() {\n try {\n const verifier = encodeBase64Url(randomBytes(32));\n const challenge = encodeBase64Url(\n createHash('sha256').update(verifier).digest()\n );\n const challengeMethod = 'S256';\n const redirectURL = url.resolve(\n storage.session.getTenant(),\n redirectUrlTemplate\n );\n const authCode = await getAuthCode(redirectURL, challenge, challengeMethod);\n if (authCode == null) {\n printMessage('error getting auth code', 'error');\n return null;\n }\n let response = null;\n if (\n storage.session.getDeploymentType() ===\n globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY\n ) {\n const config = {\n auth: {\n username: adminClientId,\n password: adminClientPassword,\n },\n };\n const bodyFormData = `redirect_uri=${redirectURL}&grant_type=authorization_code&code=${authCode}&code_verifier=${verifier}`;\n response = await accessToken(bodyFormData, config);\n } else {\n const bodyFormData = `client_id=${adminClientId}&redirect_uri=${redirectURL}&grant_type=authorization_code&code=${authCode}&code_verifier=${verifier}`;\n response = await accessToken(bodyFormData);\n }\n if (response.status < 200 || response.status > 399) {\n printMessage(`access token call returned ${response.status}`, 'error');\n return null;\n }\n if ('access_token' in response.data) {\n storage.session.setBearerToken(response.data.access_token);\n return '';\n }\n printMessage(\"can't get access token\", 'error');\n return null;\n } catch (e) {\n printMessage('error getting access token - ', 'error');\n return null;\n }\n}\n\n/**\n * Get tokens\n * @param {boolean} save true to save a connection profile upon successful authentication, false otherwise\n * @returns {boolean} true if tokens were successfully obtained, false otherwise\n */\nexport async function getTokens(save = false) {\n let credsFromParameters = true;\n // if username/password on cli are empty, try to read from connections.json\n if (\n storage.session.getUsername() == null &&\n storage.session.getPassword() == null\n ) {\n credsFromParameters = false;\n const conn = await getConnectionProfile();\n if (conn) {\n storage.session.setTenant(conn.tenant);\n storage.session.setUsername(conn.username);\n storage.session.setPassword(conn.password);\n storage.session.setAuthenticationService(conn.authenticationService);\n storage.session.setAuthenticationHeaderOverrides(\n conn.authenticationHeaderOverrides\n );\n } else {\n return false;\n }\n }\n await authenticate();\n if (\n storage.session.getCookieValue() &&\n !storage.session.getBearerToken() &&\n (storage.session.getDeploymentType() ===\n globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY ||\n storage.session.getDeploymentType() ===\n globalConfig.FORGEOPS_DEPLOYMENT_TYPE_KEY)\n ) {\n await getAccessToken();\n }\n if (save && storage.session.getCookieValue() && credsFromParameters) {\n // valid cookie, which means valid username/password combo. Save it in connections.json\n saveConnectionProfile();\n return true;\n }\n if (!storage.session.getCookieValue()) {\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
|