@rockcarver/frodo-lib 0.12.6 → 0.13.0
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 +22 -1
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/index.js +9 -1
- package/cjs/index.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +1 -12
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +0 -12
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/IdpOps.js +1 -12
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +127 -193
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/NodeOps.js +32 -29
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js +28 -0
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +1 -21
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/ScriptOps.js +0 -12
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +0 -12
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/test/mocks/TreeApi/getTree/Disabled.json +26 -0
- package/esm/index.mjs +3 -0
- package/esm/ops/CirclesOfTrustOps.mjs +1 -11
- package/esm/ops/EmailTemplateOps.mjs +1 -11
- package/esm/ops/IdpOps.mjs +1 -11
- package/esm/ops/JourneyOps.mjs +83 -148
- package/esm/ops/JourneyOps.test.mjs +54 -0
- package/esm/ops/NodeOps.mjs +29 -27
- package/esm/ops/OpsTypes.mjs +24 -1
- package/esm/ops/Saml2Ops.mjs +1 -19
- package/esm/ops/ScriptOps.mjs +0 -10
- package/esm/ops/ThemeOps.mjs +0 -10
- package/esm/test/mocks/TreeApi/getTree/Disabled.json +26 -0
- package/package.json +3 -2
- package/types/api/ApiTypes.d.ts +1 -1
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts +0 -7
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +0 -7
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts +0 -7
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +17 -26
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +10 -8
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +12 -0
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +0 -7
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts +0 -7
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +0 -7
- package/types/ops/ThemeOps.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JourneyOps.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Journey","getJourneys","toBeDefined","mockGetTrees","journeys","toBeTruthy","length","toBe","exportJourney","mockGetTree","mockGetNode","treeId","treeObject","getTree","assertions","journeyExport","useStringArrays","deps","verbose","tree","toStrictEqual","Object","keys","nodes","innerNodes","circlesOfTrust","emailTemplates","saml2Entities","scripts","socialIdentityProviders","themes","mockGetConfigEntity","mockGetScript","mockGetSaml2Providers","mockGetCirclesOfTrust","mockGetSaml2ProviderByLocationAndId","mockGetSaml2ProviderMetadata","mockGetSocialProviders","importJourney","mockPutTree","mockTreeId","mockTreeObj","toEqual","isEqualJson","nodeIds","mockPutNode","mockNodeId","mockNodeObj","toContain","filter","nodeId","readJsonFile","reUuid","entityIds","mockPutConfigEntity","mockEntityId","mockEntityObj","entityId","scriptIds","mockPutScript","mockScriptId","mockScriptObj","scriptId","cotIds","mockCreateCircleOfTrust","mockCotId","mockCotObj","cotId","mockUpdateCircleOfTrust","mockFindSaml2Providers","saml2ProviderIds64","mockCreateSaml2Provider","mockSaml2ProviderId64","mockSaml2ProviderLocation","mockSaml2ProviderObj","saml2ProviderId","mockUpdateSaml2Provider","socialProviderIds","mockPutSocialProviderByTypeAndId","mockSocialProviderId","mockSocialProviderType","mockSocialProviderObj","socialProviderId"],"sources":["ops/JourneyOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Journey, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { isEqualJson } from './utils/OpsUtils';\nimport {\n mockFindSaml2Providers,\n mockPutSocialProviderByTypeAndId,\n mockCreateSaml2Provider,\n mockUpdateSaml2Provider,\n mockCreateCircleOfTrust,\n mockUpdateCircleOfTrust,\n mockPutScript,\n mockPutConfigEntity,\n mockGetSocialProviders,\n mockGetSaml2ProviderMetadata,\n mockGetSaml2ProviderByLocationAndId,\n mockGetSaml2Providers,\n mockGetCirclesOfTrust,\n mockGetConfigEntity,\n mockGetScript,\n getTree,\n mockGetTrees,\n mockGetTree,\n mockGetNode,\n mockPutTree,\n mockPutNode,\n readJsonFile,\n} from '../test/mocks/ForgeRockApiMockEngine';\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('JourneyOps - getJourneys()', () => {\n test('getJourneys() 0: Method is implemented', async () => {\n expect(Journey.getJourneys).toBeDefined();\n });\n\n test('getJourneys() 1: Get all journeys', async () => {\n mockGetTrees(mock);\n const journeys = await Journey.getJourneys();\n expect(journeys).toBeTruthy();\n expect(journeys.length).toBe(92);\n });\n});\n\ndescribe('JourneyOps - exportJourney()', () => {\n test('exportJourney() 0: Method is implemented', async () => {\n expect(Journey.exportJourney).toBeDefined();\n });\n\n test('exportJourney() 1: Export journey w/o dependencies', async () => {\n mockGetTree(mock);\n mockGetNode(mock);\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n expect.assertions(24);\n const journeyExport = await Journey.exportJourney(treeId, {\n useStringArrays: false,\n deps: false,\n verbose: false,\n });\n expect(journeyExport).toBeTruthy();\n expect(journeyExport.tree['_id']).toBe(treeId);\n expect(journeyExport.tree).toStrictEqual(treeObject);\n expect(Object.keys(journeyExport.nodes as object).length).toBe(7);\n expect(Object.keys(journeyExport.innerNodes as object).length).toBe(5);\n expect(Object.keys(journeyExport.circlesOfTrust as object).length).toBe(0);\n expect(Object.keys(journeyExport.emailTemplates as object).length).toBe(0);\n expect(Object.keys(journeyExport.saml2Entities as object).length).toBe(0);\n expect(Object.keys(journeyExport.scripts as object).length).toBe(0);\n expect(\n Object.keys(journeyExport.socialIdentityProviders as object).length\n ).toBe(0);\n expect(journeyExport.themes?.length).toBe(0);\n });\n\n test('exportJourney() 2: Export journey w/ dependencies', async () => {\n mockGetTree(mock);\n mockGetNode(mock);\n mockGetConfigEntity(mock);\n mockGetScript(mock);\n mockGetSaml2Providers(mock);\n mockGetCirclesOfTrust(mock);\n mockGetSaml2ProviderByLocationAndId(mock);\n mockGetSaml2ProviderMetadata(mock);\n mockGetSocialProviders(mock);\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n expect.assertions(42);\n const journeyExport = await Journey.exportJourney('FrodoTest', {\n useStringArrays: false,\n deps: true,\n verbose: false,\n });\n // console.dir(journeyExport);\n expect(journeyExport).toBeTruthy();\n expect(journeyExport.tree['_id']).toBe(treeId);\n expect(journeyExport.tree).toStrictEqual(treeObject);\n expect(Object.keys(journeyExport.nodes as object).length).toBe(7);\n expect(Object.keys(journeyExport.innerNodes as object).length).toBe(5);\n expect(Object.keys(journeyExport.circlesOfTrust as object).length).toBe(1);\n expect(Object.keys(journeyExport.emailTemplates as object).length).toBe(1);\n expect(Object.keys(journeyExport.saml2Entities as object).length).toBe(2);\n expect(Object.keys(journeyExport.scripts as object).length).toBe(9);\n expect(\n Object.keys(journeyExport.socialIdentityProviders as object).length\n ).toBe(8);\n expect(journeyExport.themes?.length).toBe(1);\n });\n});\n\ndescribe('JourneyOps - importJourney()', () => {\n test('importJourney() 0: Method is implemented', async () => {\n expect(Journey.importJourney).toBeDefined();\n });\n\n test('importJourney() 1: Import journey w/o dependencies', async () => {\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(isEqualJson(mockTreeObj, treeObject, ['_rev'])).toBeTruthy();\n });\n let nodeIds = [\n // nodes\n '278bf084-9eea-46fe-8ce9-2600dde3b046',\n '64157fca-bd5b-4405-a4c8-64ffd98a5461',\n '731c5810-020b-45c8-a7fc-3c21903ae2b3',\n 'bf153f37-83dd-4f39-aa0c-74135430242e',\n 'd5cc2d52-6ce4-452d-85ea-3a5b50218b67',\n 'e2c39477-847a-4df2-9c5d-b449a752638b',\n 'fc7e47cd-c679-4211-8e05-a36654f23c67',\n // inner nodes\n '7a351800-fb7e-4145-903c-388554747556',\n '804e6a68-1720-442b-926a-007e90f02782',\n '228a44d5-fd78-4278-8999-fdd470ea7ebf',\n 'dd16c8d4-baca-4ae0-bcd8-fb98b9040524',\n '038f9b2a-36b2-489b-9e03-386c9a62ea21',\n ];\n mockPutNode(mock, (mockNodeId, mockNodeObj) => {\n expect(nodeIds).toContain(mockNodeId);\n nodeIds = nodeIds.filter((nodeId) => nodeId !== mockNodeId);\n });\n expect.assertions(15);\n const journeyExport = readJsonFile(\n './JourneyOps/importJourney/FrodoTest.journey.json'\n );\n await Journey.importJourney(journeyExport, {\n reUuid: false,\n deps: false,\n verbose: false,\n });\n expect(nodeIds.length).toBe(0);\n });\n\n test('importJourney() 2: Import journey w/ dependencies', async () => {\n const treeId = 'FrodoTest';\n // mock TreeApi\n const treeObject = getTree(treeId);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n // console.log('mockPutTree: ' + mockTreeId);\n expect(mockTreeId).toEqual(treeId);\n expect(isEqualJson(mockTreeObj, treeObject, ['_rev'])).toBeTruthy();\n });\n // mock NodeApi\n let nodeIds = [\n // nodes\n '278bf084-9eea-46fe-8ce9-2600dde3b046',\n '64157fca-bd5b-4405-a4c8-64ffd98a5461',\n '731c5810-020b-45c8-a7fc-3c21903ae2b3',\n 'bf153f37-83dd-4f39-aa0c-74135430242e',\n 'd5cc2d52-6ce4-452d-85ea-3a5b50218b67',\n 'e2c39477-847a-4df2-9c5d-b449a752638b',\n 'fc7e47cd-c679-4211-8e05-a36654f23c67',\n // inner nodes\n '7a351800-fb7e-4145-903c-388554747556',\n '804e6a68-1720-442b-926a-007e90f02782',\n '228a44d5-fd78-4278-8999-fdd470ea7ebf',\n 'dd16c8d4-baca-4ae0-bcd8-fb98b9040524',\n '038f9b2a-36b2-489b-9e03-386c9a62ea21',\n ];\n mockPutNode(mock, (mockNodeId, mockNodeObj) => {\n // console.log('mockPutNode: ' + mockNodeId);\n expect(nodeIds).toContain(mockNodeId);\n nodeIds = nodeIds.filter((nodeId) => nodeId !== mockNodeId);\n });\n // mock EmailTemplateApi\n let entityIds = ['emailTemplate/welcome', 'ui/themerealm'];\n mockPutConfigEntity(mock, (mockEntityId, mockEntityObj) => {\n // console.log('mockPutConfigEntity: ' + mockEntityId);\n expect(entityIds).toContain(mockEntityId);\n entityIds = entityIds.filter((entityId) => entityId !== mockEntityId);\n });\n // mock ScriptApi\n let scriptIds = [\n '58c824ae-84ed-4724-82cd-db128fc3f6c',\n '739bdc48-fd24-4c52-b353-88706d75558a',\n '58d29080-4563-480b-89bb-1e7719776a21',\n '23143919-6b78-40c3-b25e-beca19b229e0',\n 'bae1d54a-e97d-4997-aa5d-c027f21af82c',\n '484e6246-dbc6-4288-97e6-54e55431402e',\n '6325cf19-a49b-471e-8d26-7e4df76df0e2',\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n '73cecbfc-dad0-4395-be6a-6858ee3a80e5',\n ];\n mockPutScript(mock, (mockScriptId, mockScriptObj) => {\n // console.log('mockPutScript: ' + mockScriptId);\n expect(scriptIds).toContain(mockScriptId);\n scriptIds = scriptIds.filter((scriptId) => scriptId !== mockScriptId);\n });\n // mock CircleOfTrustApi\n let cotIds = ['AzureCOT'];\n mockCreateCircleOfTrust(mock, (mockCotId, mockCotObj) => {\n // console.log('mockCreateCirclesOfTrust: ' + mockCotId);\n expect(cotIds).toContain(mockCotId);\n cotIds = cotIds.filter((cotId) => cotId !== mockCotId);\n });\n mockUpdateCircleOfTrust(mock, (mockCotId, mockCotObj) => {\n // console.log('mockUpdateCirclesOfTrust: ' + mockCotId);\n expect(cotIds).toContain(mockCotId);\n cotIds = cotIds.filter((cotId) => cotId !== mockCotId);\n });\n // mock Saml2Api\n mockFindSaml2Providers(mock);\n let saml2ProviderIds64 = [\n 'aVNQQXp1cmU',\n 'dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l',\n ];\n mockCreateSaml2Provider(\n mock,\n (\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n ) => {\n // console.log('mockCreateSaml2Provider: ' + mockSaml2ProviderId64);\n expect(saml2ProviderIds64).toContain(mockSaml2ProviderId64);\n saml2ProviderIds64 = saml2ProviderIds64.filter(\n (saml2ProviderId) => saml2ProviderId !== mockSaml2ProviderId64\n );\n }\n );\n mockUpdateSaml2Provider(\n mock,\n (\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n ) => {\n // console.log('mockUpdateSaml2Provider: ' + mockSaml2ProviderId64);\n expect(saml2ProviderIds64).toContain(mockSaml2ProviderId64);\n saml2ProviderIds64 = saml2ProviderIds64.filter(\n (saml2ProviderId) => saml2ProviderId !== mockSaml2ProviderId64\n );\n }\n );\n // mock SocialIdentityProviderApi\n let socialProviderIds = [\n 'google',\n 'github',\n 'facebook',\n 'apple-stoyan',\n 'apple_web',\n 'okta-trial-5735851',\n 'adfs',\n 'azure',\n ];\n mockPutSocialProviderByTypeAndId(\n mock,\n (mockSocialProviderId, mockSocialProviderType, mockSocialProviderObj) => {\n // console.log(\n // 'mockPutSocialProviderByTypeAndId: ' + mockSocialProviderId\n // );\n expect(socialProviderIds).toContain(mockSocialProviderId);\n socialProviderIds = socialProviderIds.filter(\n (socialProviderId) => socialProviderId !== mockSocialProviderId\n );\n }\n );\n expect.assertions(45);\n const journeyExport = readJsonFile(\n './JourneyOps/importJourney/FrodoTest.journey.json'\n );\n await Journey.importJourney(journeyExport, {\n reUuid: false,\n deps: true,\n verbose: false,\n });\n expect(nodeIds.length).toBe(0);\n expect(entityIds.length).toBe(0);\n expect(scriptIds.length).toBe(0);\n expect(cotIds.length).toBe(0);\n expect(saml2ProviderIds64.length).toBe(0);\n expect(socialProviderIds.length).toBe(0);\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JourneyOps.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Journey","getJourneys","toBeDefined","mockGetTrees","journeys","toBeTruthy","length","toBe","exportJourney","mockGetTree","mockGetNode","treeId","treeObject","getTree","assertions","journeyExport","useStringArrays","deps","verbose","tree","toStrictEqual","Object","keys","nodes","innerNodes","circlesOfTrust","emailTemplates","saml2Entities","scripts","socialIdentityProviders","themes","mockGetConfigEntity","mockGetScript","mockGetSaml2Providers","mockGetCirclesOfTrust","mockGetSaml2ProviderByLocationAndId","mockGetSaml2ProviderMetadata","mockGetSocialProviders","importJourney","mockPutTree","mockTreeId","mockTreeObj","toEqual","isEqualJson","nodeIds","mockPutNode","mockNodeId","mockNodeObj","toContain","filter","nodeId","readJsonFile","reUuid","entityIds","mockPutConfigEntity","mockEntityId","mockEntityObj","entityId","scriptIds","mockPutScript","mockScriptId","mockScriptObj","scriptId","cotIds","mockCreateCircleOfTrust","mockCotId","mockCotObj","cotId","mockUpdateCircleOfTrust","mockFindSaml2Providers","saml2ProviderIds64","mockCreateSaml2Provider","mockSaml2ProviderId64","mockSaml2ProviderLocation","mockSaml2ProviderObj","saml2ProviderId","mockUpdateSaml2Provider","socialProviderIds","mockPutSocialProviderByTypeAndId","mockSocialProviderId","mockSocialProviderType","mockSocialProviderObj","socialProviderId","enableJourney","result","disableJourney","toBeFalsy"],"sources":["ops/JourneyOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Journey, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { isEqualJson } from './utils/OpsUtils';\nimport {\n mockFindSaml2Providers,\n mockPutSocialProviderByTypeAndId,\n mockCreateSaml2Provider,\n mockUpdateSaml2Provider,\n mockCreateCircleOfTrust,\n mockUpdateCircleOfTrust,\n mockPutScript,\n mockPutConfigEntity,\n mockGetSocialProviders,\n mockGetSaml2ProviderMetadata,\n mockGetSaml2ProviderByLocationAndId,\n mockGetSaml2Providers,\n mockGetCirclesOfTrust,\n mockGetConfigEntity,\n mockGetScript,\n getTree,\n mockGetTrees,\n mockGetTree,\n mockGetNode,\n mockPutTree,\n mockPutNode,\n readJsonFile,\n} from '../test/mocks/ForgeRockApiMockEngine';\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('JourneyOps - getJourneys()', () => {\n test('getJourneys() 0: Method is implemented', async () => {\n expect(Journey.getJourneys).toBeDefined();\n });\n\n test('getJourneys() 1: Get all journeys', async () => {\n mockGetTrees(mock);\n const journeys = await Journey.getJourneys();\n expect(journeys).toBeTruthy();\n expect(journeys.length).toBe(92);\n });\n});\n\ndescribe('JourneyOps - exportJourney()', () => {\n test('exportJourney() 0: Method is implemented', async () => {\n expect(Journey.exportJourney).toBeDefined();\n });\n\n test('exportJourney() 1: Export journey w/o dependencies', async () => {\n mockGetTree(mock);\n mockGetNode(mock);\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n expect.assertions(24);\n const journeyExport = await Journey.exportJourney(treeId, {\n useStringArrays: false,\n deps: false,\n verbose: false,\n });\n expect(journeyExport).toBeTruthy();\n expect(journeyExport.tree['_id']).toBe(treeId);\n expect(journeyExport.tree).toStrictEqual(treeObject);\n expect(Object.keys(journeyExport.nodes as object).length).toBe(7);\n expect(Object.keys(journeyExport.innerNodes as object).length).toBe(5);\n expect(Object.keys(journeyExport.circlesOfTrust as object).length).toBe(0);\n expect(Object.keys(journeyExport.emailTemplates as object).length).toBe(0);\n expect(Object.keys(journeyExport.saml2Entities as object).length).toBe(0);\n expect(Object.keys(journeyExport.scripts as object).length).toBe(0);\n expect(\n Object.keys(journeyExport.socialIdentityProviders as object).length\n ).toBe(0);\n expect(journeyExport.themes?.length).toBe(0);\n });\n\n test('exportJourney() 2: Export journey w/ dependencies', async () => {\n mockGetTree(mock);\n mockGetNode(mock);\n mockGetConfigEntity(mock);\n mockGetScript(mock);\n mockGetSaml2Providers(mock);\n mockGetCirclesOfTrust(mock);\n mockGetSaml2ProviderByLocationAndId(mock);\n mockGetSaml2ProviderMetadata(mock);\n mockGetSocialProviders(mock);\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n expect.assertions(42);\n const journeyExport = await Journey.exportJourney('FrodoTest', {\n useStringArrays: false,\n deps: true,\n verbose: false,\n });\n // console.dir(journeyExport);\n expect(journeyExport).toBeTruthy();\n expect(journeyExport.tree['_id']).toBe(treeId);\n expect(journeyExport.tree).toStrictEqual(treeObject);\n expect(Object.keys(journeyExport.nodes as object).length).toBe(7);\n expect(Object.keys(journeyExport.innerNodes as object).length).toBe(5);\n expect(Object.keys(journeyExport.circlesOfTrust as object).length).toBe(1);\n expect(Object.keys(journeyExport.emailTemplates as object).length).toBe(1);\n expect(Object.keys(journeyExport.saml2Entities as object).length).toBe(2);\n expect(Object.keys(journeyExport.scripts as object).length).toBe(9);\n expect(\n Object.keys(journeyExport.socialIdentityProviders as object).length\n ).toBe(8);\n expect(journeyExport.themes?.length).toBe(1);\n });\n});\n\ndescribe('JourneyOps - importJourney()', () => {\n test('importJourney() 0: Method is implemented', async () => {\n expect(Journey.importJourney).toBeDefined();\n });\n\n test('importJourney() 1: Import journey w/o dependencies', async () => {\n const treeId = 'FrodoTest';\n const treeObject = getTree(treeId);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(isEqualJson(mockTreeObj, treeObject, ['_rev'])).toBeTruthy();\n });\n let nodeIds = [\n // nodes\n '278bf084-9eea-46fe-8ce9-2600dde3b046',\n '64157fca-bd5b-4405-a4c8-64ffd98a5461',\n '731c5810-020b-45c8-a7fc-3c21903ae2b3',\n 'bf153f37-83dd-4f39-aa0c-74135430242e',\n 'd5cc2d52-6ce4-452d-85ea-3a5b50218b67',\n 'e2c39477-847a-4df2-9c5d-b449a752638b',\n 'fc7e47cd-c679-4211-8e05-a36654f23c67',\n // inner nodes\n '7a351800-fb7e-4145-903c-388554747556',\n '804e6a68-1720-442b-926a-007e90f02782',\n '228a44d5-fd78-4278-8999-fdd470ea7ebf',\n 'dd16c8d4-baca-4ae0-bcd8-fb98b9040524',\n '038f9b2a-36b2-489b-9e03-386c9a62ea21',\n ];\n mockPutNode(mock, (mockNodeId, mockNodeObj) => {\n expect(nodeIds).toContain(mockNodeId);\n nodeIds = nodeIds.filter((nodeId) => nodeId !== mockNodeId);\n });\n expect.assertions(15);\n const journeyExport = readJsonFile(\n './JourneyOps/importJourney/FrodoTest.journey.json'\n );\n await Journey.importJourney(journeyExport, {\n reUuid: false,\n deps: false,\n verbose: false,\n });\n expect(nodeIds.length).toBe(0);\n });\n\n test('importJourney() 2: Import journey w/ dependencies', async () => {\n const treeId = 'FrodoTest';\n // mock TreeApi\n const treeObject = getTree(treeId);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n // console.log('mockPutTree: ' + mockTreeId);\n expect(mockTreeId).toEqual(treeId);\n expect(isEqualJson(mockTreeObj, treeObject, ['_rev'])).toBeTruthy();\n });\n // mock NodeApi\n let nodeIds = [\n // nodes\n '278bf084-9eea-46fe-8ce9-2600dde3b046',\n '64157fca-bd5b-4405-a4c8-64ffd98a5461',\n '731c5810-020b-45c8-a7fc-3c21903ae2b3',\n 'bf153f37-83dd-4f39-aa0c-74135430242e',\n 'd5cc2d52-6ce4-452d-85ea-3a5b50218b67',\n 'e2c39477-847a-4df2-9c5d-b449a752638b',\n 'fc7e47cd-c679-4211-8e05-a36654f23c67',\n // inner nodes\n '7a351800-fb7e-4145-903c-388554747556',\n '804e6a68-1720-442b-926a-007e90f02782',\n '228a44d5-fd78-4278-8999-fdd470ea7ebf',\n 'dd16c8d4-baca-4ae0-bcd8-fb98b9040524',\n '038f9b2a-36b2-489b-9e03-386c9a62ea21',\n ];\n mockPutNode(mock, (mockNodeId, mockNodeObj) => {\n // console.log('mockPutNode: ' + mockNodeId);\n expect(nodeIds).toContain(mockNodeId);\n nodeIds = nodeIds.filter((nodeId) => nodeId !== mockNodeId);\n });\n // mock EmailTemplateApi\n let entityIds = ['emailTemplate/welcome', 'ui/themerealm'];\n mockPutConfigEntity(mock, (mockEntityId, mockEntityObj) => {\n // console.log('mockPutConfigEntity: ' + mockEntityId);\n expect(entityIds).toContain(mockEntityId);\n entityIds = entityIds.filter((entityId) => entityId !== mockEntityId);\n });\n // mock ScriptApi\n let scriptIds = [\n '58c824ae-84ed-4724-82cd-db128fc3f6c',\n '739bdc48-fd24-4c52-b353-88706d75558a',\n '58d29080-4563-480b-89bb-1e7719776a21',\n '23143919-6b78-40c3-b25e-beca19b229e0',\n 'bae1d54a-e97d-4997-aa5d-c027f21af82c',\n '484e6246-dbc6-4288-97e6-54e55431402e',\n '6325cf19-a49b-471e-8d26-7e4df76df0e2',\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n '73cecbfc-dad0-4395-be6a-6858ee3a80e5',\n ];\n mockPutScript(mock, (mockScriptId, mockScriptObj) => {\n // console.log('mockPutScript: ' + mockScriptId);\n expect(scriptIds).toContain(mockScriptId);\n scriptIds = scriptIds.filter((scriptId) => scriptId !== mockScriptId);\n });\n // mock CircleOfTrustApi\n let cotIds = ['AzureCOT'];\n mockCreateCircleOfTrust(mock, (mockCotId, mockCotObj) => {\n // console.log('mockCreateCirclesOfTrust: ' + mockCotId);\n expect(cotIds).toContain(mockCotId);\n cotIds = cotIds.filter((cotId) => cotId !== mockCotId);\n });\n mockUpdateCircleOfTrust(mock, (mockCotId, mockCotObj) => {\n // console.log('mockUpdateCirclesOfTrust: ' + mockCotId);\n expect(cotIds).toContain(mockCotId);\n cotIds = cotIds.filter((cotId) => cotId !== mockCotId);\n });\n // mock Saml2Api\n mockFindSaml2Providers(mock);\n let saml2ProviderIds64 = [\n 'aVNQQXp1cmU',\n 'dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l',\n ];\n mockCreateSaml2Provider(\n mock,\n (\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n ) => {\n // console.log('mockCreateSaml2Provider: ' + mockSaml2ProviderId64);\n expect(saml2ProviderIds64).toContain(mockSaml2ProviderId64);\n saml2ProviderIds64 = saml2ProviderIds64.filter(\n (saml2ProviderId) => saml2ProviderId !== mockSaml2ProviderId64\n );\n }\n );\n mockUpdateSaml2Provider(\n mock,\n (\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n ) => {\n // console.log('mockUpdateSaml2Provider: ' + mockSaml2ProviderId64);\n expect(saml2ProviderIds64).toContain(mockSaml2ProviderId64);\n saml2ProviderIds64 = saml2ProviderIds64.filter(\n (saml2ProviderId) => saml2ProviderId !== mockSaml2ProviderId64\n );\n }\n );\n // mock SocialIdentityProviderApi\n let socialProviderIds = [\n 'google',\n 'github',\n 'facebook',\n 'apple-stoyan',\n 'apple_web',\n 'okta-trial-5735851',\n 'adfs',\n 'azure',\n ];\n mockPutSocialProviderByTypeAndId(\n mock,\n (mockSocialProviderId, mockSocialProviderType, mockSocialProviderObj) => {\n // console.log(\n // 'mockPutSocialProviderByTypeAndId: ' + mockSocialProviderId\n // );\n expect(socialProviderIds).toContain(mockSocialProviderId);\n socialProviderIds = socialProviderIds.filter(\n (socialProviderId) => socialProviderId !== mockSocialProviderId\n );\n }\n );\n expect.assertions(45);\n const journeyExport = readJsonFile(\n './JourneyOps/importJourney/FrodoTest.journey.json'\n );\n await Journey.importJourney(journeyExport, {\n reUuid: false,\n deps: true,\n verbose: false,\n });\n expect(nodeIds.length).toBe(0);\n expect(entityIds.length).toBe(0);\n expect(scriptIds.length).toBe(0);\n expect(cotIds.length).toBe(0);\n expect(saml2ProviderIds64.length).toBe(0);\n expect(socialProviderIds.length).toBe(0);\n });\n});\n\ndescribe('JourneyOps - enableJourney()', () => {\n test('enableJourney() 0: Method is implemented', async () => {\n expect(Journey.enableJourney).toBeDefined();\n });\n\n test('enableJourney() 1: Enable a disabled journey', async () => {\n const treeId = 'Disabled';\n mockGetTree(mock);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(mockTreeObj['enabled']).toBeTruthy();\n });\n expect.assertions(4);\n const result = await Journey.enableJourney(treeId);\n expect(result).toBeTruthy();\n });\n\n test('enableJourney() 2: Enable an already enabled journey', async () => {\n const treeId = 'FrodoTest';\n mockGetTree(mock);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(mockTreeObj['enabled']).toBeTruthy();\n });\n expect.assertions(4);\n const result = await Journey.enableJourney(treeId);\n expect(result).toBeTruthy();\n });\n});\n\ndescribe('JourneyOps - disableJourney()', () => {\n test('disableJourney() 0: Method is implemented', async () => {\n expect(Journey.disableJourney).toBeDefined();\n });\n\n test('disableJourney() 1: Disable an enabled journey', async () => {\n const treeId = 'FrodoTest';\n mockGetTree(mock);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(mockTreeObj['enabled']).toBeFalsy();\n });\n expect.assertions(4);\n const result = await Journey.disableJourney(treeId);\n expect(result).toBeTruthy();\n });\n\n test('disableJourney() 2: Disable an already disabled journey', async () => {\n const treeId = 'Disabled';\n mockGetTree(mock);\n mockPutTree(mock, (mockTreeId, mockTreeObj) => {\n expect(mockTreeId).toEqual(treeId);\n expect(mockTreeObj['enabled']).toBeFalsy();\n });\n expect.assertions(4);\n const result = await Journey.disableJourney(treeId);\n expect(result).toBeTruthy();\n });\n});\n"],"mappings":"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"}
|
package/cjs/ops/NodeOps.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.findOrphanedNodes = findOrphanedNodes;
|
|
7
|
-
exports.
|
|
7
|
+
exports.getNodeClassification = getNodeClassification;
|
|
8
8
|
exports.isCloudOnlyNode = isCloudOnlyNode;
|
|
9
9
|
exports.isCustomNode = isCustomNode;
|
|
10
10
|
exports.isPremiumNode = isPremiumNode;
|
|
@@ -24,6 +24,8 @@ var _Saml2Api = require("../api/Saml2Api");
|
|
|
24
24
|
|
|
25
25
|
var _Base = require("../api/utils/Base64");
|
|
26
26
|
|
|
27
|
+
var _OpsTypes = require("./OpsTypes");
|
|
28
|
+
|
|
27
29
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
30
|
|
|
29
31
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
@@ -34,17 +36,6 @@ var containerNodes = ['PageNode', 'CustomPageNode'];
|
|
|
34
36
|
var scriptedNodes = ['ConfigProviderNode', 'ScriptedDecisionNode', 'ClientScriptNode', 'SocialProviderHandlerNode', 'CustomScriptNode'];
|
|
35
37
|
var emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];
|
|
36
38
|
var emptyScriptPlaceholder = '[Empty]';
|
|
37
|
-
/**
|
|
38
|
-
* Get a one-line description of the node
|
|
39
|
-
* @param {NodeSkeleton} nodeObj node object to describe
|
|
40
|
-
* @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object
|
|
41
|
-
* @returns {string} a one-line description
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
function getOneLineDescription(nodeObj, nodeRef) {
|
|
45
|
-
var description = "[".concat(nodeObj._id['brightCyan'], "] ").concat(nodeObj._type._id).concat(nodeRef ? ' - ' + (nodeRef === null || nodeRef === void 0 ? void 0 : nodeRef.displayName['brightYellow']) : '');
|
|
46
|
-
return description;
|
|
47
|
-
}
|
|
48
39
|
/**
|
|
49
40
|
* Helper to get all SAML2 dependencies for a given node object
|
|
50
41
|
* @param {Object} nodeObject node object
|
|
@@ -53,24 +44,9 @@ function getOneLineDescription(nodeObj, nodeRef) {
|
|
|
53
44
|
* @returns {Promise} a promise that resolves to an object containing a saml2 dependencies
|
|
54
45
|
*/
|
|
55
46
|
|
|
56
|
-
|
|
57
47
|
function getSaml2NodeDependencies(_x, _x2, _x3) {
|
|
58
48
|
return _getSaml2NodeDependencies.apply(this, arguments);
|
|
59
|
-
}
|
|
60
|
-
// const nodeList = Object.entries(treeObject.nodes);
|
|
61
|
-
// const results = await Promise.allSettled(
|
|
62
|
-
// nodeList.map(
|
|
63
|
-
// async ([nodeId, nodeInfo]) => await getNode(nodeId, nodeInfo['nodeType'])
|
|
64
|
-
// )
|
|
65
|
-
// );
|
|
66
|
-
// const nodes = results.filter((r) => r.status === 'fulfilled');
|
|
67
|
-
// nodes.map((f) => {
|
|
68
|
-
// return f.status;
|
|
69
|
-
// });
|
|
70
|
-
// const failedList = results.filter((r) => r.status === 'rejected');
|
|
71
|
-
// return nodes;
|
|
72
|
-
// }
|
|
73
|
-
|
|
49
|
+
}
|
|
74
50
|
/**
|
|
75
51
|
* Find all node configuration objects that are no longer referenced by any tree
|
|
76
52
|
* @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes
|
|
@@ -275,7 +251,7 @@ var OOTB_NODE_TYPES_7_2 = ['OathRegistrationNode', 'OathTokenVerifierNode', 'Pas
|
|
|
275
251
|
var OOTB_NODE_TYPES_7_3 = [].concat(OOTB_NODE_TYPES_7_2);
|
|
276
252
|
var OOTB_NODE_TYPES_6_5 = ['AbstractSocialAuthLoginNode', 'AccountLockoutNode', 'AgentDataStoreDecisionNode', 'AnonymousUserNode', 'AuthLevelDecisionNode', 'ChoiceCollectorNode', 'CookiePresenceDecisionNode', 'CreatePasswordNode', 'DataStoreDecisionNode', 'InnerTreeEvaluatorNode', 'LdapDecisionNode', 'MessageNode', 'MetadataNode', 'MeterNode', 'ModifyAuthLevelNode', 'OneTimePasswordCollectorDecisionNode', 'OneTimePasswordGeneratorNode', 'OneTimePasswordSmsSenderNode', 'OneTimePasswordSmtpSenderNode', 'PageNode', 'PasswordCollectorNode', 'PersistentCookieDecisionNode', 'PollingWaitNode', 'ProvisionDynamicAccountNode', 'ProvisionIdmAccountNode', 'PushAuthenticationSenderNode', 'PushResultVerifierNode', 'RecoveryCodeCollectorDecisionNode', 'RecoveryCodeDisplayNode', 'RegisterLogoutWebhookNode', 'RemoveSessionPropertiesNode', 'RetryLimitDecisionNode', 'ScriptedDecisionNode', 'SessionDataNode', 'SetFailureUrlNode', 'SetPersistentCookieNode', 'SetSessionPropertiesNode', 'SetSuccessUrlNode', 'SocialFacebookNode', 'SocialGoogleNode', 'SocialNode', 'SocialOAuthIgnoreProfileNode', 'SocialOpenIdConnectNode', 'TimerStartNode', 'TimerStopNode', 'UsernameCollectorNode', 'WebAuthnAuthenticationNode', 'WebAuthnRegistrationNode', 'ZeroPageLoginNode'];
|
|
277
253
|
var OOTB_NODE_TYPES_6 = ['AbstractSocialAuthLoginNode', 'AccountLockoutNode', 'AgentDataStoreDecisionNode', 'AnonymousUserNode', 'AuthLevelDecisionNode', 'ChoiceCollectorNode', 'CookiePresenceDecisionNode', 'CreatePasswordNode', 'DataStoreDecisionNode', 'InnerTreeEvaluatorNode', 'LdapDecisionNode', 'MessageNode', 'MetadataNode', 'MeterNode', 'ModifyAuthLevelNode', 'OneTimePasswordCollectorDecisionNode', 'OneTimePasswordGeneratorNode', 'OneTimePasswordSmsSenderNode', 'OneTimePasswordSmtpSenderNode', 'PageNode', 'PasswordCollectorNode', 'PersistentCookieDecisionNode', 'PollingWaitNode', 'ProvisionDynamicAccountNode', 'ProvisionIdmAccountNode', 'PushAuthenticationSenderNode', 'PushResultVerifierNode', 'RecoveryCodeCollectorDecisionNode', 'RecoveryCodeDisplayNode', 'RegisterLogoutWebhookNode', 'RemoveSessionPropertiesNode', 'RetryLimitDecisionNode', 'ScriptedDecisionNode', 'SessionDataNode', 'SetFailureUrlNode', 'SetPersistentCookieNode', 'SetSessionPropertiesNode', 'SetSuccessUrlNode', 'SocialFacebookNode', 'SocialGoogleNode', 'SocialNode', 'SocialOAuthIgnoreProfileNode', 'SocialOpenIdConnectNode', 'TimerStartNode', 'TimerStopNode', 'UsernameCollectorNode', 'WebAuthnAuthenticationNode', 'WebAuthnRegistrationNode', 'ZeroPageLoginNode'];
|
|
278
|
-
var CLOUD_ONLY_NODE_TYPES = ['IdentityStoreDecisionNode'];
|
|
254
|
+
var CLOUD_ONLY_NODE_TYPES = ['IdentityStoreDecisionNode', 'AutonomousAccessSignalNode', 'AutonomousAccessDecisionNode', 'AutonomousAccessResultNode'];
|
|
279
255
|
var PREMIUM_NODE_TYPES = ['AutonomousAccessSignalNode', 'AutonomousAccessDecisionNode', 'AutonomousAccessResultNode'];
|
|
280
256
|
/**
|
|
281
257
|
* Analyze if a node is a premium node.
|
|
@@ -353,4 +329,31 @@ function isCustomNode(nodeType) {
|
|
|
353
329
|
|
|
354
330
|
return !ootbNodeTypes.includes(nodeType) && !isPremiumNode(nodeType) && !isCloudOnlyNode(nodeType);
|
|
355
331
|
}
|
|
332
|
+
/**
|
|
333
|
+
* Get a node's classifications, which can be one or multiple of:
|
|
334
|
+
* - standard: can run on any instance of a ForgeRock platform
|
|
335
|
+
* - cloud: utilize nodes, which are exclusively available in the ForgeRock Identity Cloud
|
|
336
|
+
* - premium: utilizes nodes, which come at a premium
|
|
337
|
+
* @param {string} nodeType Node type
|
|
338
|
+
* @returns {NodeClassification[]} an array of one or multiple classifications
|
|
339
|
+
*/
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
function getNodeClassification(nodeType) {
|
|
343
|
+
var classifications = [];
|
|
344
|
+
var premium = isPremiumNode(nodeType);
|
|
345
|
+
var custom = isCustomNode(nodeType);
|
|
346
|
+
var cloud = isCloudOnlyNode(nodeType);
|
|
347
|
+
|
|
348
|
+
if (custom) {
|
|
349
|
+
classifications.push(_OpsTypes.NodeClassification.CUSTOM);
|
|
350
|
+
} else if (cloud) {
|
|
351
|
+
classifications.push(_OpsTypes.NodeClassification.CLOUD);
|
|
352
|
+
} else {
|
|
353
|
+
classifications.push(_OpsTypes.NodeClassification.STANDARD);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
if (premium) classifications.push(_OpsTypes.NodeClassification.PREMIUM);
|
|
357
|
+
return classifications;
|
|
358
|
+
}
|
|
356
359
|
//# sourceMappingURL=NodeOps.js.map
|
package/cjs/ops/NodeOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeOps.js","names":["containerNodes","scriptedNodes","emailTemplateNodes","emptyScriptPlaceholder","getOneLineDescription","nodeObj","nodeRef","description","_id","_type","displayName","getSaml2NodeDependencies","nodeObject","allProviders","allCirclesOfTrust","samlProperties","saml2EntityPromises","samlProperty","entityId","_","last","split","entity","find","providerResponse","getProviderByLocationAndId","location","entityLocation","metaDataResponse","getProviderMetadata","base64EntityXML","encodeBase64Url","push","error","printMessage","message","saml2EntitiesPromisesResults","Promise","all","saml2Entities","saml2Entity","samlEntityIds","map","saml2EntityConfig","circlesOfTrust","filter","circleOfTrust","hasEntityId","trustedProvider","trustedProviders","includes","saml2NodeDependencies","findOrphanedNodes","allNodes","orphanedNodes","types","allJourneys","getTrees","result","errorMessage","errorTypes","createProgressIndicator","undefined","getNodeTypes","response","data","type","nodes","getNodesByType","node","updateProgressIndicator","length","stopProgressIndicator","activeNodes","journey","nodeId","hasOwnProperty","call","nodeType","containerNode","getNode","innerNode","diff","x","orphanedNode","removeOrphanedNodes","errorNodes","deleteNode","deleteError","OOTB_NODE_TYPES_7","OOTB_NODE_TYPES_7_1","concat","OOTB_NODE_TYPES_7_2","OOTB_NODE_TYPES_7_3","OOTB_NODE_TYPES_6_5","OOTB_NODE_TYPES_6","CLOUD_ONLY_NODE_TYPES","PREMIUM_NODE_TYPES","isPremiumNode","isCloudOnlyNode","isCustomNode","ootbNodeTypes","storage","session","getAmVersion","slice"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n InnerNodeRefSkeletonInterface,\n NodeRefSkeletonInterface,\n NodeSkeleton,\n} from '../api/ApiTypes';\nimport storage from '../storage/SessionStorage';\nimport {\n getNode,\n deleteNode,\n getNodeTypes,\n getNodesByType,\n} from '../api/NodeApi';\nimport { getTrees } from '../api/TreeApi';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport {\n getProviderByLocationAndId,\n getProviderMetadata,\n} from '../api/Saml2Api';\nimport { encodeBase64Url } from '../api/utils/Base64';\n\nconst containerNodes = ['PageNode', 'CustomPageNode'];\n\nconst scriptedNodes = [\n 'ConfigProviderNode',\n 'ScriptedDecisionNode',\n 'ClientScriptNode',\n 'SocialProviderHandlerNode',\n 'CustomScriptNode',\n];\n\nconst emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];\n\nconst emptyScriptPlaceholder = '[Empty]';\n\n/**\n * Get a one-line description of the node\n * @param {NodeSkeleton} nodeObj node object to describe\n * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n nodeObj: NodeSkeleton,\n nodeRef?: NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface\n): string {\n const description = `[${nodeObj._id['brightCyan']}] ${nodeObj._type._id}${\n nodeRef ? ' - ' + nodeRef?.displayName['brightYellow'] : ''\n }`;\n return description;\n}\n\n/**\n * Helper to get all SAML2 dependencies for a given node object\n * @param {Object} nodeObject node object\n * @param {[Object]} allProviders array of all saml2 providers objects\n * @param {[Object]} allCirclesOfTrust array of all circle of trust objects\n * @returns {Promise} a promise that resolves to an object containing a saml2 dependencies\n */\nasync function getSaml2NodeDependencies(\n nodeObject,\n allProviders,\n allCirclesOfTrust\n) {\n const samlProperties = ['metaAlias', 'idpEntityId'];\n const saml2EntityPromises = [];\n for (const samlProperty of samlProperties) {\n // In the following line nodeObject[samlProperty] will look like '/alpha/iSPAzure'.\n const entityId =\n samlProperty === 'metaAlias'\n ? _.last(nodeObject[samlProperty].split('/'))\n : nodeObject[samlProperty];\n const entity = _.find(allProviders, { entityId });\n if (entity) {\n try {\n const providerResponse = await getProviderByLocationAndId(\n entity.location,\n entity._id\n );\n /**\n * Adding entityLocation here to the entityResponse because the import tool\n * needs to know whether the saml2 entity is remote or not (this will be removed\n * from the config before importing see updateSaml2Entity and createSaml2Entity functions).\n * Importing a remote saml2 entity is a slightly different request (see createSaml2Entity).\n */\n providerResponse.entityLocation = entity.location;\n\n if (entity.location === 'remote') {\n // get the xml representation of this entity and add it to the entityResponse;\n const metaDataResponse = await getProviderMetadata(\n providerResponse.entityId\n );\n providerResponse.base64EntityXML = encodeBase64Url(metaDataResponse);\n }\n saml2EntityPromises.push(providerResponse);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n }\n }\n try {\n const saml2EntitiesPromisesResults = await Promise.all(saml2EntityPromises);\n const saml2Entities = [];\n for (const saml2Entity of saml2EntitiesPromisesResults) {\n if (saml2Entity) {\n saml2Entities.push(saml2Entity);\n }\n }\n const samlEntityIds = _.map(\n saml2Entities,\n (saml2EntityConfig) => `${saml2EntityConfig.entityId}|saml2`\n );\n const circlesOfTrust = _.filter(allCirclesOfTrust, (circleOfTrust) => {\n let hasEntityId = false;\n for (const trustedProvider of circleOfTrust.trustedProviders) {\n if (!hasEntityId && samlEntityIds.includes(trustedProvider)) {\n hasEntityId = true;\n }\n }\n return hasEntityId;\n });\n const saml2NodeDependencies = {\n saml2Entities,\n circlesOfTrust,\n };\n return saml2NodeDependencies;\n } catch (error) {\n printMessage(error.message, 'error');\n const saml2NodeDependencies = {\n saml2Entities: [],\n circlesOfTrust: [],\n };\n return saml2NodeDependencies;\n }\n}\n\n// export async function getTreeNodes(treeObject) {\n// const nodeList = Object.entries(treeObject.nodes);\n// const results = await Promise.allSettled(\n// nodeList.map(\n// async ([nodeId, nodeInfo]) => await getNode(nodeId, nodeInfo['nodeType'])\n// )\n// );\n// const nodes = results.filter((r) => r.status === 'fulfilled');\n// nodes.map((f) => {\n// return f.status;\n// });\n// const failedList = results.filter((r) => r.status === 'rejected');\n// return nodes;\n// }\n\n/**\n * Find all node configuration objects that are no longer referenced by any tree\n * @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes\n */\nexport async function findOrphanedNodes(): Promise<unknown[]> {\n const allNodes = [];\n const orphanedNodes = [];\n let types = [];\n const allJourneys = (await getTrees()).result;\n let errorMessage = '';\n const errorTypes = [];\n\n createProgressIndicator(\n undefined,\n `Counting total nodes...`,\n 'indeterminate'\n );\n try {\n types = (await getNodeTypes()).result;\n } catch (error) {\n printMessage('Error retrieving all available node types:', 'error');\n printMessage(error.response.data, 'error');\n return [];\n }\n for (const type of types) {\n try {\n // eslint-disable-next-line no-await-in-loop, no-loop-func\n const nodes = (await getNodesByType(type._id)).result;\n for (const node of nodes) {\n allNodes.push(node);\n updateProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`\n );\n }\n } catch (error) {\n errorTypes.push(type._id);\n errorMessage = ` (Skipped type(s): ${errorTypes})`['yellow'];\n updateProgressIndicator(`${allNodes.length} total nodes${errorMessage}`);\n }\n }\n if (errorTypes.length > 0) {\n stopProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`,\n 'warn'\n );\n } else {\n stopProgressIndicator(`${allNodes.length} total nodes`, 'success');\n }\n\n createProgressIndicator(\n undefined,\n 'Counting active nodes...',\n 'indeterminate'\n );\n const activeNodes = [];\n for (const journey of allJourneys) {\n for (const nodeId in journey.nodes) {\n if ({}.hasOwnProperty.call(journey.nodes, nodeId)) {\n activeNodes.push(nodeId);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n const node = journey.nodes[nodeId];\n if (containerNodes.includes(node.nodeType)) {\n const containerNode = await getNode(nodeId, node.nodeType);\n for (const innerNode of containerNode.nodes) {\n activeNodes.push(innerNode._id);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n }\n }\n }\n }\n }\n stopProgressIndicator(`${activeNodes.length} active nodes`, 'success');\n\n createProgressIndicator(\n undefined,\n 'Calculating orphaned nodes...',\n 'indeterminate'\n );\n const diff = allNodes.filter((x) => !activeNodes.includes(x._id));\n for (const orphanedNode of diff) {\n orphanedNodes.push(orphanedNode);\n }\n stopProgressIndicator(`${orphanedNodes.length} orphaned nodes`, 'success');\n return orphanedNodes;\n}\n\n/**\n * Remove orphaned nodes\n * @param {[Object]} orphanedNodes Pass in an array of orphaned node configuration objects to remove\n * @returns {Promise<unknown[]>} a promise that resolves to an array nodes that encountered errors deleting\n */\nexport async function removeOrphanedNodes(\n orphanedNodes: unknown[]\n): Promise<unknown[]> {\n const errorNodes = [];\n createProgressIndicator(orphanedNodes.length, 'Removing orphaned nodes...');\n for (const node of orphanedNodes) {\n updateProgressIndicator(`Removing ${node['_id']}...`);\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteNode(node['_id'], node['_type']['_id']);\n } catch (deleteError) {\n errorNodes.push(node);\n printMessage(` ${deleteError}`, 'error');\n }\n }\n stopProgressIndicator(`Removed ${orphanedNodes.length} orphaned nodes.`);\n return errorNodes;\n}\n\nconst OOTB_NODE_TYPES_7 = [\n 'AcceptTermsAndConditionsNode',\n 'AccountActiveDecisionNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousSessionUpgradeNode',\n 'AnonymousUserNode',\n 'AttributeCollectorNode',\n 'AttributePresentDecisionNode',\n 'AttributeValueDecisionNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'ConsentNode',\n 'CookiePresenceDecisionNode',\n 'CreateObjectNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'DeviceGeoFencingNode',\n 'DeviceLocationMatchNode',\n 'DeviceMatchNode',\n 'DeviceProfileCollectorNode',\n 'DeviceSaveNode',\n 'DeviceTamperingVerificationNode',\n 'DisplayUserNameNode',\n 'EmailSuspendNode',\n 'EmailTemplateNode',\n 'IdentifyExistingUserNode',\n 'IncrementLoginCountNode',\n 'InnerTreeEvaluatorNode',\n 'IotAuthenticationNode',\n 'IotRegistrationNode',\n 'KbaCreateNode',\n 'KbaDecisionNode',\n 'KbaVerifyNode',\n 'LdapDecisionNode',\n 'LoginCountDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PatchObjectNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProfileCompletenessDecisionNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'QueryFilterDecisionNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RequiredAttributesDecisionNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SelectIdPNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'SocialProviderHandlerNode',\n 'TermsAndConditionsDecisionNode',\n 'TimeSinceDecisionNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'ValidatedPasswordNode',\n 'ValidatedUsernameNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnDeviceStorageNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n 'product-CertificateCollectorNode',\n 'product-CertificateUserExtractorNode',\n 'product-CertificateValidationNode',\n 'product-KerberosNode',\n 'product-ReCaptchaNode',\n 'product-Saml2Node',\n 'product-WriteFederationInformationNode',\n];\n\nconst OOTB_NODE_TYPES_7_1 = [\n 'PushRegistrationNode',\n 'GetAuthenticatorAppNode',\n 'MultiFactorRegistrationOptionsNode',\n 'OptOutMultiFactorAuthenticationNode',\n].concat(OOTB_NODE_TYPES_7);\n\nconst OOTB_NODE_TYPES_7_2 = [\n 'OathRegistrationNode',\n 'OathTokenVerifierNode',\n 'PassthroughAuthenticationNode',\n 'ConfigProviderNode',\n 'DebugNode',\n].concat(OOTB_NODE_TYPES_7_1);\n\nconst OOTB_NODE_TYPES_7_3 = [].concat(OOTB_NODE_TYPES_7_2);\n\nconst OOTB_NODE_TYPES_6_5 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst OOTB_NODE_TYPES_6 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst CLOUD_ONLY_NODE_TYPES = ['IdentityStoreDecisionNode'];\n\nconst PREMIUM_NODE_TYPES = [\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\n/**\n * Analyze if a node is a premium node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is premium, false otherwise.\n */\nexport function isPremiumNode(nodeType: string): boolean {\n return PREMIUM_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is a cloud-only node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is cloud-only, false otherwise.\n */\nexport function isCloudOnlyNode(nodeType: string): boolean {\n return CLOUD_ONLY_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is custom.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is custom, false otherwise.\n */\nexport function isCustomNode(nodeType: string): boolean {\n let ootbNodeTypes = [];\n switch (storage.session.getAmVersion()) {\n case '7.1.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_1.slice(0);\n break;\n case '7.2.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_2.slice(0);\n break;\n case '7.3.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_3.slice(0);\n break;\n case '7.0.0':\n case '7.0.1':\n case '7.0.2':\n ootbNodeTypes = OOTB_NODE_TYPES_7.slice(0);\n break;\n case '6.5.3':\n case '6.5.2.3':\n case '6.5.2.2':\n case '6.5.2.1':\n case '6.5.2':\n case '6.5.1':\n case '6.5.0.2':\n case '6.5.0.1':\n ootbNodeTypes = OOTB_NODE_TYPES_6_5.slice(0);\n break;\n case '6.0.0.7':\n case '6.0.0.6':\n case '6.0.0.5':\n case '6.0.0.4':\n case '6.0.0.3':\n case '6.0.0.2':\n case '6.0.0.1':\n case '6.0.0':\n ootbNodeTypes = OOTB_NODE_TYPES_6.slice(0);\n break;\n default:\n return true;\n }\n return (\n !ootbNodeTypes.includes(nodeType) &&\n !isPremiumNode(nodeType) &&\n !isCloudOnlyNode(nodeType)\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeOps.js","names":["containerNodes","scriptedNodes","emailTemplateNodes","emptyScriptPlaceholder","getSaml2NodeDependencies","nodeObject","allProviders","allCirclesOfTrust","samlProperties","saml2EntityPromises","samlProperty","entityId","_","last","split","entity","find","providerResponse","getProviderByLocationAndId","location","_id","entityLocation","metaDataResponse","getProviderMetadata","base64EntityXML","encodeBase64Url","push","error","printMessage","message","saml2EntitiesPromisesResults","Promise","all","saml2Entities","saml2Entity","samlEntityIds","map","saml2EntityConfig","circlesOfTrust","filter","circleOfTrust","hasEntityId","trustedProvider","trustedProviders","includes","saml2NodeDependencies","findOrphanedNodes","allNodes","orphanedNodes","types","allJourneys","getTrees","result","errorMessage","errorTypes","createProgressIndicator","undefined","getNodeTypes","response","data","type","nodes","getNodesByType","node","updateProgressIndicator","length","stopProgressIndicator","activeNodes","journey","nodeId","hasOwnProperty","call","nodeType","containerNode","getNode","innerNode","diff","x","orphanedNode","removeOrphanedNodes","errorNodes","deleteNode","deleteError","OOTB_NODE_TYPES_7","OOTB_NODE_TYPES_7_1","concat","OOTB_NODE_TYPES_7_2","OOTB_NODE_TYPES_7_3","OOTB_NODE_TYPES_6_5","OOTB_NODE_TYPES_6","CLOUD_ONLY_NODE_TYPES","PREMIUM_NODE_TYPES","isPremiumNode","isCloudOnlyNode","isCustomNode","ootbNodeTypes","storage","session","getAmVersion","slice","getNodeClassification","classifications","premium","custom","cloud","NodeClassification","CUSTOM","CLOUD","STANDARD","PREMIUM"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n InnerNodeRefSkeletonInterface,\n NodeRefSkeletonInterface,\n NodeSkeleton,\n} from '../api/ApiTypes';\nimport storage from '../storage/SessionStorage';\nimport {\n getNode,\n deleteNode,\n getNodeTypes,\n getNodesByType,\n} from '../api/NodeApi';\nimport { getTrees } from '../api/TreeApi';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport {\n getProviderByLocationAndId,\n getProviderMetadata,\n} from '../api/Saml2Api';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { NodeClassification } from './OpsTypes';\n\nconst containerNodes = ['PageNode', 'CustomPageNode'];\n\nconst scriptedNodes = [\n 'ConfigProviderNode',\n 'ScriptedDecisionNode',\n 'ClientScriptNode',\n 'SocialProviderHandlerNode',\n 'CustomScriptNode',\n];\n\nconst emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];\n\nconst emptyScriptPlaceholder = '[Empty]';\n\n/**\n * Helper to get all SAML2 dependencies for a given node object\n * @param {Object} nodeObject node object\n * @param {[Object]} allProviders array of all saml2 providers objects\n * @param {[Object]} allCirclesOfTrust array of all circle of trust objects\n * @returns {Promise} a promise that resolves to an object containing a saml2 dependencies\n */\nasync function getSaml2NodeDependencies(\n nodeObject,\n allProviders,\n allCirclesOfTrust\n) {\n const samlProperties = ['metaAlias', 'idpEntityId'];\n const saml2EntityPromises = [];\n for (const samlProperty of samlProperties) {\n // In the following line nodeObject[samlProperty] will look like '/alpha/iSPAzure'.\n const entityId =\n samlProperty === 'metaAlias'\n ? _.last(nodeObject[samlProperty].split('/'))\n : nodeObject[samlProperty];\n const entity = _.find(allProviders, { entityId });\n if (entity) {\n try {\n const providerResponse = await getProviderByLocationAndId(\n entity.location,\n entity._id\n );\n /**\n * Adding entityLocation here to the entityResponse because the import tool\n * needs to know whether the saml2 entity is remote or not (this will be removed\n * from the config before importing see updateSaml2Entity and createSaml2Entity functions).\n * Importing a remote saml2 entity is a slightly different request (see createSaml2Entity).\n */\n providerResponse.entityLocation = entity.location;\n\n if (entity.location === 'remote') {\n // get the xml representation of this entity and add it to the entityResponse;\n const metaDataResponse = await getProviderMetadata(\n providerResponse.entityId\n );\n providerResponse.base64EntityXML = encodeBase64Url(metaDataResponse);\n }\n saml2EntityPromises.push(providerResponse);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n }\n }\n try {\n const saml2EntitiesPromisesResults = await Promise.all(saml2EntityPromises);\n const saml2Entities = [];\n for (const saml2Entity of saml2EntitiesPromisesResults) {\n if (saml2Entity) {\n saml2Entities.push(saml2Entity);\n }\n }\n const samlEntityIds = _.map(\n saml2Entities,\n (saml2EntityConfig) => `${saml2EntityConfig.entityId}|saml2`\n );\n const circlesOfTrust = _.filter(allCirclesOfTrust, (circleOfTrust) => {\n let hasEntityId = false;\n for (const trustedProvider of circleOfTrust.trustedProviders) {\n if (!hasEntityId && samlEntityIds.includes(trustedProvider)) {\n hasEntityId = true;\n }\n }\n return hasEntityId;\n });\n const saml2NodeDependencies = {\n saml2Entities,\n circlesOfTrust,\n };\n return saml2NodeDependencies;\n } catch (error) {\n printMessage(error.message, 'error');\n const saml2NodeDependencies = {\n saml2Entities: [],\n circlesOfTrust: [],\n };\n return saml2NodeDependencies;\n }\n}\n\n/**\n * Find all node configuration objects that are no longer referenced by any tree\n * @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes\n */\nexport async function findOrphanedNodes(): Promise<unknown[]> {\n const allNodes = [];\n const orphanedNodes = [];\n let types = [];\n const allJourneys = (await getTrees()).result;\n let errorMessage = '';\n const errorTypes = [];\n\n createProgressIndicator(\n undefined,\n `Counting total nodes...`,\n 'indeterminate'\n );\n try {\n types = (await getNodeTypes()).result;\n } catch (error) {\n printMessage('Error retrieving all available node types:', 'error');\n printMessage(error.response.data, 'error');\n return [];\n }\n for (const type of types) {\n try {\n // eslint-disable-next-line no-await-in-loop, no-loop-func\n const nodes = (await getNodesByType(type._id)).result;\n for (const node of nodes) {\n allNodes.push(node);\n updateProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`\n );\n }\n } catch (error) {\n errorTypes.push(type._id);\n errorMessage = ` (Skipped type(s): ${errorTypes})`['yellow'];\n updateProgressIndicator(`${allNodes.length} total nodes${errorMessage}`);\n }\n }\n if (errorTypes.length > 0) {\n stopProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`,\n 'warn'\n );\n } else {\n stopProgressIndicator(`${allNodes.length} total nodes`, 'success');\n }\n\n createProgressIndicator(\n undefined,\n 'Counting active nodes...',\n 'indeterminate'\n );\n const activeNodes = [];\n for (const journey of allJourneys) {\n for (const nodeId in journey.nodes) {\n if ({}.hasOwnProperty.call(journey.nodes, nodeId)) {\n activeNodes.push(nodeId);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n const node = journey.nodes[nodeId];\n if (containerNodes.includes(node.nodeType)) {\n const containerNode = await getNode(nodeId, node.nodeType);\n for (const innerNode of containerNode.nodes) {\n activeNodes.push(innerNode._id);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n }\n }\n }\n }\n }\n stopProgressIndicator(`${activeNodes.length} active nodes`, 'success');\n\n createProgressIndicator(\n undefined,\n 'Calculating orphaned nodes...',\n 'indeterminate'\n );\n const diff = allNodes.filter((x) => !activeNodes.includes(x._id));\n for (const orphanedNode of diff) {\n orphanedNodes.push(orphanedNode);\n }\n stopProgressIndicator(`${orphanedNodes.length} orphaned nodes`, 'success');\n return orphanedNodes;\n}\n\n/**\n * Remove orphaned nodes\n * @param {[Object]} orphanedNodes Pass in an array of orphaned node configuration objects to remove\n * @returns {Promise<unknown[]>} a promise that resolves to an array nodes that encountered errors deleting\n */\nexport async function removeOrphanedNodes(\n orphanedNodes: unknown[]\n): Promise<unknown[]> {\n const errorNodes = [];\n createProgressIndicator(orphanedNodes.length, 'Removing orphaned nodes...');\n for (const node of orphanedNodes) {\n updateProgressIndicator(`Removing ${node['_id']}...`);\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteNode(node['_id'], node['_type']['_id']);\n } catch (deleteError) {\n errorNodes.push(node);\n printMessage(` ${deleteError}`, 'error');\n }\n }\n stopProgressIndicator(`Removed ${orphanedNodes.length} orphaned nodes.`);\n return errorNodes;\n}\n\nconst OOTB_NODE_TYPES_7 = [\n 'AcceptTermsAndConditionsNode',\n 'AccountActiveDecisionNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousSessionUpgradeNode',\n 'AnonymousUserNode',\n 'AttributeCollectorNode',\n 'AttributePresentDecisionNode',\n 'AttributeValueDecisionNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'ConsentNode',\n 'CookiePresenceDecisionNode',\n 'CreateObjectNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'DeviceGeoFencingNode',\n 'DeviceLocationMatchNode',\n 'DeviceMatchNode',\n 'DeviceProfileCollectorNode',\n 'DeviceSaveNode',\n 'DeviceTamperingVerificationNode',\n 'DisplayUserNameNode',\n 'EmailSuspendNode',\n 'EmailTemplateNode',\n 'IdentifyExistingUserNode',\n 'IncrementLoginCountNode',\n 'InnerTreeEvaluatorNode',\n 'IotAuthenticationNode',\n 'IotRegistrationNode',\n 'KbaCreateNode',\n 'KbaDecisionNode',\n 'KbaVerifyNode',\n 'LdapDecisionNode',\n 'LoginCountDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PatchObjectNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProfileCompletenessDecisionNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'QueryFilterDecisionNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RequiredAttributesDecisionNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SelectIdPNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'SocialProviderHandlerNode',\n 'TermsAndConditionsDecisionNode',\n 'TimeSinceDecisionNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'ValidatedPasswordNode',\n 'ValidatedUsernameNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnDeviceStorageNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n 'product-CertificateCollectorNode',\n 'product-CertificateUserExtractorNode',\n 'product-CertificateValidationNode',\n 'product-KerberosNode',\n 'product-ReCaptchaNode',\n 'product-Saml2Node',\n 'product-WriteFederationInformationNode',\n];\n\nconst OOTB_NODE_TYPES_7_1 = [\n 'PushRegistrationNode',\n 'GetAuthenticatorAppNode',\n 'MultiFactorRegistrationOptionsNode',\n 'OptOutMultiFactorAuthenticationNode',\n].concat(OOTB_NODE_TYPES_7);\n\nconst OOTB_NODE_TYPES_7_2 = [\n 'OathRegistrationNode',\n 'OathTokenVerifierNode',\n 'PassthroughAuthenticationNode',\n 'ConfigProviderNode',\n 'DebugNode',\n].concat(OOTB_NODE_TYPES_7_1);\n\nconst OOTB_NODE_TYPES_7_3 = [].concat(OOTB_NODE_TYPES_7_2);\n\nconst OOTB_NODE_TYPES_6_5 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst OOTB_NODE_TYPES_6 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst CLOUD_ONLY_NODE_TYPES = [\n 'IdentityStoreDecisionNode',\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\nconst PREMIUM_NODE_TYPES = [\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\n/**\n * Analyze if a node is a premium node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is premium, false otherwise.\n */\nexport function isPremiumNode(nodeType: string): boolean {\n return PREMIUM_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is a cloud-only node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is cloud-only, false otherwise.\n */\nexport function isCloudOnlyNode(nodeType: string): boolean {\n return CLOUD_ONLY_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is custom.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is custom, false otherwise.\n */\nexport function isCustomNode(nodeType: string): boolean {\n let ootbNodeTypes = [];\n switch (storage.session.getAmVersion()) {\n case '7.1.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_1.slice(0);\n break;\n case '7.2.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_2.slice(0);\n break;\n case '7.3.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_3.slice(0);\n break;\n case '7.0.0':\n case '7.0.1':\n case '7.0.2':\n ootbNodeTypes = OOTB_NODE_TYPES_7.slice(0);\n break;\n case '6.5.3':\n case '6.5.2.3':\n case '6.5.2.2':\n case '6.5.2.1':\n case '6.5.2':\n case '6.5.1':\n case '6.5.0.2':\n case '6.5.0.1':\n ootbNodeTypes = OOTB_NODE_TYPES_6_5.slice(0);\n break;\n case '6.0.0.7':\n case '6.0.0.6':\n case '6.0.0.5':\n case '6.0.0.4':\n case '6.0.0.3':\n case '6.0.0.2':\n case '6.0.0.1':\n case '6.0.0':\n ootbNodeTypes = OOTB_NODE_TYPES_6.slice(0);\n break;\n default:\n return true;\n }\n return (\n !ootbNodeTypes.includes(nodeType) &&\n !isPremiumNode(nodeType) &&\n !isCloudOnlyNode(nodeType)\n );\n}\n\n/**\n * Get a node's classifications, which can be one or multiple of:\n * - standard: can run on any instance of a ForgeRock platform\n * - cloud: utilize nodes, which are exclusively available in the ForgeRock Identity Cloud\n * - premium: utilizes nodes, which come at a premium\n * @param {string} nodeType Node type\n * @returns {NodeClassification[]} an array of one or multiple classifications\n */\nexport function getNodeClassification(nodeType: string): NodeClassification[] {\n const classifications: NodeClassification[] = [];\n const premium = isPremiumNode(nodeType);\n const custom = isCustomNode(nodeType);\n const cloud = isCloudOnlyNode(nodeType);\n if (custom) {\n classifications.push(NodeClassification.CUSTOM);\n } else if (cloud) {\n classifications.push(NodeClassification.CLOUD);\n } else {\n classifications.push(NodeClassification.STANDARD);\n }\n if (premium) classifications.push(NodeClassification.PREMIUM);\n return classifications;\n}\n"],"mappings":"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"}
|
package/cjs/ops/OpsTypes.js
CHANGED
|
@@ -3,4 +3,32 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.NodeClassification = exports.JourneyClassification = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Tree export options
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Tree import options
|
|
14
|
+
*/
|
|
15
|
+
var NodeClassification;
|
|
16
|
+
exports.NodeClassification = NodeClassification;
|
|
17
|
+
|
|
18
|
+
(function (NodeClassification) {
|
|
19
|
+
NodeClassification["STANDARD"] = "standard";
|
|
20
|
+
NodeClassification["CUSTOM"] = "custom";
|
|
21
|
+
NodeClassification["CLOUD"] = "cloud";
|
|
22
|
+
NodeClassification["PREMIUM"] = "premium";
|
|
23
|
+
})(NodeClassification || (exports.NodeClassification = NodeClassification = {}));
|
|
24
|
+
|
|
25
|
+
var JourneyClassification;
|
|
26
|
+
exports.JourneyClassification = JourneyClassification;
|
|
27
|
+
|
|
28
|
+
(function (JourneyClassification) {
|
|
29
|
+
JourneyClassification["STANDARD"] = "standard";
|
|
30
|
+
JourneyClassification["CUSTOM"] = "custom";
|
|
31
|
+
JourneyClassification["CLOUD"] = "cloud";
|
|
32
|
+
JourneyClassification["PREMIUM"] = "premium";
|
|
33
|
+
})(JourneyClassification || (exports.JourneyClassification = JourneyClassification = {}));
|
|
6
34
|
//# sourceMappingURL=OpsTypes.js.map
|
package/cjs/ops/OpsTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpsTypes.js","names":[],"sources":["ops/OpsTypes.ts"],"sourcesContent":["import {\n CircleOfTrustSkeleton,\n EmailTemplateSkeleton,\n NodeSkeleton,\n Saml2ProviderSkeleton,\n ScriptSkeleton,\n SocialIdpSkeleton,\n ThemeSkeleton,\n TreeSkeleton,\n} from '../api/ApiTypes';\n\n/**\n * Tree export options\n */\nexport interface TreeExportOptions {\n /**\n * Where applicable, use string arrays to store multi-line text (e.g. scripts).\n */\n useStringArrays: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n /**\n * Verbose output during command execution. May or may not produce additional output.\n */\n verbose: boolean;\n}\n\n/**\n * Tree import options\n */\nexport interface TreeImportOptions {\n /**\n * Generate new UUIDs for all nodes during import.\n */\n reUuid: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n /**\n * Verbose output during command execution. May or may not produce additional output.\n */\n verbose: boolean;\n}\n\nexport interface ExportMetaData {\n origin: string;\n originAmVersion: string;\n exportedBy: string;\n exportDate: string;\n exportTool: string;\n exportToolVersion: string;\n}\n\nexport interface SingleTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n innerNodes?: Record<string, NodeSkeleton>;\n innernodes?: Record<string, NodeSkeleton>;\n nodes: Record<string, NodeSkeleton>;\n scripts: Record<string, ScriptSkeleton>;\n emailTemplates: Record<string, EmailTemplateSkeleton>;\n socialIdentityProviders: Record<string, SocialIdpSkeleton>;\n themes: ThemeSkeleton[];\n saml2Entities: Record<string, Saml2ProviderSkeleton>;\n circlesOfTrust: Record<string, CircleOfTrustSkeleton>;\n tree: TreeSkeleton;\n}\n\nexport interface MultiTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n trees: Record<string, SingleTreeExportInterface>;\n}\n\nexport interface TreeDependencyMapInterface {\n [k: string]: TreeDependencyMapInterface[];\n}\n\nexport interface TreeExportResolverInterface {\n (treeId: string): Promise<SingleTreeExportInterface>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"OpsTypes.js","names":["NodeClassification","JourneyClassification"],"sources":["ops/OpsTypes.ts"],"sourcesContent":["import {\n CircleOfTrustSkeleton,\n EmailTemplateSkeleton,\n NodeSkeleton,\n Saml2ProviderSkeleton,\n ScriptSkeleton,\n SocialIdpSkeleton,\n ThemeSkeleton,\n TreeSkeleton,\n} from '../api/ApiTypes';\n\n/**\n * Tree export options\n */\nexport interface TreeExportOptions {\n /**\n * Where applicable, use string arrays to store multi-line text (e.g. scripts).\n */\n useStringArrays: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n /**\n * Verbose output during command execution. May or may not produce additional output.\n */\n verbose: boolean;\n}\n\n/**\n * Tree import options\n */\nexport interface TreeImportOptions {\n /**\n * Generate new UUIDs for all nodes during import.\n */\n reUuid: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n /**\n * Verbose output during command execution. May or may not produce additional output.\n */\n verbose: boolean;\n}\n\nexport interface ExportMetaData {\n origin: string;\n originAmVersion: string;\n exportedBy: string;\n exportDate: string;\n exportTool: string;\n exportToolVersion: string;\n}\n\nexport interface SingleTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n innerNodes?: Record<string, NodeSkeleton>;\n innernodes?: Record<string, NodeSkeleton>;\n nodes: Record<string, NodeSkeleton>;\n scripts: Record<string, ScriptSkeleton>;\n emailTemplates: Record<string, EmailTemplateSkeleton>;\n socialIdentityProviders: Record<string, SocialIdpSkeleton>;\n themes: ThemeSkeleton[];\n saml2Entities: Record<string, Saml2ProviderSkeleton>;\n circlesOfTrust: Record<string, CircleOfTrustSkeleton>;\n tree: TreeSkeleton;\n}\n\nexport interface MultiTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n trees: Record<string, SingleTreeExportInterface>;\n}\n\nexport interface TreeDependencyMapInterface {\n [k: string]: TreeDependencyMapInterface[];\n}\n\nexport interface TreeExportResolverInterface {\n (treeId: string): Promise<SingleTreeExportInterface>;\n}\n\nexport enum NodeClassification {\n STANDARD = 'standard',\n CUSTOM = 'custom',\n CLOUD = 'cloud',\n PREMIUM = 'premium',\n}\n\nexport enum JourneyClassification {\n STANDARD = 'standard',\n CUSTOM = 'custom',\n CLOUD = 'cloud',\n PREMIUM = 'premium',\n}\n"],"mappings":";;;;;;;AAWA;AACA;AACA;;AAgBA;AACA;AACA;IAoDYA,kB;;;WAAAA,kB;EAAAA,kB;EAAAA,kB;EAAAA,kB;EAAAA,kB;GAAAA,kB,kCAAAA,kB;;IAOAC,qB;;;WAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;GAAAA,qB,qCAAAA,qB"}
|
package/cjs/ops/Saml2Ops.js
CHANGED
|
@@ -8,7 +8,6 @@ exports.exportSaml2Metadata = exportSaml2Metadata;
|
|
|
8
8
|
exports.exportSaml2ProviderToFile = exportSaml2ProviderToFile;
|
|
9
9
|
exports.exportSaml2ProvidersToFile = exportSaml2ProvidersToFile;
|
|
10
10
|
exports.exportSaml2ProvidersToFiles = exportSaml2ProvidersToFiles;
|
|
11
|
-
exports.getOneLineDescription = getOneLineDescription;
|
|
12
11
|
exports.importFirstSaml2ProviderFromFile = importFirstSaml2ProviderFromFile;
|
|
13
12
|
exports.importSaml2ProviderFromFile = importSaml2ProviderFromFile;
|
|
14
13
|
exports.importSaml2ProvidersFromFile = importSaml2ProvidersFromFile;
|
|
@@ -43,29 +42,10 @@ var roleMap = {
|
|
|
43
42
|
serviceProvider: 'SP',
|
|
44
43
|
attributeQueryProvider: 'AttrQuery',
|
|
45
44
|
xacmlPolicyEnforcementPoint: 'XACML PEP'
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Get a one-line description of the saml2 provider object
|
|
49
|
-
* @param {Saml2ProviderSkeleton} saml2ProviderObj saml2 provider object to describe
|
|
50
|
-
* @returns {string} a one-line description
|
|
51
|
-
*/
|
|
45
|
+
}; // use a function vs a template variable to avoid problems in loops
|
|
52
46
|
|
|
53
47
|
exports.roleMap = roleMap;
|
|
54
48
|
|
|
55
|
-
function getOneLineDescription(saml2ProviderObj) {
|
|
56
|
-
var roles = [];
|
|
57
|
-
|
|
58
|
-
for (var [key, value] of Object.entries(roleMap)) {
|
|
59
|
-
if (saml2ProviderObj[key]) {
|
|
60
|
-
roles.push(value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var description = "[".concat(saml2ProviderObj.entityId['brightCyan'], "]").concat(' (' + saml2ProviderObj.entityLocation).concat(roles.length ? ' ' + roles.join(', ') + ')' : ')');
|
|
65
|
-
return description;
|
|
66
|
-
} // use a function vs a template variable to avoid problems in loops
|
|
67
|
-
|
|
68
|
-
|
|
69
49
|
function getFileDataTemplate() {
|
|
70
50
|
return {
|
|
71
51
|
meta: {},
|