29099add9da56aa72301268736a6e1390557ce85
A client tool is three moves: read the connection from the environment, make one HTTP call carrying the bearer and the contract header, and print either the answer as one JSON line or the one error shape — then exit with the code that says which happened. Common is those three moves, so no client reimplements them and all clients fail identically: `Config::from_env` (`RHEMA_URL`, `RHEMA_TOKEN`), the `Client` call with the contract envelope, `print`/`fail` and the `ToolError` exit codes. The HTTP client is `ureq`, blocking, no TLS: the contract speaks to a loopback or otherwise trusted daemon, and a remote TLS endpoint is a stated non-goal in v1 — a thin client stays thin.
Languages
Rust
74.9%
Kotlin
13.8%
Vue
7.1%
TypeScript
3%
Dockerfile
0.5%
Other
0.6%