@alwaysai/device-agent 0.1.4-mf → 0.1.4-mf.2
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.
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +4 -3
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +2 -2
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +3 -3
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent.js +2 -2
- package/lib/cloud-connection/device-agent.js.map +1 -1
- package/lib/infrastructure/tokens-and-device-cfg.js +2 -2
- package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
- package/lib/subcommands/device/clean.js +3 -3
- package/lib/subcommands/device/clean.js.map +1 -1
- package/lib/subcommands/device/device.js +2 -2
- package/lib/subcommands/device/device.js.map +1 -1
- package/lib/util/clean-certs.js +2 -2
- package/lib/util/clean-certs.js.map +1 -1
- package/lib/util/directories.js +12 -12
- package/lib/util/directories.js.map +1 -1
- package/lib/util/logger.js +2 -2
- package/lib/util/logger.js.map +1 -1
- package/package.json +3 -3
- package/src/application-control/install.ts +2 -5
- package/src/application-control/models.ts +1 -1
- package/src/application-control/utils.ts +1 -4
- package/src/cloud-connection/device-agent.ts +1 -1
- package/src/infrastructure/tokens-and-device-cfg.ts +1 -1
- package/src/subcommands/device/clean.ts +1 -1
- package/src/subcommands/device/device.ts +1 -1
- package/src/util/clean-certs.ts +1 -1
- package/src/util/directories.ts +1 -1
- package/src/util/logger.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/application-control/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/application-control/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAoBlE,aAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,oBAAoB,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAAC;AAEF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQpE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,oBAAoB,CAAC;CACzC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DhB;AA+ED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB"}
|
|
@@ -16,6 +16,7 @@ const constants_1 = require("alwaysai/lib/constants");
|
|
|
16
16
|
const run_in_dir_1 = require("../util/run-in-dir");
|
|
17
17
|
const models_1 = require("./models");
|
|
18
18
|
const logger_1 = require("../util/logger");
|
|
19
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
19
20
|
async function getInstalledApps() {
|
|
20
21
|
const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
|
|
21
22
|
const appDetails = [];
|
|
@@ -101,9 +102,9 @@ async function installAppBuildReqs(props) {
|
|
|
101
102
|
const targetSpawner = targetJsonFile.readContainerSpawner();
|
|
102
103
|
const pythonVenvPaths = await (0, app_1.getPythonVenvPaths)({ targetCfg });
|
|
103
104
|
await (0, app_1.installPythonVenv)({ targetSpawner, pythonVenvPaths, logger: logger_1.logger });
|
|
104
|
-
if (await hostSpawner.exists(
|
|
105
|
+
if (await hostSpawner.exists(paths_1.PYTHON_REQUIREMENTS_FILE_NAME)) {
|
|
105
106
|
await (0, app_1.installPythonReqs)({
|
|
106
|
-
reqFilePath:
|
|
107
|
+
reqFilePath: paths_1.PYTHON_REQUIREMENTS_FILE_NAME,
|
|
107
108
|
targetSpawner,
|
|
108
109
|
pythonVenvPaths,
|
|
109
110
|
logger: logger_1.logger
|
|
@@ -125,7 +126,7 @@ async function checkValidProjectFiles({ appDir }) {
|
|
|
125
126
|
throw new Error('App JSON file does not exist!');
|
|
126
127
|
}
|
|
127
128
|
// write target json
|
|
128
|
-
if (!fs.existsSync(path.join(appDir,
|
|
129
|
+
if (!fs.existsSync(path.join(appDir, paths_1.DOCKERFILE))) {
|
|
129
130
|
throw new Error('No Dockerfile found for application!');
|
|
130
131
|
}
|
|
131
132
|
(0, app_1.TargetJsonFile)(appDir).write({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/application-control/install.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,yBAAyB;AACzB,6BAA6B;AAC7B,qDAA4D;AAC5D,4CAAuD;AACvD,mCAAgF;AAEhF,qCAAsC;AACtC,qCAA6C;AAC7C,iEAAiE;AACjE,uDAA4D;AAC5D,+CAQ+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/application-control/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAerE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAerE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASvC,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAGhE,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,2BAoB9D;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,iBAiBA;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,iBAyBA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAU9D;AAED,wBAAsB,8BAA8B,CAClD,aAAa,EAAE,mBAAmB,EAAE,EACpC,SAAS,EAAE,MAAM,iBAsClB;AAED,wBAAsB,6BAA6B,CAAC,KAAK,EAAE;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,SAAS,EAAE,SAAS,CAAC;CACtB,iBAkDA"}
|
|
@@ -13,8 +13,8 @@ const run_in_dir_1 = require("../util/run-in-dir");
|
|
|
13
13
|
const status_1 = require("./status");
|
|
14
14
|
const utils_1 = require("./utils");
|
|
15
15
|
const model_1 = require("alwaysai/lib/core/model");
|
|
16
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
17
16
|
const config_1 = require("./config");
|
|
17
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
18
18
|
async function getAppModels(props) {
|
|
19
19
|
const { projectId } = props;
|
|
20
20
|
if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
|
|
@@ -126,7 +126,7 @@ async function updateModelsWithPresignedUrls(props) {
|
|
|
126
126
|
projectId,
|
|
127
127
|
version: appReleaseHash
|
|
128
128
|
});
|
|
129
|
-
const ogDir = path.join(appDir,
|
|
129
|
+
const ogDir = path.join(appDir, paths_1.APP_MODELS_DIRECTORY_NAME);
|
|
130
130
|
// Copy all current models to restore dir in case of failure
|
|
131
131
|
const restoreDir = `${ogDir}.restore`;
|
|
132
132
|
await spawner.rimraf(restoreDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,qDAKqC;AACrC,4CAA8C;AAC9C,2CAAwC;AACxC,2BAAkD;AAClD,+BAAqC;AACrC,iEAAiE;AACjE,+CAA2C;AAC3C,mDAA8C;AAC9C,qCAAoD;AAEpD,mCAKiB;AACjB,mDAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAmBA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAMrE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAQjE;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAqCvD;AAED,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhB"}
|
|
@@ -4,7 +4,6 @@ exports.downloadPackageUsingPresignedUrl = exports.buildApp = exports.requireApp
|
|
|
4
4
|
const docker_compose_1 = require("docker-compose");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const fs = require("fs");
|
|
7
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
8
7
|
const agent_config_1 = require("../infrastructure/agent-config");
|
|
9
8
|
const fetch_with_timeout_1 = require("../util/fetch-with-timeout");
|
|
10
9
|
const app_1 = require("alwaysai/lib/core/app");
|
|
@@ -12,6 +11,7 @@ const run_in_dir_1 = require("../util/run-in-dir");
|
|
|
12
11
|
const logger_1 = require("../util/logger");
|
|
13
12
|
const directories_1 = require("../util/directories");
|
|
14
13
|
const spawner_1 = require("alwaysai/lib/util/spawner");
|
|
14
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
15
15
|
function getAppDir(projectId) {
|
|
16
16
|
return path.join(directories_1.APP_ROOT, projectId);
|
|
17
17
|
}
|
|
@@ -39,13 +39,13 @@ async function buildApp(props) {
|
|
|
39
39
|
const targetJsonFile = (0, app_1.TargetJsonFile)(appDir);
|
|
40
40
|
const targetCfg = targetJsonFile.read();
|
|
41
41
|
if (targetCfg.targetProtocol !== 'docker:') {
|
|
42
|
-
throw new Error(`${
|
|
42
|
+
throw new Error(`${paths_1.TARGET_JSON_FILE_NAME} is not properly configured!`);
|
|
43
43
|
}
|
|
44
44
|
await (0, run_in_dir_1.runInDir)(async () => {
|
|
45
45
|
await (0, app_1.writeStandaloneDockerfile)();
|
|
46
46
|
const spawner = (0, spawner_1.JsSpawner)();
|
|
47
47
|
const targetHardware = targetCfg.targetHardware;
|
|
48
|
-
if (await spawner.exists(
|
|
48
|
+
if (await spawner.exists(paths_1.DOCKER_COMPOSE_FILE)) {
|
|
49
49
|
await (0, app_1.updateDockerComposeTargetHw)({
|
|
50
50
|
targetHardware
|
|
51
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ exports.BootstrapAgent = exports.DeviceAgent = void 0;
|
|
|
5
5
|
const awsIot = require('aws-iot-device-sdk');
|
|
6
6
|
const directories_1 = require("../util/directories");
|
|
7
7
|
const get_device_id_1 = require("../util/get-device-id");
|
|
8
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
9
8
|
const util_1 = require("alwaysai/lib/util");
|
|
10
9
|
const logger_1 = require("../util/logger");
|
|
11
10
|
const app_1 = require("alwaysai/lib/core/app");
|
|
11
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
12
12
|
// eslint-disable-next-line
|
|
13
13
|
const process = require('process');
|
|
14
14
|
class DeviceAgent {
|
|
@@ -38,7 +38,7 @@ class BootstrapAgent extends DeviceAgent {
|
|
|
38
38
|
case '$aws/certificates/create/json/accepted': {
|
|
39
39
|
logger_1.logger.debug(`Received Certs: ${JSON.stringify(JSON.parse(payload), null, 2)}`);
|
|
40
40
|
const { certificateId, certificatePem, privateKey, certificateOwnershipToken } = JSON.parse(payload);
|
|
41
|
-
const certSpawner = (0, util_1.JsSpawner)({ path:
|
|
41
|
+
const certSpawner = (0, util_1.JsSpawner)({ path: paths_1.LOCAL_CERT_AND_KEY_DIR });
|
|
42
42
|
await certSpawner.writeFile(directories_1.DEVICE_CERTIFICATE_FILE_NAME, certificatePem);
|
|
43
43
|
await certSpawner.writeFile(directories_1.DEVICE_PRIVATE_KEY_FILE_NAME, privateKey);
|
|
44
44
|
await certSpawner.writeFile(directories_1.DEVICE_ID_FILE_NAME, certificateId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-agent.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC7C,qDAK6B;AAC7B,yDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"device-agent.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC7C,qDAK6B;AAC7B,yDAAsD;AACtD,4CAA8C;AAC9C,2CAAwC;AACxC,+CAA8D;AAC9D,8CAA4D;AAC5D,2BAA2B;AAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAoBnC,MAAa,WAAW;IACtB,YAAY,MAA6B;QAIlC,eAAU,GAAG,YAAY,CAAC;QAC1B,WAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,eAAU,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,2BAAqB,EAAC,IAAA,gBAAS,GAAE,CAAC,CAAC;QAClE,aAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;QANhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAOM,cAAc,CAAC,KAAa,EAAE,OAAe;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,kCAaC;AAED,MAAa,cAAe,SAAQ,WAAW;IACtC,KAAK,CAAC,oBAAoB;QAC/B,MAAM,4BAA4B,GAChC,wCAAwC,CAAC;QAC3C,MAAM,2BAA2B,GAC/B,4EAA4E,CAAC;QAE/E,MAAM,MAAM,GAAG,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAChC,MAAM,EACN,UAAU,GAAQ,EAAE,OAAyC;YAC3D,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,KAAa,EAAE,OAAY;QACjE,QAAQ,KAAK,EAAE;YACb,KAAK,wCAAwC,CAAC,CAAC;gBAC7C,eAAM,CAAC,KAAK,CACV,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAClE,CAAC;gBACF,MAAM,EACJ,aAAa,EACb,cAAc,EACd,UAAU,EACV,yBAAyB,EAC1B,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExB,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,8BAAsB,EAAE,CAAC,CAAC;gBAEhE,MAAM,WAAW,CAAC,SAAS,CACzB,0CAA4B,EAC5B,cAAc,CACf,CAAC;gBAEF,MAAM,WAAW,CAAC,SAAS,CAAC,0CAA4B,EAAE,UAAU,CAAC,CAAC;gBAEtE,MAAM,WAAW,CAAC,SAAS,CAAC,iCAAmB,EAAE,aAAa,CAAC,CAAC;gBAEhE,MAAM,WAAW,CAAC,SAAS,CACzB,mDAAqC,EACrC,yBAAyB,CAC1B,CAAC;gBAEF,MAAM,OAAO,GAAsC;oBACjD,yBAAyB;oBACzB,UAAU,EAAE;wBACV,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;wBACnC,UAAU,EAAE,IAAI,CAAC,QAAQ;wBACzB,aAAa;wBACb,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B;iBACF,CAAC;gBAEF,IAAI,CAAC,cAAc,CACjB,mEAAmE,EACnE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;gBAEF,MAAM;aACP;YACD,KAAK,4EAA4E,CAAC,CAAC;gBACjF,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;SACF;IACH,CAAC;CACF;AApED,wCAoEC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.writeTokenAndDeviceCfg = void 0;
|
|
4
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
5
4
|
const logger_1 = require("../util/logger");
|
|
6
5
|
const http_client_1 = require("../util/http-client");
|
|
7
6
|
const require_logged_in_and_paid_plan_1 = require("../util/require-logged-in-and-paid-plan");
|
|
8
7
|
const device_1 = require("alwaysai/lib/core/device");
|
|
9
8
|
const util_1 = require("alwaysai/lib/util");
|
|
9
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
10
10
|
// NOTE: This closely follows the flow of deviceCheckAndUpdateComponent in the CLI
|
|
11
11
|
async function writeTokenAndDeviceCfg(props) {
|
|
12
12
|
const { deviceUuid } = props;
|
|
@@ -18,7 +18,7 @@ async function writeTokenAndDeviceCfg(props) {
|
|
|
18
18
|
refreshToken,
|
|
19
19
|
idToken
|
|
20
20
|
};
|
|
21
|
-
const tokenSpawner = (0, util_1.JsSpawner)({ path:
|
|
21
|
+
const tokenSpawner = (0, util_1.JsSpawner)({ path: paths_1.LOCAL_AAI_CFG_DIR });
|
|
22
22
|
await (0, device_1.writeTokens)({ spawner: tokenSpawner, tokens });
|
|
23
23
|
await (0, device_1.writeOrValidateDeviceCfgFile)({ spawner: tokenSpawner, deviceUuid });
|
|
24
24
|
logger_1.logger.info('Updated tokens and certificate');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens-and-device-cfg.js","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":";;;AAAA,
|
|
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"}
|
|
@@ -3,18 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.cleanCliLeaf = void 0;
|
|
4
4
|
const alwayscli_1 = require("@alwaysai/alwayscli");
|
|
5
5
|
const rimraf_1 = require("rimraf");
|
|
6
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
7
6
|
const logger_1 = require("../../util/logger");
|
|
8
7
|
const agent_config_1 = require("../../infrastructure/agent-config");
|
|
9
8
|
const device_1 = require("alwaysai/lib/core/device");
|
|
10
9
|
const directories_1 = require("../../util/directories");
|
|
10
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
11
11
|
exports.cleanCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
12
12
|
name: 'clean',
|
|
13
13
|
description: 'Remove all provisioning files',
|
|
14
14
|
async action(_, opts) {
|
|
15
15
|
logger_1.logger.info('Cleaning device configuration');
|
|
16
|
-
logger_1.logger.debug(`Removing ${
|
|
17
|
-
await (0, rimraf_1.rimraf)(
|
|
16
|
+
logger_1.logger.debug(`Removing ${paths_1.LOCAL_CERT_AND_KEY_DIR}`);
|
|
17
|
+
await (0, rimraf_1.rimraf)(paths_1.LOCAL_CERT_AND_KEY_DIR);
|
|
18
18
|
logger_1.logger.debug(`Removing ${(0, agent_config_1.AgentConfigFile)().path}`);
|
|
19
19
|
(0, agent_config_1.AgentConfigFile)().remove();
|
|
20
20
|
logger_1.logger.debug(`Removing ${(0, device_1.DeviceConfigFile)().path}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,mCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,mCAAgC;AAChC,8CAA2C;AAC3C,oEAAoE;AACpE,qDAA4D;AAC5D,wDAAyE;AACzE,8CAA4D;AAE/C,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,+BAA+B;IAC5C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,eAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,eAAM,CAAC,KAAK,CAAC,YAAY,8BAAsB,EAAE,CAAC,CAAC;QACnD,MAAM,IAAA,eAAM,EAAC,8BAAsB,CAAC,CAAC;QACrC,eAAM,CAAC,KAAK,CAAC,YAAY,IAAA,8BAAe,GAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAA,8BAAe,GAAE,CAAC,MAAM,EAAE,CAAC;QAC3B,eAAM,CAAC,KAAK,CAAC,YAAY,IAAA,yBAAgB,GAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,yBAAgB,GAAE,CAAC,MAAM,EAAE,CAAC;QAC5B,eAAM,CAAC,KAAK,CAAC,YAAY,mCAAqB,EAAE,CAAC,CAAC;QAClD,MAAM,IAAA,eAAM,EAAC,mCAAqB,CAAC,CAAC;QACpC,eAAM,CAAC,KAAK,CAAC,YAAY,sBAAQ,EAAE,CAAC,CAAC;QACrC,MAAM,IAAA,eAAM,EAAC,sBAAQ,CAAC,CAAC;QACvB,eAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -8,13 +8,13 @@ const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const http_client_1 = require("../../util/http-client");
|
|
10
10
|
const directories_1 = require("../../util/directories");
|
|
11
|
-
const constants_1 = require("alwaysai/lib/constants");
|
|
12
11
|
const util_1 = require("alwaysai/lib/util");
|
|
13
12
|
const device_control_1 = require("../../device-control/device-control");
|
|
14
13
|
const tokens_and_device_cfg_1 = require("../../infrastructure/tokens-and-device-cfg");
|
|
15
14
|
const logger_1 = require("../../util/logger");
|
|
16
15
|
const device_1 = require("alwaysai/lib/core/device");
|
|
17
16
|
const require_logged_in_and_paid_plan_1 = require("../../util/require-logged-in-and-paid-plan");
|
|
17
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
18
18
|
exports.initCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
19
19
|
name: 'init',
|
|
20
20
|
description: 'Initialize device',
|
|
@@ -57,7 +57,7 @@ exports.initCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
57
57
|
deviceUuid: response.deviceUuid
|
|
58
58
|
});
|
|
59
59
|
await (0, util_1.JsSpawner)().mkdirp((0, directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH)());
|
|
60
|
-
await (0, util_1.JsSpawner)({ path:
|
|
60
|
+
await (0, util_1.JsSpawner)({ path: paths_1.LOCAL_CERT_AND_KEY_DIR }).writeFile(directories_1.AWS_ROOT_CERTIFICATE_FILE_NAME, ROOT_CERT_AWS);
|
|
61
61
|
const certSpawner = (0, util_1.JsSpawner)({
|
|
62
62
|
path: (0, directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH)()
|
|
63
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,+CAA8D;AAC9D,+BAAoC;AACpC,gEAAsE;AACtE,2BAAgC;AAChC,wDAA4E;AAC5E,wDAIgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,+CAA8D;AAC9D,+BAAoC;AACpC,gEAAsE;AACtE,2BAAgC;AAChC,wDAA4E;AAC5E,wDAIgC;AAEhC,4CAA8C;AAC9C,wEAI6C;AAC7C,sFAAoF;AACpF,8CAA2C;AAC3C,qDAA4D;AAC5D,gGAAwF;AACxF,8CAA4D;AAE/C,QAAA,WAAW,GAAG,IAAA,mBAAO,EAAC;IACjC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE;QACX,IAAI,EAAE,IAAA,0BAAc,EAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,IAAA,0BAAc,EAAC;YAC1B,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACpB,IAAI,GAAG,IAAI,IAAI,IAAA,SAAM,GAAE,CAAC;QAExB,IACE,IAAA,yBAAgB,GAAE,CAAC,MAAM,EAAE;YAC3B,IAAA,eAAU,EAAC,0CAA4B,CAAC,EACxC;YACA,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;SACH;QACD,eAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAA,4DAA0B,GAAE,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wCAAuB,GAAE,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAqB,EAAC,IAAA,gBAAS,GAAE,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,YAAY;YACxB,UAAU;YACV,IAAI,EAAE,IAAA,SAAM,GAAE;YACd,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,2CAA2C;QAC3C,MAAM,QAAQ,GACZ,MAAM,IAAA,oCAAsB,EAC1B,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;QACJ,eAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,CAAC,kBAAkB,IAAI,QAAQ,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;SACH;QACD,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAU,EACpC,0DAA0D,EAC1D,KAAK,EACL,EAAE,CACH,CAAC;QAEF,MAAM,IAAA,8CAAsB,EAAC;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;QAEH,MAAM,IAAA,gBAAS,GAAE,CAAC,MAAM,CAAC,IAAA,6CAA+B,GAAE,CAAC,CAAC;QAE5D,MAAM,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,8BAAsB,EAAE,CAAC,CAAC,SAAS,CACzD,4CAA8B,EAC9B,aAAa,CACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC;YAC5B,IAAI,EAAE,IAAA,6CAA+B,GAAE;SACxC,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE;YAC3C,MAAM,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;SAClE;QAED,eAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,UAAU,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,IAAA,mBAAO,EAAC;IACpC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,EAAE;IACf,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,UAAU,GAAG;YACjB,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,2BAAU,GAAE,CAAC,IAAI,CAAC;YACtD,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,4BAAW,GAAE,CAAC,IAAI,CAAC;YACxD,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,2BAAU,GAAE,CAAC,IAAI,CAAC;SAC1D,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC"}
|
package/lib/util/clean-certs.js
CHANGED
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.rmBootstrapCertsAndClose = void 0;
|
|
4
4
|
const util_1 = require("alwaysai/lib/util");
|
|
5
5
|
const logger_1 = require("../util/logger");
|
|
6
|
-
const
|
|
6
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
7
7
|
const directories_1 = require("../util/directories");
|
|
8
8
|
const rmBootstrapCertsAndClose = async () => {
|
|
9
9
|
const spawner = (0, util_1.JsSpawner)();
|
|
10
10
|
await spawner.rimraf((0, directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH)());
|
|
11
|
-
await spawner.rimraf(
|
|
11
|
+
await spawner.rimraf(paths_1.LOCAL_CERT_AND_KEY_DIR);
|
|
12
12
|
logger_1.logger.error('Could not provision device. Try again.');
|
|
13
13
|
process.exit(1);
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean-certs.js","sourceRoot":"","sources":["../../src/util/clean-certs.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,2CAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"clean-certs.js","sourceRoot":"","sources":["../../src/util/clean-certs.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,2CAAwC;AACxC,8CAA4D;AAC5D,qDAAsE;AAE/D,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,MAAM,CAAC,IAAA,6CAA+B,GAAE,CAAC,CAAC;IACxD,MAAM,OAAO,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;IAC7C,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC"}
|
package/lib/util/directories.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEVICE_CERTIFICATE_FILE_PATH = exports.DEVICE_PRIVATE_KEY_FILE_PATH = exports.DEVICE_ID_FILE_NAME = exports.DEVICE_CERTIFICATE_FILE_NAME = exports.DEVICE_PRIVATE_KEY_FILE_NAME = exports.BOOTSTRAP_ID_FILE_PATH = exports.BOOTSTRAP_CERTIFICATE_FILE_PATH = exports.BOOTSTRAP_PRIVATE_KEY_FILE_PATH = exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = exports.BOOTSTRAP_ID_FILE_NAME = exports.BOOTSTRAP_CERTIFICATE_FILE_NAME = exports.BOOTSTRAP_PRIVATE_KEY_FILE_NAME = exports.BOOTSTRAP_DIR_NAME = exports.shortenSystemId = exports.AWS_ROOT_CERTIFICATE_FILE_PATH = exports.AWS_ROOT_CERTIFICATE_FILE_NAME = exports.CREDENTIALS_FILE_PATH = exports.DEVICE_AGENT_DOCKER_COMPOSE_PATH = exports.DEVICE_AGENT_CFG_PATH = exports.DEVICE_AGENT_CFG_DIR = exports.APP_ROOT = void 0;
|
|
4
|
-
const
|
|
4
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const system_id_1 = require("../infrastructure/system-id");
|
|
7
|
-
exports.APP_ROOT = (0, path_1.join)(
|
|
7
|
+
exports.APP_ROOT = (0, path_1.join)(paths_1.AAI_DIR, 'applications');
|
|
8
8
|
exports.DEVICE_AGENT_CFG_DIR = 'device-agent';
|
|
9
|
-
exports.DEVICE_AGENT_CFG_PATH = (0, path_1.join)(
|
|
10
|
-
exports.DEVICE_AGENT_DOCKER_COMPOSE_PATH = (0, path_1.join)(exports.DEVICE_AGENT_CFG_PATH,
|
|
11
|
-
exports.CREDENTIALS_FILE_PATH = (0, path_1.join)(
|
|
9
|
+
exports.DEVICE_AGENT_CFG_PATH = (0, path_1.join)(paths_1.LOCAL_AAI_CFG_DIR, exports.DEVICE_AGENT_CFG_DIR);
|
|
10
|
+
exports.DEVICE_AGENT_DOCKER_COMPOSE_PATH = (0, path_1.join)(exports.DEVICE_AGENT_CFG_PATH, paths_1.DOCKER_COMPOSE_FILE);
|
|
11
|
+
exports.CREDENTIALS_FILE_PATH = (0, path_1.join)(paths_1.LOCAL_AAI_CFG_DIR, paths_1.DEVICE_TOKEN_FILE_NAME);
|
|
12
12
|
exports.AWS_ROOT_CERTIFICATE_FILE_NAME = 'AmazonRootCA1.pem';
|
|
13
|
-
exports.AWS_ROOT_CERTIFICATE_FILE_PATH = (0, path_1.join)(
|
|
13
|
+
exports.AWS_ROOT_CERTIFICATE_FILE_PATH = (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.AWS_ROOT_CERTIFICATE_FILE_NAME);
|
|
14
14
|
const shortenSystemId = () => {
|
|
15
15
|
const id = (0, system_id_1.getSystemId)();
|
|
16
16
|
switch (id) {
|
|
@@ -34,13 +34,13 @@ exports.BOOTSTRAP_CERTIFICATE_FILE_NAME = BOOTSTRAP_CERTIFICATE_FILE_NAME;
|
|
|
34
34
|
const BOOTSTRAP_ID_FILE_NAME = () => `aai-claim-cert-id_${(0, exports.shortenSystemId)()}.txt`;
|
|
35
35
|
exports.BOOTSTRAP_ID_FILE_NAME = BOOTSTRAP_ID_FILE_NAME;
|
|
36
36
|
exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = 'certificate-ownership-token.txt';
|
|
37
|
-
const BOOTSTRAP_CERTIFICATES_DIR_PATH = () => (0, path_1.join)(
|
|
37
|
+
const BOOTSTRAP_CERTIFICATES_DIR_PATH = () => (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME);
|
|
38
38
|
exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = BOOTSTRAP_CERTIFICATES_DIR_PATH;
|
|
39
|
-
const BOOTSTRAP_PRIVATE_KEY_FILE_PATH = () => (0, path_1.join)(
|
|
39
|
+
const BOOTSTRAP_PRIVATE_KEY_FILE_PATH = () => (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_PRIVATE_KEY_FILE_NAME)());
|
|
40
40
|
exports.BOOTSTRAP_PRIVATE_KEY_FILE_PATH = BOOTSTRAP_PRIVATE_KEY_FILE_PATH;
|
|
41
|
-
const BOOTSTRAP_CERTIFICATE_FILE_PATH = () => (0, path_1.join)(
|
|
41
|
+
const BOOTSTRAP_CERTIFICATE_FILE_PATH = () => (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_CERTIFICATE_FILE_NAME)());
|
|
42
42
|
exports.BOOTSTRAP_CERTIFICATE_FILE_PATH = BOOTSTRAP_CERTIFICATE_FILE_PATH;
|
|
43
|
-
const BOOTSTRAP_ID_FILE_PATH = () => (0, path_1.join)(
|
|
43
|
+
const BOOTSTRAP_ID_FILE_PATH = () => (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, (0, exports.BOOTSTRAP_ID_FILE_NAME)());
|
|
44
44
|
exports.BOOTSTRAP_ID_FILE_PATH = BOOTSTRAP_ID_FILE_PATH;
|
|
45
45
|
/*===================================================================
|
|
46
46
|
Device Certificates
|
|
@@ -48,6 +48,6 @@ exports.BOOTSTRAP_ID_FILE_PATH = BOOTSTRAP_ID_FILE_PATH;
|
|
|
48
48
|
exports.DEVICE_PRIVATE_KEY_FILE_NAME = 'aai-device-private-key.pem.key';
|
|
49
49
|
exports.DEVICE_CERTIFICATE_FILE_NAME = 'aai-device-cert.pem.crt';
|
|
50
50
|
exports.DEVICE_ID_FILE_NAME = 'aai-device-cert-id.txt';
|
|
51
|
-
exports.DEVICE_PRIVATE_KEY_FILE_PATH = (0, path_1.join)(
|
|
52
|
-
exports.DEVICE_CERTIFICATE_FILE_PATH = (0, path_1.join)(
|
|
51
|
+
exports.DEVICE_PRIVATE_KEY_FILE_PATH = (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_PRIVATE_KEY_FILE_NAME);
|
|
52
|
+
exports.DEVICE_CERTIFICATE_FILE_PATH = (0, path_1.join)(paths_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_CERTIFICATE_FILE_NAME);
|
|
53
53
|
//# sourceMappingURL=directories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directories.js","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"directories.js","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":";;;AAAA,8CAM4B;AAC5B,+BAA4B;AAC5B,2DAA0D;AAE7C,QAAA,QAAQ,GAAG,IAAA,WAAI,EAAC,eAAO,EAAE,cAAc,CAAC,CAAC;AAEzC,QAAA,oBAAoB,GAAG,cAAc,CAAC;AACtC,QAAA,qBAAqB,GAAG,IAAA,WAAI,EACvC,yBAAiB,EACjB,4BAAoB,CACrB,CAAC;AACW,QAAA,gCAAgC,GAAG,IAAA,WAAI,EAClD,6BAAqB,EACrB,2BAAmB,CACpB,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAA,WAAI,EACvC,yBAAiB,EACjB,8BAAsB,CACvB,CAAC;AAEW,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,8BAA8B,GAAG,IAAA,WAAI,EAChD,8BAAsB,EACtB,sCAA8B,CAC/B,CAAC;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,GAAG,IAAA,uBAAW,GAAE,CAAC;IACzB,QAAQ,EAAE,EAAE;QACV,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;KACjB;AACH,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEF;;qEAEqE;AAExD,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,yBAAyB,IAAA,uBAAe,GAAE,UAAU,CAAC;AAD1C,QAAA,+BAA+B,mCACW;AAChD,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,kBAAkB,IAAA,uBAAe,GAAE,UAAU,CAAC;AADnC,QAAA,+BAA+B,mCACI;AACzC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,qBAAqB,IAAA,uBAAe,GAAE,MAAM,CAAC;AADlC,QAAA,sBAAsB,0BACY;AAClC,QAAA,qCAAqC,GAChD,iCAAiC,CAAC;AAE7B,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EAAC,8BAAsB,EAAE,0BAAkB,CAAC,CAAC;AADtC,QAAA,+BAA+B,mCACO;AAE5C,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EACF,8BAAsB,EACtB,0BAAkB,EAClB,IAAA,uCAA+B,GAAE,CAClC,CAAC;AALS,QAAA,+BAA+B,mCAKxC;AAEG,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,IAAA,WAAI,EACF,8BAAsB,EACtB,0BAAkB,EAClB,IAAA,uCAA+B,GAAE,CAClC,CAAC;AALS,QAAA,+BAA+B,mCAKxC;AAEG,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,IAAA,WAAI,EAAC,8BAAsB,EAAE,0BAAkB,EAAE,IAAA,8BAAsB,GAAE,CAAC,CAAC;AADhE,QAAA,sBAAsB,0BAC0C;AAE7E;;qEAEqE;AAExD,QAAA,4BAA4B,GAAG,gCAAgC,CAAC;AAChE,QAAA,4BAA4B,GAAG,yBAAyB,CAAC;AACzD,QAAA,mBAAmB,GAAG,wBAAwB,CAAC;AAE/C,QAAA,4BAA4B,GAAG,IAAA,WAAI,EAC9C,8BAAsB,EACtB,oCAA4B,CAC7B,CAAC;AAEW,QAAA,4BAA4B,GAAG,IAAA,WAAI,EAC9C,8BAAsB,EACtB,oCAA4B,CAC7B,CAAC"}
|
package/lib/util/logger.js
CHANGED
|
@@ -4,14 +4,14 @@ exports.logger = void 0;
|
|
|
4
4
|
const winston = require("winston");
|
|
5
5
|
require("winston-daily-rotate-file");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const
|
|
7
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
8
8
|
const environment_1 = require("../environment");
|
|
9
9
|
const LOG_LEVEL = environment_1.ALWAYSAI_LOG_LEVEL || 'info';
|
|
10
10
|
const transports = environment_1.ALWAYSAI_LOG_TO_CONSOLE
|
|
11
11
|
? [new winston.transports.Console({ level: LOG_LEVEL })]
|
|
12
12
|
: [
|
|
13
13
|
new winston.transports.DailyRotateFile({
|
|
14
|
-
filename: path.join(
|
|
14
|
+
filename: path.join(paths_1.AAI_DIR, 'agent-logs', 'agent-logs.txt'),
|
|
15
15
|
maxSize: '5m',
|
|
16
16
|
maxFiles: '2d'
|
|
17
17
|
})
|
package/lib/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAmC;AACnC,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAmC;AACnC,6BAA6B;AAC7B,8CAA6C;AAC7C,gDAA6E;AAE7E,MAAM,SAAS,GAAG,gCAAkB,IAAI,MAAM,CAAC;AAE/C,MAAM,UAAU,GAAG,qCAAuB;IACxC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;QACE,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,eAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC5D,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;AAEO,QAAA,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;IACD,UAAU;CACX,CAAC,CAAC;AAEH,cAAM,CAAC,IAAI,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC"}
|
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.1.4-mf",
|
|
4
|
+
"version": "0.1.4-mf.2",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"publishConfig": {
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@alwaysai/alwayscli": "0.3.2",
|
|
38
|
-
"@alwaysai/app-configuration-schemas": "0.0
|
|
38
|
+
"@alwaysai/app-configuration-schemas": "0.1.0",
|
|
39
39
|
"@alwaysai/config-nodejs": "0.3.0",
|
|
40
40
|
"@alwaysai/device-agent-schemas": "1.2.0",
|
|
41
41
|
"ajv": "8.11.0",
|
|
42
|
-
"alwaysai": "1.
|
|
42
|
+
"alwaysai": "2.1.0",
|
|
43
43
|
"amqplib": "0.10.3",
|
|
44
44
|
"aws-iot-device-sdk": "2.2.12",
|
|
45
45
|
"docker-compose": "0.23.17",
|
|
@@ -18,14 +18,11 @@ import {
|
|
|
18
18
|
installPythonVenv,
|
|
19
19
|
installPythonReqs
|
|
20
20
|
} from 'alwaysai/lib/core/app';
|
|
21
|
-
import {
|
|
22
|
-
DOCKERFILE,
|
|
23
|
-
DOCKER_IMAGE_ID_INITIAL_VALUE,
|
|
24
|
-
PYTHON_REQUIREMENTS_FILE_NAME
|
|
25
|
-
} from 'alwaysai/lib/constants';
|
|
21
|
+
import { DOCKER_IMAGE_ID_INITIAL_VALUE } from 'alwaysai/lib/constants';
|
|
26
22
|
import { runInDir } from '../util/run-in-dir';
|
|
27
23
|
import { installModelsWithPresignedURLs } from './models';
|
|
28
24
|
import { logger } from '../util/logger';
|
|
25
|
+
import { DOCKERFILE, PYTHON_REQUIREMENTS_FILE_NAME } from 'alwaysai/lib/paths';
|
|
29
26
|
|
|
30
27
|
type SignedUrlPayloadType = {
|
|
31
28
|
appInstallPayload: {
|
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
requireAppReady
|
|
23
23
|
} from './utils';
|
|
24
24
|
import { MODEL_JSON_FILE_NAME } from 'alwaysai/lib/core/model';
|
|
25
|
-
import { APP_MODELS_DIRECTORY_NAME } from 'alwaysai/lib/constants';
|
|
26
25
|
import { writeAppCfgFile } from './config';
|
|
27
26
|
import { AppConfig } from '@alwaysai/app-configuration-schemas';
|
|
27
|
+
import { APP_MODELS_DIRECTORY_NAME } from 'alwaysai/lib/paths';
|
|
28
28
|
|
|
29
29
|
export async function getAppModels(props: { projectId: string }) {
|
|
30
30
|
const { projectId } = props;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import compose from 'docker-compose';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
|
-
import {
|
|
5
|
-
DOCKER_COMPOSE_FILE,
|
|
6
|
-
TARGET_JSON_FILE_NAME
|
|
7
|
-
} from 'alwaysai/lib/constants';
|
|
8
4
|
|
|
9
5
|
import { AgentConfigFile } from '../infrastructure/agent-config';
|
|
10
6
|
import { fetchWithTimeout } from '../util/fetch-with-timeout';
|
|
@@ -19,6 +15,7 @@ import { runInDir } from '../util/run-in-dir';
|
|
|
19
15
|
import { logger } from '../util/logger';
|
|
20
16
|
import { APP_ROOT } from '../util/directories';
|
|
21
17
|
import { JsSpawner } from 'alwaysai/lib/util/spawner';
|
|
18
|
+
import { DOCKER_COMPOSE_FILE, TARGET_JSON_FILE_NAME } from 'alwaysai/lib/paths';
|
|
22
19
|
|
|
23
20
|
export function getAppDir(projectId: string): string {
|
|
24
21
|
return path.join(APP_ROOT, projectId);
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
DEVICE_CERTIFICATE_FILE_NAME
|
|
8
8
|
} from '../util/directories';
|
|
9
9
|
import { getDeviceUuid } from '../util/get-device-id';
|
|
10
|
-
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/constants';
|
|
11
10
|
import { JsSpawner } from 'alwaysai/lib/util';
|
|
12
11
|
import { logger } from '../util/logger';
|
|
13
12
|
import { getTargetHardwareUuid } from 'alwaysai/lib/core/app';
|
|
13
|
+
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/paths';
|
|
14
14
|
// eslint-disable-next-line
|
|
15
15
|
const process = require('process');
|
|
16
16
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LOCAL_AAI_CFG_DIR } from 'alwaysai/lib/constants';
|
|
2
1
|
import { logger } from '../util/logger';
|
|
3
2
|
import { microServiceHttpClient } from '../util/http-client';
|
|
4
3
|
import { requireLoggedInAndPaidPlan } from '../util/require-logged-in-and-paid-plan';
|
|
@@ -8,6 +7,7 @@ import {
|
|
|
8
7
|
writeTokens
|
|
9
8
|
} from 'alwaysai/lib/core/device';
|
|
10
9
|
import { JsSpawner } from 'alwaysai/lib/util';
|
|
10
|
+
import { LOCAL_AAI_CFG_DIR } from 'alwaysai/lib/paths';
|
|
11
11
|
|
|
12
12
|
// NOTE: This closely follows the flow of deviceCheckAndUpdateComponent in the CLI
|
|
13
13
|
export async function writeTokenAndDeviceCfg(props: { deviceUuid: string }) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { CliLeaf } from '@alwaysai/alwayscli';
|
|
2
2
|
import { rimraf } from 'rimraf';
|
|
3
|
-
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/constants';
|
|
4
3
|
import { logger } from '../../util/logger';
|
|
5
4
|
import { AgentConfigFile } from '../../infrastructure/agent-config';
|
|
6
5
|
import { DeviceConfigFile } from 'alwaysai/lib/core/device';
|
|
7
6
|
import { APP_ROOT, CREDENTIALS_FILE_PATH } from '../../util/directories';
|
|
7
|
+
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/paths';
|
|
8
8
|
|
|
9
9
|
export const cleanCliLeaf = CliLeaf({
|
|
10
10
|
name: 'clean',
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
DEVICE_PRIVATE_KEY_FILE_PATH
|
|
11
11
|
} from '../../util/directories';
|
|
12
12
|
|
|
13
|
-
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/constants';
|
|
14
13
|
import { JsSpawner } from 'alwaysai/lib/util';
|
|
15
14
|
import {
|
|
16
15
|
getCpuUtil,
|
|
@@ -21,6 +20,7 @@ import { writeTokenAndDeviceCfg } from '../../infrastructure/tokens-and-device-c
|
|
|
21
20
|
import { logger } from '../../util/logger';
|
|
22
21
|
import { DeviceConfigFile } from 'alwaysai/lib/core/device';
|
|
23
22
|
import { requireLoggedInAndPaidPlan } from '../../util/require-logged-in-and-paid-plan';
|
|
23
|
+
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/paths';
|
|
24
24
|
|
|
25
25
|
export const initCliLeaf = CliLeaf({
|
|
26
26
|
name: 'init',
|
package/src/util/clean-certs.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JsSpawner } from 'alwaysai/lib/util';
|
|
2
2
|
import { logger } from '../util/logger';
|
|
3
|
-
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/
|
|
3
|
+
import { LOCAL_CERT_AND_KEY_DIR } from 'alwaysai/lib/paths';
|
|
4
4
|
import { BOOTSTRAP_CERTIFICATES_DIR_PATH } from '../util/directories';
|
|
5
5
|
|
|
6
6
|
export const rmBootstrapCertsAndClose = async () => {
|
package/src/util/directories.ts
CHANGED
package/src/util/logger.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as winston from 'winston';
|
|
2
2
|
import 'winston-daily-rotate-file';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { AAI_DIR } from 'alwaysai/lib/
|
|
4
|
+
import { AAI_DIR } from 'alwaysai/lib/paths';
|
|
5
5
|
import { ALWAYSAI_LOG_LEVEL, ALWAYSAI_LOG_TO_CONSOLE } from '../environment';
|
|
6
6
|
|
|
7
7
|
const LOG_LEVEL = ALWAYSAI_LOG_LEVEL || 'info';
|