@itentialopensource/adapter-tufin_secureapp 0.2.3 → 0.3.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 (48) hide show
  1. package/.eslintignore +1 -0
  2. package/AUTH.md +39 -0
  3. package/BROKER.md +199 -0
  4. package/CALLS.md +169 -0
  5. package/CHANGELOG.md +39 -8
  6. package/CODE_OF_CONDUCT.md +12 -17
  7. package/CONTRIBUTING.md +88 -74
  8. package/ENHANCE.md +69 -0
  9. package/PROPERTIES.md +641 -0
  10. package/README.md +228 -420
  11. package/SUMMARY.md +9 -0
  12. package/SYSTEMINFO.md +11 -0
  13. package/TROUBLESHOOT.md +47 -0
  14. package/adapter.js +1628 -170
  15. package/adapterBase.js +1270 -238
  16. package/entities/.generic/action.json +214 -0
  17. package/entities/.generic/schema.json +28 -0
  18. package/error.json +12 -0
  19. package/package.json +41 -18
  20. package/pronghorn.json +577 -2
  21. package/propertiesDecorators.json +14 -0
  22. package/propertiesSchema.json +472 -4
  23. package/refs?service=git-upload-pack +0 -0
  24. package/report/adapterInfo.json +10 -0
  25. package/report/updateReport1615840744335.json +95 -0
  26. package/report/updateReport1653613470041.json +120 -0
  27. package/sampleProperties.json +102 -5
  28. package/test/integration/adapterTestBasicGet.js +85 -0
  29. package/test/integration/adapterTestConnectivity.js +93 -0
  30. package/test/integration/adapterTestIntegration.js +29 -98
  31. package/test/unit/adapterBaseTestUnit.js +949 -0
  32. package/test/unit/adapterTestUnit.js +642 -109
  33. package/utils/adapterInfo.js +206 -0
  34. package/utils/addAuth.js +94 -0
  35. package/utils/basicGet.js +50 -0
  36. package/utils/checkMigrate.js +63 -0
  37. package/utils/entitiesToDB.js +179 -0
  38. package/utils/findPath.js +74 -0
  39. package/utils/modify.js +154 -0
  40. package/utils/packModificationScript.js +1 -1
  41. package/utils/patches2bundledDeps.js +90 -0
  42. package/utils/pre-commit.sh +3 -0
  43. package/utils/removeHooks.js +20 -0
  44. package/utils/tbScript.js +184 -0
  45. package/utils/tbUtils.js +469 -0
  46. package/utils/testRunner.js +16 -16
  47. package/utils/troubleshootingAdapter.js +190 -0
  48. package/img/adapter.png +0 -0
@@ -51,6 +51,11 @@
51
51
  "description": "When true the path variables are encoded in the url",
52
52
  "default": true
53
53
  },
54
+ "encode_queryvars": {
55
+ "type": "boolean",
56
+ "description": "When true the query parameters are encoded in the url",
57
+ "default": true
58
+ },
54
59
  "save_metric": {
55
60
  "type": [
56
61
  "boolean",
@@ -93,6 +98,9 @@
93
98
  },
94
99
  "mongo": {
95
100
  "$ref": "#/definitions/mongo"
101
+ },
102
+ "devicebroker": {
103
+ "$ref": "#/definitions/devicebroker"
96
104
  }
97
105
  },
98
106
  "required": [
@@ -112,6 +120,7 @@
112
120
  "enum": [
113
121
  "basic user_password",
114
122
  "static_token",
123
+ "jwt_token",
115
124
  "request_token",
116
125
  "no_authentication"
117
126
  ]
@@ -198,7 +207,10 @@
198
207
  ]
199
208
  },
200
209
  "auth_field": {
201
- "type": "string",
210
+ "type": [
211
+ "string",
212
+ "array"
213
+ ],
202
214
  "description": "The field in which to pass the token",
203
215
  "default": "header.headers.X-AUTH-TOKEN",
204
216
  "examples": [
@@ -210,7 +222,10 @@
210
222
  ]
211
223
  },
