@alwaysai/device-agent 1.5.0 → 2.0.1

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 (305) hide show
  1. package/lib/application-control/config.d.ts.map +1 -1
  2. package/lib/application-control/config.js +8 -3
  3. package/lib/application-control/config.js.map +1 -1
  4. package/lib/application-control/environment-variables.d.ts +5 -5
  5. package/lib/application-control/environment-variables.d.ts.map +1 -1
  6. package/lib/application-control/environment-variables.js +25 -38
  7. package/lib/application-control/environment-variables.js.map +1 -1
  8. package/lib/application-control/environment-variables.test.js +27 -7
  9. package/lib/application-control/environment-variables.test.js.map +1 -1
  10. package/lib/application-control/index.d.ts +4 -4
  11. package/lib/application-control/index.d.ts.map +1 -1
  12. package/lib/application-control/index.js +1 -4
  13. package/lib/application-control/index.js.map +1 -1
  14. package/lib/application-control/install.d.ts +4 -1
  15. package/lib/application-control/install.d.ts.map +1 -1
  16. package/lib/application-control/install.js +24 -8
  17. package/lib/application-control/install.js.map +1 -1
  18. package/lib/application-control/models.d.ts +0 -11
  19. package/lib/application-control/models.d.ts.map +1 -1
  20. package/lib/application-control/models.js +5 -54
  21. package/lib/application-control/models.js.map +1 -1
  22. package/lib/application-control/utils.d.ts +0 -4
  23. package/lib/application-control/utils.d.ts.map +1 -1
  24. package/lib/application-control/utils.js +12 -22
  25. package/lib/application-control/utils.js.map +1 -1
  26. package/lib/cloud-connection/base-message-handler.d.ts +27 -0
  27. package/lib/cloud-connection/base-message-handler.d.ts.map +1 -0
  28. package/lib/cloud-connection/base-message-handler.js +72 -0
  29. package/lib/cloud-connection/base-message-handler.js.map +1 -0
  30. package/lib/cloud-connection/bootstrap-provision.js +3 -2
  31. package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
  32. package/lib/cloud-connection/connection-manager.d.ts +21 -0
  33. package/lib/cloud-connection/connection-manager.d.ts.map +1 -0
  34. package/lib/cloud-connection/connection-manager.js +158 -0
  35. package/lib/cloud-connection/connection-manager.js.map +1 -0
  36. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +9 -30
  37. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  38. package/lib/cloud-connection/device-agent-cloud-connection.js +69 -508
  39. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  40. package/lib/cloud-connection/device-agent-message-handler.d.ts +22 -0
  41. package/lib/cloud-connection/device-agent-message-handler.d.ts.map +1 -0
  42. package/lib/cloud-connection/device-agent-message-handler.js +357 -0
  43. package/lib/cloud-connection/device-agent-message-handler.js.map +1 -0
  44. package/lib/cloud-connection/device-agent.d.ts.map +1 -1
  45. package/lib/cloud-connection/device-agent.js +11 -9
  46. package/lib/cloud-connection/device-agent.js.map +1 -1
  47. package/lib/cloud-connection/live-updates-handler.d.ts +19 -28
  48. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  49. package/lib/cloud-connection/live-updates-handler.js +60 -172
  50. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  51. package/lib/cloud-connection/live-updates-handler.test.js +71 -165
  52. package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
  53. package/lib/cloud-connection/message-dispatcher.d.ts +10 -0
  54. package/lib/cloud-connection/message-dispatcher.d.ts.map +1 -0
  55. package/lib/cloud-connection/message-dispatcher.js +27 -0
  56. package/lib/cloud-connection/message-dispatcher.js.map +1 -0
  57. package/lib/cloud-connection/passthrough-handler.d.ts +4 -1
  58. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
  59. package/lib/cloud-connection/passthrough-handler.js +30 -11
  60. package/lib/cloud-connection/passthrough-handler.js.map +1 -1
  61. package/lib/cloud-connection/shadow-handler.d.ts +11 -3
  62. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  63. package/lib/cloud-connection/shadow-handler.js +133 -28
  64. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  65. package/lib/cloud-connection/shadow-handler.test.js +45 -57
  66. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  67. package/lib/cloud-connection/shadow.d.ts.map +1 -1
  68. package/lib/cloud-connection/shadow.js +2 -1
  69. package/lib/cloud-connection/shadow.js.map +1 -1
  70. package/lib/cloud-connection/transaction-manager.d.ts +12 -3
  71. package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
  72. package/lib/cloud-connection/transaction-manager.js +29 -28
  73. package/lib/cloud-connection/transaction-manager.js.map +1 -1
  74. package/lib/cloud-connection/transaction-manager.test.js +46 -5
  75. package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
  76. package/lib/device-control/device-control.d.ts +8 -8
  77. package/lib/device-control/device-control.d.ts.map +1 -1
  78. package/lib/device-control/device-control.js +95 -71
  79. package/lib/device-control/device-control.js.map +1 -1
  80. package/lib/docker/docker-compose.d.ts.map +1 -1
  81. package/lib/docker/docker-compose.js +2 -1
  82. package/lib/docker/docker-compose.js.map +1 -1
  83. package/lib/infrastructure/agent-config.d.ts +2 -1
  84. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  85. package/lib/infrastructure/agent-config.js +7 -7
  86. package/lib/infrastructure/agent-config.js.map +1 -1
  87. package/lib/infrastructure/agent-config.test.js +3 -1
  88. package/lib/infrastructure/agent-config.test.js.map +1 -1
  89. package/lib/infrastructure/config-check-utility.d.ts +6 -0
  90. package/lib/infrastructure/config-check-utility.d.ts.map +1 -0
  91. package/lib/infrastructure/config-check-utility.js +67 -0
  92. package/lib/infrastructure/config-check-utility.js.map +1 -0
  93. package/lib/infrastructure/config-check-utility.test.d.ts +2 -0
  94. package/lib/infrastructure/config-check-utility.test.d.ts.map +1 -0
  95. package/lib/infrastructure/config-check-utility.test.js +109 -0
  96. package/lib/infrastructure/config-check-utility.test.js.map +1 -0
  97. package/lib/infrastructure/device-certificate.d.ts +10 -0
  98. package/lib/infrastructure/device-certificate.d.ts.map +1 -0
  99. package/lib/infrastructure/device-certificate.js +47 -0
  100. package/lib/infrastructure/device-certificate.js.map +1 -0
  101. package/lib/infrastructure/device-certificate.test.d.ts +2 -0
  102. package/lib/infrastructure/device-certificate.test.d.ts.map +1 -0
  103. package/lib/infrastructure/device-certificate.test.js +24 -0
  104. package/lib/infrastructure/device-certificate.test.js.map +1 -0
  105. package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts +2 -0
  106. package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts.map +1 -0
  107. package/lib/infrastructure/legacy-migration/legacy-file.test.js +61 -0
  108. package/lib/infrastructure/legacy-migration/legacy-file.test.js.map +1 -0
  109. package/lib/infrastructure/legacy-migration/legacy-files.d.ts +75 -0
  110. package/lib/infrastructure/legacy-migration/legacy-files.d.ts.map +1 -0
  111. package/lib/infrastructure/legacy-migration/legacy-files.js +75 -0
  112. package/lib/infrastructure/legacy-migration/legacy-files.js.map +1 -0
  113. package/lib/infrastructure/legacy-migration/legacy-migration.d.ts +6 -0
  114. package/lib/infrastructure/legacy-migration/legacy-migration.d.ts.map +1 -0
  115. package/lib/infrastructure/legacy-migration/legacy-migration.js +149 -0
  116. package/lib/infrastructure/legacy-migration/legacy-migration.js.map +1 -0
  117. package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts +2 -0
  118. package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts.map +1 -0
  119. package/lib/infrastructure/legacy-migration/legacy-migration.test.js +226 -0
  120. package/lib/infrastructure/legacy-migration/legacy-migration.test.js.map +1 -0
  121. package/lib/infrastructure/require-files-present-ready.test.d.ts +2 -0
  122. package/lib/infrastructure/require-files-present-ready.test.d.ts.map +1 -0
  123. package/lib/infrastructure/require-files-present-ready.test.js +44 -0
  124. package/lib/infrastructure/require-files-present-ready.test.js.map +1 -0
  125. package/lib/infrastructure/required-config-checks.d.ts +2 -0
  126. package/lib/infrastructure/required-config-checks.d.ts.map +1 -0
  127. package/lib/infrastructure/required-config-checks.js +30 -0
  128. package/lib/infrastructure/required-config-checks.js.map +1 -0
  129. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
  130. package/lib/infrastructure/tokens-and-device-cfg.js +11 -8
  131. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
  132. package/lib/jobs/job-handler.d.ts +23 -0
  133. package/lib/jobs/job-handler.d.ts.map +1 -0
  134. package/lib/jobs/job-handler.js +131 -0
  135. package/lib/jobs/job-handler.js.map +1 -0
  136. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -1
  137. package/lib/local-connection/rabbitmq-connection.js +14 -14
  138. package/lib/local-connection/rabbitmq-connection.js.map +1 -1
  139. package/lib/secure-tunneling/secure-tunnel-message-handler.d.ts +8 -0
  140. package/lib/secure-tunneling/secure-tunnel-message-handler.d.ts.map +1 -0
  141. package/lib/secure-tunneling/secure-tunnel-message-handler.js +42 -0
  142. package/lib/secure-tunneling/secure-tunnel-message-handler.js.map +1 -0
  143. package/lib/secure-tunneling/secure-tunneling.d.ts +9 -9
  144. package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -1
  145. package/lib/secure-tunneling/secure-tunneling.js +21 -16
  146. package/lib/secure-tunneling/secure-tunneling.js.map +1 -1
  147. package/lib/secure-tunneling/secure-tunneling.test.js +11 -13
  148. package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -1
  149. package/lib/subcommands/app/analytics.d.ts.map +1 -1
  150. package/lib/subcommands/app/analytics.js +1 -2
  151. package/lib/subcommands/app/analytics.js.map +1 -1
  152. package/lib/subcommands/app/env-vars.d.ts +4 -0
  153. package/lib/subcommands/app/env-vars.d.ts.map +1 -1
  154. package/lib/subcommands/app/env-vars.js +52 -6
  155. package/lib/subcommands/app/env-vars.js.map +1 -1
  156. package/lib/subcommands/app/index.d.ts.map +1 -1
  157. package/lib/subcommands/app/index.js +1 -3
  158. package/lib/subcommands/app/index.js.map +1 -1
  159. package/lib/subcommands/app/models.d.ts +0 -11
  160. package/lib/subcommands/app/models.d.ts.map +1 -1
  161. package/lib/subcommands/app/models.js +2 -58
  162. package/lib/subcommands/app/models.js.map +1 -1
  163. package/lib/subcommands/app/shadow.d.ts.map +1 -1
  164. package/lib/subcommands/app/shadow.js +6 -5
  165. package/lib/subcommands/app/shadow.js.map +1 -1
  166. package/lib/subcommands/app/version.d.ts +2 -0
  167. package/lib/subcommands/app/version.d.ts.map +1 -1
  168. package/lib/subcommands/app/version.js +16 -6
  169. package/lib/subcommands/app/version.js.map +1 -1
  170. package/lib/subcommands/config.d.ts +2 -0
  171. package/lib/subcommands/config.d.ts.map +1 -0
  172. package/lib/subcommands/config.js +39 -0
  173. package/lib/subcommands/config.js.map +1 -0
  174. package/lib/subcommands/device/clean.d.ts +1 -1
  175. package/lib/subcommands/device/clean.d.ts.map +1 -1
  176. package/lib/subcommands/device/clean.js +23 -13
  177. package/lib/subcommands/device/clean.js.map +1 -1
  178. package/lib/subcommands/device/index.d.ts.map +1 -1
  179. package/lib/subcommands/device/index.js +3 -1
  180. package/lib/subcommands/device/index.js.map +1 -1
  181. package/lib/subcommands/device/init.js +8 -8
  182. package/lib/subcommands/device/init.js.map +1 -1
  183. package/lib/subcommands/device/migrate.d.ts +2 -0
  184. package/lib/subcommands/device/migrate.d.ts.map +1 -0
  185. package/lib/subcommands/device/migrate.js +24 -0
  186. package/lib/subcommands/device/migrate.js.map +1 -0
  187. package/lib/subcommands/device/refresh.d.ts.map +1 -1
  188. package/lib/subcommands/device/refresh.js +1 -0
  189. package/lib/subcommands/device/refresh.js.map +1 -1
  190. package/lib/subcommands/index.d.ts +1 -1
  191. package/lib/subcommands/index.d.ts.map +1 -1
  192. package/lib/subcommands/index.js +3 -1
  193. package/lib/subcommands/index.js.map +1 -1
  194. package/lib/subcommands/rabbitmq-connection.d.ts +1 -1
  195. package/lib/subcommands/rabbitmq-connection.d.ts.map +1 -1
  196. package/lib/util/aai-error.d.ts +12 -0
  197. package/lib/util/aai-error.d.ts.map +1 -0
  198. package/lib/util/aai-error.js +11 -0
  199. package/lib/util/aai-error.js.map +1 -0
  200. package/lib/util/aws-regions.d.ts +2 -0
  201. package/lib/util/aws-regions.d.ts.map +1 -0
  202. package/lib/util/{cloud-mode-ready.js → aws-regions.js} +2 -20
  203. package/lib/util/aws-regions.js.map +1 -0
  204. package/lib/util/check-for-updates.d.ts.map +1 -1
  205. package/lib/util/check-for-updates.js +5 -28
  206. package/lib/util/check-for-updates.js.map +1 -1
  207. package/lib/util/clean-certs.d.ts.map +1 -1
  208. package/lib/util/clean-certs.js +5 -4
  209. package/lib/util/clean-certs.js.map +1 -1
  210. package/lib/util/directories.d.ts +4 -18
  211. package/lib/util/directories.d.ts.map +1 -1
  212. package/lib/util/directories.js +18 -32
  213. package/lib/util/directories.js.map +1 -1
  214. package/lib/util/file.d.ts +4 -0
  215. package/lib/util/file.d.ts.map +1 -1
  216. package/lib/util/file.js +65 -4
  217. package/lib/util/file.js.map +1 -1
  218. package/lib/util/get-device-id.d.ts.map +1 -1
  219. package/lib/util/get-device-id.js +7 -1
  220. package/lib/util/get-device-id.js.map +1 -1
  221. package/lib/util/http-client.js +3 -3
  222. package/lib/util/http-client.js.map +1 -1
  223. package/package.json +19 -17
  224. package/readme.md +12 -32
  225. package/src/application-control/config.ts +9 -12
  226. package/src/application-control/environment-variables.test.ts +28 -7
  227. package/src/application-control/environment-variables.ts +42 -59
  228. package/src/application-control/index.ts +3 -16
  229. package/src/application-control/install.ts +39 -13
  230. package/src/application-control/models.ts +6 -87
  231. package/src/application-control/utils.ts +10 -25
  232. package/src/cloud-connection/base-message-handler.ts +118 -0
  233. package/src/cloud-connection/bootstrap-provision.ts +7 -7
  234. package/src/cloud-connection/connection-manager.ts +187 -0
  235. package/src/cloud-connection/device-agent-cloud-connection.ts +130 -723
  236. package/src/cloud-connection/device-agent-message-handler.ts +642 -0
  237. package/src/cloud-connection/device-agent.ts +16 -7
  238. package/src/cloud-connection/live-updates-handler.test.ts +121 -189
  239. package/src/cloud-connection/live-updates-handler.ts +105 -232
  240. package/src/cloud-connection/message-dispatcher.ts +33 -0
  241. package/src/cloud-connection/passthrough-handler.ts +55 -18
  242. package/src/cloud-connection/shadow-handler.test.ts +45 -57
  243. package/src/cloud-connection/shadow-handler.ts +224 -54
  244. package/src/cloud-connection/shadow.ts +4 -1
  245. package/src/cloud-connection/transaction-manager.test.ts +68 -6
  246. package/src/cloud-connection/transaction-manager.ts +69 -41
  247. package/src/device-control/device-control.ts +102 -70
  248. package/src/docker/docker-compose.ts +3 -2
  249. package/src/infrastructure/agent-config.test.ts +6 -2
  250. package/src/infrastructure/agent-config.ts +8 -7
  251. package/src/infrastructure/config-check-utility.test.ts +154 -0
  252. package/src/infrastructure/config-check-utility.ts +77 -0
  253. package/src/infrastructure/device-certificate.test.ts +40 -0
  254. package/src/infrastructure/device-certificate.ts +58 -0
  255. package/src/infrastructure/legacy-migration/legacy-file.test.ts +88 -0
  256. package/src/infrastructure/legacy-migration/legacy-files.ts +101 -0
  257. package/src/infrastructure/legacy-migration/legacy-migration.test.ts +396 -0
  258. package/src/infrastructure/legacy-migration/legacy-migration.ts +229 -0
  259. package/src/infrastructure/require-files-present-ready.test.ts +53 -0
  260. package/src/infrastructure/required-config-checks.ts +33 -0
  261. package/src/infrastructure/tokens-and-device-cfg.ts +12 -10
  262. package/src/jobs/job-handler.ts +146 -0
  263. package/src/local-connection/rabbitmq-connection.ts +22 -17
  264. package/src/secure-tunneling/secure-tunnel-message-handler.ts +56 -0
  265. package/src/secure-tunneling/secure-tunneling.test.ts +20 -22
  266. package/src/secure-tunneling/secure-tunneling.ts +41 -29
  267. package/src/subcommands/app/analytics.ts +2 -4
  268. package/src/subcommands/app/env-vars.ts +72 -9
  269. package/src/subcommands/app/index.ts +3 -11
  270. package/src/subcommands/app/models.ts +5 -81
  271. package/src/subcommands/app/shadow.ts +6 -5
  272. package/src/subcommands/app/version.ts +23 -6
  273. package/src/subcommands/config.ts +42 -0
  274. package/src/subcommands/device/clean.ts +31 -17
  275. package/src/subcommands/device/index.ts +3 -1
  276. package/src/subcommands/device/init.ts +11 -11
  277. package/src/subcommands/device/migrate.ts +20 -0
  278. package/src/subcommands/device/refresh.ts +1 -0
  279. package/src/subcommands/index.ts +3 -1
  280. package/src/util/aai-error.ts +20 -0
  281. package/src/util/{cloud-mode-ready.ts → aws-regions.ts} +0 -24
  282. package/src/util/check-for-updates.ts +14 -30
  283. package/src/util/clean-certs.ts +8 -4
  284. package/src/util/directories.ts +23 -67
  285. package/src/util/file.ts +83 -3
  286. package/src/util/get-device-id.ts +7 -7
  287. package/src/util/http-client.ts +2 -2
  288. package/lib/util/cloud-mode-ready.d.ts +0 -3
  289. package/lib/util/cloud-mode-ready.d.ts.map +0 -1
  290. package/lib/util/cloud-mode-ready.js.map +0 -1
  291. package/lib/util/download-file.d.ts +0 -6
  292. package/lib/util/download-file.d.ts.map +0 -1
  293. package/lib/util/download-file.js +0 -25
  294. package/lib/util/download-file.js.map +0 -1
  295. package/lib/util/fetch-with-timeout.d.ts +0 -4
  296. package/lib/util/fetch-with-timeout.d.ts.map +0 -1
  297. package/lib/util/fetch-with-timeout.js +0 -30
  298. package/lib/util/fetch-with-timeout.js.map +0 -1
  299. package/lib/util/parsing.d.ts +0 -2
  300. package/lib/util/parsing.d.ts.map +0 -1
  301. package/lib/util/parsing.js +0 -17
  302. package/lib/util/parsing.js.map +0 -1
  303. package/src/util/download-file.ts +0 -25
  304. package/src/util/fetch-with-timeout.ts +0 -35
  305. package/src/util/parsing.ts +0 -11
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateFromLegacyCertsAndTokens = exports.migrateDeviceTokens = exports.migrateCertificates = exports.migrateAgentConfigFile = void 0;
4
+ const device_1 = require("alwaysai/lib/core/device");
5
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
6
+ const paths_1 = require("alwaysai/lib/paths");
7
+ const util_1 = require("alwaysai/lib/util");
8
+ const path_1 = require("path");
9
+ const rimraf_1 = require("rimraf");
10
+ const rabbitmq_connection_1 = require("../../local-connection/rabbitmq-connection");
11
+ const copy_dir_1 = require("../../util/copy-dir");
12
+ const directories_1 = require("../../util/directories");
13
+ const logger_1 = require("../../util/logger");
14
+ const agent_config_1 = require("../agent-config");
15
+ const config_check_utility_1 = require("../config-check-utility");
16
+ const device_certificate_1 = require("../device-certificate");
17
+ const required_config_checks_1 = require("../required-config-checks");
18
+ const legacy_files_1 = require("./legacy-files");
19
+ /*===================================================================
20
+ Migration Code
21
+ ===================================================================*/
22
+ async function migrateAgentConfigFile(baseDir) {
23
+ logger_1.logger.debug('Migrating agent configuration file');
24
+ const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
25
+ const legacyAgentConfigFile = legacyFiles.getLegacyAgentConfigFile();
26
+ const newAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(baseDir !== null && baseDir !== void 0 ? baseDir : paths_1.LOCAL_AAI_CFG_DIR, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME));
27
+ let parsedAgentConfig;
28
+ try {
29
+ parsedAgentConfig = legacyAgentConfigFile.read();
30
+ }
31
+ catch (e) {
32
+ logger_1.logger.error(`Error reading agent config for:\n${(0, util_1.stringifyError)(e)}`);
33
+ logger_1.logger.error(`Agent Config Errors: ${JSON.stringify(legacyAgentConfigFile.getErrors(), null, 2)}`);
34
+ throw new Error(`Could not parse ${legacyAgentConfigFile.path} while migrating your legacy device files.`);
35
+ }
36
+ try {
37
+ newAgentConfig.write(parsedAgentConfig);
38
+ // since this file is owned by the Device Agent
39
+ // we can remove it after migrating it
40
+ await (0, rimraf_1.default)(legacyAgentConfigFile.path);
41
+ }
42
+ catch (e) {
43
+ logger_1.logger.error(`Error writing agent config for:\n${(0, util_1.stringifyError)(e)}`);
44
+ logger_1.logger.error(`Agent Config Errors: ${JSON.stringify(newAgentConfig.getErrors(), null, 2)}`);
45
+ throw new Error(`Could not parse ${newAgentConfig.path} while migrating your legacy device files.`);
46
+ }
47
+ }
48
+ exports.migrateAgentConfigFile = migrateAgentConfigFile;
49
+ async function migrateCertificates(baseDir) {
50
+ logger_1.logger.debug(`baseDir ${baseDir}`);
51
+ const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
52
+ const legacyCerts = legacyFiles.getLegacyCertificates();
53
+ const newDeviceCertificates = new infrastructure_1.LocalDeviceCertificates(baseDir ? (0, path_1.join)(baseDir, (0, infrastructure_1.getDeviceConfigPath)()) : undefined);
54
+ const spawner = (0, util_1.JsSpawner)(baseDir ? { path: baseDir } : {});
55
+ await spawner.mkdirp((0, path_1.join)(newDeviceCertificates.getCertificateDirectoryPath()));
56
+ await (0, copy_dir_1.copyDir)({
57
+ srcPath: legacyCerts.getCertificateDirectoryPath(),
58
+ destPath: newDeviceCertificates.getCertificateDirectoryPath()
59
+ });
60
+ await (0, rimraf_1.default)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(baseDir));
61
+ }
62
+ exports.migrateCertificates = migrateCertificates;
63
+ async function migrateDeviceTokens(parsedAaiCfg, baseDir) {
64
+ const systemId = (0, infrastructure_1.getSystemId)();
65
+ const deviceConfigDir = baseDir
66
+ ? (0, path_1.join)(baseDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME)
67
+ : baseDir;
68
+ const deviceConfig = (0, device_1.DeviceConfigFile)(deviceConfigDir);
69
+ const deviceUuid = parsedAaiCfg === null || parsedAaiCfg === void 0 ? void 0 : parsedAaiCfg.deviceUuid;
70
+ if (!deviceUuid) {
71
+ throw new Error(`deviceUuid not found in ${paths_1.ALWAYSAI_CONFIG_FILE_NAME}.`);
72
+ }
73
+ let legacyCredentialsFile;
74
+ if (baseDir) {
75
+ legacyCredentialsFile = (0, infrastructure_1.CredentialsJsonFile)((0, path_1.join)(baseDir, paths_1.DEVICE_TOKEN_FILE_NAME));
76
+ }
77
+ else {
78
+ legacyCredentialsFile = (0, infrastructure_1.CredentialsJsonFile)(legacy_files_1.LEGACY_CREDENTIALS_FILE_DIR);
79
+ }
80
+ const legacyDeviceId = legacyCredentialsFile.getItem('deviceId');
81
+ const legacyTokens = {
82
+ accessToken: legacyCredentialsFile.getItem('accessToken'),
83
+ refreshToken: legacyCredentialsFile.getItem('refreshToken'),
84
+ idToken: legacyCredentialsFile.getItem('idToken')
85
+ };
86
+ const migratedTokens = Object.assign(Object.assign({}, legacyTokens), { systemId,
87
+ deviceUuid });
88
+ if (legacyDeviceId !== migratedTokens.deviceUuid) {
89
+ throw new Error(`deviceUuid from ${legacy_files_1.LEGACY_CREDENTIALS_FILE_DIR} (${legacyDeviceId}) and ${paths_1.ALWAYSAI_CONFIG_FILE_NAME} (${migratedTokens.deviceUuid}) do not match.`);
90
+ }
91
+ logger_1.logger.debug('Copying tokens to new device config file.');
92
+ deviceConfig.write(migratedTokens);
93
+ }
94
+ exports.migrateDeviceTokens = migrateDeviceTokens;
95
+ async function migrateFromLegacyCertsAndTokens(baseDir) {
96
+ const requiredConfiguration = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(baseDir);
97
+ if (requiredConfiguration) {
98
+ logger_1.logger.debug('Device appears to be properly configured, no migration needed.');
99
+ return false;
100
+ }
101
+ const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
102
+ const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
103
+ const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
104
+ if (legacyFilesPresent) {
105
+ logger_1.logger.debug('Legacy certs and config files found. Migrating device certs and config files to updated folders.');
106
+ // get device ID from original in order to pass to new AaiCfgFile
107
+ const aaiConfig = (0, legacy_files_1.LegacyAaiConfigFile)(baseDir);
108
+ let parsedAaiCfg;
109
+ try {
110
+ parsedAaiCfg = aaiConfig.read();
111
+ }
112
+ catch (e) {
113
+ logger_1.logger.error(`Error reading AAI config for:\n${(0, util_1.stringifyError)(e)}`);
114
+ logger_1.logger.error(`${JSON.stringify(aaiConfig.getErrors(), null, 2)}`);
115
+ throw new Error(`Could not parse ${aaiConfig.path} while migrating your legacy device files.`);
116
+ }
117
+ // migrate deviceID to new alwaysai.device.json
118
+ await migrateDeviceTokens(parsedAaiCfg, baseDir);
119
+ // migrate certificates
120
+ logger_1.logger.debug('Copying legacy certificates to new file path.');
121
+ await migrateCertificates(baseDir);
122
+ // migrate alwaysai.agent.json to device folder
123
+ logger_1.logger.debug('Copying agent config file to new file path.');
124
+ await migrateAgentConfigFile(baseDir);
125
+ // if rabbitmq container is present, stop container and migrate files
126
+ try {
127
+ if (await (0, rabbitmq_connection_1.checkRabbitMQContainerRunning)()) {
128
+ await (0, rabbitmq_connection_1.stopRabbitMQContainer)();
129
+ }
130
+ }
131
+ catch (e) {
132
+ logger_1.logger.error(`You may need to manually stop the container by running docker-compose down in the following directory: ${(0, directories_1.getDeviceAgentDockerComposePath)()}`);
133
+ logger_1.logger.debug(`Error in checking / stopping RabbitMQ container!\n${(0, util_1.stringifyError)(e)}`);
134
+ }
135
+ if (await (0, util_1.exists)((0, directories_1.getDeviceAgentConfigPath)(baseDir))) {
136
+ await (0, copy_dir_1.copyDir)({
137
+ srcPath: legacyFiles.getLegacyDeviceAgentConfigDirPath(),
138
+ destPath: (0, directories_1.getDeviceAgentConfigPath)(baseDir)
139
+ });
140
+ }
141
+ // For now, do not remove the legacy files to support legacy edgeIQ
142
+ logger_1.logger.debug(`Device certs and tokens migrated successfully from legacy.`);
143
+ return true;
144
+ }
145
+ logger_1.logger.debug('No legacy cert or config files found. Skipping migration.');
146
+ return false;
147
+ }
148
+ exports.migrateFromLegacyCertsAndTokens = migrateFromLegacyCertsAndTokens;
149
+ //# sourceMappingURL=legacy-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-migration.js","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=legacy-migration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-migration.test.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("alwaysai/lib/constants");
4
+ const device_1 = require("alwaysai/lib/core/device");
5
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
6
+ const paths_1 = require("alwaysai/lib/paths");
7
+ const util_1 = require("alwaysai/lib/util");
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ const rimraf_1 = require("rimraf");
11
+ const tempy = require("tempy");
12
+ const agent_config_1 = require("../agent-config");
13
+ const config_check_utility_1 = require("../config-check-utility");
14
+ const device_certificate_1 = require("../device-certificate");
15
+ const required_config_checks_1 = require("../required-config-checks");
16
+ const legacy_files_1 = require("./legacy-files");
17
+ const legacy_migration_1 = require("./legacy-migration");
18
+ describe('test migrateFromLegacyCertsAndTokens function', () => {
19
+ let tmpDir;
20
+ tmpDir = tempy.directory();
21
+ beforeAll(async () => {
22
+ jest.resetModules();
23
+ jest.clearAllMocks();
24
+ tmpDir = tempy.directory();
25
+ });
26
+ afterAll(async () => {
27
+ await (0, rimraf_1.rimraf)(tmpDir);
28
+ });
29
+ async function setupCurrentFiles(spawner, aaiConfig, deviceConfig) {
30
+ await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)()));
31
+ await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME), JSON.stringify(deviceConfig));
32
+ spawner.writeFile((0, path_1.join)(tmpDir, paths_1.ALWAYSAI_CONFIG_FILE_NAME), JSON.stringify(aaiConfig));
33
+ const testCerts = new infrastructure_1.LocalDeviceCertificates(tmpDir);
34
+ const certFilePath = testCerts.getCertificateDirectoryName();
35
+ await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath));
36
+ await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getCertificateFileName()), 'certificate data');
37
+ await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getPrivateKeyFileName()), 'private key data');
38
+ await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getRootCertificateFileName()), 'root cert data');
39
+ }
40
+ async function setupLegacyFiles(spawner, aaiConfig, deviceConfig, agentConfig) {
41
+ const testCerts = new infrastructure_1.LocalLegacyDeviceCertificates(tmpDir);
42
+ const certFilePath = testCerts.getCertificateDirectoryPath();
43
+ await spawner.mkdirp(certFilePath);
44
+ await spawner.writeFile((0, path_1.join)(tmpDir, paths_1.DEVICE_TOKEN_FILE_NAME), JSON.stringify(deviceConfig));
45
+ spawner.writeFile((0, path_1.join)(tmpDir, paths_1.ALWAYSAI_CONFIG_FILE_NAME), JSON.stringify(aaiConfig));
46
+ spawner.writeFile((0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME), JSON.stringify(agentConfig));
47
+ await spawner.mkdirp(certFilePath);
48
+ await spawner.mkdirp((0, path_1.join)(certFilePath, 'bootstrap-certificates'));
49
+ await spawner.writeFile((0, path_1.join)(testCerts.getCertificateFilePath()), 'certificate data');
50
+ await spawner.writeFile((0, path_1.join)(testCerts.getPrivateKeyFilePath()), 'private key data');
51
+ await spawner.writeFile((0, path_1.join)(testCerts.getRootCertificateFilePath()), 'root cert data');
52
+ await spawner.writeFile((0, path_1.join)(testCerts.getCertificateIdFilePath()), 'certificate ID data');
53
+ await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapCertificateFileName)()), 'certificate data');
54
+ await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapPrivateKeyFileName)()), 'private key data');
55
+ await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapIDFileName)()), 'root cert data');
56
+ }
57
+ test('test current files present migration does not happen', async () => {
58
+ const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
59
+ const legacyCredentialsConfig = {
60
+ deviceId: '123-4567-8910-1234',
61
+ refreshToken: 'refresh',
62
+ accessToken: 'access',
63
+ idToken: 'id'
64
+ };
65
+ const aaiConfig = {
66
+ systemId: constants_1.SystemId.production,
67
+ deviceUuid: '123-4567-8910-1234'
68
+ };
69
+ // set up migrated/current configuration files
70
+ await setupCurrentFiles(spawner, legacyCredentialsConfig, aaiConfig);
71
+ const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
72
+ // check migration not called
73
+ expect(migrated).toBe(false);
74
+ });
75
+ test('test no legacy files migration does not happen', async () => {
76
+ const testCerts = new infrastructure_1.LocalDeviceCertificates(tmpDir);
77
+ const certFilePath = testCerts.getCertificateDirectoryName();
78
+ // check pre-conditions
79
+ expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, certFilePath))).toBe(false);
80
+ expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, infrastructure_1.DEVICE_CONFIG_FILE_NAME))).toBe(false);
81
+ expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, infrastructure_1.DEVICE_CONFIG_FILE_NAME))).toBe(false);
82
+ const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
83
+ // check migration not called
84
+ expect(migrated).toBe(false);
85
+ });
86
+ it('test legacy files present but invalid and no current files present migration does not happen', async () => {
87
+ const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
88
+ const legacyCredentialsConfig = {
89
+ deviceId: '123-abcd-8910-1234',
90
+ refreshToken: 'refresh',
91
+ accessToken: 'access',
92
+ idToken: 'id'
93
+ };
94
+ const aaiConfig = {
95
+ systemId: constants_1.SystemId.production,
96
+ deviceUuid: '123-4567-8910-1234'
97
+ };
98
+ const agentConfig = {
99
+ applications: []
100
+ };
101
+ // set up legacy files
102
+ await setupLegacyFiles(spawner, aaiConfig, legacyCredentialsConfig, agentConfig);
103
+ // confirm legacy files present and valid
104
+ const legacyFiles = (0, legacy_files_1.LegacyFiles)(tmpDir);
105
+ const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
106
+ const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
107
+ expect(legacyFilesPresent).toBe(true);
108
+ // confirm that an error is thrown when the deviceUuid !== deviceId
109
+ await expect((0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir)).rejects.toThrowError();
110
+ });
111
+ it('test legacy files present and no current files present migration does happen', async () => {
112
+ const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
113
+ const legacyCredentialsConfig = {
114
+ deviceId: '123-4567-8910-1234',
115
+ refreshToken: 'refresh',
116
+ accessToken: 'access',
117
+ idToken: 'id'
118
+ };
119
+ const aaiConfig = {
120
+ systemId: constants_1.SystemId.production,
121
+ deviceUuid: '123-4567-8910-1234'
122
+ };
123
+ const agentConfig = {
124
+ applications: []
125
+ };
126
+ // set up legacy files
127
+ await setupLegacyFiles(spawner, aaiConfig, legacyCredentialsConfig, agentConfig);
128
+ // check pre-conditions
129
+ // check that getBootstrapPrivateKeyFilePath() returns false so that
130
+ // bootstrapProvision won't be called on runDeviceAgentCloudInterface
131
+ const newBootstrapsDir = (0, path_1.join)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(tmpDir), (0, device_certificate_1.getBootstrapPrivateKeyFileName)());
132
+ const newBootstrapsPresent = (0, fs_1.existsSync)(newBootstrapsDir);
133
+ expect(newBootstrapsPresent).toBe(false);
134
+ // check no current files exist
135
+ const newFilesPresentPreMigrate = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(tmpDir);
136
+ expect(newFilesPresentPreMigrate).toBe(false);
137
+ // check that legacy files are present
138
+ const legacyFiles = (0, legacy_files_1.LegacyFiles)(tmpDir);
139
+ const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
140
+ const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
141
+ expect(legacyFilesPresent).toBe(true);
142
+ const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
143
+ // check output -- current files are present and valid
144
+ expect(migrated).toBe(true);
145
+ const newFilesPresentPostMigrate = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(tmpDir);
146
+ expect(newFilesPresentPostMigrate).toBe(true);
147
+ // check that getBootstrapPrivateKeyFilePath() returns false so that
148
+ // bootstrapProvision won't be called on runDeviceAgentCloudInterface
149
+ const newBootstrapsDirAfterMigration = (0, path_1.join)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(tmpDir), (0, device_certificate_1.getBootstrapPrivateKeyFileName)());
150
+ const newBootstrapsPresentAfterMigration = (0, fs_1.existsSync)(newBootstrapsDirAfterMigration);
151
+ expect(newBootstrapsPresentAfterMigration).toBe(false);
152
+ });
153
+ });
154
+ describe('test migrateDeviceTokens function', () => {
155
+ let tmpDir;
156
+ tmpDir = tempy.directory();
157
+ beforeAll(async () => {
158
+ tmpDir = tempy.directory();
159
+ });
160
+ afterAll(async () => {
161
+ await (0, rimraf_1.rimraf)(tmpDir);
162
+ });
163
+ it('test migrateDeviceTokens', async () => {
164
+ const deviceId = '123-4567-8910-1234';
165
+ const parsedConfig = {
166
+ systemId: constants_1.SystemId.production,
167
+ deviceUuid: deviceId
168
+ };
169
+ const deviceConfig = {
170
+ deviceId: deviceId,
171
+ refreshToken: 'refresh',
172
+ accessToken: 'access',
173
+ idToken: 'id'
174
+ };
175
+ const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
176
+ await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)()));
177
+ await spawner.writeFile((0, path_1.join)(tmpDir, paths_1.DEVICE_TOKEN_FILE_NAME), JSON.stringify(deviceConfig));
178
+ await (0, legacy_migration_1.migrateDeviceTokens)(parsedConfig, tmpDir);
179
+ const newDeviceConfig = (0, device_1.DeviceConfigFile)((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME));
180
+ const parsedNewDeviceConfig = newDeviceConfig.read();
181
+ expect(parsedNewDeviceConfig.deviceUuid).toEqual(deviceId);
182
+ expect(parsedNewDeviceConfig.idToken).toEqual(deviceConfig.idToken);
183
+ expect(parsedNewDeviceConfig.accessToken).toEqual(deviceConfig.accessToken);
184
+ expect(parsedNewDeviceConfig.refreshToken).toEqual(deviceConfig.refreshToken);
185
+ });
186
+ });
187
+ describe('test migrateAgentConfigFile function', () => {
188
+ let tmpDir;
189
+ tmpDir = tempy.directory();
190
+ beforeAll(async () => {
191
+ tmpDir = tempy.directory();
192
+ });
193
+ afterAll(async () => {
194
+ await (0, rimraf_1.rimraf)(tmpDir);
195
+ });
196
+ it('test migrateAgentConfigFile', async () => {
197
+ const newFilePath = (0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME);
198
+ const legacyFilePath = (0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME);
199
+ const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
200
+ const legacyAgentConfigContents = {
201
+ applications: [
202
+ {
203
+ projectId: 'c8a1b5bd-e112-44e4-bfa4-fb9b42a4322c',
204
+ version: 'b0139ac93d91e8bd4bcb69575a7312c646f9af086b83364a3fe0b4472af04353',
205
+ ready: true
206
+ }
207
+ ]
208
+ };
209
+ await spawner.writeFile(legacyFilePath, JSON.stringify(legacyAgentConfigContents));
210
+ const legacyFileExists = await (0, util_1.exists)(legacyFilePath);
211
+ expect(legacyFileExists).toEqual(true);
212
+ const legacyAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME));
213
+ const legacyAgentConfigReadContents = legacyAgentConfig.read();
214
+ expect(legacyAgentConfigReadContents.applications).toEqual(legacyAgentConfigContents.applications);
215
+ const newFileExists = await (0, util_1.exists)(newFilePath);
216
+ expect(newFileExists).toEqual(false);
217
+ await (0, legacy_migration_1.migrateAgentConfigFile)(tmpDir);
218
+ // confirm new file is valid
219
+ const newAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME));
220
+ const newAgentConfigContents = newAgentConfig.read();
221
+ expect(newAgentConfigContents.applications).toEqual(legacyAgentConfigContents.applications);
222
+ expect(newAgentConfig.path).toEqual(newFilePath);
223
+ expect(legacyFileExists).toEqual(true);
224
+ });
225
+ });
226
+ //# sourceMappingURL=legacy-migration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-migration.test.js","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=require-files-present-ready.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-files-present-ready.test.d.ts","sourceRoot":"","sources":["../../src/infrastructure/require-files-present-ready.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config_check_utility_1 = require("./config-check-utility");
4
+ const required_config_checks_1 = require("./required-config-checks");
5
+ const mockedDeviceCfgCheckFunction = jest.fn();
6
+ const mockedCertCheckFunction = jest.fn();
7
+ const mockedAaiCfgCheckFunction = jest.fn();
8
+ jest.mock('./config-check-utility');
9
+ jest
10
+ .mocked(config_check_utility_1.checkAaiConfigPresent)
11
+ .mockImplementation(mockedAaiCfgCheckFunction);
12
+ jest
13
+ .mocked(config_check_utility_1.checkDeviceConfigPresent)
14
+ .mockImplementation(mockedDeviceCfgCheckFunction);
15
+ jest
16
+ .mocked(config_check_utility_1.checkCertificatesPresent)
17
+ .mockImplementation(mockedCertCheckFunction);
18
+ describe('test requiredConfigFilesPresentAndValid', () => {
19
+ function setupMocks(mockDeviceCfgCheck, mockCertCheck, mockAaiCfgCheck) {
20
+ mockedDeviceCfgCheckFunction.mockResolvedValue(mockDeviceCfgCheck);
21
+ mockedCertCheckFunction.mockResolvedValue(mockCertCheck);
22
+ mockedAaiCfgCheckFunction.mockResolvedValue(mockAaiCfgCheck);
23
+ }
24
+ it('test return value when checkDeviceConfigPresent is false', async () => {
25
+ setupMocks(false, true, true);
26
+ const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
27
+ expect(newConfigsPresent).toBe(false);
28
+ });
29
+ it('test return value when checkCertificatesPresent is false', async () => {
30
+ setupMocks(true, false, false);
31
+ const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
32
+ expect(newConfigsPresent).toBe(false);
33
+ });
34
+ it('test return value when checkAaiConfigPresent is false', async () => {
35
+ setupMocks(true, true, false);
36
+ const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
37
+ expect(newConfigsPresent).toBe(false);
38
+ });
39
+ it('test return value when all included functions return true', async () => {
40
+ setupMocks(true, true, true);
41
+ expect(await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)()).toBe(true);
42
+ });
43
+ });
44
+ //# sourceMappingURL=require-files-present-ready.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-files-present-ready.test.js","sourceRoot":"","sources":["../../src/infrastructure/require-files-present-ready.test.ts"],"names":[],"mappings":";;AAAA,iEAIgC;AAChC,qEAA8E;AAE9E,MAAM,4BAA4B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC/C,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,MAAM,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE5C,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,IAAI;KACD,MAAM,CAAC,4CAAqB,CAAC;KAC7B,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AACjD,IAAI;KACD,MAAM,CAAC,+CAAwB,CAAC;KAChC,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;AACpD,IAAI;KACD,MAAM,CAAC,+CAAwB,CAAC;KAChC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AAE/C,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,SAAS,UAAU,CAAC,kBAAkB,EAAE,aAAa,EAAE,eAAe;QACpE,4BAA4B,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACnE,uBAAuB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,yBAAyB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,IAAA,2DAAkC,GAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function requiredConfigFilesPresentAndValid(baseDir?: any): Promise<boolean>;
2
+ //# sourceMappingURL=required-config-checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-config-checks.d.ts","sourceRoot":"","sources":["../../src/infrastructure/required-config-checks.ts"],"names":[],"mappings":"AAOA,wBAAsB,kCAAkC,CAAC,OAAO,CAAC,KAAA,oBAyBhE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requiredConfigFilesPresentAndValid = void 0;
4
+ const logger_1 = require("../util/logger");
5
+ const config_check_utility_1 = require("./config-check-utility");
6
+ async function requiredConfigFilesPresentAndValid(baseDir) {
7
+ // we need device/certificates, alwaysai.config.json, and device/alwaysai.device.json
8
+ logger_1.logger.debug('Checking for required configuration files.');
9
+ const newDeviceConfigPresent = await (0, config_check_utility_1.checkDeviceConfigPresent)(baseDir);
10
+ if (!newDeviceConfigPresent) {
11
+ logger_1.logger.debug('Required device configuration is not present and valid.');
12
+ return false;
13
+ }
14
+ // check new certificates are present
15
+ const certificatesPresent = await (0, config_check_utility_1.checkCertificatesPresent)(baseDir);
16
+ if (!certificatesPresent) {
17
+ logger_1.logger.debug('Required certificates paths not found.');
18
+ return false;
19
+ }
20
+ // TODO: add alwaysai.config.json check here
21
+ const aaiConfigPresent = await (0, config_check_utility_1.checkAaiConfigPresent)(baseDir);
22
+ if (!aaiConfigPresent) {
23
+ logger_1.logger.debug('Required aai configuration file is not present and valid.');
24
+ return false;
25
+ }
26
+ logger_1.logger.debug('All configuration files appear to be present.');
27
+ return true;
28
+ }
29
+ exports.requiredConfigFilesPresentAndValid = requiredConfigFilesPresentAndValid;
30
+ //# sourceMappingURL=required-config-checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-config-checks.js","sourceRoot":"","sources":["../../src/infrastructure/required-config-checks.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,iEAIgC;AAEzB,KAAK,UAAU,kCAAkC,CAAC,OAAQ;IAC/D,qFAAqF;IACrF,eAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC3D,MAAM,sBAAsB,GAAG,MAAM,IAAA,+CAAwB,EAAC,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,eAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;KACd;IAED,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,MAAM,IAAA,+CAAwB,EAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,mBAAmB,EAAE;QACxB,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;KACd;IAED,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,MAAM,IAAA,4CAAqB,EAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,gBAAgB,EAAE;QACrB,eAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;KACd;IAED,eAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAzBD,gFAyBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens-and-device-cfg.d.ts","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":"AAYA,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,iBAqBzE"}
1
+ {"version":3,"file":"tokens-and-device-cfg.d.ts","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":"AAaA,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,iBAsBzE"}
@@ -1,26 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeTokenAndDeviceCfg = void 0;
4
- const logger_1 = require("../util/logger");
5
- const http_client_1 = require("../util/http-client");
6
- const require_logged_in_and_paid_plan_1 = require("../util/require-logged-in-and-paid-plan");
7
4
  const device_1 = require("alwaysai/lib/core/device");
