fix: Remove extraneous dashes from command help

This commit is contained in:
Ginger 2026-01-12 10:47:19 -05:00
parent a028049e6f
commit 00eeeb78de
No known key found for this signature in database
34 changed files with 314 additions and 314 deletions

View file

@ -1,12 +1,12 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin appservices` # `!admin appservices`
- Commands for managing appservices Commands for managing appservices
## `!admin appservices register` ## `!admin appservices register`
- Register an appservice using its registration YAML Register an appservice using its registration YAML
This command needs a YAML generated by an appservice (such as a bridge), which must be provided in a Markdown code block below the command. This command needs a YAML generated by an appservice (such as a bridge), which must be provided in a Markdown code block below the command.
@ -14,16 +14,16 @@ Registering a new bridge using the ID of an existing bridge will replace the old
## `!admin appservices unregister` ## `!admin appservices unregister`
- Unregister an appservice using its ID Unregister an appservice using its ID
You can find the ID using the `list-appservices` command. You can find the ID using the `list-appservices` command.
## `!admin appservices show-appservice-config` ## `!admin appservices show-appservice-config`
- Show an appservice's config using its ID Show an appservice's config using its ID
You can find the ID using the `list-appservices` command. You can find the ID using the `list-appservices` command.
## `!admin appservices list-registered` ## `!admin appservices list-registered`
- List all the currently registered appservices List all the currently registered appservices

View file

@ -1,7 +1,7 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin check` # `!admin check`
- Commands for checking integrity Commands for checking integrity
## `!admin check check-all-users` ## `!admin check check-all-users`

View file

@ -1,20 +1,20 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin debug` # `!admin debug`
- Commands for debugging things Commands for debugging things
## `!admin debug echo` ## `!admin debug echo`
- Echo input of admin command Echo input of admin command
## `!admin debug get-auth-chain` ## `!admin debug get-auth-chain`
- Get the auth_chain of a PDU Get the auth_chain of a PDU
## `!admin debug parse-pdu` ## `!admin debug parse-pdu`
- Parse and print a PDU from a JSON Parse and print a PDU from a JSON
The PDU event is only checked for validity and is not added to the database. The PDU event is only checked for validity and is not added to the database.
@ -22,23 +22,23 @@ This command needs a JSON blob provided in a Markdown code block below the comma
## `!admin debug get-pdu` ## `!admin debug get-pdu`
- Retrieve and print a PDU by EventID from the Continuwuity database Retrieve and print a PDU by EventID from the Continuwuity database
## `!admin debug get-short-pdu` ## `!admin debug get-short-pdu`
- Retrieve and print a PDU by PduId from the Continuwuity database Retrieve and print a PDU by PduId from the Continuwuity database
## `!admin debug get-remote-pdu` ## `!admin debug get-remote-pdu`
- Attempts to retrieve a PDU from a remote server. **Does not** insert it into the database or persist it anywhere Attempts to retrieve a PDU from a remote server. **Does not** insert it into the database or persist it anywhere
## `!admin debug get-remote-pdu-list` ## `!admin debug get-remote-pdu-list`
- Same as `get-remote-pdu` but accepts a codeblock newline delimited list of PDUs and a single server to fetch from Same as `get-remote-pdu` but accepts a codeblock newline delimited list of PDUs and a single server to fetch from
## `!admin debug get-room-state` ## `!admin debug get-room-state`
- Gets all the room state events for the specified room. Gets all the room state events for the specified room.
This is functionally equivalent to `GET /_matrix/client/v3/rooms/{roomid}/state`, except the admin command does *not* check if the sender user is allowed to see state events. This is done because it's implied that server admins here have database access and can see/get room info themselves anyways if they were malicious admins. This is functionally equivalent to `GET /_matrix/client/v3/rooms/{roomid}/state`, except the admin command does *not* check if the sender user is allowed to see state events. This is done because it's implied that server admins here have database access and can see/get room info themselves anyways if they were malicious admins.
@ -46,49 +46,49 @@ Of course the check is still done on the actual client API.
## `!admin debug get-signing-keys` ## `!admin debug get-signing-keys`
- Get and display signing keys from local cache or remote server Get and display signing keys from local cache or remote server
## `!admin debug get-verify-keys` ## `!admin debug get-verify-keys`
- Get and display signing keys from local cache or remote server Get and display signing keys from local cache or remote server
## `!admin debug ping` ## `!admin debug ping`
- Sends a federation request to the remote server's `/_matrix/federation/v1/version` endpoint and measures the latency it took for the server to respond Sends a federation request to the remote server's `/_matrix/federation/v1/version` endpoint and measures the latency it took for the server to respond
## `!admin debug force-device-list-updates` ## `!admin debug force-device-list-updates`
- Forces device lists for all local and remote users to be updated (as having new keys available) Forces device lists for all local and remote users to be updated (as having new keys available)
## `!admin debug change-log-level` ## `!admin debug change-log-level`
- Change tracing log level/filter on the fly Change tracing log level/filter on the fly
This accepts the same format as the `log` config option. This accepts the same format as the `log` config option.
## `!admin debug verify-json` ## `!admin debug verify-json`
- Verify JSON signatures Verify JSON signatures
This command needs a JSON blob provided in a Markdown code block below the command. This command needs a JSON blob provided in a Markdown code block below the command.
## `!admin debug verify-pdu` ## `!admin debug verify-pdu`
- Verify PDU Verify PDU
This re-verifies a PDU existing in the database found by ID. This re-verifies a PDU existing in the database found by ID.
## `!admin debug first-pdu-in-room` ## `!admin debug first-pdu-in-room`
- Prints the very first PDU in the specified room (typically m.room.create) Prints the very first PDU in the specified room (typically m.room.create)
## `!admin debug latest-pdu-in-room` ## `!admin debug latest-pdu-in-room`
- Prints the latest ("last") PDU in the specified room (typically a message) Prints the latest ("last") PDU in the specified room (typically a message)
## `!admin debug force-set-room-state-from-server` ## `!admin debug force-set-room-state-from-server`
- Forcefully replaces the room state of our local copy of the specified room, with the copy (auth chain and room state events) the specified remote server says. Forcefully replaces the room state of our local copy of the specified room, with the copy (auth chain and room state events) the specified remote server says.
A common desire for room deletion is to simply "reset" our copy of the room. While this admin command is not a replacement for that, if you know you have split/broken room state and you know another server in the room that has the best/working room state, this command can let you use their room state. Such example is your server saying users are in a room, but other servers are saying they're not in the room in question. A common desire for room deletion is to simply "reset" our copy of the room. While this admin command is not a replacement for that, if you know you have split/broken room state and you know another server in the room that has the best/working room state, this command can let you use their room state. Such example is your server saying users are in a room, but other servers are saying they're not in the room in question.
@ -96,47 +96,47 @@ This command will get the latest PDU in the room we know about, and request the
## `!admin debug resolve-true-destination` ## `!admin debug resolve-true-destination`
- Runs a server name through Continuwuity's true destination resolution process Runs a server name through Continuwuity's true destination resolution process
Useful for debugging well-known issues Useful for debugging well-known issues
## `!admin debug memory-stats` ## `!admin debug memory-stats`
- Print extended memory usage Print extended memory usage
Optional argument is a character mask (a sequence of characters in any order) which enable additional extended statistics. Known characters are "abdeglmx". For convenience, a '*' will enable everything. Optional argument is a character mask (a sequence of characters in any order) which enable additional extended statistics. Known characters are "abdeglmx". For convenience, a '*' will enable everything.
## `!admin debug runtime-metrics` ## `!admin debug runtime-metrics`
- Print general tokio runtime metric totals Print general tokio runtime metric totals
## `!admin debug runtime-interval` ## `!admin debug runtime-interval`
- Print detailed tokio runtime metrics accumulated since last command invocation Print detailed tokio runtime metrics accumulated since last command invocation
## `!admin debug time` ## `!admin debug time`
- Print the current time Print the current time
## `!admin debug list-dependencies` ## `!admin debug list-dependencies`
- List dependencies List dependencies
## `!admin debug database-stats` ## `!admin debug database-stats`
- Get database statistics Get database statistics
## `!admin debug trim-memory` ## `!admin debug trim-memory`
- Trim memory usage Trim memory usage
## `!admin debug database-files` ## `!admin debug database-files`
- List database files List database files
## `!admin debug tester` ## `!admin debug tester`
- Developer test stubs Developer test stubs
### `!admin debug tester panic` ### `!admin debug tester panic`

View file

@ -1,24 +1,24 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin federation` # `!admin federation`
- Commands for managing federation Commands for managing federation
## `!admin federation incoming-federation` ## `!admin federation incoming-federation`
- List all rooms we are currently handling an incoming pdu from List all rooms we are currently handling an incoming pdu from
## `!admin federation disable-room` ## `!admin federation disable-room`
- Disables incoming federation handling for a room Disables incoming federation handling for a room
## `!admin federation enable-room` ## `!admin federation enable-room`
- Enables incoming federation handling for a room again Enables incoming federation handling for a room again
## `!admin federation fetch-support-well-known` ## `!admin federation fetch-support-well-known`
- Fetch `/.well-known/matrix/support` from the specified server Fetch `/.well-known/matrix/support` from the specified server
Despite the name, this is not a federation endpoint and does not go through the federation / server resolution process as per-spec this is supposed to be served at the server_name. Despite the name, this is not a federation endpoint and does not go through the federation / server resolution process as per-spec this is supposed to be served at the server_name.
@ -26,4 +26,4 @@ Respecting homeservers put this file here for listing administration, moderation
## `!admin federation remote-user-in-rooms` ## `!admin federation remote-user-in-rooms`
- Lists all the rooms we share/track with the specified *remote* user Lists all the rooms we share/track with the specified *remote* user

