balena-cli 23.2.24 → 23.2.25

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
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 23.2.25 - 2026-01-15
8
+
9
+ * Update actions/download-artifact action to v7 [balena-renovate[bot]]
10
+
7
11
  ## 23.2.24 - 2026-01-15
8
12
 
9
13
  * Update actions/upload-artifact action to v6 [balena-renovate[bot]]
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.24",
3
+ "version": "23.2.25",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "balena-cli",
9
- "version": "23.2.24",
9
+ "version": "23.2.25",
10
10
  "hasInstallScript": true,
11
11
  "license": "Apache-2.0",
12
12
  "dependencies": {
@@ -3878,9 +3878,9 @@
3878
3878
  }
3879
3879
  },
3880
3880
  "node_modules/@inquirer/core/node_modules/@types/node": {
3881
- "version": "22.19.6",
3882
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.6.tgz",
3883
- "integrity": "sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==",
3881
+ "version": "22.19.7",
3882
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz",
3883
+ "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==",
3884
3884
  "license": "MIT",
3885
3885
  "dependencies": {
3886
3886
  "undici-types": "~6.21.0"
@@ -7780,9 +7780,9 @@
7780
7780
  }
7781
7781
  },
7782
7782
  "node_modules/@types/node": {
7783
- "version": "24.10.8",
7784
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.8.tgz",
7785
- "integrity": "sha512-r0bBaXu5Swb05doFYO2kTWHMovJnNVbCsII0fhesM8bNRlLhXIuckley4a2DaD+vOdmm5G+zGkQZAPZsF80+YQ==",
7783
+ "version": "24.10.9",
7784
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz",
7785
+ "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==",
7786
7786
  "license": "MIT",
7787
7787
  "peer": true,
7788
7788
  "dependencies": {
@@ -210,6 +210,208 @@
210
210
  "create.js"
211
211
  ]
212
212
  },