8
- const util_1 = require("alwaysai/lib/util");
5
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
9
6
  const paths_1 = require("alwaysai/lib/paths");
7
+ const util_1 = require("alwaysai/lib/util");
8
+ const path_1 = require("path");
9
+ const http_client_1 = require("../util/http-client");
10
+ const logger_1 = require("../util/logger");
11
+ const require_logged_in_and_paid_plan_1 = require("../util/require-logged-in-and-paid-plan");
10
12
  // NOTE: This closely follows the flow of deviceCheckAndUpdateComponent in the CLI
11
13
  async function writeTokenAndDeviceCfg(props) {
12
14
  const { deviceUuid } = props;
13
15
  await (0, require_logged_in_and_paid_plan_1.requireLoggedInAndPaidPlan)();
14
16
  const { accessToken, refreshToken, idToken } = await (0, http_client_1.microServiceHttpClient)('token-service', 'create-device-tokens', 'POST', JSON.stringify({}));
15
17
  const tokens = {
16
- deviceId: deviceUuid,
18
+ deviceUuid,
17
19
  accessToken,
18
20
  refreshToken,
19
21
  idToken
20
22
  };
21
- const tokenSpawner = (0, util_1.JsSpawner)({ path: paths_1.LOCAL_AAI_CFG_DIR });
22
- await (0, device_1.writeTokens)({ spawner: tokenSpawner, tokens });
23
- await (0, device_1.writeOrValidateDeviceCfgFile)({ spawner: tokenSpawner, deviceUuid });
23
+ const tokenSpawner = (0, util_1.JsSpawner)({
24
+ path: (0, path_1.join)(paths_1.LOCAL_AAI_CFG_DIR, (0, infrastructure_1.getDeviceConfigPath)())
25
+ });
26
+ await (0, device_1.writeOrValidateDeviceCfgFile)(Object.assign({ spawner: tokenSpawner }, tokens));
24
27
  logger_1.logger.info('Updated tokens and certificate');
25
28
  }
