balena-cli 23.2.7-build-os-configure-config-default-ethernet-adde76243450cd9f22dfc2414aa813c61a492748-1 → 23.2.7-build-validate-installer-secureboot-b46212b61823e87ee7a7b1931c4bbc435a40ba2e-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.
- package/CHANGELOG.md +2 -2
- package/build/commands/os/configure.js +9 -16
- package/build/commands/os/configure.js.map +1 -1
- package/build/utils/config.js +5 -0
- package/build/utils/config.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +50 -50
- package/package.json +2 -2
- package/src/commands/os/configure.ts +17 -23
- package/src/utils/config.ts +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,9 +6,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## 23.2.7 - 2025-12-06
|
|
8
8
|
|
|
9
|
+
* Add test for os configure --config using secureboot [Thodoris Greasidis]
|
|
10
|
+
* os configure, device init: Validate that the config.json's installer.secureboot is a boolean when set [Thodoris Greasidis]
|
|
9
11
|
* Update @balena/lint to 9.3.7 to support async disposables [Thodoris Greasidis]
|
|
10
|
-
* Add tests for os configure --config [Thodoris Greasidis]
|
|
11
|
-
* os configure: Fix asking interactive questions when --config is used [Thodoris Greasidis]
|
|
12
12
|
|
|
13
13
|
## 23.2.6 - 2025-12-05
|
|
14
14
|
|
|
@@ -58,21 +58,10 @@ class OsConfigureCmd extends core_1.Command {
|
|
|
58
58
|
await validateDevOptionAndWarn(developmentMode, osVersion);
|
|
59
59
|
const { validateSecureBootOptionAndWarn } = await Promise.resolve().then(() => require('../../utils/config'));
|
|
60
60
|
await validateSecureBootOptionAndWarn(secureBoot, deviceTypeSlug, osVersion);
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
appUpdatePollInterval: configJson.appUpdatePollInterval,
|
|
66
|
-
network: !configJson.wifiSsid && !configJson.wifiKey ? 'ethernet' : 'wifi',
|
|
67
|
-
..._.pick(configJson, ['wifiSsid', 'wifiKey']),
|
|
68
|
-
};
|
|
69
|
-
const answers = {
|
|
70
|
-
...baseAnswers,
|
|
71
|
-
deviceType: deviceTypeSlug,
|
|
72
|
-
version: osVersion,
|
|
73
|
-
developmentMode: developmentMode,
|
|
74
|
-
secureBoot: secureBoot,
|
|
75
|
-
};
|
|
61
|
+
const answers = await askQuestionsForDeviceType(deviceTypeManifest, options, configJson);
|
|
62
|
+
answers.version = osVersion;
|
|
63
|
+
answers.developmentMode = developmentMode;
|
|
64
|
+
answers.secureBoot = secureBoot;
|
|
76
65
|
if (configJson == null) {
|
|
77
66
|
answers.provisioningKeyName = options['provisioning-key-name'];
|
|
78
67
|
answers.provisioningKeyExpiryDate =
|
|
@@ -81,6 +70,7 @@ class OsConfigureCmd extends core_1.Command {
|
|
|
81
70
|
configJson = await generateDeviceConfig(device, undefined, answers);
|
|
82
71
|
}
|
|
83
72
|
else {
|
|
73
|
+
answers.deviceType = deviceTypeSlug;
|
|
84
74
|
configJson = await generateApplicationConfig(app, answers);
|
|
85
75
|
}
|
|
86
76
|
if (options['initial-device-name'] != null &&
|
|
@@ -245,7 +235,7 @@ async function checkDeviceTypeCompatibility(deviceType, app) {
|
|
|
245
235
|
}
|
|
246
236
|
}
|
|
247
237
|
}
|
|
248
|
-
async function askQuestionsForDeviceType(deviceType, options) {
|
|
238
|
+
async function askQuestionsForDeviceType(deviceType, options, configJson) {
|
|
249
239
|
var _a;
|
|
250
240
|
const answerSources = [
|
|
251
241
|
{
|
|
@@ -257,6 +247,9 @@ async function askQuestionsForDeviceType(deviceType, options) {
|
|
|
257
247
|
const defaultAnswers = {};
|
|
258
248
|
const questions = (_a = deviceType.options) !== null && _a !== void 0 ? _a : [];
|
|
259
249
|
let extraOpts;
|
|
250
|
+
if (configJson != null) {
|
|
251
|
+
answerSources.push(configJson);
|
|
252
|
+
}
|
|
260
253
|
if (!options.advanced) {
|
|
261
254
|
const advancedGroup = questions.find((question) => question.name === 'advanced' && question.isGroup);
|
|
262
255
|
if (advancedGroup != null && Object.keys(advancedGroup).length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/commands/os/configure.ts"],"names":[],"mappings":";;AAiBA,sCAAmD;AAGnD,yCAA6C;AAC7C,+CAA+C;AAC/C,2CAAyE;AACzE,mDAI8B;AAG9B,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/commands/os/configure.ts"],"names":[],"mappings":"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"}
|
package/build/utils/config.js
CHANGED
|
@@ -47,6 +47,7 @@ function populateDeviceConfig(config, device, deviceApiKey) {
|
|
|
47
47
|
config.uuid = device.uuid;
|
|
48
48
|
}
|
|
49
49
|
async function readAndValidateConfigJson(path) {
|
|
50
|
+
var _a;
|
|
50
51
|
const fs = await Promise.resolve().then(() => require('fs/promises'));
|
|
51
52
|
const [rawConfig, { ExpectedError }] = await Promise.all([
|
|
52
53
|
fs.readFile(path, 'utf8'),
|
|
@@ -63,6 +64,10 @@ async function readAndValidateConfigJson(path) {
|
|
|
63
64
|
configJson.deviceType === '') {
|
|
64
65
|
throw new ExpectedError('Missing or invalid deviceType in config.json');
|
|
65
66
|
}
|
|
67
|
+
const secureboot = (_a = configJson.installer) === null || _a === void 0 ? void 0 : _a.secureboot;
|
|
68
|
+
if (secureboot != null && typeof secureboot !== 'boolean') {
|
|
69
|
+
throw new ExpectedError(`Invalid installer.secureboot in config.json: value must be a boolean, found ${typeof secureboot}: '${secureboot}'`);
|
|
70
|
+
}
|
|
66
71
|
return configJson;
|
|
67
72
|
}
|
|
68
73
|
async function validateDevOptionAndWarn(dev, version, logger) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;AA4DA,8DAuCC;AAED,oDA4BC;AAED,oDAgBC;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "balena-cli",
|
|
3
|
-
"version": "23.2.7-build-
|
|
3
|
+
"version": "23.2.7-build-validate-installer-secureboot-b46212b61823e87ee7a7b1931c4bbc435a40ba2e-1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "balena-cli",
|
|
9
|
-
"version": "23.2.7-build-
|
|
9
|
+
"version": "23.2.7-build-validate-installer-secureboot-b46212b61823e87ee7a7b1931c4bbc435a40ba2e-1",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "Apache-2.0",
|
|
12
12
|
"dependencies": {
|
package/oclif.manifest.json
CHANGED
|
@@ -160,6 +160,56 @@
|
|
|
160
160
|
"create.js"
|
|
161
161
|
]
|
|
162
162
|
},
|
|
163
|
+
"block:create": {
|
|
164
|
+
"aliases": [],
|
|
165
|
+
"args": {
|
|
166
|
+
"name": {
|
|
167
|
+
"description": "block name",
|
|
168
|
+
"name": "name",
|
|
169
|
+
"required": true
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"description": "Create an block.\n\nCreate a new balena block.\n\nYou can specify the organization the block should belong to using\nthe `--organization` option. The organization's handle, not its name,\nshould be provided. Organization handles can be listed with the\n`balena organization list` command.\n\nThe block's default device type is specified with the `--type` option.\nThe `balena device-type list` command can be used to list the available\ndevice types.\n\nInteractive dropdowns will be shown for selection if no device type or\norganization is specified and there are multiple options to choose from.\nIf there is a single option to choose from, it will be chosen automatically.\nThis interactive behavior can be disabled by explicitly specifying a device\ntype and organization.",
|
|
173
|
+
"examples": [
|
|
174
|
+
"$ balena block create MyBlock",
|
|
175
|
+
"$ balena block create MyBlock --organization mmyorg",
|
|
176
|
+
"$ balena block create MyBlock -o myorg --type raspberry-pi"
|
|
177
|
+
],
|
|
178
|
+
"flags": {
|
|
179
|
+
"organization": {
|
|
180
|
+
"char": "o",
|
|
181
|
+
"description": "handle of the organization the block should belong to",
|
|
182
|
+
"name": "organization",
|
|
183
|
+
"hasDynamicHelp": false,
|
|
184
|
+
"multiple": false,
|
|
185
|
+
"type": "option"
|
|
186
|
+
},
|
|
187
|
+
"type": {
|
|
188
|
+
"char": "t",
|
|
189
|
+
"description": "block device type (Check available types with `balena device-type list`)",
|
|
190
|
+
"name": "type",
|
|
191
|
+
"hasDynamicHelp": false,
|
|
192
|
+
"multiple": false,
|
|
193
|
+
"type": "option"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"hasDynamicHelp": false,
|
|
197
|
+
"hiddenAliases": [],
|
|
198
|
+
"id": "block:create",
|
|
199
|
+
"pluginAlias": "balena-cli",
|
|
200
|
+
"pluginName": "balena-cli",
|
|
201
|
+
"pluginType": "core",
|
|
202
|
+
"strict": true,
|
|
203
|
+
"enableJsonFlag": false,
|
|
204
|
+
"authenticated": true,
|
|
205
|
+
"isESM": false,
|
|
206
|
+
"relativePath": [
|
|
207
|
+
"build",
|
|
208
|
+
"commands",
|
|
209
|
+
"block",
|
|
210
|
+
"create.js"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
163
213
|
"build": {
|
|
164
214
|
"aliases": [],
|
|
165
215
|
"args": {
|
|
@@ -362,56 +412,6 @@
|
|
|
362
412
|
"index.js"
|
|
363
413
|
]
|
|
364
414
|
},
|
|
365
|
-
"block:create": {
|
|
366
|
-
"aliases": [],
|
|
367
|
-
"args": {
|
|
368
|
-
"name": {
|
|
369
|
-
"description": "block name",
|
|
370
|
-
"name": "name",
|
|
371
|
-
"required": true
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
"description": "Create an block.\n\nCreate a new balena block.\n\nYou can specify the organization the block should belong to using\nthe `--organization` option. The organization's handle, not its name,\nshould be provided. Organization handles can be listed with the\n`balena organization list` command.\n\nThe block's default device type is specified with the `--type` option.\nThe `balena device-type list` command can be used to list the available\ndevice types.\n\nInteractive dropdowns will be shown for selection if no device type or\norganization is specified and there are multiple options to choose from.\nIf there is a single option to choose from, it will be chosen automatically.\nThis interactive behavior can be disabled by explicitly specifying a device\ntype and organization.",
|
|
375
|
-
"examples": [
|
|
376
|
-
"$ balena block create MyBlock",
|
|
377
|
-
"$ balena block create MyBlock --organization mmyorg",
|
|
378
|
-
"$ balena block create MyBlock -o myorg --type raspberry-pi"
|
|
379
|
-
],
|
|
380
|
-
"flags": {
|
|
381
|
-
"organization": {
|
|
382
|
-
"char": "o",
|
|
383
|
-
"description": "handle of the organization the block should belong to",
|
|
384
|
-
"name": "organization",
|
|
385
|
-
"hasDynamicHelp": false,
|
|
386
|
-
"multiple": false,
|
|
387
|
-
"type": "option"
|
|
388
|
-
},
|
|
389
|
-
"type": {
|
|
390
|
-
"char": "t",
|
|
391
|
-
"description": "block device type (Check available types with `balena device-type list`)",
|
|
392
|
-
"name": "type",
|
|
393
|
-
"hasDynamicHelp": false,
|
|
394
|
-
"multiple": false,
|
|
395
|
-
"type": "option"
|
|
396
|
-
}
|
|
397
|
-
},
|
|
398
|
-
"hasDynamicHelp": false,
|
|
399
|
-
"hiddenAliases": [],
|
|
400
|
-
"id": "block:create",
|
|
401
|
-
"pluginAlias": "balena-cli",
|
|
402
|
-
"pluginName": "balena-cli",
|
|
403
|
-
"pluginType": "core",
|
|
404
|
-
"strict": true,
|
|
405
|
-
"enableJsonFlag": false,
|
|
406
|
-
"authenticated": true,
|
|
407
|
-
"isESM": false,
|
|
408
|
-
"relativePath": [
|
|
409
|
-
"build",
|
|
410
|
-
"commands",
|
|
411
|
-
"block",
|
|
412
|
-
"create.js"
|
|
413
|
-
]
|
|
414
|
-
},
|
|
415
415
|
"config:generate": {
|
|
416
416
|
"aliases": [],
|
|
417
417
|
"args": {},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "balena-cli",
|
|
3
|
-
"version": "23.2.7-build-
|
|
3
|
+
"version": "23.2.7-build-validate-installer-secureboot-b46212b61823e87ee7a7b1931c4bbc435a40ba2e-1",
|
|
4
4
|
"description": "The official balena Command Line Interface",
|
|
5
5
|
"main": "./build/app.js",
|
|
6
6
|
"homepage": "https://github.com/balena-io/balena-cli",
|
|
@@ -262,6 +262,6 @@
|
|
|
262
262
|
"balena-request": "14.0.6"
|
|
263
263
|
},
|
|
264
264
|
"versionist": {
|
|
265
|
-
"publishedAt": "2025-12-
|
|
265
|
+
"publishedAt": "2025-12-06T21:44:16.004Z"
|
|
266
266
|
}
|
|
267
267
|
}
|
|
@@ -35,16 +35,13 @@ type FlagsDef = Interfaces.InferredFlags<typeof OsConfigureCmd.flags>;
|
|
|
35
35
|
|
|
36
36
|
interface Answers {
|
|
37
37
|
appUpdatePollInterval: number; // in minutes
|
|
38
|
-
network: 'ethernet' | 'wifi';
|
|
39
|
-
wifiSsid?: string;
|
|
40
|
-
wifiKey?: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
interface AugmentedAnswers extends Answers {
|
|
44
38
|
developmentMode?: boolean; // balenaOS development variant
|
|
45
39
|
secureBoot?: boolean;
|
|
46
40
|
deviceType: string; // e.g. "raspberrypi3"
|
|
41
|
+
network: 'ethernet' | 'wifi';
|
|
47
42
|
version: string; // e.g. "2.32.0+rev1"
|
|
43
|
+
wifiSsid?: string;
|
|
44
|
+
wifiKey?: string;
|
|
48
45
|
provisioningKeyName?: string;
|
|
49
46
|
provisioningKeyExpiryDate?: string;
|
|
50
47
|
}
|
|
@@ -246,23 +243,14 @@ export default class OsConfigureCmd extends Command {
|
|
|
246
243
|
osVersion,
|
|
247
244
|
);
|
|
248
245
|
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
..._.pick(configJson, ['wifiSsid', 'wifiKey']),
|
|
258
|
-
};
|
|
259
|
-
const answers: AugmentedAnswers = {
|
|
260
|
-
...baseAnswers,
|
|
261
|
-
deviceType: deviceTypeSlug,
|
|
262
|
-
version: osVersion,
|
|
263
|
-
developmentMode: developmentMode,
|
|
264
|
-
secureBoot: secureBoot,
|
|
265
|
-
};
|
|
246
|
+
const answers: Answers = await askQuestionsForDeviceType(
|
|
247
|
+
deviceTypeManifest,
|
|
248
|
+
options,
|
|
249
|
+
configJson,
|
|
250
|
+
);
|
|
251
|
+
answers.version = osVersion;
|
|
252
|
+
answers.developmentMode = developmentMode;
|
|
253
|
+
answers.secureBoot = secureBoot;
|
|
266
254
|
|
|
267
255
|
if (configJson == null) {
|
|
268
256
|
answers.provisioningKeyName = options['provisioning-key-name'];
|
|
@@ -271,6 +259,7 @@ export default class OsConfigureCmd extends Command {
|
|
|
271
259
|
if (device != null) {
|
|
272
260
|
configJson = await generateDeviceConfig(device, undefined, answers);
|
|
273
261
|
} else {
|
|
262
|
+
answers.deviceType = deviceTypeSlug;
|
|
274
263
|
configJson = await generateApplicationConfig(app!, answers);
|
|
275
264
|
}
|
|
276
265
|
if (
|
|
@@ -412,6 +401,7 @@ async function checkDeviceTypeCompatibility(
|
|
|
412
401
|
async function askQuestionsForDeviceType(
|
|
413
402
|
deviceType: BalenaSdk.DeviceTypeJson.DeviceType,
|
|
414
403
|
options: FlagsDef,
|
|
404
|
+
configJson: import('../../utils/config').ImgConfig | undefined,
|
|
415
405
|
): Promise<Answers> {
|
|
416
406
|
const answerSources: any[] = [
|
|
417
407
|
{
|
|
@@ -424,6 +414,10 @@ async function askQuestionsForDeviceType(
|
|
|
424
414
|
const questions = deviceType.options ?? [];
|
|
425
415
|
let extraOpts: { override: Partial<Answers> } | undefined;
|
|
426
416
|
|
|
417
|
+
if (configJson != null) {
|
|
418
|
+
answerSources.push(configJson);
|
|
419
|
+
}
|
|
420
|
+
|
|
427
421
|
if (!options.advanced) {
|
|
428
422
|
const advancedGroup = questions.find(
|
|
429
423
|
(question) => question.name === 'advanced' && question.isGroup,
|
package/src/utils/config.ts
CHANGED
|
@@ -166,6 +166,12 @@ export async function readAndValidateConfigJson(path: string) {
|
|
|
166
166
|
) {
|
|
167
167
|
throw new ExpectedError('Missing or invalid deviceType in config.json');
|
|
168
168
|
}
|
|
169
|
+
const secureboot = configJson.installer?.secureboot;
|
|
170
|
+
if (secureboot != null && typeof secureboot !== 'boolean') {
|
|
171
|
+
throw new ExpectedError(
|
|
172
|
+
`Invalid installer.secureboot in config.json: value must be a boolean, found ${typeof secureboot}: '${secureboot}'`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
169
175
|
return configJson;
|
|
170
176
|
}
|
|
171
177
|
|