213
+ "build": {
214
+ "aliases": [],
215
+ "args": {
216
+ "source": {
217
+ "description": "path of project source directory",
218
+ "name": "source"
219
+ }
220
+ },
221
+ "description": "Build a project locally.\n\nUse this command to build an image or a complete multicontainer project with\nthe provided docker daemon in your development machine or balena device.\n(See also the `balena push` command for the option of building images in the\nbalenaCloud build servers.)\n\nYou must specify either a fleet, or the device type and architecture.\n\nThis command will look into the given source directory (or the current working\ndirectory if one isn't specified) for a docker-compose.yml file, and if found,\neach service defined in the compose file will be built. If a compose file isn't\nfound, it will look for a Dockerfile[.template] file (or alternative Dockerfile\nspecified with the `--dockerfile` option), and if no dockerfile is found, it\nwill try to generate one.\n\nREGISTRY SECRETS \nThe --registry-secrets option specifies a JSON or YAML file containing private\nDocker registry usernames and passwords to be used when pulling base images.\nSample registry-secrets YAML file:\n```\n\t'my-registry-server.com:25000':\n\t\tusername: ann\n\t\tpassword: hunter2\n\t'': # Use the empty string to refer to the Docker Hub\n\t\tusername: mike\n\t\tpassword: cze14\n\t'eu.gcr.io': # Google Container Registry\n\t\tusername: '_json_key'\n\t\tpassword: '{escaped contents of the GCR keyfile.json file}'\n```\nFor a sample project using registry secrets with the Google Container Registry,\ncheck: https://github.com/balena-io-examples/sample-gcr-registry-secrets\n\nIf the --registry-secrets option is not specified, and a secrets.yml or\nsecrets.json file exists in the balena directory (usually $HOME/.balena),\nthis file will be used instead.\n\nDOCKERIGNORE AND GITIGNORE FILES \nBy default, the balena CLI will use a single \".dockerignore\" file (if any) at\nthe project root (--source directory) in order to decide which source files to\nexclude from the \"build context\" (tar stream) sent to balenaCloud, Docker\ndaemon or balenaEngine. In a microservices (multicontainer) fleet, the\nsource directory is the directory that contains the \"docker-compose.yml\" file.\n\nThe --multi-dockerignore (-m) option may be used with microservices\n(multicontainer) fleets that define a docker-compose.yml file. When this\noption is used, each service subdirectory (defined by the `build` or\n`build.context` service properties in the docker-compose.yml file) is\nfiltered separately according to a .dockerignore file defined in the service\nsubdirectory. If no .dockerignore file exists in a service subdirectory, then\nonly the default .dockerignore patterns (see below) apply for that service\nsubdirectory.\n\nWhen the --multi-dockerignore (-m) option is used, the .dockerignore file (if\nany) defined at the overall project root will be used to filter files and\nsubdirectories other than service subdirectories. It will not have any effect\non service subdirectories, whether or not a service subdirectory defines its\nown .dockerignore file. Multiple .dockerignore files are not merged or added\ntogether, and cannot override or extend other files. This behavior maximizes\ncompatibility with the standard docker-compose tool, while still allowing a\nroot .dockerignore file (at the overall project root) to filter files and\nfolders that are outside service subdirectories.\n\nbalena CLI v11 also took .gitignore files into account. This behavior was\ndeprecated in CLI v12 and removed in CLI v13. Please use .dockerignore files\ninstead.\n\nDefault .dockerignore patterns \nA few default/hardcoded dockerignore patterns are \"merged\" (in memory) with the\npatterns found in the applicable .dockerignore files, in the following order:\n```\n **/.git\n < user's patterns from the applicable '.dockerignore' file, if any >\n !**/.balena\n !**/.resin\n !**/Dockerfile\n !**/Dockerfile.*\n !**/docker-compose.yml\n```\nThese patterns always apply, whether or not .dockerignore files exist in the\nproject. If necessary, the effect of the `**/.git` pattern may be modified by\nadding exception patterns to the applicable .dockerignore file(s), for example\n`!mysubmodule/.git`. For documentation on pattern format, see:\n- https://docs.docker.com/engine/reference/builder/#dockerignore-file\n- https://www.npmjs.com/package/@balena/dockerignore\n",
222
+ "examples": [
223
+ "$ balena build --fleet myFleet",
224
+ "$ balena build ./source/ --fleet myorg/myfleet",
225
+ "$ balena build --deviceType raspberrypi3 --emulated",
226
+ "$ balena build --deviceType raspberrypi3 --arch armv7hf --emulated",
227
+ "$ balena build --docker /var/run/docker.sock --fleet myFleet # Linux, Mac",
228
+ "$ balena build --docker //./pipe/docker_engine --fleet myFleet # Windows",
229
+ "$ balena build --dockerHost my.docker.host --dockerPort 2376 --ca ca.pem --key key.pem --cert cert.pem -f myFleet"
230
+ ],
231
+ "flags": {
232
+ "arch": {
233
+ "char": "A",
234
+ "description": "the architecture to build for",
235
+ "name": "arch",
236
+ "hasDynamicHelp": false,
237
+ "multiple": false,
238
+ "type": "option"
239
+ },
240
+ "deviceType": {
241
+ "char": "d",
242
+ "description": "the type of device this build is for",
243
+ "name": "deviceType",
244
+ "hasDynamicHelp": false,
245
+ "multiple": false,
246
+ "type": "option"
247
+ },
248
+ "fleet": {
249
+ "char": "f",
250
+ "description": "fleet name or slug (preferred)",
251
+ "name": "fleet",
252
+ "hasDynamicHelp": false,
253
+ "multiple": false,
254
+ "type": "option"
255
+ },
256
+ "emulated": {
257
+ "char": "e",
258
+ "description": "Use QEMU for ARM architecture emulation during the image build",
259
+ "name": "emulated",
260
+ "allowNo": false,
261
+ "type": "boolean"
262
+ },
263
+ "dockerfile": {
264
+ "description": "Alternative Dockerfile name/path, relative to the source folder",
265
+ "name": "dockerfile",
266
+ "hasDynamicHelp": false,
267
+ "multiple": false,
268
+ "type": "option"
269
+ },
270
+ "nologs": {
271
+ "description": "Hide the image build log output (produce less verbose output)",
272
+ "name": "nologs",
273
+ "allowNo": false,
274
+ "type": "boolean"
275
+ },
276
+ "multi-dockerignore": {
277
+ "char": "m",
278
+ "description": "Have each service use its own .dockerignore file. See \"balena help build\".",
279
+ "name": "multi-dockerignore",
280
+ "allowNo": false,
281
+ "type": "boolean"
282
+ },
283
+ "noparent-check": {
284
+ "description": "Disable project validation check of 'docker-compose.yml' file in parent folder",
285
+ "name": "noparent-check",
286
+ "allowNo": false,
287
+ "type": "boolean"
288
+ },
289
+ "registry-secrets": {
290
+ "char": "R",
291
+ "description": "Path to a YAML or JSON file with passwords for a private Docker registry",
292
+ "name": "registry-secrets",
293
+ "hasDynamicHelp": false,
294
+ "multiple": false,
295
+ "type": "option"
296
+ },
297
+ "noconvert-eol": {
298
+ "description": "Don't convert line endings from CRLF (Windows format) to LF (Unix format).",
299
+ "name": "noconvert-eol",
300
+ "allowNo": false,
301
+ "type": "boolean"
302
+ },
303
+ "projectName": {
304
+ "char": "n",
305
+ "description": "Name prefix for locally built images. This is the 'projectName' portion\nin 'projectName_serviceName:tag'. The default is the directory name.",
306
+ "name": "projectName",
307
+ "hasDynamicHelp": false,
308
+ "multiple": false,
309
+ "type": "option"
310
+ },
311
+ "tag": {
312
+ "char": "t",
313
+ "description": "Tag locally built Docker images. This is the 'tag' portion\nin 'projectName_serviceName:tag'. The default is 'latest'.",
314
+ "name": "tag",
315
+ "hasDynamicHelp": false,
316
+ "multiple": false,
317
+ "type": "option"
318
+ },
319
+ "buildArg": {
320
+ "char": "B",
321
+ "description": "[Deprecated] Set a build-time variable (eg. \"-B 'ARG=value'\"). Can be specified multiple times.",
322
+ "name": "buildArg",
323
+ "hasDynamicHelp": false,
324
+ "multiple": true,
325
+ "type": "option"
326
+ },
327
+ "cache-from": {
328
+ "description": "Comma-separated list (no spaces) of image names for build cache resolution. Implements the same feature as the \"docker build --cache-from\" option.",
329
+ "name": "cache-from",
330
+ "hasDynamicHelp": false,
331
+ "multiple": false,
332
+ "type": "option"
333
+ },
334
+ "nocache": {
335
+ "description": "Don't use docker layer caching when building",
336
+ "name": "nocache",
337
+ "allowNo": false,
338
+ "type": "boolean"
339
+ },
340
+ "pull": {
341
+ "description": "Pull the base images again even if they exist locally",
342
+ "name": "pull",
343
+ "allowNo": false,
344
+ "type": "boolean"
345
+ },
346
+ "squash": {
347
+ "description": "Squash newly built layers into a single new layer",
348
+ "name": "squash",
349
+ "allowNo": false,
350
+ "type": "boolean"
351
+ },
352
+ "docker": {
353
+ "char": "P",
354
+ "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
355
+ "name": "docker",
356
+ "hasDynamicHelp": false,
357
+ "multiple": false,
358
+ "type": "option"
359
+ },
360
+ "dockerHost": {
361
+ "char": "h",
362
+ "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
363
+ "name": "dockerHost",
364
+ "hasDynamicHelp": false,
365
+ "multiple": false,
366
+ "type": "option"
367
+ },
368
+ "dockerPort": {
369
+ "char": "p",
370
+ "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
371
+ "name": "dockerPort",
372
+ "hasDynamicHelp": false,
373
+ "multiple": false,
374
+ "type": "option"
375
+ },
376
+ "ca": {
377
+ "description": "Docker host TLS certificate authority file",
378
+ "name": "ca",
379
+ "hasDynamicHelp": false,
380
+ "multiple": false,
381
+ "type": "option"
382
+ },
383
+ "cert": {
384
+ "description": "Docker host TLS certificate file",
385
+ "name": "cert",
386
+ "hasDynamicHelp": false,
387
+ "multiple": false,
388
+ "type": "option"
389
+ },
390
+ "key": {
391
+ "description": "Docker host TLS key file",
392
+ "name": "key",
393
+ "hasDynamicHelp": false,
394
+ "multiple": false,
395
+ "type": "option"
396
+ }
397
+ },
398
+ "hasDynamicHelp": false,
399
+ "hiddenAliases": [],
400
+ "id": "build",
401
+ "pluginAlias": "balena-cli",
402
+ "pluginName": "balena-cli",
403
+ "pluginType": "core",
404
+ "strict": true,
405
+ "enableJsonFlag": false,
406
+ "primary": true,
407
+ "isESM": false,
408
+ "relativePath": [
409
+ "build",
410
+ "commands",
411
+ "build",
412
+ "index.js"
413
+ ]
414
+ },
213
415
  "config:generate": {
214
416
  "aliases": [],
215
417
  "args": {},
@@ -528,212 +730,9 @@
528
730
  ],
