balena-cli 23.2.21 → 23.2.22

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/build/app.d.ts +0 -1
  3. package/build/app.js +4 -8
  4. package/build/app.js.map +1 -1
  5. package/build/commands/config/write.d.ts +1 -1
  6. package/build/commands/config/write.js +3 -3
  7. package/build/commands/config/write.js.map +1 -1
  8. package/build/commands/deploy/index.js +1 -1
  9. package/build/commands/deploy/index.js.map +1 -1
  10. package/build/commands/device/ssh.js +1 -1
  11. package/build/commands/device/ssh.js.map +1 -1
  12. package/build/deprecation.d.ts +1 -1
  13. package/build/deprecation.js +3 -3
  14. package/build/deprecation.js.map +1 -1
  15. package/build/help.d.ts +1 -1
  16. package/build/help.js +3 -3
  17. package/build/help.js.map +1 -1
  18. package/build/preparser.d.ts +1 -1
  19. package/build/preparser.js +2 -2
  20. package/build/preparser.js.map +1 -1
  21. package/build/utils/compose.d.ts +1 -1
  22. package/build/utils/compose_ts.js +4 -4
  23. package/build/utils/compose_ts.js.map +1 -1
  24. package/build/utils/deploy-legacy.js +11 -12
  25. package/build/utils/deploy-legacy.js.map +1 -1
  26. package/build/utils/helpers.d.ts +2 -2
  27. package/build/utils/helpers.js +6 -6
  28. package/build/utils/helpers.js.map +1 -1
  29. package/build/utils/qemu.js +3 -6
  30. package/build/utils/qemu.js.map +1 -1
  31. package/build/utils/streams.js.map +1 -1
  32. package/build/utils/sudo.js +1 -1
  33. package/build/utils/sudo.js.map +1 -1
  34. package/build/utils/umount.js +1 -1
  35. package/build/utils/umount.js.map +1 -1
  36. package/build/utils/which.d.ts +1 -1
  37. package/build/utils/which.js +2 -2
  38. package/build/utils/which.js.map +1 -1
  39. package/npm-shrinkwrap.json +4 -2
  40. package/oclif.manifest.json +455 -455
  41. package/package.json +2 -2
  42. package/src/app.ts +4 -14
  43. package/src/commands/config/write.ts +7 -3
  44. package/src/commands/deploy/index.ts +1 -1
  45. package/src/commands/device/ssh.ts +1 -1
  46. package/src/deprecation.ts +3 -4
  47. package/src/help.ts +5 -4
  48. package/src/preparser.ts +2 -2
  49. package/src/utils/compose.ts +1 -1
  50. package/src/utils/compose_ts.ts +8 -4
  51. package/src/utils/deploy-legacy.ts +20 -19
  52. package/src/utils/helpers.ts +9 -7
  53. package/src/utils/qemu.ts +3 -7
  54. package/src/utils/streams.ts +1 -1
  55. package/src/utils/sudo.ts +1 -1
  56. package/src/utils/umount.ts +1 -1
  57. package/src/utils/which.ts +2 -2
@@ -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": {},
@@ -2879,43 +2879,6 @@
2879
2879
  "track-latest.js"
2880
2880
  ]
2881
2881
  },
2882
- "internal:osinit": {
2883
- "aliases": [],
2884
- "args": {
2885
- "image": {
2886
- "name": "image",
2887
- "required": true
2888
- },
2889
- "type": {
2890
- "name": "type",
2891
- "required": true
2892
- },
2893
- "config": {
2894
- "name": "config",
2895
- "required": true
2896
- }
2897
- },
2898
- "description": "Do actual init of the device with the preconfigured os image.\n\nDon't use this command directly!\nUse `balena os initialize <image>` instead.",
2899
- "flags": {},
2900
- "hasDynamicHelp": false,
2901
- "hidden": true,
2902
- "hiddenAliases": [],
2903
- "id": "internal:osinit",
2904
- "pluginAlias": "balena-cli",
2905
- "pluginName": "balena-cli",
2906
- "pluginType": "core",
2907
- "strict": true,
2908
- "enableJsonFlag": false,
2909
- "root": true,
2910
- "offlineCompatible": true,
2911
- "isESM": false,
2912
- "relativePath": [
2913
- "build",
2914
- "commands",
2915
- "internal",
2916
- "osinit.js"
2917
- ]
2918
- },
2919
2882
  "join": {
2920
2883
  "aliases": [],
2921
2884
  "args": {
@@ -2969,6 +2932,43 @@
2969
2932
  "index.js"
2970
2933
  ]
2971
2934
  },
