aboutsummaryrefslogtreecommitdiffstats
path: root/docs/access.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-08 09:39:52 +0000
committertv <tv@krebsco.de>2026-11-08 14:28:53 +0100
commitb08c0bfd3ffcfd39ef2689882fafafbc31f16ffd (patch)
treea90ac35cd22a3d04c0c2b8f7d6ddb5d3f4b45b93 /docs/access.md
parente959799c95b4d6e33f6b95d4c38a5386cc1dcf02 (diff)
access: forgetting and revoking as the API lets
Two writes the API lets a user make were refused by the rules: * DELETE /peers/{pk}, with write on _continuum/forgotten alone, writes the forget record and removes the member's entry in one change; the rules wanted write on the entry. Removing an entry is now also taken in a change forgetting that member, from a user who may forget it. * DELETE /admin/users/{name}/tokens by a user who manages users writes _continuum/logouts/<name>; the rules wanted write there. One who may write _continuum/users may now write anyone's logouts entry. Review finding 3 (DELETE /peers, revoking tokens).
Diffstat (limited to 'docs/access.md')
-rw-r--r--docs/access.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/access.md b/docs/access.md
index d46627a..3bc824b 100644
--- a/docs/access.md
+++ b/docs/access.md
@@ -220,12 +220,13 @@ written before the policy (at its dependencies) is judged by none: history from
stays as it is, wherever it comes from later (a joining node catching up, say).
* A member's entry (`_continuum/members/<id>`) and its votes are written by that member
- only; removing an entry, also by a user who may write there.
+ only; removing an entry, also by a user who may write there, or who forgets the
+ member in the same change (`DELETE /peers/{pk}`, with `_continuum/forgotten`).
* Epochs and the swarm ID (`_continuum/epochs`, `_continuum/swarm`) by an epoch's first
change only (the genesis change, a remake's snapshot).
* A remake's decision by the coordinator its proposal names; the rest of a record by
any member.
-* A user's tokens revoked by that user too (logging out).
+* A user's tokens revoked by that user too (logging out), and by one who manages users.
* A member's forget record cancelled by that member too (forgotten while alive).
* Everything else, protocol data or not, by a user the registry lets write there.
* A map made on the way to what a change writes, where there was none (`servers`, for a