@rockcarver/frodo-lib 2.0.0-2 → 2.0.0-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -1
- package/cjs/api/AgentApi.js +64 -16
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/ApiTypes.js +0 -55
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/BaseApi.js +21 -11
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js +7 -14
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
- package/cjs/index.js +6 -0
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AdminOps.js +254 -60
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +352 -108
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +262 -65
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +16 -4
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +163 -40
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +7 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/IdpOps.js +55 -12
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +645 -136
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +96 -24
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +45 -11
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js +0 -23
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +44 -10
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +86 -24
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +72 -18
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +24 -6
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +121 -42
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +73 -17
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js +152 -35
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +20 -5
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js +4 -1
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js +55 -11
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +47 -22
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +12 -5
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +15 -8
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
- package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.mjs +64 -16
- package/esm/api/ApiTypes.mjs +1 -50
- package/esm/api/BaseApi.mjs +21 -11
- package/esm/api/cloud/SecretsApi.mjs +0 -5
- package/esm/api/cloud/SecretsApi.test.mjs +3 -3
- package/esm/index.mjs +1 -1
- package/esm/ops/AdminOps.mjs +254 -60
- package/esm/ops/AgentOps.mjs +352 -104
- package/esm/ops/AuthenticateOps.mjs +262 -65
- package/esm/ops/CirclesOfTrustOps.mjs +16 -4
- package/esm/ops/ConnectionProfileOps.mjs +163 -40
- package/esm/ops/EmailTemplateOps.mjs +5 -0
- package/esm/ops/IdpOps.mjs +55 -12
- package/esm/ops/JourneyOps.mjs +639 -132
- package/esm/ops/NodeOps.mjs +90 -19
- package/esm/ops/OAuth2ClientOps.mjs +45 -11
- package/esm/ops/OpsTypes.mjs +1 -22
- package/esm/ops/OrganizationOps.mjs +44 -10
- package/esm/ops/PolicyOps.mjs +86 -24
- package/esm/ops/PolicySetOps.mjs +72 -18
- package/esm/ops/ResourceTypeOps.mjs +24 -6
- package/esm/ops/Saml2Ops.mjs +120 -39
- package/esm/ops/Saml2Ops.test.mjs +10 -11
- package/esm/ops/ScriptOps.mjs +73 -17
- package/esm/ops/ServiceOps.mjs +152 -35
- package/esm/ops/ThemeOps.mjs +20 -5
- package/esm/ops/cloud/FeatureOps.mjs +4 -1
- package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
- package/esm/ops/cloud/StartupOps.mjs +55 -11
- package/esm/ops/utils/Console.mjs +33 -9
- package/esm/ops/utils/DataProtection.mjs +9 -2
- package/esm/ops/utils/DataProtection.test.mjs +8 -2
- package/esm/ops/utils/ExportImportUtils.mjs +15 -8
- package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
- package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
- package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
- package/package.json +1 -1
- package/types/api/AgentApi.d.ts +6 -6
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +12 -49
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/cloud/SecretsApi.d.ts +1 -4
- package/types/api/cloud/SecretsApi.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +3 -6
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +4 -0
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +10 -5
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +10 -4
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +2 -12
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/PolicyOps.d.ts.map +1 -1
- package/types/ops/PolicySetOps.d.ts.map +1 -1
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +0 -6
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
- package/types/ops/cloud/SecretsOps.d.ts +1 -1
- package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
- package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
- package/types/ops/cloud/StartupOps.d.ts.map +1 -1
- package/types/ops/utils/Console.d.ts +34 -7
- package/types/ops/utils/Console.d.ts.map +1 -1
- package/types/ops/utils/DataProtection.d.ts +5 -1
- package/types/ops/utils/DataProtection.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
- package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
package/cjs/ops/Saml2Ops.js
CHANGED
|
@@ -17,9 +17,7 @@ exports.getSaml2ProviderStub = getSaml2ProviderStub;
|
|
|
17
17
|
exports.getSaml2ProviderStubs = getSaml2ProviderStubs;
|
|
18
18
|
exports.importSaml2Provider = importSaml2Provider;
|
|
19
19
|
exports.importSaml2Providers = importSaml2Providers;
|
|
20
|
-
exports.roleMap = void 0;
|
|
21
20
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
22
|
-
var _ApiTypes = require("../api/ApiTypes");
|
|
23
21
|
var _Saml2Api = require("../api/Saml2Api");
|
|
24
22
|
var _ScriptApi = require("../api/ScriptApi");
|
|
25
23
|
var _Base = require("../api/utils/Base64");
|
|
@@ -207,16 +205,9 @@ class Saml2Ops {
|
|
|
207
205
|
})();
|
|
208
206
|
}
|
|
209
207
|
}
|
|
210
|
-
exports.default = Saml2Ops;
|
|
211
|
-
var roleMap = {
|
|
212
|
-
identityProvider: 'IDP',
|
|
213
|
-
serviceProvider: 'SP',
|
|
214
|
-
attributeQueryProvider: 'AttrQuery',
|
|
215
|
-
xacmlPolicyEnforcementPoint: 'XACML PEP'
|
|
216
|
-
};
|
|
217
208
|
|
|
218
209
|
// use a function vs a template variable to avoid problems in loops
|
|
219
|
-
exports.
|
|
210
|
+
exports.default = Saml2Ops;
|
|
220
211
|
function createSaml2ExportTemplate(_ref) {
|
|
221
212
|
var {
|
|
222
213
|
state
|
|
@@ -382,7 +373,10 @@ function _getSaml2ProviderStub() {
|
|
|
382
373
|
entityId,
|
|
383
374
|
state
|
|
384
375
|
} = _ref7;
|
|
385
|
-
(0, _Console.debugMessage)(
|
|
376
|
+
(0, _Console.debugMessage)({
|
|
377
|
+
message: "Saml2Ops.getSaml2ProviderStub: start [entityId=".concat(entityId, "]"),
|
|
378
|
+
state
|
|
379
|
+
});
|
|
386
380
|
var found = yield (0, _Saml2Api.findProviders)({
|
|
387
381
|
filter: "entityId eq '".concat(entityId, "'"),
|
|
388
382
|
state
|
|
@@ -392,7 +386,10 @@ function _getSaml2ProviderStub() {
|
|
|
392
386
|
throw new Error("No provider with entity id '".concat(entityId, "' found"));
|
|
393
387
|
case 1:
|
|
394
388
|
{
|
|
395
|
-
(0, _Console.debugMessage)(
|
|
389
|
+
(0, _Console.debugMessage)({
|
|
390
|
+
message: "Saml2Ops.getSaml2ProviderStub: end [entityId=".concat(entityId, "]"),
|
|
391
|
+
state
|
|
392
|
+
});
|
|
396
393
|
return found.result[0];
|
|
397
394
|
}
|
|
398
395
|
default:
|
|
@@ -415,7 +412,10 @@ function _getSaml2Provider() {
|
|
|
415
412
|
entityId,
|
|
416
413
|
state
|
|
417
414
|
} = _ref8;
|
|
418
|
-
(0, _Console.debugMessage)(
|
|
415
|
+
(0, _Console.debugMessage)({
|
|
416
|
+
message: "Saml2Ops.getSaml2Provider: start [entityId=".concat(entityId, "]"),
|
|
417
|
+
state
|
|
418
|
+
});
|
|
419
419
|
var stub = yield getSaml2ProviderStub({
|
|
420
420
|
entityId,
|
|
421
421
|
state
|
|
@@ -429,7 +429,10 @@ function _getSaml2Provider() {
|
|
|
429
429
|
entityId64: id,
|
|
430
430
|
state
|
|
431
431
|
});
|
|
432
|
-
(0, _Console.debugMessage)(
|
|
432
|
+
(0, _Console.debugMessage)({
|
|
433
|
+
message: "Saml2Ops.getSaml2Provider: end [entityId=".concat(entityId, "]"),
|
|
434
|
+
state
|
|
435
|
+
});
|
|
433
436
|
return providerData;
|
|
434
437
|
});
|
|
435
438
|
return _getSaml2Provider.apply(this, arguments);
|
|
@@ -447,7 +450,10 @@ function _deleteSaml2Provider() {
|
|
|
447
450
|
entityId,
|
|
448
451
|
state
|
|
449
452
|
} = _ref9;
|
|
450
|
-
(0, _Console.debugMessage)(
|
|
453
|
+
(0, _Console.debugMessage)({
|
|
454
|
+
message: "Saml2Ops.deleteSaml2Provider: start [entityId=".concat(entityId, "]"),
|
|
455
|
+
state
|
|
456
|
+
});
|
|
451
457
|
var stub = yield getSaml2ProviderStub({
|
|
452
458
|
entityId,
|
|
453
459
|
state
|
|
@@ -461,7 +467,10 @@ function _deleteSaml2Provider() {
|
|
|
461
467
|
entityId64: id,
|
|
462
468
|
state
|
|
463
469
|
});
|
|
464
|
-
(0, _Console.debugMessage)(
|
|
470
|
+
(0, _Console.debugMessage)({
|
|
471
|
+
message: "Saml2Ops.deleteSaml2Provider: end [entityId=".concat(entityId, "]"),
|
|
472
|
+
state
|
|
473
|
+
});
|
|
465
474
|
return providerData;
|
|
466
475
|
});
|
|
467
476
|
return _deleteSaml2Provider.apply(this, arguments);
|
|
@@ -479,7 +488,10 @@ function _deleteSaml2Providers() {
|
|
|
479
488
|
var {
|
|
480
489
|
state
|
|
481
490
|
} = _ref10;
|
|
482
|
-
(0, _Console.debugMessage)(
|
|
491
|
+
(0, _Console.debugMessage)({
|
|
492
|
+
message: "Saml2Ops.deleteSaml2Providers: start",
|
|
493
|
+
state
|
|
494
|
+
});
|
|
483
495
|
var providers = [];
|
|
484
496
|
var stubs = yield getSaml2ProviderStubs({
|
|
485
497
|
state
|
|
@@ -492,7 +504,10 @@ function _deleteSaml2Providers() {
|
|
|
492
504
|
});
|
|
493
505
|
providers.push(provider);
|
|
494
506
|
}
|
|
495
|
-
(0, _Console.debugMessage)(
|
|
507
|
+
(0, _Console.debugMessage)({
|
|
508
|
+
message: "Saml2Ops.deleteSaml2Providers: end [deleted ".concat(providers.length, " providers]"),
|
|
509
|
+
state
|
|
510
|
+
});
|
|
496
511
|
return providers;
|
|
497
512
|
});
|
|
498
513
|
return _deleteSaml2Providers.apply(this, arguments);
|
|
@@ -510,7 +525,10 @@ function _exportSaml2Provider() {
|
|
|
510
525
|
entityId,
|
|
511
526
|
state
|
|
512
527
|
} = _ref11;
|
|
513
|
-
(0, _Console.debugMessage)(
|
|
528
|
+
(0, _Console.debugMessage)({
|
|
529
|
+
message: "Saml2Ops.exportSaml2Provider: start [entityId=".concat(entityId, "]"),
|
|
530
|
+
state
|
|
531
|
+
});
|
|
514
532
|
var exportData = createSaml2ExportTemplate({
|
|
515
533
|
state
|
|
516
534
|
});
|
|
@@ -535,9 +553,16 @@ function _exportSaml2Provider() {
|
|
|
535
553
|
state
|
|
536
554
|
});
|
|
537
555
|
} catch (error) {
|
|
538
|
-
(0, _Console.printMessage)(
|
|
556
|
+
(0, _Console.printMessage)({
|
|
557
|
+
message: error.message,
|
|
558
|
+
type: 'error',
|
|
559
|
+
state
|
|
560
|
+
});
|
|
539
561
|
}
|
|
540
|
-
(0, _Console.debugMessage)(
|
|
562
|
+
(0, _Console.debugMessage)({
|
|
563
|
+
message: "Saml2Ops.exportSaml2Provider: end [entityId=".concat(entityId, "]"),
|
|
564
|
+
state
|
|
565
|
+
});
|
|
541
566
|
return exportData;
|
|
542
567
|
});
|
|
543
568
|
return _exportSaml2Provider.apply(this, arguments);
|
|
@@ -574,7 +599,11 @@ function _exportSaml2Providers() {
|
|
|
574
599
|
state
|
|
575
600
|
});
|
|
576
601
|
} catch (error) {
|
|
577
|
-
(0, _Console.printMessage)(
|
|
602
|
+
(0, _Console.printMessage)({
|
|
603
|
+
message: error,
|
|
604
|
+
type: 'error',
|
|
605
|
+
state
|
|
606
|
+
});
|
|
578
607
|
}
|
|
579
608
|
fileData.saml[stub.location][providerData._id] = providerData;
|
|
580
609
|
}
|
|
@@ -598,10 +627,16 @@ function _importDependencies() {
|
|
|
598
627
|
fileData,
|
|
599
628
|
state
|
|
600
629
|
} = _ref13;
|
|
601
|
-
(0, _Console.debugMessage)(
|
|
630
|
+
(0, _Console.debugMessage)({
|
|
631
|
+
message: "Saml2Ops.importDependencies: start",
|
|
632
|
+
state
|
|
633
|
+
});
|
|
602
634
|
var attrMapperScriptId = _lodash.default.get(providerData, ['identityProvider', 'assertionProcessing', 'attributeMapper', 'attributeMapperScript']);
|
|
603
635
|
if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {
|
|
604
|
-
(0, _Console.debugMessage)(
|
|
636
|
+
(0, _Console.debugMessage)({
|
|
637
|
+
message: "Saml2Ops.importDependencies: attributeMapperScript=".concat(attrMapperScriptId),
|
|
638
|
+
state
|
|
639
|
+
});
|
|
605
640
|
var scriptData = _lodash.default.get(fileData, ['script', attrMapperScriptId]);
|
|
606
641
|
scriptData.script = (0, _ExportImportUtils.convertTextArrayToBase64)(scriptData.script);
|
|
607
642
|
yield (0, _ScriptOps.putScript)({
|
|
@@ -612,7 +647,10 @@ function _importDependencies() {
|
|
|
612
647
|
}
|
|
613
648
|
var idpAdapterScriptId = _lodash.default.get(providerData, ['identityProvider', 'advanced', 'idpAdapter', 'idpAdapterScript']);
|
|
614
649
|
if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {
|
|
615
|
-
(0, _Console.debugMessage)(
|
|
650
|
+
(0, _Console.debugMessage)({
|
|
651
|
+
message: "Saml2Ops.importDependencies: idpAdapterScript=".concat(idpAdapterScriptId),
|
|
652
|
+
state
|
|
653
|
+
});
|
|
616
654
|
var _scriptData2 = _lodash.default.get(fileData, ['script', idpAdapterScriptId]);
|
|
617
655
|
_scriptData2.script = (0, _ExportImportUtils.convertTextArrayToBase64)(_scriptData2.script);
|
|
618
656
|
yield (0, _ScriptOps.putScript)({
|
|
@@ -621,16 +659,19 @@ function _importDependencies() {
|
|
|
621
659
|
state
|
|
622
660
|
});
|
|
623
661
|
}
|
|
624
|
-
(0, _Console.debugMessage)(
|
|
662
|
+
(0, _Console.debugMessage)({
|
|
663
|
+
message: "Saml2Ops.importDependencies: end",
|
|
664
|
+
state
|
|
665
|
+
});
|
|
625
666
|
});
|
|
626
667
|
return _importDependencies.apply(this, arguments);
|
|
627
668
|
}
|
|
628
669
|
function getLocation(entityId64, data) {
|
|
629
670
|
if (data.saml.hosted[entityId64]) {
|
|
630
|
-
return
|
|
671
|
+
return 'hosted';
|
|
631
672
|
}
|
|
632
673
|
if (data.saml.remote[entityId64]) {
|
|
633
|
-
return
|
|
674
|
+
return 'remote';
|
|
634
675
|
}
|
|
635
676
|
return undefined;
|
|
636
677
|
}
|
|
@@ -654,10 +695,16 @@ function _importSaml2Provider() {
|
|
|
654
695
|
importData,
|
|
655
696
|
state
|
|
656
697
|
} = _ref14;
|
|
657
|
-
(0, _Console.debugMessage)(
|
|
698
|
+
(0, _Console.debugMessage)({
|
|
699
|
+
message: "Saml2Ops.importSaml2Provider: start",
|
|
700
|
+
state
|
|
701
|
+
});
|
|
658
702
|
var entityId64 = (0, _Base.encode)(entityId, false);
|
|
659
703
|
var location = getLocation(entityId64, importData);
|
|
660
|
-
(0, _Console.debugMessage)(
|
|
704
|
+
(0, _Console.debugMessage)({
|
|
705
|
+
message: "Saml2Ops.importSaml2Provider: entityId=".concat(entityId, ", entityId64=").concat(entityId64, ", location=").concat(location),
|
|
706
|
+
state
|
|
707
|
+
});
|
|
661
708
|
if (location) {
|
|
662
709
|
var providerData = importData.saml[location][entityId64];
|
|
663
710
|
yield importDependencies({
|
|
@@ -666,7 +713,7 @@ function _importSaml2Provider() {
|
|
|
666
713
|
state
|
|
667
714
|
});
|
|
668
715
|
var metaData = null;
|
|
669
|
-
if (location ===
|
|
716
|
+
if (location === 'remote') {
|
|
670
717
|
metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
|
|
671
718
|
}
|
|
672
719
|
try {
|
|
@@ -686,7 +733,10 @@ function _importSaml2Provider() {
|
|
|
686
733
|
} else {
|
|
687
734
|
throw new Error("Provider ".concat(entityId, " not found in import data!"));
|
|
688
735
|
}
|
|
689
|
-
(0, _Console.debugMessage)(
|
|
736
|
+
(0, _Console.debugMessage)({
|
|
737
|
+
message: "Saml2Ops.importSaml2Provider: end",
|
|
738
|
+
state
|
|
739
|
+
});
|
|
690
740
|
return true;
|
|
691
741
|
});
|
|
692
742
|
return _importSaml2Provider.apply(this, arguments);
|
|
@@ -700,7 +750,10 @@ function _importSaml2Providers() {
|
|
|
700
750
|
importData,
|
|
701
751
|
state
|
|
702
752
|
} = _ref15;
|
|
703
|
-
(0, _Console.debugMessage)(
|
|
753
|
+
(0, _Console.debugMessage)({
|
|
754
|
+
message: "Saml2Ops.importSaml2Providers: start",
|
|
755
|
+
state
|
|
756
|
+
});
|
|
704
757
|
var myStatus = {
|
|
705
758
|
total: 0,
|
|
706
759
|
successes: 0,
|
|
@@ -714,8 +767,11 @@ function _importSaml2Providers() {
|
|
|
714
767
|
var providerIds = hostedIds.concat(remoteIds);
|
|
715
768
|
myStatus.total = providerIds.length;
|
|
716
769
|
for (var entityId64 of providerIds) {
|
|
717
|
-
(0, _Console.debugMessage)(
|
|
718
|
-
|
|
770
|
+
(0, _Console.debugMessage)({
|
|
771
|
+
message: "Saml2Ops.importSaml2Providers: entityId=".concat((0, _Base.decodeBase64Url)(entityId64)),
|
|
772
|
+
state
|
|
773
|
+
});
|
|
774
|
+
var location = hostedIds.includes(entityId64) ? 'hosted' : 'remote';
|
|
719
775
|
var entityId = (0, _Base.decode)(entityId64);
|
|
720
776
|
var providerData = importData.saml[location][entityId64];
|
|
721
777
|
try {
|
|
@@ -726,11 +782,19 @@ function _importSaml2Providers() {
|
|
|
726
782
|
});
|
|
727
783
|
} catch (importDependenciesErr) {
|
|
728
784
|
myStatus.warnings += 1;
|
|
729
|
-
(0, _Console.printMessage)(
|
|
730
|
-
|
|
785
|
+
(0, _Console.printMessage)({
|
|
786
|
+
message: "\nWarning importing dependencies for ".concat(entityId),
|
|
787
|
+
state,
|
|
788
|
+
type: 'warn'
|
|
789
|
+
});
|
|
790
|
+
(0, _Console.printMessage)({
|
|
791
|
+
message: importDependenciesErr.response.data,
|
|
792
|
+
type: 'error',
|
|
793
|
+
state
|
|
794
|
+
});
|
|
731
795
|
}
|
|
732
796
|
var metaData = null;
|
|
733
|
-
if (location ===
|
|
797
|
+
if (location === 'remote') {
|
|
734
798
|
metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
|
|
735
799
|
}
|
|
736
800
|
try {
|
|
@@ -752,17 +816,32 @@ function _importSaml2Providers() {
|
|
|
752
816
|
} catch (updateProviderError) {
|
|
753
817
|
var _updateProviderError$;
|
|
754
818
|
myStatus.failures += 1;
|
|
755
|
-
(0, _Console.printMessage)(
|
|
756
|
-
|
|
819
|
+
(0, _Console.printMessage)({
|
|
820
|
+
message: "\nError importing provider ".concat(entityId, ": ").concat(updateProviderError.message),
|
|
821
|
+
state,
|
|
822
|
+
type: 'error'
|
|
823
|
+
});
|
|
824
|
+
(0, _Console.printMessage)({
|
|
825
|
+
message: (_updateProviderError$ = updateProviderError.response) === null || _updateProviderError$ === void 0 ? void 0 : _updateProviderError$.data,
|
|
826
|
+
type: 'error',
|
|
827
|
+
state
|
|
828
|
+
});
|
|
757
829
|
}
|
|
758
830
|
}
|
|
759
831
|
}
|
|
760
832
|
myStatus.message = "".concat(myStatus.successes, "/").concat(myStatus.total, " providers imported.");
|
|
761
833
|
} catch (error) {
|
|
762
834
|
myStatus.failures += 1;
|
|
763
|
-
(0, _Console.printMessage)(
|
|
835
|
+
(0, _Console.printMessage)({
|
|
836
|
+
message: "\nError importing providers ".concat(error.message),
|
|
837
|
+
type: 'error',
|
|
838
|
+
state
|
|
839
|
+
});
|
|
764
840
|
}
|
|
765
|
-
(0, _Console.debugMessage)(
|
|
841
|
+
(0, _Console.debugMessage)({
|
|
842
|
+
message: "Saml2Ops.importSaml2Providers: end",
|
|
843
|
+
state
|
|
844
|
+
});
|
|
766
845
|
return myStatus;
|
|
767
846
|
});
|
|
768
847
|
return _importSaml2Providers.apply(this, arguments);
|
package/cjs/ops/Saml2Ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Saml2Ops.js","names":["_lodash","_interopRequireDefault","require","_ApiTypes","_Saml2Api","_ScriptApi","_Base","_ScriptOps","_Console","_ExportImportUtils","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Saml2Ops","constructor","state","getSaml2ProviderStubs","_this","getProviderByLocationAndId","location","entityId64","_this2","getProviderMetadataUrl","entityId","getProviderMetadata","_this3","getSaml2ProviderStub","_this4","getSaml2Provider","_this5","deleteSaml2Provider","_this6","deleteSaml2Providers","_this7","exportSaml2Provider","_this8","exportSaml2Providers","_this9","importSaml2Provider","importData","_this10","importSaml2Providers","_this11","exports","roleMap","identityProvider","serviceProvider","attributeQueryProvider","xacmlPolicyEnforcementPoint","createSaml2ExportTemplate","_ref","meta","getMetadata","script","saml","hosted","remote","metadata","_x","_getSaml2ProviderStubs","_ref2","result","getProviders","_x2","_getProviderByLocationAndId2","_ref3","_getProviderByLocationAndId","_ref4","_getProviderMetadataUrl","_x3","_getProviderMetadata2","_ref5","_getProviderMetadata","exportDependencies","_x4","_exportDependencies","_ref6","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","scriptId","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","Error","concat","_id","convertBase64UrlTextToArray","encodeBase64Url","_x5","_getSaml2ProviderStub","_ref7","debugMessage","found","findProviders","filter","resultCount","_x6","_getSaml2Provider","_ref8","stub","id","_x7","_deleteSaml2Provider","_ref9","deleteProviderByLocationAndId","_x8","_deleteSaml2Providers","_ref10","providers","stubs","provider","push","length","_x9","_exportSaml2Provider","_ref11","exportData","printMessage","message","_x10","_exportSaml2Providers","_ref12","importDependencies","_x11","_importDependencies","_ref13","convertTextArrayToBase64","putScript","getLocation","data","Saml2ProiderLocation","HOSTED","REMOTE","_x12","_importSaml2Provider","_ref14","encode","metaData","convertTextArrayToBase64Url","createProvider","updateProvider","_x13","_importSaml2Providers","_ref15","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","decodeBase64Url","includes","decode","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport State from '../shared/State';\n\nexport default class Saml2Ops {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state: this.state });\n }\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state: this.state,\n });\n }\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state: this.state });\n }\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state: this.state });\n }\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state: this.state });\n }\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state: this.state });\n }\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state: this.state });\n }\n}\n\nexport const roleMap = {\n identityProvider: 'IDP',\n serviceProvider: 'SP',\n attributeQueryProvider: 'AttrQuery',\n xacmlPolicyEnforcementPoint: 'XACML PEP',\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`);\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`);\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage(`Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage(`Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage(`Saml2Ops.deleteSaml2Providers: start`);\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage(\n `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`\n );\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage(`Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`);\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage(error.message, 'error');\n }\n debugMessage(`Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`);\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage(error, 'error');\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage(`Saml2Ops.importDependencies: start`);\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`\n );\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`\n );\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage(`Saml2Ops.importDependencies: end`);\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return Saml2ProiderLocation.HOSTED;\n }\n if (data.saml.remote[entityId64]) {\n return Saml2ProiderLocation.REMOTE;\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage(`Saml2Ops.importSaml2Provider: start`);\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage(\n `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`\n );\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage(`Saml2Ops.importSaml2Provider: end`);\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage(`Saml2Ops.importSaml2Providers: start`);\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage(\n `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(entityId64)}`\n );\n const location = hostedIds.includes(entityId64)\n ? Saml2ProiderLocation.HOSTED\n : Saml2ProiderLocation.REMOTE;\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage(\n `\\nWarning importing dependencies for ${entityId}`,\n 'warn'\n );\n printMessage(importDependenciesErr.response.data, 'error');\n }\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage(\n `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n 'error'\n );\n printMessage(updateProviderError.response?.data, 'error');\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage(`\\nError importing providers ${error.message}`, 'error');\n }\n debugMessage(`Saml2Ops.importSaml2Providers: end`);\n return myStatus;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Saml2Ops.js","names":["_lodash","_interopRequireDefault","require","_Saml2Api","_ScriptApi","_Base","_ScriptOps","_Console","_ExportImportUtils","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Saml2Ops","constructor","state","getSaml2ProviderStubs","_this","getProviderByLocationAndId","location","entityId64","_this2","getProviderMetadataUrl","entityId","getProviderMetadata","_this3","getSaml2ProviderStub","_this4","getSaml2Provider","_this5","deleteSaml2Provider","_this6","deleteSaml2Providers","_this7","exportSaml2Provider","_this8","exportSaml2Providers","_this9","importSaml2Provider","importData","_this10","importSaml2Providers","_this11","exports","createSaml2ExportTemplate","_ref","meta","getMetadata","script","saml","hosted","remote","metadata","_x","_getSaml2ProviderStubs","_ref2","result","getProviders","_x2","_getProviderByLocationAndId2","_ref3","_getProviderByLocationAndId","_ref4","_getProviderMetadataUrl","_x3","_getProviderMetadata2","_ref5","_getProviderMetadata","exportDependencies","_x4","_exportDependencies","_ref6","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","scriptId","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","Error","concat","_id","convertBase64UrlTextToArray","encodeBase64Url","_x5","_getSaml2ProviderStub","_ref7","debugMessage","message","found","findProviders","filter","resultCount","_x6","_getSaml2Provider","_ref8","stub","id","_x7","_deleteSaml2Provider","_ref9","deleteProviderByLocationAndId","_x8","_deleteSaml2Providers","_ref10","providers","stubs","provider","push","length","_x9","_exportSaml2Provider","_ref11","exportData","printMessage","type","_x10","_exportSaml2Providers","_ref12","importDependencies","_x11","_importDependencies","_ref13","convertTextArrayToBase64","putScript","getLocation","data","_x12","_importSaml2Provider","_ref14","encode","metaData","convertTextArrayToBase64Url","createProvider","updateProvider","_x13","_importSaml2Providers","_ref15","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","decodeBase64Url","includes","decode","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport State from '../shared/State';\n\nexport default class Saml2Ops {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state: this.state });\n }\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state: this.state,\n });\n }\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state: this.state });\n }\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state: this.state });\n }\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state: this.state });\n }\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state: this.state });\n }\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state: this.state });\n }\n}\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`,\n state,\n });\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`,\n state,\n });\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage({ message: `Saml2Ops.deleteSaml2Providers: start`, state });\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage({\n message: `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`,\n state,\n });\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage({ message: error.message, type: 'error', state });\n }\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage({ message: error, type: 'error', state });\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage({ message: `Saml2Ops.importDependencies: start`, state });\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage({ message: `Saml2Ops.importDependencies: end`, state });\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return 'hosted';\n }\n if (data.saml.remote[entityId64]) {\n return 'remote';\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage({ message: `Saml2Ops.importSaml2Provider: start`, state });\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage({\n message: `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`,\n state,\n });\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage({ message: `Saml2Ops.importSaml2Provider: end`, state });\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage({ message: `Saml2Ops.importSaml2Providers: start`, state });\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage({\n message: `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(\n entityId64\n )}`,\n state,\n });\n const location: Saml2ProiderLocation = hostedIds.includes(entityId64)\n ? 'hosted'\n : 'remote';\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage({\n message: `\\nWarning importing dependencies for ${entityId}`,\n state,\n type: 'warn',\n });\n printMessage({\n message: importDependenciesErr.response.data,\n type: 'error',\n state,\n });\n }\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n state,\n type: 'error',\n });\n printMessage({\n message: updateProviderError.response?.data,\n type: 'error',\n state,\n });\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing providers ${error.message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `Saml2Ops.importSaml2Providers: end`, state });\n return myStatus;\n}\n"],"mappings":"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"}
|