212
224
  "auth_field_format": {
213
- "type": "string",
225
+ "type": [
226
+ "string",
227
+ "array"
228
+ ],
214
229
  "description": "The format used to pass the authentication -- variables {token}, {username}, {password} will be replaced with the proper values. {b64}...{/b64} will base64 encode everything between the start and end tag.",
215
230
  "default": "{token}",
216
231
  "examples": [
@@ -220,6 +235,26 @@
220
235
  "Basic {b64}{username}:{password}{/b64}",
221
236
  "token={token}"
222
237
  ]
238
+ },
239
+ "auth_logging": {
240
+ "type": "boolean",
241
+ "description": "This property turns on logging of Authentication Information and should only be true when debugging authentication and connectivity",
242
+ "default": false
243
+ },
244
+ "client_id": {
245
+ "type": "string",
246
+ "description": "The client id for OAuth requests - can also use username depending on schema",
247
+ "default": ""
248
+ },
249
+ "client_secret": {
250
+ "type": "string",
251
+ "description": "The client secret for OAuth requests - can also use password depending on schema",
252
+ "default": ""
253
+ },
254
+ "grant_type": {
255
+ "type": "string",
256
+ "description": "The grant type for OAuth requests - can also provide in schema",
257
+ "default": ""
223
258
  }
224
259
  },
225
260
  "required": [
@@ -319,6 +354,10 @@
319
354
  "examples": [
320
355
  "/api/version/ping"
321
356
  ]
357
+ },
358
+ "query_object": {
359
+ "type": "object",
360
+ "description": "Query object { device: xxxxx } to be placed into the healthcheck, will be converted to query string by the adapter"
322
361
  }
323
362
  },
324
363
  "required": [
@@ -378,7 +417,7 @@
378
417
  "type": "integer",
379
418
  "description": "defines the number of request that Pronghorn can send tufin_secureapp at one time",
380
419
  "default": 1,
381
- "minimum": 1,
420
+ "minimum": 0,
382
421
  "maximum": 1000
383
422
  },
384
423
  "expire_timeout": {
@@ -515,6 +554,11 @@
515
554
  "type": "boolean",
516
555
  "description": "Archives each request/response and corresponding metrics",
517
556
  "default": false
557
+ },
558
+ "return_request": {
559
+ "type": "boolean",
560
+ "description": "This property turns on returning the response information - need to be carefull in case credentials are in the path",
561
+ "default": false
518
562
  }
519
563
  },
520
564
  "required": [
@@ -555,8 +599,19 @@
555
599
  "http",
556
600
  "https",
557
601
  "socks4",
558
- "socks5"
602
+ "socks5",
603
+ "tls"
559
604
  ]
605
+ },
606
+ "username": {
607
+ "type": "string",
608
+ "description": "username for proxy authentication",
609
+ "default": ""
610
+ },
611
+ "password": {
612
+ "type": "string",
613
+ "description": "password for proxy authentication",
614
+ "default": ""
560
615
  }
561
616
  },
562
617
  "required": [
@@ -788,6 +843,419 @@
788
843
  }
789
844
  }
790
845
  }
