matrix, docs: describe promotion/reset as rehomed, not as a pending fix
Both spots hedged the swarm-level framing with a temporal qualifier
("until then", "today") that read as future work awaiting a fix, on
top of the framing itself. Drops the qualifiers; the operations are
swarm-level and rehomed there now, not pending anything from the hive.
This commit is contained in:
parent
67ba28448f
commit
19cae964c8
3 changed files with 21 additions and 17 deletions
|
|
@ -170,16 +170,17 @@ being the rooms' own creator at power level 100 — there is no homeserver
|
||||||
admin in any of it, and no Synapse admin API to reach for either, since
|
admin in any of it, and no Synapse admin API to reach for either, since
|
||||||
tuwunel has none.
|
tuwunel has none.
|
||||||
|
|
||||||
Two operations do need an admin **sender**, and neither works today:
|
Two operations need an admin **sender**: `hivectl matrix promote-user`
|
||||||
`hivectl matrix promote-user` and `hivectl matrix reset-password`. Both
|
and `hivectl matrix reset-password`. Both are `!admin …` messages into
|
||||||
are `!admin …` messages into `#admins:<server_name>`, and tuwunel only
|
`#admins:<server_name>`, and tuwunel only treats a message as a command
|
||||||
treats a message as a command when its sender is already an admin. They
|
when its sender is already an admin. They're swarm-level operations,
|
||||||
are swarm-level operations and are being rehomed as such; until then
|
rehomed to the swarm tier rather than granted here; from the hive,
|
||||||
they fail with the admin room's refusal rather than being served by an
|
`@hive:` has no admin sender to make that call with, so both get the
|
||||||
over-privileged credential that every other call site would also carry.
|
admin room's refusal rather than an over-privileged credential that
|
||||||
The one hive-side path that depends on them is the automatic password
|
every other call site would also carry. The one hive-side path that
|
||||||
recovery for an agent whose stored password is gone — the ordinary
|
depends on them is the automatic password recovery for an agent whose
|
||||||
appservice re-login above is unaffected.
|
stored password is gone — the ordinary appservice re-login above is
|
||||||
|
unaffected.
|
||||||
|
|
||||||
<details><summary>Upgrading a hive that used the registration token</summary>
|
<details><summary>Upgrading a hive that used the registration token</summary>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,12 +79,13 @@ hivectl matrix invite @mara:server --room '#hive-chat:server' # ...or to a spec
|
||||||
access token path. Safe to run again — idempotent.
|
access token path. Safe to run again — idempotent.
|
||||||
- `promote-user`: promotes an already-registered user to homeserver
|
- `promote-user`: promotes an already-registered user to homeserver
|
||||||
admin by an `!admin` command in `#admins`. ⚠️ Needs an admin **sender**,
|
admin by an `!admin` command in `#admins`. ⚠️ Needs an admin **sender**,
|
||||||
which `@hive:` isn't — this operation is being rehomed at swarm level
|
which `@hive:` isn't — promotion is a swarm-level operation, rehomed to
|
||||||
and doesn't work from the hive today.
|
the swarm tier rather than granted here, so it has no admin sender to
|
||||||
|
call it with from the hive.
|
||||||
- `reset-password`: asks the admin room to set a new random
|
- `reset-password`: asks the admin room to set a new random
|
||||||
password and prints it to stdout. ⚠️ Needs an admin **sender** too, so
|
password and prints it to stdout. ⚠️ Same admin-**sender** requirement,
|
||||||
it doesn't work from the hive today either. Useful if an agent or human lost
|
and the same swarm-level rehoming, so it's unavailable from the hive
|
||||||
credentials.
|
too. Useful if an agent or human lost credentials.
|
||||||
- `invite`: invites a matrix user (full `@user:server` or a bare
|
- `invite`: invites a matrix user (full `@user:server` or a bare
|
||||||
localpart, qualified with the homeserver's `server_name`) to the hive
|
localpart, qualified with the homeserver's `server_name`) to the hive
|
||||||
Space by default, or to a `--room` id / `#alias`. Uses the sender
|
Space by default, or to a `--room` id / `#alias`. Uses the sender
|
||||||
|
|
|
||||||
|
|
@ -1145,8 +1145,10 @@ pub async fn promote_user_to_admin(
|
||||||
/// on the next provisioning sweep.
|
/// on the next provisioning sweep.
|
||||||
///
|
///
|
||||||
/// ⚠️ Same admin-**sender** requirement as [`promote_user_to_admin`], and
|
/// ⚠️ Same admin-**sender** requirement as [`promote_user_to_admin`], and
|
||||||
/// the same consequence: `@hive:` is an ordinary account, so this fails
|
/// the same consequence: `@hive:` is an ordinary account with no admin
|
||||||
/// from the hive until the operation is rehomed at swarm level.
|
/// sender, and reset, like promotion, is a swarm-level operation rehomed
|
||||||
|
/// to the swarm tier rather than granted here — so it has no working
|
||||||
|
/// sender from the hive either.
|
||||||
///
|
///
|
||||||
/// Returns the new password for use in subsequent `login_user` calls.
|
/// Returns the new password for use in subsequent `login_user` calls.
|
||||||
pub async fn reset_user_password(
|
pub async fn reset_user_password(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue