@alwaysai/device-agent 0.0.4 → 0.0.5

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 (191) hide show
  1. package/lib/application-control/backup.d.ts.map +1 -1
  2. package/lib/application-control/backup.js +10 -6
  3. package/lib/application-control/backup.js.map +1 -1
  4. package/lib/application-control/environment-variables.d.ts +9 -0
  5. package/lib/application-control/environment-variables.d.ts.map +1 -0
  6. package/lib/application-control/environment-variables.js +82 -0
  7. package/lib/application-control/environment-variables.js.map +1 -0
  8. package/lib/application-control/index.d.ts +9 -0
  9. package/lib/application-control/index.d.ts.map +1 -0
  10. package/lib/application-control/index.js +27 -0
  11. package/lib/application-control/index.js.map +1 -0
  12. package/lib/application-control/install.d.ts +8 -2
  13. package/lib/application-control/install.d.ts.map +1 -1
  14. package/lib/application-control/install.js +72 -42
  15. package/lib/application-control/install.js.map +1 -1
  16. package/lib/application-control/models.d.ts.map +1 -1
  17. package/lib/application-control/models.js +7 -17
  18. package/lib/application-control/models.js.map +1 -1
  19. package/lib/application-control/status.d.ts +3 -3
  20. package/lib/application-control/status.d.ts.map +1 -1
  21. package/lib/application-control/status.js +19 -20
  22. package/lib/application-control/status.js.map +1 -1
  23. package/lib/application-control/types.d.ts +0 -13
  24. package/lib/application-control/types.d.ts.map +1 -1
  25. package/lib/application-control/utils.d.ts +2 -9
  26. package/lib/application-control/utils.d.ts.map +1 -1
  27. package/lib/application-control/utils.js +13 -28
  28. package/lib/application-control/utils.js.map +1 -1
  29. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +15 -2
  30. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  31. package/lib/cloud-connection/device-agent-cloud-connection.js +200 -27
  32. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  33. package/lib/docker/docker-cmd.js +2 -2
  34. package/lib/docker/docker-cmd.js.map +1 -1
  35. package/lib/docker/docker-compose-cmd.js +2 -2
  36. package/lib/docker/docker-compose-cmd.js.map +1 -1
  37. package/lib/environment.d.ts +2 -0
  38. package/lib/environment.d.ts.map +1 -1
  39. package/lib/environment.js +3 -1
  40. package/lib/environment.js.map +1 -1
  41. package/lib/index.js +10 -8
  42. package/lib/index.js.map +1 -1
  43. package/lib/infrastructure/agent-config.d.ts +73 -0
  44. package/lib/infrastructure/agent-config.d.ts.map +1 -0
  45. package/lib/infrastructure/agent-config.js +186 -0
  46. package/lib/infrastructure/agent-config.js.map +1 -0
  47. package/lib/infrastructure/agent-config.test.d.ts +2 -0
  48. package/lib/infrastructure/agent-config.test.d.ts.map +1 -0
  49. package/lib/infrastructure/agent-config.test.js +135 -0
  50. package/lib/infrastructure/agent-config.test.js.map +1 -0
  51. package/lib/infrastructure/certificates-and-tokens.d.ts +6 -0
  52. package/lib/infrastructure/certificates-and-tokens.d.ts.map +1 -0
  53. package/lib/infrastructure/certificates-and-tokens.js +69 -0
  54. package/lib/infrastructure/certificates-and-tokens.js.map +1 -0
  55. package/lib/{util → infrastructure}/urls.d.ts +0 -0
  56. package/lib/infrastructure/urls.d.ts.map +1 -0
  57. package/lib/{util → infrastructure}/urls.js +3 -3
  58. package/lib/infrastructure/urls.js.map +1 -0
  59. package/lib/root.js +3 -3
  60. package/lib/root.js.map +1 -1
  61. package/lib/subcommands/app/app.d.ts +8 -1
  62. package/lib/subcommands/app/app.d.ts.map +1 -1
  63. package/lib/subcommands/app/app.js +58 -24
  64. package/lib/subcommands/app/app.js.map +1 -1
  65. package/lib/subcommands/app/index.d.ts.map +1 -1
  66. package/lib/subcommands/app/index.js +2 -0
  67. package/lib/subcommands/app/index.js.map +1 -1
  68. package/lib/subcommands/device/device.d.ts +6 -0
  69. package/lib/subcommands/device/device.d.ts.map +1 -0
  70. package/lib/subcommands/device/device.js +62 -0
  71. package/lib/subcommands/device/device.js.map +1 -0
  72. package/lib/subcommands/device/index.d.ts +2 -0
  73. package/lib/subcommands/device/index.d.ts.map +1 -0
  74. package/lib/subcommands/device/index.js +11 -0
  75. package/lib/subcommands/device/index.js.map +1 -0
  76. package/lib/subcommands/get-model-package.d.ts +5 -0
  77. package/lib/subcommands/get-model-package.d.ts.map +1 -0
  78. package/lib/subcommands/get-model-package.js +51 -0
  79. package/lib/subcommands/get-model-package.js.map +1 -0
  80. package/lib/subcommands/index.d.ts +8 -1
  81. package/lib/subcommands/index.d.ts.map +1 -1
  82. package/lib/subcommands/index.js +9 -3
  83. package/lib/subcommands/index.js.map +1 -1
  84. package/lib/subcommands/login.d.ts +3 -2
  85. package/lib/subcommands/login.d.ts.map +1 -1
  86. package/lib/subcommands/login.js +11 -4
  87. package/lib/subcommands/login.js.map +1 -1
  88. package/lib/util/copy-dir.js +3 -3
  89. package/lib/util/copy-dir.js.map +1 -1
  90. package/lib/util/directories.js +5 -5
  91. package/lib/util/directories.js.map +1 -1
  92. package/package.json +19 -14
  93. package/readme.md +176 -79
  94. package/src/application-control/backup.ts +10 -6
  95. package/src/application-control/environment-variables.ts +81 -0
  96. package/src/application-control/index.ts +40 -0
  97. package/src/application-control/install.ts +79 -55
  98. package/src/application-control/models.ts +12 -17
  99. package/src/application-control/status.ts +26 -24
  100. package/src/application-control/types.ts +0 -4
  101. package/src/application-control/utils.ts +10 -25
  102. package/src/cloud-connection/device-agent-cloud-connection.ts +243 -40
  103. package/src/docker/docker-cmd.ts +1 -1
  104. package/src/docker/docker-compose-cmd.ts +1 -1
  105. package/src/environment.ts +2 -0
  106. package/src/index.ts +10 -7
  107. package/src/infrastructure/agent-config.test.ts +143 -0
  108. package/src/infrastructure/agent-config.ts +217 -0
  109. package/src/infrastructure/certificates-and-tokens.ts +71 -0
  110. package/src/{util → infrastructure}/urls.ts +1 -1
  111. package/src/root.ts +3 -3
  112. package/src/subcommands/app/app.ts +57 -19
  113. package/src/subcommands/app/index.ts +4 -0
  114. package/src/subcommands/device/device.ts +63 -0
  115. package/src/subcommands/device/index.ts +8 -0
  116. package/src/subcommands/get-model-package.ts +60 -0
  117. package/src/subcommands/index.ts +9 -3
  118. package/src/subcommands/login.ts +11 -4
  119. package/src/util/copy-dir.ts +1 -1
  120. package/src/util/directories.ts +8 -8
  121. package/lib/constants.d.ts +0 -13
  122. package/lib/constants.d.ts.map +0 -1
  123. package/lib/constants.js +0 -18
  124. package/lib/constants.js.map +0 -1
  125. package/lib/subcommands/device-control.d.ts +0 -2
  126. package/lib/subcommands/device-control.d.ts.map +0 -1
  127. package/lib/subcommands/device-control.js +0 -19
  128. package/lib/subcommands/device-control.js.map +0 -1
  129. package/lib/util/spawner/gnu-spawner.d.ts +0 -9
  130. package/lib/util/spawner/gnu-spawner.d.ts.map +0 -1
  131. package/lib/util/spawner/gnu-spawner.js +0 -102
  132. package/lib/util/spawner/gnu-spawner.js.map +0 -1
  133. package/lib/util/spawner/js-spawner.d.ts +0 -5
  134. package/lib/util/spawner/js-spawner.d.ts.map +0 -1
  135. package/lib/util/spawner/js-spawner.js +0 -89
  136. package/lib/util/spawner/js-spawner.js.map +0 -1
  137. package/lib/util/spawner/types.d.ts +0 -28
  138. package/lib/util/spawner/types.d.ts.map +0 -1
  139. package/lib/util/spawner/types.js +0 -3
  140. package/lib/util/spawner/types.js.map +0 -1
  141. package/lib/util/spawner-base/index.d.ts +0 -17
  142. package/lib/util/spawner-base/index.d.ts.map +0 -1
  143. package/lib/util/spawner-base/index.js +0 -30
  144. package/lib/util/spawner-base/index.js.map +0 -1
  145. package/lib/util/spawner-base/run-foreground-sync.d.ts +0 -3
  146. package/lib/util/spawner-base/run-foreground-sync.d.ts.map +0 -1
  147. package/lib/util/spawner-base/run-foreground-sync.js +0 -18
  148. package/lib/util/spawner-base/run-foreground-sync.js.map +0 -1
  149. package/lib/util/spawner-base/run-foreground.d.ts +0 -3
  150. package/lib/util/spawner-base/run-foreground.d.ts.map +0 -1
  151. package/lib/util/spawner-base/run-foreground.js +0 -49
  152. package/lib/util/spawner-base/run-foreground.js.map +0 -1
  153. package/lib/util/spawner-base/run-streaming.d.ts +0 -4
  154. package/lib/util/spawner-base/run-streaming.d.ts.map +0 -1
  155. package/lib/util/spawner-base/run-streaming.js +0 -35
  156. package/lib/util/spawner-base/run-streaming.js.map +0 -1
  157. package/lib/util/spawner-base/run.d.ts +0 -4
  158. package/lib/util/spawner-base/run.d.ts.map +0 -1
  159. package/lib/util/spawner-base/run.js +0 -56
  160. package/lib/util/spawner-base/run.js.map +0 -1
  161. package/lib/util/urls.d.ts.map +0 -1
  162. package/lib/util/urls.js.map +0 -1
  163. package/lib/web/index.html +0 -229
  164. package/lib/web/static/Karla.css +0 -18
  165. package/lib/web/static/bootstrap-4.3.1.min.css +0 -7
  166. package/lib/web/static/bootstrap-4.3.1.min.js +0 -7
  167. package/lib/web/static/favicon.ico +0 -0
  168. package/lib/web/static/jquery-3.3.1.slim.min.js +0 -2
  169. package/lib/web/static/popper-1.14.7.min.js +0 -5
  170. package/lib/web/web-interface.d.ts +0 -2
  171. package/lib/web/web-interface.d.ts.map +0 -1
  172. package/lib/web/web-interface.js +0 -75
  173. package/lib/web/web-interface.js.map +0 -1
  174. package/src/constants.ts +0 -22
  175. package/src/subcommands/device-control.ts +0 -16
  176. package/src/util/spawner/gnu-spawner.ts +0 -114
  177. package/src/util/spawner/js-spawner.ts +0 -110
  178. package/src/util/spawner/types.ts +0 -28
  179. package/src/util/spawner-base/index.ts +0 -28
  180. package/src/util/spawner-base/run-foreground-sync.ts +0 -16
  181. package/src/util/spawner-base/run-foreground.ts +0 -49
  182. package/src/util/spawner-base/run-streaming.ts +0 -40
  183. package/src/util/spawner-base/run.ts +0 -60
  184. package/src/web/index.html +0 -229
  185. package/src/web/static/Karla.css +0 -18
  186. package/src/web/static/bootstrap-4.3.1.min.css +0 -7
  187. package/src/web/static/bootstrap-4.3.1.min.js +0 -7
  188. package/src/web/static/favicon.ico +0 -0
  189. package/src/web/static/jquery-3.3.1.slim.min.js +0 -2
  190. package/src/web/static/popper-1.14.7.min.js +0 -5
  191. package/src/web/web-interface.ts +0 -85
