Compare commits

...

21 Commits

Author SHA1 Message Date
e483d06d2b v19.10.0 2024-10-21 11:13:10 +00:00
24d2d19d33 Merge pull request #2862 from balena-io/scan-to-device-detect
`scan` to `device detect`
2024-10-21 07:12:05 -04:00
ba5bb7b12c Add alias device detect for scan
Change-type: minor
2024-10-18 10:45:06 -04:00
9082e7b3f7 git mv scan/index to device/detect 2024-10-18 10:39:24 -04:00
0716544042 v19.9.0 2024-10-18 14:25:43 +00:00
e1858aa69d Merge pull request #2861 from balena-io/orgs-to-organization-list
Orgs to organization list
2024-10-18 10:24:49 -04:00
082cce332a Add alias organization list for orgs command
Change-type: minor
2024-10-18 09:33:27 -04:00
218e0a1b6b git mv orgs/ to organization/ 2024-10-18 09:29:01 -04:00
4065c5775c v19.8.0 2024-10-18 13:25:54 +00:00
fd966df1f0 Merge pull request #2860 from balena-io/tags-to-tag-list
`tags` to `tag list`
2024-10-18 13:24:59 +00:00
5eba175bf1 Add alias tag list for tags command
Change-type: minor
2024-10-18 08:49:53 -04:00
bd1b71bf2f git mv tags/index to tag/list 2024-10-18 08:40:05 -04:00
bd7ea3d21a v19.7.0 2024-10-18 12:35:38 +00:00
31662d9175 Merge pull request #2859 from balena-io/envs-to-env-list
`envs` to `env list`
2024-10-18 12:34:15 +00:00
417c75484b Add alias env list for command envs
Change-type: minor
2024-10-18 07:47:46 -04:00
fcd77e97d9 git mv envs/index to env/list 2024-10-18 07:12:39 -04:00
1dd819ae61 v19.6.0 2024-10-18 11:04:31 +00:00
388e02ce85 Merge pull request #2857 from balena-io/key-to-ssh-key
Add `ssh-key` as aliases for all `key` commands
2024-10-18 07:03:26 -04:00
30446605e1 Deduplicate dependencies 2024-10-17 11:46:52 -04:00
e853b15f12 Add ssh-key as aliases for all key commands
Change-type: minor
2024-10-17 11:46:52 -04:00
96cf380f66 git mv key to ssh-key 2024-10-17 11:05:52 -04:00
31 changed files with 573 additions and 396 deletions

View File

@ -1,3 +1,63 @@
- commits:
- subject: Add alias `device detect` for `scan`
hash: ba5bb7b12c797e024b82232a323afecf1659de19
body: ""
footer:
Change-type: minor
change-type: minor
author: myarmolinsky
nested: []
version: 19.10.0
title: ""
date: 2024-10-21T11:13:04.550Z
- commits:
- subject: Add alias `organization list` for `orgs` command
hash: 082cce332a497c15b34467f9ed22514ebaafaec9
body: ""
footer:
Change-type: minor
change-type: minor
author: myarmolinsky
nested: []
version: 19.9.0
title: ""
date: 2024-10-18T14:25:39.691Z
- commits:
- subject: Add alias `tag list` for `tags` command
hash: 5eba175bf1a0e016b98757848e0c345489f686c1
body: ""
footer:
Change-type: minor
change-type: minor
author: myarmolinsky
nested: []
version: 19.8.0
title: ""
date: 2024-10-18T13:25:50.462Z
- commits:
- subject: Add alias `env list` for command `envs`
hash: 417c75484b1ac6c216323248b50ba00fc3fe5a7f
body: ""
footer:
Change-type: minor
change-type: minor
author: myarmolinsky
nested: []
version: 19.7.0
title: ""
date: 2024-10-18T12:35:31.416Z
- commits:
- subject: Add `ssh-key` as aliases for all `key` commands
hash: e853b15f12af429265b1e9e20ce60db19438df4b
body: ""
footer:
Change-type: minor
change-type: minor
author: myarmolinsky
nested: []
version: 19.6.0
title: ""
date: 2024-10-18T11:04:26.745Z
- commits:
- subject: Add `key list` alias for `keys` command
hash: 6b5c6e072b426a1e9517376ee756afa31ed96cfa

View File

@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/).
## 19.10.0 - 2024-10-21
* Add alias `device detect` for `scan` [myarmolinsky]
## 19.9.0 - 2024-10-18
* Add alias `organization list` for `orgs` command [myarmolinsky]
## 19.8.0 - 2024-10-18
* Add alias `tag list` for `tags` command [myarmolinsky]
## 19.7.0 - 2024-10-18
* Add alias `env list` for command `envs` [myarmolinsky]
## 19.6.0 - 2024-10-18
* Add `ssh-key` as aliases for all `key` commands [myarmolinsky]
## 19.5.0 - 2024-10-17
* Add `key list` alias for `keys` command [myarmolinsky]

View File

@ -145,7 +145,7 @@ container) in order to allow npm scripts like `postinstall` to be executed.
## Additional Dependencies
The `balena ssh`, `scan`, `build`, `deploy` and `preload` commands may require
The `balena ssh`, `device detect`, `build`, `deploy` and `preload` commands may require
additional software to be installed. Check the Additional Dependencies sections for each operating
system:

View File