529
731
  "flags": {
530
732
  "drive": {
531
- "char": "d",
532
- "description": "path to OS image file (e.g. balena.img) or block device (e.g. /dev/disk2)",
533
- "name": "drive",
534
- "hasDynamicHelp": false,
535
- "multiple": false,
536
- "type": "option"
537
- }
538
- },
539
- "hasDynamicHelp": false,
540
- "hiddenAliases": [],
541
- "id": "config:write",
542
- "pluginAlias": "balena-cli",
543
- "pluginName": "balena-cli",
544
- "pluginType": "core",
545
- "strict": true,
546
- "enableJsonFlag": false,
547
- "root": true,
548
- "offlineCompatible": true,
549
- "isESM": false,
550
- "relativePath": [
551
- "build",
552
- "commands",
553
- "config",
554
- "write.js"
555
- ]
556
- },
557
- "build": {
558
- "aliases": [],
559
- "args": {
560
- "source": {
561
- "description": "path of project source directory",
562
- "name": "source"
563
- }
564
- },
565
- "description": "Build a project locally.\n\nUse this command to build an image or a complete multicontainer project with\nthe provided docker daemon in your development machine or balena device.\n(See also the `balena push` command for the option of building images in the\nbalenaCloud build servers.)\n\nYou must specify either a fleet, or the device type and architecture.\n\nThis command will look into the given source directory (or the current working\ndirectory if one isn't specified) for a docker-compose.yml file, and if found,\neach service defined in the compose file will be built. If a compose file isn't\nfound, it will look for a Dockerfile[.template] file (or alternative Dockerfile\nspecified with the `--dockerfile` option), and if no dockerfile is found, it\nwill try to generate one.\n\nREGISTRY SECRETS \nThe --registry-secrets option specifies a JSON or YAML file containing private\nDocker registry usernames and passwords to be used when pulling base images.\nSample registry-secrets YAML file:\n```\n\t'my-registry-server.com:25000':\n\t\tusername: ann\n\t\tpassword: hunter2\n\t'': # Use the empty string to refer to the Docker Hub\n\t\tusername: mike\n\t\tpassword: cze14\n\t'eu.gcr.io': # Google Container Registry\n\t\tusername: '_json_key'\n\t\tpassword: '{escaped contents of the GCR keyfile.json file}'\n```\nFor a sample project using registry secrets with the Google Container Registry,\ncheck: https://github.com/balena-io-examples/sample-gcr-registry-secrets\n\nIf the --registry-secrets option is not specified, and a secrets.yml or\nsecrets.json file exists in the balena directory (usually $HOME/.balena),\nthis file will be used instead.\n\nDOCKERIGNORE AND GITIGNORE FILES \nBy default, the balena CLI will use a single \".dockerignore\" file (if any) at\nthe project root (--source directory) in order to decide which source files to\nexclude from the \"build context\" (tar stream) sent to balenaCloud, Docker\ndaemon or balenaEngine. In a microservices (multicontainer) fleet, the\nsource directory is the directory that contains the \"docker-compose.yml\" file.\n\nThe --multi-dockerignore (-m) option may be used with microservices\n(multicontainer) fleets that define a docker-compose.yml file. When this\noption is used, each service subdirectory (defined by the `build` or\n`build.context` service properties in the docker-compose.yml file) is\nfiltered separately according to a .dockerignore file defined in the service\nsubdirectory. If no .dockerignore file exists in a service subdirectory, then\nonly the default .dockerignore patterns (see below) apply for that service\nsubdirectory.\n\nWhen the --multi-dockerignore (-m) option is used, the .dockerignore file (if\nany) defined at the overall project root will be used to filter files and\nsubdirectories other than service subdirectories. It will not have any effect\non service subdirectories, whether or not a service subdirectory defines its\nown .dockerignore file. Multiple .dockerignore files are not merged or added\ntogether, and cannot override or extend other files. This behavior maximizes\ncompatibility with the standard docker-compose tool, while still allowing a\nroot .dockerignore file (at the overall project root) to filter files and\nfolders that are outside service subdirectories.\n\nbalena CLI v11 also took .gitignore files into account. This behavior was\ndeprecated in CLI v12 and removed in CLI v13. Please use .dockerignore files\ninstead.\n\nDefault .dockerignore patterns \nA few default/hardcoded dockerignore patterns are \"merged\" (in memory) with the\npatterns found in the applicable .dockerignore files, in the following order:\n```\n **/.git\n < user's patterns from the applicable '.dockerignore' file, if any >\n !**/.balena\n !**/.resin\n !**/Dockerfile\n !**/Dockerfile.*\n !**/docker-compose.yml\n```\nThese patterns always apply, whether or not .dockerignore files exist in the\nproject. If necessary, the effect of the `**/.git` pattern may be modified by\nadding exception patterns to the applicable .dockerignore file(s), for example\n`!mysubmodule/.git`. For documentation on pattern format, see:\n- https://docs.docker.com/engine/reference/builder/#dockerignore-file\n- https://www.npmjs.com/package/@balena/dockerignore\n",
566
- "examples": [
567
- "$ balena build --fleet myFleet",
568
- "$ balena build ./source/ --fleet myorg/myfleet",
569
- "$ balena build --deviceType raspberrypi3 --emulated",
570
- "$ balena build --deviceType raspberrypi3 --arch armv7hf --emulated",
571
- "$ balena build --docker /var/run/docker.sock --fleet myFleet # Linux, Mac",
572
- "$ balena build --docker //./pipe/docker_engine --fleet myFleet # Windows",
573
- "$ balena build --dockerHost my.docker.host --dockerPort 2376 --ca ca.pem --key key.pem --cert cert.pem -f myFleet"
574
- ],
575
- "flags": {
576
- "arch": {
577
- "char": "A",
578
- "description": "the architecture to build for",
579
- "name": "arch",
580
- "hasDynamicHelp": false,
581
- "multiple": false,
582
- "type": "option"
583
- },
584
- "deviceType": {
585
- "char": "d",
586
- "description": "the type of device this build is for",
587
- "name": "deviceType",
588
- "hasDynamicHelp": false,
589
- "multiple": false,
590
- "type": "option"
591
- },
592
- "fleet": {
593
- "char": "f",
594
- "description": "fleet name or slug (preferred)",
595
- "name": "fleet",
596
- "hasDynamicHelp": false,
597
- "multiple": false,
598
- "type": "option"
599
- },
600
- "emulated": {
601
- "char": "e",
602
- "description": "Use QEMU for ARM architecture emulation during the image build",
603
- "name": "emulated",
604
- "allowNo": false,
605
- "type": "boolean"
606
- },
607
- "dockerfile": {
608
- "description": "Alternative Dockerfile name/path, relative to the source folder",
609
- "name": "dockerfile",
610
- "hasDynamicHelp": false,
611
- "multiple": false,
612
- "type": "option"
613
- },
614
- "nologs": {
615
- "description": "Hide the image build log output (produce less verbose output)",
616
- "name": "nologs",
617
- "allowNo": false,
618
- "type": "boolean"
619
- },
620
- "multi-dockerignore": {
621
- "char": "m",
622
- "description": "Have each service use its own .dockerignore file. See \"balena help build\".",
623
- "name": "multi-dockerignore",
624
- "allowNo": false,
625
- "type": "boolean"
626
- },
627
- "noparent-check": {
628
- "description": "Disable project validation check of 'docker-compose.yml' file in parent folder",
629
- "name": "noparent-check",
630
- "allowNo": false,
631
- "type": "boolean"
632
- },
633
- "registry-secrets": {
634
- "char": "R",
635
- "description": "Path to a YAML or JSON file with passwords for a private Docker registry",
636
- "name": "registry-secrets",
637
- "hasDynamicHelp": false,
638
- "multiple": false,
639
- "type": "option"
640
- },
641
- "noconvert-eol": {
642
- "description": "Don't convert line endings from CRLF (Windows format) to LF (Unix format).",
643
- "name": "noconvert-eol",
644
- "allowNo": false,
645
- "type": "boolean"
646
- },
647
- "projectName": {
648
- "char": "n",
649
- "description": "Name prefix for locally built images. This is the 'projectName' portion\nin 'projectName_serviceName:tag'. The default is the directory name.",
650
- "name": "projectName",
651
- "hasDynamicHelp": false,
652
- "multiple": false,
653
- "type": "option"
654
- },
655
- "tag": {
656
- "char": "t",
657
- "description": "Tag locally built Docker images. This is the 'tag' portion\nin 'projectName_serviceName:tag'. The default is 'latest'.",
658
- "name": "tag",
659
- "hasDynamicHelp": false,
660
- "multiple": false,
661
- "type": "option"
662
- },
663
- "buildArg": {
664
- "char": "B",
665
- "description": "[Deprecated] Set a build-time variable (eg. \"-B 'ARG=value'\"). Can be specified multiple times.",
666
- "name": "buildArg",
667
- "hasDynamicHelp": false,
668
- "multiple": true,
669
- "type": "option"
670
- },
671
- "cache-from": {
672
- "description": "Comma-separated list (no spaces) of image names for build cache resolution. Implements the same feature as the \"docker build --cache-from\" option.",
673
- "name": "cache-from",
674
- "hasDynamicHelp": false,
675
- "multiple": false,
676
- "type": "option"
677
- },
678
- "nocache": {
679
- "description": "Don't use docker layer caching when building",
680
- "name": "nocache",
681
- "allowNo": false,
682
- "type": "boolean"
683
- },
684
- "pull": {
685
- "description": "Pull the base images again even if they exist locally",
686
- "name": "pull",
687
- "allowNo": false,
688
- "type": "boolean"
689
- },
690
- "squash": {
691
- "description": "Squash newly built layers into a single new layer",
692
- "name": "squash",
693
- "allowNo": false,
694
- "type": "boolean"
695
- },
696
- "docker": {
697
- "char": "P",
698
- "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
699
- "name": "docker",
700
- "hasDynamicHelp": false,
701
- "multiple": false,
702
- "type": "option"
703
- },
704
- "dockerHost": {
705
- "char": "h",
706
- "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
707
- "name": "dockerHost",
708
- "hasDynamicHelp": false,
709
- "multiple": false,
710
- "type": "option"
711
- },
712
- "dockerPort": {
713
- "char": "p",
714
- "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
715
- "name": "dockerPort",
716
- "hasDynamicHelp": false,
717
- "multiple": false,
718
- "type": "option"
719
- },
720
- "ca": {
721
- "description": "Docker host TLS certificate authority file",
722
- "name": "ca",
723
- "hasDynamicHelp": false,
724
- "multiple": false,
725
- "type": "option"
726
- },
727
- "cert": {
728
- "description": "Docker host TLS certificate file",
729
- "name": "cert",
730
- "hasDynamicHelp": false,
731
- "multiple": false,
732
- "type": "option"
733
- },
734
- "key": {
735
- "description": "Docker host TLS key file",
736
- "name": "key",
733
+ "char": "d",
734
+ "description": "path to OS image file (e.g. balena.img) or block device (e.g. /dev/disk2)",
735
+ "name": "drive",
737
736
  "hasDynamicHelp": false,
738
737
  "multiple": false,
739
738
  "type": "option"
@@ -741,19 +740,20 @@
741
740
  },
742
741
  "hasDynamicHelp": false,
743
742
  "hiddenAliases": [],
744
- "id": "build",
743
+ "id": "config:write",
745
744
  "pluginAlias": "balena-cli",
746
745
  "pluginName": "balena-cli",
747
746
  "pluginType": "core",
748
747
  "strict": true,
749
748
  "enableJsonFlag": false,
750
- "primary": true,
749
+ "root": true,
750
+ "offlineCompatible": true,
751
751
  "isESM": false,
752
752
  "relativePath": [
753
753
  "build",
754
754
  "commands",
755
- "build",
756
- "index.js"
755
+ "config",
756
+ "write.js"
757
757
  ]
758
758
  },
759
759
  "deploy": {
@@ -979,6 +979,45 @@
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
+ },
982
1021
  "device:deactivate": {
983
1022
  "aliases": [],
984
1023
  "args": {
@@ -2199,45 +2238,6 @@
2199
2238
  "tunnel.js"
2200
2239
  ]
2201
2240
  },
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": {},
@@ -4074,6 +4074,30 @@
4074
4074
  "validate.js"
4075
4075
  ]
4076
4076
  },
4077
+ "settings": {
4078
+ "aliases": [],
4079
+ "args": {},
4080
+ "description": "Print current settings.\n\nUse this command to display the current balena CLI settings.",
4081
+ "examples": [
4082
+ "$ balena settings"
4083
+ ],
4084
+ "flags": {},
4085
+ "hasDynamicHelp": false,
4086
+ "hiddenAliases": [],
4087
+ "id": "settings",
4088
+ "pluginAlias": "balena-cli",
4089
+ "pluginName": "balena-cli",
4090
+ "pluginType": "core",
4091
+ "strict": true,
4092
+ "enableJsonFlag": false,
4093
+ "isESM": false,
4094
+ "relativePath": [
4095
+ "build",
4096
+ "commands",
4097
+ "settings",
4098
+ "index.js"
4099
+ ]
4100
+ },
4077
4101
  "release-asset:delete": {
4078
4102
  "aliases": [],
4079
4103
  "args": {
@@ -4289,27 +4313,64 @@
4289
4313
  "upload.js"
4290
4314
  ]
4291
4315
  },
4292
- "settings": {
4316
+ "support": {
4293
4317
  "aliases": [],
4294
- "args": {},
4295
- "description": "Print current settings.\n\nUse this command to display the current balena CLI settings.",
4318
+ "args": {
4319
+ "action": {
4320
+ "description": "enable|disable support access",
4321
+ "name": "action",
4322
+ "options": [
4323
+ "enable",
4324
+ "disable"
4325
+ ]
4326
+ }
4327
+ },
4328
+ "description": "Grant or revoke support access for devices or fleets.\n\nGrant or revoke balena support agent access to devices or fleets\non balenaCloud. (This command does not apply to openBalena.)\nAccess will be automatically revoked once the specified duration has elapsed.\n\nDuration defaults to 24h, but can be specified using --duration flag in days\nor hours, e.g. '12h', '2d'.\n\nBoth --device and --fleet flags accept multiple values, specified as\na comma-separated list (with no spaces).\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).",
4296
4329
  "examples": [
4297
- "$ balena settings"
4330
+ "balena support enable --device ab346f,cd457a --duration 3d",
4331
+ "balena support enable --fleet myFleet --duration 12h",
4332
+ "balena support disable -f myorg/myfleet"
4298
4333
  ],
4299
- "flags": {},
4334
+ "flags": {
4335
+ "device": {
4336
+ "char": "d",
4337
+ "description": "comma-separated list (no spaces) of device UUIDs",
4338
+ "name": "device",
4339
+ "hasDynamicHelp": false,
4340
+ "multiple": false,
4341
+ "type": "option"
4342
+ },
4343
+ "fleet": {
4344
+ "char": "f",
4345
+ "description": "comma-separated list (no spaces) of fleet names or slugs (preferred)",
4346
+ "name": "fleet",
4347
+ "hasDynamicHelp": false,
4348
+ "multiple": false,
4349
+ "type": "option"
4350
+ },
4351
+ "duration": {
4352
+ "char": "t",
4353
+ "description": "length of time to enable support for, in (h)ours or (d)ays, e.g. 12h, 2d",
4354
+ "name": "duration",
4355
+ "hasDynamicHelp": false,
4356
+ "multiple": false,
4357
+ "type": "option"
4358
+ }
4359
+ },
4300
4360
  "hasDynamicHelp": false,
4301
4361
  "hiddenAliases": [],
4302
- "id": "settings",
4362
+ "id": "support",
4303
4363
  "pluginAlias": "balena-cli",
4304
4364
  "pluginName": "balena-cli",
4305
4365
  "pluginType": "core",
4306
4366
  "strict": true,
4307
4367
  "enableJsonFlag": false,
4368
+ "authenticated": true,
4308
4369
  "isESM": false,
4309
4370
  "relativePath": [
4310
4371
  "build",
4311
4372
  "commands",
4312
- "settings",
4373
+ "support",
4313
4374
  "index.js"
4314
4375
  ]
4315
4376
  },
@@ -4448,67 +4509,6 @@
4448
4509
  "rm.js"
4449
4510
  ]