26
29
  exports.writeTokenAndDeviceCfg = writeTokenAndDeviceCfg;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens-and-device-cfg.js","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qDAA6D;AAC7D,6FAAqF;AACrF,qDAIkC;AAClC,4CAA8C;AAC9C,8CAAuD;AAEvD,kFAAkF;AAC3E,KAAK,UAAU,sBAAsB,CAAC,KAA6B;IACxE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7B,MAAM,IAAA,4DAA0B,GAAE,CAAC;IACnC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,oCAAsB,EACzE,eAAe,EACf,sBAAsB,EACtB,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CACnB,CAAC;IAEF,MAAM,MAAM,GAAiB;QAC3B,QAAQ,EAAE,UAAU;QACpB,WAAW;QACX,YAAY;QACZ,OAAO;KACR,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,yBAAiB,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAA,oBAAW,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,MAAM,IAAA,qCAA4B,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1E,eAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AArBD,wDAqBC"}
1
+ {"version":3,"file":"tokens-and-device-cfg.js","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":";;;AAAA,qDAGkC;AAClC,gEAAkE;AAClE,8CAAuD;AACvD,4CAA8C;AAC9C,+BAA4B;AAC5B,qDAA6D;AAC7D,2CAAwC;AACxC,6FAAqF;AAErF,kFAAkF;AAC3E,KAAK,UAAU,sBAAsB,CAAC,KAA6B;IACxE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7B,MAAM,IAAA,4DAA0B,GAAE,CAAC;IACnC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,oCAAsB,EACzE,eAAe,EACf,sBAAsB,EACtB,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CACnB,CAAC;IAEF,MAAM,MAAM,GAAiB;QAC3B,UAAU;QACV,WAAW;QACX,YAAY;QACZ,OAAO;KACR,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,gBAAS,EAAC;QAC7B,IAAI,EAAE,IAAA,WAAI,EAAC,yBAAiB,EAAE,IAAA,oCAAmB,GAAE,CAAC;KACrD,CAAC,CAAC;IACH,MAAM,IAAA,qCAA4B,kBAAG,OAAO,EAAE,YAAY,IAAK,MAAM,EAAG,CAAC;IAEzE,eAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAtBD,wDAsBC"}
@@ -0,0 +1,23 @@
1
+ import { MessageHandler } from '../cloud-connection/message-dispatcher';
2
+ import { BaseHandler, HandlerContext } from '../cloud-connection/base-message-handler';
3
+ export declare class JobHandler extends BaseHandler implements MessageHandler {
4
+ private readonly msgHandler;
5
+ constructor(handlerContext: HandlerContext);
6
+ private readonly state;
7
+ private jobId;
8
+ handle(message: any, topic: string): Promise<void>;
9
+ getJobTopic(): {
10
+ NOTIFY_NEXT: string;
11
+ START_NEXT: string;
12
+ START_NEXT_ACCEPTED: string;
13
+ UPDATE: string;
14
+ };
15
+ private notifyNext;
16
+ private startNextAccepted;
17
+ private processJobExecution;
18
+ private handleError;
19
+ private updateJobStatus;
20
+ private readonly handleJobSuccess;
21
+ private readonly handleJobError;
22
+ }
23
+ //# sourceMappingURL=job-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-handler.d.ts","sourceRoot":"","sources":["../../src/jobs/job-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EACL,WAAW,EACX,cAAc,EACf,MAAM,0CAA0C,CAAC;AAkBlD,qBAAa,UAAW,SAAQ,WAAY,YAAW,cAAc;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;gBAE3C,cAAc,EAAE,cAAc;IAQ1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,KAAK,CAAM;IAEN,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/D,WAAW;;;;;;YAUG,UAAU;IAOxB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE/B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;CACH"}