docs/tools/swarmctl-cli.md is rendered by `swarmctl markdown-docs`, and nix/checks.nix's swarmctl-docs-fresh check diffs the committed copy against fresh binary output. Enabling prettier on markdown rewrote its list bullets and footer indentation, which no regeneration can settle: formatting it fails the freshness check, not formatting it fails treefmt. .prettierignore already carried hivectl-cli.md for exactly this reason; swarmctl's doc was added later and the entry was not. Restore the file to its generated bytes, list it alongside hivectl's, and state the invariant where the next CLI doc gets added.
121 lines
3.8 KiB
Markdown
121 lines
3.8 KiB
Markdown
# Command-Line Help for `swarmctl`
|
|
|
|
This document contains the help content for the `swarmctl` command-line program.
|
|
|
|
**Command Overview:**
|
|
|
|
* [`swarmctl`↴](#swarmctl)
|
|
* [`swarmctl user`↴](#swarmctl-user)
|
|
* [`swarmctl user add`↴](#swarmctl-user-add)
|
|
* [`swarmctl user update`↴](#swarmctl-user-update)
|
|
* [`swarmctl user list`↴](#swarmctl-user-list)
|
|
* [`swarmctl completions`↴](#swarmctl-completions)
|
|
|
|
## `swarmctl`
|
|
|
|
swarm-level operator CLI
|
|
|
|
**Usage:** `swarmctl [OPTIONS] <COMMAND>`
|
|
|
|
###### **Subcommands:**
|
|
|
|
* `user` — Manage subjects in the swarm's SSO provider
|
|
* `completions` — Generate a shell completion script for `swarmctl` and print it to stdout
|
|
|
|
###### **Options:**
|
|
|
|
* `--authelia-bin <PATH>` — authelia binary used to hash passwords. The argon2 parameters must match the verifier's, so this has to be the *configured* package rather than whatever is on `PATH`
|
|
* `--users-file <PATH>` — Host-side path of authelia's users database — i.e. the path inside the container, prefixed with the container's root.
|
|
|
|
This is the only user store: it is read before every change and written in place, and `swarm-authelia-bridge` writes the same file.
|
|
|
|
|
|
|
|
## `swarmctl user`
|
|
|
|
Manage subjects in the swarm's SSO provider
|
|
|
|
**Usage:** `swarmctl user <COMMAND>`
|
|
|
|
###### **Subcommands:**
|
|
|
|
* `add` — Add a user, generating a password for them
|
|
* `update` — Change an existing user's attributes
|
|
* `list` — List every user in authelia's users database
|
|
|
|
|
|
|
|
## `swarmctl user add`
|
|
|
|
Add a user, generating a password for them
|
|
|
|
**Usage:** `swarmctl user add [OPTIONS] <USERNAME>`
|
|
|
|
###### **Arguments:**
|
|
|
|
* `<USERNAME>` — Login name. Conservative ASCII only — it is a YAML map key and reaches access-control rules and logs
|
|
|
|
###### **Options:**
|
|
|
|
* `--display-name <TEXT>` — Name shown in the SSO UI. Defaults to the username
|
|
* `--email <ADDRESS>`
|
|
* `--group <GROUP>` — Repeatable
|
|
|
|
|
|
|
|
## `swarmctl user update`
|
|
|
|
Change an existing user's attributes.
|
|
|
|
Every flag is optional and they compose, so one call can set several things at once. Deliberately does **not** touch the password: regenerating a credential is a different intent from editing an attribute, and folded together an attribute edit can invalidate a login by accident.
|
|
|
|
**Usage:** `swarmctl user update [OPTIONS] <USERNAME>`
|
|
|
|
###### **Arguments:**
|
|
|
|
* `<USERNAME>` — Login name of an existing user
|
|
|
|
###### **Options:**
|
|
|
|
* `--display-name <TEXT>` — Name shown in the SSO UI
|
|
* `--email <ADDRESS>`
|
|
* `--add-group <GROUP>` — Repeatable. Adding a group the user is already in is not an error
|
|
* `--remove-group <GROUP>` — Repeatable. Fails if the user is not in the group — a revocation that reports success without revoking is the failure nobody re-checks
|
|
|
|
|
|
|
|
## `swarmctl user list`
|
|
|
|
List every user in authelia's users database.
|
|
|
|
Read-only: it never writes the file. Shows every subject in it, including agent identities `swarm-authelia-bridge` created — one line per user: username, display name, email (if set), groups (if any).
|
|
|
|
**Usage:** `swarmctl user list`
|
|
|
|
|
|
|
|
## `swarmctl completions`
|
|
|
|
Generate a shell completion script for `swarmctl` and print it to stdout.
|
|
|
|
Supports bash, zsh, fish, elvish and powershell. The nix package already installs bash/zsh/fish system-wide; this is for ad-hoc or other-shell use.
|
|
|
|
Dispatched before `PathArgs::resolve()` for the same reason as `markdown-docs`: emitting a completion script needs none of the `SWARMCTL_AUTHELIA_*` deployment env vars, and requiring them would make the package's own build-time invocation fail.
|
|
|
|
**Usage:** `swarmctl completions <SHELL>`
|
|
|
|
###### **Arguments:**
|
|
|
|
* `<SHELL>` — Shell to emit completions for
|
|
|
|
Possible values: `bash`, `elvish`, `fish`, `powershell`, `zsh`
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
<small><i>
|
|
This document was generated automatically by
|
|
<a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
|
|
</i></small>
|