@alwaysai/device-agent 0.0.8 → 0.0.10

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 (64) hide show
  1. package/lib/application-control/backup.d.ts.map +1 -1
  2. package/lib/application-control/backup.js +2 -0
  3. package/lib/application-control/backup.js.map +1 -1
  4. package/lib/application-control/config.d.ts +17 -0
  5. package/lib/application-control/config.d.ts.map +1 -0
  6. package/lib/application-control/config.js +62 -0
  7. package/lib/application-control/config.js.map +1 -0
  8. package/lib/application-control/environment-variables.d.ts.map +1 -1
  9. package/lib/application-control/environment-variables.js +4 -12
  10. package/lib/application-control/environment-variables.js.map +1 -1
  11. package/lib/application-control/index.d.ts +2 -1
  12. package/lib/application-control/index.d.ts.map +1 -1
  13. package/lib/application-control/index.js +6 -1
  14. package/lib/application-control/index.js.map +1 -1
  15. package/lib/application-control/install.d.ts +12 -10
  16. package/lib/application-control/install.d.ts.map +1 -1
  17. package/lib/application-control/install.js +79 -41
  18. package/lib/application-control/install.js.map +1 -1
  19. package/lib/application-control/models.d.ts +3 -0
  20. package/lib/application-control/models.d.ts.map +1 -1
  21. package/lib/application-control/models.js +92 -19
  22. package/lib/application-control/models.js.map +1 -1
  23. package/lib/application-control/utils.d.ts +4 -3
  24. package/lib/application-control/utils.d.ts.map +1 -1
  25. package/lib/application-control/utils.js +30 -10
  26. package/lib/application-control/utils.js.map +1 -1
  27. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +16 -9
  28. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  29. package/lib/cloud-connection/device-agent-cloud-connection.js +165 -89
  30. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  31. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  32. package/lib/infrastructure/agent-config.js +7 -18
  33. package/lib/infrastructure/agent-config.js.map +1 -1
  34. package/lib/infrastructure/agent-config.test.js +47 -0
  35. package/lib/infrastructure/agent-config.test.js.map +1 -1
  36. package/lib/subcommands/login.d.ts.map +1 -1
  37. package/lib/subcommands/login.js +4 -3
  38. package/lib/subcommands/login.js.map +1 -1
  39. package/lib/util/copy-dir.d.ts.map +1 -1
  40. package/lib/util/copy-dir.js +3 -1
  41. package/lib/util/copy-dir.js.map +1 -1
  42. package/lib/util/run-in-dir.d.ts +2 -0
  43. package/lib/util/run-in-dir.d.ts.map +1 -0
  44. package/lib/util/run-in-dir.js +17 -0
  45. package/lib/util/run-in-dir.js.map +1 -0
  46. package/package.json +4 -3
  47. package/src/application-control/backup.ts +3 -0
  48. package/src/application-control/config.ts +61 -0
  49. package/src/application-control/environment-variables.ts +4 -10
  50. package/src/application-control/index.ts +5 -0
  51. package/src/application-control/install.ts +121 -52
  52. package/src/application-control/models.ts +132 -22
  53. package/src/application-control/utils.ts +37 -12
  54. package/src/cloud-connection/device-agent-cloud-connection.ts +197 -105
  55. package/src/infrastructure/agent-config.test.ts +56 -0
  56. package/src/infrastructure/agent-config.ts +10 -19
  57. package/src/subcommands/login.ts +6 -4
  58. package/src/util/copy-dir.ts +3 -1
  59. package/src/util/run-in-dir.ts +15 -0
  60. package/lib/util/run-cli-cmd.d.ts +0 -5
  61. package/lib/util/run-cli-cmd.d.ts.map +0 -1
  62. package/lib/util/run-cli-cmd.js +0 -24
  63. package/lib/util/run-cli-cmd.js.map +0 -1
  64. package/src/util/run-cli-cmd.ts +0 -18
