@rockcarver/frodo-lib 0.16.2-5 → 0.16.2-7

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/cjs/api/ApiTypes.js.map +1 -1
  3. package/cjs/api/Saml2Api.js +107 -4
  4. package/cjs/api/Saml2Api.js.map +1 -1
  5. package/cjs/api/ServiceApi.js +217 -0
  6. package/cjs/api/ServiceApi.js.map +1 -0
  7. package/cjs/index.js +5 -1
  8. package/cjs/index.js.map +1 -1
  9. package/cjs/ops/AgentOps.js +2 -2
  10. package/cjs/ops/AgentOps.js.map +1 -1
  11. package/cjs/ops/OpsTypes.js.map +1 -1
  12. package/cjs/ops/Saml2Ops.js +317 -9
  13. package/cjs/ops/Saml2Ops.js.map +1 -1
  14. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  15. package/cjs/ops/ServiceOps.js +343 -0
  16. package/cjs/ops/ServiceOps.js.map +1 -0
  17. package/cjs/ops/utils/ExportImportUtils.js +65 -2
  18. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  19. package/esm/api/Saml2Api.mjs +65 -2
  20. package/esm/api/ServiceApi.mjs +130 -0
  21. package/esm/index.mjs +1 -0
  22. package/esm/ops/AgentOps.mjs +2 -2
  23. package/esm/ops/Saml2Ops.mjs +209 -4
  24. package/esm/ops/Saml2Ops.test.mjs +66 -25
  25. package/esm/ops/ServiceOps.mjs +229 -0
  26. package/esm/ops/utils/ExportImportUtils.mjs +41 -2
  27. package/package.json +1 -1
  28. package/types/api/ApiTypes.d.ts +12 -0
  29. package/types/api/ApiTypes.d.ts.map +1 -1
  30. package/types/api/Saml2Api.d.ts +24 -0
  31. package/types/api/Saml2Api.d.ts.map +1 -1
  32. package/types/api/ServiceApi.d.ts +68 -0
  33. package/types/api/ServiceApi.d.ts.map +1 -0
  34. package/types/index.d.ts +1 -0
  35. package/types/index.d.ts.map +1 -1
  36. package/types/ops/AgentOps.d.ts +2 -2
  37. package/types/ops/AgentOps.d.ts.map +1 -1
  38. package/types/ops/OpsTypes.d.ts +5 -1
  39. package/types/ops/OpsTypes.d.ts.map +1 -1
  40. package/types/ops/Saml2Ops.d.ts +40 -0
  41. package/types/ops/Saml2Ops.d.ts.map +1 -1
  42. package/types/ops/ServiceOps.d.ts +50 -0
  43. package/types/ops/ServiceOps.d.ts.map +1 -0
  44. package/types/ops/utils/ExportImportUtils.d.ts +8 -0
  45. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.16.2-7] - 2022-11-16
11
+
12
+ ## [0.16.2-6] - 2022-11-11
13
+
10
14
  ## [0.16.2-5] - 2022-11-10
11
15
 
12
16
  ## [0.16.2-0] - 2022-11-10
@@ -692,7 +696,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
692
696
  - Fixed problem with adding connection profiles
693
697
  - Miscellaneous bug fixes
694
698
 
695
- [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-5...HEAD
699
+ [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-7...HEAD
700
+
701
+ [0.16.2-7]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-6...v0.16.2-7
702
+
703
+ [0.16.2-6]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-5...v0.16.2-6
696
704
 
697
705
  [0.16.2-5]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-0...v0.16.2-5
698
706
 
@@ -1 +1 @@
1
- {"version":3,"file":"ApiTypes.js","names":["ScriptLanguage","ScriptContext","Saml2ProiderLocation"],"sources":["api/ApiTypes.ts"],"sourcesContent":["interface ObjectSkeletonInterface {\n _id: string;\n _rev?: number;\n [k: string]: string | number | boolean | string[] | ObjectSkeletonInterface;\n}\n\nexport interface UiConfigInterface {\n categories: string;\n}\n\nexport interface NodeRefSkeletonInterface {\n connections: Record<string, string>;\n displayName: string;\n nodeType: string;\n x: number;\n y: number;\n}\n\nexport interface InnerNodeRefSkeletonInterface {\n _id: string;\n displayName: string;\n nodeType: string;\n}\n\nexport type TreeSkeleton = ObjectSkeletonInterface & {\n entryNodeId: string;\n nodes: Record<string, NodeRefSkeletonInterface>;\n identityResource?: string;\n uiConfig?: UiConfigInterface;\n enabled?: boolean;\n};\n\nexport type AmServiceType = ObjectSkeletonInterface & {\n name: string;\n};\n\nexport type NodeSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n nodes?: InnerNodeRefSkeletonInterface[];\n tree?: string;\n identityResource?: string;\n};\n\nexport type SocialIdpSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n enabled: boolean;\n};\n\nexport type AgentSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n};\n\nexport type EmailTemplateSkeleton = ObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n};\n\nexport type ThemeSkeleton = ObjectSkeletonInterface & {\n name: string;\n isDefault: boolean;\n linkedTrees: string[];\n};\n\nexport type UiThemeRealmObject = ObjectSkeletonInterface & {\n name: string;\n realm: Map<string, ThemeSkeleton[]>;\n};\n\nexport enum ScriptLanguage {\n GROOVY = 'GROOVY',\n JAVASCRIPT = 'JAVASCRIPT',\n}\n\nexport enum ScriptContext {\n OAUTH2_ACCESS_TOKEN_MODIFICATION = 'OAUTH2_ACCESS_TOKEN_MODIFICATION',\n AUTHENTICATION_CLIENT_SIDE = 'AUTHENTICATION_CLIENT_SIDE',\n AUTHENTICATION_TREE_DECISION_NODE = 'AUTHENTICATION_TREE_DECISION_NODE',\n AUTHENTICATION_SERVER_SIDE = 'AUTHENTICATION_SERVER_SIDE',\n SOCIAL_IDP_PROFILE_TRANSFORMATION = 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n OAUTH2_VALIDATE_SCOPE = 'OAUTH2_VALIDATE_SCOPE',\n CONFIG_PROVIDER_NODE = 'CONFIG_PROVIDER_NODE',\n OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER = 'OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER',\n OAUTH2_EVALUATE_SCOPE = 'OAUTH2_EVALUATE_SCOPE',\n POLICY_CONDITION = 'POLICY_CONDITION',\n OIDC_CLAIMS = 'OIDC_CLAIMS',\n SAML2_IDP_ADAPTER = 'SAML2_IDP_ADAPTER',\n SAML2_IDP_ATTRIBUTE_MAPPER = 'SAML2_IDP_ATTRIBUTE_MAPPER',\n OAUTH2_MAY_ACT = 'OAUTH2_MAY_ACT',\n}\n\nexport type ScriptSkeleton = ObjectSkeletonInterface & {\n name: string;\n description: string;\n isDefault: boolean;\n script: string;\n language: ScriptLanguage;\n context: ScriptContext;\n createdBy: string;\n creationDate: number;\n lastModifiedBy: string;\n lastModifiedDate: number;\n};\n\nexport enum Saml2ProiderLocation {\n HOSTED = 'hosted',\n REMOTE = 'remote',\n}\n\nexport type Saml2ProviderSkeleton = ObjectSkeletonInterface & {\n entityId: string;\n entityLocation: Saml2ProiderLocation;\n serviceProvider: unknown;\n identityProvider: unknown;\n attributeQueryProvider: unknown;\n xacmlPolicyEnforcementPoint: unknown;\n};\n\nexport type CircleOfTrustSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n status: string;\n trustedProviders: string[];\n};\n"],"mappings":";;;;;;IAuEYA,c;;;WAAAA,c;EAAAA,c;EAAAA,c;GAAAA,c,8BAAAA,c;;IAKAC,a;;;WAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;GAAAA,a,6BAAAA,a;;IA8BAC,oB;;;WAAAA,oB;EAAAA,oB;EAAAA,oB;GAAAA,oB,oCAAAA,oB"}
1
+ {"version":3,"file":"ApiTypes.js","names":["ScriptLanguage","ScriptContext","Saml2ProiderLocation"],"sources":["api/ApiTypes.ts"],"sourcesContent":["interface ObjectSkeletonInterface {\n _id: string;\n _rev?: number;\n [k: string]: string | number | boolean | string[] | ObjectSkeletonInterface;\n}\n\nexport interface UiConfigInterface {\n categories: string;\n}\n\nexport interface NodeRefSkeletonInterface {\n connections: Record<string, string>;\n displayName: string;\n nodeType: string;\n x: number;\n y: number;\n}\n\nexport interface InnerNodeRefSkeletonInterface {\n _id: string;\n displayName: string;\n nodeType: string;\n}\n\nexport type TreeSkeleton = ObjectSkeletonInterface & {\n entryNodeId: string;\n nodes: Record<string, NodeRefSkeletonInterface>;\n identityResource?: string;\n uiConfig?: UiConfigInterface;\n enabled?: boolean;\n};\n\nexport type AmServiceType = ObjectSkeletonInterface & {\n name: string;\n};\n\nexport type NodeSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n nodes?: InnerNodeRefSkeletonInterface[];\n tree?: string;\n identityResource?: string;\n};\n\nexport type SocialIdpSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n enabled: boolean;\n};\n\nexport type AmServiceSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n};\n\nexport type AgentSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n};\n\nexport type EmailTemplateSkeleton = ObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n};\n\nexport type ThemeSkeleton = ObjectSkeletonInterface & {\n name: string;\n isDefault: boolean;\n linkedTrees: string[];\n};\n\nexport type UiThemeRealmObject = ObjectSkeletonInterface & {\n name: string;\n realm: Map<string, ThemeSkeleton[]>;\n};\n\nexport enum ScriptLanguage {\n GROOVY = 'GROOVY',\n JAVASCRIPT = 'JAVASCRIPT',\n}\n\nexport enum ScriptContext {\n OAUTH2_ACCESS_TOKEN_MODIFICATION = 'OAUTH2_ACCESS_TOKEN_MODIFICATION',\n AUTHENTICATION_CLIENT_SIDE = 'AUTHENTICATION_CLIENT_SIDE',\n AUTHENTICATION_TREE_DECISION_NODE = 'AUTHENTICATION_TREE_DECISION_NODE',\n AUTHENTICATION_SERVER_SIDE = 'AUTHENTICATION_SERVER_SIDE',\n SOCIAL_IDP_PROFILE_TRANSFORMATION = 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n OAUTH2_VALIDATE_SCOPE = 'OAUTH2_VALIDATE_SCOPE',\n CONFIG_PROVIDER_NODE = 'CONFIG_PROVIDER_NODE',\n OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER = 'OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER',\n OAUTH2_EVALUATE_SCOPE = 'OAUTH2_EVALUATE_SCOPE',\n POLICY_CONDITION = 'POLICY_CONDITION',\n OIDC_CLAIMS = 'OIDC_CLAIMS',\n SAML2_IDP_ADAPTER = 'SAML2_IDP_ADAPTER',\n SAML2_IDP_ATTRIBUTE_MAPPER = 'SAML2_IDP_ATTRIBUTE_MAPPER',\n OAUTH2_MAY_ACT = 'OAUTH2_MAY_ACT',\n}\n\nexport type ScriptSkeleton = ObjectSkeletonInterface & {\n name: string;\n description: string;\n isDefault: boolean;\n script: string;\n language: ScriptLanguage;\n context: ScriptContext;\n createdBy: string;\n creationDate: number;\n lastModifiedBy: string;\n lastModifiedDate: number;\n};\n\nexport enum Saml2ProiderLocation {\n HOSTED = 'hosted',\n REMOTE = 'remote',\n}\n\nexport type Saml2ProviderSkeleton = ObjectSkeletonInterface & {\n entityId: string;\n entityLocation: Saml2ProiderLocation;\n serviceProvider: unknown;\n identityProvider: unknown;\n attributeQueryProvider: unknown;\n xacmlPolicyEnforcementPoint: unknown;\n};\n\nexport type CircleOfTrustSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n status: string;\n trustedProviders: string[];\n};\n\nexport type PagedResult<Result> = {\n result: Result[];\n resultCount: number;\n pagedResultsCookie: string;\n totalPagedResultsPolicy: 'EXACT';\n totalPagedResults: number;\n remainingPagedResults: number;\n};\n"],"mappings":";;;;;;IA6EYA,c;;;WAAAA,c;EAAAA,c;EAAAA,c;GAAAA,c,8BAAAA,c;;IAKAC,a;;;WAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;EAAAA,a;GAAAA,a,6BAAAA,a;;IA8BAC,oB;;;WAAAA,oB;EAAAA,oB;EAAAA,oB;GAAAA,oB,oCAAAA,oB"}
@@ -4,24 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createProvider = createProvider;
7
+ exports.deleteProvider = deleteProvider;
7
8
  exports.findProviders = findProviders;
8
9
  exports.getProvider = getProvider;
9
10
  exports.getProviderByLocationAndId = getProviderByLocationAndId;
10
11
  exports.getProviderMetadata = getProviderMetadata;
11
12
  exports.getProviderMetadataUrl = getProviderMetadataUrl;
12
13
  exports.getProviders = getProviders;
14
+ exports.getRawProvider = getRawProvider;
15
+ exports.getRawProviders = getRawProviders;
16
+ exports.putRawProvider = putRawProvider;
13
17
  exports.updateProvider = updateProvider;
14
18
 
19
+ var _lodash = _interopRequireDefault(require("lodash"));
20
+
15
21
  var _util = _interopRequireDefault(require("util"));
16
22
 
17
- var _lodash = _interopRequireDefault(require("lodash"));
23
+ var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
18
24
 
19
25
  var _BaseApi = require("./BaseApi");
20
26
 
21
27
  var _ApiUtils = require("./utils/ApiUtils");
22
28
 
23
- var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
24
-
25
29
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
30
 
27
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,6 +38,8 @@ var createRemoteProviderURLTemplate = '%s/json%s/realm-config/saml2/remote/?_act
34
38
  var queryAllProvidersURLTemplate = '%s/json%s/realm-config/saml2?_queryFilter=true';
35
39
  var queryProvidersByEntityIdURLTemplate = '%s/json%s/realm-config/saml2?_queryFilter=%s&_fields=%s';
36
40
  var metadataByEntityIdURLTemplate = '%s/saml2/jsp/exportmetadata.jsp?entityid=%s&realm=%s';
41
+ var samlApplicationListURLTemplateRaw = '%s/json%s/realm-config/federation/entityproviders/saml2?_queryFilter=true';
42
+ var samlApplicationListURLTemplateEntityIdRaw = '%s/json%s/realm-config/federation/entityproviders/saml2/%s';
37
43
  var apiVersion = 'protocol=2.1,resource=1.0';
38
44
 
39
45
  var getApiConfig = () => {
@@ -233,7 +239,14 @@ function _createProvider() {
233
239
 
234
240
  function updateProvider(_x8, _x9) {
235
241
  return _updateProvider.apply(this, arguments);
236
- }
242
+ } // Contributions using legacy APIs. Need to investigate if those will be deprecated in the future
243
+
244
+ /**
245
+ * Deletes a SAML2 entity provider by entity id
246
+ * @param {string} entityId Provider entity id
247
+ * @returns {Promise} a promise that resolves to a provider object
248
+ */
249
+
237
250
 
238
251
  function _updateProvider() {
239
252
  _updateProvider = _asyncToGenerator(function* (location, providerData) {
@@ -248,4 +261,94 @@ function _updateProvider() {
248
261
  });
249
262
  return _updateProvider.apply(this, arguments);
250
263
  }
264
+
265
+ function deleteProvider(_x10) {
266
+ return _deleteProvider.apply(this, arguments);
267
+ }
268
+ /**
269
+ * Retrieves all entity providers using the legacy federation enpoints.
270
+ * @returns {Promise} a promise that resolves to an object containing an array of providers
271
+ */
272
+
273
+
274
+ function _deleteProvider() {
275
+ _deleteProvider = _asyncToGenerator(function* (entityId) {
276
+ var urlString = _util.default.format(samlApplicationListURLTemplateEntityIdRaw, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), entityId);
277
+
278
+ var {
279
+ data
280
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).delete(urlString, {
281
+ withCredentials: true
282
+ });
283
+ return data;
284
+ });
285
+ return _deleteProvider.apply(this, arguments);
286
+ }
287
+
288
+ function getRawProviders() {
289
+ return _getRawProviders.apply(this, arguments);
290
+ }
291
+ /**
292
+ * Gets the data for an entity provider including the raw XML.
293
+ * @param {string} id The entity provider id
294
+ * @returns Promise that when resolved includes the configuration and raw xml for a SAML entity provider
295
+ */
296
+
297
+
298
+ function _getRawProviders() {
299
+ _getRawProviders = _asyncToGenerator(function* () {
300
+ var urlString = _util.default.format(samlApplicationListURLTemplateRaw, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)());
301
+
302
+ var {
303
+ data
304
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
305
+ withCredentials: true
306
+ });
307
+ return data;
308
+ });
309
+ return _getRawProviders.apply(this, arguments);
310
+ }
311
+
312
+ function getRawProvider(_x11) {
313
+ return _getRawProvider.apply(this, arguments);
314
+ }
315
+ /**
316
+ * Stores a new SAML2 entity provider
317
+ * @param {string} id The entity provider id
318
+ * @param {string} entityData The actual data containing the entity provider configuration
319
+ * @returns {Promise} Promise that resolves to a provider object
320
+ */
321
+
322
+
323
+ function _getRawProvider() {
324
+ _getRawProvider = _asyncToGenerator(function* (entityId) {
325
+ var urlString = _util.default.format(samlApplicationListURLTemplateEntityIdRaw, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), entityId);
326
+
327
+ var {
328
+ data
329
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
330
+ withCredentials: true
331
+ });
332
+ return data;
333
+ });
334
+ return _getRawProvider.apply(this, arguments);
335
+ }
336
+
337
+ function putRawProvider(_x12, _x13) {
338
+ return _putRawProvider.apply(this, arguments);
339
+ }
340
+
341
+ function _putRawProvider() {
342
+ _putRawProvider = _asyncToGenerator(function* (id, entityData) {
343
+ var urlString = _util.default.format(samlApplicationListURLTemplateEntityIdRaw, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), id);
344
+
345
+ var {
346
+ data
347
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).put(urlString, entityData, {
348
+ withCredentials: true
349
+ });
350
+ return data;
351
+ });
352
+ return _putRawProvider.apply(this, arguments);
353
+ }
251
354
  //# sourceMappingURL=Saml2Api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Saml2Api.js","names":["providerByLocationAndIdURLTemplate","createHostedProviderURLTemplate","createRemoteProviderURLTemplate","queryAllProvidersURLTemplate","queryProvidersByEntityIdURLTemplate","metadataByEntityIdURLTemplate","apiVersion","getApiConfig","configPath","getCurrentRealmPath","path","getProviders","urlString","util","format","storage","session","getTenant","data","generateAmApi","get","withCredentials","findProviders","filter","fields","encodeURIComponent","getProviderByLocationAndId","location","entityId64","getProvider","entityId","response","resultCount","Error","result","id","_id","getProviderMetadataUrl","getRealm","getProviderMetadata","createProvider","providerData","metaData","postData","_","cloneDeep","standardMetadata","post","updateProvider","put"],"sources":["api/Saml2Api.ts"],"sourcesContent":["import util from 'util';\nimport _ from 'lodash';\nimport { generateAmApi } from './BaseApi';\nimport { getCurrentRealmPath } from './utils/ApiUtils';\nimport storage from '../storage/SessionStorage';\n\nconst providerByLocationAndIdURLTemplate = '%s/json%s/realm-config/saml2/%s/%s';\nconst createHostedProviderURLTemplate =\n '%s/json%s/realm-config/saml2/hosted/?_action=create';\nconst createRemoteProviderURLTemplate =\n '%s/json%s/realm-config/saml2/remote/?_action=importEntity';\nconst queryAllProvidersURLTemplate =\n '%s/json%s/realm-config/saml2?_queryFilter=true';\nconst queryProvidersByEntityIdURLTemplate =\n '%s/json%s/realm-config/saml2?_queryFilter=%s&_fields=%s';\nconst metadataByEntityIdURLTemplate =\n '%s/saml2/jsp/exportmetadata.jsp?entityid=%s&realm=%s';\nconst apiVersion = 'protocol=2.1,resource=1.0';\nconst getApiConfig = () => {\n const configPath = getCurrentRealmPath();\n return {\n path: `${configPath}/realm-config/saml2`,\n apiVersion,\n };\n};\n\n/**\n * Get all SAML2 entity providers\n * @returns {Promise} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getProviders() {\n const urlString = util.format(\n queryAllProvidersURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Find all providers matching the filter and return the requested fields\n * @param {string} filter CREST filter string, eg \"entityId+eq+'${entityId}'\" or \"true\" for all providers\n * @param {string} fields Comma-delimited list of fields to include in the response\n * @returns {Promise} a promise that resolves to an object containing an array of saml2 entities\n */\nexport async function findProviders(filter = 'true', fields = '*') {\n const urlString = util.format(\n queryProvidersByEntityIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n encodeURIComponent(filter),\n fields\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\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 provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId(\n location: string,\n entityId64: string\n) {\n const urlString = util.format(\n providerByLocationAndIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n location,\n entityId64\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Get SAML2 entity provider by entity id\n * @param {string} entityId Provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object or null\n */\nexport async function getProvider(entityId) {\n const response = await findProviders(`entityId eq '${entityId}'`, 'location');\n switch (response.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n const { location } = response.result[0];\n const id = response.result[0]._id;\n return getProviderByLocationAndId(location, id);\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\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 */\nexport function getProviderMetadataUrl(entityId) {\n return util.format(\n metadataByEntityIdURLTemplate,\n storage.session.getTenant(),\n encodeURIComponent(entityId),\n storage.session.getRealm()\n );\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {String} entityId SAML2 entity id\n * @returns {Promise} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata(entityId) {\n const { data } = await generateAmApi(getApiConfig()).get(\n getProviderMetadataUrl(entityId),\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Create a SAML2 entity provider\n * @param {String} location 'hosted' or 'remote'\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {String} metaData Base64-encoded metadata XML. Only required for remote providers\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function createProvider(location, providerData, metaData) {\n let postData = _.cloneDeep(providerData);\n let urlString = util.format(\n createHostedProviderURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n\n if (location === 'remote') {\n /**\n * Remote entity providers must be created using XML metadata\n */\n urlString = util.format(\n createRemoteProviderURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n postData = {\n standardMetadata: metaData,\n };\n }\n\n const { data } = await generateAmApi(getApiConfig()).post(\n urlString,\n postData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Update SAML2 entity provider\n * @param {String} location Entity provider location (hosted or remote)\n * @param {Object} providerData Object representing a SAML entity provider\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function updateProvider(location, providerData) {\n const urlString = util.format(\n providerByLocationAndIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n location,\n providerData._id\n );\n const { data } = await generateAmApi(getApiConfig()).put(\n urlString,\n providerData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Saml2Api.js","names":["providerByLocationAndIdURLTemplate","createHostedProviderURLTemplate","createRemoteProviderURLTemplate","queryAllProvidersURLTemplate","queryProvidersByEntityIdURLTemplate","metadataByEntityIdURLTemplate","samlApplicationListURLTemplateRaw","samlApplicationListURLTemplateEntityIdRaw","apiVersion","getApiConfig","configPath","getCurrentRealmPath","path","getProviders","urlString","util","format","storage","session","getTenant","data","generateAmApi","get","withCredentials","findProviders","filter","fields","encodeURIComponent","getProviderByLocationAndId","location","entityId64","getProvider","entityId","response","resultCount","Error","result","id","_id","getProviderMetadataUrl","getRealm","getProviderMetadata","createProvider","providerData","metaData","postData","_","cloneDeep","standardMetadata","post","updateProvider","put","deleteProvider","delete","getRawProviders","getRawProvider","putRawProvider","entityData"],"sources":["api/Saml2Api.ts"],"sourcesContent":["import _ from 'lodash';\nimport util from 'util';\nimport storage from '../storage/SessionStorage';\nimport { generateAmApi } from './BaseApi';\nimport { getCurrentRealmPath } from './utils/ApiUtils';\n\nconst providerByLocationAndIdURLTemplate = '%s/json%s/realm-config/saml2/%s/%s';\nconst createHostedProviderURLTemplate =\n '%s/json%s/realm-config/saml2/hosted/?_action=create';\nconst createRemoteProviderURLTemplate =\n '%s/json%s/realm-config/saml2/remote/?_action=importEntity';\nconst queryAllProvidersURLTemplate =\n '%s/json%s/realm-config/saml2?_queryFilter=true';\nconst queryProvidersByEntityIdURLTemplate =\n '%s/json%s/realm-config/saml2?_queryFilter=%s&_fields=%s';\nconst metadataByEntityIdURLTemplate =\n '%s/saml2/jsp/exportmetadata.jsp?entityid=%s&realm=%s';\nconst samlApplicationListURLTemplateRaw =\n '%s/json%s/realm-config/federation/entityproviders/saml2?_queryFilter=true';\nconst samlApplicationListURLTemplateEntityIdRaw =\n '%s/json%s/realm-config/federation/entityproviders/saml2/%s';\nconst apiVersion = 'protocol=2.1,resource=1.0';\nconst getApiConfig = () => {\n const configPath = getCurrentRealmPath();\n return {\n path: `${configPath}/realm-config/saml2`,\n apiVersion,\n };\n};\n\n/**\n * Get all SAML2 entity providers\n * @returns {Promise} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getProviders() {\n const urlString = util.format(\n queryAllProvidersURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Find all providers matching the filter and return the requested fields\n * @param {string} filter CREST filter string, eg \"entityId+eq+'${entityId}'\" or \"true\" for all providers\n * @param {string} fields Comma-delimited list of fields to include in the response\n * @returns {Promise} a promise that resolves to an object containing an array of saml2 entities\n */\nexport async function findProviders(filter = 'true', fields = '*') {\n const urlString = util.format(\n queryProvidersByEntityIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n encodeURIComponent(filter),\n fields\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\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 provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId(\n location: string,\n entityId64: string\n) {\n const urlString = util.format(\n providerByLocationAndIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n location,\n entityId64\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Get SAML2 entity provider by entity id\n * @param {string} entityId Provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object or null\n */\nexport async function getProvider(entityId) {\n const response = await findProviders(`entityId eq '${entityId}'`, 'location');\n switch (response.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n const { location } = response.result[0];\n const id = response.result[0]._id;\n return getProviderByLocationAndId(location, id);\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\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 */\nexport function getProviderMetadataUrl(entityId) {\n return util.format(\n metadataByEntityIdURLTemplate,\n storage.session.getTenant(),\n encodeURIComponent(entityId),\n storage.session.getRealm()\n );\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {String} entityId SAML2 entity id\n * @returns {Promise} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata(entityId) {\n const { data } = await generateAmApi(getApiConfig()).get(\n getProviderMetadataUrl(entityId),\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Create a SAML2 entity provider\n * @param {String} location 'hosted' or 'remote'\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {String} metaData Base64-encoded metadata XML. Only required for remote providers\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function createProvider(location, providerData, metaData) {\n let postData = _.cloneDeep(providerData);\n let urlString = util.format(\n createHostedProviderURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n\n if (location === 'remote') {\n /**\n * Remote entity providers must be created using XML metadata\n */\n urlString = util.format(\n createRemoteProviderURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n postData = {\n standardMetadata: metaData,\n };\n }\n\n const { data } = await generateAmApi(getApiConfig()).post(\n urlString,\n postData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Update SAML2 entity provider\n * @param {String} location Entity provider location (hosted or remote)\n * @param {Object} providerData Object representing a SAML entity provider\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function updateProvider(location, providerData) {\n const urlString = util.format(\n providerByLocationAndIdURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n location,\n providerData._id\n );\n const { data } = await generateAmApi(getApiConfig()).put(\n urlString,\n providerData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n// Contributions using legacy APIs. Need to investigate if those will be deprecated in the future\n\n/**\n * Deletes a SAML2 entity provider by entity id\n * @param {string} entityId Provider entity id\n * @returns {Promise} a promise that resolves to a provider object\n */\nexport async function deleteProvider(entityId) {\n const urlString = util.format(\n samlApplicationListURLTemplateEntityIdRaw,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n entityId\n );\n const { data } = await generateAmApi(getApiConfig()).delete(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Retrieves all entity providers using the legacy federation enpoints.\n * @returns {Promise} a promise that resolves to an object containing an array of providers\n */\nexport async function getRawProviders() {\n const urlString = util.format(\n samlApplicationListURLTemplateRaw,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Gets the data for an entity provider including the raw XML.\n * @param {string} id The entity provider id\n * @returns Promise that when resolved includes the configuration and raw xml for a SAML entity provider\n */\nexport async function getRawProvider(entityId) {\n const urlString = util.format(\n samlApplicationListURLTemplateEntityIdRaw,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n entityId\n );\n const { data } = await generateAmApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Stores a new SAML2 entity provider\n * @param {string} id The entity provider id\n * @param {string} entityData The actual data containing the entity provider configuration\n * @returns {Promise} Promise that resolves to a provider object\n */\nexport async function putRawProvider(id, entityData) {\n const urlString = util.format(\n samlApplicationListURLTemplateEntityIdRaw,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n id\n );\n const { data } = await generateAmApi(getApiConfig()).put(\n urlString,\n entityData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deleteService = deleteService;