2935
+ "internal:osinit": {
2936
+ "aliases": [],
2937
+ "args": {
2938
+ "image": {
2939
+ "name": "image",
2940
+ "required": true
2941
+ },
2942
+ "type": {
2943
+ "name": "type",
2944
+ "required": true
2945
+ },
2946
+ "config": {
2947
+ "name": "config",
2948
+ "required": true
2949
+ }
2950
+ },
2951
+ "description": "Do actual init of the device with the preconfigured os image.\n\nDon't use this command directly!\nUse `balena os initialize <image>` instead.",
2952
+ "flags": {},
2953
+ "hasDynamicHelp": false,
2954
+ "hidden": true,
2955
+ "hiddenAliases": [],
2956
+ "id": "internal:osinit",
2957
+ "pluginAlias": "balena-cli",
2958
+ "pluginName": "balena-cli",
2959
+ "pluginType": "core",
2960
+ "strict": true,
2961
+ "enableJsonFlag": false,
2962
+ "root": true,
2963
+ "offlineCompatible": true,
2964
+ "isESM": false,
2965
+ "relativePath": [
2966
+ "build",
2967
+ "commands",
2968
+ "internal",
2969
+ "osinit.js"
2970
+ ]
2971
+ },
2972
2972
  "leave": {
2973
2973
  "aliases": [],
2974
2974
  "args": {
@@ -3258,115 +3258,245 @@
3258
3258
  "list.js"
3259
3259
  ]
3260
3260
  },
