@itentialopensource/adapter-terraform_enterprise 0.1.2 → 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 (69) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +12 -12
  3. package/AUTH.md +39 -0
  4. package/BROKER.md +199 -0
  5. package/CALLS.md +169 -0
  6. package/CHANGELOG.md +33 -5
  7. package/CODE_OF_CONDUCT.md +12 -17
  8. package/CONTRIBUTING.md +88 -74
  9. package/ENHANCE.md +69 -0
  10. package/PROPERTIES.md +641 -0
  11. package/README.md +251 -420
  12. package/SUMMARY.md +9 -0
  13. package/SYSTEMINFO.md +11 -0
  14. package/TROUBLESHOOT.md +47 -0
  15. package/adapter.js +1220 -119
  16. package/adapterBase.js +1317 -43
  17. package/entities/.generic/action.json +214 -0
  18. package/entities/.generic/schema.json +28 -0
  19. package/entities/.system/action.json +3 -2
  20. package/entities/Account/action.json +2 -0
  21. package/entities/NotificationConfigurations/action.json +4 -0
  22. package/entities/OAuthClients/action.json +3 -0
  23. package/entities/OAuthTokens/action.json +2 -0
  24. package/entities/OrganizationMemberships/action.json +2 -0
  25. package/entities/OrganizationToken/action.json +2 -0
  26. package/entities/PlanExports/action.json +2 -0
  27. package/entities/Policies/action.json +4 -0
  28. package/entities/PolicyChecks/action.json +1 -0
  29. package/entities/PolicySetParameters/action.json +3 -0
  30. package/entities/PolicySets/action.json +8 -0
  31. package/entities/Runs/action.json +5 -0
  32. package/entities/StateVersions/action.json +1 -0
  33. package/entities/Variables/action.json +3 -0
  34. package/entities/Workspaces/action.json +5 -0
  35. package/entities/WorkspacesVariables/action.json +3 -0
  36. package/error.json +12 -0
  37. package/package.json +45 -22
  38. package/pronghorn.json +656 -7
  39. package/propertiesDecorators.json +14 -0
  40. package/propertiesSchema.json +479 -6
  41. package/refs?service=git-upload-pack +0 -0
  42. package/report/Terraform.OpenApi3Json.json +3984 -0
  43. package/report/adapterInfo.json +10 -0
  44. package/report/updateReport1594344536029.json +95 -0
  45. package/report/updateReport1615837746160.json +95 -0
  46. package/report/updateReport1653324214945.json +120 -0
  47. package/sampleProperties.json +147 -21
  48. package/test/integration/adapterTestBasicGet.js +85 -0
  49. package/test/integration/adapterTestConnectivity.js +93 -0
  50. package/test/integration/adapterTestIntegration.js +634 -3369
  51. package/test/unit/adapterBaseTestUnit.js +949 -0
  52. package/test/unit/adapterTestUnit.js +1234 -3329
  53. package/utils/adapterInfo.js +206 -0
  54. package/utils/addAuth.js +94 -0
  55. package/utils/artifactize.js +0 -1
  56. package/utils/basicGet.js +50 -0
  57. package/utils/checkMigrate.js +63 -0
  58. package/utils/entitiesToDB.js +179 -0
  59. package/utils/findPath.js +74 -0
  60. package/utils/modify.js +154 -0
  61. package/utils/packModificationScript.js +1 -1
  62. package/utils/patches2bundledDeps.js +90 -0
  63. package/utils/pre-commit.sh +3 -0
  64. package/utils/removeHooks.js +20 -0
  65. package/utils/tbScript.js +184 -0
  66. package/utils/tbUtils.js +469 -0
  67. package/utils/testRunner.js +16 -16
  68. package/utils/troubleshootingAdapter.js +190 -0
  69. package/gl-code-quality-report.json +0 -1
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "type": "encryption",
4
+ "pointer": "/authentication/password"
5
+ },
6
+ {
7
+ "type": "encryption",
8
+ "pointer": "/authentication/token"
9
+ },
10
+ {
11
+ "type": "encryption",
12
+ "pointer": "/mongo/password"
13
+ }
14
+ ]
@@ -46,6 +46,16 @@
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
60
  "type": [
51
61
  "boolean",
@@ -88,6 +98,9 @@
88
98
  },
89
99
  "mongo": {
90
100
  "$ref": "#/definitions/mongo"
101
+ },
102
+ "devicebroker": {
103
+ "$ref": "#/definitions/devicebroker"
91
104
  }
92
105
  },
93
106
  "required": [
@@ -107,6 +120,7 @@
107
120
  "enum": [
108
121
  "basic user_password",
109
122
  "static_token",
123
+ "jwt_token",
110
124
  "request_token",
111
125
  "no_authentication"
112
126
  ]
@@ -193,7 +207,10 @@
193
207
  ]
194
208
  },
195
209
  "auth_field": {
196
- "type": "string",
210
+ "type": [
211
+ "string",
212
+ "array"
213
+ ],
197
214
  "description": "The field in which to pass the token",
198
215
  "default": "header.headers.X-AUTH-TOKEN",
199
216
  "examples": [
@@ -205,7 +222,10 @@
205
222
  ]
206
223
  },
207
224
  "auth_field_format": {
208
- "type": "string",
225
+ "type": [
226
+ "string",
227
+ "array"
228
+ ],
209
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.",
210
230
  "default": "{token}",
211
231
  "examples": [
@@ -215,6 +235,26 @@
215
235
  "Basic {b64}{username}:{password}{/b64}",
216
236
  "token={token}"
217
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": ""
218
258
  }
219
259
  },
220
260
  "required": [
@@ -314,6 +354,10 @@
314
354
  "examples": [
315
355
  "/api/version/ping"
316
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"
317
361
  }
318
362
  },
319
363
  "required": [
@@ -371,9 +415,9 @@
371
415
  },
372
416
  "concurrent_max": {
373
417
  "type": "integer",
374
- "description": "defines the number of request that Pronghorn can send terraform at one time",
418
+ "description": "defines the number of request that Pronghorn can send terraform_enterprise at one time",
375
419
  "default": 1,
376
- "minimum": 1,
420
+ "minimum": 0,
377
421
  "maximum": 1000
378
422
  },
379
423
  "expire_timeout": {
@@ -385,7 +429,7 @@
385
429
  },
386
430
  "avg_runtime": {
387
431
  "type": "integer",
388
- "description": "an approximate average of how long it takes terraform to handle each request",
432
+ "description": "an approximate average of how long it takes terraform_enterprise to handle each request",
389
433
  "default": 200,
390
434
  "minimum": 50,
391
435
  "maximum": 60000
@@ -510,6 +554,11 @@
510
554
  "type": "boolean",
511
555
  "description": "Archives each request/response and corresponding metrics",
512
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
513
562
  }
514
563
  },
515
564
  "required": [
@@ -550,8 +599,19 @@
550
599
  "http",
551
600
  "https",
552
601
  "socks4",
553
- "socks5"
602
+ "socks5",
603
+ "tls"
554
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": ""
555
615
  }
556
616
  },
557
617
  "required": [
@@ -783,6 +843,419 @@
783
843
  }
784
844
  }
785
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
+ }
786
1259
  }
787
1260
  }
788
1261
  }
Binary file