@itentialopensource/adapter-moogsoft 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 (74) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +12 -12
  3. package/.jshintrc +0 -0
  4. package/AUTH.md +39 -0
  5. package/BROKER.md +199 -0
  6. package/CALLS.md +169 -0
  7. package/CHANGELOG.md +37 -2
  8. package/CODE_OF_CONDUCT.md +12 -17
  9. package/CONTRIBUTING.md +88 -74
  10. package/ENHANCE.md +69 -0
  11. package/LICENSE +0 -0
  12. package/PROPERTIES.md +641 -0
  13. package/README.md +249 -418
  14. package/SUMMARY.md +9 -0
  15. package/SYSTEMINFO.md +11 -0
  16. package/TROUBLESHOOT.md +47 -0
  17. package/adapter.js +1636 -35
  18. package/adapterBase.js +1331 -50
  19. package/entities/.generic/action.json +214 -0
  20. package/entities/.generic/schema.json +28 -0
  21. package/entities/.system/action.json +1 -0
  22. package/entities/Alerts/action.json +9 -0
  23. package/entities/Cookbooks/action.json +3 -0
  24. package/entities/Integrations/action.json +3 -0
  25. package/entities/Licenses/action.json +1 -0
  26. package/entities/MaintenanceWindows/action.json +4 -0
  27. package/entities/MergeGroups/action.json +4 -0
  28. package/entities/Processes/action.json +1 -0
  29. package/entities/Recipes/action.json +5 -0
  30. package/entities/SecurityRealms/action.json +2 -0
  31. package/entities/Services/action.json +1 -0
  32. package/entities/Situations/action.json +20 -0
  33. package/entities/Teams/action.json +3 -0
  34. package/entities/Tempus/action.json +3 -0
  35. package/entities/Threads/action.json +4 -0
  36. package/entities/Tools/action.json +2 -0
  37. package/entities/Users/action.json +2 -0
  38. package/entities/Workflows/action.json +4 -0
  39. package/error.json +12 -0
  40. package/package.json +51 -25
  41. package/pronghorn.json +642 -0
  42. package/propertiesDecorators.json +14 -0
  43. package/propertiesSchema.json +487 -10
  44. package/refs?service=git-upload-pack +0 -0
  45. package/report/Moogsoft.OpenApi3Json.json +11552 -0
  46. package/report/adapterInfo.json +10 -0
  47. package/report/updateReport1594225130913.json +95 -0
  48. package/report/updateReport1615386555916.json +95 -0
  49. package/report/updateReport1653652218796.json +120 -0
  50. package/sampleProperties.json +103 -5
  51. package/test/integration/adapterTestBasicGet.js +85 -0
  52. package/test/integration/adapterTestConnectivity.js +93 -0
  53. package/test/integration/adapterTestIntegration.js +33 -102
  54. package/test/unit/adapterBaseTestUnit.js +949 -0
  55. package/test/unit/adapterTestUnit.js +643 -110
  56. package/utils/adapterInfo.js +206 -0
  57. package/utils/addAuth.js +94 -0
  58. package/utils/artifactize.js +9 -14
  59. package/utils/basicGet.js +50 -0
  60. package/utils/checkMigrate.js +63 -0
  61. package/utils/entitiesToDB.js +179 -0
  62. package/utils/findPath.js +74 -0
  63. package/utils/modify.js +154 -0
  64. package/utils/packModificationScript.js +1 -1
  65. package/utils/patches2bundledDeps.js +90 -0
  66. package/utils/pre-commit.sh +4 -1
  67. package/utils/removeHooks.js +20 -0
  68. package/utils/setup.js +0 -0
  69. package/utils/tbScript.js +184 -0
  70. package/utils/tbUtils.js +469 -0
  71. package/utils/testRunner.js +16 -16
  72. package/utils/troubleshootingAdapter.js +190 -0
  73. package/workflows/README.md +0 -0
  74. package/gl-code-quality-report.json +0 -1
@@ -46,8 +46,21 @@
46
46
  "none"
47
47
  ]
48
48
  },
49
+ "encode_pathvars": {
50
+ "type": "boolean",
51
+ "description": "When true the path variables are encoded in the url",
52
+ "default": true
53
+ },
54
+ "encode_queryvars": {
55
+ "type": "boolean",
56
+ "description": "When true the query parameters are encoded in the url",
57
+ "default": true
58
+ },
49
59
  "save_metric": {
50
- "type": ["boolean", "string"],
60
+ "type": [
61
+ "boolean",
62
+ "string"
63
+ ],
51
64
  "description": "When true the metrics collected by the adapter will be stored in mongo or on the filesystem",
52
65
  "default": false
53
66
  },
@@ -85,6 +98,9 @@
85
98
  },
86
99
  "mongo": {
87
100
  "$ref": "#/definitions/mongo"
101
+ },
102
+ "devicebroker": {
103
+ "$ref": "#/definitions/devicebroker"
88
104
  }
89
105
  },
90
106
  "required": [
@@ -104,6 +120,7 @@
104
120
  "enum": [
105
121
  "basic user_password",
106
122
  "static_token",
123
+ "jwt_token",
107
124
  "request_token",
108
125
  "no_authentication"
109
126
  ]
@@ -190,7 +207,10 @@
190
207
  ]
191
208
  },
192
209
  "auth_field": {
193
- "type": "string",
210
+ "type": [
211
+ "string",
212
+ "array"
213
+ ],
194
214
  "description": "The field in which to pass the token",
195
215
  "default": "header.headers.X-AUTH-TOKEN",
196
216
  "examples": [
@@ -202,7 +222,10 @@
202
222
  ]
203
223
  },
204
224
  "auth_field_format": {
205
- "type": "string",
225
+ "type": [
226
+ "string",
227
+ "array"
228
+ ],
206
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.",
207
230
  "default": "{token}",
208
231
  "examples": [
@@ -212,6 +235,26 @@
212
235
  "Basic {b64}{username}:{password}{/b64}",
213
236
  "token={token}"
214
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": ""
215
258
  }
216
259
  },
217
260
  "required": [
@@ -311,6 +354,10 @@
311
354
  "examples": [
312
355
  "/api/version/ping"
313
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"
314
361
  }
315
362
  },
316
363
  "required": [
@@ -370,7 +417,7 @@
370
417
  "type": "integer",
371
418
  "description": "defines the number of request that Pronghorn can send moogsoft at one time",
372
419
  "default": 1,
373
- "minimum": 1,
420
+ "minimum": 0,
374
421
  "maximum": 1000
375
422
  },
376
423
  "expire_timeout": {
@@ -450,11 +497,12 @@
450
497
  "maximum": 20
451
498
  },
452
499
  "limit_retry_error": {
453
- "type": ["integer", "array"],
500
+ "type": [
501
+ "integer",
502
+ "array"
503
+ ],
454
504
  "description": "http error status number which defines that no capacity was available and thus after waiting a short interval the adapter can retry the request. Supports an array of numbers or strings including a range provided as '###-###'",
455
- "default": 0,
456
- "minimum": 0,
457
- "maximum": 1000
505
+ "default": 0
458
506
  },
459
507
  "failover_codes": {
460
508
  "type": "array",
@@ -506,6 +554,11 @@
506
554
  "type": "boolean",
507
555
  "description": "Archives each request/response and corresponding metrics",
508
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
509
562
  }
510
563
  },
511
564
  "required": [
@@ -546,8 +599,19 @@
546
599
  "http",
547
600
  "https",
548
601
  "socks4",
549
- "socks5"
602
+ "socks5",
603
+ "tls"
550
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": ""
551
615
  }
552
616
  },
553
617
  "required": [
@@ -779,6 +843,419 @@
779
843
  }
780
844
  }
781
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
+ }
782
1259
  }
783
1260
  }
784
- }
1261
+ }
Binary file