@ -33,7 +33,7 @@ as described above.
## sudo configuration
A few CLI commands require execution through sudo, e.g. `sudo balena scan`.
A few CLI commands require execution through sudo, e.g. `sudo balena device detect`.
If your Linux distribution has an `/etc/sudoers` file that defines a `secure_path`
setting, run `sudo visudo` to edit it and add the balena CLI's installation folder to
the ***pre-existing*** `secure_path` setting, for example:
@ -71,9 +71,9 @@ The `balena ssh` command also requires an SSH key to be added to your balena acc
Access documentation](https://www.balena.io/docs/learn/manage/ssh-access/). The `balena key*`
command set can also be used to list and manage SSH keys: see `balena help -v`.
### balena scan
### balena device detect
The `balena scan` command requires a multicast DNS (mDNS) service like
The `balena device detect` command requires a multicast DNS (mDNS) service like
[Avahi](https://en.wikipedia.org/wiki/Avahi_(software)), which is installed by default on most
desktop Linux distributions. Otherwise, on Debian or Ubuntu, the installation command would be
`sudo apt-get install avahi-daemon`.

View File

@ -19,7 +19,7 @@ Selected operating system: **Windows**
- On the command prompt, type `balena version` and hit Enter. It should display
the version of the balena CLI that you have installed.
No further steps are required to run most CLI commands. The `balena ssh`, `scan`, `build`,
No further steps are required to run most CLI commands. The `balena ssh`, `device detect`, `build`,
`deploy` and `preload` commands may require additional software to be installed, as
described below.
@ -48,9 +48,9 @@ The `balena ssh` command also requires an SSH key to be added to your balena acc
Access documentation](https://www.balena.io/docs/learn/manage/ssh-access/). The `balena key*`
command set can also be used to list and manage SSH keys: see `balena help -v`.
### balena scan
### balena device detect
The `balena scan` command requires a multicast DNS (mDNS) service like Apple's Bonjour.
The `balena device detect` command requires a multicast DNS (mDNS) service like Apple's Bonjour.
Many Windows machines will already have this service installed, as it is bundled in popular
applications such as Skype (Wikipedia lists [several others](https://en.wikipedia.org/wiki/Bonjour_(software))).
Otherwise, Bonjour for Windows can be downloaded and installed from: https://support.apple.com/kb/DL999

View File

@ -56,14 +56,12 @@ const commandHeadings: { [key: string]: string } = {
whoami: 'Authentication',
logout: 'Authentication',
env: 'Environment Variables',
envs: 'Environment Variables',
help: 'Help and Version',
key: 'SSH Keys',
orgs: 'Organizations',
'ssh-key': 'SSH Keys',
organization: 'Organizations',
os: 'OS',
util: 'Utilities',
ssh: 'Network',
scan: 'Network',
tunnel: 'Network',
build: 'Deploy',
join: 'Platform',

View File

@ -8,22 +8,23 @@ _balena() {
local context state line curcontext="$curcontext"
# Valid top-level completions
main_commands=( api-key app block build config deploy device devices env envs fleet internal join key leave local login logout logs notes orgs os preload push release scan settings ssh support tag tags tunnel util version whoami )
main_commands=( api-key app block build config deploy device devices env fleet internal join leave local login logout logs notes organization os preload push release settings ssh ssh-key support tag tunnel util version whoami )
# Sub-completions
api_key_cmds=( generate list revoke )
app_cmds=( create )
block_cmds=( create )
config_cmds=( generate inject read reconfigure write )
device_cmds=( deactivate identify init list local-mode move os-update pin public-url purge reboot register rename restart rm shutdown start-service stop-service track-fleet )
device_cmds=( deactivate detect identify init list local-mode move os-update pin public-url purge reboot register rename restart rm shutdown start-service stop-service track-fleet )
devices_cmds=( supported )
env_cmds=( add rename rm )
env_cmds=( add list rename rm )
fleet_cmds=( create list pin purge rename restart rm track-latest )
internal_cmds=( osinit )
key_cmds=( add list rm )
local_cmds=( configure flash )
organization_cmds=( list )
os_cmds=( build-config configure download initialize versions )
release_cmds=( finalize invalidate list validate )
tag_cmds=( rm set )
ssh_key_cmds=( add list rm )
tag_cmds=( list rm set )
_arguments -C \
@ -69,18 +70,21 @@ _balena_sec_cmds() {
"internal")
_describe -t internal_cmds 'internal_cmd' internal_cmds "$@" && ret=0
;;
"key")
_describe -t key_cmds 'key_cmd' key_cmds "$@" && ret=0
;;
"local")
_describe -t local_cmds 'local_cmd' local_cmds "$@" && ret=0
;;
"organization")
_describe -t organization_cmds 'organization_cmd' organization_cmds "$@" && ret=0
;;
"os")
_describe -t os_cmds 'os_cmd' os_cmds "$@" && ret=0
;;
"release")
_describe -t release_cmds 'release_cmd' release_cmds "$@" && ret=0
;;
"ssh-key")
_describe -t ssh_key_cmds 'ssh-key_cmd' ssh_key_cmds "$@" && ret=0
;;
"tag")
_describe -t tag_cmds 'tag_cmd' tag_cmds "$@" && ret=0
;;

View File

@ -7,22 +7,23 @@ _balena_complete()
local cur prev
# Valid top-level completions
main_commands="api-key app block build config deploy device devices env envs fleet internal join key leave local login logout logs notes orgs os preload push release scan settings ssh support tag tags tunnel util version whoami"
main_commands="api-key app block build config deploy device devices env fleet internal join leave local login logout logs notes organization os preload push release settings ssh ssh-key support tag tunnel util version whoami"
# Sub-completions
api_key_cmds="generate list revoke"
app_cmds="create"
block_cmds="create"
config_cmds="generate inject read reconfigure write"
device_cmds="deactivate identify init list local-mode move os-update pin public-url purge reboot register rename restart rm shutdown start-service stop-service track-fleet"
device_cmds="deactivate detect identify init list local-mode move os-update pin public-url purge reboot register rename restart rm shutdown start-service stop-service track-fleet"
devices_cmds="supported"
env_cmds="add rename rm"
env_cmds="add list rename rm"
fleet_cmds="create list pin purge rename restart rm track-latest"
internal_cmds="osinit"
key_cmds="add list rm"
local_cmds="configure flash"
organization_cmds="list"
os_cmds="build-config configure download initialize versions"
release_cmds="finalize invalidate list validate"
tag_cmds="rm set"
ssh_key_cmds="add list rm"
tag_cmds="list rm set"
@ -63,18 +64,21 @@ _balena_complete()
internal)
COMPREPLY=( $(compgen -W "$internal_cmds" -- $cur) )
;;
key)
COMPREPLY=( $(compgen -W "$key_cmds" -- $cur) )
;;
local)
COMPREPLY=( $(compgen -W "$local_cmds" -- $cur) )
;;
organization)
COMPREPLY=( $(compgen -W "$organization_cmds" -- $cur) )
;;
os)
COMPREPLY=( $(compgen -W "$os_cmds" -- $cur) )
;;
release)
COMPREPLY=( $(compgen -W "$release_cmds" -- $cur) )
;;
ssh-key)
COMPREPLY=( $(compgen -W "$ssh_key_cmds" -- $cur) )
;;
tag)
COMPREPLY=( $(compgen -W "$tag_cmds" -- $cur) )
;;

View File

