balena-cli 23.2.8-build-renovate-aws-actions-configure-aws-credentials-5-x-a40e009a101a5fa8d70b46212dd432016f00b93c-1 → 23.2.8-build-validate-installer-secureboot-b138ce3c6f2c34d53689a364b809e6dd2ae5b203-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/CHANGELOG.md CHANGED
@@ -6,7 +6,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  ## 23.2.8 - 2025-12-08
8
8
 
9
- * Update aws-actions/configure-aws-credentials action to v5 [balena-renovate[bot]]
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]
10
11
 
11
12
  ## 23.2.7 - 2025-12-08
12
13
 
@@ -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":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.8-build-renovate-aws-actions-configure-aws-credentials-5-x-a40e009a101a5fa8d70b46212dd432016f00b93c-1",
3
+ "version": "23.2.8-build-validate-installer-secureboot-b138ce3c6f2c34d53689a364b809e6dd2ae5b203-2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "balena-cli",
9
- "version": "23.2.8-build-renovate-aws-actions-configure-aws-credentials-5-x-a40e009a101a5fa8d70b46212dd432016f00b93c-1",
9
+ "version": "23.2.8-build-validate-installer-secureboot-b138ce3c6f2c34d53689a364b809e6dd2ae5b203-2",
10
10
  "hasInstallScript": true,
11
11
  "license": "Apache-2.0",
12
12
  "dependencies": {
@@ -979,45 +979,6 @@
979
979
  "index.js"
980
980
  ]
981
981
  },
982
- "device-type:list": {
983
- "aliases": [],
984
- "args": {},
985
- "description": "List the device types supported by balena (like 'raspberrypi3' or 'intel-nuc').\n\nList the device types supported by balena (like 'raspberrypi3' or 'intel-nuc').\n\nBy default, only actively supported device types are listed.\nThe --all option can be used to list all device types, including those that are\nno longer supported by balena.",
986
- "examples": [
987
- "$ balena device-type list",
988
- "$ balena device-type list --all"
989
- ],
990
- "flags": {
991
- "json": {
992
- "description": "Format output as json.",
993
- "helpGroup": "GLOBAL",
994
- "name": "json",
995
- "allowNo": false,
996
- "type": "boolean"
997
- },
998
- "all": {
999
- "description": "include device types no longer supported by balena",
1000
- "name": "all",
1001
- "allowNo": false,
1002
- "type": "boolean"
1003
- }
1004
- },
1005
- "hasDynamicHelp": false,
1006
- "hiddenAliases": [],
1007
- "id": "device-type:list",
1008
- "pluginAlias": "balena-cli",
1009
- "pluginName": "balena-cli",
1010
- "pluginType": "core",
1011
- "strict": true,
1012
- "enableJsonFlag": true,
1013
- "isESM": false,
1014
- "relativePath": [
1015
- "build",
1016
- "commands",
1017
- "device-type",
1018
- "list.js"
1019
- ]
1020
- },
1021
982
  "device:deactivate": {
1022
983
  "aliases": [],
1023
984
  "args": {
@@ -2238,6 +2199,45 @@
2238
2199
  "tunnel.js"
2239
2200
  ]
2240
2201
  },
