@balena/open-balena-api 43.2.0-build-joshbwlng-releases-cd9edb0095b56ddc63c13edc0d605146ae3795d7-1 → 43.2.0-build-joshbwlng-releases-b2af213c8d06a028d6ec5006ba877d2811cc81c1-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.
@@ -1,14 +1,8 @@
1
1
  import { permissions, sbvrUtils, tasks } from '@balena/pinejs';
2
2
  import _ from 'lodash';
3
- import { generateToken } from '../../registry/registry.js';
4
- import { ASYNC_TASK_DELETE_REGISTRY_IMAGES_BATCH_SIZE, REGISTRY2_HOST, } from '../../../lib/config.js';
5
- import { requestAsync } from '../../../infra/request-promise/index.js';
6
- import { setTimeout } from 'node:timers/promises';
3
+ import { ASYNC_TASK_DELETE_REGISTRY_IMAGES_BATCH_SIZE } from '../../../lib/config.js';
4
+ import { deleteImage } from '../../../lib/registry.js';
7
5
  const { api } = sbvrUtils;
8
- // For registry API requests
9
- const DELAY = 200;
10
- const RATE_LIMIT_DELAY_BASE = 1000;
11
- const RATE_LIMIT_RETRIES = 5;
12
6
  const schema = {
13
7
  type: 'object',
14
8
  properties: {
@@ -65,7 +59,7 @@ tasks.addTaskHandler(handlerName, async (options) => {
65
59
  console.warn(`[${logHeader}] Skipping deletion of image with empty repo or hash: ${repo}/${hash}`);
66
60
  continue;
67
61
  }
68
- await markForDeletion(repo, hash);
62
+ await deleteImage(`task:${handlerName}`, repo, hash);
69
63
  }
70
64
  }
71
65
  return {
@@ -80,58 +74,4 @@ tasks.addTaskHandler(handlerName, async (options) => {
80
74
  };
81
75
  }
82
76
  }, schema);
83
- // Make an API call to the registry service to mark images for deletion on next garbage collection
84
- async function markForDeletion(repo, hash) {
85
- // Generate an admin-level token with delete permission
86
- const token = generateToken(`task:${handlerName}`, REGISTRY2_HOST, [
87
- {
88
- name: repo,
89
- type: 'repository',
90
- actions: ['delete'],
91
- },
92
- ]);
93
- // Need to make requests one image at a time, no batch endpoint available
94
- for (let retries = 0; retries < RATE_LIMIT_RETRIES; retries++) {
95
- const [{ statusCode, statusMessage, headers }] = await requestAsync({
96
- url: `https://${REGISTRY2_HOST}/v2/${encodeURIComponent(repo)}/manifests/${encodeURIComponent(hash)}`,
97
- headers: { Authorization: `Bearer ${token}` },
98
- method: 'DELETE',
99
- });
100
- // Return on success or not found
101
- if (statusCode === 202 || statusCode === 404) {
102
- await setTimeout(DELAY);
103
- return;
104
- }
105
- else if (statusCode === 429) {
106
- // Give up if we've hit the retry limit
107
- if (retries === RATE_LIMIT_RETRIES - 1) {
108
- throw new Error(`Failed to mark ${repo}/${hash} for deletion: exceeded retry limit due to rate limiting`);
109
- }
110
- // Default delay value to exponential backoff
111
- let delay = RATE_LIMIT_DELAY_BASE * Math.pow(2, retries);
112
- // Use the retry-after header value if available
113
- const retryAfterHeader = headers?.['retry-after'];
114
- if (retryAfterHeader) {
115
- const headerDelay = parseInt(retryAfterHeader, 10);
116
- if (!isNaN(headerDelay)) {
117
- delay = headerDelay * 1000;
118
- }
119
- else {
120
- const retryDate = Date.parse(retryAfterHeader);
121
- const waitMillis = retryDate - Date.now();
122
- if (waitMillis > 0) {
123
- delay = waitMillis;
124
- }
125
- }
126
- }
127
- // Apply some jitter for good measure
128
- delay += Math.random() * 1000;
129
- console.warn(`[${logHeader}] Received 429 for ${repo}/${hash}. Retrying in ${delay}ms...`);
130
- await setTimeout(delay);
131
- }
132
- else {
133
- throw new Error(`Failed to mark ${repo}/${hash} for deletion: [${statusCode}] ${statusMessage}`);
134
- }
135
- }
136
- }
137
77
  //# sourceMappingURL=delete-registry-images.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-registry-images.js","sourceRoot":"","sources":["../../../../src/features/images/tasks/delete-registry-images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete-registry-images.js","sourceRoot":"","sources":["../../../../src/features/images/tasks/delete-registry-images.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export * as redis from './infra/redis/index.js';
27
27
  export * as scheduler from './infra/scheduler/index.js';
28
28
  export * as cache from './infra/cache/index.js';
29
29
  export * as config from './lib/config.js';
30
+ export * as registry from './lib/registry.js';
30
31
  export * as abstractSql from './abstract-sql-utils.js';