4450
4511
  },
4451
- "support": {
4452
- "aliases": [],
4453
- "args": {
4454
- "action": {
4455
- "description": "enable|disable support access",
4456
- "name": "action",
4457
- "options": [
4458
- "enable",
4459
- "disable"
4460
- ]
4461
- }
4462
- },
4463
- "description": "Grant or revoke support access for devices or fleets.\n\nGrant or revoke balena support agent access to devices or fleets\non balenaCloud. (This command does not apply to openBalena.)\nAccess will be automatically revoked once the specified duration has elapsed.\n\nDuration defaults to 24h, but can be specified using --duration flag in days\nor hours, e.g. '12h', '2d'.\n\nBoth --device and --fleet flags accept multiple values, specified as\na comma-separated list (with no spaces).\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).",
4464
- "examples": [
4465
- "balena support enable --device ab346f,cd457a --duration 3d",
4466
- "balena support enable --fleet myFleet --duration 12h",
4467
- "balena support disable -f myorg/myfleet"
4468
- ],
4469
- "flags": {
4470
- "device": {
4471
- "char": "d",
4472
- "description": "comma-separated list (no spaces) of device UUIDs",
4473
- "name": "device",
4474
- "hasDynamicHelp": false,
4475
- "multiple": false,
4476
- "type": "option"
4477
- },
4478
- "fleet": {
4479
- "char": "f",
4480
- "description": "comma-separated list (no spaces) of fleet names or slugs (preferred)",
4481
- "name": "fleet",
4482
- "hasDynamicHelp": false,
4483
- "multiple": false,
4484
- "type": "option"
4485
- },
4486
- "duration": {
4487
- "char": "t",
4488
- "description": "length of time to enable support for, in (h)ours or (d)ays, e.g. 12h, 2d",
4489
- "name": "duration",
4490
- "hasDynamicHelp": false,
4491
- "multiple": false,
4492
- "type": "option"
4493
- }
4494
- },
4495
- "hasDynamicHelp": false,
4496
- "hiddenAliases": [],
4497
- "id": "support",
4498
- "pluginAlias": "balena-cli",
4499
- "pluginName": "balena-cli",
4500
- "pluginType": "core",
4501
- "strict": true,
4502
- "enableJsonFlag": false,
4503
- "authenticated": true,
4504
- "isESM": false,
4505
- "relativePath": [
4506
- "build",
4507
- "commands",
4508
- "support",
4509
- "index.js"
4510
- ]
4511
- },
4512
4512
  "tag:list": {
4513
4513
  "aliases": [],
4514
4514
  "args": {},
@@ -4729,53 +4729,53 @@
4729
4729
  "set.js"
4730
4730
  ]
