Mints a single-use, passwordless registration token per recipient, pinned to
their address and optionally to a username, and schedules the invite emails.
The links are only ever mailed to the recipients, so the response carries a
count rather than the tokens.
Minting moves out of the queue and into the caller so a username that is
already taken is refused up front, rather than emailed out as a link nobody
can register with. That leaves the fan-out job with nothing to do, so
`SendRoomInviteEmailsJob` goes away and `SendRoomInviteEmailJob` carries the
token: it takes both the address and the invite link from it, which replaces
the `matrix.to` stub and keeps the link and its recipient together.
`manage send-room-invites` and the endpoint share the minting through
`mas_storage::room_invite`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Schedules a `SendRoomInviteEmailsJob` from the command line, so the room
invite emails can be triggered by hand without an API caller. A worker has
to be running to actually send them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Removes mentions of the `mas-cli templates save` command
- Removes the old `experimental` flags
- Removes the old `policy.data.passwords` configs
- Document the `policy.data.client_registration` flags
- Remove references to the pre-built macOS binaries
- Explains how to get syn2mas
- State that you need to prepare the database before importing data
- Clean up the reverse proxy documentation
- Clarify that you don't need to provede templates/policy/assets
manually when running the docker image