On this page
Examples — stado in practice
Executable examples as plain command sequences — the commands themselves, per the Wisent PRODUCT guidelines (CLI design contract + examples requirement). Each script runs end-to-end locally.
Command surfaces
- First run —
config init,config validate,doctor - Work —
submit,job watch,results,job rerun - Secrets —
secrets put / get / ls / rm / doctor - Fleet —
fleet methods,fleet invite(with--offline),fleet invites,fleet revoke-invite,fleet pending / approve,fleet enroll(with--install-key),fleet key generate / check,registry beacon-age,host ping,host uptime,service list,service status - Queue —
queue status / pause / drain / resume
Index
onboarding-local-job.sh— from zero to one completed local job: config init, validate, doctor, submit, watch, download.secrets-store-and-read.sh— store via stdin, read back, list.fleet-health-check.sh— beacon age, host ping, service list — fleet truth without ssh.queue-maintenance.sh— pause, drain, resume — maintenance without cancelling work.fleet/add-remove-host.sh— thedeclaremethod: declare a device withregistry host add(--sshand--release-platformboth required), remove it via pull → edit → validate → push. Ends net-zero; verified on the real registry.fleet/onboard-host.sh— bring a device to reporting life over a channel that already exists:fleet enroll --bootstrap(probes hostname and platform before it writes),fleet key check, skarbiec grants (stado-local-agent,stado-host-health-beacon), host recover, beacon-age as proof. If the machine has no key yet, add--install-key(theadoptmethod) or use the invite example below instead of pasting a key by hand.fleet/invite-a-machine.sh— theinvitemethod end to end, operator side, in the mode that needs nothing published:fleet methodsandfleet catalogfor what this registry allows,fleet invite --offlinefor the fragment the machine's owner pastes,fleet invitesfor the invitation waiting on their address, thenfleet enroll --ssh … --bootstrap(which still probes) to close it, and key check, grants, host recover andregistry beacon-ageas proof. The one-line mode —fleet invitewithout the flag,fleet pending,fleet approve— is at the bottom of the script with the reachability it requires, becausefleet inviterefuses to print that line until the control point answers. The operator never touches the machine and the private key never leaves the vault — see Add your own machine for the owner's side and Onboard another machine for all four methods.
Providers (opt-in backends, per user)
Each provider lights up the same way: credentials into YOUR skarbiec, provider flipped on in YOUR config, one verify command. Credentials come from your env, never inline.
providers/enable-azure.sh—wisent-azure-billing-sp(tenant_id, client_id, client_secret), thenstado azure.providers/enable-gcp.sh—stado-gcp(service_account_json), thenstado doctor.providers/enable-aws.sh—stado-aws(access_key_id, secret_access_key), thenconfig validate. Verified end-to-end on a scratch config.providers/enable-vast.sh—stado-vast(api_key), thenstado vast list.
Template for a new example
Per skarbiec's PRODUCT.md: the example IS the commands a user would
type, in order — set -eu, a usage comment, env for values, nothing
else. Verification is itself a printed command. Every line must be
copy-paste runnable.
Source: this website