CLI¶
The source-checked split references are administration, service, join, diagnostics, client, access, delegation, protocols, trust, and operations. This flat route and its existing anchors stay in place while navigation adopts the family pages.
Executable walkthroughs use the shared Quickstart fixtures. A reference
transcript may show a catalog id such as prod-db; that is an existing resource
name, not a required deployment name. In the split lab, use lab-read or
lab-denied from the Quickstart.
One binary, selected by subcommand. The same gdsgate runs every service role
and every client operation. A global --config <PATH> applies to all commands
and overrides the loopback dev defaults.
Output convention:
- stdout carries data the caller may pipe or capture:
lstables, generated config fragments, byte streams, certificate PEMs. -
stderr carries status and logs. A client command narrates itself there in a lean dialect (
→in progress,✓done,#a note,✗a failure):✓ authenticated as alex@acme.io (group: sre) ✓ certificate issued · ttl 5m · db-prod # connected · session a1f7… · recordingOn a terminal the lines carry glyphs and a little colour; off a terminal (a
ProxyCommand, a pipe, CI) they fall back to plain ASCII with no colour, andNO_COLORalso disables colour. Theproxy-sshtransport puts only the SSH byte stream on stdout, keeping this narration on stderr, so it composes cleanly with nativessh.-q/--quietsilences the narration; failures still print.
Diagnostic logs (tracing events) are a separate channel, filtered with
RUST_LOG. A client command defaults to warn, since the narration above is
the status surface; the daemons default to warn,gdsgate=info. A set RUST_LOG
replaces the default entirely:
RUST_LOG=gdsgate_proxy=debug,gdsgate=info,warn gdsgate --config proxy.toml proxy
RUST_LOG=debug gdsgate ssh db-prod # raise a client command's logs for debugging
Global flags¶
| Flag | Purpose |
|---|---|
--config <PATH> |
Path to the TOML cluster-configuration file. Optional, but a file named here must exist: a path that is not there fails the command instead of falling back to the defaults. Without the flag a client command reads ~/.gdsgate/config.toml, the file gdsgate connect writes and the one file that may be absent, and falls back to the loopback dev profile when there is none. A service (authority, proxy, connector, all) never falls back to that file: a daemon is configured by the file its operator names. GDSGATE_* environment overrides apply either way. |
--as <grant-id> |
Narrow this session to a delegation grant you own; access becomes your rights ∩ the grant's capabilities ∩ the resource the session opened on, checked on every operation. Revoking the grant, or letting it expire, refuses the session's next operation. The ssh forwards are words of their own: a grant reaches -L / -R only through ssh:forward@<host> and -A only through ssh:agent@<host>, neither of which ssh:connect carries. See gdsgate delegate. |
--no-remediate |
On a curable access denial, report it instead of offering to step up or request access. Implied when stdin or stderr is not a terminal. |
--step-up-factor <auto\|passkey\|totp> |
Factor for an inline step-up. Default auto, which prefers the passkey. |
--wait |
When a denial is curable only by a human approval, file the request and block until it is approved, then retry. No effect on a step-up-only denial. |
--wait-timeout <secs> |
How long --wait blocks before giving up. Default 600. |
--quiet, -q |
Silence the client status narration on stderr; failures still print. Command data on stdout is unaffected, and diagnostics remain available through RUST_LOG. |
--help, -h |
Print help for the current command. |
--version, -V |
Print the binary's version and exit. |
On a denied ssh, db login, or proxy command at a terminal, gdsgate offers
the matching step-up, or files a JIT access request, and retries. See
User guide → MFA & step-up. The
--no-remediate / --step-up-factor / --wait flags above tune that.
Service modes¶
Service entry points are routed to the complete family references. The flat route keeps the historical headings and anchors as compatibility destinations.
gdsgate authority¶
Canonical details: administration reference.
--route <auto|gateway|certificate|emergency|store>¶
Canonical details: administration reference.
--operator <NAME>¶
Canonical details: administration reference.
gdsgate authority bootstrap-admin --output-dir <DIR> [--ttl <secs>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority bootstrap-provisioner --output-dir <DIR> [--token <TOKEN>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority create-token --role {proxy|connector|admin|workload|provisioner} [--ttl <secs>]¶
Canonical details: administration reference.
gdsgate authority rotate-ca¶
Canonical details: administration reference.
gdsgate authority rotate-onward-ca¶
Canonical details: administration reference.
gdsgate authority rotate-host-tls-ca¶
Canonical details: administration reference.
gdsgate authority rotate-spiffe-ca¶
Canonical details: administration reference.
gdsgate authority rotate-jwt-ca¶
Canonical details: administration reference.
gdsgate authority list-nodes¶
Canonical details: administration reference.
gdsgate authority list-offered¶
Canonical details: administration reference.
gdsgate authority revoke-node <id>¶
Canonical details: administration reference.
gdsgate authority delete-node <id>¶
Canonical details: administration reference.
gdsgate authority import-node --role <ROLE> --cert <PATH>¶
Canonical details: administration reference.
gdsgate authority list-workloads¶
Canonical details: administration reference.
gdsgate authority revoke-workload <spiffe-id>¶
Canonical details: administration reference.
gdsgate authority list-resources¶
Canonical details: administration reference.
gdsgate authority list-serving¶
Canonical details: administration reference.
gdsgate authority set-resource <id> --kind <KIND>¶
Canonical details: administration reference.
gdsgate authority remove-resource <id>¶
Canonical details: administration reference.
gdsgate authority onward-ca-pub¶
Canonical details: administration reference.
gdsgate authority onward-ca-pubs¶
Canonical details: administration reference.
gdsgate authority init --profile <NAME> [--output <PATH>] [--store-url <URL>] [--control-keyring <REFERENCE>] [--audit-keyring <REFERENCE>] [--kms-key <NAME=KIND:COMMAND>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority set-profile --profile <NAME> --changed-by <NAME>¶
Canonical details: administration reference.
gdsgate authority init-anchor [--path <PATH>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority init-revocation-key [--path <PATH>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority init-approval-key [--path <PATH>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority init-inventory-key [--path <PATH>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority init-delegation-key [--path <PATH>] [--if-missing]¶
Canonical details: administration reference.
gdsgate authority keys migrate-legacy¶
Canonical details: administration reference.
gdsgate authority verify-audit [--checkpoint-keys <FILE>] [--keyring <REFERENCE>]¶
Canonical details: administration reference.
gdsgate authority audit list [filters]¶
Canonical details: administration reference.
gdsgate authority migrate [--check]¶
Canonical details: administration reference.
gdsgate authority policy template¶
Canonical details: administration reference.
gdsgate authority policy validate [<FILE>] [-o <FILE>] [--rule-ids]¶
Canonical details: administration reference.
gdsgate authority policy pull [-o <FILE>]¶
Canonical details: administration reference.
gdsgate authority policy push <FILE>¶
Canonical details: administration reference.
gdsgate authority policy edit¶
Canonical details: administration reference.
gdsgate authority policy pending-edits¶
Canonical details: administration reference.
gdsgate authority policy approve-edit <version>¶
Canonical details: administration reference.
gdsgate authority recordings list [filters]¶
Canonical details: administration reference.
gdsgate authority recordings show <session_uid>¶
Canonical details: administration reference.
gdsgate authority recordings live <session_uid>¶
Canonical details: administration reference.
gdsgate proxy¶
Canonical details: service reference.
gdsgate connector¶
Canonical details: service reference.
gdsgate join <domain>¶
Canonical details: join reference.
gdsgate all¶
Canonical details: service reference.
gdsgate doctor¶
Canonical details: diagnostics reference.
Client commands¶
Canonical details: client reference.
gdsgate connect <host[:port]>¶
Canonical details: client reference.
gdsgate login [--browser]¶
Canonical details: client reference.
gdsgate up [--browser] [--foreground]¶
Canonical details: client reference.
gdsgate down¶
Canonical details: client reference.
gdsgate status [--json] [--explain]¶
Canonical details: client reference.
gdsgate completion <bash|zsh|fish>¶
Canonical details: client reference.
gdsgate machine-id [--token <jwt> | --provision-token <t> | --renew]¶
Canonical details: client reference.
gdsgate delegate --can <cap>... [--ttl <secs>] [--bind-key <dir> | --exec <prog> [-- <args>...]]¶
Canonical details: delegation reference.
What a grant carries into an ssh session¶
Canonical details: delegation reference.
Saved delegations¶
Canonical details: delegation reference.
Endpoints: what the program is given¶
Canonical details: delegation reference.
Agent profiles¶
Canonical details: delegation reference.
--sandbox basic and --sandbox strict¶
Canonical details: delegation reference.
The difference between them¶
Canonical details: delegation reference.
Security limitations¶
Canonical details: delegation reference.
What the audit chain says about the sandbox¶
Canonical details: delegation reference.
gdsgate delegations¶
Canonical details: delegation reference.
gdsgate revoke <id> | --all | --owner <user>¶
Canonical details: delegation reference.
gdsgate delegation status [--json]¶
Canonical details: delegation reference.
gdsgate delegation renew [--endpoint <url>]¶
Canonical details: delegation reference.
gdsgate ls¶
Canonical details: access reference.
gdsgate request-access <resource> --reason <text> [--action <action>] [--ttl <secs>]¶
Canonical details: access reference.
gdsgate approve <id>¶
Canonical details: access reference.
gdsgate requests¶
Canonical details: access reference.
gdsgate mfa enroll¶
Canonical details: access reference.
gdsgate mfa confirm <code>¶
Canonical details: access reference.
gdsgate mfa verify <code>¶
Canonical details: access reference.
gdsgate mfa register-passkey¶
Canonical details: access reference.
gdsgate mfa step-up¶
Canonical details: access reference.
gdsgate step-up <resource> [--action <action>] [--code <totp>]¶
Canonical details: access reference.
gdsgate ssh <target> [--exec [-- <ssh args>...]]¶
Canonical details: protocol reference.
gdsgate ssh-config [<host_pattern>]¶
Canonical details: protocol reference.
gdsgate proxy-ssh <resource>¶
Canonical details: protocol reference.
gdsgate db ls¶
Canonical details: protocol reference.
gdsgate db login <resource>¶
Canonical details: protocol reference.
gdsgate db proxy <resource> [--listen <addr>]¶
Canonical details: protocol reference.
gdsgate kube ls¶
Canonical details: protocol reference.
gdsgate kube login <cluster> [--server <url>]¶
Canonical details: protocol reference.
gdsgate kube credentials <cluster>¶
Canonical details: protocol reference.
gdsgate kube proxy <cluster> [--listen <addr>]¶
Canonical details: protocol reference.
gdsgate tcp ls¶
Canonical details: protocol reference.
gdsgate tcp proxy <resource> [--listen <addr>]¶
Canonical details: protocol reference.
gdsgate mcp ls¶
Canonical details: protocol reference.
gdsgate mcp proxy <resource> [--listen <addr>]¶
Canonical details: protocol reference.
gdsgate mcp bridge <endpoint>¶
Canonical details: protocol reference.
gdsgate web proxy <resource> [--listen <addr>]¶
Canonical details: protocol reference.
gdsgate web trust [--quiet]¶
Canonical details: protocol reference.
gdsgate ca rotate [--all]¶
Canonical details: trust reference.
gdsgate ca learn-host-key <target>¶
Canonical details: trust reference.
gdsgate ca fingerprint [--file <path>]¶
Canonical details: trust reference.
gdsgate session list¶
Canonical details: operations reference.
gdsgate session kill [<id>] [--principal <p>] [--resource <r>]¶
Canonical details: operations reference.
gdsgate session watch¶
Canonical details: operations reference.
Environment variables¶
Cluster-configuration overlay¶
Every GDSGATE_* listed in
Configuration → Environment overrides
overlays the matching field in the TOML file. An unset variable changes
nothing.
Client-side¶
| Variable | Purpose |
|---|---|
GDSGATE_ID_TOKEN |
Identity token to present to the cluster (sub becomes the principal). Skips gdsgate login. |
GDSGATE_USER |
Local-dev principal name when no [oidc] is configured. Default dev. |
RUST_LOG |
Tracing filter. A client command defaults to warn; the resident client and the daemons default to warn,gdsgate=info: gdsgate* at INFO, everything else at WARN. |
Node bootstrap¶
| Variable | Purpose |
|---|---|
GDSGATE_ENROLL_TOKEN |
One-time node-registration token. Consumed by Authority on first start of a Proxy or Connector. Preferred over enroll.token in the file. |
Exit codes¶
0: command succeeded.1: generic failure, with the error logged to stderr.-
2:gdsgate doctorfound a failing check,authority verify-auditfound the audit chain broken, orjoinwas given arguments that do not describe an installation. -
3: nothing to do, where a run with--if-missingfound what it was asked to create and changed nothing. Onlyauthority bootstrap-admin,authority bootstrap-provisionerand the fiveauthority init-*commands produce it, and only when that flag is passed. -
101: Rust panic, an unrecoverable internal error worth reporting.
A non-zero exit from authority policy validate indicates a policy error
suitable for CI gating.
3 is a status of its own because provisioning is a reconcile loop, and
a script driving one has three outcomes to tell apart: it created the
thing (0), it found the thing (3), it failed (1). Output wording is
not a contract, and a script that greps for it breaks the day a sentence is
reworded. Under set -e the code has to be admitted explicitly: