@itentialopensource/adapter-paragon_active_assurance 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.eslintignore +0 -1
  2. package/.jshintrc +3 -0
  3. package/CALLS.md +175 -139
  4. package/CHANGELOG.md +16 -1
  5. package/CONTRIBUTING.md +1 -160
  6. package/ENHANCE.md +2 -2
  7. package/README.md +31 -22
  8. package/adapter.js +163 -334
  9. package/adapterBase.js +538 -873
  10. package/changelogs/CHANGELOG.md +16 -0
  11. package/entities/.system/action.json +40 -0
  12. package/entities/.system/mockdatafiles/MFA_Step_1-default.json +31 -0
  13. package/entities/.system/mockdatafiles/MFA_Step_2-default.json +107 -0
  14. package/entities/.system/schemaTokenReq_MFA_Step_1.json +19 -0
  15. package/entities/.system/schemaTokenReq_MFA_Step_2.json +24 -0
  16. package/entities/.system/schemaTokenResp_MFA_Step_1.json +38 -0
  17. package/entities/.system/schemaTokenResp_MFA_Step_2.json +33 -0
  18. package/metadata.json +51 -0
  19. package/package.json +24 -26
  20. package/pronghorn.json +474 -142
  21. package/propertiesSchema.json +453 -40
  22. package/refs?service=git-upload-pack +0 -0
  23. package/report/adapter-openapi.json +15052 -0
  24. package/report/adapter-openapi.yaml +10325 -0
  25. package/report/adapterInfo.json +8 -8
  26. package/report/updateReport1691508876405.json +120 -0
  27. package/report/updateReport1692202191653.json +120 -0
  28. package/report/updateReport1692203293320.json +120 -0
  29. package/report/updateReport1694469109205.json +120 -0
  30. package/report/updateReport1698422878147.json +120 -0
  31. package/sampleProperties.json +94 -7
  32. package/test/integration/adapterTestBasicGet.js +1 -1
  33. package/test/integration/adapterTestConnectivity.js +91 -42
  34. package/test/integration/adapterTestIntegration.js +130 -2
  35. package/test/unit/adapterBaseTestUnit.js +388 -313
  36. package/test/unit/adapterTestUnit.js +307 -110
  37. package/utils/adapterInfo.js +1 -1
  38. package/utils/addAuth.js +1 -1
  39. package/utils/artifactize.js +1 -1
  40. package/utils/checkMigrate.js +1 -1
  41. package/utils/entitiesToDB.js +1 -0
  42. package/utils/findPath.js +1 -1
  43. package/utils/methodDocumentor.js +71 -23
  44. package/utils/modify.js +13 -15
  45. package/utils/packModificationScript.js +1 -1
  46. package/utils/taskMover.js +309 -0
  47. package/utils/tbScript.js +3 -10
  48. package/utils/tbUtils.js +2 -3
  49. package/utils/testRunner.js +1 -1
  50. package/utils/troubleshootingAdapter.js +1 -3
  51. package/.gitlab/.gitkeep +0 -0
  52. package/.gitlab/issue_templates/.gitkeep +0 -0
  53. package/.gitlab/issue_templates/Default.md +0 -17
  54. package/.gitlab/issue_templates/bugReportTemplate.md +0 -76
  55. package/.gitlab/issue_templates/featureRequestTemplate.md +0 -14
  56. package/workflows/README.md +0 -3
@@ -0,0 +1,16 @@
1
+
2
+ ## 0.1.2 [05-01-2023]
3
+
4
+ * Add multi step authentication
5
+
6
+ See merge request itentialopensource/adapters/telemetry-analytics/adapter-paragon_active_assurance!1
7
+
8
+ ---
9
+
10
+ ## 0.1.1 [03-13-2023]
11
+
12
+ * Bug fixes and performance improvements
13
+
14
+ See commit ca41529
15
+
16
+ ---
@@ -25,6 +25,46 @@
25
25
  }
26
26
  ]
27
27
  },