@@ -2,19 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.restartApp = exports.stopApp = exports.startApp = exports.getAppLogs = exports.getAppStatus = exports.listAppLatestRelease = exports.listAppReleases = void 0;
4
4
  const docker_compose_1 = require("docker-compose");
5
- const alwaysai_1 = require("alwaysai");
5
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
6
+ const util_1 = require("alwaysai/lib/util");
6
7
  const docker_cmd_1 = require("../docker/docker-cmd");
7
- const js_spawner_1 = require("../util/spawner/js-spawner");
8
8
  const utils_1 = require("./utils");
9
+ const agent_config_1 = require("../infrastructure/agent-config");
9
10
  async function listAppReleases(props) {
10
11
  const { projectId } = props;
11
- const releaseHistory = await (0, alwaysai_1.fetchAppReleaseHistory)(projectId);
12
+ const releaseHistory = await (0, infrastructure_1.fetchAppReleaseHistory)(projectId);
12
13
  return releaseHistory;
13
14
  }
14
15
  exports.listAppReleases = listAppReleases;
15
16
  async function listAppLatestRelease(props) {
16
17
  const { projectId } = props;
17
- const releaseHistory = await (0, alwaysai_1.fetchAppReleaseHistory)(projectId);
18
+ const releaseHistory = await (0, infrastructure_1.fetchAppReleaseHistory)(projectId);
18
19
  if (releaseHistory.length >= 1) {
19
20
  return releaseHistory[0]['releaseHash'];
20
21
  }
@@ -23,16 +24,23 @@ async function listAppLatestRelease(props) {
23
24
  exports.listAppLatestRelease = listAppLatestRelease;
24
25
  async function getAppStatus(props) {
25
26
  const { projectId } = props;
26
- const appDir = (0, utils_1.getAppDir)(projectId);
27
- if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
27
+ if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
28
28
  throw new Error('Application is not installed');
29
29
  }
30
+ const appDetails = {
31
+ projectId,
32
+ version: await (0, agent_config_1.AgentConfigFile)().getAppVersion({ projectId }),
33
+ };
34
+ if (!(await (0, agent_config_1.AgentConfigFile)().isAppReady({ projectId }))) {
35
+ // App is being installed or updated
36
+ return { appDetails, services: [] };
37
+ }
38
+ const appDir = (0, utils_1.getAppDir)(projectId);
30
39
  // Check if app is running
31
40
  const output = await docker_compose_1.default.ps({ cwd: appDir });
32
41
  if (output.exitCode !== 0) {
33
42
  throw new Error(`Failed to get application status! stdout=${output.out} stderr=${output.err}`);
34
43
  }
35
- const appDetails = { projectId, version: await (0, utils_1.getAppVersion)({ appDir }) };
36
44
  const services = [];
37
45
  if (output.data.services.length === 0) {
38
46
  // If the app has never been started (or has an empty docker-compose.yaml)
@@ -69,10 +77,8 @@ async function getAppStatus(props) {
69
77
  exports.getAppStatus = getAppStatus;
70
78
  async function getAppLogs(props) {
71
79
  const { projectId, services } = props;
80
+ await (0, utils_1.requireAppInstalled)({ projectId });
72
81
  const appDir = (0, utils_1.getAppDir)(projectId);
73
- if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
74
- throw new Error('Application is not installed');
75
- }
76
82
  const serviceList = services
77
83
  ? services
78
84
  : await (async function () {
@@ -84,7 +90,7 @@ async function getAppLogs(props) {
84
90
  return services;
85
91
  })();
86
92
  // Use direct command with spawner in order to get a readable stream
87
- return await (0, js_spawner_1.JsSpawner)().runStreaming({
93
+ return await (0, util_1.JsSpawner)().runStreaming({
88
94
  exe: 'docker-compose',
89
95
  args: ['logs', '-f', ...serviceList],
90
96
  cwd: appDir,
@@ -93,11 +99,8 @@ async function getAppLogs(props) {
93
99
  exports.getAppLogs = getAppLogs;
94
100
  async function startApp(props) {
95
101
  const { projectId, dockerLoginToken } = props;
102
+ await (0, utils_1.requireAppInstalled)({ projectId });
96
103
  const appDir = (0, utils_1.getAppDir)(projectId);
97
- // Check if app is installed
98
- if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
99
- throw new Error('Application is not installed');
100
- }
101
104
  if (dockerLoginToken !== undefined) {
102
105
  const result = await (0, docker_cmd_1.runDockerLogin)({ token: dockerLoginToken });
103
106
  console.log(result);
@@ -114,12 +117,8 @@ async function startApp(props) {
114
117
  exports.startApp = startApp;
115
118
  async function stopApp(props) {
116
119
  const { projectId } = props;
120
+ await (0, utils_1.requireAppInstalled)({ projectId });
117
121
  const appDir = (0, utils_1.getAppDir)(projectId);
118
- // Check if app is installed
119
- if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
120
- console.log('Application is not installed');
121
- return;
122
- }
123
122
  // TODO: Check if app is running
124
123
  // Stop app
125
124
  const output = await docker_compose_1.default.down({ cwd: appDir });
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,3 @@
1
- export declare type AppDetails = {
2
- projectId: string;
3
- version: string;
4
- };
5
- export declare type ServiceState = 'Stopped' | 'Up' | 'Restarting';
6
- export declare type ServiceStatus = {
7
- name: string;
8
- state: ServiceState;
9
- };
10
- export declare type AppStatus = {
11
- appDetails: AppDetails;
12
- services: ServiceStatus[];
13
- };
14
1
  export declare type ModelDetails = {
15
2
  modelId: string;
16
3
  version: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/application-control/types.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,oBAAY,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,YAAY,CAAC;AAC3D,oBAAY,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAClE,oBAAY,SAAS,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAC9E,oBAAY,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/application-control/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1,15 +1,8 @@
1
1
  export declare const APP_ROOT: string;
2
2
  export declare function getAppDir(projectId: string): string;
3
- export declare function isAppInstalled(props: {
4
- appDir: string;
5
- }): Promise<boolean>;
6
- export declare function setAppVersion(props: {
7
- appDir: string;
8
- version: string;
3
+ export declare function requireAppInstalled(props: {
4
+ projectId: string;
9
5
  }): Promise<void>;
10
- export declare function getAppVersion(props: {
11
- appDir: string;
12
- }): Promise<any>;
13
6
  export declare function buildApp(props: {
14
7
  appDir: string;
15
8
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAI3D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBAM7E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,gBAK5D;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAuBvD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAG3D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBASrE;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAsBvD"}
@@ -1,43 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildApp = exports.getAppVersion = exports.setAppVersion = exports.isAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
3
+ exports.buildApp = exports.requireAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
4
4
  const docker_compose_1 = require("docker-compose");
5
5
  const path = require("path");
6
6
  const fs = require("fs");
7
- const js_spawner_1 = require("../util/spawner/js-spawner");
8
- const alwaysai_1 = require("alwaysai");
7
+ const constants_1 = require("alwaysai/lib/constants");
9
8
  const run_cli_cmd_1 = require("../util/run-cli-cmd");
10
- exports.APP_ROOT = path.join(alwaysai_1.AAI_DIR, 'applications');
11
- const RELEASE_FILENAME = 'alwaysai.release.json';
9
+ const agent_config_1 = require("../infrastructure/agent-config");
10
+ exports.APP_ROOT = path.join(constants_1.AAI_DIR, 'applications');
12
11
  const DOCKER_COMPOSE_FILENAME = 'docker-compose.yaml';
13
12
  function getAppDir(projectId) {
14
13
  return path.join(exports.APP_ROOT, projectId);
15
14
  }
16
15
  exports.getAppDir = getAppDir;
17
- async function isAppInstalled(props) {
18
- const { appDir } = props;
19
- // TODO: Could do more sophisticated check
20
- if (fs.existsSync(appDir)) {
21
- return true;
16
+ async function requireAppInstalled(props) {
17
+ const { projectId } = props;
18
+ // Ensure an app that is being installed or updated is not modified
19
+ if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
20
+ throw new Error('Application is not installed');
21
+ }
22
+ if (!(await (0, agent_config_1.AgentConfigFile)().isAppReady({ projectId }))) {
23
+ throw new Error('Application is not done installing or updating');
22
24
  }
23
- return false;
24
- }
25
- exports.isAppInstalled = isAppInstalled;
26
- async function setAppVersion(props) {
27
- const { appDir, version } = props;
28
- // TODO: Switch to node-config
29
- const versionPath = path.join(appDir, RELEASE_FILENAME);
30
- const versionData = { version };
31
- await (0, js_spawner_1.JsSpawner)().writeFile(versionPath, JSON.stringify(versionData, null, 2));
32
- }
33
- exports.setAppVersion = setAppVersion;
34
- async function getAppVersion(props) {
35
- const { appDir } = props;
36
- const versionPath = path.join(appDir, RELEASE_FILENAME);
37
- const releaseData = JSON.parse(await (0, js_spawner_1.JsSpawner)().readFile(versionPath));
38
- return releaseData.version;
39
25
  }
40
- exports.getAppVersion = getAppVersion;
26
+ exports.requireAppInstalled = requireAppInstalled;
41
27
  async function buildApp(props) {
42
28
  const { appDir } = props;
43
29
  await (0, run_cli_cmd_1.runCliCmd)({
@@ -53,7 +39,6 @@ async function buildApp(props) {
53
39
  });
54
40
  }
55
41
  const buildOut = await docker_compose_1.default.buildAll({ cwd: appDir });
56
- console.log(buildOut);
57
42
  if (buildOut.exitCode !== 0) {
58
43
  throw new Error(`Failed to build application! stdout=${buildOut.out} stderr=${buildOut.err}`);
59
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;AAEzB,2DAAuD;AACvD,uCAAmC;AACnC,qDAAgD;AAEnC,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAO,EAAE,cAAc,CAAC,CAAC;AAC3D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,cAAc,CAAC,KAAyB;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,0CAA0C;IAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,wCAOC;AAEM,KAAK,UAAU,aAAa,CAAC,KAA0C;IAC5E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClC,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,CAAC;IAChC,MAAM,IAAA,sBAAS,GAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAND,sCAMC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAyB;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,sBAAS,GAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AALD,sCAKC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAyB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC;QAChF,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,uBAAS,EAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAA,uBAAS,EAAC;YACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,CAAC;YAC1D,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;KACJ;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,GAAG,WAAW,QAAQ,CAAC,GAAG,EAAE,CAC7E,CAAC;KACH;AACH,CAAC;AAvBD,4BAuBC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;AACzB,sDAAiD;AAEjD,qDAAgD;AAChD,iEAAiE;AAEpD,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,cAAc,CAAC,CAAC;AAC3D,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,mBAAmB,CAAC,KAA4B;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,mEAAmE;IACnE,IAAI,CAAC,CAAC,MAAM,IAAA,8BAAe,GAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,IAAI,CAAC,CAAC,MAAM,IAAA,8BAAe,GAAE,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;AACH,CAAC;AATD,kDASC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAyB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC;QAChF,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,uBAAS,EAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAA,uBAAS,EAAC;YACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,CAAC;YAC1D,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;KACJ;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,GAAG,WAAW,QAAQ,CAAC,GAAG,EAAE,CAC7E,CAAC;KACH;AACH,CAAC;AAtBD,4BAsBC"}
@@ -1,10 +1,23 @@
1
+ import { InstallationStatus } from '@alwaysai/device-agent-schemas';
1
2
  export declare class DeviceAgentCloudConnection {
2
- device: any;
3
3
  private clientId;
4
4
  private host;
5
- private publishInterval;
5
+ private publishable;
6
+ private readonly publishInterval;
7
+ private readonly installationStatusInterval;
8
+ private installationStatus;
9
+ private publishableTimeout;
10
+ device: any;
11
+ agentTopicPrefix: string;
12
+ cloudTopicPrefix: string;
6
13
  constructor();
14
+ setInstallationStatus(installationStatus: InstallationStatus): void;
15
+ getInstallationStatus(): InstallationStatus;
16
+ getPublishable(): boolean;
17
+ setPublishable(enabled: boolean): void;
18
+ restartPublishableTimeout(): void;
7
19
  getPublishInterval(): number;
20
+ getInstallationStatusInterval(): number;
8
21
  getClientId(): string;
9
22
  publishMessage(topic: string, message: string): void;
10
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAaA,qBAAa,0BAA0B;IAC9B,MAAM,MAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,eAAe,CAAQ;;IAgBxB,kBAAkB;IAIlB,WAAW;IAIX,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIrD;AAED,wBAAgB,4BAA4B,SAqE3C"}
1
+ {"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAgBA,OAAO,EASL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAC;AAIxC,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAQ;IACnD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAgC;IAEnD,MAAM,MAAiB;IACvB,gBAAgB,SAAsD;IACtE,gBAAgB,SAAsD;;IAetE,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB;IAI5D,qBAAqB,IAAI,kBAAkB;IAI3C,cAAc,IAAI,OAAO;IAIzB,cAAc,CAAC,OAAO,EAAE,OAAO;IAI/B,yBAAyB;IAOzB,kBAAkB;IAIlB,6BAA6B;IAI7B,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED,wBAAgB,4BAA4B,SA8N3C"}
@@ -1,19 +1,32 @@
1
1
  "use strict";
2
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
3
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
4
+ var m = o[Symbol.asyncIterator], i;
5
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
6
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
7
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
8
+ };
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.runDeviceAgentCloudInterface = exports.DeviceAgentCloudConnection = void 0;
4
11
  const awsIot = require('aws-iot-device-sdk');
5
- const urls_1 = require("../util/urls");
12
+ const urls_1 = require("../infrastructure/urls");
6
13
  const directories_1 = require("../util/directories");
7
14
  const status_1 = require("../application-control/status");
8
15
  const install_1 = require("../application-control/install");
9
16
  const device_control_1 = require("../device-control/device-control");
17
+ const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
10
18
  const get_device_id_1 = require("../util/get-device-id");
19
+ const agent_config_1 = require("../infrastructure/agent-config");
11
20
  class DeviceAgentCloudConnection {
12
21
  constructor() {
13
- this.device = awsIot.device;
14
22
  this.clientId = (0, get_device_id_1.getDeviceId)();
15
23
  this.host = (0, urls_1.getIoTCoreEndpointUrl)();
24
+ this.publishable = false;
16
25
  this.publishInterval = 1000;
26
+ this.installationStatusInterval = 3000;
27
+ this.device = awsIot.device;
28
+ this.agentTopicPrefix = `destination/agent/device/${this.clientId}/topic/`;
29
+ this.cloudTopicPrefix = `destination/cloud/device/${this.clientId}/topic/`;
17
30
  this.device = awsIot.device({
18
31
  keyPath: (0, directories_1.getPrivateKeyFilePath)(),
19
32
  certPath: (0, directories_1.getCertificateFilePath)(),
@@ -21,29 +34,96 @@ class DeviceAgentCloudConnection {
21
34
  clientId: this.clientId,
22
35
  host: this.host,
23
36
  });
24
- // TODO: subscribe to topics here
25
- this.device.subscribe('command');
26
- this.publishInterval = this.publishInterval;
37
+ this.device.subscribe(`${this.agentTopicPrefix}command`);
38
+ this.device.subscribe(`${this.agentTopicPrefix}response`);
39
+ }
40
+ setInstallationStatus(installationStatus) {
41
+ this.installationStatus = installationStatus;
42
+ }
43
+ getInstallationStatus() {
44
+ return this.installationStatus;
45
+ }
46
+ getPublishable() {
47
+ return this.publishable;
48
+ }
49
+ setPublishable(enabled) {
50
+ this.publishable = enabled;
51
+ }
52
+ restartPublishableTimeout() {
53
+ clearTimeout(this.publishableTimeout);
54
+ this.publishableTimeout = setTimeout(() => {
55
+ this.setPublishable(false);
56
+ }, 600000); // 10 min
27
57
  }
28
58
  getPublishInterval() {
29
59
  return this.publishInterval;
30
60
  }
61
+ getInstallationStatusInterval() {
62
+ return this.installationStatusInterval;
63
+ }
31
64
  getClientId() {
32
65
  return this.clientId;
33
66
  }
34
67
  publishMessage(topic, message) {
35
- console.log('publishing message ', message);
36
68
  this.device.publish(topic, message);
37
69
  }
38
70
  }
39
71
  exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
40
72
  function runDeviceAgentCloudInterface() {
41
73
  const deviceAgent = new DeviceAgentCloudConnection();
74
+ async function buildMessagePacket(topic, payload) {
75
+ const packet = {
76
+ timestamp: new Date().toUTCString(),
77
+ deviceId: deviceAgent.getClientId(),
78
+ topic,
79
+ payload,
80
+ };
81
+ return packet;
82
+ }
83
+ async function getAppLogsMessage() {
84
+ var e_1, _a;
85
+ const appLogsList = [];
86
+ const apps = await (0, agent_config_1.AgentConfigFile)().getReadyApps();
87
+ for (const app of apps) {
88
+ const projectId = app.projectId;
89
+ const readable = await (0, status_1.getAppLogs)({ projectId });
90
+ const logs = [];
91
+ readable.setEncoding('utf8');
92
+ try {
93
+ for (var readable_1 = (e_1 = void 0, __asyncValues(readable)), readable_1_1; readable_1_1 = await readable_1.next(), !readable_1_1.done;) {
94
+ const chunk = readable_1_1.value;
95
+ logs.push(chunk);
96
+ }
97
+ }
98
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
99
+ finally {
100
+ try {
101
+ if (readable_1_1 && !readable_1_1.done && (_a = readable_1.return)) await _a.call(readable_1);
102
+ }
103
+ finally { if (e_1) throw e_1.error; }
104
+ }
105
+ const appLogs = {
106
+ projectId,
107
+ logs,
108
+ };
109
+ appLogsList.push(appLogs);
110
+ }
111
+ const applicationStatePackage = {
112
+ applicationLogs: appLogsList,
113
+ };
114
+ return applicationStatePackage;
115
+ }
116
+ const publishAppLogs = setInterval(async function () {
117
+ const appLogsMessage = await getAppLogsMessage();
118
+ const topic = `device/${deviceAgent.getClientId()}/topic/application-management`;
119
+ const appLogsPacket = await buildMessagePacket(topic, appLogsMessage);
120
+ deviceAgent.publishMessage(topic, JSON.stringify({ appLogsPacket }));
121
+ }, deviceAgent.getPublishInterval());
42
122
  async function getAppStateMessage() {
43
123
  const appStateMessage = [];
44
- const installedApps = await (0, install_1.getInstalledApps)();
45
- for (const app of installedApps) {
46
- const projectId = app['projectId'];
124
+ const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
125
+ for (const app of apps) {
126
+ const projectId = app.projectId;
47
127
  const status = await (0, status_1.getAppStatus)({ projectId });
48
128
  appStateMessage.push(status);
49
129
  }
@@ -53,15 +133,12 @@ function runDeviceAgentCloudInterface() {
53
133
  return applicationStatePackage;
54
134
  }
55
135
  const publishAppState = setInterval(async function () {
56
- const topic = `device/${deviceAgent.getClientId()}/topic/application-management`;
57
- const appStateMessage = await getAppStateMessage();
58
- const appStatePackage = {
59
- timestamp: new Date().toUTCString(),
60
- deviceId: deviceAgent.getClientId(),
61
- topic,
62
- payload: appStateMessage,
63
- };
64
- deviceAgent.publishMessage(topic, JSON.stringify({ appStatePackage }));
136
+ if (deviceAgent.getPublishable()) {
137
+ const topic = `${deviceAgent.cloudTopicPrefix}application-management`;
138
+ const appStateMessage = await getAppStateMessage();
139
+ const appStatePacket = await buildMessagePacket(topic, appStateMessage);
140
+ deviceAgent.publishMessage(topic, JSON.stringify({ appStatePacket }));
141
+ }
65
142
  }, deviceAgent.getPublishInterval());
66
143
  async function getDeviceStatsMessage() {
67
144
  const cpuUsage = await (0, device_control_1.getCpuUtil)();
@@ -71,22 +148,113 @@ function runDeviceAgentCloudInterface() {
71
148
  deviceStats: {
72
149
  cpuUsage,
73
150
  diskUtil,
74
- freeMemoryPercentage: memUtil,
151
+ usedMemoryPercentage: memUtil,
75
152
  },
76
153
  };
77
154
  return deviceStatsMessage;
78
155
  }
79
156
  const publishDeviceStats = setInterval(async function () {
80
- const topic = `device/${deviceAgent.getClientId()}/topic/device-management`;
81
- const deviceStatsMessage = await getDeviceStatsMessage();
82
- const deviceStatsPackage = {
157
+ if (deviceAgent.getPublishable()) {
158
+ const topic = `${deviceAgent.cloudTopicPrefix}device-management`;
159
+ const deviceStatsMessage = await getDeviceStatsMessage();
160
+ const deviceStatsPacket = await buildMessagePacket(topic, deviceStatsMessage);
161
+ deviceAgent.publishMessage(topic, JSON.stringify({ deviceStatsPacket }));
162
+ }
163
+ }, deviceAgent.getPublishInterval());
164
+ const publishDeviceRequest = async ({ projectId }) => {
165
+ const topic = `${deviceAgent.cloudTopicPrefix}request`;
166
+ const deviceRequestPackage = {
83
167
  timestamp: new Date().toUTCString(),
84
168
  deviceId: deviceAgent.getClientId(),
169
+ projectId,
170
+ releaseHash: '',
85
171
  topic,
86
- payload: deviceStatsMessage,
87
172
  };
88
- deviceAgent.publishMessage(topic, JSON.stringify({ deviceStatsPackage }));
89
- }, deviceAgent.getPublishInterval());
173
+ deviceAgent.publishMessage(topic, JSON.stringify({ device_request: deviceRequestPackage }));
174
+ };
175
+ const publishInstallationStatus = async (interval) => {
176
+ const topic = `${deviceAgent.cloudTopicPrefix}installation-status`;
177
+ const installationStatus = deviceAgent.getInstallationStatus();
178
+ const installationStatusPacket = await buildMessagePacket(topic, {
179
+ installationStatus,
180
+ });
181
+ deviceAgent.device.publish(topic, JSON.stringify({ installationStatusPacket }));
182
+ if (installationStatus.status !== device_agent_schemas_1.InstallationStatusEnum.IN_PROGRESS) {
183
+ clearInterval(interval);
184
+ }
185
+ };
186
+ const handleMessageTopic = async ({ topic, payload }) => {
187
+ const action = payload['action'];
188
+ const actionPayload = payload[action];
189
+ const type = topic.split('/').slice(-1)[0];
190
+ if (!type) {
191
+ return false;
192
+ }
193
+ switch (action) {
194
+ /**
195
+ * Install app package based on the given project ID
196
+ */
197
+ case 'install':
198
+ /**
199
+ {
200
+ "action": "install",
201
+ "install": {
202
+ "releaseHash": "7fb2a812f9e7aa193208dac353521965da50d755085162066c125592f1ed760b",
203
+ "projectId": "786e4686-a681-4cff-9e17-1e7d385c0fdb"
204
+ }
205
+ }
206
+ */
207
+ if (type === 'response') {
208
+ deviceAgent.setInstallationStatus({
209
+ status: device_agent_schemas_1.InstallationStatusEnum.IN_PROGRESS,
210
+ });
211
+ const installationStatusPing = setInterval(() => publishInstallationStatus(installationStatusPing), deviceAgent.getInstallationStatusInterval());
212
+ // Install the app with the given url
213
+ await (async () => {
214
+ try {
215
+ await (0, install_1.installApp)(actionPayload);
216
+ deviceAgent.setInstallationStatus({
217
+ status: device_agent_schemas_1.InstallationStatusEnum.SUCCESS,
218
+ });
219
+ }
220
+ catch (e) {
221
+ const reason = e.message;
222
+ deviceAgent.setInstallationStatus({
223
+ status: device_agent_schemas_1.InstallationStatusEnum.FAILURE,
224
+ reason,
225
+ });
226
+ }
227
+ })();
228
+ break;
229
+ }
230
+ publishDeviceRequest(actionPayload);
231
+ break;
232
+ case 'start':
233
+ (0, status_1.startApp)({ projectId: actionPayload.projectId });
234
+ break;
235
+ case 'stop':
236
+ (0, status_1.stopApp)({ projectId: actionPayload.projectId });
237
+ break;
238
+ case 'restart':
239
+ (0, status_1.restartApp)({ projectId: actionPayload.projectId });
240
+ break;
241
+ /**
242
+ * Allow/disallow publishing on this device. By default, (publishable = false)
243
+ */
244
+ case 'publishable':
245
+ /**
246
+ {
247
+ "action": "publishable",
248
+ "publishable": true | false
249
+ }
250
+ */
251
+ deviceAgent.setPublishable(actionPayload);
252
+ deviceAgent.restartPublishableTimeout();
253
+ break;
254
+ default:
255
+ break;
256
+ }
257
+ };
90
258
  deviceAgent.device.on('connect', function () {
91
259
  deviceAgent.publishMessage('connection', deviceAgent.getClientId());
92
260
  console.log('Device Agent has connected to the cloud');
@@ -95,8 +263,13 @@ function runDeviceAgentCloudInterface() {
95
263
  console.log('Device Agent has been disconnected from the cloud');
96
264
  });
97
265
  deviceAgent.device.on('message', function (topic, payload) {
98
- // TODO: parse/determine action based on topic/payload here
99
- console.log('message', topic, payload.toString());
266
+ // ToDo: insert valdiation here for incoming messages. Maybe we will use a JSON schema for the message structure.
267
+ try {
268
+ handleMessageTopic({ topic, payload: JSON.parse(payload) });
269
+ }
270
+ catch (error) {
271
+ console.error(error);
272
+ }
100
273
  });
101
274
  }
102
275
  exports.runDeviceAgentCloudInterface = runDeviceAgentCloudInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runDockerLogin = void 0;
4
- const js_spawner_1 = require("../util/spawner/js-spawner");
4
+ const util_1 = require("alwaysai/lib/util");
5
5
  async function runDockerLogin(props) {
6
6
  const { token } = props;
7
- const spawner = (0, js_spawner_1.JsSpawner)();
7
+ const spawner = (0, util_1.JsSpawner)();
8
8
  const server = '994534263224.dkr.ecr.us-west-2.amazonaws.com';
9
9
  const output = await spawner.run({
10
10
  exe: 'docker',
@@ -1 +1 @@
1
- {"version":3,"file":"docker-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEhD,KAAK,UAAU,cAAc,CAAC,KAAwB;IAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,8CAA8C,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,wCASC"}
1
+ {"version":3,"file":"docker-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,KAAwB;IAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,8CAA8C,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,wCASC"}