View file

@ -11,13 +11,13 @@ Admin commands allow server administrators to manage the server from within thei
## Categories ## Categories
- [`!admin appservices`](appservices/) - Commands for managing appservices - [`!admin appservices`](appservices/): Commands for managing appservices
- [`!admin users`](users/) - Commands for managing local users - [`!admin users`](users/): Commands for managing local users
- [`!admin token`](token/) - Commands for managing registration tokens - [`!admin token`](token/): Commands for managing registration tokens
- [`!admin rooms`](rooms/) - Commands for managing rooms - [`!admin rooms`](rooms/): Commands for managing rooms
- [`!admin federation`](federation/) - Commands for managing federation - [`!admin federation`](federation/): Commands for managing federation
- [`!admin server`](server/) - Commands for managing the server - [`!admin server`](server/): Commands for managing the server
- [`!admin media`](media/) - Commands for managing media - [`!admin media`](media/): Commands for managing media
- [`!admin check`](check/) - Commands for checking integrity - [`!admin check`](check/): Commands for checking integrity
- [`!admin debug`](debug/) - Commands for debugging things - [`!admin debug`](debug/): Commands for debugging things
- [`!admin query`](query/) - Low-level queries for database getters and iterators - [`!admin query`](query/): Low-level queries for database getters and iterators

View file

@ -1,16 +1,16 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin media` # `!admin media`
- Commands for managing media Commands for managing media
## `!admin media delete` ## `!admin media delete`
- Deletes a single media file from our database and on the filesystem via a single MXC URL or event ID (not redacted) Deletes a single media file from our database and on the filesystem via a single MXC URL or event ID (not redacted)
## `!admin media delete-list` ## `!admin media delete-list`
- Deletes a codeblock list of MXC URLs from our database and on the filesystem. This will always ignore errors Deletes a codeblock list of MXC URLs from our database and on the filesystem. This will always ignore errors
## `!admin media delete-past-remote-media` ## `!admin media delete-past-remote-media`
@ -27,15 +27,15 @@ default.
* Delete all remote and local media from 3 days ago, up until now: * Delete all remote and local media from 3 days ago, up until now:
`!admin media delete-past-remote-media -a 3d `!admin media delete-past-remote-media -a 3d
--yes-i-want-to-delete-local-media` -yes-i-want-to-delete-local-media`
## `!admin media delete-all-from-user` ## `!admin media delete-all-from-user`
- Deletes all the local media from a local user on our server. This will always ignore errors by default Deletes all the local media from a local user on our server. This will always ignore errors by default
## `!admin media delete-all-from-server` ## `!admin media delete-all-from-server`
- Deletes all remote media from the specified remote server. This will always ignore errors by default Deletes all remote media from the specified remote server. This will always ignore errors by default
## `!admin media get-file-info` ## `!admin media get-file-info`

View file

@ -1,48 +1,48 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin query` # `!admin query`
- Low-level queries for database getters and iterators Low-level queries for database getters and iterators
## `!admin query account-data` ## `!admin query account-data`
- account_data.rs iterators and getters account_data.rs iterators and getters
### `!admin query account-data changes-since` ### `!admin query account-data changes-since`
- Returns all changes to the account data that happened after `since` Returns all changes to the account data that happened after `since`
### `!admin query account-data account-data-get` ### `!admin query account-data account-data-get`
- Searches the account data for a specific kind Searches the account data for a specific kind
## `!admin query appservice` ## `!admin query appservice`
- appservice.rs iterators and getters appservice.rs iterators and getters
### `!admin query appservice get-registration` ### `!admin query appservice get-registration`
- Gets the appservice registration info/details from the ID as a string Gets the appservice registration info/details from the ID as a string
### `!admin query appservice all` ### `!admin query appservice all`
- Gets all appservice registrations with their ID and registration info Gets all appservice registrations with their ID and registration info
## `!admin query presence` ## `!admin query presence`
- presence.rs iterators and getters presence.rs iterators and getters
### `!admin query presence get-presence` ### `!admin query presence get-presence`
- Returns the latest presence event for the given user Returns the latest presence event for the given user
### `!admin query presence presence-since` ### `!admin query presence presence-since`
- Iterator of the most recent presence updates that happened after the event with id `since` Iterator of the most recent presence updates that happened after the event with id `since`
## `!admin query room-alias` ## `!admin query room-alias`
- rooms/alias.rs iterators and getters rooms/alias.rs iterators and getters
### `!admin query room-alias resolve-local-alias` ### `!admin query room-alias resolve-local-alias`
@ -50,15 +50,15 @@ _(no description)_
### `!admin query room-alias local-aliases-for-room` ### `!admin query room-alias local-aliases-for-room`
- Iterator of all our local room aliases for the room ID Iterator of all our local room aliases for the room ID
### `!admin query room-alias all-local-aliases` ### `!admin query room-alias all-local-aliases`
- Iterator of all our local aliases in our database with their room IDs Iterator of all our local aliases in our database with their room IDs
## `!admin query room-state-cache` ## `!admin query room-state-cache`
- rooms/state_cache iterators and getters rooms/state_cache iterators and getters
### `!admin query room-state-cache server-in-room` ### `!admin query room-state-cache server-in-room`
@ -126,7 +126,7 @@ _(no description)_
## `!admin query room-timeline` ## `!admin query room-timeline`
- rooms/timeline iterators and getters rooms/timeline iterators and getters
### `!admin query room-timeline pdus` ### `!admin query room-timeline pdus`
@ -138,7 +138,7 @@ _(no description)_
## `!admin query globals` ## `!admin query globals`
- globals.rs iterators and getters globals.rs iterators and getters
### `!admin query globals database-version` ### `!admin query globals database-version`
@ -154,19 +154,19 @@ _(no description)_
### `!admin query globals signing-keys-for` ### `!admin query globals signing-keys-for`
- This returns an empty `Ok(BTreeMap<..>)` when there are no keys found for the server This returns an empty `Ok(BTreeMap<..>)` when there are no keys found for the server
## `!admin query sending` ## `!admin query sending`
- sending.rs iterators and getters sending.rs iterators and getters
### `!admin query sending active-requests` ### `!admin query sending active-requests`
- Queries database for all `servercurrentevent_data` Queries database for all `servercurrentevent_data`
### `!admin query sending active-requests-for` ### `!admin query sending active-requests-for`
- Queries database for `servercurrentevent_data` but for a specific destination Queries database for `servercurrentevent_data` but for a specific destination
This command takes only *one* format of these arguments: This command takes only *one* format of these arguments:
@ -176,7 +176,7 @@ See src/service/sending/mod.rs for the definition of the `Destination` enum
### `!admin query sending queued-requests` ### `!admin query sending queued-requests`
- Queries database for `servernameevent_data` which are the queued up requests that will eventually be sent Queries database for `servernameevent_data` which are the queued up requests that will eventually be sent
This command takes only *one* format of these arguments: This command takes only *one* format of these arguments:
@ -190,7 +190,7 @@ _(no description)_
## `!admin query users` ## `!admin query users`
- users.rs iterators and getters users.rs iterators and getters
### `!admin query users count-users` ### `!admin query users count-users`
@ -274,7 +274,7 @@ _(no description)_
## `!admin query resolver` ## `!admin query resolver`
- resolver service resolver service
### `!admin query resolver destinations-cache` ### `!admin query resolver destinations-cache`
@ -286,15 +286,15 @@ Query the overrides cache
## `!admin query pusher` ## `!admin query pusher`
- pusher service pusher service
### `!admin query pusher get-pushers` ### `!admin query pusher get-pushers`
- Returns all the pushers for the user Returns all the pushers for the user
## `!admin query short` ## `!admin query short`
- short service short service
### `!admin query short short-event-id` ### `!admin query short short-event-id`
@ -306,56 +306,56 @@ _(no description)_
## `!admin query raw` ## `!admin query raw`
- raw service raw service
### `!admin query raw raw-maps` ### `!admin query raw raw-maps`
- List database maps List database maps
### `!admin query raw raw-get` ### `!admin query raw raw-get`
- Raw database query Raw database query
### `!admin query raw raw-del` ### `!admin query raw raw-del`
- Raw database delete (for string keys) Raw database delete (for string keys)
### `!admin query raw raw-keys` ### `!admin query raw raw-keys`
- Raw database keys iteration Raw database keys iteration
### `!admin query raw raw-keys-sizes` ### `!admin query raw raw-keys-sizes`
- Raw database key size breakdown Raw database key size breakdown
### `!admin query raw raw-keys-total` ### `!admin query raw raw-keys-total`
- Raw database keys total bytes Raw database keys total bytes
### `!admin query raw raw-vals-sizes` ### `!admin query raw raw-vals-sizes`
- Raw database values size breakdown Raw database values size breakdown
### `!admin query raw raw-vals-total` ### `!admin query raw raw-vals-total`
- Raw database values total bytes Raw database values total bytes
### `!admin query raw raw-iter` ### `!admin query raw raw-iter`
- Raw database items iteration Raw database items iteration
### `!admin query raw raw-keys-from` ### `!admin query raw raw-keys-from`
- Raw database keys iteration Raw database keys iteration
### `!admin query raw raw-iter-from` ### `!admin query raw raw-iter-from`
- Raw database items iteration Raw database items iteration
### `!admin query raw raw-count` ### `!admin query raw raw-count`
- Raw database record count Raw database record count
### `!admin query raw compact` ### `!admin query raw compact`
- Compact database Compact database

View file

@ -1,83 +1,83 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin rooms` # `!admin rooms`
- Commands for managing rooms Commands for managing rooms
## `!admin rooms list-rooms` ## `!admin rooms list-rooms`
- List all rooms the server knows about List all rooms the server knows about
## `!admin rooms info` ## `!admin rooms info`
- View information about a room we know about View information about a room we know about
### `!admin rooms info list-joined-members` ### `!admin rooms info list-joined-members`
- List joined members in a room List joined members in a room
### `!admin rooms info view-room-topic` ### `!admin rooms info view-room-topic`
- Displays room topic Displays room topic
Room topics can be huge, so this is in its own separate command Room topics can be huge, so this is in its own separate command
## `!admin rooms moderation` ## `!admin rooms moderation`
- Manage moderation of remote or local rooms Manage moderation of remote or local rooms
### `!admin rooms moderation ban-room` ### `!admin rooms moderation ban-room`
- Bans a room from local users joining and evicts all our local users (including server admins) from the room. Also blocks any invites (local and remote) for the banned room, and disables federation entirely with it Bans a room from local users joining and evicts all our local users (including server admins) from the room. Also blocks any invites (local and remote) for the banned room, and disables federation entirely with it
### `!admin rooms moderation ban-list-of-rooms` ### `!admin rooms moderation ban-list-of-rooms`
- Bans a list of rooms (room IDs and room aliases) from a newline delimited codeblock similar to `user deactivate-all`. Applies the same steps as ban-room Bans a list of rooms (room IDs and room aliases) from a newline delimited codeblock similar to `user deactivate-all`. Applies the same steps as ban-room
### `!admin rooms moderation unban-room` ### `!admin rooms moderation unban-room`
- Unbans a room to allow local users to join again Unbans a room to allow local users to join again
### `!admin rooms moderation list-banned-rooms` ### `!admin rooms moderation list-banned-rooms`
- List of all rooms we have banned List of all rooms we have banned
## `!admin rooms alias` ## `!admin rooms alias`
- Manage rooms' aliases Manage rooms' aliases
### `!admin rooms alias set` ### `!admin rooms alias set`
- Make an alias point to a room Make an alias point to a room
### `!admin rooms alias remove` ### `!admin rooms alias remove`
- Remove a local alias Remove a local alias
### `!admin rooms alias which` ### `!admin rooms alias which`
- Show which room is using an alias Show which room is using an alias
### `!admin rooms alias list` ### `!admin rooms alias list`
- List aliases currently being used List aliases currently being used
## `!admin rooms directory` ## `!admin rooms directory`
- Manage the room directory Manage the room directory
### `!admin rooms directory publish` ### `!admin rooms directory publish`
- Publish a room to the room directory Publish a room to the room directory
### `!admin rooms directory unpublish` ### `!admin rooms directory unpublish`
- Unpublish a room to the room directory Unpublish a room to the room directory
### `!admin rooms directory list` ### `!admin rooms directory list`
- List rooms that are published List rooms that are published
## `!admin rooms exists` ## `!admin rooms exists`
- Check if we know about a room Check if we know about a room

View file

@ -1,53 +1,53 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin server` # `!admin server`
- Commands for managing the server Commands for managing the server
## `!admin server uptime` ## `!admin server uptime`
- Time elapsed since startup Time elapsed since startup
## `!admin server show-config` ## `!admin server show-config`
- Show configuration values Show configuration values
## `!admin server reload-config` ## `!admin server reload-config`
- Reload configuration values Reload configuration values
## `!admin server list-features` ## `!admin server list-features`
- List the features built into the server List the features built into the server
## `!admin server memory-usage` ## `!admin server memory-usage`
- Print database memory usage statistics Print database memory usage statistics
## `!admin server clear-caches` ## `!admin server clear-caches`
- Clears all of Continuwuity's caches Clears all of Continuwuity's caches
## `!admin server backup-database` ## `!admin server backup-database`
- Performs an online backup of the database (only available for RocksDB at the moment) Performs an online backup of the database (only available for RocksDB at the moment)
## `!admin server list-backups` ## `!admin server list-backups`
- List database backups List database backups
## `!admin server admin-notice` ## `!admin server admin-notice`
- Send a message to the admin room Send a message to the admin room
## `!admin server reload-mods` ## `!admin server reload-mods`
- Hot-reload the server Hot-reload the server
## `!admin server restart` ## `!admin server restart`
- Restart the server Restart the server
## `!admin server shutdown` ## `!admin server shutdown`
- Shutdown the server Shutdown the server

View file

