@things-factory/integration-base 7.0.0-alpha.9 → 7.0.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 (351) hide show
  1. package/dist-server/controllers/index.d.ts +1 -0
  2. package/dist-server/controllers/scenario-controller.d.ts +4 -0
  3. package/dist-server/controllers/scenario-controller.js +23 -7
  4. package/dist-server/controllers/scenario-controller.js.map +1 -1
  5. package/dist-server/engine/analyzer/analyze-integration.d.ts +5 -0
  6. package/dist-server/engine/analyzer/analyze-integration.js +1 -2
  7. package/dist-server/engine/analyzer/analyze-integration.js.map +1 -1
  8. package/dist-server/engine/connection-manager.d.ts +35 -0
  9. package/dist-server/engine/connection-manager.js +50 -13
  10. package/dist-server/engine/connection-manager.js.map +1 -1
  11. package/dist-server/engine/connector/echo-back-connector.d.ts +9 -0
  12. package/dist-server/engine/connector/echo-back-connector.js +1 -1
  13. package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
  14. package/dist-server/engine/connector/echo-back-server.d.ts +8 -0
  15. package/dist-server/engine/connector/echo-back-server.js.map +1 -1
  16. package/dist-server/engine/connector/graphql-connector.d.ts +19 -0
  17. package/dist-server/engine/connector/graphql-connector.js +9 -9
  18. package/dist-server/engine/connector/graphql-connector.js.map +1 -1
  19. package/dist-server/engine/connector/http-connector.d.ts +25 -0
  20. package/dist-server/engine/connector/http-connector.js.map +1 -1
  21. package/dist-server/engine/connector/index.d.ts +12 -0
  22. package/dist-server/engine/connector/mqtt-connector.d.ts +14 -0
  23. package/dist-server/engine/connector/mqtt-connector.js +1 -1
  24. package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
  25. package/dist-server/engine/connector/mssql-connector.d.ts +30 -0
  26. package/dist-server/engine/connector/mssql-connector.js +21 -5
  27. package/dist-server/engine/connector/mssql-connector.js.map +1 -1
  28. package/dist-server/engine/connector/mysql-connector.d.ts +13 -0
  29. package/dist-server/engine/connector/mysql-connector.js.map +1 -1
  30. package/dist-server/engine/connector/operato-connector.d.ts +27 -0
  31. package/dist-server/engine/connector/operato-connector.js +21 -24
  32. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  33. package/dist-server/engine/connector/oracle-connector.d.ts +29 -0
  34. package/dist-server/engine/connector/oracle-connector.js +1 -1
  35. package/dist-server/engine/connector/oracle-connector.js.map +1 -1
  36. package/dist-server/engine/connector/postgresql-connector.d.ts +14 -0
  37. package/dist-server/engine/connector/postgresql-connector.js +2 -2
  38. package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
  39. package/dist-server/engine/connector/proxy-connector.d.ts +15 -0
  40. package/dist-server/engine/connector/proxy-connector.js +44 -0
  41. package/dist-server/engine/connector/proxy-connector.js.map +1 -0
  42. package/dist-server/engine/connector/socket-server.d.ts +9 -0
  43. package/dist-server/engine/connector/socket-server.js +1 -1
  44. package/dist-server/engine/connector/socket-server.js.map +1 -1
  45. package/dist-server/engine/connector/sqlite-connector.d.ts +10 -0
  46. package/dist-server/engine/connector/sqlite-connector.js +2 -2
  47. package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
  48. package/dist-server/engine/edge-client.d.ts +18 -0
  49. package/dist-server/engine/edge-client.js +37 -0
  50. package/dist-server/engine/edge-client.js.map +1 -0
  51. package/dist-server/engine/index.d.ts +8 -0
  52. package/dist-server/engine/index.js +1 -0
  53. package/dist-server/engine/index.js.map +1 -1
  54. package/dist-server/engine/pending-queue.d.ts +24 -0
  55. package/dist-server/engine/pending-queue.js.map +1 -1
  56. package/dist-server/engine/scenario-engine.d.ts +11 -0
  57. package/dist-server/engine/scenario-engine.js.map +1 -1
  58. package/dist-server/engine/task/book-up-scenario.d.ts +1 -0
  59. package/dist-server/engine/task/csv-readline.d.ts +1 -0
  60. package/dist-server/engine/task/csv-readline.js.map +1 -1
  61. package/dist-server/engine/task/data-accessor.d.ts +1 -0
  62. package/dist-server/engine/task/data-mapper.d.ts +1 -0
  63. package/dist-server/engine/task/data-mapper.js.map +1 -1
  64. package/dist-server/engine/task/database-query.d.ts +1 -0
  65. package/dist-server/engine/task/database-query.js +21 -12
  66. package/dist-server/engine/task/database-query.js.map +1 -1
  67. package/dist-server/engine/task/echo-receive.d.ts +1 -0
  68. package/dist-server/engine/task/echo-send.d.ts +1 -0
  69. package/dist-server/engine/task/echo-send.js.map +1 -1
  70. package/dist-server/engine/task/empty-check.d.ts +1 -0
  71. package/dist-server/engine/task/empty-check.js.map +1 -1
  72. package/dist-server/engine/task/end.d.ts +1 -0
  73. package/dist-server/engine/task/floating-point.d.ts +1 -0
  74. package/dist-server/engine/task/floating-point.js.map +1 -1
  75. package/dist-server/engine/task/goto.d.ts +1 -0
  76. package/dist-server/engine/task/graphql-mutate.d.ts +1 -0
  77. package/dist-server/engine/task/graphql-mutate.js +23 -12
  78. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  79. package/dist-server/engine/task/graphql-query.d.ts +1 -0
  80. package/dist-server/engine/task/graphql-query.js +23 -12
  81. package/dist-server/engine/task/graphql-query.js.map +1 -1
  82. package/dist-server/engine/task/headless-post.d.ts +1 -0
  83. package/dist-server/engine/task/headless-post.js.map +1 -1
  84. package/dist-server/engine/task/headless-scrap.d.ts +1 -0
  85. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  86. package/dist-server/engine/task/http-get.d.ts +1 -0
  87. package/dist-server/engine/task/http-get.js +28 -12
  88. package/dist-server/engine/task/http-get.js.map +1 -1
  89. package/dist-server/engine/task/http-post.d.ts +1 -0
  90. package/dist-server/engine/task/http-post.js +22 -11
  91. package/dist-server/engine/task/http-post.js.map +1 -1
  92. package/dist-server/engine/task/index.d.ts +43 -0
  93. package/dist-server/engine/task/jsonata.d.ts +1 -0
  94. package/dist-server/engine/task/jsonata.js +5 -1
  95. package/dist-server/engine/task/jsonata.js.map +1 -1
  96. package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -0
  97. package/dist-server/engine/task/local-graphql-mutate.js +23 -11
  98. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  99. package/dist-server/engine/task/local-graphql-query.d.ts +1 -0
  100. package/dist-server/engine/task/local-graphql-query.js +23 -11
  101. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  102. package/dist-server/engine/task/log.d.ts +1 -0
  103. package/dist-server/engine/task/log.js +15 -11
  104. package/dist-server/engine/task/log.js.map +1 -1
  105. package/dist-server/engine/task/mqtt-publish.d.ts +1 -0
  106. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  107. package/dist-server/engine/task/mqtt-subscribe.d.ts +1 -0
  108. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  109. package/dist-server/engine/task/oracle-procedure.d.ts +1 -0
  110. package/dist-server/engine/task/oracle-procedure.js +19 -13
  111. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  112. package/dist-server/engine/task/pick-pending-scenario.d.ts +1 -0
  113. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  114. package/dist-server/engine/task/publish.d.ts +1 -0
  115. package/dist-server/engine/task/publish.js.map +1 -1
  116. package/dist-server/engine/task/random.d.ts +1 -0
  117. package/dist-server/engine/task/reset-pending-queue.d.ts +1 -0
  118. package/dist-server/engine/task/script.d.ts +1 -0
  119. package/dist-server/engine/task/script.js +35 -18
  120. package/dist-server/engine/task/script.js.map +1 -1
  121. package/dist-server/engine/task/set-domain.d.ts +1 -0
  122. package/dist-server/engine/task/set-domain.js.map +1 -1
  123. package/dist-server/engine/task/sleep.d.ts +1 -0
  124. package/dist-server/engine/task/sleep.js.map +1 -1
  125. package/dist-server/engine/task/socket-listener.d.ts +1 -0
  126. package/dist-server/engine/task/socket-listener.js.map +1 -1
  127. package/dist-server/engine/task/state-read.d.ts +1 -0
  128. package/dist-server/engine/task/state-read.js.map +1 -1
  129. package/dist-server/engine/task/state-write.d.ts +1 -0
  130. package/dist-server/engine/task/state-write.js.map +1 -1
  131. package/dist-server/engine/task/stop-scenario.d.ts +1 -0
  132. package/dist-server/engine/task/sub-scenario.d.ts +1 -0
  133. package/dist-server/engine/task/switch-goto.d.ts +1 -0
  134. package/dist-server/engine/task/switch-range-goto.d.ts +1 -0
  135. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  136. package/dist-server/engine/task/switch-range-scenario.d.ts +1 -0
  137. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  138. package/dist-server/engine/task/switch-range-set.d.ts +1 -0
  139. package/dist-server/engine/task/switch-range-set.js.map +1 -1
  140. package/dist-server/engine/task/switch-scenario.d.ts +1 -0
  141. package/dist-server/engine/task/switch-set.d.ts +1 -0
  142. package/dist-server/engine/task/throw.d.ts +1 -0
  143. package/dist-server/engine/task/utils/headless-pool-for-scenario.d.ts +1 -0
  144. package/dist-server/engine/task/utils/headless-pool-for-scenario.js +1 -2
  145. package/dist-server/engine/task/utils/headless-pool-for-scenario.js.map +1 -1
  146. package/dist-server/engine/task/utils/substitute.d.ts +1 -0
  147. package/dist-server/engine/task/utils/substitute.js +1 -2
  148. package/dist-server/engine/task/utils/substitute.js.map +1 -1
  149. package/dist-server/engine/task/variables.d.ts +1 -0
  150. package/dist-server/engine/task-registry.d.ts +12 -0
  151. package/dist-server/engine/types.d.ts +94 -0
  152. package/dist-server/engine/types.js.map +1 -1
  153. package/dist-server/index.d.ts +6 -0
  154. package/dist-server/index.js +1 -2
  155. package/dist-server/index.js.map +1 -1
  156. package/dist-server/migrations/index.d.ts +1 -0
  157. package/dist-server/restful/index.d.ts +1 -0
  158. package/dist-server/restful/unstable/index.d.ts +7 -0
  159. package/dist-server/restful/unstable/run-scenario.d.ts +1 -0
  160. package/dist-server/restful/unstable/run-scenario.js +0 -1
  161. package/dist-server/restful/unstable/run-scenario.js.map +1 -1
  162. package/dist-server/restful/unstable/scenario-instance.d.ts +1 -0
  163. package/dist-server/restful/unstable/scenario-instances.d.ts +1 -0
  164. package/dist-server/restful/unstable/scenario.d.ts +1 -0
  165. package/dist-server/restful/unstable/scenarios.d.ts +1 -0
  166. package/dist-server/restful/unstable/start-scenario.d.ts +1 -0
  167. package/dist-server/restful/unstable/stop-scenario.d.ts +1 -0
  168. package/dist-server/routers/scenario-schedule-callback-router.d.ts +1 -0
  169. package/dist-server/routers/scenario-schedule-callback-router.js +2 -3
  170. package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -1
  171. package/dist-server/routers/scenario-view-router.d.ts +1 -0
  172. package/dist-server/routers/scenario-view-router.js.map +1 -1
  173. package/dist-server/routes.d.ts +1 -0
  174. package/dist-server/routes.js.map +1 -1
  175. package/dist-server/service/analysis/analysis-query.d.ts +3 -0
  176. package/dist-server/service/analysis/analysis-query.js +2 -2
  177. package/dist-server/service/analysis/analysis-query.js.map +1 -1
  178. package/dist-server/service/analysis/index.d.ts +2 -0
  179. package/dist-server/service/connection/connection-mutation.d.ts +30 -0
  180. package/dist-server/service/connection/connection-mutation.js +6 -10
  181. package/dist-server/service/connection/connection-mutation.js.map +1 -1
  182. package/dist-server/service/connection/connection-query.d.ts +12 -0
  183. package/dist-server/service/connection/connection-query.js +18 -11
  184. package/dist-server/service/connection/connection-query.js.map +1 -1
  185. package/dist-server/service/connection/connection-subscription.d.ts +10 -0
  186. package/dist-server/service/connection/connection-subscription.js +3 -3
  187. package/dist-server/service/connection/connection-subscription.js.map +1 -1
  188. package/dist-server/service/connection/connection-type.d.ts +133 -0
  189. package/dist-server/service/connection/connection-type.js +45 -21
  190. package/dist-server/service/connection/connection-type.js.map +1 -1
  191. package/dist-server/service/connection/index.d.ts +6 -0
  192. package/dist-server/service/connector/connector-query.d.ts +6 -0
  193. package/dist-server/service/connector/connector-query.js +2 -2
  194. package/dist-server/service/connector/connector-query.js.map +1 -1
  195. package/dist-server/service/connector/connector-type.d.ts +12 -0
  196. package/dist-server/service/connector/connector-type.js +4 -4
  197. package/dist-server/service/connector/connector-type.js.map +1 -1
  198. package/dist-server/service/connector/index.d.ts +3 -0
  199. package/dist-server/service/index.d.ts +17 -0
  200. package/dist-server/service/payload-log/index.d.ts +5 -0
  201. package/dist-server/service/payload-log/payload-log-mutation.d.ts +10 -0
  202. package/dist-server/service/payload-log/payload-log-mutation.js +5 -5
  203. package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -1
  204. package/dist-server/service/payload-log/payload-log-query.d.ts +11 -0
  205. package/dist-server/service/payload-log/payload-log-query.js +3 -3
  206. package/dist-server/service/payload-log/payload-log-query.js.map +1 -1
  207. package/dist-server/service/payload-log/payload-log-type.d.ts +15 -0
  208. package/dist-server/service/payload-log/payload-log-type.js +6 -6
  209. package/dist-server/service/payload-log/payload-log-type.js.map +1 -1
  210. package/dist-server/service/payload-log/payload-log.d.ts +23 -0
  211. package/dist-server/service/payload-log/payload-log.js +6 -6
  212. package/dist-server/service/payload-log/payload-log.js.map +1 -1
  213. package/dist-server/service/property-spec.d.ts +12 -0
  214. package/dist-server/service/property-spec.js +6 -2
  215. package/dist-server/service/property-spec.js.map +1 -1
  216. package/dist-server/service/scenario/index.d.ts +5 -0
  217. package/dist-server/service/scenario/scenario-mutation.d.ts +13 -0
  218. package/dist-server/service/scenario/scenario-mutation.js +3 -3
  219. package/dist-server/service/scenario/scenario-mutation.js.map +1 -1
  220. package/dist-server/service/scenario/scenario-query.d.ts +18 -0
  221. package/dist-server/service/scenario/scenario-query.js +3 -3
  222. package/dist-server/service/scenario/scenario-query.js.map +1 -1
  223. package/dist-server/service/scenario/scenario-type.d.ts +30 -0
  224. package/dist-server/service/scenario/scenario-type.js +14 -6
  225. package/dist-server/service/scenario/scenario-type.js.map +1 -1
  226. package/dist-server/service/scenario/scenario.d.ts +36 -0
  227. package/dist-server/service/scenario/scenario.js +18 -9
  228. package/dist-server/service/scenario/scenario.js.map +1 -1
  229. package/dist-server/service/scenario-flow/scenario-flow.d.ts +6 -0
  230. package/dist-server/service/scenario-flow/scenario-flow.js +2 -2
  231. package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -1
  232. package/dist-server/service/scenario-instance/index.d.ts +5 -0
  233. package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +6 -0
  234. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +3 -3
  235. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
  236. package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +6 -0
  237. package/dist-server/service/scenario-instance/scenario-instance-query.js +3 -67
  238. package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -1
  239. package/dist-server/service/scenario-instance/scenario-instance-subscription.d.ts +10 -0
  240. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +2 -2
  241. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -1
  242. package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +102 -0
  243. package/dist-server/service/scenario-instance/scenario-instance-type.js +127 -33
  244. package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
  245. package/dist-server/service/scenario-queue/index.d.ts +3 -0
  246. package/dist-server/service/scenario-queue/scenario-queue-subscription.d.ts +6 -0
  247. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +2 -2
  248. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -1
  249. package/dist-server/service/scenario-queue/scenario-queue-type.d.ts +11 -0
  250. package/dist-server/service/scenario-queue/scenario-queue-type.js +4 -4
  251. package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -1
  252. package/dist-server/service/state-register/index.d.ts +6 -0
  253. package/dist-server/service/state-register/state-register-mutation.d.ts +11 -0
  254. package/dist-server/service/state-register/state-register-mutation.js +2 -2
  255. package/dist-server/service/state-register/state-register-mutation.js.map +1 -1
  256. package/dist-server/service/state-register/state-register-query.d.ts +14 -0
  257. package/dist-server/service/state-register/state-register-query.js +3 -3
  258. package/dist-server/service/state-register/state-register-query.js.map +1 -1
  259. package/dist-server/service/state-register/state-register-type.d.ts +23 -0
  260. package/dist-server/service/state-register/state-register-type.js +6 -6
  261. package/dist-server/service/state-register/state-register-type.js.map +1 -1
  262. package/dist-server/service/state-register/state-register.d.ts +22 -0
  263. package/dist-server/service/state-register/state-register.js +3 -3
  264. package/dist-server/service/state-register/state-register.js.map +1 -1
  265. package/dist-server/service/step/index.d.ts +5 -0
  266. package/dist-server/service/step/step-mutation.d.ts +5 -0
  267. package/dist-server/service/step/step-mutation.js +2 -2
  268. package/dist-server/service/step/step-mutation.js.map +1 -1
  269. package/dist-server/service/step/step-query.d.ts +12 -0
  270. package/dist-server/service/step/step-query.js +3 -3
  271. package/dist-server/service/step/step-query.js.map +1 -1
  272. package/dist-server/service/step/step-type.d.ts +111 -0
  273. package/dist-server/service/step/step-type.js +25 -22
  274. package/dist-server/service/step/step-type.js.map +1 -1
  275. package/dist-server/service/task-type/index.d.ts +3 -0
  276. package/dist-server/service/task-type/task-type-query.d.ts +6 -0
  277. package/dist-server/service/task-type/task-type-query.js +2 -2
  278. package/dist-server/service/task-type/task-type-query.js.map +1 -1
  279. package/dist-server/service/task-type/task-type-type.d.ts +12 -0
  280. package/dist-server/service/task-type/task-type-type.js +4 -4
  281. package/dist-server/service/task-type/task-type-type.js.map +1 -1
  282. package/dist-server/tsconfig.tsbuildinfo +1 -1
  283. package/helps/integration/concept/script-internal-variables.ja.md +21 -1
  284. package/helps/integration/concept/script-internal-variables.ko.md +17 -0
  285. package/helps/integration/concept/script-internal-variables.md +18 -0
  286. package/helps/integration/concept/script-internal-variables.ms.md +19 -1
  287. package/helps/integration/concept/script-internal-variables.zh.md +18 -0
  288. package/helps/integration/connector/mssql-connector.ja.md +13 -9
  289. package/helps/integration/connector/mssql-connector.ko.md +13 -9
  290. package/helps/integration/connector/mssql-connector.md +13 -9
  291. package/helps/integration/connector/mssql-connector.ms.md +13 -9
  292. package/helps/integration/connector/mssql-connector.zh.md +13 -9
  293. package/helps/integration/connector/operato-connector.ja.md +0 -3
  294. package/helps/integration/task/script.ja.md +1 -1
  295. package/helps/integration/task/script.ko.md +1 -1
  296. package/helps/integration/task/script.md +1 -1
  297. package/helps/integration/task/script.ms.md +1 -1
  298. package/helps/integration/task/script.zh.md +1 -1
  299. package/package.json +12 -11
  300. package/server/controllers/scenario-controller.ts +60 -11
  301. package/server/engine/connection-manager.ts +63 -14
  302. package/server/engine/connector/echo-back-connector.ts +2 -1
  303. package/server/engine/connector/graphql-connector.ts +12 -9
  304. package/server/engine/connector/mqtt-connector.ts +2 -1
  305. package/server/engine/connector/mssql-connector.ts +21 -5
  306. package/server/engine/connector/operato-connector.ts +22 -26
  307. package/server/engine/connector/oracle-connector.ts +5 -8
  308. package/server/engine/connector/postgresql-connector.ts +3 -2
  309. package/server/engine/connector/proxy-connector.ts +53 -0
  310. package/server/engine/connector/socket-server.ts +1 -1
  311. package/server/engine/connector/sqlite-connector.ts +2 -5
  312. package/server/engine/edge-client.ts +45 -0
  313. package/server/engine/index.ts +2 -1
  314. package/server/engine/task/database-query.ts +21 -12
  315. package/server/engine/task/graphql-mutate.ts +23 -13
  316. package/server/engine/task/graphql-query.ts +22 -13
  317. package/server/engine/task/http-get.ts +26 -12
  318. package/server/engine/task/http-post.ts +22 -11
  319. package/server/engine/task/jsonata.ts +5 -1
  320. package/server/engine/task/local-graphql-mutate.ts +23 -13
  321. package/server/engine/task/local-graphql-query.ts +23 -11
  322. package/server/engine/task/log.ts +14 -11
  323. package/server/engine/task/oracle-procedure.ts +24 -18
  324. package/server/engine/task/script.ts +33 -18
  325. package/server/engine/types.ts +47 -48
  326. package/server/index.ts +1 -2
  327. package/server/restful/unstable/run-scenario.ts +0 -1
  328. package/server/routers/scenario-schedule-callback-router.ts +2 -2
  329. package/server/service/connection/connection-mutation.ts +9 -29
  330. package/server/service/connection/connection-query.ts +17 -7
  331. package/server/service/connection/connection-subscription.ts +1 -1
  332. package/server/service/connection/connection-type.ts +53 -32
  333. package/server/service/payload-log/payload-log-mutation.ts +1 -1
  334. package/server/service/payload-log/payload-log-query.ts +4 -1
  335. package/server/service/payload-log/payload-log.ts +5 -5
  336. package/server/service/property-spec.ts +3 -0
  337. package/server/service/scenario/scenario-query.ts +1 -1
  338. package/server/service/scenario/scenario-type.ts +6 -0
  339. package/server/service/scenario/scenario.ts +26 -7
  340. package/server/service/scenario-instance/scenario-instance-mutation.ts +7 -4
  341. package/server/service/scenario-instance/scenario-instance-query.ts +4 -30
  342. package/server/service/scenario-instance/scenario-instance-type.ts +105 -19
  343. package/server/service/state-register/state-register-query.ts +4 -1
  344. package/server/service/state-register/state-register.ts +1 -1
  345. package/server/service/step/step-query.ts +1 -1
  346. package/server/service/step/step-type.ts +81 -79
  347. package/translations/en.json +4 -1
  348. package/translations/ja.json +4 -1
  349. package/translations/ko.json +4 -1
  350. package/translations/ms.json +4 -1
  351. package/translations/zh.json +4 -1