31
32
  export { getFileUploadHandler } from './fileupload-handler.js';
32
33
  export * as deviceState from './features/device-state/index.js';
@@ -126,9 +127,7 @@ export declare const auth: {
126
127
  };
127
128
  getServiceFromRequest: (req: {
128
129
  apiKey?: sbvrUtils.ApiKey;
129
- }
130
- /** @deprecated Use getAccessibleDeviceTypeJsons */
131
- ) => string | undefined;
130
+ }) => string | undefined;
132
131
  };
133
132
  export declare const rateLimiting: {
134
133
  createRateLimitMiddleware: (rateLimiter: ReturnType<typeof createRateLimiter>, keyOpts?: Parameters<(rateLimiter: ReturnType<typeof createRateLimiter>, { ignoreIP, allowReset, }?: {
package/dist/index.js CHANGED
@@ -60,6 +60,7 @@ export * as redis from './infra/redis/index.js';
60
60
  export * as scheduler from './infra/scheduler/index.js';
61
61
  export * as cache from './infra/cache/index.js';
62
62
  export * as config from './lib/config.js';
63
+ export * as registry from './lib/registry.js';
63
64
  export * as abstractSql from './abstract-sql-utils.js';
64
65
  export { getFileUploadHandler } from './fileupload-handler.js';
65
66
  export * as deviceState from './features/device-state/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function deleteImage(subject: string, repo: string, hash: string): Promise<void>;
@@ -0,0 +1,62 @@
1
+ import { generateToken } from '../features/registry/registry.js';
2
+ import { requestAsync } from '../infra/request-promise/index.js';
3
+ import { REGISTRY2_HOST } from './config.js';
4
+ import { setTimeout } from 'node:timers/promises';
5
+ const DELAY = 200;
6
+ const RATE_LIMIT_DELAY_BASE = 1000;
7
+ const RATE_LIMIT_RETRIES = 5;
8
+ // Make an API call to the registry service to mark images for deletion on next garbage collection
9
+ export async function deleteImage(subject, repo, hash) {
10
+ // Generate an admin-level token with delete permission
11
+ const token = generateToken(subject, REGISTRY2_HOST, [
12
+ {
13
+ name: repo,
14
+ type: 'repository',
15
+ actions: ['delete'],
16
+ },
17
+ ]);
18
+ // Need to make requests one image at a time, no batch endpoint available
19
+ for (let retries = 0; retries < RATE_LIMIT_RETRIES; retries++) {
20
+ const [{ statusCode, statusMessage, headers }] = await requestAsync({
21
+ url: `https://${REGISTRY2_HOST}/v2/${encodeURIComponent(repo)}/manifests/${encodeURIComponent(hash)}`,
22
+ headers: { Authorization: `Bearer ${token}` },
23
+ method: 'DELETE',
24
+ });
25
+ // Return on success or not found
26
+ if (statusCode === 202 || statusCode === 404) {
27
+ await setTimeout(DELAY);
28
+ return;
29
+ }
30
+ else if (statusCode === 429) {
31
+ // Give up if we've hit the retry limit
32
+ if (retries === RATE_LIMIT_RETRIES - 1) {
33
+ throw new Error(`Failed to mark ${repo}/${hash} for deletion: exceeded retry limit due to rate limiting`);
34
+ }
35
+ // Default delay value to exponential backoff
36
+ let delay = RATE_LIMIT_DELAY_BASE * Math.pow(2, retries);
37
+ // Use the retry-after header value if available
38
+ const retryAfterHeader = headers?.['retry-after'];
39
+ if (retryAfterHeader) {
40
+ const headerDelay = parseInt(retryAfterHeader, 10);
41
+ if (!isNaN(headerDelay)) {
42
+ delay = headerDelay * 1000;
43
+ }
44
+ else {
45
+ const retryDate = Date.parse(retryAfterHeader);
46
+ const waitMillis = retryDate - Date.now();
47
+ if (waitMillis > 0) {
48
+ delay = waitMillis;
49
+ }
50
+ }
51
+ }
52
+ // Apply some jitter for good measure
53
+ delay += Math.random() * 1000;
54
+ console.warn(`Received 429 for ${repo}/${hash}. Retrying in ${delay}ms...`);
55
+ await setTimeout(delay);
56
+ }
57
+ else {
58
+ throw new Error(`Failed to mark ${repo}/${hash} for deletion: [${statusCode}] ${statusMessage}`);
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
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": "43.2.0-build-joshbwlng-releases-cd9edb0095b56ddc63c13edc0d605146ae3795d7-1",
4
+ "version": "43.2.0-build-joshbwlng-releases-b2af213c8d06a028d6ec5006ba877d2811cc81c1-1",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -175,6 +175,6 @@
175
175
  "import": "@swc-node/register/esm-register"
176
176
  },
177
177
  "versionist": {
178
- "publishedAt": "2025-10-30T07:00:32.993Z"
178
+ "publishedAt": "2025-10-30T07:26:01.372Z"
179
179
  }
180
180
  }