846
+ },
847
+ "devicebroker": {
848
+ "type": "object",
849
+ "properties": {
850
+ "getDevice": {
851
+ "type": "array",
852
+ "description": "Broker call(s) to getDevice",
853
+ "items": {
854
+ "properties": {
855
+ "path": {
856
+ "type": "string",
857
+ "description": "The fully qualified path of the call to getDevice (e.g. /rest/api/device/{deviceid})",
858
+ "default": ""
859
+ },
860
+ "method": {
861
+ "type": "string",
862
+ "description": "The method of the call to getDevice",
863
+ "default": "GET"
864
+ },
865
+ "query": {
866
+ "type": "object",
867
+ "description": "The json object with query parameters of the call to getDevice",
868
+ "additionalProperties": {
869
+ "type": "string"
870
+ }
871
+ },
872
+ "body": {
873
+ "type": "object",
874
+ "description": "The json object with body of the call to getDevice",
875
+ "additionalProperties": {
876
+ "type": "string"
877
+ }
878
+ },
879
+ "headers": {
880
+ "type": "object",
881
+ "description": "The json object with headers of the call to getDevice",
882
+ "additionalProperties": {
883
+ "type": "string"
884
+ }
885
+ },
886
+ "handleFailure": {
887
+ "type": "string",
888
+ "enum": [
889
+ "ignore",
890
+ "fail"
891
+ ],
892
+ "description": "return failure or ignore failure",
893
+ "default": "ignore"
894
+ },
895
+ "requestFields": {
896
+ "type": "object",
897
+ "description": "The json object with response fields of the call to getDevice",
898
+ "additionalProperties": {
899
+ "type": "string"
900
+ },
901
+ "properties": {}
902
+ },
903
+ "responseDatakey": {
904
+ "type": "string",
905
+ "description": "place in the response where the data is - supports jsonquery",
906
+ "default": ""
907
+ },
908
+ "responseFields": {
909
+ "type": "object",
910
+ "description": "The json object with response fields of the call to getDevice",
911
+ "additionalProperties": {
912
+ "type": "string"
913
+ },
914
+ "properties": {
915
+ "name": {
916
+ "type": "string",
917
+ "description": "The field in response to getDevice that contains the name of the device",
918
+ "default": "name"
919
+ },
920
+ "ostype": {
921
+ "type": "string",
922
+ "description": "The field in response to getDevice that contains the ostype of the device",
923
+ "default": "ostype"
924
+ },
925
+ "ostypePrefix": {
926
+ "type": "string",
927
+ "description": "Any prefix that should be added to the ostype of the device (e.g. aws-)",
928
+ "default": ""
929
+ },
930
+ "port": {
931
+ "type": "string",
932
+ "description": "The field in response to getDevice that contains the port of the device",
933
+ "default": ""
934
+ },
935
+ "ipaddress": {
936
+ "type": "string",
937
+ "description": "The field in response to getDevice that contains the ip address of the device",
938
+ "default": ""
939
+ }
940
+ }
941
+ }
942
+ }
943
+ }
944
+ },
945
+ "getDevicesFiltered": {
946
+ "type": "array",
947
+ "description": "Broker call(s) to getDevicesFiltered",
948
+ "items": {
949
+ "properties": {
950
+ "path": {
951
+ "type": "string",
952
+ "description": "The fully qualified path of the call to getDevicesFiltered (e.g. /rest/api/device/{deviceid})",
953
+ "default": ""
954
+ },
955
+ "method": {
956
+ "type": "string",
957
+ "description": "The method of the call to getDevicesFiltered",
958
+ "default": "GET"
959
+ },
960
+ "query": {
961
+ "type": "object",
962
+ "description": "The json object with query parameters of the call to getDevicesFiltered",
963
+ "additionalProperties": {
964
+ "type": "string"
965
+ }
966
+ },
967
+ "body": {
968
+ "type": "object",
969
+ "description": "The json object with body of the call to getDevicesFiltered",
970
+ "additionalProperties": {
971
+ "type": "string"
972
+ }
973
+ },
974
+ "headers": {
975
+ "type": "object",
976
+ "description": "The json object with headers of the call to getDevicesFiltered",
977
+ "additionalProperties": {
978
+ "type": "string"
979
+ }
980
+ },
981
+ "handleFailure": {
982
+ "type": "string",
983
+ "enum": [
984
+ "ignore",
985
+ "fail"
986
+ ],
987
+ "description": "return failure or ignore failure",
988
+ "default": "ignore"
989
+ },
990
+ "requestFields": {
991
+ "type": "object",
992
+ "description": "The json object with response fields of the call to getDevice",
993
+ "additionalProperties": {
994
+ "type": "string"
995
+ },
996
+ "properties": {}
997
+ },
998
+ "responseDatakey": {
999
+ "type": "string",
1000
+ "description": "place in the response where the data is - supports jsonquery",
1001
+ "default": ""
1002
+ },
1003
+ "responseFields": {
1004
+ "type": "object",
1005
+ "description": "The json object with response fields of the call to getDevicesFiltered",
1006
+ "additionalProperties": {
1007
+ "type": "string"
1008
+ },
1009
+ "properties": {
1010
+ "name": {
1011
+ "type": "string",
1012
+ "description": "The field in response to getDevicesFiltered that contains the name of the device",
1013
+ "default": "name"
1014
+ },
1015
+ "ostype": {
1016
+ "type": "string",
1017
+ "description": "The field in response to getDevicesFiltered that contains the ostype of the device",
1018
+ "default": "ostype"
1019
+ },
1020
+ "ostypePrefix": {
1021
+ "type": "string",
1022
+ "description": "Any prefix that should be added to the ostype of the device (e.g. aws-)",
1023
+ "default": ""
1024
+ },
1025
+ "port": {
1026
+ "type": "string",
1027
+ "description": "The field in response to getDevicesFiltered that contains the port of the device",
1028
+ "default": ""
1029
+ },
1030
+ "ipaddress": {
1031
+ "type": "string",
1032
+ "description": "The field in response to getDevicesFiltered that contains the ip address of the device",
1033
+ "default": ""
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ }
1039
+ },
1040
+ "isAlive": {
1041
+ "type": "array",
1042
+ "description": "Broker call(s) to determine if the device isAlive",
1043
+ "items": {
1044
+ "properties": {
1045
+ "path": {
1046
+ "type": "string",
1047
+ "description": "The fully qualified path of the call to isAlive (e.g. /rest/api/device/{deviceid})",
1048
+ "default": ""
1049
+ },
1050
+ "method": {
1051
+ "type": "string",
1052
+ "description": "The method of the call to isAlive",
1053
+ "default": "GET"
1054
+ },
1055
+ "query": {
1056
+ "type": "object",
1057
+ "description": "The json object with query parameters of the call to isAlive",
1058
+ "additionalProperties": {
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "body": {
1063
+ "type": "object",
1064
+ "description": "The json object with body of the call to isAlive",
1065
+ "additionalProperties": {
1066
+ "type": "string"
1067
+ }
1068
+ },
1069
+ "headers": {
1070
+ "type": "object",
1071
+ "description": "The json object with headers of the call to isAlive",
1072
+ "additionalProperties": {
1073
+ "type": "string"
1074
+ }
1075
+ },
1076
+ "handleFailure": {
1077
+ "type": "string",
1078
+ "enum": [
1079
+ "ignore",
1080
+ "fail"
1081
+ ],
1082
+ "description": "return failure or ignore isAlive",
1083
+ "default": "ignore"
1084
+ },
1085
+ "requestFields": {
1086
+ "type": "object",
1087
+ "description": "The json object with response fields of the call to getDevice",
1088
+ "additionalProperties": {
1089
+ "type": "string"
1090
+ },
1091
+ "properties": {}
1092
+ },
1093
+ "responseDatakey": {
1094
+ "type": "string",
1095
+ "description": "place in the response where the data is - supports jsonquery",
1096
+ "default": ""
1097
+ },
1098
+ "responseFields": {
1099
+ "type": "object",
1100
+ "description": "The json object with response fields of the call to isAlive",
1101
+ "additionalProperties": {
1102
+ "type": "string"
1103
+ },
1104
+ "properties": {
1105
+ "status": {
1106
+ "type": "string",
1107
+ "description": "The field in response to isAlive that contains the status of the device",
1108
+ "default": "name"
1109
+ },
1110
+ "statusValue": {
1111
+ "type": "string",
1112
+ "description": "The expected value in the status field",
1113
+ "default": "true"
1114
+ }
1115
+ }
1116
+ }
1117
+ }
1118
+ }
1119
+ },
1120
+ "getConfig": {
1121
+ "type": "array",
1122
+ "description": "Broker call(s) to getConfig",
1123
+ "items": {
1124
+ "properties": {
1125
+ "path": {
1126
+ "type": "string",
1127
+ "description": "The fully qualified path of the call to getConfig (e.g. /rest/api/device/{deviceid})",
1128
+ "default": ""
1129
+ },
1130
+ "method": {
1131
+ "type": "string",
1132
+ "description": "The method of the call to getConfig",
1133
+ "default": "GET"
1134
+ },
1135
+ "query": {
1136
+ "type": "object",
1137
+ "description": "The json object with query parameters of the call to getConfig",
1138
+ "additionalProperties": {
1139
+ "type": "string"
1140
+ }
1141
+ },
1142
+ "body": {
1143
+ "type": "object",
1144
+ "description": "The json object with body of the call to getConfig",
1145
+ "additionalProperties": {
1146
+ "type": "string"
1147
+ }
1148
+ },
1149
+ "headers": {
1150
+ "type": "object",
1151
+ "description": "The json object with headers of the call to getConfig",
1152
+ "additionalProperties": {
1153
+ "type": "string"
1154
+ }
1155
+ },
1156
+ "handleFailure": {
1157
+ "type": "string",
1158
+ "enum": [
1159
+ "ignore",
1160
+ "fail"
1161
+ ],
1162
+ "description": "return failure or ignore getConfig",
1163
+ "default": "ignore"
1164
+ },
1165
+ "requestFields": {
1166
+ "type": "object",
1167
+ "description": "The json object with response fields of the call to getDevice",
1168
+ "additionalProperties": {
1169
+ "type": "string"
1170
+ },
1171
+ "properties": {}
1172
+ },
1173
+ "responseDatakey": {
1174
+ "type": "string",
1175
+ "description": "place in the response where the data is - supports jsonquery",
1176
+ "default": ""
1177
+ },
1178
+ "responseFields": {
1179
+ "type": "object",
1180
+ "description": "The json object with response fields of the call to getConfig",
1181
+ "additionalProperties": {
1182
+ "type": "string"
1183
+ },
1184
+ "properties": {}
1185
+ }
1186
+ }
1187
+ }
1188
+ },
1189
+ "getCount": {
1190
+ "type": "array",
1191
+ "description": "Broker call(s) to getCount",
1192
+ "items": {
1193
+ "properties": {
1194
+ "path": {
1195
+ "type": "string",
1196
+ "description": "The fully qualified path of the call to getCount (e.g. /rest/api/device/{deviceid})",
1197
+ "default": ""
1198
+ },
1199
+ "method": {
1200
+ "type": "string",
1201
+ "description": "The method of the call to getCount",
1202
+ "default": "GET"
1203
+ },
1204
+ "query": {
1205
+ "type": "object",
1206
+ "description": "The json object with query parameters of the call to getCount",
1207
+ "additionalProperties": {
1208
+ "type": "string"
1209
+ }
1210
+ },
1211
+ "body": {
1212
+ "type": "object",
1213
+ "description": "The json object with body of the call to getCount",
1214
+ "additionalProperties": {
1215
+ "type": "string"
1216
+ }
1217
+ },
1218
+ "headers": {
1219
+ "type": "object",
1220
+ "description": "The json object with headers of the call to getCount",
1221
+ "additionalProperties": {
1222
+ "type": "string"
1223
+ }
1224
+ },
1225
+ "handleFailure": {
1226
+ "type": "string",
1227
+ "enum": [
1228
+ "ignore",
1229
+ "fail"
1230
+ ],
1231
+ "description": "return failure or ignore getCount",
1232
+ "default": "ignore"
1233
+ },
1234
+ "requestFields": {
1235
+ "type": "object",
1236
+ "description": "The json object with response fields of the call to getDevice",
1237
+ "additionalProperties": {
1238
+ "type": "string"
1239
+ },
1240
+ "properties": {}
1241
+ },
1242
+ "responseDatakey": {
1243
+ "type": "string",
1244
+ "description": "place in the response where the data is - supports jsonquery",
1245
+ "default": ""
1246
+ },
1247
+ "responseFields": {
1248
+ "type": "object",
1249
+ "description": "The json object with response fields of the call to getConfig",
1250
+ "additionalProperties": {
1251
+ "type": "string"
1252
+ },
1253
+ "properties": {}
1254
+ }
1255
+ }
1256
+ }
1257
+ }
1258
+ }
791
1259
  }
792
1260
  }
793
1261
  }
Binary file
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": "0.2.5",
3
+ "configLines": 8587,
4
+ "scriptLines": 1707,
5
+ "codeLines": 16243,
6
+ "testLines": 13333,
7
+ "testCases": 706,
8
+ "totalCodeLines": 31283,
9
+ "wfTasks": 168
10
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "errors": [],
3
+ "statistics": [
4
+ {
5
+ "owner": "errorJson",
6
+ "description": "New adapter errors available for use",
7
+ "value": 0
8
+ },
9
+ {
10
+ "owner": "errorJson",
11
+ "description": "Adapter errors no longer available for use",
12
+ "value": 0
13
+ },
14
+ {
15
+ "owner": "errorJson",
16
+ "description": "Adapter errors that have been updated (e.g. recommendation changes)",
17
+ "value": 29
18
+ },
19
+ {
20
+ "owner": "packageJson",
21
+ "description": "Number of production dependencies",
22
+ "value": 12
23
+ },
24
+ {
25
+ "owner": "packageJson",
26
+ "description": "Number of development dependencies",
27
+ "value": 7
28
+ },
29
+ {
30
+ "owner": "packageJson",
31
+ "description": "Number of npm scripts",
32
+ "value": 21
33
+ },
34
+ {
35
+ "owner": "packageJson",
36
+ "description": "Runtime Library dependency",
37
+ "value": "^4.39.2"
38
+ },
39
+ {
40
+ "owner": "propertiesSchemaJson",
41
+ "description": "Adapter properties defined in the propertiesSchema file",
42
+ "value": 61
43
+ },
44
+ {
45
+ "owner": "readmeMd",
46
+ "description": "Number of lines in the README.md",
47
+ "value": 615
48
+ },
49
+ {
50
+ "owner": "unitTestJS",
51
+ "description": "Number of lines of code in unit tests",
52
+ "value": 7571
53
+ },
54
+ {
55
+ "owner": "unitTestJS",
56
+ "description": "Number of unit tests",
57
+ "value": 477
58
+ },
59
+ {
60
+ "owner": "integrationTestJS",
61
+ "description": "Number of lines of code in integration tests",
62
+ "value": 4298
63
+ },
64
+ {
65
+ "owner": "integrationTestJS",
66
+ "description": "Number of integration tests",
67
+ "value": 156
68
+ },
69
+ {
70
+ "owner": "staticFile",
71
+ "description": "Number of lines of code in adapterBase.js",
72
+ "value": 1007
73
+ },
74
+ {
75
+ "owner": "staticFile",
76
+ "description": "Number of static files added",
77
+ "value": 30
78
+ },
79
+ {
80
+ "owner": "Overall",
81
+ "description": "Total lines of Code",
82
+ "value": 12876
83
+ },
84
+ {
85
+ "owner": "Overall",
86
+ "description": "Total Tests",
87
+ "value": 633
88
+ },
89
+ {
90
+ "owner": "Overall",
91
+ "description": "Total Files",
92
+ "value": 6
93
+ }
94
+ ]
95
+ }