@ -1,17 +1,17 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin token` # `!admin token`
- Commands for managing registration tokens Commands for managing registration tokens
## `!admin token issue` ## `!admin token issue`
- Issue a new registration token Issue a new registration token
## `!admin token revoke` ## `!admin token revoke`
- Revoke a registration token Revoke a registration token
## `!admin token list` ## `!admin token list`
- List all registration tokens List all registration tokens

View file

@ -1,26 +1,26 @@
<!-- This file is generated by `cargo xtask generate-docs`. Do not edit. --> <!-- This file is generated by `cargo xtask generate-docs`. Do not edit. -->
# `!admin users` # `!admin users`
- Commands for managing local users Commands for managing local users
## `!admin users create-user` ## `!admin users create-user`
- Create a new user Create a new user
## `!admin users reset-password` ## `!admin users reset-password`
- Reset user password Reset user password
## `!admin users deactivate` ## `!admin users deactivate`
- Deactivate a user Deactivate a user
User will be removed from all rooms by default. Use --no-leave-rooms to not leave all rooms by default. User will be removed from all rooms by default. Use --no-leave-rooms to not leave all rooms by default.
## `!admin users deactivate-all` ## `!admin users deactivate-all`
- Deactivate a list of users Deactivate a list of users
Recommended to use in conjunction with list-local-users. Recommended to use in conjunction with list-local-users.
@ -34,13 +34,13 @@ This command needs a newline separated list of users provided in a Markdown code
## `!admin users logout` ## `!admin users logout`
- Forcefully log a user out of all of their devices. Forcefully log a user out of all of their devices.
This will invalidate all access tokens for the specified user, effectively logging them out from all sessions. Note that this is destructive and may result in data loss for the user, such as encryption keys. Use with caution. Can only be used in the admin room. This will invalidate all access tokens for the specified user, effectively logging them out from all sessions. Note that this is destructive and may result in data loss for the user, such as encryption keys. Use with caution. Can only be used in the admin room.
## `!admin users suspend` ## `!admin users suspend`
- Suspend a user Suspend a user
Suspended users are able to log in, sync, and read messages, but are not able to send events nor redact them, cannot change their profile, and are unable to join, invite to, or knock on rooms. Suspended users are able to log in, sync, and read messages, but are not able to send events nor redact them, cannot change their profile, and are unable to join, invite to, or knock on rooms.
@ -48,83 +48,83 @@ Suspended users can still leave rooms and deactivate their account. Suspending t
## `!admin users unsuspend` ## `!admin users unsuspend`
- Unsuspend a user Unsuspend a user
Reverses the effects of the `suspend` command, allowing the user to send messages, change their profile, create room invites, etc. Reverses the effects of the `suspend` command, allowing the user to send messages, change their profile, create room invites, etc.
## `!admin users lock` ## `!admin users lock`
- Lock a user Lock a user
Locked users are unable to use their accounts beyond logging out. This is akin to a temporary deactivation that does not change the user's password. This can be used to quickly prevent a user from accessing their account. Locked users are unable to use their accounts beyond logging out. This is akin to a temporary deactivation that does not change the user's password. This can be used to quickly prevent a user from accessing their account.
## `!admin users unlock` ## `!admin users unlock`
- Unlock a user Unlock a user
Reverses the effects of the `lock` command, allowing the user to use their account again. Reverses the effects of the `lock` command, allowing the user to use their account again.
## `!admin users enable-login` ## `!admin users enable-login`
- Enable login for a user Enable login for a user
## `!admin users disable-login` ## `!admin users disable-login`
- Disable login for a user Disable login for a user
Disables login for the specified user without deactivating or locking their account. This prevents the user from obtaining new access tokens, but does not invalidate existing sessions. Disables login for the specified user without deactivating or locking their account. This prevents the user from obtaining new access tokens, but does not invalidate existing sessions.
## `!admin users list-users` ## `!admin users list-users`
- List local users in the database List local users in the database
## `!admin users list-joined-rooms` ## `!admin users list-joined-rooms`
- Lists all the rooms (local and remote) that the specified user is joined in Lists all the rooms (local and remote) that the specified user is joined in
## `!admin users force-join-room` ## `!admin users force-join-room`
- Manually join a local user to a room Manually join a local user to a room
## `!admin users force-leave-room` ## `!admin users force-leave-room`
- Manually leave a local user from a room Manually leave a local user from a room
## `!admin users force-leave-remote-room` ## `!admin users force-leave-remote-room`
- Manually leave a remote room for a local user Manually leave a remote room for a local user
## `!admin users force-demote` ## `!admin users force-demote`
- Forces the specified user to drop their power levels to the room default, if their permissions allow and the auth check permits Forces the specified user to drop their power levels to the room default, if their permissions allow and the auth check permits
## `!admin users make-user-admin` ## `!admin users make-user-admin`
- Grant server-admin privileges to a user Grant server-admin privileges to a user
## `!admin users put-room-tag` ## `!admin users put-room-tag`
- Puts a room tag for the specified user and room ID. Puts a room tag for the specified user and room ID.
This is primarily useful if you'd like to set your admin room to the special "System Alerts" section in Element as a way to permanently see your admin room without it being buried away in your favourites or rooms. To do this, you would pass your user, your admin room's internal ID, and the tag name `m.server_notice`. This is primarily useful if you'd like to set your admin room to the special "System Alerts" section in Element as a way to permanently see your admin room without it being buried away in your favourites or rooms. To do this, you would pass your user, your admin room's internal ID, and the tag name `m.server_notice`.
## `!admin users delete-room-tag` ## `!admin users delete-room-tag`
- Deletes the room tag for the specified user and room ID Deletes the room tag for the specified user and room ID
## `!admin users get-room-tags` ## `!admin users get-room-tags`
- Gets all the room tags for the specified user and room ID Gets all the room tags for the specified user and room ID
## `!admin users redact-event` ## `!admin users redact-event`
- Attempts to forcefully redact the specified event ID from the sender user Attempts to forcefully redact the specified event ID from the sender user
This is only valid for local users This is only valid for local users
## `!admin users force-join-list-of-local-users` ## `!admin users force-join-list-of-local-users`
- Force joins a specified list of local users to join the specified room. Force joins a specified list of local users to join the specified room.
Specify a codeblock of usernames. Specify a codeblock of usernames.
@ -134,7 +134,7 @@ Requires the `--yes-i-want-to-do-this` flag.
## `!admin users force-join-all-local-users` ## `!admin users force-join-all-local-users`
- Force joins all local users to the specified room. Force joins all local users to the specified room.
At least 1 server admin must be in the room to reduce abuse. At least 1 server admin must be in the room to reduce abuse.

View file

@ -19,43 +19,43 @@ use crate::{
#[command(name = conduwuit_core::name(), version = conduwuit_core::version())] #[command(name = conduwuit_core::name(), version = conduwuit_core::version())]
pub enum AdminCommand { pub enum AdminCommand {
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing appservices /// Commands for managing appservices
Appservices(AppserviceCommand), Appservices(AppserviceCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing local users /// Commands for managing local users
Users(UserCommand), Users(UserCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing registration tokens /// Commands for managing registration tokens
Token(TokenCommand), Token(TokenCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing rooms /// Commands for managing rooms
Rooms(RoomCommand), Rooms(RoomCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing federation /// Commands for managing federation
Federation(FederationCommand), Federation(FederationCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing the server /// Commands for managing the server
Server(ServerCommand), Server(ServerCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for managing media /// Commands for managing media
Media(MediaCommand), Media(MediaCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for checking integrity /// Commands for checking integrity
Check(CheckCommand), Check(CheckCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Commands for debugging things /// Commands for debugging things
Debug(DebugCommand), Debug(DebugCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Low-level queries for database getters and iterators /// Low-level queries for database getters and iterators
Query(QueryCommand), Query(QueryCommand),
} }

View file

@ -8,7 +8,7 @@ use crate::admin_command_dispatch;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
#[admin_command_dispatch] #[admin_command_dispatch]
pub enum AppserviceCommand { pub enum AppserviceCommand {
/// - Register an appservice using its registration YAML /// Register an appservice using its registration YAML
/// ///
/// This command needs a YAML generated by an appservice (such as a bridge), /// This command needs a YAML generated by an appservice (such as a bridge),
/// which must be provided in a Markdown code block below the command. /// which must be provided in a Markdown code block below the command.
@ -17,7 +17,7 @@ pub enum AppserviceCommand {
/// the old one. /// the old one.
Register, Register,
/// - Unregister an appservice using its ID /// Unregister an appservice using its ID
/// ///
/// You can find the ID using the `list-appservices` command. /// You can find the ID using the `list-appservices` command.
Unregister { Unregister {
@ -25,7 +25,7 @@ pub enum AppserviceCommand {
appservice_identifier: String, appservice_identifier: String,
}, },
/// - Show an appservice's config using its ID /// Show an appservice's config using its ID
/// ///
/// You can find the ID using the `list-appservices` command. /// You can find the ID using the `list-appservices` command.
#[clap(alias("show"))] #[clap(alias("show"))]
@ -34,7 +34,7 @@ pub enum AppserviceCommand {
appservice_identifier: String, appservice_identifier: String,
}, },
/// - List all the currently registered appservices /// List all the currently registered appservices
#[clap(alias("list"))] #[clap(alias("list"))]
ListRegistered, ListRegistered,
} }

View file

@ -12,18 +12,18 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum DebugCommand { pub enum DebugCommand {
/// - Echo input of admin command /// Echo input of admin command
Echo { Echo {
message: Vec<String>, message: Vec<String>,
}, },
/// - Get the auth_chain of a PDU /// Get the auth_chain of a PDU
GetAuthChain { GetAuthChain {
/// An event ID (the $ character followed by the base64 reference hash) /// An event ID (the $ character followed by the base64 reference hash)
event_id: OwnedEventId, event_id: OwnedEventId,
}, },
/// - Parse and print a PDU from a JSON /// Parse and print a PDU from a JSON
/// ///
/// The PDU event is only checked for validity and is not added to the /// The PDU event is only checked for validity and is not added to the
/// database. /// database.
@ -32,13 +32,13 @@ pub enum DebugCommand {
/// the command. /// the command.
ParsePdu, ParsePdu,
/// - Retrieve and print a PDU by EventID from the Continuwuity database /// Retrieve and print a PDU by EventID from the Continuwuity database
GetPdu { GetPdu {
/// An event ID (a $ followed by the base64 reference hash) /// An event ID (a $ followed by the base64 reference hash)
event_id: OwnedEventId, event_id: OwnedEventId,
}, },
/// - Retrieve and print a PDU by PduId from the Continuwuity database /// Retrieve and print a PDU by PduId from the Continuwuity database
GetShortPdu { GetShortPdu {
/// Shortroomid integer /// Shortroomid integer
shortroomid: ShortRoomId, shortroomid: ShortRoomId,
@ -47,7 +47,7 @@ pub enum DebugCommand {
shorteventid: ShortEventId, shorteventid: ShortEventId,
}, },
/// - Attempts to retrieve a PDU from a remote server. **Does not** insert /// Attempts to retrieve a PDU from a remote server. **Does not** insert
/// it into the database /// it into the database
/// or persist it anywhere. /// or persist it anywhere.
GetRemotePdu { GetRemotePdu {
@ -59,7 +59,7 @@ pub enum DebugCommand {
server: OwnedServerName, server: OwnedServerName,
}, },
/// - Same as `get-remote-pdu` but accepts a codeblock newline delimited /// Same as `get-remote-pdu` but accepts a codeblock newline delimited
/// list of PDUs and a single server to fetch from /// list of PDUs and a single server to fetch from
GetRemotePduList { GetRemotePduList {
/// Argument for us to attempt to fetch all the events from the /// Argument for us to attempt to fetch all the events from the
@ -71,7 +71,7 @@ pub enum DebugCommand {
force: bool, force: bool,
}, },
/// - Gets all the room state events for the specified room. /// Gets all the room state events for the specified room.
/// ///
/// This is functionally equivalent to `GET /// This is functionally equivalent to `GET
/// /_matrix/client/v3/rooms/{roomid}/state`, except the admin command does /// /_matrix/client/v3/rooms/{roomid}/state`, except the admin command does
@ -86,7 +86,7 @@ pub enum DebugCommand {
room_id: OwnedRoomOrAliasId, room_id: OwnedRoomOrAliasId,
}, },
/// - Get and display signing keys from local cache or remote server. /// Get and display signing keys from local cache or remote server.
GetSigningKeys { GetSigningKeys {
server_name: Option<OwnedServerName>, server_name: Option<OwnedServerName>,
@ -97,23 +97,23 @@ pub enum DebugCommand {
query: bool, query: bool,
}, },
/// - Get and display signing keys from local cache or remote server. /// Get and display signing keys from local cache or remote server.
GetVerifyKeys { GetVerifyKeys {
server_name: Option<OwnedServerName>, server_name: Option<OwnedServerName>,
}, },
/// - Sends a federation request to the remote server's /// Sends a federation request to the remote server's
/// `/_matrix/federation/v1/version` endpoint and measures the latency it /// `/_matrix/federation/v1/version` endpoint and measures the latency it
/// took for the server to respond /// took for the server to respond
Ping { Ping {
server: OwnedServerName, server: OwnedServerName,
}, },
/// - Forces device lists for all local and remote users to be updated (as /// Forces device lists for all local and remote users to be updated (as
/// having new keys available) /// having new keys available)
ForceDeviceListUpdates, ForceDeviceListUpdates,
/// - Change tracing log level/filter on the fly /// Change tracing log level/filter on the fly
/// ///
/// This accepts the same format as the `log` config option. /// This accepts the same format as the `log` config option.
ChangeLogLevel { ChangeLogLevel {
@ -125,34 +125,34 @@ pub enum DebugCommand {
reset: bool, reset: bool,
}, },
/// - Verify JSON signatures /// Verify JSON signatures
/// ///
/// This command needs a JSON blob provided in a Markdown code block below /// This command needs a JSON blob provided in a Markdown code block below
/// the command. /// the command.
VerifyJson, VerifyJson,
/// - Verify PDU /// Verify PDU
/// ///
/// This re-verifies a PDU existing in the database found by ID. /// This re-verifies a PDU existing in the database found by ID.
VerifyPdu { VerifyPdu {
event_id: OwnedEventId, event_id: OwnedEventId,
}, },
/// - Prints the very first PDU in the specified room (typically /// Prints the very first PDU in the specified room (typically
/// m.room.create) /// m.room.create)
FirstPduInRoom { FirstPduInRoom {
/// The room ID /// The room ID
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Prints the latest ("last") PDU in the specified room (typically a /// Prints the latest ("last") PDU in the specified room (typically a
/// message) /// message)
LatestPduInRoom { LatestPduInRoom {
/// The room ID /// The room ID
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Forcefully replaces the room state of our local copy of the specified /// Forcefully replaces the room state of our local copy of the specified
/// room, with the copy (auth chain and room state events) the specified /// room, with the copy (auth chain and room state events) the specified
/// remote server says. /// remote server says.
/// ///
@ -176,7 +176,7 @@ pub enum DebugCommand {
event_id: Option<OwnedEventId>, event_id: Option<OwnedEventId>,
}, },
/// - Runs a server name through Continuwuity's true destination resolution /// Runs a server name through Continuwuity's true destination resolution
/// process /// process
/// ///
/// Useful for debugging well-known issues /// Useful for debugging well-known issues
@ -187,7 +187,7 @@ pub enum DebugCommand {
no_cache: bool, no_cache: bool,
}, },
/// - Print extended memory usage /// Print extended memory usage
/// ///
/// Optional argument is a character mask (a sequence of characters in any /// Optional argument is a character mask (a sequence of characters in any
/// order) which enable additional extended statistics. Known characters are /// order) which enable additional extended statistics. Known characters are
@ -196,23 +196,23 @@ pub enum DebugCommand {
opts: Option<String>, opts: Option<String>,
}, },
/// - Print general tokio runtime metric totals. /// Print general tokio runtime metric totals.
RuntimeMetrics, RuntimeMetrics,
/// - Print detailed tokio runtime metrics accumulated since last command /// Print detailed tokio runtime metrics accumulated since last command
/// invocation. /// invocation.
RuntimeInterval, RuntimeInterval,
/// - Print the current time /// Print the current time
Time, Time,
/// - List dependencies /// List dependencies
ListDependencies { ListDependencies {
#[arg(short, long)] #[arg(short, long)]
names: bool, names: bool,
}, },
/// - Get database statistics /// Get database statistics
DatabaseStats { DatabaseStats {
property: Option<String>, property: Option<String>,
@ -220,10 +220,10 @@ pub enum DebugCommand {
map: Option<String>, map: Option<String>,
}, },
/// - Trim memory usage /// Trim memory usage
TrimMemory, TrimMemory,
/// - List database files /// List database files
DatabaseFiles { DatabaseFiles {
map: Option<String>, map: Option<String>,
@ -231,7 +231,7 @@ pub enum DebugCommand {
level: Option<i32>, level: Option<i32>,
}, },
/// - Developer test stubs /// Developer test stubs
#[command(subcommand)] #[command(subcommand)]
#[allow(non_snake_case)] #[allow(non_snake_case)]
#[clap(hide(true))] #[clap(hide(true))]

View file

@ -9,20 +9,20 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum FederationCommand { pub enum FederationCommand {
/// - List all rooms we are currently handling an incoming pdu from /// List all rooms we are currently handling an incoming pdu from
IncomingFederation, IncomingFederation,
/// - Disables incoming federation handling for a room. /// Disables incoming federation handling for a room.
DisableRoom { DisableRoom {
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Enables incoming federation handling for a room again. /// Enables incoming federation handling for a room again.
EnableRoom { EnableRoom {
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Fetch `/.well-known/matrix/support` from the specified server /// Fetch `/.well-known/matrix/support` from the specified server
/// ///
/// Despite the name, this is not a federation endpoint and does not go /// Despite the name, this is not a federation endpoint and does not go
/// through the federation / server resolution process as per-spec this is /// through the federation / server resolution process as per-spec this is
@ -35,7 +35,7 @@ pub enum FederationCommand {
server_name: OwnedServerName, server_name: OwnedServerName,
}, },
/// - Lists all the rooms we share/track with the specified *remote* user /// Lists all the rooms we share/track with the specified *remote* user
RemoteUserInRooms { RemoteUserInRooms {
user_id: OwnedUserId, user_id: OwnedUserId,
}, },

View file

@ -10,20 +10,20 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum MediaCommand { pub enum MediaCommand {
/// - Deletes a single media file from our database and on the filesystem /// Deletes a single media file from our database and on the filesystem
/// via a single MXC URL or event ID (not redacted) /// via a single MXC URL or event ID (not redacted)
Delete { Delete {
/// The MXC URL to delete /// The MXC URL to delete
#[arg(long)] #[arg(long)]
mxc: Option<OwnedMxcUri>, mxc: Option<OwnedMxcUri>,
/// - The message event ID which contains the media and thumbnail MXC /// The message event ID which contains the media and thumbnail MXC
/// URLs /// URLs
#[arg(long)] #[arg(long)]
event_id: Option<OwnedEventId>, event_id: Option<OwnedEventId>,
}, },
/// - Deletes a codeblock list of MXC URLs from our database and on the /// Deletes a codeblock list of MXC URLs from our database and on the
/// filesystem. This will always ignore errors. /// filesystem. This will always ignore errors.
DeleteList, DeleteList,
@ -40,33 +40,33 @@ pub enum MediaCommand {
/// * Delete all remote and local media from 3 days ago, up until now: /// * Delete all remote and local media from 3 days ago, up until now:
/// ///
/// `!admin media delete-past-remote-media -a 3d /// `!admin media delete-past-remote-media -a 3d
/// --yes-i-want-to-delete-local-media` ///-yes-i-want-to-delete-local-media`
#[command(verbatim_doc_comment)] #[command(verbatim_doc_comment)]
DeletePastRemoteMedia { DeletePastRemoteMedia {
/// - The relative time (e.g. 30s, 5m, 7d) from now within which to /// The relative time (e.g. 30s, 5m, 7d) from now within which to
/// search /// search
duration: String, duration: String,
/// - Only delete media created before [duration] ago /// Only delete media created before [duration] ago
#[arg(long, short)] #[arg(long, short)]
before: bool, before: bool,
/// - Only delete media created after [duration] ago /// Only delete media created after [duration] ago
#[arg(long, short)] #[arg(long, short)]
after: bool, after: bool,
/// - Long argument to additionally delete local media /// Long argument to additionally delete local media
#[arg(long)] #[arg(long)]
yes_i_want_to_delete_local_media: bool, yes_i_want_to_delete_local_media: bool,
}, },
/// - Deletes all the local media from a local user on our server. This will /// Deletes all the local media from a local user on our server. This will
/// always ignore errors by default. /// always ignore errors by default.
DeleteAllFromUser { DeleteAllFromUser {
username: String, username: String,
}, },
/// - Deletes all remote media from the specified remote server. This will /// Deletes all remote media from the specified remote server. This will
/// always ignore errors by default. /// always ignore errors by default.
DeleteAllFromServer { DeleteAllFromServer {
server_name: OwnedServerName, server_name: OwnedServerName,

View file

@ -9,7 +9,7 @@ use crate::{admin_command, admin_command_dispatch};
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
/// All the getters and iterators from src/database/key_value/account_data.rs /// All the getters and iterators from src/database/key_value/account_data.rs
pub enum AccountDataCommand { pub enum AccountDataCommand {
/// - Returns all changes to the account data that happened after `since`. /// Returns all changes to the account data that happened after `since`.
ChangesSince { ChangesSince {
/// Full user ID /// Full user ID
user_id: OwnedUserId, user_id: OwnedUserId,
@ -19,7 +19,7 @@ pub enum AccountDataCommand {
room_id: Option<OwnedRoomId>, room_id: Option<OwnedRoomId>,
}, },
/// - Searches the account data for a specific kind. /// Searches the account data for a specific kind.
AccountDataGet { AccountDataGet {
/// Full user ID /// Full user ID
user_id: OwnedUserId, user_id: OwnedUserId,

View file

@ -7,13 +7,13 @@ use crate::Context;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
/// All the getters and iterators from src/database/key_value/appservice.rs /// All the getters and iterators from src/database/key_value/appservice.rs
pub enum AppserviceCommand { pub enum AppserviceCommand {
/// - Gets the appservice registration info/details from the ID as a string /// Gets the appservice registration info/details from the ID as a string
GetRegistration { GetRegistration {
/// Appservice registration ID /// Appservice registration ID
appservice_id: String, appservice_id: String,
}, },
/// - Gets all appservice registrations with their ID and registration info /// Gets all appservice registrations with their ID and registration info
All, All,
} }

View file

@ -13,7 +13,7 @@ pub enum GlobalsCommand {
LastCheckForAnnouncementsId, LastCheckForAnnouncementsId,
/// - This returns an empty `Ok(BTreeMap<..>)` when there are no keys found /// This returns an empty `Ok(BTreeMap<..>)` when there are no keys found
/// for the server. /// for the server.
SigningKeysFor { SigningKeysFor {
origin: OwnedServerName, origin: OwnedServerName,

View file

@ -28,55 +28,55 @@ use crate::admin_command_dispatch;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
/// Query tables from database /// Query tables from database
pub enum QueryCommand { pub enum QueryCommand {
/// - account_data.rs iterators and getters /// account_data.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
AccountData(AccountDataCommand), AccountData(AccountDataCommand),
/// - appservice.rs iterators and getters /// appservice.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
Appservice(AppserviceCommand), Appservice(AppserviceCommand),
/// - presence.rs iterators and getters /// presence.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
Presence(PresenceCommand), Presence(PresenceCommand),
/// - rooms/alias.rs iterators and getters /// rooms/alias.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
RoomAlias(RoomAliasCommand), RoomAlias(RoomAliasCommand),
/// - rooms/state_cache iterators and getters /// rooms/state_cache iterators and getters
#[command(subcommand)] #[command(subcommand)]
RoomStateCache(RoomStateCacheCommand), RoomStateCache(RoomStateCacheCommand),
/// - rooms/timeline iterators and getters /// rooms/timeline iterators and getters
#[command(subcommand)] #[command(subcommand)]
RoomTimeline(RoomTimelineCommand), RoomTimeline(RoomTimelineCommand),
/// - globals.rs iterators and getters /// globals.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
Globals(GlobalsCommand), Globals(GlobalsCommand),
/// - sending.rs iterators and getters /// sending.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
Sending(SendingCommand), Sending(SendingCommand),
/// - users.rs iterators and getters /// users.rs iterators and getters
#[command(subcommand)] #[command(subcommand)]
Users(UsersCommand), Users(UsersCommand),
/// - resolver service /// resolver service
#[command(subcommand)] #[command(subcommand)]
Resolver(ResolverCommand), Resolver(ResolverCommand),
/// - pusher service /// pusher service
#[command(subcommand)] #[command(subcommand)]
Pusher(PusherCommand), Pusher(PusherCommand),
/// - short service /// short service
#[command(subcommand)] #[command(subcommand)]
Short(ShortCommand), Short(ShortCommand),
/// - raw service /// raw service
#[command(subcommand)] #[command(subcommand)]
Raw(RawCommand), Raw(RawCommand),
} }

View file

@ -8,13 +8,13 @@ use crate::Context;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
/// All the getters and iterators from src/database/key_value/presence.rs /// All the getters and iterators from src/database/key_value/presence.rs
pub enum PresenceCommand { pub enum PresenceCommand {
/// - Returns the latest presence event for the given user. /// Returns the latest presence event for the given user.
GetPresence { GetPresence {
/// Full user ID /// Full user ID
user_id: OwnedUserId, user_id: OwnedUserId,
}, },
/// - Iterator of the most recent presence updates that happened after the /// Iterator of the most recent presence updates that happened after the
/// event with id `since`. /// event with id `since`.
PresenceSince { PresenceSince {
/// UNIX timestamp since (u64) /// UNIX timestamp since (u64)

View file

@ -6,7 +6,7 @@ use crate::Context;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum PusherCommand { pub enum PusherCommand {
/// - Returns all the pushers for the user. /// Returns all the pushers for the user.
GetPushers { GetPushers {
/// Full user ID /// Full user ID
user_id: OwnedUserId, user_id: OwnedUserId,

View file

@ -20,10 +20,10 @@ use crate::{admin_command, admin_command_dispatch};
#[allow(clippy::enum_variant_names)] #[allow(clippy::enum_variant_names)]
/// Query tables from database /// Query tables from database
pub enum RawCommand { pub enum RawCommand {
/// - List database maps /// List database maps
RawMaps, RawMaps,
/// - Raw database query /// Raw database query
RawGet { RawGet {
/// Map name /// Map name
map: String, map: String,
@ -32,7 +32,7 @@ pub enum RawCommand {
key: String, key: String,
}, },
/// - Raw database delete (for string keys) /// Raw database delete (for string keys)
RawDel { RawDel {
/// Map name /// Map name
map: String, map: String,
@ -41,7 +41,7 @@ pub enum RawCommand {
key: String, key: String,
}, },
/// - Raw database keys iteration /// Raw database keys iteration
RawKeys { RawKeys {
/// Map name /// Map name
map: String, map: String,
@ -50,7 +50,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database key size breakdown /// Raw database key size breakdown
RawKeysSizes { RawKeysSizes {
/// Map name /// Map name
map: Option<String>, map: Option<String>,
@ -59,7 +59,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database keys total bytes /// Raw database keys total bytes
RawKeysTotal { RawKeysTotal {
/// Map name /// Map name
map: Option<String>, map: Option<String>,
@ -68,7 +68,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database values size breakdown /// Raw database values size breakdown
RawValsSizes { RawValsSizes {
/// Map name /// Map name
map: Option<String>, map: Option<String>,
@ -77,7 +77,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database values total bytes /// Raw database values total bytes
RawValsTotal { RawValsTotal {
/// Map name /// Map name
map: Option<String>, map: Option<String>,
@ -86,7 +86,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database items iteration /// Raw database items iteration
RawIter { RawIter {
/// Map name /// Map name
map: String, map: String,
@ -95,7 +95,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Raw database keys iteration /// Raw database keys iteration
RawKeysFrom { RawKeysFrom {
/// Map name /// Map name
map: String, map: String,
@ -108,7 +108,7 @@ pub enum RawCommand {
limit: Option<usize>, limit: Option<usize>,
}, },
/// - Raw database items iteration /// Raw database items iteration
RawIterFrom { RawIterFrom {
/// Map name /// Map name
map: String, map: String,
@ -121,7 +121,7 @@ pub enum RawCommand {
limit: Option<usize>, limit: Option<usize>,
}, },
/// - Raw database record count /// Raw database record count
RawCount { RawCount {
/// Map name /// Map name
map: Option<String>, map: Option<String>,
@ -130,7 +130,7 @@ pub enum RawCommand {
prefix: Option<String>, prefix: Option<String>,
}, },
/// - Compact database /// Compact database
Compact { Compact {
#[arg(short, long, alias("column"))] #[arg(short, long, alias("column"))]
map: Option<Vec<String>>, map: Option<Vec<String>>,

View file

@ -13,13 +13,13 @@ pub enum RoomAliasCommand {
alias: OwnedRoomAliasId, alias: OwnedRoomAliasId,
}, },
/// - Iterator of all our local room aliases for the room ID /// Iterator of all our local room aliases for the room ID
LocalAliasesForRoom { LocalAliasesForRoom {
/// Full room ID /// Full room ID
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Iterator of all our local aliases in our database with their room IDs /// Iterator of all our local aliases in our database with their room IDs
AllLocalAliases, AllLocalAliases,
} }

View file

@ -9,10 +9,10 @@ use crate::Context;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
/// All the getters and iterators from src/database/key_value/sending.rs /// All the getters and iterators from src/database/key_value/sending.rs
pub enum SendingCommand { pub enum SendingCommand {
/// - Queries database for all `servercurrentevent_data` /// Queries database for all `servercurrentevent_data`
ActiveRequests, ActiveRequests,
/// - Queries database for `servercurrentevent_data` but for a specific /// Queries database for `servercurrentevent_data` but for a specific
/// destination /// destination
/// ///
/// This command takes only *one* format of these arguments: /// This command takes only *one* format of these arguments:
@ -34,7 +34,7 @@ pub enum SendingCommand {
push_key: Option<String>, push_key: Option<String>,
}, },
/// - Queries database for `servernameevent_data` which are the queued up /// Queries database for `servernameevent_data` which are the queued up
/// requests that will eventually be sent /// requests that will eventually be sent
/// ///
/// This command takes only *one* format of these arguments: /// This command takes only *one* format of these arguments:

View file

@ -9,7 +9,7 @@ use crate::Context;
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum RoomAliasCommand { pub enum RoomAliasCommand {
/// - Make an alias point to a room. /// Make an alias point to a room.
Set { Set {
#[arg(short, long)] #[arg(short, long)]
/// Set the alias even if a room is already using it /// Set the alias even if a room is already using it
@ -22,20 +22,20 @@ pub enum RoomAliasCommand {
room_alias_localpart: String, room_alias_localpart: String,
}, },
/// - Remove a local alias /// Remove a local alias
Remove { Remove {
/// The alias localpart to remove (`alias`, not `#alias:servername.tld`) /// The alias localpart to remove (`alias`, not `#alias:servername.tld`)
room_alias_localpart: String, room_alias_localpart: String,
}, },
/// - Show which room is using an alias /// Show which room is using an alias
Which { Which {
/// The alias localpart to look up (`alias`, not /// The alias localpart to look up (`alias`, not
/// `#alias:servername.tld`) /// `#alias:servername.tld`)
room_alias_localpart: String, room_alias_localpart: String,
}, },
/// - List aliases currently being used /// List aliases currently being used
List { List {
/// If set, only list the aliases for this room /// If set, only list the aliases for this room
room_id: Option<OwnedRoomId>, room_id: Option<OwnedRoomId>,

View file

@ -7,19 +7,19 @@ use crate::{Context, PAGE_SIZE, get_room_info};
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum RoomDirectoryCommand { pub enum RoomDirectoryCommand {
/// - Publish a room to the room directory /// Publish a room to the room directory
Publish { Publish {
/// The room id of the room to publish /// The room id of the room to publish
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Unpublish a room to the room directory /// Unpublish a room to the room directory
Unpublish { Unpublish {
/// The room id of the room to unpublish /// The room id of the room to unpublish
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - List rooms that are published /// List rooms that are published
List { List {
page: Option<usize>, page: Option<usize>,
}, },

View file

@ -8,7 +8,7 @@ use crate::{admin_command, admin_command_dispatch};
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum RoomInfoCommand { pub enum RoomInfoCommand {
/// - List joined members in a room /// List joined members in a room
ListJoinedMembers { ListJoinedMembers {
room_id: OwnedRoomId, room_id: OwnedRoomId,
@ -17,7 +17,7 @@ pub enum RoomInfoCommand {
local_only: bool, local_only: bool,
}, },
/// - Displays room topic /// Displays room topic
/// ///
/// Room topics can be huge, so this is in its /// Room topics can be huge, so this is in its
/// own separate command /// own separate command

View file

@ -17,7 +17,7 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum RoomCommand { pub enum RoomCommand {
/// - List all rooms the server knows about /// List all rooms the server knows about
#[clap(alias = "list")] #[clap(alias = "list")]
ListRooms { ListRooms {
page: Option<usize>, page: Option<usize>,
@ -37,22 +37,22 @@ pub enum RoomCommand {
}, },
#[command(subcommand)] #[command(subcommand)]
/// - View information about a room we know about /// View information about a room we know about
Info(RoomInfoCommand), Info(RoomInfoCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Manage moderation of remote or local rooms /// Manage moderation of remote or local rooms
Moderation(RoomModerationCommand), Moderation(RoomModerationCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Manage rooms' aliases /// Manage rooms' aliases
Alias(RoomAliasCommand), Alias(RoomAliasCommand),
#[command(subcommand)] #[command(subcommand)]
/// - Manage the room directory /// Manage the room directory
Directory(RoomDirectoryCommand), Directory(RoomDirectoryCommand),
/// - Check if we know about a room /// Check if we know about a room
Exists { Exists {
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },

View file

@ -13,7 +13,7 @@ use crate::{admin_command, admin_command_dispatch, get_room_info};
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum RoomModerationCommand { pub enum RoomModerationCommand {
/// - Bans a room from local users joining and evicts all our local users /// Bans a room from local users joining and evicts all our local users
/// (including server /// (including server
/// admins) /// admins)
/// from the room. Also blocks any invites (local and remote) for the /// from the room. Also blocks any invites (local and remote) for the
@ -24,19 +24,19 @@ pub enum RoomModerationCommand {
room: OwnedRoomOrAliasId, room: OwnedRoomOrAliasId,
}, },
/// - Bans a list of rooms (room IDs and room aliases) from a newline /// Bans a list of rooms (room IDs and room aliases) from a newline
/// delimited codeblock similar to `user deactivate-all`. Applies the same /// delimited codeblock similar to `user deactivate-all`. Applies the same
/// steps as ban-room /// steps as ban-room
BanListOfRooms, BanListOfRooms,
/// - Unbans a room to allow local users to join again /// Unbans a room to allow local users to join again
UnbanRoom { UnbanRoom {
/// The room in the format of `!roomid:example.com` or a room alias in /// The room in the format of `!roomid:example.com` or a room alias in
/// the format of `#roomalias:example.com` /// the format of `#roomalias:example.com`
room: OwnedRoomOrAliasId, room: OwnedRoomOrAliasId,
}, },
/// - List of all rooms we have banned /// List of all rooms we have banned
ListBannedRooms { ListBannedRooms {
#[arg(long)] #[arg(long)]
/// Whether to only output room IDs without supplementary room /// Whether to only output room IDs without supplementary room

View file

@ -10,18 +10,18 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum ServerCommand { pub enum ServerCommand {
/// - Time elapsed since startup /// Time elapsed since startup
Uptime, Uptime,
/// - Show configuration values /// Show configuration values
ShowConfig, ShowConfig,
/// - Reload configuration values /// Reload configuration values
ReloadConfig { ReloadConfig {
path: Option<PathBuf>, path: Option<PathBuf>,
}, },
/// - List the features built into the server /// List the features built into the server
ListFeatures { ListFeatures {
#[arg(short, long)] #[arg(short, long)]
available: bool, available: bool,
@ -33,35 +33,35 @@ pub enum ServerCommand {
comma: bool, comma: bool,
}, },
/// - Print database memory usage statistics /// Print database memory usage statistics
MemoryUsage, MemoryUsage,
/// - Clears all of Continuwuity's caches /// Clears all of Continuwuity's caches
ClearCaches, ClearCaches,
/// - Performs an online backup of the database (only available for RocksDB /// Performs an online backup of the database (only available for RocksDB
/// at the moment) /// at the moment)
BackupDatabase, BackupDatabase,
/// - List database backups /// List database backups
ListBackups, ListBackups,
/// - Send a message to the admin room. /// Send a message to the admin room.
AdminNotice { AdminNotice {
message: Vec<String>, message: Vec<String>,
}, },
/// - Hot-reload the server /// Hot-reload the server
#[clap(alias = "reload")] #[clap(alias = "reload")]
ReloadMods, ReloadMods,
#[cfg(unix)] #[cfg(unix)]
/// - Restart the server /// Restart the server
Restart { Restart {
#[arg(short, long)] #[arg(short, long)]
force: bool, force: bool,
}, },
/// - Shutdown the server /// Shutdown the server
Shutdown, Shutdown,
} }

View file

@ -8,7 +8,7 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum TokenCommand { pub enum TokenCommand {
/// - Issue a new registration token /// Issue a new registration token
#[clap(name = "issue")] #[clap(name = "issue")]
IssueToken { IssueToken {
/// When this token will expire. /// When this token will expire.
@ -16,14 +16,14 @@ pub enum TokenCommand {
expires: TokenExpires, expires: TokenExpires,
}, },
/// - Revoke a registration token /// Revoke a registration token
#[clap(name = "revoke")] #[clap(name = "revoke")]
RevokeToken { RevokeToken {
/// The token to revoke. /// The token to revoke.
token: String, token: String,
}, },
/// - List all registration tokens /// List all registration tokens
#[clap(name = "list")] #[clap(name = "list")]
ListTokens, ListTokens,
} }

View file

@ -9,7 +9,7 @@ use crate::admin_command_dispatch;
#[admin_command_dispatch] #[admin_command_dispatch]
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
pub enum UserCommand { pub enum UserCommand {
/// - Create a new user /// Create a new user
#[clap(alias = "create")] #[clap(alias = "create")]
CreateUser { CreateUser {
/// Username of the new user /// Username of the new user
@ -18,7 +18,7 @@ pub enum UserCommand {
password: Option<String>, password: Option<String>,
}, },
/// - Reset user password /// Reset user password
ResetPassword { ResetPassword {
/// Log out existing sessions /// Log out existing sessions
#[arg(short, long)] #[arg(short, long)]
@ -29,7 +29,7 @@ pub enum UserCommand {
password: Option<String>, password: Option<String>,
}, },
/// - Deactivate a user /// Deactivate a user
/// ///
/// User will be removed from all rooms by default. /// User will be removed from all rooms by default.
/// Use --no-leave-rooms to not leave all rooms by default. /// Use --no-leave-rooms to not leave all rooms by default.
@ -39,7 +39,7 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Deactivate a list of users /// Deactivate a list of users
/// ///
/// Recommended to use in conjunction with list-local-users. /// Recommended to use in conjunction with list-local-users.
/// ///
@ -62,7 +62,7 @@ pub enum UserCommand {
force: bool, force: bool,
}, },
/// - Forcefully log a user out of all of their devices. /// Forcefully log a user out of all of their devices.
/// ///
/// This will invalidate all access tokens for the specified user, /// This will invalidate all access tokens for the specified user,
/// effectively logging them out from all sessions. /// effectively logging them out from all sessions.
@ -74,7 +74,7 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Suspend a user /// Suspend a user
/// ///
/// Suspended users are able to log in, sync, and read messages, but are not /// Suspended users are able to log in, sync, and read messages, but are not
/// able to send events nor redact them, cannot change their profile, and /// able to send events nor redact them, cannot change their profile, and
@ -87,7 +87,7 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Unsuspend a user /// Unsuspend a user
/// ///
/// Reverses the effects of the `suspend` command, allowing the user to send /// Reverses the effects of the `suspend` command, allowing the user to send
/// messages, change their profile, create room invites, etc. /// messages, change their profile, create room invites, etc.
@ -96,7 +96,7 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Lock a user /// Lock a user
/// ///
/// Locked users are unable to use their accounts beyond logging out. This /// Locked users are unable to use their accounts beyond logging out. This
/// is akin to a temporary deactivation that does not change the user's /// is akin to a temporary deactivation that does not change the user's
@ -107,7 +107,7 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Unlock a user /// Unlock a user
/// ///
/// Reverses the effects of the `lock` command, allowing the user to use /// Reverses the effects of the `lock` command, allowing the user to use
/// their account again. /// their account again.
@ -116,13 +116,13 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - Enable login for a user /// Enable login for a user
EnableLogin { EnableLogin {
/// Username of the user to enable login for /// Username of the user to enable login for
user_id: String, user_id: String,
}, },
/// - Disable login for a user /// Disable login for a user
/// ///
/// Disables login for the specified user without deactivating or locking /// Disables login for the specified user without deactivating or locking
/// their account. This prevents the user from obtaining new access tokens, /// their account. This prevents the user from obtaining new access tokens,
@ -132,48 +132,48 @@ pub enum UserCommand {
user_id: String, user_id: String,
}, },
/// - List local users in the database /// List local users in the database
#[clap(alias = "list")] #[clap(alias = "list")]
ListUsers, ListUsers,
/// - Lists all the rooms (local and remote) that the specified user is /// Lists all the rooms (local and remote) that the specified user is
/// joined in /// joined in
ListJoinedRooms { ListJoinedRooms {
user_id: String, user_id: String,
}, },
/// - Manually join a local user to a room. /// Manually join a local user to a room.
ForceJoinRoom { ForceJoinRoom {
user_id: String, user_id: String,
room_id: OwnedRoomOrAliasId, room_id: OwnedRoomOrAliasId,
}, },
/// - Manually leave a local user from a room. /// Manually leave a local user from a room.
ForceLeaveRoom { ForceLeaveRoom {
user_id: String, user_id: String,
room_id: OwnedRoomOrAliasId, room_id: OwnedRoomOrAliasId,
}, },
/// - Manually leave a remote room for a local user. /// Manually leave a remote room for a local user.
ForceLeaveRemoteRoom { ForceLeaveRemoteRoom {
user_id: String, user_id: String,
room_id: OwnedRoomOrAliasId, room_id: OwnedRoomOrAliasId,
via: Option<String>, via: Option<String>,
}, },
/// - Forces the specified user to drop their power levels to the room /// Forces the specified user to drop their power levels to the room
/// default, if their permissions allow and the auth check permits /// default, if their permissions allow and the auth check permits
ForceDemote { ForceDemote {
user_id: String, user_id: String,
room_id: OwnedRoomOrAliasId, room_id: OwnedRoomOrAliasId,
}, },
/// - Grant server-admin privileges to a user. /// Grant server-admin privileges to a user.
MakeUserAdmin { MakeUserAdmin {
user_id: String, user_id: String,
}, },
/// - Puts a room tag for the specified user and room ID. /// Puts a room tag for the specified user and room ID.
/// ///
/// This is primarily useful if you'd like to set your admin room /// This is primarily useful if you'd like to set your admin room
/// to the special "System Alerts" section in Element as a way to /// to the special "System Alerts" section in Element as a way to
@ -186,20 +186,20 @@ pub enum UserCommand {
tag: String, tag: String,
}, },
/// - Deletes the room tag for the specified user and room ID /// Deletes the room tag for the specified user and room ID
DeleteRoomTag { DeleteRoomTag {
user_id: String, user_id: String,
room_id: OwnedRoomId, room_id: OwnedRoomId,
tag: String, tag: String,
}, },
/// - Gets all the room tags for the specified user and room ID /// Gets all the room tags for the specified user and room ID
GetRoomTags { GetRoomTags {
user_id: String, user_id: String,
room_id: OwnedRoomId, room_id: OwnedRoomId,
}, },
/// - Attempts to forcefully redact the specified event ID from the sender /// Attempts to forcefully redact the specified event ID from the sender
/// user /// user
/// ///
/// This is only valid for local users /// This is only valid for local users
@ -207,7 +207,7 @@ pub enum UserCommand {
event_id: OwnedEventId, event_id: OwnedEventId,
}, },
/// - Force joins a specified list of local users to join the specified /// Force joins a specified list of local users to join the specified
/// room. /// room.
/// ///
/// Specify a codeblock of usernames. /// Specify a codeblock of usernames.
@ -222,7 +222,7 @@ pub enum UserCommand {
yes_i_want_to_do_this: bool, yes_i_want_to_do_this: bool,
}, },
/// - Force joins all local users to the specified room. /// Force joins all local users to the specified room.
/// ///
/// At least 1 server admin must be in the room to reduce abuse. /// At least 1 server admin must be in the room to reduce abuse.
/// ///

View file

@ -11,5 +11,5 @@ Admin commands allow server administrators to manage the server from within thei
## Categories ## Categories
{%~ for category in categories %} {%~ for category in categories %}
- [`!admin {{ category.name }}`]({{ category.name }}/) {{ category.description }} - [`!admin {{ category.name }}`]({{ category.name }}/): {{ category.description }}
{%- endfor %} {%- endfor %}