7
+ exports.deleteServiceNextDescendent = deleteServiceNextDescendent;
8
+ exports.getListOfServices = getListOfServices;
9
+ exports.getService = getService;
10
+ exports.getServiceDescendents = getServiceDescendents;
11
+ exports.putService = putService;
12
+ exports.putServiceNextDescendent = putServiceNextDescendent;
13
+
14
+ var _util = _interopRequireDefault(require("util"));
15
+
16
+ var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
17
+
18
+ var _BaseApi = require("./BaseApi");
19
+
20
+ var _ApiUtils = require("./utils/ApiUtils");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ 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); } }
25
+
26
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
27
+
28
+ var serviceURLTemplate = '%s/json%s/realm-config/services/%s';
29
+ var serviceURLNextDescendentsTemplate = '%s/json%s/realm-config/services/%s?_action=nextdescendents';
30
+ var serviceURLNextDescendentTemplate = '%s/json%s/realm-config/services/%s/%s/%s';
31
+ var serviceListURLTemplate = '%s/json%s/realm-config/services?_queryFilter=true';
32
+ var apiVersion = 'protocol=2.0,resource=1.0';
33
+
34
+ function getApiConfig() {
35
+ var configPath = (0, _ApiUtils.getCurrentRealmPath)();
36
+ return {
37
+ path: "".concat(configPath, "/realm-config/services"),
38
+ apiVersion
39
+ };
40
+ }
41
+
42
+ /**
43
+ * Get a list of services
44
+ * @returns {Promise<ServiceListItem[]>} a promise resolving to an array of service list items.
45
+ */
46
+ function getListOfServices() {
47
+ return _getListOfServices.apply(this, arguments);
48
+ }
49
+ /**
50
+ * Get service
51
+ * @param {string} serviceId servide id
52
+ * @returns {Promise<AmService>} a promise resolving to a service object
53
+ */
54
+
55
+
56
+ function _getListOfServices() {
57
+ _getListOfServices = _asyncToGenerator(function* () {
58
+ var urlString = _util.default.format(serviceListURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)());
59
+
60
+ var {
61
+ data
62
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
63
+ withCredentials: true
64
+ });
65
+ return data;
66
+ });
67
+ return _getListOfServices.apply(this, arguments);
68
+ }
69
+
70
+ function getService(_x) {
71
+ return _getService.apply(this, arguments);
72
+ }
73
+ /**
74
+ * Get a service's decendents (applicable for structured services only, e.g. SocialIdentityProviders)
75
+ * @param {string} serviceId service id
76
+ * @returns {Promise<ServiceNextDescendent[]>} a promise resolving to an array of the service's next decendents
77
+ */
78
+
79
+
80
+ function _getService() {
81
+ _getService = _asyncToGenerator(function* (serviceId) {
82
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
83
+
84
+ var {
85
+ data
86
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
87
+ withCredentials: true
88
+ });
89
+ return data;
90
+ });
91
+ return _getService.apply(this, arguments);
92
+ }
93
+
94
+ function getServiceDescendents(_x2) {
95
+ return _getServiceDescendents.apply(this, arguments);
96
+ }
97
+ /**
98
+ * Create or update a service
99
+ * @param {string} serviceId service id
100
+ * @param {AmService} serviceData service configuration
101
+ * @returns {Promise<AmService>} a promise resolving to a service object
102
+ */
103
+
104
+
105
+ function _getServiceDescendents() {
106
+ _getServiceDescendents = _asyncToGenerator(function* (serviceId) {
107
+ var urlString = _util.default.format(serviceURLNextDescendentsTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
108
+
109
+ var {
110
+ data
111
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).post(urlString, {
112
+ withCredentials: true
113
+ });
114
+ return data.result;
115
+ });
116
+ return _getServiceDescendents.apply(this, arguments);
117
+ }
118
+
119
+ function putService(_x3, _x4) {
120
+ return _putService.apply(this, arguments);
121
+ }
122
+ /**
123
+ * Create or update a service next descendent instance
124
+ * @param {string} serviceId service id
125
+ * @param {string} serviceType service type
126
+ * @param {string} serviceNextDescendentId service instance id
127
+ * @param {ServiceNextDescendent} serviceNextDescendentData service next descendent configuration
128
+ * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
129
+ */
130
+
131
+
132
+ function _putService() {
133
+ _putService = _asyncToGenerator(function* (serviceId, serviceData) {
134
+ var realm = _SessionStorage.default.session.getRealm() === '/' ? '' : _SessionStorage.default.session.getRealm();
135
+
136
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), realm, serviceId);
137
+
138
+ var {
139
+ data
140
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).put(urlString, serviceData, {
141
+ withCredentials: true
142
+ });
143
+ return data;
144
+ });
145
+ return _putService.apply(this, arguments);
146
+ }
147
+
148
+ function putServiceNextDescendent(_x5, _x6, _x7, _x8) {
149
+ return _putServiceNextDescendent.apply(this, arguments);
150
+ }
151
+ /**
152
+ * Delete service
153
+ * @param {string} serviceId service id
154
+ * @returns {Promise<AmService>} a promise resolving to a service object
155
+ */
156
+
157
+
158
+ function _putServiceNextDescendent() {
159
+ _putServiceNextDescendent = _asyncToGenerator(function* (serviceId, serviceType, serviceNextDescendentId, serviceNextDescendentData) {
160
+ var realm = _SessionStorage.default.session.getRealm() === '/' ? '' : _SessionStorage.default.session.getRealm();
161
+
162
+ var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), realm, serviceId, serviceType, serviceNextDescendentId);
163
+
164
+ var {
165
+ data
166
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).put(urlString, serviceNextDescendentData, {
167
+ withCredentials: true
168
+ });
169
+ return data;
170
+ });
171
+ return _putServiceNextDescendent.apply(this, arguments);
172
+ }
173
+
174
+ function deleteService(_x9) {
175
+ return _deleteService.apply(this, arguments);
176
+ }
177
+ /**
178
+ * Delete service next descendent
179
+ * @param {string} serviceId service id
180
+ * @param {string} serviceType service type
181
+ * @param {string} serviceNextDescendentId service instance id
182
+ * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
183
+ */
184
+
185
+
186
+ function _deleteService() {
187
+ _deleteService = _asyncToGenerator(function* (serviceId) {
188
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
189
+
190
+ var {
191
+ data
192
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).delete(urlString, {
193
+ withCredentials: true
194
+ });
195
+ return data;
196
+ });
197
+ return _deleteService.apply(this, arguments);
198
+ }
199
+
200
+ function deleteServiceNextDescendent(_x10, _x11, _x12) {
201
+ return _deleteServiceNextDescendent.apply(this, arguments);
202
+ }
203
+
204
+ function _deleteServiceNextDescendent() {
205
+ _deleteServiceNextDescendent = _asyncToGenerator(function* (serviceId, serviceType, serviceNextDescendentId) {
206
+ var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId, serviceType, serviceNextDescendentId);
207
+
208
+ var {
209
+ data
210
+ } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).delete(urlString, {
211
+ withCredentials: true
212
+ });
213
+ return data;
214
+ });
215
+ return _deleteServiceNextDescendent.apply(this, arguments);
216
+ }
217
+ //# sourceMappingURL=ServiceApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceApi.js","names":["serviceURLTemplate","serviceURLNextDescendentsTemplate","serviceURLNextDescendentTemplate","serviceListURLTemplate","apiVersion","getApiConfig","configPath","getCurrentRealmPath","path","getListOfServices","urlString","util","format","storage","session","getTenant","data","generateAmApi","get","withCredentials","getService","serviceId","getServiceDescendents","post","result","putService","serviceData","realm","getRealm","put","putServiceNextDescendent","serviceType","serviceNextDescendentId","serviceNextDescendentData","deleteService","delete","deleteServiceNextDescendent"],"sources":["api/ServiceApi.ts"],"sourcesContent":["import util from 'util';\nimport storage from '../storage/SessionStorage';\nimport { AmServiceSkeleton, PagedResult } from './ApiTypes';\nimport { generateAmApi } from './BaseApi';\nimport { getCurrentRealmPath } from './utils/ApiUtils';\n\nconst serviceURLTemplate = '%s/json%s/realm-config/services/%s';\nconst serviceURLNextDescendentsTemplate =\n '%s/json%s/realm-config/services/%s?_action=nextdescendents';\nconst serviceURLNextDescendentTemplate =\n '%s/json%s/realm-config/services/%s/%s/%s';\nconst serviceListURLTemplate =\n '%s/json%s/realm-config/services?_queryFilter=true';\nconst apiVersion = 'protocol=2.0,resource=1.0';\n\nfunction getApiConfig() {\n const configPath = getCurrentRealmPath();\n return {\n path: `${configPath}/realm-config/services`,\n apiVersion,\n };\n}\n\nexport interface ServiceListItem {\n /**\n * The identifier for the service - used to construct the subpath for the service\n */\n _id: string;\n /**\n * The user-facing name of the service\n */\n name: string;\n /**\n * The revision number of the service\n */\n _rev: string;\n}\n\n// export interface AmService {\n// _id: '';\n// _rev: string;\n// _type: {\n// _id: string;\n// name: string;\n// collection: boolean;\n// };\n// [key: string]: any;\n// }\n\nexport interface ServiceNextDescendentResponse {\n result: ServiceNextDescendent;\n}\n\nexport interface ServiceNextDescendent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\n/**\n * Get a list of services\n * @returns {Promise<ServiceListItem[]>} a promise resolving to an array of service list items.\n */\nexport async function getListOfServices(): Promise<\n PagedResult<ServiceListItem>\n> {\n const urlString = util.format(\n serviceListURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const { data } = await generateAmApi(getApiConfig()).get<\n PagedResult<ServiceListItem>\n >(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Get service\n * @param {string} serviceId servide id\n * @returns {Promise<AmService>} a promise resolving to a service object\n */\nexport async function getService(\n serviceId: string\n): Promise<AmServiceSkeleton> {\n const urlString = util.format(\n serviceURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n serviceId\n );\n const { data } = await generateAmApi(getApiConfig()).get<AmServiceSkeleton>(\n urlString,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Get a service's decendents (applicable for structured services only, e.g. SocialIdentityProviders)\n * @param {string} serviceId service id\n * @returns {Promise<ServiceNextDescendent[]>} a promise resolving to an array of the service's next decendents\n */\nexport async function getServiceDescendents(\n serviceId: string\n): Promise<ServiceNextDescendent[]> {\n const urlString = util.format(\n serviceURLNextDescendentsTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n serviceId\n );\n const { data } = await generateAmApi(\n getApiConfig()\n ).post<ServiceNextDescendentResponse>(urlString, {\n withCredentials: true,\n });\n return data.result as ServiceNextDescendent[];\n}\n\n/**\n * Create or update a service\n * @param {string} serviceId service id\n * @param {AmService} serviceData service configuration\n * @returns {Promise<AmService>} a promise resolving to a service object\n */\nexport async function putService(\n serviceId: string,\n serviceData: AmServiceSkeleton\n): Promise<AmServiceSkeleton> {\n const realm =\n storage.session.getRealm() === '/' ? '' : storage.session.getRealm();\n const urlString = util.format(\n serviceURLTemplate,\n storage.session.getTenant(),\n realm,\n serviceId\n );\n const { data } = await generateAmApi(getApiConfig()).put(\n urlString,\n serviceData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Create or update a service next descendent instance\n * @param {string} serviceId service id\n * @param {string} serviceType service type\n * @param {string} serviceNextDescendentId service instance id\n * @param {ServiceNextDescendent} serviceNextDescendentData service next descendent configuration\n * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent\n */\nexport async function putServiceNextDescendent(\n serviceId: string,\n serviceType: string,\n serviceNextDescendentId: string,\n serviceNextDescendentData: ServiceNextDescendent\n): Promise<ServiceNextDescendent> {\n const realm =\n storage.session.getRealm() === '/' ? '' : storage.session.getRealm();\n const urlString = util.format(\n serviceURLNextDescendentTemplate,\n storage.session.getTenant(),\n realm,\n serviceId,\n serviceType,\n serviceNextDescendentId\n );\n const { data } = await generateAmApi(getApiConfig()).put(\n urlString,\n serviceNextDescendentData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Delete service\n * @param {string} serviceId service id\n * @returns {Promise<AmService>} a promise resolving to a service object\n */\nexport async function deleteService(\n serviceId: string\n): Promise<AmServiceSkeleton> {\n const urlString = util.format(\n serviceURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n serviceId\n );\n const { data } = await generateAmApi(getApiConfig()).delete(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Delete service next descendent\n * @param {string} serviceId service id\n * @param {string} serviceType service type\n * @param {string} serviceNextDescendentId service instance id\n * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent\n */\nexport async function deleteServiceNextDescendent(\n serviceId: string,\n serviceType: string,\n serviceNextDescendentId: string\n): Promise<ServiceNextDescendent> {\n const urlString = util.format(\n serviceURLNextDescendentTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n serviceId,\n serviceType,\n serviceNextDescendentId\n );\n const { data } = await generateAmApi(getApiConfig()).delete(urlString, {\n withCredentials: true,\n });\n return data;\n}\n"],"mappings":"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"}
package/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.state = exports.VariablesRaw = exports.Variables = exports.Utils = exports.TypesRaw = exports.Types = exports.TreeRaw = exports.ThemeRaw = exports.Theme = exports.StartupRaw = exports.Startup = exports.SecretsRaw = exports.Secrets = exports.Script = exports.Saml2 = exports.Realm = exports.Organization = exports.OAuth2OIDCApi = exports.OAuth2Client = exports.NodeRaw = exports.Node = exports.ManagedObject = exports.Log = exports.LibVersion = exports.Journey = exports.Idp = exports.Idm = exports.ExportImportUtils = exports.EmailTemplateRaw = exports.EmailTemplate = exports.ConnectionProfile = exports.CirclesOfTrust = exports.Authenticate = exports.AgentRaw = exports.Agent = exports.Admin = void 0;
6
+ exports.state = exports.VariablesRaw = exports.Variables = exports.Utils = exports.TypesRaw = exports.Types = exports.TreeRaw = exports.ThemeRaw = exports.Theme = exports.StartupRaw = exports.Startup = exports.Service = exports.SecretsRaw = exports.Secrets = exports.Script = exports.Saml2 = exports.Realm = exports.Organization = exports.OAuth2OIDCApi = exports.OAuth2Client = exports.NodeRaw = exports.Node = exports.ManagedObject = exports.Log = exports.LibVersion = exports.Journey = exports.Idp = exports.Idm = exports.ExportImportUtils = exports.EmailTemplateRaw = exports.EmailTemplate = exports.ConnectionProfile = exports.CirclesOfTrust = exports.Authenticate = exports.AgentRaw = exports.Agent = exports.Admin = void 0;
7
7
 