@@ -108,14 +108,12 @@ function AgentConfigFile(dir = ALWAYSAI_CONFIG_DIR) {
108
108
  if (app) {
109
109
  await removeApp({ projectId });
110
110
  const config = configFile.read();
111
- config.applications.push({
112
- projectId,
113
- version,
114
- ready: false,
115
- });
111
+ // NOTE: do not update the version for an existing app until it is installed
112
+ config.applications.push(Object.assign(Object.assign({}, app), { ready: false }));
116
113
  configFile.write(config);
117
114
  }
118
115
  else {
116
+ // NOTE: for a brand-new app, we need to specify the version
119
117
  const config = configFile.read();
120
118
  config.applications.push({
121
119
  projectId,
@@ -131,22 +129,13 @@ function AgentConfigFile(dir = ALWAYSAI_CONFIG_DIR) {
131
129
  if (app) {
132
130
  await removeApp({ projectId });
133
131
  const config = configFile.read();
134
- app.version = version;
135
- config.applications.push({
136
- projectId,
137
- version,
138
- ready: true,
139
- });
132
+ config.applications.push(Object.assign(Object.assign({}, app), { version, ready: true }));
140
133
  configFile.write(config);
141
134
  }
142
135
  else {
143
- const config = configFile.read();
144
- config.applications.push({
145
- projectId,
146
- version,
147
- ready: true,
148
- });
149
- configFile.write(config);
136
+ // NOTE: we should never be setting an app as installed
137
+ // if it doesn't exist (setAppInstalling was never called)
138
+ throw new Error(`App ${projectId} was not previously configured and could not be set to installed!`);
150
139
  }
151
140
  }
152
141
  async function setAppUninstalled(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/infrastructure/agent-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/infrastructure/agent-config.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,9 @@ describe('Test Agent Config', () => {
88
88
  const projectId = 'add-me';
89
89
  const version = 'im-a-version';
90
90
  await configFile.setAppInstalling({ projectId, version });
91
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version);
91
92
  await configFile.setAppInstalled({ projectId, version });
93
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version);
92
94
  await configFile.setAppUninstalled({ projectId });
93
95
  const apps = await configFile.getApps();
94
96
  expect(apps).toEqual([]);
@@ -102,8 +104,12 @@ describe('Test Agent Config', () => {
102
104
  test('Set and get backup', async () => {
103
105
  const projectId = 'add-me';
104
106
  const version = 'im-a-version';
107
+ const version2 = 'newer-version';
108
+ // first installation, we use the version
105
109
  await configFile.setAppInstalling({ projectId, version });
110
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version);
106
111
  await configFile.setAppInstalled({ projectId, version });
112
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version);
107
113
  const backup1 = await configFile.getAppBackup({ projectId });
108
114
  expect(backup1).toBeNull();
109
115
  await configFile.setAppBackup({ projectId });
@@ -129,6 +135,47 @@ describe('Test Agent Config', () => {
129
135
  });
130
136
  const backup2 = await configFile.getAppBackup({ projectId });
131
137
  expect(backup2).toEqual({ version });
138
+ await configFile.setAppInstalling({ projectId, version: version2 });
139
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version);
140
+ await configFile.setAppInstalled({ projectId, version: version2 });
141
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version2);
142
+ const backup3 = await configFile.getAppBackup({ projectId });
143
+ expect(backup3).toEqual({ version });
144
+ });
145
+ test('Test app rollback', async () => {
146
+ var _a, _b, _c;
147
+ const projectId = 'add-me';
148
+ const version1 = 'original-version';
149
+ const version2 = 'newer-version';
150
+ await configFile.setAppInstalling({ projectId, version: version1 });
151
+ await configFile.setAppInstalled({ projectId, version: version1 });
152
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version1);
153
+ expect(await configFile.getAppBackup({ projectId })).toBeNull();
154
+ // next installation - verify app is present and ready
155
+ expect(await configFile.isAppPresent({ projectId })).toBe(true);
156
+ expect(await configFile.isAppReady({ projectId })).toBe(true);
157
+ // test to see if app has backup
158
+ await configFile.setAppBackup({ projectId });
159
+ const expectedBackupVersion = (_a = (await configFile.getAppBackup({ projectId }))) === null || _a === void 0 ? void 0 : _a.version;
160
+ expect(expectedBackupVersion).toEqual(version1);
161
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version1);
162
+ // simulate second version install
163
+ await configFile.setAppInstalling({ projectId, version: version2 });
164
+ const newExpectedBackupVersion = (_b = (await configFile.getAppBackup({ projectId }))) === null || _b === void 0 ? void 0 : _b.version;
165
+ expect(newExpectedBackupVersion).toEqual(version1);
166
+ await configFile.setAppInstalled({ projectId, version: version2 });
167
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version2);
168
+ // simulate the rollback step: set the version that we will roll back to
169
+ await configFile.setAppInstalling({ projectId, version: version1 });
170
+ // test state during rollback
171
+ expect(await configFile.isAppReady({ projectId })).toEqual(false);
172
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version2);
173
+ // test final state of rolled-back app
174
+ await configFile.setAppInstalled({ projectId, version: version1 });
175
+ const finalBackupVersion = (_c = (await configFile.getAppBackup({ projectId }))) === null || _c === void 0 ? void 0 : _c.version;
176
+ expect(finalBackupVersion).toEqual(version1);
177
+ expect(await configFile.isAppReady({ projectId })).toEqual(true);
178
+ expect(await configFile.getAppVersion({ projectId })).toEqual(version1);
132
179
  });