4731
4731
  },
4732
- "whoami": {
4732
+ "util:available-drives": {
4733
4733
  "aliases": [],
4734
4734
  "args": {},
4735
- "description": "Display account information for current user.\n\nGet the username and email address of the currently logged in user.",
4736
- "examples": [
4737
- "$ balena whoami"
4738
- ],
4735
+ "description": "List available drives.\n\nList available drives which are usable for writing an OS image to.\nDoes not list system drives.",
4739
4736
  "flags": {},
4740
4737
  "hasDynamicHelp": false,
4741
4738
  "hiddenAliases": [],
4742
- "id": "whoami",
4739
+ "id": "util:available-drives",
4743
4740
  "pluginAlias": "balena-cli",
4744
4741
  "pluginName": "balena-cli",
4745
4742
  "pluginType": "core",
4746
4743
  "strict": true,
4747
4744
  "enableJsonFlag": false,
4748
- "authenticated": true,
4745
+ "offlineCompatible": true,
4749
4746
  "isESM": false,
4750
4747
  "relativePath": [
4751
4748
  "build",
4752
4749
  "commands",
4753
- "whoami",
4754
- "index.js"
4750
+ "util",
4751
+ "available-drives.js"
4755
4752
  ]
4756
4753
  },
4757
- "util:available-drives": {
4754
+ "whoami": {
4758
4755
  "aliases": [],
4759
4756
  "args": {},
4760
- "description": "List available drives.\n\nList available drives which are usable for writing an OS image to.\nDoes not list system drives.",
4757
+ "description": "Display account information for current user.\n\nGet the username and email address of the currently logged in user.",
4758
+ "examples": [
4759
+ "$ balena whoami"
4760
+ ],
4761
4761
  "flags": {},
4762
4762
  "hasDynamicHelp": false,
4763
4763
  "hiddenAliases": [],
4764
- "id": "util:available-drives",
4764
+ "id": "whoami",
4765
4765
  "pluginAlias": "balena-cli",
4766
4766
  "pluginName": "balena-cli",
4767
4767
  "pluginType": "core",
4768
4768
  "strict": true,
4769
4769
  "enableJsonFlag": false,
4770
- "offlineCompatible": true,
4770
+ "authenticated": true,
4771
4771
  "isESM": false,
4772
4772
  "relativePath": [
4773
4773
  "build",
4774
4774
  "commands",
4775
- "util",
4776
- "available-drives.js"
4775
+ "whoami",
4776
+ "index.js"
4777
4777
  ]
4778
4778
  }
4779
4779
  },
4780
- "version": "23.2.24"
4780
+ "version": "23.2.25"
4781
4781
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.24",
3
+ "version": "23.2.25",
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",
@@ -256,6 +256,6 @@
256
256
  }
257
257
  },
258
258
  "versionist": {
259
- "publishedAt": "2026-01-15T02:35:11.701Z"
259
+ "publishedAt": "2026-01-15T17:38:02.539Z"
260
260
  }
261
261
  }