8
8
  var _colors = _interopRequireDefault(require("colors"));
9
9
 
@@ -111,6 +111,10 @@ var _Script = _interopRequireWildcard(require("./ops/ScriptOps"));
111
111
 
112
112
  exports.Script = _Script;
113
113
 
114
+ var _Service = _interopRequireWildcard(require("./ops/ServiceOps"));
115
+
116
+ exports.Service = _Service;
117
+
114
118
  var _Secrets = _interopRequireWildcard(require("./ops/SecretsOps"));
115
119
 
116
120
  exports.Secrets = _Secrets;
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Color","enable"],"sources":["index.ts"],"sourcesContent":["import Color from 'colors';\n\nColor.enable();\n\n// Api Layer\nexport * as AgentRaw from './api/AgentApi';\nexport * as EmailTemplateRaw from './api/EmailTemplateApi';\nexport * as NodeRaw from './api/NodeApi';\nexport * as SecretsRaw from './api/SecretsApi';\nexport * as StartupRaw from './api/StartupApi';\nexport * as ThemeRaw from './api/ThemeApi';\nexport * as TreeRaw from './api/TreeApi';\nexport * as TypesRaw from './api/ApiTypes';\nexport * as VariablesRaw from './api/VariablesApi';\n\n// Ops Layer\nexport * as Admin from './ops/AdminOps';\nexport * as Agent from './ops/AgentOps';\nexport * as Authenticate from './ops/AuthenticateOps';\nexport * as CirclesOfTrust from './ops/CirclesOfTrustOps';\nexport * as ConnectionProfile from './ops/ConnectionProfileOps';\nexport * as EmailTemplate from './ops/EmailTemplateOps';\nexport * as Idm from './ops/IdmOps';\nexport * as Idp from './ops/IdpOps';\nexport * as Journey from './ops/JourneyOps';\nexport * as Log from './ops/LogOps';\nexport * as ManagedObject from './ops/ManagedObjectOps';\nexport * as Node from './ops/NodeOps';\nexport * as OAuth2Client from './ops/OAuth2ClientOps';\nexport * as Organization from './ops/OrganizationOps';\nexport * as Realm from './ops/RealmOps';\nexport * as Saml2 from './ops/Saml2Ops';\nexport * as Script from './ops/ScriptOps';\nexport * as Secrets from './ops/SecretsOps';\nexport * as Startup from './ops/StartupOps';\nexport * as Theme from './ops/ThemeOps';\nexport * as Types from './ops/OpsTypes';\nexport * as Variables from './ops/VariablesOps';\n// TODO: revisit if there are better ways\nexport * as Utils from './ops/utils/OpsUtils';\nexport * as LibVersion from './ops/utils/Version';\nexport * as ExportImportUtils from './ops/utils/ExportImportUtils';\n// TODO: reconsider the aproach to pass in state from client\n// lib should be stateless, an aplication should own its state\nexport * as state from './storage/SessionStorage';\n// TODO: need to figure out if this is the right approach or if we should even\n// use a public oauth2/oidc library. might be ok for now since there is only\n// one place where the cli needs to execute an oauth flow.\nexport * as OAuth2OIDCApi from './api/OAuth2OIDCApi';\n"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEAA,eAAA,CAAMC,MAAN,G,CAEA"}
1
+ {"version":3,"file":"index.js","names":["Color","enable"],"sources":["index.ts"],"sourcesContent":["import Color from 'colors';\n\nColor.enable();\n\n// Api Layer\nexport * as AgentRaw from './api/AgentApi';\nexport * as EmailTemplateRaw from './api/EmailTemplateApi';\nexport * as NodeRaw from './api/NodeApi';\nexport * as SecretsRaw from './api/SecretsApi';\nexport * as StartupRaw from './api/StartupApi';\nexport * as ThemeRaw from './api/ThemeApi';\nexport * as TreeRaw from './api/TreeApi';\nexport * as TypesRaw from './api/ApiTypes';\nexport * as VariablesRaw from './api/VariablesApi';\n\n// Ops Layer\nexport * as Admin from './ops/AdminOps';\nexport * as Agent from './ops/AgentOps';\nexport * as Authenticate from './ops/AuthenticateOps';\nexport * as CirclesOfTrust from './ops/CirclesOfTrustOps';\nexport * as ConnectionProfile from './ops/ConnectionProfileOps';\nexport * as EmailTemplate from './ops/EmailTemplateOps';\nexport * as Idm from './ops/IdmOps';\nexport * as Idp from './ops/IdpOps';\nexport * as Journey from './ops/JourneyOps';\nexport * as Log from './ops/LogOps';\nexport * as ManagedObject from './ops/ManagedObjectOps';\nexport * as Node from './ops/NodeOps';\nexport * as OAuth2Client from './ops/OAuth2ClientOps';\nexport * as Organization from './ops/OrganizationOps';\nexport * as Realm from './ops/RealmOps';\nexport * as Saml2 from './ops/Saml2Ops';\nexport * as Script from './ops/ScriptOps';\nexport * as Service from './ops/ServiceOps';\nexport * as Secrets from './ops/SecretsOps';\nexport * as Startup from './ops/StartupOps';\nexport * as Theme from './ops/ThemeOps';\nexport * as Types from './ops/OpsTypes';\nexport * as Variables from './ops/VariablesOps';\n// TODO: revisit if there are better ways\nexport * as Utils from './ops/utils/OpsUtils';\nexport * as LibVersion from './ops/utils/Version';\nexport * as ExportImportUtils from './ops/utils/ExportImportUtils';\n// TODO: reconsider the aproach to pass in state from client\n// lib should be stateless, an aplication should own its state\nexport * as state from './storage/SessionStorage';\n// TODO: need to figure out if this is the right approach or if we should even\n// use a public oauth2/oidc library. might be ok for now since there is only\n// one place where the cli needs to execute an oauth flow.\nexport * as OAuth2OIDCApi from './api/OAuth2OIDCApi';\n"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEAA,eAAA,CAAMC,MAAN,G,CAEA"}
@@ -58,8 +58,8 @@ var AGENT_TYPE_JAVA = 'J2EEAgent';
58
58
  exports.AGENT_TYPE_JAVA = AGENT_TYPE_JAVA;
59
59
  var AGENT_TYPE_WEB = 'WebAgent';
60
60
  /**
61
- * Create an empty single tree export template
62
- * @returns {SingleTreeExportInterface} an empty single tree export template
61
+ * Create an empty agent export template
62
+ * @returns {AgentExportInterface} an empty agent export template
63
63
  */
64
64
 
65
65
  exports.AGENT_TYPE_WEB = AGENT_TYPE_WEB;