133
180
  });
134
181
  });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config.test.js","sourceRoot":"","sources":["../../src/infrastructure/agent-config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-config.test.js","sourceRoot":"","sources":["../../src/infrastructure/agent-config.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;4DA0BvB,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;4DA4BvB,CAAC"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loginCliLeaf = void 0;
4
4
  const alwayscli_1 = require("@alwaysai/alwayscli");
5
+ const user_1 = require("alwaysai/lib/components/user");
5
6
  const certificates_and_tokens_1 = require("../infrastructure/certificates-and-tokens");
6
- const run_cli_cmd_1 = require("../util/run-cli-cmd");
7
7
  exports.loginCliLeaf = (0, alwayscli_1.CliLeaf)({
8
8
  name: 'login',
9
9
  description: 'Login to alwaysAI (this is meant for scripted environments)',
@@ -23,8 +23,9 @@ exports.loginCliLeaf = (0, alwayscli_1.CliLeaf)({
23
23
  },
24
24
  async action(_, opts) {
25
25
  const { email, password, device } = opts;
26
- await (0, run_cli_cmd_1.runCliCmd)({
27
- cmd: ['user', 'login', '--yes', '--email', email, '--password', password],
26
+ await (0, user_1.alwaysaiUserLoginYesComponent)({
27
+ alwaysaiUserEmail: email,
28
+ alwaysaiUserPassword: password,
28
29
  });
29
30
  if (device) {
30
31
  await (0, certificates_and_tokens_1.writeCertificateAndToken)({ deviceUuid: device });
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":";;;AAAA,mDAA6E;AAC7E,uFAAqF;AACrF,qDAAgD;AAEnC,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE;QACX,KAAK,EAAE,IAAA,0BAAc,EAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,IAAA,0BAAc,EAAC;YACvB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,EAAE,IAAA,0BAAc,EAAC;YACrB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,IAAA,uBAAS,EAAC;YACd,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC;SAC1E,CAAC,CAAC;QACH,IAAI,MAAM,EAAE;YACV,MAAM,IAAA,kDAAwB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SACxD;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,uDAA6E;AAC7E,uFAAqF;AAExE,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE;QACX,KAAK,EAAE,IAAA,0BAAc,EAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,IAAA,0BAAc,EAAC;YACvB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,EAAE,IAAA,0BAAc,EAAC;YACrB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAEzC,MAAM,IAAA,oCAA6B,EAAC;YAClC,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,QAAQ;SAC/B,CAAC,CAAC;QACH,IAAI,MAAM,EAAE;YACV,MAAM,IAAA,kDAAwB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SACxD;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"copy-dir.d.ts","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,iBAOzE"}
1
+ {"version":3,"file":"copy-dir.d.ts","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,iBASzE"}
@@ -8,7 +8,9 @@ async function copyDir(props) {
8
8
  const allFileNames = await src.readdir();
9
9
  const dest = (0, util_1.JsSpawner)({ path: destPath });
10
10
  await dest.mkdirp();
11
- await dest.untar(await src.tar(...allFileNames));
11
+ if (allFileNames.length) {
12
+ await dest.untar(await src.tar(...allFileNames));
13
+ }
12
14
  }
13
15
  exports.copyDir = copyDir;
14
16
  //# sourceMappingURL=copy-dir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-dir.js","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,OAAO,CAAC,KAA4C;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACpB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AACnD,CAAC;AAPD,0BAOC"}
1
+ {"version":3,"file":"copy-dir.js","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,OAAO,CAAC,KAA4C;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACpB,IAAI,YAAY,CAAC,MAAM,EAAE;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;KAClD;AACH,CAAC;AATD,0BASC"}
@@ -0,0 +1,2 @@
1
+ export declare function runInDir<T extends any[], R extends any>(func: (...args: T) => R, args: T, dir: string): Promise<R>;
2
+ //# sourceMappingURL=run-in-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-dir.d.ts","sourceRoot":"","sources":["../../src/util/run-in-dir.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EACvB,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,cAWZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runInDir = void 0;
4
+ async function runInDir(func, args, dir) {
5
+ const origCwd = process.cwd();
6
+ let out;
7
+ try {
8
+ process.chdir(dir);
9
+ out = await func(...args);
10
+ }
11
+ finally {
12
+ process.chdir(origCwd);
13
+ }
14
+ return out;
15
+ }
16
+ exports.runInDir = runInDir;
17
+ //# sourceMappingURL=run-in-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-dir.js","sourceRoot":"","sources":["../../src/util/run-in-dir.ts"],"names":[],"mappings":";;;AAAO,KAAK,UAAU,QAAQ,CAC5B,IAAuB,EACvB,IAAO,EACP,GAAW;IAEX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,GAAM,CAAC;IACX,IAAI;QACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3B;YAAS;QACR,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAdD,4BAcC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alwaysai/device-agent",
3
3
  "description": "The alwaysAI Device Agent",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "publishConfig": {
@@ -31,7 +31,7 @@
31
31
  "dependencies": {
32
32
  "@alwaysai/alwayscli": "0.3.1",
33
33
  "@alwaysai/config-nodejs": "0.1.0",
34
- "@alwaysai/device-agent-schemas": "0.0.9",
34
+ "@alwaysai/device-agent-schemas": "1.1.0",
35
35
  "@carnesen/coded-error": "0.4.0",
36
36
  "@types/mkdirp": "1.0.2",
37
37
  "@types/pump": "1.1.1",
@@ -39,10 +39,11 @@
39
39
  "@types/signal-exit": "3.0.1",
40
40
  "@types/tar": "6.1.1",
41
41
  "ajv": "8.11.0",
42
- "alwaysai": "1.9.0",
42
+ "alwaysai": "1.10.0",
43
43
  "aws-iot-device-sdk": "2.2.12",
44
44
  "docker-compose": "0.23.17",
45
45
  "express": "4.17.3",
46
+ "lodash": "^4.17.21",
46
47
  "mkdirp": "1.0.4",
47
48
  "node-fetch": "2.6.1",
48
49
  "node-os-utils": "1.3.6",
@@ -3,6 +3,7 @@ import * as rimraf from 'rimraf';
3
3
  import { copyDir } from '../util/copy-dir';
4
4
  import { buildApp, getAppDir } from './utils';
5
5
  import { AgentConfigFile } from '../infrastructure/agent-config';
6
+ import { runInDir } from '../util/run-in-dir';
6
7
 
7
8
  export const BACKUP_EXT = '.bak';
8
9
 
@@ -22,6 +23,8 @@ export async function rollbackApp(props: { projectId: string }) {
22
23
  if (!config) {
23
24
  throw new Error(`Backup doesn't exist for ${projectId}`);
24
25
  }
26
+ console.log(`Rolling back app ${projectId} to ${config.version}`);
27
+ await AgentConfigFile().setAppInstalling({ projectId, version: config.version });
25
28
  const appDir = getAppDir(projectId);
26
29
  const backupAppDir = `${appDir}${BACKUP_EXT}`;
27
30
  rimraf.sync(appDir);
@@ -0,0 +1,61 @@
1
+ import { AppConfig, AppJsonFile } from 'alwaysai/lib/core/app';
2
+ import { AgentConfigFile } from '../infrastructure/agent-config';
3
+ import { parse, stringify } from 'yaml';
4
+ import { getAppDir } from './utils';
5
+ import { JsSpawner } from 'alwaysai/lib/util';
6
+ import compose from 'docker-compose';
7
+ import { assign, merge } from 'lodash';
8
+
9
+ export async function readAppCfg(props: { projectId: string }): Promise<AppConfig> {
10
+ const { projectId } = props;
11
+ if (!(await AgentConfigFile().isAppReady({ projectId }))) {
12
+ throw new Error(`App ${projectId} is not ready!`);
13
+ }
14
+ const appDir = getAppDir(projectId);
15
+ const appJson = AppJsonFile(appDir);
16
+ return appJson.read();
17
+ }
18
+
19
+ export async function writeAppCfg(props: { projectId: string; appCfg: AppConfig }) {
20
+ const { projectId, appCfg } = props;
21
+ if (!(await AgentConfigFile().isAppReady({ projectId }))) {
22
+ throw new Error(`App ${projectId} is not ready!`);
23
+ }
24
+ const appDir = getAppDir(projectId);
25
+ const appJson = AppJsonFile(appDir);
26
+ appJson.write(appCfg);
27
+ }
28
+
29
+ export async function updateAppConfig(appDir: string, newAppCfg: AppConfig) {
30
+ const existingAppCfg = await readAppCfg({ projectId: appDir });
31
+ const appCfg = assign(existingAppCfg, merge(existingAppCfg, newAppCfg));
32
+ await writeAppCfg({ projectId: appDir, appCfg });
33
+ }
34
+
35
+ export async function readDockerCompose(props: { projectId: string }) {
36
+ const { projectId } = props;
37
+ if (!(await AgentConfigFile().isAppReady({ projectId }))) {
38
+ throw new Error(`App ${projectId} is not ready!`);
39
+ }
40
+ const appDir = getAppDir(projectId);
41
+ const spawner = JsSpawner({ path: appDir });
42
+ const composeContents = await spawner.readFile('docker-compose.yaml');
43
+ const composeParsed = parse(composeContents);
44
+ return composeParsed;
45
+ }
46
+
47
+ export async function writeDockerCompose(props: {
48
+ projectId: string;
49
+ dockerCompose: any;
50
+ }) {
51
+ const { projectId, dockerCompose } = props;
52
+ if (!(await AgentConfigFile().isAppReady({ projectId }))) {
53
+ throw new Error(`App ${projectId} is not ready!`);
54
+ }
55
+ const appDir = getAppDir(projectId);
56
+ const spawner = JsSpawner({ path: appDir });
57
+ const composeOutput = stringify(dockerCompose);
58
+ // Validate new contents
59
+ await compose.config({ cwd: appDir, configAsString: composeOutput });
60
+ await spawner.writeFile('docker-compose.yaml', composeOutput);
61
+ }
@@ -2,6 +2,7 @@ import { JsSpawner } from 'alwaysai/lib/util';
2
2
  import compose from 'docker-compose';
3
3
  import { parse, stringify } from 'yaml';
4
4
  import { AgentConfigFile } from '../infrastructure/agent-config';
5
+ import { readDockerCompose, writeDockerCompose } from './config';
5
6
  import { getAppDir } from './utils';
6
7
 
7
8
  export async function setEnv(props: {
@@ -13,10 +14,7 @@ export async function setEnv(props: {
13
14
  if (!(await AgentConfigFile().isAppReady({ projectId }))) {
14
15
  throw new Error(`App ${projectId} is not ready!`);
15
16
  }
16
- const appDir = getAppDir(projectId);
17
- const spawner = JsSpawner({ path: appDir });
18
- const composeContents = await spawner.readFile('docker-compose.yaml');
19
- const composeParsed = parse(composeContents);
17
+ const composeParsed = await readDockerCompose({ projectId });
20
18
  if ('services' in composeParsed) {
21
19
  let services: string[] = Object.keys(composeParsed['services']);
22
20
  if (props.service) {
@@ -38,10 +36,7 @@ export async function setEnv(props: {
38
36
  }
39
37
  }
40
38
  }
41
- const composeOutput = stringify(composeParsed);
42
- // Validate new contents
43
- await compose.config({ cwd: appDir, configAsString: composeOutput });
44
- await spawner.writeFile('docker-compose.yaml', composeOutput);
39
+ await writeDockerCompose({ projectId, dockerCompose: composeParsed });
45
40
  }
46
41
 
47
42
  export async function getAllEnvs(props: { projectId: string }) {
@@ -52,8 +47,7 @@ export async function getAllEnvs(props: { projectId: string }) {
52
47
  const appDir = getAppDir(projectId);
53
48
  const spawner = JsSpawner({ path: appDir });
54
49
  const envVars = {};
55
- const composeContents = await spawner.readFile('docker-compose.yaml');
56
- const composeParsed = parse(composeContents);
50
+ const composeParsed = await readDockerCompose({ projectId });
57
51
  if ('services' in composeParsed) {
58
52
  const services = Object.keys(composeParsed['services']);
59
53
  for (const s of services) {
@@ -1,3 +1,4 @@
1
+ import { readAppCfg, writeAppCfg, readDockerCompose, writeDockerCompose } from './config';
1
2
  import { installApp, uninstallApp } from './install';
2
3
  import { rollbackApp } from './backup';
3
4
  import {
@@ -13,6 +14,10 @@ import { ModelDetails } from './types';
13
14
  import { getAllEnvs, setEnv } from './environment-variables';
14
15
 
15
16
  export {
17
+ readAppCfg,
18
+ writeAppCfg,
19
+ readDockerCompose,
20
+ writeDockerCompose,
16
21
  installApp,
17
22
  uninstallApp,
18
23
  rollbackApp,