2202
+ "device-type:list": {
2203
+ "aliases": [],
2204
+ "args": {},
2205
+ "description": "List the device types supported by balena (like 'raspberrypi3' or 'intel-nuc').\n\nList the device types supported by balena (like 'raspberrypi3' or 'intel-nuc').\n\nBy default, only actively supported device types are listed.\nThe --all option can be used to list all device types, including those that are\nno longer supported by balena.",
2206
+ "examples": [
2207
+ "$ balena device-type list",
2208
+ "$ balena device-type list --all"
2209
+ ],
2210
+ "flags": {
2211
+ "json": {
2212
+ "description": "Format output as json.",
2213
+ "helpGroup": "GLOBAL",
2214
+ "name": "json",
2215
+ "allowNo": false,
2216
+ "type": "boolean"
2217
+ },
2218
+ "all": {
2219
+ "description": "include device types no longer supported by balena",
2220
+ "name": "all",
2221
+ "allowNo": false,
2222
+ "type": "boolean"
2223
+ }
2224
+ },
2225
+ "hasDynamicHelp": false,
2226
+ "hiddenAliases": [],
2227
+ "id": "device-type:list",
2228
+ "pluginAlias": "balena-cli",
2229
+ "pluginName": "balena-cli",
2230
+ "pluginType": "core",
2231
+ "strict": true,
2232
+ "enableJsonFlag": true,
2233
+ "isESM": false,
2234
+ "relativePath": [
2235
+ "build",
2236
+ "commands",
2237
+ "device-type",
2238
+ "list.js"
2239
+ ]
2240
+ },
2241
2241
  "env:list": {
2242
2242
  "aliases": [],
2243
2243
  "args": {},
@@ -3258,6 +3258,136 @@
3258
3258
  "list.js"
3259
3259
  ]
3260
3260
  },