@@ -5,8 +5,9 @@ import { Domain, getRepository, pubsub, PubSubLogTransport } from '@things-facto
5
5
 
6
6
  import { Connection, ConnectionStatus } from '../service'
7
7
  import { Connector } from './types'
8
+ import { ProxyConnector } from './connector/proxy-connector'
8
9
 
9
- const { combine, timestamp, splat, printf } = format
10
+ const { combine, splat, printf, errors } = format
10
11
  const debug = require('debug')('things-factory:integration-base:connections')
11
12
 
12
13
  const SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone
@@ -17,13 +18,14 @@ const systemTimestamp = format((info, opts) => {
17
18
 
18
19
  export class ConnectionManager {
19
20
  private static connectors: { [propName: string]: Connector } = {}
20
- private static connections = {}
21
- private static logFormat = printf(({ level, message, timestamp }) => {
22
- return `${timestamp} ${level}: ${message}`
21
+ private static connections: { [domainId: string]: { [name: string]: any } } = {}
22
+ private static entities = {}
23
+ private static logFormat = printf(({ level, message, timestamp, stack }) => {
24
+ return `${timestamp} ${level}: ${stack || message}`
23
25
  })
24
26
 
25
27
  public static logger = createLogger({
26
- format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), ConnectionManager.logFormat),
28
+ format: combine(errors({ stack: true }), systemTimestamp({ tz: SYSTEM_TZ }), splat(), ConnectionManager.logFormat),
27
29
  transports: [
28
30
  new (transports as any).DailyRotateFile({
29
31
  filename: `logs/connections-%DATE%.log`,
@@ -43,15 +45,14 @@ export class ConnectionManager {
43
45
  const CONNECTIONS = (
44
46
  await getRepository(Connection).find({
45
47
  where: { active: true },
46
- relations: ['domain', 'creator', 'updater']
48
+ relations: ['domain', 'edge', 'creator', 'updater']
47
49
  })
48
50
  ).map(connection => {
49
51
  var params = {}
50
52
  try {
51
53
  params = JSON.parse(connection.params || '{}')
52
54
  } catch (ex) {
53
- ConnectionManager.logger.error(`connection '${connection.name}' params should be JSON format`)
54
- ConnectionManager.logger.error(ex)
55
+ ConnectionManager.logger.error(`connection '${connection.name}' params should be JSON format`, ex)
55
56
  }
56
57
 
57
58
  return {
@@ -63,14 +64,23 @@ export class ConnectionManager {
63
64
  ConnectionManager.logger.info('Initializing ConnectionManager...')
64
65
 
65
66
  return await Promise.all(
66
- Object.keys(ConnectionManager.connectors).map(type => {
67
- var connector = ConnectionManager.connectors[type]
67
+ [...Object.keys(ConnectionManager.connectors), 'proxy-connector'].map(type => {
68
+ const connector = type == 'proxy-connector' ? ProxyConnector.instance : ConnectionManager.getConnector(type)
69
+
68
70
  ConnectionManager.logger.info(`Connector '${type}' started to ready`)
69
71
 
70
72
  return connector
71
- .ready(CONNECTIONS.filter(connection => connection.type == type) as any)
73
+ .ready(
74
+ CONNECTIONS.filter(connection => {
75
+ if (type == 'proxy-connector') {
76
+ return !!connection.edge
77
+ } else {
78
+ return !connection.edge && connection.type == type
79
+ }
80
+ }) as any
81
+ )
72
82
  .catch(error => {
73
- ConnectionManager.logger.error(error.message)
83
+ ConnectionManager.logger.error(error)
74
84
  })
75
85
  .then(() => {
76
86
  ConnectionManager.logger.info(`All connector for '${type}' ready`)
@@ -103,6 +113,14 @@ export class ConnectionManager {
103
113
  delete ConnectionManager.connectors[type]
104
114
  }
105
115
 
116
+ static getConnections() {
117
+ return ConnectionManager.connections
118
+ }
119
+
120
+ static getEntities() {
121
+ return ConnectionManager.entities
122
+ }
123
+
106
124
  static getConnectionInstance(connection: Connection): any {
107
125
  const { domain, name } = connection
108
126
  return ConnectionManager.connections[domain.id]?.[name]
@@ -119,8 +137,29 @@ export class ConnectionManager {
119
137
  return connection
120
138
  }
121
139
 
140
+ static getConnectionInstanceEntityByName(domain: Domain, name: string): any {
141
+ const connection = ConnectionManager.entities[domain.id]?.[name]
142
+ if(connection) {
143
+ return connection
144
+ }
145
+
146
+ if(domain.parentId) {
147
+ return ConnectionManager.entities[domain.id]?.[name]
148
+ }
149
+ }
150
+
122
151
  static getConnectionInstances(domain: Domain): { [connectionName: string]: any } {
123
152
  const connections = ConnectionManager.connections[domain.id]
153
+ const parentConnections = domain.parentId && ConnectionManager.connections[domain.parentId]
154
+
155
+ return {
156
+ ...parentConnections,
157
+ ...connections
158
+ }
159
+ }
160
+
161
+ static getConnectionInstanceEntities(domain: Domain): { [connectionName: string]: any } {
162
+ const connections = ConnectionManager.entities[domain.id]
124
163
 
125
164
  return {
126
165
  ...connections
@@ -135,7 +174,13 @@ export class ConnectionManager {
135
174
  connections = ConnectionManager.connections[domain.id] = {}
136
175
  }
137
176
 
177
+ var entities = ConnectionManager.entities[domain.id]
178
+ if (!entities) {
179
+ entities = ConnectionManager.entities[domain.id] = {}
180
+ }
181
+
138
182
  connections[name] = instance
183
+ entities[name] = connection
139
184
 
140
185
  ConnectionManager.publishState(connection, ConnectionStatus.CONNECTED)
141
186
  debug('add-connection', domain.subdomain, name)
@@ -144,6 +189,8 @@ export class ConnectionManager {
144
189
  static removeConnectionInstance(connection: Connection): any {
145
190
  const { domain, name } = connection
146
191
  var connections = ConnectionManager.connections[domain.id]
192
+ var entities = ConnectionManager.entities[domain.id]
193
+
147
194
  var instance = connections?.[name]
148
195
 
149
196
  if (!connections || !instance) {
@@ -152,6 +199,7 @@ export class ConnectionManager {
152
199
  }
153
200
 
154
201
  delete connections[name]
202
+ delete entities[name]
155
203
 
156
204
  ConnectionManager.publishState(connection, ConnectionStatus.DISCONNECTED)
157
205
  debug('remove-connection', `'${name}' connection is removed from domain '${domain.subdomain}'`)
@@ -159,8 +207,8 @@ export class ConnectionManager {
159
207
  return instance
160
208
  }
161
209
 
162
- static publishState(connection: Connection, state) {
163
- const { domain, id, name, description, type } = connection
210
+ private static async publishState(connection: Connection, state) {
211
+ const { domain, id, name, description, type, edge } = connection
164
212
 
165
213
  pubsub.publish('connection-state', {
166
214
  connectionState: {
@@ -169,6 +217,7 @@ export class ConnectionManager {
169
217
  name,
170
218
  description,
171
219
  type,
220
+ edge,
172
221
  state,
173
222
  timestamp: new Date()
174
223
  }
@@ -25,7 +25,8 @@ export class EchoBack implements Connector {
25
25
  )
26
26
  } catch (e) {
27
27
  ConnectionManager.logger.error(
28
- `echo-back-connector connection(${connection.name}:${connection.endpoint}) is not connected.\ncause: ${e}`
28
+ `echo-back-connector connection(${connection.name}:${connection.endpoint}) is not connected.`,
29
+ e
29
30
  )
30
31
  }
31
32
  }
@@ -23,10 +23,6 @@ const defaultOptions: any = {
23
23
  }
24
24
  }
25
25
 
26
- const cache = new InMemoryCache({
27
- addTypename: false
28
- })
29
-
30
26
  export class GraphqlConnector implements Connector {
31
27
  async ready(connectionConfigs: InputConnection[]) {
32
28
  await Promise.all(connectionConfigs.map(this.connect.bind(this)))
@@ -35,19 +31,22 @@ export class GraphqlConnector implements Connector {
35
31
  }
36
32
 
37
33
  async connect(connection: InputConnection) {
38
- var {
34
+ const {
39
35
  endpoint: uri,
40
36
  params: { authClient }
41
37
  } = connection
42
38
 
43
- var ERROR_HANDLER: any = ({ graphQLErrors, networkError }) => {
39
+ const ERROR_HANDLER: any = ({ graphQLErrors, networkError }) => {
44
40
  if (graphQLErrors)
45
41
  graphQLErrors.map(({ message, locations, path }) => {
46
- ConnectionManager.logger.error(`[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`)
42
+ ConnectionManager.logger.error(
43
+ `[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`,
44
+ graphQLErrors
45
+ )
47
46
  })
48
47
 
49
48
  if (networkError) {
50
- ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}] ${networkError}`)
49
+ ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}]`, networkError)
51
50
  }
52
51
  }
53
52
 
@@ -65,6 +64,10 @@ export class GraphqlConnector implements Connector {
65
64
  return forward(operation)
66
65
  })
67
66
 
67
+ const cache = new InMemoryCache({
68
+ addTypename: false
69
+ })
70
+
68
71
  ConnectionManager.addConnectionInstance(
69
72
  connection,
70
73
  new ApolloClient({
@@ -87,7 +90,7 @@ export class GraphqlConnector implements Connector {
87
90
  }
88
91
 
89
92
  async disconnect(connection: InputConnection) {
90
- var client = ConnectionManager.getConnectionInstance(connection)
93
+ const client = ConnectionManager.getConnectionInstance(connection)
91
94
  client.stop()
92
95
  ConnectionManager.removeConnectionInstance(connection)
93
96
 
@@ -39,7 +39,8 @@ export class MqttConnector implements Connector {
39
39
  ConnectionManager.logger.info(`mqtt-connector connection(${connection.name}:${connection.endpoint}) is connected`)
40
40
  } catch (err) {
41
41
  ConnectionManager.logger.error(
42
- `mqtt-connector connection(${connection.name}:${connection.endpoint}) is failed.\ncause: ${err}`
42
+ `mqtt-connector connection(${connection.name}:${connection.endpoint}) is failed.`,
43
+ err
43
44
  )
44
45
  }
45
46
  }
@@ -7,7 +7,7 @@ import { InputConnection } from '../../service/connection/connection-type'
7
7
  try {
8
8
  var Client = require('mssql')
9
9
  } catch (err) {
10
- logger.error('mssql module loading failed')
10
+ logger.error('mssql module loading failed', err)
11
11
  }
12
12
 
13
13
  export class MssqlConnector implements Connector {
@@ -20,7 +20,7 @@ export class MssqlConnector implements Connector {
20
20
  async connect(connection: InputConnection) {
21
21
  const {
22
22
  endpoint,
23
- params: { user, password, database, encrypt = 'Y' }
23
+ params: { user, password, database, encrypt = 'Y', trustServerCertificate }
24
24
  } = connection
25
25
 
26
26
  const [host, port = 1433] = endpoint.split(':')
@@ -33,9 +33,17 @@ export class MssqlConnector implements Connector {
33
33
  // client is pool
34
34
  user,
35
35
  password,
36
- server: `${host}`,
37
- database: `${database}`,
38
- encrypt: `${encrypt === 'Y'}`
36
+ server: host,
37
+ database,
38
+ pool: {
39
+ max: 10,
40
+ min: 0,
41
+ idleTimeoutMillis: 30000
42
+ },
43
+ options: {
44
+ encrypt: encrypt === 'Y',
45
+ trustServerCertificate: trustServerCertificate === 'Y'
46
+ }
39
47
  })
40
48
 
41
49
  ConnectionManager.addConnectionInstance(connection, {
@@ -88,6 +96,14 @@ export class MssqlConnector implements Connector {
88
96
  property: {
89
97
  options: ['Y', 'N']
90
98
  }
99
+ },
100
+ {
101
+ type: 'select',
102
+ name: 'trustServerCertificate',
103
+ label: 'trust-server-certificate',
104
+ property: {
105
+ options: ['Y', 'N']
106
+ }
91
107
  }
92
108
  ]
93
109
  }
@@ -3,7 +3,6 @@ import 'cross-fetch/polyfill'
3
3
  import { ApolloClient, InMemoryCache, createHttpLink, split } from '@apollo/client/core'
4
4
  import { setContext } from '@apollo/client/link/context'
5
5
 
6
- // for subscription
7
6
  import WebSocket from 'ws'
8
7
  import { createClient } from 'graphql-ws'
9
8
  import { GraphQLWsLink } from '@apollo/client/link/subscriptions'
@@ -20,7 +19,7 @@ import { ScenarioInstance } from '../../service/scenario-instance/scenario-insta
20
19
  import { getRepository, GraphqlLocalClient, Domain } from '@things-factory/shell'
21
20
  import { User, checkPermission } from '@things-factory/auth-base'
22
21
 
23
- const debug = require('debug')('things-factory:integration-base:operato-connector-subscription')
22
+ const debug = require('debug')('things-factory:integration-base:operato-connector')
24
23
 
25
24
  const defaultOptions: any = {
26
25
  watchQuery: {
@@ -36,10 +35,6 @@ const defaultOptions: any = {
36
35
  }
37
36
  }
38
37
 
39
- const cache = new InMemoryCache({
40
- addTypename: false
41
- })
42
-
43
38
  export const GRAPHQL_URI = '/graphql'
44
39
  export const SUBSCRIPTION_URI = GRAPHQL_URI
45
40
 
@@ -48,7 +43,6 @@ interface SubscriberData {
48
43
  scenario: any
49
44
  subscriptionObserver: any
50
45
  }
51
- ;``
52
46
 
53
47
  export class OperatoConnector implements Connector {
54
48
  private context: any
@@ -56,11 +50,11 @@ export class OperatoConnector implements Connector {
56
50
  async ready(connectionConfigs: InputConnection[]) {
57
51
  await Promise.all(connectionConfigs.map(this.connect.bind(this)))
58
52
 
59
- ConnectionManager.logger.info('graphql-connector connections are ready')
53
+ ConnectionManager.logger.info('operato-connector connections are ready')
60
54
  }
61
55
 
62
56
  async connect(connection: InputConnection) {
63
- var {
57
+ const {
64
58
  endpoint: uri,
65
59
  params: { authKey, domain, subscriptionHandlers = {} }
66
60
  } = connection
@@ -69,7 +63,7 @@ export class OperatoConnector implements Connector {
69
63
  throw new Error('some connection paramter missing.')
70
64
  }
71
65
 
72
- var domainOwner = await getRepository(User).findOne({
66
+ const domainOwner = await getRepository(User).findOne({
73
67
  where: {
74
68
  id: connection.domain.owner
75
69
  }
@@ -125,20 +119,24 @@ export class OperatoConnector implements Connector {
125
119
  }).concat(httpLink)
126
120
  )
127
121
 
128
- var client = new ApolloClient({
122
+ const cache = new InMemoryCache({
123
+ addTypename: false
124
+ })
125
+
126
+ const client = new ApolloClient({
129
127
  defaultOptions,
130
128
  cache,
131
129
  link: splitLink
132
130
  })
133
131
 
134
- var subscriptions: SubscriberData[] = []
132
+ const subscriptions: SubscriberData[] = []
135
133
  Object.keys(subscriptionHandlers).forEach(async tag => {
136
134
  if (!tag || !subscriptionHandlers[tag]) return
137
135
 
138
- let scenarioName = subscriptionHandlers[tag]
136
+ const scenarioName = subscriptionHandlers[tag]
139
137
 
140
138
  // fetch a scenario
141
- var selectedScenario = await getRepository(Scenario).findOne({
139
+ const selectedScenario = await getRepository(Scenario).findOne({
142
140
  where: {
143
141
  name: scenarioName
144
142
  },
@@ -156,13 +154,13 @@ export class OperatoConnector implements Connector {
156
154
  `
157
155
  })
158
156
 
159
- var subscriptionObserver = subscription.subscribe({
157
+ const subscriptionObserver = subscription.subscribe({
160
158
  next: async data => {
161
159
  debug('received pubsub msg.:', data?.data)
162
160
  await this.runScenario(subscriptions, data?.data?.data)
163
161
  },
164
162
  error: error => {
165
- ConnectionManager.logger.error(`(${connection.name}:${connection.endpoint}) subscription error: ${error}`)
163
+ ConnectionManager.logger.error(`(${connection.name}:${connection.endpoint}) subscription error`, error)
166
164
  },
167
165
  complete: () => {
168
166
  ConnectionManager.logger.info(`(${connection.name}:${connection.endpoint}) subscription complete`)
@@ -185,18 +183,18 @@ export class OperatoConnector implements Connector {
185
183
  ConnectionManager.addConnectionInstance(connection, client)
186
184
 
187
185
  ConnectionManager.logger.info(
188
- `graphql-connector connection(${connection.name}:${connection.endpoint}) is connected`
186
+ `operato-connector connection(${connection.name}:${connection.endpoint}) is connected`
189
187
  )
190
188
  }
191
189
 
192
190
  async disconnect(connection: InputConnection) {
193
- var client = ConnectionManager.getConnectionInstance(connection)
194
- let subscriptions: SubscriberData[] = client['subscriptions']
191
+ const client = ConnectionManager.getConnectionInstance(connection)
192
+ const subscriptions: SubscriberData[] = client['subscriptions']
195
193
  subscriptions.forEach(subscription => subscription.subscriptionObserver.unsubscribe())
196
194
  client.stop()
197
195
  ConnectionManager.removeConnectionInstance(connection)
198
196
 
199
- ConnectionManager.logger.info(`graphql-connector connection(${connection.name}) is disconnected`)
197
+ ConnectionManager.logger.info(`operato-connector connection(${connection.name}) is disconnected`)
200
198
  }
201
199
 
202
200
  async runScenario(subscriptions: SubscriberData[], variables: any): Promise<ScenarioInstance> {
@@ -207,7 +205,7 @@ export class OperatoConnector implements Connector {
207
205
  throw new Error(`tag is invalid - ${tag}`)
208
206
  }
209
207
 
210
- var scenario = subscriptions.find(subscription => subscription.tag === tag)?.scenario
208
+ const scenario = subscriptions.find(subscription => subscription.tag === tag)?.scenario
211
209
  if (!scenario) {
212
210
  throw new Error(`scenario is not found - ${tag}`)
213
211
  }
@@ -215,15 +213,13 @@ export class OperatoConnector implements Connector {
215
213
  if (!(await checkPermission(scenario.privilege, user, domain, unsafeIP, prohibitedPrivileges))) {
216
214
  const { category, privilege } = scenario.privilege || {}
217
215
  throw new Error(
218
- `Unauthorized! ${
219
- category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'
220
- } required`
216
+ `Unauthorized! ${category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'} required`
221
217
  )
222
218
  }
223
219
 
224
220
  /* create a scenario instance */
225
- let instanceName = scenario.name + '-' + String(Date.now())
226
- var instance = new ScenarioInstance(instanceName, scenario, {
221
+ const instanceName = scenario.name + '-' + String(Date.now())
222
+ const instance = new ScenarioInstance(instanceName, scenario, {
227
223
  user,
228
224
  domain,
229
225
  variables,
@@ -7,7 +7,7 @@ import { InputConnection } from '../../service/connection/connection-type'
7
7
  try {
8
8
  var oracledb = require('oracledb')
9
9
  } catch (err) {
10
- logger.error('oracledb module loading failed')
10
+ logger.error('oracledb module loading failed', err)
11
11
  }
12
12
 
13
13
  export class OracleConnector implements Connector {
@@ -71,7 +71,7 @@ export class OracleConnector implements Connector {
71
71
  poolAlias,
72
72
  enableStatistics
73
73
  })
74
-
74
+
75
75
  ConnectionManager.addConnectionInstance(connection, {
76
76
  query: async (query, params) => {
77
77
  let dbConnection: any = {}
@@ -89,12 +89,10 @@ export class OracleConnector implements Connector {
89
89
  await this.recreatePool(connection)
90
90
  }
91
91
  throw e
92
- }
93
- finally {
92
+ } finally {
94
93
  await dbConnection.close()
95
94
  }
96
95
  return taskResult
97
-
98
96
  },
99
97
  execute: async (procedure, params) => {
100
98
  let dbConnection: any = {}
@@ -105,7 +103,7 @@ export class OracleConnector implements Connector {
105
103
  ${procedure}
106
104
  END;`
107
105
  dbConnection = await oracledb.getConnection(poolAlias)
108
-
106
+
109
107
  // console.log('\n************* stat after get ****************')
110
108
  // await oracledb.getPool(poolAlias).logStatistics()
111
109
 
@@ -131,8 +129,7 @@ export class OracleConnector implements Connector {
131
129
  await this.recreatePool(connection)
132
130
  }
133
131
  throw e
134
- }
135
- finally {
132
+ } finally {
136
133
  await dbConnection.close()
137
134
 
138
135
  // console.log('\n************* stat after close ****************')
@@ -7,7 +7,7 @@ import { InputConnection } from '../../service/connection/connection-type'
7
7
  try {
8
8
  var { Client } = require('pg')
9
9
  } catch (err) {
10
- logger.error('postgresql module loading failed')
10
+ logger.error('postgresql module loading failed', err)
11
11
  }
12
12
 
13
13
  export class PostgresqlConnector implements Connector {
@@ -55,7 +55,8 @@ export class PostgresqlConnector implements Connector {
55
55
  ConnectionManager.logger.info(`PostgresSQL Database(${connection.name}:${database}) at ${endpoint} connected.`)
56
56
  } catch (e) {
57
57
  ConnectionManager.logger.error(
58
- `PostgresSQL Database(${connection.name}:${database}) at ${endpoint} not connected.\ncause: ${e}`
58
+ `PostgresSQL Database(${connection.name}:${database}) at ${endpoint} not connected.`,
59
+ e
59
60
  )
60
61
  }
61
62
  }
@@ -0,0 +1,53 @@
1
+ import { ConnectionManager } from '../connection-manager'
2
+ import { Connector } from '../types'
3
+ import { InputConnection } from '../../service/connection/connection-type'
4
+ import { connectConnections, disconnectConnections } from '../edge-client'
5
+
6
+ /**
7
+ * This connector is a proxy connector installed on the edge server to manage connections from the host.
8
+ * It interacts with connections established on the edge server and provides synchronization functionality.
9
+ */
10
+ export class ProxyConnector implements Connector {
11
+ public static instance = new ProxyConnector()
12
+
13
+ async ready(connectionConfigs: InputConnection[]) {
14
+ await Promise.all(connectionConfigs.map(this.connect.bind(this)))
15
+
16
+ ConnectionManager.logger.info('proxy-connector connections are ready')
17
+ }
18
+
19
+ async connect(connection: InputConnection) {
20
+ // TODO 원래 커넥션과 에지설정을 참고하여, 에지 서버로 CONNECT/DISCONNECT 명령을 보낸다.
21
+ const proxy = {
22
+ disconnect: async () => {
23
+ ConnectionManager.logger.info('[proxy-connector] trying disconnect')
24
+ await disconnectConnections([connection])
25
+ }
26
+ }
27
+
28
+ await connectConnections([connection])
29
+
30
+ ConnectionManager.addConnectionInstance(connection, proxy)
31
+
32
+ ConnectionManager.logger.info(`proxy-connector connection(${connection.name}:${connection.endpoint}) is connected`)
33
+ }
34
+
35
+ async disconnect(connection: InputConnection) {
36
+ const proxy = ConnectionManager.removeConnectionInstance(connection)
37
+ await proxy.disconnect()
38
+
39
+ ConnectionManager.logger.info(`proxy-connector connection(${connection.name}) is disconnected`)
40
+ }
41
+
42
+ get parameterSpec() {
43
+ return []
44
+ }
45
+
46
+ get taskPrefixes() {
47
+ return []
48
+ }
49
+
50
+ get description() {
51
+ return 'Operato Proxy Connector'
52
+ }
53
+ }
@@ -40,7 +40,7 @@ export class SocketServer implements Connector {
40
40
  var logger = ConnectionManager.logger
41
41
  let message = ex.stack ? ex.stack : ex
42
42
  let msg = typeof message == 'object' ? JSON.stringify(message, null, 2) : message
43
- logger.error(msg)
43
+ logger.error(msg, ex)
44
44
  reject(ex)
45
45
  })
46
46
  })
@@ -6,11 +6,10 @@ import { ConnectionManager } from '../connection-manager'
6
6
  import { Connector } from '../types'
7
7
  import { InputConnection } from '../../service/connection/connection-type'
8
8
 
9
-
10
9
  try {
11
10
  var sqlite3 = require('sqlite3').verbose()
12
11
  } catch (err) {
13
- logger.error('sqlite3 module loading failed')
12
+ logger.error('sqlite3 module loading failed', err)
14
13
  }
15
14
 
16
15
  export class SqliteConnector implements Connector {
@@ -29,9 +28,7 @@ export class SqliteConnector implements Connector {
29
28
 
30
29
  var database = new sqlite3.Database(endpoint, sqlite3.OPEN_READWRITE, err => {
31
30
  if (err) {
32
- ConnectionManager.logger.error(
33
- `SQLite Database(${connection.name}) at ${endpoint} not connected.\ncause: ${err}`
34
- )
31
+ ConnectionManager.logger.error(`SQLite Database(${connection.name}) at ${endpoint} not connected.`, err)
35
32
  return
36
33
  }
37
34
 
@@ -0,0 +1,45 @@
1
+ import { Connection } from '../service/connection/connection-type'
2
+ import { Step } from '../service/step/step-type'
3
+ import { Context, TaskHandler } from './types'
4
+
5
+ export type EdgeClient = {
6
+ handler: TaskHandler
7
+ syncConnections(connections: Connection[], context?: ResolverContext): Promise<any>
8
+ connectConnections(connections: Connection[], context?: ResolverContext): Promise<any>
9
+ disconnectConnections(connections: Connection[], context?: ResolverContext): Promise<any>
10
+ }
11
+
12
+ var edgeClient: EdgeClient = {
13
+ async handler(step: Step, scenarioContext: Context) {
14
+ throw 'edgeClient not supported'
15
+ },
16
+ async syncConnections(connections: Connection[], context: ResolverContext): Promise<any> {
17
+ throw 'edgeClient not supported'
18
+ },
19
+ async connectConnections(connections: Connection[], context: ResolverContext): Promise<any> {
20
+ throw 'edgeClient not supported'
21
+ },
22
+ async disconnectConnections(connections: Connection[], context: ResolverContext): Promise<any> {
23
+ throw 'edgeClient not supported'
24
+ }
25
+ }
26
+
27
+ export async function handler(step: Step, scenarioContext: Context) {
28
+ return await edgeClient.handler(step, scenarioContext)
29
+ }
30
+
31
+ export async function syncConnections(connections: Connection[], context?: ResolverContext): Promise<any> {
32
+ return await edgeClient.syncConnections(connections, context)
33
+ }
34
+
35
+ export async function connectConnections(connections: Connection[], context?: ResolverContext): Promise<any> {
36
+ return await edgeClient.connectConnections(connections, context)
37
+ }
38
+
39
+ export async function disconnectConnections(connections: Connection[], context?: ResolverContext): Promise<any> {
40
+ return await edgeClient.disconnectConnections(connections, context)
41
+ }
42
+
43
+ export function setEdgeClient(edge: EdgeClient) {
44
+ edgeClient = edge
45
+ }
@@ -5,5 +5,6 @@ export * from './connection-manager'
5
5
  export * from './scenario-engine'
6
6
  export * from './task-registry'
7
7
  export * from './analyzer/analyze-integration'
8
+ export * from './edge-client'
8
9
 
9
- export { Connector } from './types'
10
+ export { Connector, Context, TaskHandler } from './types'