From eaf25a3638568f580098bd56be76d80dc514e736 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 7 Nov 2026 22:35:09 +0100 Subject: access: genesis of swarms from before the registry Swarms started before the registry keep working without one; the genesis node's options for a registry apply only to new swarms. What tests and migration leave is noted in future-work. Auth plan M1, bootstrap and migration (2.5). --- docs/access.md | 13 +++++-------- docs/example.toml | 11 +++++------ 2 files changed, 10 insertions(+), 14 deletions(-) (limited to 'docs') diff --git a/docs/access.md b/docs/access.md index b9e0296..cd11723 100644 --- a/docs/access.md +++ b/docs/access.md @@ -32,14 +32,11 @@ password hashes: every member reads the document). ## A new swarm -Its genesis node records the first users, with the swarm ID, in its first change: - -* those of `--bootstrap-users`, each with everything (`[]` and `["_continuum"]`); -* unset: the users of its `--htpasswd` with `[]`, and those of them, or of the - proxy's, in `--protocol-writers` with `["_continuum"]` too. - -A swarm nobody could manage doesn't start: with none of them with `["_continuum"]`, -`--genesis` is refused, naming both options. +A swarm gets a registry from its start if its genesis node is given its first users, +`--bootstrap-users`: it records them, with the swarm ID, in its first change, each with +everything (`[]` and `["_continuum"]`), and the other users of its `--htpasswd` with +`[]`. Without it, the swarm has no registry, and is as swarms were before: users all +alike (An existing swarm, below), until someone gives it one. ## At the HTTP API diff --git a/docs/example.toml b/docs/example.toml index da808ec..e48bd2c 100644 --- a/docs/example.toml +++ b/docs/example.toml @@ -83,14 +83,13 @@ htpasswd = "/etc/continuum/htpasswd" # (remake records, members, forget records), e.g. to repair a stuck remake, in a swarm # without a user registry. Such writes act on the whole swarm and are logged. Epoch # metadata and the swarm ID are never writable. With a registry its capabilities decide -# instead (docs/access.md); on a genesis node, those of htpasswd's users named here may -# do everything in the new swarm's registry. +# instead (docs/access.md). # protocol-writers = ["alice"] -# With genesis: the new swarm's first users, each may do everything, protocol data and -# managing users included (docs/access.md). Unset, the users of htpasswd may read and -# write the swarm's data, and those also in protocol-writers everything. A swarm nobody -# could manage doesn't start: set this, or protocol-writers, for one of htpasswd's users. +# With genesis: give the new swarm a user registry (docs/access.md), these its first +# users, each may do everything, protocol data and managing users included; htpasswd's +# other users may read and write the swarm's data. Unset, the swarm has no registry: its +# users are all alike, and only those in protocol-writers write protocol data. # bootstrap-users = ["alice"] # How log lines look: text (timestamped), journal (for systemd's journal: no timestamp or -- cgit v1.3.1