3261
+ "preload": {
3262
+ "aliases": [],
3263
+ "args": {
3264
+ "image": {
3265
+ "description": "the image file path",
3266
+ "name": "image",
3267
+ "required": true
3268
+ }
3269
+ },
3270
+ "description": "Preload a release on a disk image (or Edison zip archive).\n\nPreload a release (service images/containers) from a balena fleet, and optionally\na balenaOS splash screen, in a previously downloaded '.img' balenaOS image file\nin the local disk (a zip file is only accepted for the Intel Edison device type).\nAfter preloading, the balenaOS image file can be flashed to a device's SD card.\nWhen the device boots, it will not need to download the release, as it was\npreloaded. This is usually combined with release pinning\n(https://www.balena.io/docs/learn/deploy/release-strategy/release-policy/)\nto avoid the device downloading a newer release straight away, if available.\nCheck also the Preloading and Preregistering section of the balena CLI's advanced\nmasterclass document:\nhttps://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#5-preloading-and-preregistering\n\nFleets may be specified by fleet name or slug. Fleet slugs are\nthe recommended option, as they are unique and unambiguous. Slugs can be\nlisted with the `balena fleet list` command. Note that slugs may change if the\nfleet is renamed. Fleet names are not unique and may result in \"Fleet is\nambiguous\" errors at any time (even if it \"used to work in the past\"), for\nexample if the name clashes with a newly created public fleet, or with fleets\nfrom other balena accounts that you may be invited to join under any role.\nFor this reason, fleet names are especially discouraged in scripts (e.g. CI\nenvironments).\n\nNote that the this command requires Docker to be installed, as further detailed\nin the balena CLI's installation instructions:\nhttps://github.com/balena-io/balena-cli/blob/master/INSTALL.md\nThe `--dockerHost` and `--dockerPort` flags allow a remote Docker engine to\nbe used, however the image file must be accessible to the remote Docker engine\non the same path given on the command line. This is because Docker's bind mount\nfeature is used to \"share\" the image with a container that performs the preload.",
3271
+ "examples": [
3272
+ "$ balena preload balena.img --fleet MyFleet --commit e1f2592fc6ee949e68756d4f4a48e49bff8d72a0",
3273
+ "$ balena preload balena.img --fleet myorg/myfleet --splash-image image.png",
3274
+ "$ balena preload balena.img"
3275
+ ],
3276
+ "flags": {
3277
+ "fleet": {
3278
+ "char": "f",
3279
+ "description": "fleet name or slug (preferred)",
3280
+ "name": "fleet",
3281
+ "hasDynamicHelp": false,
3282
+ "multiple": false,
3283
+ "type": "option"
3284
+ },
3285
+ "commit": {
3286
+ "char": "c",
3287
+ "description": "The commit hash of the release to preload. Use \"current\" to specify the current\nrelease (ignored if no appId is given). The current release is usually also the\nlatest, but can be pinned to a specific release. See:\nhttps://www.balena.io/docs/learn/deploy/release-strategy/release-policy/\nhttps://www.balena.io/docs/learn/more/masterclasses/fleet-management/#63-pin-using-the-api\nhttps://github.com/balena-io-examples/staged-releases",
3288
+ "name": "commit",
3289
+ "hasDynamicHelp": false,
3290
+ "multiple": false,
3291
+ "type": "option"
3292
+ },
3293
+ "splash-image": {
3294
+ "char": "s",
3295
+ "description": "path to a png image to replace the splash screen",
3296
+ "name": "splash-image",
3297
+ "hasDynamicHelp": false,
3298
+ "multiple": false,
3299
+ "type": "option"
3300
+ },
3301
+ "dont-check-arch": {
3302
+ "description": "disable architecture compatibility check between image and fleet",
3303
+ "name": "dont-check-arch",
3304
+ "allowNo": false,
3305
+ "type": "boolean"
3306
+ },
3307
+ "pin-device-to-release": {
3308
+ "char": "p",
3309
+ "description": "pin the preloaded device to the preloaded release on provision",
3310
+ "name": "pin-device-to-release",
3311
+ "allowNo": true,
3312
+ "type": "boolean"
3313
+ },
3314
+ "additional-space": {
3315
+ "description": "expand the image by this amount of bytes instead of automatically estimating the required amount",
3316
+ "name": "additional-space",
3317
+ "hasDynamicHelp": false,
3318
+ "multiple": false,
3319
+ "type": "option"
3320
+ },
3321
+ "add-certificate": {
3322
+ "description": "Add the given certificate (in PEM format) to /etc/ssl/certs in the preloading container.\nThe file name must end with '.crt' and must not be already contained in the preloader's\n/etc/ssl/certs folder.\nCan be repeated to add multiple certificates.",
3323
+ "name": "add-certificate",
3324
+ "hasDynamicHelp": false,
3325
+ "multiple": true,
3326
+ "type": "option"
3327
+ },
3328
+ "docker": {
3329
+ "char": "P",
3330
+ "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
3331
+ "name": "docker",
3332
+ "hasDynamicHelp": false,
3333
+ "multiple": false,
3334
+ "type": "option"
3335
+ },
3336
+ "dockerHost": {
3337
+ "char": "h",
3338
+ "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
3339
+ "name": "dockerHost",
3340
+ "hasDynamicHelp": false,
3341
+ "multiple": false,
3342
+ "type": "option"
3343
+ },
3344
+ "dockerPort": {
3345
+ "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
3346
+ "name": "dockerPort",
3347
+ "hasDynamicHelp": false,
3348
+ "multiple": false,
3349
+ "type": "option"
3350
+ },
3351
+ "ca": {
3352
+ "description": "Docker host TLS certificate authority file",
3353
+ "name": "ca",
3354
+ "hasDynamicHelp": false,
3355
+ "multiple": false,
3356
+ "type": "option"
3357
+ },
3358
+ "cert": {
3359
+ "description": "Docker host TLS certificate file",
3360
+ "name": "cert",
3361
+ "hasDynamicHelp": false,
3362
+ "multiple": false,
3363
+ "type": "option"
3364
+ },
3365
+ "key": {
3366
+ "description": "Docker host TLS key file",
3367
+ "name": "key",
3368
+ "hasDynamicHelp": false,
3369
+ "multiple": false,
3370
+ "type": "option"
3371
+ }
3372
+ },
3373
+ "hasDynamicHelp": false,
3374
+ "hiddenAliases": [],
3375
+ "id": "preload",
3376
+ "pluginAlias": "balena-cli",
3377
+ "pluginName": "balena-cli",
3378
+ "pluginType": "core",
3379
+ "strict": true,
3380
+ "enableJsonFlag": false,
3381
+ "authenticated": true,
3382
+ "primary": true,
3383
+ "isESM": false,
3384
+ "relativePath": [
3385
+ "build",
3386
+ "commands",
3387
+ "preload",
3388
+ "index.js"
3389
+ ]
3390
+ },
3261
3391
  "os:configure": {
3262
3392
  "aliases": [],
3263
3393
  "args": {
@@ -3597,136 +3727,6 @@
3597
3727
  "versions.js"
3598
3728
  ]
3599
3729
  },
3600
- "preload": {
3601
- "aliases": [],
3602
- "args": {
3603
- "image": {
3604
- "description": "the image file path",
3605
- "name": "image",
3606
- "required": true
3607
- }
3608
- },
3609
- "description": "Preload a release on a disk image (or Edison zip archive).\n\nPreload a release (service images/containers) from a balena fleet, and optionally\na balenaOS splash screen, in a previously downloaded '.img' balenaOS image file\nin the local disk (a zip file is only accepted for the Intel Edison device type).\nAfter preloading, the balenaOS image file can be flashed to a device's SD card.\nWhen the device boots, it will not need to download the release, as it was\npreloaded. This is usually combined with release pinning\n(https://www.balena.io/docs/learn/deploy/release-strategy/release-policy/)\nto avoid the device downloading a newer release straight away, if available.\nCheck also the Preloading and Preregistering section of the balena CLI's advanced\nmasterclass document:\nhttps://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#5-preloading-and-preregistering\n\nFleets may be specified by fleet name or slug. Fleet slugs are\nthe recommended option, as they are unique and unambiguous. Slugs can be\nlisted with the `balena fleet list` command. Note that slugs may change if the\nfleet is renamed. Fleet names are not unique and may result in \"Fleet is\nambiguous\" errors at any time (even if it \"used to work in the past\"), for\nexample if the name clashes with a newly created public fleet, or with fleets\nfrom other balena accounts that you may be invited to join under any role.\nFor this reason, fleet names are especially discouraged in scripts (e.g. CI\nenvironments).\n\nNote that the this command requires Docker to be installed, as further detailed\nin the balena CLI's installation instructions:\nhttps://github.com/balena-io/balena-cli/blob/master/INSTALL.md\nThe `--dockerHost` and `--dockerPort` flags allow a remote Docker engine to\nbe used, however the image file must be accessible to the remote Docker engine\non the same path given on the command line. This is because Docker's bind mount\nfeature is used to \"share\" the image with a container that performs the preload.",
3610
- "examples": [
3611
- "$ balena preload balena.img --fleet MyFleet --commit e1f2592fc6ee949e68756d4f4a48e49bff8d72a0",
3612
- "$ balena preload balena.img --fleet myorg/myfleet --splash-image image.png",
3613
- "$ balena preload balena.img"
3614
- ],
3615
- "flags": {
3616
- "fleet": {
3617
- "char": "f",
3618
- "description": "fleet name or slug (preferred)",
3619
- "name": "fleet",
3620
- "hasDynamicHelp": false,
3621
- "multiple": false,
3622
- "type": "option"
3623
- },
3624
- "commit": {
3625
- "char": "c",
3626
- "description": "The commit hash of the release to preload. Use \"current\" to specify the current\nrelease (ignored if no appId is given). The current release is usually also the\nlatest, but can be pinned to a specific release. See:\nhttps://www.balena.io/docs/learn/deploy/release-strategy/release-policy/\nhttps://www.balena.io/docs/learn/more/masterclasses/fleet-management/#63-pin-using-the-api\nhttps://github.com/balena-io-examples/staged-releases",
3627
- "name": "commit",
3628
- "hasDynamicHelp": false,
3629
- "multiple": false,
3630
- "type": "option"
3631
- },
3632
- "splash-image": {
3633
- "char": "s",
3634
- "description": "path to a png image to replace the splash screen",
3635
- "name": "splash-image",
3636
- "hasDynamicHelp": false,
3637
- "multiple": false,
3638
- "type": "option"
3639
- },
3640
- "dont-check-arch": {
3641
- "description": "disable architecture compatibility check between image and fleet",
3642
- "name": "dont-check-arch",
3643
- "allowNo": false,
3644
- "type": "boolean"
3645
- },
3646
- "pin-device-to-release": {
3647
- "char": "p",
3648
- "description": "pin the preloaded device to the preloaded release on provision",
3649
- "name": "pin-device-to-release",
3650
- "allowNo": true,
3651
- "type": "boolean"
3652
- },
3653
- "additional-space": {
3654
- "description": "expand the image by this amount of bytes instead of automatically estimating the required amount",
3655
- "name": "additional-space",
3656
- "hasDynamicHelp": false,
3657
- "multiple": false,
3658
- "type": "option"
3659
- },
3660
- "add-certificate": {
3661
- "description": "Add the given certificate (in PEM format) to /etc/ssl/certs in the preloading container.\nThe file name must end with '.crt' and must not be already contained in the preloader's\n/etc/ssl/certs folder.\nCan be repeated to add multiple certificates.",
3662
- "name": "add-certificate",
3663
- "hasDynamicHelp": false,
3664
- "multiple": true,
3665
- "type": "option"
3666
- },
3667
- "docker": {
3668
- "char": "P",
3669
- "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
3670
- "name": "docker",
3671
- "hasDynamicHelp": false,
3672
- "multiple": false,
3673
- "type": "option"
3674
- },
3675
- "dockerHost": {
3676
- "char": "h",
3677
- "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
3678
- "name": "dockerHost",
3679
- "hasDynamicHelp": false,
3680
- "multiple": false,
3681
- "type": "option"
3682
- },
3683
- "dockerPort": {
3684
- "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
3685
- "name": "dockerPort",
3686
- "hasDynamicHelp": false,
3687
- "multiple": false,
3688
- "type": "option"
3689
- },
3690
- "ca": {
3691
- "description": "Docker host TLS certificate authority file",
3692
- "name": "ca",
3693
- "hasDynamicHelp": false,
3694
- "multiple": false,
3695
- "type": "option"
3696
- },
3697
- "cert": {
3698
- "description": "Docker host TLS certificate file",
3699
- "name": "cert",
3700
- "hasDynamicHelp": false,
3701
- "multiple": false,
3702
- "type": "option"
3703
- },
3704
- "key": {
3705
- "description": "Docker host TLS key file",
3706
- "name": "key",
3707
- "hasDynamicHelp": false,
3708
- "multiple": false,
3709
- "type": "option"
3710
- }
3711
- },
3712
- "hasDynamicHelp": false,
3713
- "hiddenAliases": [],
3714
- "id": "preload",
3715
- "pluginAlias": "balena-cli",
3716
- "pluginName": "balena-cli",
3717
- "pluginType": "core",
3718
- "strict": true,
3719
- "enableJsonFlag": false,
3720
- "authenticated": true,
3721
- "primary": true,
3722
- "isESM": false,
3723
- "relativePath": [
3724
- "build",
3725
- "commands",
3726
- "preload",
3727
- "index.js"
3728
- ]
3729
- },
3730
3730
  "push": {
3731
3731
  "aliases": [],
3732
3732
  "args": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.8-build-renovate-aws-actions-configure-aws-credentials-5-x-a40e009a101a5fa8d70b46212dd432016f00b93c-1",
3
+ "version": "23.2.8-build-validate-installer-secureboot-b138ce3c6f2c34d53689a364b809e6dd2ae5b203-2",
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-08T18:01:16.738Z"
265
+ "publishedAt": "2025-12-08T18:19:12.318Z"
266
266
  }
267
267
  }
@@ -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