3261
- "os:configure": {
3261
+ "preload": {
3262
3262
  "aliases": [],
3263
3263
  "args": {
3264
3264
  "image": {
3265
- "description": "path to a balenaOS image file, e.g. \"rpi3.img\"",
3265
+ "description": "the image file path",
3266
3266
  "name": "image",
3267
3267
  "required": true
3268
3268
  }
3269
3269
  },
3270
- "description": "Configure a previously downloaded balenaOS image.\n\nConfigure a previously downloaded balenaOS image for a specific device type\nor fleet.\n\nConfiguration settings such as WiFi authentication will be taken from the\nfollowing sources, in precedence order:\n1. Command-line options like `--config-wifi-ssid`\n2. A given `config.json` file specified with the `--config` option.\n3. User input through interactive prompts (text menus).\n\nThe --device-type option is used to override the fleet's default device type,\nin case of a fleet with mixed device types.\n\nThe '--dev' option is used to configure balenaOS to operate in development mode,\nallowing unauthenticated root ssh access and exposing network ports such as\nbalenaEngine's 2375 (unencrypted). This option causes `\"developmentMode\": true`\nto be inserted in the 'config.json' file in the image's boot partition. Development\nmode (as a configurable option) is applicable to balenaOS releases from early\n2022. Older releases have separate development and production balenaOS images\nthat cannot be reconfigured through 'config.json' or the '--dev' option. Do not\nconfuse the balenaOS \"development mode\" with a device's \"local mode\", the latter\nbeing a supervisor feature that allows the \"balena push\" command to push a user's\napplication directly to a device in the local network.\n\nThe '--secureBoot' option is used to configure a balenaOS installer image to opt-in\nsecure boot and disk encryption.\n\nThe --system-connection (-c) option is used to inject NetworkManager connection\nprofiles for additional network interfaces, such as cellular/GSM or additional\nWiFi or ethernet connections. This option may be passed multiple times in case there\nare multiple files to inject. See connection profile examples and reference at:\nhttps://www.balena.io/docs/reference/OS/network/2.x/\nhttps://developer.gnome.org/NetworkManager/stable/ref-settings.html\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).",
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
3271
  "examples": [
3272
- "$ balena os configure ../path/rpi3.img --device 7cf02a6",
3273
- "$ balena os configure ../path/rpi3.img --fleet myorg/myfleet",
3274
- "$ balena os configure ../path/rpi3.img -f myorg/myfleet --device-type raspberrypi3",
3275
- "$ balena os configure ../path/rpi3.img --config myWifiConfig.json"
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"
3276
3275
  ],
3277
3276
  "flags": {
3278
3277
  "fleet": {
3279
3278
  "char": "f",
3280
3279
  "description": "fleet name or slug (preferred)",
3281
- "exclusive": [
3282
- "device",
3283
- "config"
3284
- ],
3285
3280
  "name": "fleet",
3286
3281
  "hasDynamicHelp": false,
3287
3282
  "multiple": false,
3288
3283
  "type": "option"
3289
3284
  },
3290
- "device": {
3291
- "char": "d",
3292
- "description": "device UUID",
3293
- "exclusive": [
3294
- "fleet",
3295
- "device-type",
3296
- "config",
3297
- "provisioning-key-name",
3298
- "provisioning-key-expiry-date"
3299
- ],
3300
- "name": "device",
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",
3301
3289
  "hasDynamicHelp": false,
3302
3290
  "multiple": false,
3303
3291
  "type": "option"
3304
3292
  },
3305
- "config": {
3306
- "description": "path to a pre-generated config.json file to be injected in the OS image",
3307
- "exclusive": [
3308
- "fleet",
3309
- "device",
3310
- "advanced",
3311
- "config-app-update-poll-interval",
3312
- "config-network",
3313
- "config-wifi-key",
3314
- "config-wifi-ssid",
3315
- "dev",
3316
- "secureBoot",
3317
- "device-type",
3318
- "initial-device-name",
3319
- "provisioning-key-name",
3320
- "provisioning-key-expiry-date"
3321
- ],
3322
- "name": "config",
3293
+ "splash-image": {
3294
+ "char": "s",
3295
+ "description": "path to a png image to replace the splash screen",
3296
+ "name": "splash-image",
3323
3297
  "hasDynamicHelp": false,
3324
3298
  "multiple": false,
3325
3299
  "type": "option"
3326
3300
  },
3327
- "advanced": {
3328
- "char": "v",
3329
- "description": "ask advanced configuration questions (when in interactive mode)",
3330
- "name": "advanced",
3301
+ "dont-check-arch": {
3302
+ "description": "disable architecture compatibility check between image and fleet",
3303
+ "name": "dont-check-arch",
3331
3304
  "allowNo": false,
3332
3305
  "type": "boolean"
3333
3306
  },
3334
- "config-app-update-poll-interval": {
3335
- "description": "supervisor cloud polling interval in minutes (e.g. for variable updates)",
3336
- "name": "config-app-update-poll-interval",
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",
3337
3317
  "hasDynamicHelp": false,
3338
3318
  "multiple": false,
3339
3319
  "type": "option"
3340
3320
  },
3341
- "config-network": {
3342
- "description": "device network type (non-interactive configuration)",
3343
- "name": "config-network",
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",
3344
3324
  "hasDynamicHelp": false,
3345
- "multiple": false,
3346
- "options": [
3347
- "ethernet",
3348
- "wifi"
3349
- ],
3325
+ "multiple": true,
3350
3326
  "type": "option"
3351
3327
  },
3352
- "config-wifi-key": {
3353
- "description": "WiFi key (password) (non-interactive configuration)",
3354
- "name": "config-wifi-key",
3328
+ "docker": {
3329
+ "char": "P",
3330
+ "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
3331
+ "name": "docker",
3355
3332
  "hasDynamicHelp": false,
3356
3333
  "multiple": false,
3357
3334
  "type": "option"
3358
3335
  },
3359
- "config-wifi-ssid": {
3360
- "description": "WiFi SSID (network name) (non-interactive configuration)",
3361
- "name": "config-wifi-ssid",
3336
+ "dockerHost": {
3337
+ "char": "h",
3338
+ "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
3339
+ "name": "dockerHost",
3362
3340
  "hasDynamicHelp": false,
3363
3341
  "multiple": false,
3364
3342
  "type": "option"
3365
3343
  },
3366
- "dev": {
3367
- "description": "Configure balenaOS to operate in development mode",
3368
- "name": "dev",
3369
- "allowNo": false,
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
+ },
3391
+ "os:configure": {
3392
+ "aliases": [],
3393
+ "args": {
3394
+ "image": {
3395
+ "description": "path to a balenaOS image file, e.g. \"rpi3.img\"",
3396
+ "name": "image",
3397
+ "required": true
3398
+ }
3399
+ },
3400
+ "description": "Configure a previously downloaded balenaOS image.\n\nConfigure a previously downloaded balenaOS image for a specific device type\nor fleet.\n\nConfiguration settings such as WiFi authentication will be taken from the\nfollowing sources, in precedence order:\n1. Command-line options like `--config-wifi-ssid`\n2. A given `config.json` file specified with the `--config` option.\n3. User input through interactive prompts (text menus).\n\nThe --device-type option is used to override the fleet's default device type,\nin case of a fleet with mixed device types.\n\nThe '--dev' option is used to configure balenaOS to operate in development mode,\nallowing unauthenticated root ssh access and exposing network ports such as\nbalenaEngine's 2375 (unencrypted). This option causes `\"developmentMode\": true`\nto be inserted in the 'config.json' file in the image's boot partition. Development\nmode (as a configurable option) is applicable to balenaOS releases from early\n2022. Older releases have separate development and production balenaOS images\nthat cannot be reconfigured through 'config.json' or the '--dev' option. Do not\nconfuse the balenaOS \"development mode\" with a device's \"local mode\", the latter\nbeing a supervisor feature that allows the \"balena push\" command to push a user's\napplication directly to a device in the local network.\n\nThe '--secureBoot' option is used to configure a balenaOS installer image to opt-in\nsecure boot and disk encryption.\n\nThe --system-connection (-c) option is used to inject NetworkManager connection\nprofiles for additional network interfaces, such as cellular/GSM or additional\nWiFi or ethernet connections. This option may be passed multiple times in case there\nare multiple files to inject. See connection profile examples and reference at:\nhttps://www.balena.io/docs/reference/OS/network/2.x/\nhttps://developer.gnome.org/NetworkManager/stable/ref-settings.html\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).",
3401
+ "examples": [
3402
+ "$ balena os configure ../path/rpi3.img --device 7cf02a6",
3403
+ "$ balena os configure ../path/rpi3.img --fleet myorg/myfleet",
3404
+ "$ balena os configure ../path/rpi3.img -f myorg/myfleet --device-type raspberrypi3",
3405
+ "$ balena os configure ../path/rpi3.img --config myWifiConfig.json"
3406
+ ],
3407
+ "flags": {
3408
+ "fleet": {
3409
+ "char": "f",
3410
+ "description": "fleet name or slug (preferred)",
3411
+ "exclusive": [
3412
+ "device",
3413
+ "config"
3414
+ ],
3415
+ "name": "fleet",
3416
+ "hasDynamicHelp": false,
3417
+ "multiple": false,
3418
+ "type": "option"
3419
+ },
3420
+ "device": {
3421
+ "char": "d",
3422
+ "description": "device UUID",
3423
+ "exclusive": [
3424
+ "fleet",
3425
+ "device-type",
3426
+ "config",
3427
+ "provisioning-key-name",
3428
+ "provisioning-key-expiry-date"
3429
+ ],
3430
+ "name": "device",
3431
+ "hasDynamicHelp": false,
3432
+ "multiple": false,
3433
+ "type": "option"
3434
+ },
3435
+ "config": {
3436
+ "description": "path to a pre-generated config.json file to be injected in the OS image",
3437
+ "exclusive": [
3438
+ "fleet",
3439
+ "device",
3440
+ "advanced",
3441
+ "config-app-update-poll-interval",
3442
+ "config-network",
3443
+ "config-wifi-key",
3444
+ "config-wifi-ssid",
3445
+ "dev",
3446
+ "secureBoot",
3447
+ "device-type",
3448
+ "initial-device-name",
3449
+ "provisioning-key-name",
3450
+ "provisioning-key-expiry-date"
3451
+ ],
3452
+ "name": "config",
3453
+ "hasDynamicHelp": false,
3454
+ "multiple": false,
3455
+ "type": "option"
3456
+ },
3457
+ "advanced": {
3458
+ "char": "v",
3459
+ "description": "ask advanced configuration questions (when in interactive mode)",
3460
+ "name": "advanced",
3461
+ "allowNo": false,
3462
+ "type": "boolean"
3463
+ },
3464
+ "config-app-update-poll-interval": {
3465
+ "description": "supervisor cloud polling interval in minutes (e.g. for variable updates)",
3466
+ "name": "config-app-update-poll-interval",
3467
+ "hasDynamicHelp": false,
3468
+ "multiple": false,
3469
+ "type": "option"
3470
+ },
3471
+ "config-network": {
3472
+ "description": "device network type (non-interactive configuration)",
3473
+ "name": "config-network",
3474
+ "hasDynamicHelp": false,
3475
+ "multiple": false,
3476
+ "options": [
3477
+ "ethernet",
3478
+ "wifi"
3479
+ ],
3480
+ "type": "option"
3481
+ },
3482
+ "config-wifi-key": {
3483
+ "description": "WiFi key (password) (non-interactive configuration)",
3484
+ "name": "config-wifi-key",
3485
+ "hasDynamicHelp": false,
3486
+ "multiple": false,
3487
+ "type": "option"
3488
+ },
3489
+ "config-wifi-ssid": {
3490
+ "description": "WiFi SSID (network name) (non-interactive configuration)",
3491
+ "name": "config-wifi-ssid",
3492
+ "hasDynamicHelp": false,
3493
+ "multiple": false,
3494
+ "type": "option"
3495
+ },
3496
+ "dev": {
3497
+ "description": "Configure balenaOS to operate in development mode",
3498
+ "name": "dev",
3499
+ "allowNo": false,
3370
3500
  "type": "boolean"
3371
3501
  },
3372
3502
  "secureBoot": {
@@ -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": {
@@ -3866,54 +3866,212 @@
3866
3866
  "name": "draft",
3867
3867
  "allowNo": false,
3868
3868
  "type": "boolean"
3869
- },
3870
- "note": {
3871
- "description": "The notes for this release",
3872
- "name": "note",
3873
- "hasDynamicHelp": false,
3874
- "multiple": false,
3875
- "type": "option"
3869
+ },
3870
+ "note": {
3871
+ "description": "The notes for this release",
3872
+ "name": "note",
3873
+ "hasDynamicHelp": false,
3874
+ "multiple": false,
3875
+ "type": "option"
3876
+ }
3877
+ },
3878
+ "hasDynamicHelp": false,
3879
+ "hiddenAliases": [],
3880
+ "id": "push",
3881
+ "pluginAlias": "balena-cli",
3882
+ "pluginName": "balena-cli",
3883
+ "pluginType": "core",
3884
+ "strict": true,
3885
+ "enableJsonFlag": false,
3886
+ "primary": true,
3887
+ "isESM": false,
3888
+ "relativePath": [
3889
+ "build",
3890
+ "commands",
3891
+ "push",
3892
+ "index.js"
3893
+ ]
3894
+ },
3895
+ "release:finalize": {
3896
+ "aliases": [],
3897
+ "args": {
3898
+ "commitOrId": {
3899
+ "description": "the commit or ID of the release to finalize",
3900
+ "name": "commitOrId",
3901
+ "required": true
3902
+ }
3903
+ },
3904
+ "description": "Finalize a release.\n\nFinalize a release. Releases can be \"draft\" or \"final\", and this command\nchanges a draft release into a final release. Draft releases can be created\nwith the `--draft` option of the `balena build` or `balena deploy`\ncommands.\n\nDraft releases are not automatically deployed to devices tracking the latest\nrelease. For a draft release to be deployed to a device, the device should be\nexplicity pinned to that release. Conversely, final releases may trigger immediate\ndeployment to unpinned devices (subject to a device's polling period) and, for\nthis reason, final releases cannot be changed back to draft status.",
3905
+ "examples": [
3906
+ "$ balena release finalize a777f7345fe3d655c1c981aa642e5555",
3907
+ "$ balena release finalize 1234567"
3908
+ ],
3909
+ "flags": {},
3910
+ "hasDynamicHelp": false,
3911
+ "hiddenAliases": [],
3912
+ "id": "release:finalize",
3913
+ "pluginAlias": "balena-cli",
3914
+ "pluginName": "balena-cli",
3915
+ "pluginType": "core",
3916
+ "strict": true,
3917
+ "enableJsonFlag": false,
3918
+ "authenticated": true,
3919
+ "isESM": false,
3920
+ "relativePath": [
3921
+ "build",
3922
+ "commands",
3923
+ "release",
3924
+ "finalize.js"
3925
+ ]
3926
+ },
3927
+ "release": {
3928
+ "aliases": [],
3929
+ "args": {
3930
+ "commitOrId": {
3931
+ "description": "the commit or ID of the release to get information",
3932
+ "name": "commitOrId",
3933
+ "required": true
3934
+ }
3935
+ },
3936
+ "description": "Get info for a release.",
3937
+ "examples": [
3938
+ "$ balena release a777f7345fe3d655c1c981aa642e5555",
3939
+ "$ balena release 1234567"
3940
+ ],
3941
+ "flags": {
3942
+ "json": {
3943
+ "description": "Format output as json.",
3944
+ "helpGroup": "GLOBAL",
3945
+ "name": "json",
3946
+ "allowNo": false,
3947
+ "type": "boolean"
3948
+ },
3949
+ "composition": {
3950
+ "char": "c",
3951
+ "description": "Return the release composition",
3952
+ "name": "composition",
3953
+ "allowNo": false,
3954
+ "type": "boolean"
3955
+ }
3956
+ },
3957
+ "hasDynamicHelp": false,
3958
+ "hiddenAliases": [],
3959
+ "id": "release",
3960
+ "pluginAlias": "balena-cli",
3961
+ "pluginName": "balena-cli",
3962
+ "pluginType": "core",
3963
+ "strict": true,
3964
+ "enableJsonFlag": true,
3965
+ "authenticated": true,
3966
+ "isESM": false,
3967
+ "relativePath": [
3968
+ "build",
3969
+ "commands",
3970
+ "release",
3971
+ "index.js"
3972
+ ]
3973
+ },
3974
+ "release:invalidate": {
3975
+ "aliases": [],
3976
+ "args": {
3977
+ "commitOrId": {
3978
+ "description": "the commit or ID of the release to invalidate",
3979
+ "name": "commitOrId",
3980
+ "required": true
3981
+ }
3982
+ },
3983
+ "description": "Invalidate a release.\n\nInvalidate a release.\n\nInvalid releases are not automatically deployed to devices tracking the latest\nrelease. For an invalid release to be deployed to a device, the device should be\nexplicity pinned to that release.",
3984
+ "examples": [
3985
+ "$ balena release invalidate a777f7345fe3d655c1c981aa642e5555",
3986
+ "$ balena release invalidate 1234567"
3987
+ ],
3988
+ "flags": {},
3989
+ "hasDynamicHelp": false,
3990
+ "hiddenAliases": [],
3991
+ "id": "release:invalidate",
3992
+ "pluginAlias": "balena-cli",
3993
+ "pluginName": "balena-cli",
3994
+ "pluginType": "core",
3995
+ "strict": true,
3996
+ "enableJsonFlag": false,
3997
+ "authenticated": true,
3998
+ "isESM": false,
3999
+ "relativePath": [
4000
+ "build",
4001
+ "commands",
4002
+ "release",
4003
+ "invalidate.js"
4004
+ ]
4005
+ },
4006
+ "release:list": {
4007
+ "aliases": [],
4008
+ "args": {
4009
+ "fleet": {
4010
+ "description": "fleet name or slug (preferred)",
4011
+ "name": "fleet",
4012
+ "required": true
4013
+ }
4014
+ },
4015
+ "description": "List all releases of a fleet.\n\nList all releases of the given fleet.\n\nFleets may be specified by fleet name or slug. Slugs are recommended because\nthey are unique and unambiguous. Slugs can be listed with the `balena fleet list`\ncommand. Note that slugs may change if the fleet is renamed. Fleet names are\nnot unique and may result in \"Fleet is ambiguous\" errors at any time (even if\n\"it used to work in the past\"), for example if the name clashes with a newly\ncreated public/open fleet, or with fleets from other balena accounts that you\nmay be invited to join under any role. For this reason, fleet names are\nespecially discouraged in scripts (e.g. CI environments).",
4016
+ "examples": [
4017
+ "$ balena release list myorg/myfleet"
4018
+ ],
4019
+ "flags": {
4020
+ "json": {
4021
+ "description": "Format output as json.",
4022
+ "helpGroup": "GLOBAL",
4023
+ "name": "json",
4024
+ "allowNo": false,
4025
+ "type": "boolean"
3876
4026
  }
3877
4027
  },
3878
4028
  "hasDynamicHelp": false,
3879
4029
  "hiddenAliases": [],
3880
- "id": "push",
4030
+ "id": "release:list",
3881
4031
  "pluginAlias": "balena-cli",
3882
4032
  "pluginName": "balena-cli",
3883
4033
  "pluginType": "core",
3884
4034
  "strict": true,
3885
- "enableJsonFlag": false,
3886
- "primary": true,
4035
+ "enableJsonFlag": true,
4036
+ "authenticated": true,
3887
4037
  "isESM": false,
3888
4038
  "relativePath": [
3889
4039
  "build",
3890
4040
  "commands",
3891
- "push",
3892
- "index.js"
4041
+ "release",
4042
+ "list.js"
3893
4043
  ]
3894
4044
  },
3895
- "settings": {
4045
+ "release:validate": {
3896
4046
  "aliases": [],
3897
- "args": {},
3898
- "description": "Print current settings.\n\nUse this command to display the current balena CLI settings.",
4047
+ "args": {
4048
+ "commitOrId": {
4049
+ "description": "the commit or ID of the release to validate",
4050
+ "name": "commitOrId",
4051
+ "required": true
4052
+ }
4053
+ },
4054
+ "description": "Validate a release.\n\nValidate a release.\n\nValid releases are automatically deployed to devices tracking the latest\nrelease if they are finalized.",
3899
4055
  "examples": [
3900
- "$ balena settings"
4056
+ "$ balena release validate a777f7345fe3d655c1c981aa642e5555",
4057
+ "$ balena release validate 1234567"
3901
4058
  ],
3902
4059
  "flags": {},
3903
4060
  "hasDynamicHelp": false,
3904
4061
  "hiddenAliases": [],
3905
- "id": "settings",
4062
+ "id": "release:validate",
3906
4063
  "pluginAlias": "balena-cli",
3907
4064
  "pluginName": "balena-cli",
3908
4065
  "pluginType": "core",
3909
4066
  "strict": true,
3910
4067
  "enableJsonFlag": false,
4068
+ "authenticated": true,
3911
4069
  "isESM": false,
3912
4070
  "relativePath": [
3913
4071
  "build",
3914
4072
  "commands",
3915
- "settings",
3916
- "index.js"
4073
+ "release",
4074
+ "validate.js"
3917
4075
  ]
3918
4076
  },
3919
4077
  "release-asset:delete": {
@@ -4131,188 +4289,30 @@
4131
4289
  "upload.js"
4132
4290
  ]
4133
4291
  },
4134
- "release:finalize": {
4292
+ "settings": {
4135
4293
  "aliases": [],
4136
- "args": {
4137
- "commitOrId": {
4138
- "description": "the commit or ID of the release to finalize",
4139
- "name": "commitOrId",
4140
- "required": true
4141
- }
4142
- },
4143
- "description": "Finalize a release.\n\nFinalize a release. Releases can be \"draft\" or \"final\", and this command\nchanges a draft release into a final release. Draft releases can be created\nwith the `--draft` option of the `balena build` or `balena deploy`\ncommands.\n\nDraft releases are not automatically deployed to devices tracking the latest\nrelease. For a draft release to be deployed to a device, the device should be\nexplicity pinned to that release. Conversely, final releases may trigger immediate\ndeployment to unpinned devices (subject to a device's polling period) and, for\nthis reason, final releases cannot be changed back to draft status.",
4294
+ "args": {},
4295
+ "description": "Print current settings.\n\nUse this command to display the current balena CLI settings.",
4144
4296
  "examples": [
4145
- "$ balena release finalize a777f7345fe3d655c1c981aa642e5555",
4146
- "$ balena release finalize 1234567"
4297
+ "$ balena settings"
4147
4298
  ],
4148
4299
  "flags": {},
4149
4300
  "hasDynamicHelp": false,
4150
4301
  "hiddenAliases": [],
4151
- "id": "release:finalize",
4302
+ "id": "settings",
4152
4303
  "pluginAlias": "balena-cli",
4153
4304
  "pluginName": "balena-cli",
4154
4305
  "pluginType": "core",
4155
4306
  "strict": true,
4156
4307
  "enableJsonFlag": false,
4157
- "authenticated": true,
4158
- "isESM": false,
4159
- "relativePath": [
4160
- "build",
4161
- "commands",
4162
- "release",
4163
- "finalize.js"
4164
- ]
4165
- },
4166
- "release": {
4167
- "aliases": [],
4168
- "args": {
4169
- "commitOrId": {
4170
- "description": "the commit or ID of the release to get information",
4171
- "name": "commitOrId",
4172
- "required": true
4173
- }
4174
- },
4175
- "description": "Get info for a release.",
4176
- "examples": [
4177
- "$ balena release a777f7345fe3d655c1c981aa642e5555",
4178
- "$ balena release 1234567"
4179
- ],
4180
- "flags": {
4181
- "json": {
4182
- "description": "Format output as json.",
4183
- "helpGroup": "GLOBAL",
4184
- "name": "json",
4185
- "allowNo": false,
4186
- "type": "boolean"
4187
- },
4188
- "composition": {
4189
- "char": "c",
4190
- "description": "Return the release composition",
4191
- "name": "composition",
4192
- "allowNo": false,
4193
- "type": "boolean"
4194
- }
4195
- },
4196
- "hasDynamicHelp": false,
4197
- "hiddenAliases": [],
4198
- "id": "release",
4199
- "pluginAlias": "balena-cli",
4200
- "pluginName": "balena-cli",
4201
- "pluginType": "core",
4202
- "strict": true,
4203
- "enableJsonFlag": true,
4204
- "authenticated": true,
4205
4308
  "isESM": false,
4206
4309
  "relativePath": [
4207
4310
  "build",
4208
4311
  "commands",
4209
- "release",
4312
+ "settings",
4210
4313
  "index.js"
4211
4314
  ]
4212
4315
  },
4213
- "release:invalidate": {
4214
- "aliases": [],
4215
- "args": {
4216
- "commitOrId": {
4217
- "description": "the commit or ID of the release to invalidate",
4218
- "name": "commitOrId",
4219
- "required": true
4220
- }
4221
- },
4222
- "description": "Invalidate a release.\n\nInvalidate a release.\n\nInvalid releases are not automatically deployed to devices tracking the latest\nrelease. For an invalid release to be deployed to a device, the device should be\nexplicity pinned to that release.",
4223
- "examples": [
4224
- "$ balena release invalidate a777f7345fe3d655c1c981aa642e5555",
4225
- "$ balena release invalidate 1234567"
4226
- ],
4227
- "flags": {},
4228
- "hasDynamicHelp": false,
4229
- "hiddenAliases": [],
4230
- "id": "release:invalidate",
4231
- "pluginAlias": "balena-cli",
4232
- "pluginName": "balena-cli",
4233
- "pluginType": "core",
4234
- "strict": true,
4235
- "enableJsonFlag": false,
4236
- "authenticated": true,
4237
- "isESM": false,
4238
- "relativePath": [
4239
- "build",
4240
- "commands",
4241
- "release",
4242
- "invalidate.js"
4243
- ]
4244
- },
4245
- "release:list": {
4246
- "aliases": [],
4247
- "args": {
4248
- "fleet": {
4249
- "description": "fleet name or slug (preferred)",
4250
- "name": "fleet",
4251
- "required": true
4252
- }
4253
- },
4254
- "description": "List all releases of a fleet.\n\nList all releases of the given fleet.\n\nFleets may be specified by fleet name or slug. Slugs are recommended because\nthey are unique and unambiguous. Slugs can be listed with the `balena fleet list`\ncommand. Note that slugs may change if the fleet is renamed. Fleet names are\nnot unique and may result in \"Fleet is ambiguous\" errors at any time (even if\n\"it used to work in the past\"), for example if the name clashes with a newly\ncreated public/open fleet, or with fleets from other balena accounts that you\nmay be invited to join under any role. For this reason, fleet names are\nespecially discouraged in scripts (e.g. CI environments).",
4255
- "examples": [
4256
- "$ balena release list myorg/myfleet"
4257
- ],
4258
- "flags": {
4259
- "json": {
4260
- "description": "Format output as json.",
4261
- "helpGroup": "GLOBAL",
4262
- "name": "json",
4263
- "allowNo": false,
4264
- "type": "boolean"
4265
- }
4266
- },
4267
- "hasDynamicHelp": false,
4268
- "hiddenAliases": [],
4269
- "id": "release:list",
4270
- "pluginAlias": "balena-cli",
4271
- "pluginName": "balena-cli",
4272
- "pluginType": "core",
4273
- "strict": true,
4274
- "enableJsonFlag": true,
4275
- "authenticated": true,
4276
- "isESM": false,
4277
- "relativePath": [
4278
- "build",
4279
- "commands",
4280
- "release",
4281
- "list.js"
4282
- ]
4283
- },
4284
- "release:validate": {
4285
- "aliases": [],
4286
- "args": {
4287
- "commitOrId": {
4288
- "description": "the commit or ID of the release to validate",
4289
- "name": "commitOrId",
4290
- "required": true
4291
- }
4292
- },
4293
- "description": "Validate a release.\n\nValidate a release.\n\nValid releases are automatically deployed to devices tracking the latest\nrelease if they are finalized.",
4294
- "examples": [
4295
- "$ balena release validate a777f7345fe3d655c1c981aa642e5555",
4296
- "$ balena release validate 1234567"
4297
- ],
4298
- "flags": {},
4299
- "hasDynamicHelp": false,
4300
- "hiddenAliases": [],
4301
- "id": "release:validate",
4302
- "pluginAlias": "balena-cli",
4303
- "pluginName": "balena-cli",
4304
- "pluginType": "core",
4305
- "strict": true,
4306
- "enableJsonFlag": false,
4307
- "authenticated": true,
4308
- "isESM": false,
4309
- "relativePath": [
4310
- "build",
4311
- "commands",
4312
- "release",
4313
- "validate.js"
4314
- ]
4315
- },
4316
4316
  "support": {
4317
4317
  "aliases": [],
4318
4318
  "args": {
@@ -4777,5 +4777,5 @@
4777
4777
  ]
4778
4778
  }
4779
4779
  },
4780
- "version": "23.2.21"
4780
+ "version": "23.2.22"
4781
4781
  }