@ -196,6 +196,7 @@ are encouraged to regularly update the balena CLI to the latest version.
- Devices
- [device deactivate](#device-deactivate)
- [device detect](#device-detect)
- [device identify](#device-identify)
- [device](#device)
- [device init](#device-init)
@ -220,9 +221,9 @@ are encouraged to regularly update the balena CLI to the latest version.
- Environment Variables
- [env add](#env-add)
- [env list](#env-list)
- [env rename](#env-rename)
- [env rm](#env-rm)
- [envs](#envs)
- Fleets
@ -247,7 +248,6 @@ are encouraged to regularly update the balena CLI to the latest version.
- Network
- [scan](#scan)
- [ssh](#ssh)
- [tunnel](#tunnel)
@ -257,7 +257,7 @@ are encouraged to regularly update the balena CLI to the latest version.
- Organizations
- [orgs](#orgs)
- [organization list](#organization-list)
- OS
@ -294,10 +294,10 @@ are encouraged to regularly update the balena CLI to the latest version.
- SSH Keys
- [key add](#key-add)
- [key](#key)
- [key list](#key-list)
- [key rm](#key-rm)
- [ssh-key add](#ssh-key-add)
- [ssh-key](#ssh-key)
- [ssh-key list](#ssh-key-list)
- [ssh-key rm](#ssh-key-rm)
- Support
@ -305,9 +305,9 @@ are encouraged to regularly update the balena CLI to the latest version.
- Tags
- [tag list](#tag-list)
- [tag rm](#tag-rm)
- [tag set](#tag-set)
- [tags](#tags)
- Utilities
@ -403,7 +403,7 @@ Create a new balena app.
You can specify the organization the app should belong to using
the `--organization` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
`balena orgs` command.
`balena organization list` command.
The app's default device type is specified with the `--type` option.
The `balena devices supported` command can be used to list the available
@ -533,7 +533,7 @@ Create a new balena block.
You can specify the organization the block should belong to using
the `--organization` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
`balena orgs` command.
`balena organization list` command.
The block's default device type is specified with the `--type` option.
The `balena devices supported` command can be used to list the available
@ -1257,6 +1257,44 @@ the UUID of the device to be deactivated
answer "yes" to all questions (non interactive use)
## device detect
### Aliases
- `scan`
To use one of the aliases, replace `device detect` with the alias.
### Description
Scan for balenaOS devices on your local network.
The output includes device information collected through balenaEngine for
devices running a development image of balenaOS. Devices running a production
image do not expose balenaEngine (on TCP port 2375), which is why less
information is printed about them.
Examples:
$ balena device detect
$ balena device detect --timeout 120
$ balena device detect --verbose
### Options
#### -v, --verbose
display full info
#### -t, --timeout TIMEOUT
scan timeout in seconds
#### -j, --json
produce JSON output instead of tabular output
## device identify
### Description
@ -1976,6 +2014,90 @@ suppress warning messages
service name
## env list
### Aliases
- `envs`
To use one of the aliases, replace `env list` with the alias.
### Description
List the environment or configuration variables of a fleet, device or
service, as selected by the respective command-line options. (A service
corresponds to a Docker image/container in a microservices fleet.)
The results include fleet-wide (multiple devices), device-specific (multiple
services on a specific device) and service-specific variables that apply to the
selected fleet, device or service. It can be thought of as including inherited
variables; for example, a service inherits device-wide variables, and a device
inherits fleet-wide variables.
The printed output may include DEVICE and/or SERVICE columns to distinguish
between fleet-wide, device-specific and service-specific variables.
An asterisk in these columns indicates that the variable applies to
"all devices" or "all services".
The --config option is used to list "configuration variables" that control
balena platform features, as opposed to custom environment variables defined
by the user. The --config and the --service options are mutually exclusive
because configuration variables cannot be set for specific services.
The --json option is recommended when scripting the output of this command,
because the JSON format is less likely to change and it better represents data
types like lists and empty strings. The 'jq' utility may be helpful in shell
scripts (https://stedolan.github.io/jq/manual/). When --json is used, an empty
JSON array ([]) is printed instead of an error message when no variables exist
for the given query. When querying variables for a device, note that the fleet
name may be null in JSON output (or 'N/A' in tabular output) if the fleet that
the device belonged to is no longer accessible by the current user (for example,
in case the current user was removed from the fleet by the fleet's owner).
Fleets may be specified by fleet name or slug. Fleet slugs are
the recommended option, as they are unique and unambiguous. Slugs can be
listed with the `balena fleet list` command. Note that slugs may change if the
fleet is renamed. Fleet names are not unique and may result in "Fleet is
ambiguous" errors at any time (even if it "used to work in the past"), for
example if the name clashes with a newly created public fleet, or with fleets
from other balena accounts that you may be invited to join under any role.
For this reason, fleet names are especially discouraged in scripts (e.g. CI
environments).
Examples:
$ balena env list --fleet myorg/myfleet
$ balena env list --fleet MyFleet --json
$ balena env list --fleet MyFleet --service MyService
$ balena env list --fleet MyFleet --config
$ balena env list --device 7cf02a6
$ balena env list --device 7cf02a6 --json
$ balena env list --device 7cf02a6 --config --json
$ balena env list --device 7cf02a6 --service MyService
### Options
#### -f, --fleet FLEET
fleet name or slug (preferred)
#### -c, --config
show configuration variables only
#### -d, --device DEVICE
device UUID
#### -j, --json
produce JSON output instead of tabular output
#### -s, --service SERVICE
service name
## env rename
### Description
@ -1983,7 +2105,7 @@ service name
Change the value of a configuration or environment variable for a fleet,
device or service, as selected by command-line options.
Variables are selected by their database ID (as reported by the 'balena envs'
Variables are selected by their database ID (as reported by the 'balena env list'
command) and one of six database "resource types":
- fleet environment variable
@ -2048,7 +2170,7 @@ select a service variable (may be used together with the --device option)
Remove a configuration or environment variable from a fleet, device
or service, as selected by command-line options.
Variables are selected by their database ID (as reported by the 'balena envs'
Variables are selected by their database ID (as reported by the 'balena env list'
command) and one of six database "resource types":
- fleet environment variable
@ -2110,83 +2232,6 @@ select a service variable (may be used together with the --device option)
do not prompt for confirmation before deleting the variable
## envs
### Description
List the environment or configuration variables of a fleet, device or
service, as selected by the respective command-line options. (A service
corresponds to a Docker image/container in a microservices fleet.)
The results include fleet-wide (multiple devices), device-specific (multiple
services on a specific device) and service-specific variables that apply to the
selected fleet, device or service. It can be thought of as including inherited
variables; for example, a service inherits device-wide variables, and a device
inherits fleet-wide variables.
The printed output may include DEVICE and/or SERVICE columns to distinguish
between fleet-wide, device-specific and service-specific variables.
An asterisk in these columns indicates that the variable applies to
"all devices" or "all services".
The --config option is used to list "configuration variables" that control
balena platform features, as opposed to custom environment variables defined
by the user. The --config and the --service options are mutually exclusive
because configuration variables cannot be set for specific services.
The --json option is recommended when scripting the output of this command,
because the JSON format is less likely to change and it better represents data
types like lists and empty strings. The 'jq' utility may be helpful in shell
scripts (https://stedolan.github.io/jq/manual/). When --json is used, an empty
JSON array ([]) is printed instead of an error message when no variables exist
for the given query. When querying variables for a device, note that the fleet
name may be null in JSON output (or 'N/A' in tabular output) if the fleet that
the device belonged to is no longer accessible by the current user (for example,
in case the current user was removed from the fleet by the fleet's owner).
Fleets may be specified by fleet name or slug. Fleet slugs are
the recommended option, as they are unique and unambiguous. Slugs can be
listed with the `balena fleet list` command. Note that slugs may change if the
fleet is renamed. Fleet names are not unique and may result in "Fleet is
ambiguous" errors at any time (even if it "used to work in the past"), for
example if the name clashes with a newly created public fleet, or with fleets
from other balena accounts that you may be invited to join under any role.
For this reason, fleet names are especially discouraged in scripts (e.g. CI
environments).
Examples:
$ balena envs --fleet myorg/myfleet
$ balena envs --fleet MyFleet --json
$ balena envs --fleet MyFleet --service MyService
$ balena envs --fleet MyFleet --config
$ balena envs --device 7cf02a6
$ balena envs --device 7cf02a6 --json
$ balena envs --device 7cf02a6 --config --json
$ balena envs --device 7cf02a6 --service MyService
### Options
#### -f, --fleet FLEET
fleet name or slug (preferred)
#### -c, --config
show configuration variables only
#### -d, --device DEVICE
device UUID
#### -j, --json
produce JSON output instead of tabular output
#### -s, --service SERVICE
service name
# Fleets
## fleet create
@ -2198,7 +2243,7 @@ Create a new balena fleet.
You can specify the organization the fleet should belong to using
the `--organization` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
`balena orgs` command.
`balena organization list` command.
The fleet's default device type is specified with the `--type` option.
The `balena devices supported` command can be used to list the available
@ -2588,37 +2633,6 @@ Only show system logs. This can be used in combination with --service.
# Network
## scan
### Description
Scan for balenaOS devices on your local network.
The output includes device information collected through balenaEngine for
devices running a development image of balenaOS. Devices running a production
image do not expose balenaEngine (on TCP port 2375), which is why less
information is printed about them.
Examples:
$ balena scan
$ balena scan --timeout 120
$ balena scan --verbose
### Options
#### -v, --verbose
display full info
#### -t, --timeout TIMEOUT
scan timeout in seconds
#### -j, --json
produce JSON output instead of tabular output
## ssh
### Description
@ -2773,7 +2787,14 @@ device UUID
# Organizations
## orgs
## organization list
### Aliases
- `orgs`
To use one of the aliases, replace `organization list` with the alias.
### Description
@ -2781,7 +2802,7 @@ list all the organizations that you are a member of.
Examples:
$ balena orgs
$ balena organization list
### Options
@ -3664,7 +3685,14 @@ Examples:
# SSH Keys
## key add
## ssh-key add
### Aliases
- `key add`
To use one of the aliases, replace `ssh-key add` with the alias.
### Description
@ -3688,10 +3716,10 @@ your balena account.
Examples:
$ balena key add Main ~/.ssh/id_rsa.pub
$ cat ~/.ssh/id_rsa.pub | balena key add Main
$ balena ssh-key add Main ~/.ssh/id_rsa.pub
$ cat ~/.ssh/id_rsa.pub | balena ssh-key add Main
# Windows 10 (cmd.exe prompt) example
$ balena key add Main %userprofile%.sshid_rsa.pub
$ balena ssh-key add Main %userprofile%.sshid_rsa.pub
### Arguments
@ -3705,7 +3733,14 @@ the path to the public key file
### Options
## key
## ssh-key
### Aliases
- `key`
To use one of the aliases, replace `ssh-key` with the alias.
### Description
@ -3713,7 +3748,7 @@ Display a single SSH key registered in balenaCloud for the logged in user.
Examples:
$ balena key 17
$ balena ssh-key 17
### Arguments
@ -3723,14 +3758,15 @@ balenaCloud ID for the SSH key
### Options
## key list
## ssh-key list
### Aliases
- `keys`
- `key list`
To use one of the aliases, replace `key list` with the alias.
To use one of the aliases, replace `ssh-key list` with the alias.
### Description
@ -3738,11 +3774,18 @@ List all SSH keys registered in balenaCloud for the logged in user.
Examples:
$ balena key list
$ balena ssh-key list
### Options
## key rm
## ssh-key rm
### Aliases
- `key rm`
To use one of the aliases, replace `ssh-key rm` with the alias.
### Description
@ -3752,8 +3795,8 @@ The --yes option may be used to avoid interactive confirmation.
Examples:
$ balena key rm 17
$ balena key rm 17 --yes
$ balena ssh-key rm 17
$ balena ssh-key rm 17 --yes
### Arguments
@ -3821,6 +3864,51 @@ length of time to enable support for, in (h)ours or (d)ays, e.g. 12h, 2d
# Tags
## tag list
### Aliases
- `tags`
To use one of the aliases, replace `tag list` with the alias.
### Description
List all tags and their values for the specified fleet, device or release.
Fleets may be specified by fleet name or slug. Fleet slugs are
the recommended option, as they are unique and unambiguous. Slugs can be
listed with the `balena fleet list` command. Note that slugs may change if the
fleet is renamed. Fleet names are not unique and may result in "Fleet is
ambiguous" errors at any time (even if it "used to work in the past"), for
example if the name clashes with a newly created public fleet, or with fleets
from other balena accounts that you may be invited to join under any role.
For this reason, fleet names are especially discouraged in scripts (e.g. CI
environments).
Examples:
$ balena tag list --fleet MyFleet
$ balena tag list -f myorg/myfleet
$ balena tag list --device 7cf02a6
$ balena tag list --release 1234
$ balena tag list --release b376b0e544e9429483b656490e5b9443b4349bd6
### Options
#### -f, --fleet FLEET
fleet name or slug (preferred)
#### -d, --device DEVICE
device UUID
#### -r, --release RELEASE
release id
## tag rm
### Description
@ -3920,44 +4008,6 @@ device UUID
release id
## tags
### Description
List all tags and their values for the specified fleet, device or release.
Fleets may be specified by fleet name or slug. Fleet slugs are
the recommended option, as they are unique and unambiguous. Slugs can be
listed with the `balena fleet list` command. Note that slugs may change if the
fleet is renamed. Fleet names are not unique and may result in "Fleet is
ambiguous" errors at any time (even if it "used to work in the past"), for
example if the name clashes with a newly created public fleet, or with fleets
from other balena accounts that you may be invited to join under any role.
For this reason, fleet names are especially discouraged in scripts (e.g. CI
environments).
Examples:
$ balena tags --fleet MyFleet
$ balena tags -f myorg/myfleet
$ balena tags --device 7cf02a6
$ balena tags --release 1234
$ balena tags --release b376b0e544e9429483b656490e5b9443b4349bd6
### Options
#### -f, --fleet FLEET
fleet name or slug (preferred)
#### -d, --device DEVICE
device UUID
#### -r, --release RELEASE
release id
# Utilities
## util available-drives

16
npm-shrinkwrap.json generated
View File

@ -1,12 +1,12 @@
{
"name": "balena-cli",
"version": "19.5.0",
"version": "19.10.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "balena-cli",
"version": "19.5.0",
"version": "19.10.0",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@ -3739,9 +3739,9 @@
}
},
"node_modules/@types/node": {
"version": "20.16.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz",
"integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==",
"version": "20.16.12",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.12.tgz",
"integrity": "sha512-LfPFB0zOeCeCNQV3i+67rcoVvoN5n0NVuR2vLG0O5ySQMgchuZlC4lgz546ZOJyDtj5KIgOxy+lacOimfqZAIA==",
"dependencies": {
"undici-types": "~6.19.2"
}
@ -5475,9 +5475,9 @@
}
},
"node_modules/balena-sdk/node_modules/@types/node": {
"version": "18.19.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.55.tgz",
"integrity": "sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==",
"version": "18.19.56",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.56.tgz",
"integrity": "sha512-4EMJlWwwGnVPflJAtM14p9eVSa6BOv5b92mCsh5zcM1UagNtEtrbbtaE6WE1tw2TabavatnwqXjlIpcAEuJJNg==",
"dependencies": {
"undici-types": "~5.26.4"
}

View File

@ -1,6 +1,6 @@
{
"name": "balena-cli",
"version": "19.5.0",
"version": "19.10.0",
"description": "The official balena Command Line Interface",
"main": "./build/app.js",
"homepage": "https://github.com/balena-io/balena-cli",
@ -273,6 +273,6 @@
}
},
"versionist": {
"publishedAt": "2024-10-17T14:56:39.279Z"
"publishedAt": "2024-10-21T11:13:05.402Z"
}
}

View File

@ -28,7 +28,7 @@ export default class AppCreateCmd extends Command {
You can specify the organization the app should belong to using
the \`--organization\` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
\`balena orgs\` command.
\`balena organization list\` command.
The app's default device type is specified with the \`--type\` option.
The \`balena devices supported\` command can be used to list the available

View File

@ -28,7 +28,7 @@ export default class BlockCreateCmd extends Command {
You can specify the organization the block should belong to using
the \`--organization\` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
\`balena orgs\` command.
\`balena organization list\` command.
The block's default device type is specified with the \`--type\` option.
The \`balena devices supported\` command can be used to list the available

View File

@ -19,7 +19,9 @@ import { Flags, Command } from '@oclif/core';
import * as cf from '../../utils/common-flags';
import { getCliUx, stripIndent } from '../../utils/lazy';
export default class ScanCmd extends Command {
export default class DeviceDetectCmd extends Command {
public static aliases = ['scan'];
public static description = stripIndent`
Scan for balenaOS devices on your local network.
@ -32,9 +34,9 @@ export default class ScanCmd extends Command {
`;
public static examples = [
'$ balena scan',
'$ balena scan --timeout 120',
'$ balena scan --verbose',
'$ balena device detect',
'$ balena device detect --timeout 120',
'$ balena device detect --verbose',
];
public static flags = {
@ -70,7 +72,7 @@ export default class ScanCmd extends Command {
const dockerPort = 2375;
const dockerTimeout = 2000;
const { flags: options } = await this.parse(ScanCmd);
const { flags: options } = await this.parse(DeviceDetectCmd);
const discoverTimeout =
options.timeout != null ? options.timeout * 1000 : undefined;
@ -144,10 +146,10 @@ export default class ScanCmd extends Command {
if (!options.verbose) {
devicesInfo.forEach((d: any) => {
d.dockerInfo = _.isObject(d.dockerInfo)
? _.pick(d.dockerInfo, ScanCmd.dockerInfoProperties)
? _.pick(d.dockerInfo, DeviceDetectCmd.dockerInfoProperties)
: d.dockerInfo;
d.dockerVersion = _.isObject(d.dockerVersion)
? _.pick(d.dockerVersion, ScanCmd.dockerVersionProperties)
? _.pick(d.dockerVersion, DeviceDetectCmd.dockerVersionProperties)
: d.dockerVersion;
});
}
@ -164,8 +166,9 @@ export default class ScanCmd extends Command {
if (!options.json && cmdOutput.length === 0) {
console.error(
process.platform === 'win32'
? ScanCmd.noDevicesFoundMessage + ScanCmd.windowsTipMessage
: ScanCmd.noDevicesFoundMessage,
? DeviceDetectCmd.noDevicesFoundMessage +
DeviceDetectCmd.windowsTipMessage
: DeviceDetectCmd.noDevicesFoundMessage,
);
return;
}
@ -197,11 +200,11 @@ export default class ScanCmd extends Command {
protected static windowsTipMessage = `
Note for Windows users:
The 'scan' command relies on the Bonjour service. Check whether Bonjour is
The 'device detect' command relies on the Bonjour service. Check whether Bonjour is
installed (Control Panel > Programs and Features). If not, you can download
Bonjour for Windows (included with Bonjour Print Services) from here:
https://support.apple.com/kb/DL999
After installing Bonjour, restart your PC and run the 'balena scan' command
After installing Bonjour, restart your PC and run the 'balena device detect' command
again.`;
}

View File

@ -23,7 +23,7 @@ import * as cf from '../../utils/common-flags';
import { getBalenaSdk, getVisuals, stripIndent } from '../../utils/lazy';
import { applicationIdInfo } from '../../utils/messages';
type FlagsDef = Interfaces.InferredFlags<typeof EnvsCmd.flags>;
type FlagsDef = Interfaces.InferredFlags<typeof EnvListCmd.flags>;
interface EnvironmentVariableInfo extends SDK.EnvironmentVariableBase {
fleet?: string | null; // fleet slug
@ -45,7 +45,9 @@ interface ServiceEnvironmentVariableInfo
serviceName?: string; // service name
}
export default class EnvsCmd extends Command {
export default class EnvListCmd extends Command {
public static aliases = ['envs'];
public static description = stripIndent`
List the environment or config variables of a fleet, device or service.
@ -83,14 +85,14 @@ export default class EnvsCmd extends Command {
`;
public static examples = [
'$ balena envs --fleet myorg/myfleet',
'$ balena envs --fleet MyFleet --json',
'$ balena envs --fleet MyFleet --service MyService',
'$ balena envs --fleet MyFleet --config',
'$ balena envs --device 7cf02a6',
'$ balena envs --device 7cf02a6 --json',
'$ balena envs --device 7cf02a6 --config --json',
'$ balena envs --device 7cf02a6 --service MyService',
'$ balena env list --fleet myorg/myfleet',
'$ balena env list --fleet MyFleet --json',
'$ balena env list --fleet MyFleet --service MyService',
'$ balena env list --fleet MyFleet --config',
'$ balena env list --device 7cf02a6',
'$ balena env list --device 7cf02a6 --json',
'$ balena env list --device 7cf02a6 --config --json',
'$ balena env list --device 7cf02a6 --service MyService',
];
public static flags = {
@ -108,7 +110,7 @@ export default class EnvsCmd extends Command {
};
public async run() {
const { flags: options } = await this.parse(EnvsCmd);
const { flags: options } = await this.parse(EnvListCmd);
const variables: EnvironmentVariableInfo[] = [];

View File

@ -28,7 +28,7 @@ export default class FleetCreateCmd extends Command {
You can specify the organization the fleet should belong to using
the \`--organization\` option. The organization's handle, not its name,
should be provided. Organization handles can be listed with the
\`balena orgs\` command.
\`balena organization list\` command.
The fleet's default device type is specified with the \`--type\` option.
The \`balena devices supported\` command can be used to list the available

View File

@ -19,13 +19,15 @@ import { Command } from '@oclif/core';
import * as cf from '../../utils/common-flags';
import { getBalenaSdk, getVisuals, stripIndent } from '../../utils/lazy';
export default class OrgsCmd extends Command {
export default class OrganizationListCmd extends Command {
public static aliases = ['orgs'];
public static description = stripIndent`
List all organizations.
list all the organizations that you are a member of.
`;
public static examples = ['$ balena orgs'];
public static examples = ['$ balena organization list'];
public static flags = {
help: cf.help,
@ -34,7 +36,7 @@ export default class OrgsCmd extends Command {
public static authenticated = true;
public async run() {
await this.parse(OrgsCmd);
await this.parse(OrganizationListCmd);
const { getOwnOrganizations } = await import('../../utils/sdk');

View File

@ -20,7 +20,9 @@ import { ExpectedError } from '../../errors';
import * as cf from '../../utils/common-flags';
import { getBalenaSdk, stripIndent } from '../../utils/lazy';
export default class KeyAddCmd extends Command {
export default class SSHKeyAddCmd extends Command {
public static aliases = ['key add'];
public static description = stripIndent`
Add an SSH key to balenaCloud.
@ -44,10 +46,10 @@ export default class KeyAddCmd extends Command {
`;
public static examples = [
'$ balena key add Main ~/.ssh/id_rsa.pub',
'$ cat ~/.ssh/id_rsa.pub | balena key add Main',
'$ balena ssh-key add Main ~/.ssh/id_rsa.pub',
'$ cat ~/.ssh/id_rsa.pub | balena ssh-key add Main',
'# Windows 10 (cmd.exe prompt) example',
'$ balena key add Main %userprofile%.sshid_rsa.pub',
'$ balena ssh-key add Main %userprofile%.sshid_rsa.pub',
];
public static args = {
@ -67,7 +69,7 @@ export default class KeyAddCmd extends Command {
public static authenticated = true;
public async run() {
const { args: params } = await this.parse(KeyAddCmd);
const { args: params } = await this.parse(SSHKeyAddCmd);
let key: string;
if (params.path != null) {

View File

@ -20,14 +20,16 @@ import * as cf from '../../utils/common-flags';
import { getBalenaSdk, getVisuals, stripIndent } from '../../utils/lazy';
import { parseAsInteger } from '../../utils/validation';
export default class KeyCmd extends Command {
export default class SSHKeyCmd extends Command {
public static aliases = ['key'];
public static description = stripIndent`
Display an SSH key.
Display a single SSH key registered in balenaCloud for the logged in user.
`;
public static examples = ['$ balena key 17'];
public static examples = ['$ balena ssh-key 17'];
public static args = {
id: Args.integer({
@ -44,7 +46,7 @@ export default class KeyCmd extends Command {
public static authenticated = true;
public async run() {
const { args: params } = await this.parse(KeyCmd);
const { args: params } = await this.parse(SSHKeyCmd);
const key = await getBalenaSdk().models.key.get(params.id);

View File

@ -19,15 +19,15 @@ import { Command } from '@oclif/core';
import * as cf from '../../utils/common-flags';
import { getBalenaSdk, getVisuals, stripIndent } from '../../utils/lazy';
export default class KeyListCmd extends Command {
public static aliases = ['keys'];
export default class SSHKeyListCmd extends Command {
public static aliases = ['keys', 'key list'];
public static description = stripIndent`
List the SSH keys in balenaCloud.
List all SSH keys registered in balenaCloud for the logged in user.
`;
public static examples = ['$ balena key list'];
public static examples = ['$ balena ssh-key list'];
public static flags = {
help: cf.help,
@ -36,7 +36,7 @@ export default class KeyListCmd extends Command {
public static authenticated = true;
public async run() {
await this.parse(KeyListCmd);
await this.parse(SSHKeyListCmd);
const keys = await getBalenaSdk().models.key.getAll();

View File

@ -20,7 +20,9 @@ import * as cf from '../../utils/common-flags';
import { getBalenaSdk, stripIndent } from '../../utils/lazy';
import { parseAsInteger } from '../../utils/validation';
export default class KeyRmCmd extends Command {
export default class SSHKeyRmCmd extends Command {
public static aliases = ['key rm'];
public static description = stripIndent`
Remove an SSH key from balenaCloud.
@ -29,7 +31,10 @@ export default class KeyRmCmd extends Command {
The --yes option may be used to avoid interactive confirmation.
`;
public static examples = ['$ balena key rm 17', '$ balena key rm 17 --yes'];
public static examples = [
'$ balena ssh-key rm 17',
'$ balena ssh-key rm 17 --yes',
];
public static args = {
id: Args.integer({
@ -47,7 +52,7 @@ export default class KeyRmCmd extends Command {
public static authenticated = true;
public async run() {
const { args: params, flags: options } = await this.parse(KeyRmCmd);
const { args: params, flags: options } = await this.parse(SSHKeyRmCmd);
const patterns = await import('../../utils/patterns');

View File

@ -21,7 +21,9 @@ import * as cf from '../../utils/common-flags';
import { getBalenaSdk, getVisuals, stripIndent } from '../../utils/lazy';
import { applicationIdInfo } from '../../utils/messages';
export default class TagsCmd extends Command {
export default class TagListCmd extends Command {
public static aliases = ['tags'];
public static description = stripIndent`
List all tags for a fleet, device or release.
@ -31,11 +33,11 @@ export default class TagsCmd extends Command {
`;
public static examples = [
'$ balena tags --fleet MyFleet',
'$ balena tags -f myorg/myfleet',
'$ balena tags --device 7cf02a6',
'$ balena tags --release 1234',
'$ balena tags --release b376b0e544e9429483b656490e5b9443b4349bd6',
'$ balena tag list --fleet MyFleet',
'$ balena tag list -f myorg/myfleet',
'$ balena tag list --device 7cf02a6',
'$ balena tag list --release 1234',
'$ balena tag list --release b376b0e544e9429483b656490e5b9443b4349bd6',
];
public static flags = {
@ -57,7 +59,7 @@ export default class TagsCmd extends Command {
public static authenticated = true;
public async run() {
const { flags: options } = await this.parse(TagsCmd);
const { flags: options } = await this.parse(TagListCmd);
const balena = getBalenaSdk();
@ -105,6 +107,6 @@ export default class TagsCmd extends Command {
See the help page for examples:
$ balena help tags
$ balena help tag list
`;
}

View File

@ -237,6 +237,5 @@ See: https://git.io/JRHUW#deprecation-policy`,
'deploy',
'join',
'leave',
'scan',
];
}

View File

@ -43,7 +43,7 @@ export const booleanService = Flags.boolean({
});
export const rmRenameHelp = stripIndent`
Variables are selected by their database ID (as reported by the 'balena envs'
Variables are selected by their database ID (as reported by the 'balena env list'
command) and one of six database "resource types":
- fleet environment variable

View File

@ -22,7 +22,7 @@ import { BalenaAPIMock } from '../../nock/balena-api-mock';
import { runCommand } from '../../helpers';
import { randomBytes } from 'node:crypto';
describe('balena envs', function () {
describe('balena env list', function () {
const appName = 'test';
let fullUUID: string;
let shortUUID: string;
@ -46,7 +46,7 @@ describe('balena envs', function () {
api.expectGetAppEnvVars();
api.expectGetAppServiceVars();
const { out, err } = await runCommand(`envs -f ${appName}`);
const { out, err } = await runCommand(`env list -f ${appName}`);
expect(out.join('')).to.equal(
stripIndent`
@ -60,11 +60,32 @@ describe('balena envs', function () {
expect(err.join('')).to.equal('');
});
it('should successfully list env vars for a test fleet via `envs` alias', async () => {
api.expectGetApplication();
api.expectGetAppEnvVars();
api.expectGetAppServiceVars();
const { out, err } = await runCommand(`envs -f ${appName}`);
expect(out.join('')).to.satisfy((msg: string) =>
msg.endsWith(
stripIndent`
ID NAME VALUE FLEET SERVICE
120110 svar1 svar1-value gh_user/testApp service1
120111 svar2 svar2-value gh_user/testApp service2
120101 var1 var1-val gh_user/testApp *
120102 var2 22 gh_user/testApp *
` + '\n',
),
);
expect(err.join('')).to.equal('');
});
it('should successfully list config vars for a test fleet', async () => {
api.expectGetApplication();
api.expectGetAppConfigVars();
const { out, err } = await runCommand(`envs -f ${appName} --config`);
const { out, err } = await runCommand(`env list -f ${appName} --config`);
expect(out.join('')).to.equal(
stripIndent`
@ -80,7 +101,7 @@ describe('balena envs', function () {
api.expectGetApplication();
api.expectGetAppConfigVars();
const { out, err } = await runCommand(`envs -cjf ${appName}`);
const { out, err } = await runCommand(`env list -cjf ${appName}`);
expect(JSON.parse(out.join(''))).to.deep.equal([
{
@ -101,7 +122,7 @@ describe('balena envs', function () {
api.expectGetAppServiceVars();
const { out, err } = await runCommand(
`envs -f ${appName} -s ${serviceName}`,
`env list -f ${appName} -s ${serviceName}`,
);
expect(out.join('')).to.equal(
@ -123,7 +144,7 @@ describe('balena envs', function () {
api.expectGetAppServiceVars();
const { out, err } = await runCommand(
`envs -f ${appName} -s ${serviceName}`,
`env list -f ${appName} -s ${serviceName}`,
);
expect(out.join('')).to.equal(
@ -146,7 +167,7 @@ describe('balena envs', function () {
api.expectGetAppServiceVars();
api.expectGetDeviceServiceVars();
const result = await runCommand(`envs -d ${shortUUID}`);
const result = await runCommand(`env list -d ${shortUUID}`);
let { out } = result;
let expected =
stripIndent`
@ -176,7 +197,7 @@ describe('balena envs', function () {
api.expectGetAppServiceVars();
api.expectGetDeviceServiceVars();
const { out, err } = await runCommand(`envs -jd ${shortUUID}`);
const { out, err } = await runCommand(`env list -jd ${shortUUID}`);
const expected = `[
{ "id": 120101, "fleet": "org/test", "deviceUUID": "*", "name": "var1", "value": "var1-val", "serviceName": "*" },
{ "id": 120102, "fleet": "org/test", "deviceUUID": "*", "name": "var2", "value": "22", "serviceName": "*" },
@ -199,7 +220,7 @@ describe('balena envs', function () {
api.expectGetApplication();
api.expectGetAppConfigVars();
const result = await runCommand(`envs -d ${shortUUID} --config`);
const result = await runCommand(`env list -d ${shortUUID} --config`);
let { out } = result;
let expected =
stripIndent`
@ -225,7 +246,9 @@ describe('balena envs', function () {
api.expectGetAppServiceVars();
api.expectGetDeviceEnvVars();
const result = await runCommand(`envs -d ${shortUUID} -s ${serviceName}`);
const result = await runCommand(
`env list -d ${shortUUID} -s ${serviceName}`,
);
let { out } = result;
let expected =
stripIndent`
@ -250,7 +273,7 @@ describe('balena envs', function () {
api.expectGetDeviceEnvVars();
api.expectGetDeviceServiceVars();
const result = await runCommand(`envs -d ${shortUUID}`);
const result = await runCommand(`env list -d ${shortUUID}`);
let { out } = result;
let expected =
stripIndent`
@ -278,7 +301,9 @@ describe('balena envs', function () {
api.expectGetDeviceEnvVars();
api.expectGetDeviceServiceVars();
const result = await runCommand(`envs -d ${shortUUID} -s ${serviceName}`);
const result = await runCommand(
`env list -d ${shortUUID} -s ${serviceName}`,
);
let { out } = result;
let expected =
stripIndent`
@ -309,7 +334,7 @@ describe('balena envs', function () {
api.expectGetDeviceServiceVars();
const { out, err } = await runCommand(
`envs -d ${shortUUID} -js ${serviceName}`,
`env list -d ${shortUUID} -js ${serviceName}`,
);
const expected = `[
{ "id": 120101, "fleet": "org/test", "deviceUUID": "*", "name": "var1", "value": "var1-val", "serviceName": "*" },

View File

@ -30,7 +30,6 @@ PRIMARY COMMANDS
push <applicationOrDevice> start a remote build on the balenaCloud build servers or a local mode device
logs <device> show device logs
ssh <applicationOrDevice> [service] SSH into the host or application container of a device
apps list all applications
app <name> display information about a single application
device <uuid> show info about a single device
tunnel <deviceOrApplication> tunnel local ports to your balenaOS device
@ -39,7 +38,6 @@ PRIMARY COMMANDS
deploy <appName> [image] deploy a single image or a multicontainer project to a balena application
join [deviceIpOrHostname] move a local device to an application on another balena server
leave [deviceIpOrHostname] remove a local device from its balena application
scan scan for balenaOS devices on your local network
`;
@ -54,6 +52,7 @@ ADDITIONAL COMMANDS
config read read the configuration of a device or OS image
config reconfigure interactively reconfigure a device or OS image
config write <key> <value> write a key-value pair to configuration of a device or OS image
device detect scan for balenaOS devices on your local network
device identify <uuid> identify a device
device init initialise a device with balenaOS
device list list all devices
@ -67,13 +66,13 @@ ADDITIONAL COMMANDS
device shutdown <uuid> shutdown a device
devices supported list the supported device types (like 'raspberrypi3' or 'intel-nuc')
env add <name> [value] add env or config variable to application(s), device(s) or service(s)
env list list the environment or config variables of an application, device or service
env rename <name> <value> change the value of a config or env var for an app, device or service
env rm <id> remove a config or env var from an application, device or service
envs list the environment or config variables of an application, device or service
key <id> display an SSH key
key add <name> [path] add an SSH key to balenaCloud
key list list the SSH keys in balenaCloud
key rm <id> remove an SSH key from balenaCloud
ssh-key <id> display an SSH key
ssh-key add <name> [path] add an SSH key to balenaCloud
ssh-key list list the SSH keys in balenaCloud
ssh-key rm <id> remove an SSH key from balenaCloud
local configure <target> (Re)configure a balenaOS drive or image
local flash <image> flash an image to a drive
logout logout from balena
@ -84,9 +83,9 @@ ADDITIONAL COMMANDS
os initialize <image> initialize an os image for a device
os versions <type> show available balenaOS versions for the given device type
settings print current settings
tag rm <tagKey> remove a tag from an application, device or release
tag set <tagKey> [value] set a tag on an application, device or release
tags list all tags for an application, device or release
tag list list all tags for a app, block, fleet, device or release
tag rm <tagKey> remove a tag from an app, block, fleet, device or release
tag set <tagKey> [value] set a tag on an app, block, fleet, device or release
util available-drives list available drives
version display version information for the balena CLI and/or Node.js
whoami display account information for current user

View File

@ -67,6 +67,9 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/deactivate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/detect.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/identify.js
@ -130,15 +133,15 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rename.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/envs/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/fleet/create.js
@ -172,18 +175,6 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/join/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/leave/index.js
@ -207,7 +198,7 @@
%2: build/commands/notes/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/orgs/index.js
%2: build/commands/organization/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/os/build-config.js
@ -244,27 +235,36 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/release/validate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/scan/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/settings/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/support/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/set.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tags/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tunnel/index.js

View File

@ -67,6 +67,9 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/deactivate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/detect.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/identify.js
@ -130,15 +133,15 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rename.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/envs/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/fleet/create.js
@ -172,18 +175,6 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/join/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/leave/index.js
@ -207,7 +198,7 @@
%2: build/commands/notes/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/orgs/index.js
%2: build/commands/organization/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/os/build-config.js
@ -244,27 +235,36 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/release/validate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/scan/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/settings/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/support/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/set.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tags/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tunnel/index.js

View File

@ -67,6 +67,9 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/deactivate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/detect.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/identify.js
@ -130,15 +133,15 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rename.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/envs/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/fleet/create.js
@ -172,18 +175,6 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/join/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/leave/index.js
@ -207,7 +198,7 @@
%2: build/commands/notes/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/orgs/index.js
%2: build/commands/organization/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/os/build-config.js
@ -244,27 +235,36 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/release/validate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/scan/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/settings/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/support/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/set.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tags/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tunnel/index.js

View File

@ -67,6 +67,9 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/deactivate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/detect.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/device/identify.js
@ -130,15 +133,15 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rename.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/env/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/envs/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/fleet/create.js
@ -172,18 +175,6 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/join/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/leave/index.js
@ -207,7 +198,7 @@
%2: build/commands/notes/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/orgs/index.js
%2: build/commands/organization/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/os/build-config.js
@ -244,27 +235,36 @@
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/release/validate.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/scan/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/settings/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/add.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/ssh-key/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/support/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/list.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/rm.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tag/set.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tags/index.js
> Warning Entry 'main' not found in %1
%1: node_modules/@oclif/core/package.json
%2: build/commands/tunnel/index.js

View File

@ -67,6 +67,9 @@
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\device\deactivate.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\device\detect.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\device\identify.js
@ -130,15 +133,15 @@
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\env\add.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\env\list.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\env\rename.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\env\rm.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\envs\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\fleet\create.js
@ -172,18 +175,6 @@
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\join\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\key\add.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\key\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\key\list.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\key\rm.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\leave\index.js
@ -207,7 +198,7 @@
%2: build\commands\notes\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\orgs\index.js
%2: build\commands\organization\list.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\os\build-config.js
@ -244,27 +235,36 @@
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\release\validate.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\scan\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\settings\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\ssh\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\ssh-key\add.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\ssh-key\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\ssh-key\list.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\ssh-key\rm.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\support\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\tag\list.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\tag\rm.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\tag\set.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\tags\index.js
> Warning Entry 'main' not found in %1
%1: node_modules\@oclif\core\package.json
%2: build\commands\tunnel\index.js