@balena/open-balena-api 31.2.9-build-move-device-service-propagate-hook-a98dfded52b515150f825e9c7b85f9c0f33e16e9-1 → 31.3.0-build-add-target-os-release-changed-sv-update-hook-7c78b17a31253a0faf8f3013414215b6aa5f25ab-1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/features/ci-cd/hooks/device-update-trigger.js +3 -1
- package/dist/features/ci-cd/hooks/device-update-trigger.js.map +1 -1
- package/dist/features/service-install/hooks/backfill-device-service-environment-variable.js +26 -0
- package/dist/features/service-install/hooks/backfill-device-service-environment-variable.js.map +1 -0
- package/dist/features/service-install/hooks/index.d.ts +1 -1
- package/dist/features/service-install/hooks/index.js +1 -1
- package/dist/features/service-install/hooks/index.js.map +1 -1
- package/dist/translations/v7/hooks.js +1 -31
- package/dist/translations/v7/hooks.js.map +1 -1
- package/package.json +2 -2
- package/dist/features/service-install/hooks/backfill-service-install-on-device-service-env-var.js +0 -41
- package/dist/features/service-install/hooks/backfill-service-install-on-device-service-env-var.js.map +0 -1
- /package/dist/features/service-install/hooks/{backfill-service-install-on-device-service-env-var.d.ts → backfill-device-service-environment-variable.d.ts} +0 -0
@@ -8,9 +8,11 @@ hooks.addPureHook('PATCH', 'resin', 'device', {
|
|
8
8
|
// * app changed
|
9
9
|
// * target release changed
|
10
10
|
// * device name changed - so a user can restart their service and it will pick up the change
|
11
|
+
// * target OS release changed, so that Supervisors that support this can trigger a HUP
|
11
12
|
if ((request.values.is_pinned_on__release !== undefined ||
|
12
13
|
request.values.belongs_to__application != null ||
|
13
|
-
request.values.device_name != null
|
14
|
+
request.values.device_name != null ||
|
15
|
+
request.values.should_be_operated_by__release != null) &&
|
14
16
|
affectedIds.length !== 0) {
|
15
17
|
// Send the update requests only after the tx is committed
|
16
18
|
tx.on('end', async () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"device-update-trigger.js","sourceRoot":"","sources":["../../../../src/features/ci-cd/hooks/device-update-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAY,CAAC;QAEzC,yCAAyC;QACzC,gBAAgB;QAChB,2BAA2B;QAC3B,6FAA6F;QAC7F,IACC,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS;YAClD,OAAO,CAAC,MAAM,CAAC,uBAAuB,IAAI,IAAI;YAC9C,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"device-update-trigger.js","sourceRoot":"","sources":["../../../../src/features/ci-cd/hooks/device-update-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAY,CAAC;QAEzC,yCAAyC;QACzC,gBAAgB;QAChB,2BAA2B;QAC3B,6FAA6F;QAC7F,uFAAuF;QACvF,IACC,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS;YAClD,OAAO,CAAC,MAAM,CAAC,uBAAuB,IAAI,IAAI;YAC9C,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;YAClC,OAAO,CAAC,MAAM,CAAC,8BAA8B,IAAI,IAAI,CAAC;YACvD,WAAW,CAAC,MAAM,KAAK,CAAC,EACvB,CAAC;YACF,0DAA0D;YAC1D,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC;oBACJ,MAAM,WAAW,CAAC;wBACjB,GAAG,EAAE,YAAY;wBACjB,GAAG,EAAE,WAAW,CAAC,IAAI;wBACrB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;wBACpC,IAAI,EAAE,KAAK;qBACX,CAAC,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,gBAAgB,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { hooks, errors } from '@balena/pinejs';
|
2
|
+
async function backfillDeviceAndService({ request, api, }) {
|
3
|
+
const { service_install: siId } = request.values;
|
4
|
+
if (siId == null) {
|
5
|
+
return;
|
6
|
+
}
|
7
|
+
const si = await api.get({
|
8
|
+
resource: 'service_install',
|
9
|
+
id: siId,
|
10
|
+
options: {
|
11
|
+
$select: ['device', 'service'],
|
12
|
+
},
|
13
|
+
});
|
14
|
+
if (si == null) {
|
15
|
+
throw new errors.UnauthorizedError();
|
16
|
+
}
|
17
|
+
request.values.device = si.device.__id;
|
18
|
+
request.values.service = si.service.__id;
|
19
|
+
}
|
20
|
+
hooks.addPureHook('POST', 'resin', 'device_service_environment_variable', {
|
21
|
+
POSTPARSE: backfillDeviceAndService,
|
22
|
+
});
|
23
|
+
hooks.addPureHook('PATCH', 'resin', 'device_service_environment_variable', {
|
24
|
+
POSTPARSE: backfillDeviceAndService,
|
25
|
+
});
|
26
|
+
//# sourceMappingURL=backfill-device-service-environment-variable.js.map
|
package/dist/features/service-install/hooks/backfill-device-service-environment-variable.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"backfill-device-service-environment-variable.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/backfill-device-service-environment-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE/D,KAAK,UAAU,wBAAwB,CAAC,EACvC,OAAO,EACP,GAAG,GAC0B;IAC7B,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO;IACR,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACR,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC9B;KACD,CAAC,CAAC;IAEH,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACzE,SAAS,EAAE,wBAAwB;CACnC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,qCAAqC,EAAE;IAC1E,SAAS,EAAE,wBAAwB;CACnC,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
import './backfill-
|
1
|
+
import './backfill-device-service-environment-variable.js';
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import './backfill-
|
1
|
+
import './backfill-device-service-environment-variable.js';
|
2
2
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,mDAAmD,CAAC"}
|
@@ -1,32 +1,2 @@
|
|
1
|
-
|
2
|
-
const addReadOnlyHook = (methods, resource, hook) => {
|
3
|
-
methods.map((method) => {
|
4
|
-
hooks.addHook(method, 'v7', resource, {
|
5
|
-
...hook,
|
6
|
-
sideEffects: false,
|
7
|
-
readOnlyTx: true,
|
8
|
-
});
|
9
|
-
});
|
10
|
-
};
|
11
|
-
addReadOnlyHook(['POST', 'PATCH', 'PUT'], 'device_service_environment_variable', {
|
12
|
-
POSTPARSE: async ({ request, api }) => {
|
13
|
-
const { service_install: siId } = request.values;
|
14
|
-
if (siId == null) {
|
15
|
-
return;
|
16
|
-
}
|
17
|
-
const si = await sbvrUtils.api.resin.get({
|
18
|
-
resource: 'service_install',
|
19
|
-
passthrough: api.passthrough,
|
20
|
-
id: siId,
|
21
|
-
options: {
|
22
|
-
$select: ['device', 'service'],
|
23
|
-
},
|
24
|
-
});
|
25
|
-
if (si == null) {
|
26
|
-
throw new errors.UnauthorizedError();
|
27
|
-
}
|
28
|
-
request.values.device = si.device.__id;
|
29
|
-
request.values.service = si.service.__id;
|
30
|
-
},
|
31
|
-
});
|
1
|
+
export {};
|
32
2
|
//# sourceMappingURL=hooks.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/translations/v7/hooks.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/translations/v7/hooks.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@balena/open-balena-api",
|
3
3
|
"description": "Internet of things, Made Simple",
|
4
|
-
"version": "31.
|
4
|
+
"version": "31.3.0-build-add-target-os-release-changed-sv-update-hook-7c78b17a31253a0faf8f3013414215b6aa5f25ab-1",
|
5
5
|
"license": "AGPL-3.0",
|
6
6
|
"repository": {
|
7
7
|
"type": "git",
|
@@ -166,6 +166,6 @@
|
|
166
166
|
"loader": "ts-node/esm/transpile-only"
|
167
167
|
},
|
168
168
|
"versionist": {
|
169
|
-
"publishedAt": "2024-11-
|
169
|
+
"publishedAt": "2024-11-20T08:01:36.754Z"
|
170
170
|
}
|
171
171
|
}
|
package/dist/features/service-install/hooks/backfill-service-install-on-device-service-env-var.js
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
import { hooks, errors } from '@balena/pinejs';
|
2
|
-
async function backfillServiceInstall({ request, api, }) {
|
3
|
-
const { device: deviceId, service: serviceId } = request.values;
|
4
|
-
if (deviceId == null && serviceId == null) {
|
5
|
-
return;
|
6
|
-
}
|
7
|
-
if ((deviceId == null && serviceId != null) ||
|
8
|
-
(deviceId != null && serviceId == null)) {
|
9
|
-
throw new errors.BadRequestError('Both or none of device and service must be specified');
|
10
|
-
}
|
11
|
-
let si = await api.get({
|
12
|
-
resource: 'service_install',
|
13
|
-
id: {
|
14
|
-
device: deviceId,
|
15
|
-
installs__service: serviceId,
|
16
|
-
},
|
17
|
-
options: {
|
18
|
-
$select: ['id'],
|
19
|
-
},
|
20
|
-
});
|
21
|
-
if (si == null) {
|
22
|
-
si = await api.post({
|
23
|
-
resource: 'service_install',
|
24
|
-
body: {
|
25
|
-
device: deviceId,
|
26
|
-
installs__service: serviceId,
|
27
|
-
},
|
28
|
-
});
|
29
|
-
}
|
30
|
-
if (si == null) {
|
31
|
-
throw new errors.BadRequestError(`No service install exists for device: ${deviceId} and service ${serviceId} and one could not be created`);
|
32
|
-
}
|
33
|
-
request.values.service_install = si.id;
|
34
|
-
}
|
35
|
-
hooks.addPureHook('POST', 'resin', 'device_service_environment_variable', {
|
36
|
-
POSTPARSE: backfillServiceInstall,
|
37
|
-
});
|
38
|
-
hooks.addPureHook('PATCH', 'resin', 'device_service_environment_variable', {
|
39
|
-
POSTPARSE: backfillServiceInstall,
|
40
|
-
});
|
41
|
-
//# sourceMappingURL=backfill-service-install-on-device-service-env-var.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"backfill-service-install-on-device-service-env-var.js","sourceRoot":"","sources":["../../../../src/features/service-install/hooks/backfill-service-install-on-device-service-env-var.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE/D,KAAK,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,GAAG,GAC0B;IAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEhE,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,IACC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC;QACvC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,EACtC,CAAC;QACF,MAAM,IAAI,MAAM,CAAC,eAAe,CAC/B,sDAAsD,CACtD,CAAC;IACH,CAAC;IAED,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACtB,QAAQ,EAAE,iBAAiB;QAC3B,EAAE,EAAE;YACH,MAAM,EAAE,QAAQ;YAChB,iBAAiB,EAAE,SAAS;SAC5B;QACD,OAAO,EAAE;YACR,OAAO,EAAE,CAAC,IAAI,CAAC;SACf;KACD,CAAC,CAAC;IAEH,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE;gBACL,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,MAAM,CAAC,eAAe,CAC/B,yCAAyC,QAAQ,gBAAgB,SAAS,+BAA+B,CACzG,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACzE,SAAS,EAAE,sBAAsB;CACjC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,qCAAqC,EAAE;IAC1E,SAAS,EAAE,sBAAsB;CACjC,CAAC,CAAC"}
|