28
+ {
29
+ "name": "MFA_Step_1",
30
+ "protocol": "REST",
31
+ "method": "POST",
32
+ "entitypath": "{base_path}/{version}/iam/authenticate",
33
+ "requestSchema": "schemaTokenReq_MFA_Step_1.json",
34
+ "responseSchema": "schemaTokenResp_MFA_Step_1.json",
35
+ "timeout": 0,
36
+ "sendEmpty": false,
37
+ "requestDatatype": "JSON",
38
+ "responseDatatype": "JSON",
39
+ "headers": {},
40
+ "responseObjects": [
41
+ {
42
+ "type": "default",
43
+ "key": "",
44
+ "mockFile": "mockdatafiles/MFA_Step_1-default.json"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "name": "MFA_Step_2",
50
+ "protocol": "REST",
51
+ "method": "POST",
52
+ "entitypath": "{base_path}/{version}/iam/authenticate",
53
+ "requestSchema": "schemaTokenReq_MFA_Step_2.json",
54
+ "responseSchema": "schemaTokenResp_MFA_Step_2.json",
55
+ "timeout": 0,
56
+ "sendEmpty": false,
57
+ "requestDatatype": "JSON",
58
+ "responseDatatype": "JSON",
59
+ "headers": {},
60
+ "responseObjects": [
61
+ {
62
+ "type": "default",
63
+ "key": "",
64
+ "mockFile": "mockdatafiles/MFA_Step_2-default.json"
65
+ }
66
+ ]
67
+ },
28
68
  {
29
69
  "name": "healthcheck",
30
70
  "protocol": "REST",
@@ -0,0 +1,31 @@
1
+ {
2
+ "status": "AUTHENTICATED",
3
+ "user_id": "string",
4
+ "id_token": "eyJh",
5
+ "token": {
6
+ "user_id": "string",
7
+ "user_name": "admin",
8
+ "iat": "string",
9
+ "exp": "string",
10
+ "unique_identifier": "string",
11
+ "identity_provider_type": "Local"
12
+ },
13
+ "scopes": [
14
+ {
15
+ "id": "string",
16
+ "name": "default",
17
+ "display_name": "default",
18
+ "type": "string"
19
+ },
20
+ {
21
+ "id": "string",
22
+ "name": "string",
23
+ "display_name": "string",
24
+ "type": "Tenant",
25
+ "parent_id": "string",
26
+ "parent_name": "default",
27
+ "parent_type": "string"
28
+ }
29
+ ],
30
+ "identity_provider_type": "Local"
31
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "status": "AUTHENTICATED",
3
+ "user_id": "string",
4
+ "id_token": "eyJhbGc",
5
+ "token": {
6
+ "user_id": "string",
7
+ "user_name": "admin",
8
+ "iat": "string",
9
+ "exp": "string",
10
+ "roles": [
11
+ {
12
+ "id": "string",
13
+ "name": "string",
14
+ "type": "string",
15
+ "predefined": true
16
+ }
17
+ ],
18
+ "intents": [],
19
+ "scope": {
20
+ "id": "string",
21
+ "name": "default",
22
+ "type": "string",
23
+ "display_name": "default"
24
+ },
25
+ "capabilities": [
26
+ {
27
+ "service": "string",
28
+ "methods": []
29
+ },
30
+ {
31
+ "service": "string",
32
+ "methods": []
33
+ },
34
+ {
35
+ "service": "string",
36
+ "methods": []
37
+ },
38
+ {
39
+ "service": "string",
40
+ "methods": []
41
+ },
42
+ {
43
+ "service": "string",
44
+ "methods": []
45
+ },
46
+ {
47
+ "service": "string",
48
+ "methods": []
49
+ },
50
+ {
51
+ "service": "string",
52
+ "methods": []
53
+ },
54
+ {
55
+ "service": "string",
56
+ "methods": []
57
+ },
58
+ {
59
+ "service": "string",
60
+ "methods": []
61
+ },
62
+ {
63
+ "service": "string",
64
+ "methods": []
65
+ },
66
+ {
67
+ "service": "string",
68
+ "methods": []
69
+ },
70
+ {
71
+ "service": "string",
72
+ "methods": []
73
+ },
74
+ {
75
+ "service": "string",
76
+ "methods": []
77
+ },
78
+ {
79
+ "service": "string",
80
+ "methods": []
81
+ },
82
+ {
83
+ "service": "string",
84
+ "methods": []
85
+ },
86
+ {
87
+ "service": "string",
88
+ "methods": []
89
+ },
90
+ {
91
+ "service": "string",
92
+ "methods": []
93
+ },
94
+ {
95
+ "service": "string",
96
+ "methods": []
97
+ },
98
+ {
99
+ "service": "string",
100
+ "methods": []
101
+ }
102
+ ],
103
+ "unique_identifier": "string",
104
+ "identity_provider_type": "Local"
105
+ },
106
+ "identity_provider_type": "Local"
107
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$id": ".system-schemaTokenReq_MFA_Step_1.json",
3
+ "type": "object",
4
+ "schema": "http://json-schema.org/draft-07/schema#",
5
+ "translate": true,
6
+ "dynamicfields": true,
7
+ "properties": {
8
+ "ph_request_type": {
9
+ "type": "string",
10
+ "description": "type of request (internal to adapter)",
11
+ "default": "MFA_Step_1",
12
+ "enum": [
13
+ "MFA_Step_1"
14
+ ],
15
+ "external_name": "ph_request_type"
16
+ }
17
+ },
18
+ "definitions": {}
19
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$id": ".system-schemaTokenReq_MFA_Step_2.json",
3
+ "type": "object",
4
+ "schema": "http://json-schema.org/draft-07/schema#",
5
+ "translate": true,
6
+ "dynamicfields": true,
7
+ "properties": {
8
+ "ph_request_type": {
9
+ "type": "string",
10
+ "description": "type of request (internal to adapter)",
11
+ "default": "MFA_Step_2",
12
+ "enum": [
13
+ "MFA_Step_2"
14
+ ],
15
+ "external_name": "ph_request_type"
16
+ },
17
+ "scopeId": {
18
+ "type": "string",
19
+ "description": "scopeId",
20
+ "external_name": "scope_id"
21
+ }
22
+ },
23
+ "definitions": {}
24
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$id": ".system-schemaTokenResp_MFA_Step_1.json",
3
+ "type": "object",
4
+ "schema": "http://json-schema.org/draft-07/schema#",
5
+ "translate": true,
6
+ "dynamicfields": false,
7
+ "properties": {
8
+ "ph_request_type": {
9
+ "type": "string",
10
+ "description": "type of request (internal to adapter)",
11
+ "default": "MFA_Step_1",
12
+ "enum": [
13
+ "MFA_Step_1"
14
+ ],
15
+ "external_name": "ph_request_type"
16
+ },
17
+ "token": {
18
+ "description": "token returned by system",
19
+ "parse": false,
20
+ "encode": false,
21
+ "placement": "BODY",
22
+ "external_name": "id_token"
23
+ },
24
+ "tokenp2": {
25
+ "description": "token returned by system",
26
+ "parse": false,
27
+ "encode": false,
28
+ "placement": "BODY",
29
+ "encrypt": {
30
+ "type": "AES",
31
+ "key": ""
32
+ },
33
+ "external_name": "scopes.0.id"
34
+ }
35
+
36
+ },
37
+ "definitions": {}
38
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$id": ".system-schemaTokenResp_MFA_Step_2.json",
3
+ "type": "object",
4
+ "schema": "http://json-schema.org/draft-07/schema#",
5
+ "translate": true,
6
+ "dynamicfields": true,
7
+ "properties": {
8
+ "ph_request_type": {
9
+ "type": "string",
10
+ "description": "type of request (internal to adapter)",
11
+ "default": "MFA_Step_2",
12
+ "enum": [
13
+ "MFA_Step_2"
14
+ ],
15
+ "external_name": "ph_request_type"
16
+ },
17
+ "token": {
18
+ "description": "token returned by system",
19
+ "parse": false,
20
+ "encode": false,
21
+ "placement": "BODY",
22
+ "external_name": "token"
23
+ },
24
+ "tokenp2": {
25
+ "description": "token returned by system",
26
+ "parse": false,
27
+ "encode": false,
28
+ "placement": "BODY",
29
+ "external_name": "id_token"
30
+ }
31
+ },
32
+ "definitions": {}
33
+ }
package/metadata.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "adapter-paragon_active_assurance",
3
+ "webName": "Adapter for Integration to Juniper Paragon Active Assurance",
4
+ "vendor": "Juniper Networks",
5
+ "product": "Paragon Active Assurance (formerly Netrounds)",
6
+ "osVersion": [],
7
+ "apiVersions": [],
8
+ "iapVersions": [
9
+ "2021.1.x",
10
+ "2021.2.x",
11
+ "2022.1.x",
12
+ "2023.1.x"
13
+ ],
14
+ "method": "REST",
15
+ "type": "Adapter",
16
+ "domains": [
17
+ "Service Assurance"
18
+ ],
19
+ "tags": [],
20
+ "useCases": [],
21
+ "deprecated": {
22
+ "isDeprecated": false
23
+ },
24
+ "brokerSince": "",
25
+ "documentation": {
26
+ "storeLink": "",
27
+ "npmLink": "https://www.npmjs.com/package/@itentialopensource/adapter-paragon_active_assurance",
28
+ "repoLink": "https://gitlab.com/itentialopensource/adapters/telemetry-analytics/adapter-paragon_active_assurance",
29
+ "docLink": "https://docs.itential.com/opensource/docs/paragon-active-assurance",
30
+ "demoLinks": [],
31
+ "trainingLinks": [],
32
+ "faqLink": "https://docs.itential.com/opensource/docs/troubleshooting-an-adapter",
33
+ "contributeLink": "https://gitlab.com/itentialopensource/adapters/contributing-guide",
34
+ "issueLink": "https://itential.atlassian.net/servicedesk/customer/portals",
35
+ "webLink": "https://www.itential.com/adapters/paragon-active-assurance/",
36
+ "vendorLink": "https://www.juniper.net/us/en.html",
37
+ "productLink": "https://www.juniper.net/us/en/products/network-automation/paragon-active-assurance.html",
38
+ "apiLinks": [
39
+ "https://app.netrounds.com/rest/"
40
+ ]
41
+ },
42
+ "assets": [],
43
+ "relatedItems": {
44
+ "adapters": [],
45
+ "integrations": [],
46
+ "ecosystemApplications": [],
47
+ "workflowProjects": [],
48
+ "transformationProjects": [],
49
+ "exampleProjects": []
50
+ }
51
+ }
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@itentialopensource/adapter-paragon_active_assurance",
3
- "version": "0.1.1",
4
- "description": "This adapter integrates with system described as: netroundsOrchestrationRestApi.",
3
+ "version": "0.2.0",
4
+ "description": "This adapter integrates with system described as: Juniper Paragon Active Assurance.",
5
5
  "main": "adapter.js",
6
- "wizardVersion": "2.44.15",
7
- "engineVersion": "1.62.7",
6
+ "systemName": "Juniper Paragon Active Assurance",
7
+ "wizardVersion": "2.44.7",
8
+ "engineVersion": "1.67.14",
8
9
  "adapterType": "http",
9
10
  "scripts": {
10
11
  "artifactize": "npm i && node utils/packModificationScript.js",
11
- "preinstall": "node utils/setup.js && npm install --package-lock-only --ignore-scripts && npx npm-force-resolutions",
12
+ "preinstall": "node utils/setup.js",
12
13
  "deinstall": "node utils/removeHooks.js",
13
14
  "lint": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js",
14
15
  "lint:errors": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet",
@@ -54,34 +55,31 @@
54
55
  "author": "Itential",
55
56
  "homepage": "https://gitlab.com/itentialopensource/adapters/telemetry-analytics/adapter-paragon_active_assurance#readme",
56
57
  "dependencies": {
57
- "@itentialopensource/adapter-utils": "^4.48.0",
58
- "ajv": "^6.12.0",
59
- "axios": "^0.21.0",
60
- "commander": "^2.20.0",
61
- "esprima": "^4.0.1",
62
- "fs-extra": "^8.1.0",
58
+ "@itentialopensource/adapter-utils": "^5.3.2",
59
+ "acorn": "^8.10.0",
60
+ "ajv": "^8.12.0",
61
+ "axios": "^1.6.3",
62
+ "commander": "^11.0.0",
63
+ "dns-lookup-promise": "^1.0.4",
64
+ "fs-extra": "^11.1.1",
63
65
  "json-query": "^2.2.2",
64
- "mocha": "^9.0.1",
66
+ "mocha": "^10.2.0",
65
67
  "mocha-param": "^2.0.1",
66
- "mongodb": "^4.1.0",
67
- "network-diagnostics": "^0.5.3",
68
+ "mongodb": "^4.16.0",
68
69
  "nyc": "^15.1.0",
70
+ "ping": "^0.4.4",
69
71
  "prompts": "^2.4.2",
70
72
  "readline-sync": "^1.4.10",
71
- "semver": "^7.3.2",
72
- "winston": "^3.3.3"
73
+ "semver": "^7.5.3",
74
+ "winston": "^3.9.0"
73
75
  },
74
76
  "devDependencies": {
75
- "chai": "^4.3.4",
76
- "eslint": "^7.29.0",
77
- "eslint-config-airbnb-base": "^14.2.1",
78
- "eslint-plugin-import": "^2.23.4",
79
- "eslint-plugin-json": "^3.0.0",
80
- "package-json-validator": "^0.6.3",
81
- "testdouble": "^3.16.1"
82
- },
83
- "resolutions": {
84
- "minimist": "^1.2.5"
77
+ "chai": "^4.3.7",
78
+ "eslint": "^8.44.0",
79
+ "eslint-config-airbnb-base": "^15.0.0",
80
+ "eslint-plugin-import": "^2.27.5",
81
+ "eslint-plugin-json": "^3.1.0",
82
+ "testdouble": "^3.18.0"
85
83
  },
86
84
  "private": false
87
85
  }