Add safe configuration commands

This commit is contained in:
Eric Wendland 2026-07-18 16:15:13 +02:00
commit 443602a30b
7 changed files with 432 additions and 3 deletions

View file

@ -305,8 +305,10 @@ listing and later approval/signing workflows. The current log is materialized
from signed certificate requests, signed certificate imports, and signed
revocation records, then reduced locally; it is not a mutable remote ACL blob.
While the daemon is running, it also performs a background live-sync tick for
known peers. The default interval is 30 seconds and can be changed in
`config.toml` with `[sync] live_sync_enabled` and `live_sync_interval_ms`.
known peers. The default interval is 30 seconds and can be changed with the
validated configuration commands, for example
`geth config set sync.live_sync_interval_ms 10000` or
`geth config set sync.live_sync_enabled false`.
Live-sync stores per-peer high-water cursors in local metadata so repeated ticks
request only newer SSH certificate-flow and revocation log entries. Sync import
preserves local metadata by rejecting conflicting records with ids that already
@ -430,6 +432,22 @@ grants, and bearer-secret access without scraping prose.
## Local State
Use `geth config path` to find the selected configuration file, `geth config
show` to inspect either the file or the effective built-in defaults, and `geth
config validate` before restarting a daemon after manual edits. The safe setter
supports these dotted keys:
- `iroh.relay_mode` (`default`, `staging`, `disabled`, or `custom`)
- `iroh.relay_map`
- `iroh.local_discovery` (`true` or `false`)
- `sync.live_sync_enabled` (`true` or `false`)
- `sync.live_sync_interval_ms` (at least `100`)
`geth config set <key> <value>` preserves unrelated TOML and comments, validates
the complete prospective config, and reports that the daemon must be restarted.
Custom relay-map URL tables remain a deliberate manual TOML edit; validate them
with `geth config validate`.
If `GETH_HOME` is set, geth uses it. Otherwise it uses an OS-specific data
directory. The bootstrap layout is: