@alwaysai/device-agent-schemas 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc +14 -0
  3. package/.gitattributes +2 -0
  4. package/.nvmrc +1 -0
  5. package/bitbucket-pipelines.yml +54 -0
  6. package/development.md +53 -0
  7. package/jest.config.js +3 -0
  8. package/lib/app-action-schema.d.ts +7 -1
  9. package/lib/app-action-schema.d.ts.map +1 -0
  10. package/lib/app-action-schema.js.map +1 -0
  11. package/lib/app-logs-schema.d.ts.map +1 -0
  12. package/lib/app-logs-schema.js.map +1 -0
  13. package/lib/app-state-schema.d.ts.map +1 -0
  14. package/lib/app-state-schema.js.map +1 -0
  15. package/lib/common.d.ts.map +1 -0
  16. package/lib/common.js.map +1 -0
  17. package/lib/constants.d.ts +2 -1
  18. package/lib/constants.d.ts.map +1 -0
  19. package/lib/constants.js +2 -1
  20. package/lib/constants.js.map +1 -0
  21. package/lib/device-action-schema.d.ts.map +1 -0
  22. package/lib/device-action-schema.js.map +1 -0
  23. package/lib/device-agent-action-schema.d.ts.map +1 -0
  24. package/lib/device-agent-action-schema.js.map +1 -0
  25. package/lib/device-stats-schema.d.ts.map +1 -0
  26. package/lib/device-stats-schema.js.map +1 -0
  27. package/lib/index.d.ts +2 -2
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/index.js.map +1 -0
  30. package/lib/message-builders.d.ts +2 -2
  31. package/lib/message-builders.d.ts.map +1 -0
  32. package/lib/message-builders.js.map +1 -0
  33. package/lib/schemas/app-update-config-schema.json +22 -0
  34. package/lib/schemas/app-version-control-schema.json +3 -0
  35. package/lib/shadow-schema.d.ts.map +1 -0
  36. package/lib/shadow-schema.js.map +1 -0
  37. package/lib/signed-urls-request-schema.d.ts.map +1 -0
  38. package/lib/signed-urls-request-schema.js.map +1 -0
  39. package/lib/status-response-schema.d.ts.map +1 -0
  40. package/lib/status-response-schema.js.map +1 -0
  41. package/lib/types.d.ts +2 -2
  42. package/lib/types.d.ts.map +1 -0
  43. package/lib/types.js +2 -0
  44. package/lib/types.js.map +1 -0
  45. package/lib/utils.d.ts.map +1 -0
  46. package/lib/utils.js.map +1 -0
  47. package/package.json +1 -6
  48. package/src/app-action-schema.ts +83 -0
  49. package/src/app-logs-schema.ts +13 -0
  50. package/src/app-state-schema.ts +27 -0
  51. package/src/common.ts +19 -0
  52. package/src/constants.ts +141 -0
  53. package/src/device-action-schema.ts +11 -0
  54. package/src/device-agent-action-schema.ts +17 -0
  55. package/src/device-stats-schema.ts +33 -0
  56. package/src/index.ts +192 -0
  57. package/src/message-builders.ts +269 -0
  58. package/src/schemas/app-install-response-schema.json +38 -0
  59. package/src/schemas/app-install-schema.json +25 -0
  60. package/src/schemas/app-logs-schema.json +15 -0
  61. package/src/schemas/app-state-control-schema.json +16 -0
  62. package/src/schemas/app-state-schema.json +45 -0
  63. package/src/schemas/app-uninstall-schema.json +16 -0
  64. package/src/schemas/app-update-config-schema.json +22 -0
  65. package/src/schemas/app-version-control-schema.json +17 -0
  66. package/src/schemas/common-schema.json +27 -0
  67. package/src/schemas/device-action-schema.json +13 -0
  68. package/src/schemas/device-agent-status-schema.json +33 -0
  69. package/src/schemas/device-stats-schema.json +57 -0
  70. package/src/schemas/env-var-schema.json +18 -0
  71. package/src/schemas/live-updates-toggle-schema.json +27 -0
  72. package/src/schemas/models-install-payload-schema.json +21 -0
  73. package/src/schemas/models-install-response-schema.json +21 -0
  74. package/src/schemas/secure-tunnel-schema.json +31 -0
  75. package/src/schemas/shadow-project-update-legacy-schema.json +30 -0
  76. package/src/schemas/shadow-project-update-schema.json +16 -0
  77. package/src/schemas/shadow-projects-update-all-schema.json +20 -0
  78. package/src/schemas/signed-urls-request-schema.json +39 -0
  79. package/src/schemas/status-response-schema.json +15 -0
  80. package/src/schemas/system-information-schema.json +149 -0
  81. package/src/schemas/to-client-message-schema.json +92 -0
  82. package/src/schemas/to-cloud-message-schema.json +53 -0
  83. package/src/schemas/to-device-agent-message-schema.json +127 -0
  84. package/src/shadow-schema.ts +258 -0
  85. package/src/signed-urls-request-schema.ts +22 -0
  86. package/src/status-response-schema.ts +19 -0
  87. package/src/types.ts +160 -0
  88. package/src/utils.ts +21 -0
  89. package/tsconfig.build.json +4 -0
  90. package/tsconfig.eslint.json +5 -0
  91. package/tsconfig.json +88 -0
@@ -0,0 +1,38 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-install-response-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_install_response",
5
+ "type": "object",
6
+ "properties": {
7
+ "appInstallResponse": {
8
+ "type": "object",
9
+ "properties": {
10
+ "projectId": {
11
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
12
+ },
13
+ "appReleaseHash": {
14
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/appReleaseHash"
15
+ },
16
+ "appInstallPayload": {
17
+ "type": "object",
18
+ "properties": {
19
+ "appSignedUrl": {
20
+ "type": "string"
21
+ }
22
+ },
23
+ "required": ["appSignedUrl"]
24
+ },
25
+ "modelsInstallPayload": {
26
+ "$ref": "https://alwaysai.co/models-install-payload-schema.json"
27
+ }
28
+ },
29
+ "required": [
30
+ "projectId",
31
+ "appReleaseHash",
32
+ "appInstallPayload",
33
+ "modelsInstallPayload"
34
+ ]
35
+ }
36
+ },
37
+ "required": ["appInstallResponse"]
38
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-install-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_install",
5
+ "type": "object",
6
+ "properties": {
7
+ "baseCommand": {
8
+ "type": "string",
9
+ "enum": ["install"]
10
+ },
11
+ "projectId": {
12
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
13
+ },
14
+ "appReleaseHash": {
15
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/appReleaseHash"
16
+ },
17
+ "appConfig":{
18
+ "type": "string"
19
+ },
20
+ "envVars": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": ["baseCommand", "projectId", "appReleaseHash"]
25
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-logs-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_logs",
5
+ "type": "object",
6
+ "properties": {
7
+ "projectId": {
8
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
9
+ },
10
+ "logChunk": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": ["projectId", "logChunk"]
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-state-control-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_state_control",
5
+ "type": "object",
6
+ "properties": {
7
+ "baseCommand": {
8
+ "type": "string",
9
+ "enum": ["start", "stop", "restart"]
10
+ },
11
+ "projectId": {
12
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
13
+ }
14
+ },
15
+ "required": ["baseCommand", "projectId"]
16
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-state-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_state",
5
+ "type": "object",
6
+ "properties": {
7
+ "appState": {
8
+ "type": "array",
9
+ "items": {
10
+ "type": "object",
11
+ "properties": {
12
+ "appDetails": {
13
+ "type": "object",
14
+ "properties": {
15
+ "projectId": {
16
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
17
+ },
18
+ "version": {
19
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/appReleaseHash"
20
+ }
21
+ },
22
+ "required": ["projectId", "version"]
23
+ },
24
+ "services": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string"
31
+ },
32
+ "state": {
33
+ "enum": ["up", "stopped", "restarting"]
34
+ }
35
+ },
36
+ "required": ["name", "state"]
37
+ }
38
+ }
39
+ },
40
+ "required": ["appDetails", "services"]
41
+ }
42
+ }
43
+ },
44
+ "required": ["appState"]
45
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-uninstall-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_uninstall",
5
+ "type": "object",
6
+ "properties": {
7
+ "baseCommand": {
8
+ "type": "string",
9
+ "enum": ["uninstall"]
10
+ },
11
+ "projectId": {
12
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
13
+ }
14
+ },
15
+ "required": ["baseCommand", "projectId"]
16
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-update-config-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_update_config",
5
+ "type": "object",
6
+ "properties": {
7
+ "baseCommand": {
8
+ "type": "string",
9
+ "enum": ["update_config"]
10
+ },
11
+ "projectId": {
12
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
13
+ },
14
+ "appCfg":{
15
+ "type": "string"
16
+ },
17
+ "envVars": {
18
+ "type": "string"
19
+ }
20
+ },
21
+ "required": ["baseCommand", "projectId"]
22
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$id": "https://alwaysai.co/app-version-control-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "app_version_control",
5
+ "type": "object",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "https://alwaysai.co/app-install-schema.json"
9
+ },
10
+ {
11
+ "$ref": "https://alwaysai.co/app-update-config-schema.json"
12
+ },
13
+ {
14
+ "$ref": "https://alwaysai.co/app-uninstall-schema.json"
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$id": "https://alwaysai.co/common-schema.json",
3
+ "title": "common",
4
+ "$defs": {
5
+ "projectId": {
6
+ "description": "The specific project associated with the message payload.",
7
+ "type": "string",
8
+ "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
9
+ },
10
+ "appReleaseHash": {
11
+ "description": "The version of the project associated with the message payload.",
12
+ "type": "string",
13
+ "pattern": "[0-9a-z]{64}"
14
+ },
15
+ "modelId": {
16
+ "description": "The id of a model",
17
+ "type": "string",
18
+ "pattern": "[A-Za-z0-9_]+/[A-Za-z0-9_]*"
19
+ },
20
+ "txId": {
21
+ "type": "string",
22
+ "minLength": 36,
23
+ "maxLength": 36,
24
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$id": "https://alwaysai.co/device-action-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "device_action",
5
+ "type": "object",
6
+ "properties": {
7
+ "action": {
8
+ "type": "string",
9
+ "enum": ["system_restart"]
10
+ }
11
+ },
12
+ "required": ["action"]
13
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$id": "https://alwaysai.co/device-agent-status-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "device_agent_status",
5
+ "description": "Whether the analytics passthrough is enabled and available",
6
+ "type": "object",
7
+ "properties": {
8
+ "passthrough": {
9
+ "type": "object",
10
+ "properties": {
11
+ "status": {
12
+ "type": "string",
13
+ "enum": [
14
+ "starting",
15
+ "running",
16
+ "error",
17
+ "disabled"
18
+ ]
19
+ },
20
+ "message": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": [
25
+ "status",
26
+ "message"
27
+ ]
28
+ }
29
+ },
30
+ "required": [
31
+ "passthrough"
32
+ ]
33
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$id": "https://alwaysai.co/device-stats-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "device_stats",
5
+ "type": "object",
6
+ "properties": {
7
+ "cpuUsage": {
8
+ "type": "number",
9
+ "description": "The percentage of the CPU that is currently being used."
10
+ },
11
+ "diskUtil": {
12
+ "type": "number",
13
+ "description": "The percentage of the drive storage that is being used."
14
+ },
15
+ "usedMemoryPercentage": {
16
+ "type": "number",
17
+ "description": "The percentage of the memory that is being used."
18
+ },
19
+ "cpuDetails": {
20
+ "type": "object",
21
+ "description": "CPU utilization information",
22
+ "properties": {
23
+ "usedPerc": {
24
+ "type": ["number"]
25
+ },
26
+ "temperature": {
27
+ "type": ["number"]
28
+ }
29
+ }
30
+ },
31
+ "diskDetails": {
32
+ "type": "object",
33
+ "description": "Disk utilization information",
34
+ "properties": {
35
+ "usedGb": {
36
+ "type": ["number"]
37
+ },
38
+ "freeGb": {
39
+ "type": ["number"]
40
+ }
41
+ }
42
+ },
43
+ "memDetails": {
44
+ "type": "object",
45
+ "description": "Memory utilization information",
46
+ "properties": {
47
+ "usedMb": {
48
+ "type": ["number"]
49
+ },
50
+ "freeMb": {
51
+ "type": ["number"]
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "required": []
57
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$id": "https://alwaysai.co/env-var-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "env-var",
5
+ "type": "object",
6
+ "patternProperties": {
7
+ ".*": {
8
+ "type": "object",
9
+ "patternProperties": {
10
+ "^[^\\s]+$": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
16
+ },
17
+ "additionalProperties": false
18
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$id": "https://alwaysai.co/live-updates-toggle-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "live_state_updates",
5
+ "type": "object",
6
+ "properties": {
7
+ "deviceStats": {
8
+ "type": "boolean"
9
+ },
10
+ "appState": {
11
+ "type": "boolean"
12
+ },
13
+ "appLogs": {
14
+ "type": "object",
15
+ "properties": {
16
+ "projectId": {
17
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
18
+ },
19
+ "toggle": {
20
+ "type": "boolean"
21
+ }
22
+ },
23
+ "required": ["projectId", "toggle"]
24
+ }
25
+ },
26
+ "required": []
27
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$id": "https://alwaysai.co/models-install-payload-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "models_install_payload",
5
+ "type": "array",
6
+ "items": {
7
+ "type": "object",
8
+ "properties": {
9
+ "id": {
10
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/modelId"
11
+ },
12
+ "version": {
13
+ "type": "number"
14
+ },
15
+ "modelSignedUrl": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": ["id", "version", "modelSignedUrl"]
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$id": "https://alwaysai.co/models-install-response-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "models_install_response",
5
+ "type": "object",
6
+ "properties": {
7
+ "modelsInstallResponse": {
8
+ "type": "object",
9
+ "properties": {
10
+ "projectId": {
11
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
12
+ },
13
+ "newModels": {
14
+ "$ref": "https://alwaysai.co/models-install-payload-schema.json"
15
+ }
16
+ },
17
+ "required": ["projectId", "newModels"]
18
+ }
19
+ },
20
+ "required": ["modelsInstallResponse"]
21
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$id": "https://alwaysai.co/secure-tunnel-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "secure-tunnel",
5
+ "type": "object",
6
+ "properties": {
7
+ "st_ports": {
8
+ "type": "array",
9
+ "items": {
10
+ "type": "object",
11
+ "required": ["enabled","type","ip","port"],
12
+ "properties": {
13
+ "enabled": {
14
+ "type": "boolean"
15
+ },
16
+ "type": {
17
+ "type": "string"
18
+ },
19
+ "ip": {
20
+ "type": "string"
21
+ },
22
+ "port": {
23
+ "type": "number"
24
+ }
25
+ }
26
+ }
27
+ }
28
+ },
29
+ "required": ["st_ports"],
30
+ "additionalProperties": false
31
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$id": "https://alwaysai.co/shadow-project-update-legacy-schema.json",
3
+ "title": "shadow_project_update_legacy_schema",
4
+ "description": "[LEGACY] The messaging payload structure for all properties of a single project shadow update",
5
+ "type": "object",
6
+ "nullable": true,
7
+ "properties": {
8
+ "appConfig": {
9
+ "type": "string"
10
+ },
11
+ "envVars": {
12
+ "type": "object",
13
+ "patternProperties": {
14
+ ".*": {
15
+ "type": "object",
16
+ "patternProperties":{
17
+ ".*": {
18
+ "type": ["string", "null"]
19
+ }
20
+ },
21
+ "required": [],
22
+ "additionalProperties": false
23
+ }
24
+ },
25
+ "required": [],
26
+ "additionalProperties": false
27
+ }
28
+ },
29
+ "required": []
30
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$id": "https://alwaysai.co/shadow-project-update-schema.json",
3
+ "title": "shadow_project_update_schema",
4
+ "description": "The messaging payload structure for all properties of a single project shadow update",
5
+ "type": "object",
6
+ "nullable": true,
7
+ "properties": {
8
+ "appConfig": {
9
+ "type": "string"
10
+ },
11
+ "envVars": {
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": []
16
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$id": "https://alwaysai.co/shadow-projects-update-all-schema.json",
3
+ "title": "shadow-projects-update-all",
4
+ "description": "The messaging payload structure for shadow's projects update delta",
5
+ "type": "object",
6
+ "patternProperties": {
7
+ ".*": {
8
+ "type": ["object","null"],
9
+ "anyOf":[
10
+ {"$ref": "https://alwaysai.co/shadow-project-update-schema.json"},
11
+ {"$ref": "https://alwaysai.co/shadow-project-update-legacy-schema.json"}
12
+ ]
13
+ }
14
+ },
15
+ "propertyNames": {
16
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
17
+ },
18
+ "required": [],
19
+ "additionalProperties": false
20
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$id": "https://alwaysai.co/signed-urls-request-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "signed_urls_request",
5
+ "type": "object",
6
+ "properties": {
7
+ "signedUrlsRequest": {
8
+ "type": "object",
9
+ "properties": {
10
+ "projectId": {
11
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
12
+ },
13
+ "appReleaseHash": {
14
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/appReleaseHash"
15
+ }
16
+ },
17
+ "required": ["projectId", "appReleaseHash"]
18
+ },
19
+ "modelsOnlyUrlsRequest": {
20
+ "type": "object",
21
+ "properties": {
22
+ "projectId": {
23
+ "$ref": "https://alwaysai.co/common-schema.json#/$defs/projectId"
24
+ },
25
+ "models": {
26
+ "type": "object",
27
+ "patternProperties": {
28
+ "[A-Za-z0-9_]+/[A-Za-z0-9_]*": {
29
+ "type": ["integer"]
30
+ }
31
+ },
32
+ "additionalProperties": false
33
+ }
34
+ },
35
+ "required": ["projectId", "models"]
36
+ }
37
+ },
38
+ "required": []
39
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$id": "https://alwaysai.co/status-response-schema.json",
3
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
4
+ "title": "status_response",
5
+ "type": "object",
6
+ "properties": {
7
+ "status": {
8
+ "enum": ["requested", "in_progress", "failure", "success", "connection_lost"]
9
+ },
10
+ "message": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": ["status"]
15
+ }