Changelog

Changelog

All notable changes to MatrixCtl will be documented in this file.

You can find the issue tracker on GitHub.

0.15.2 (2025-06-02)

Features

  • yaml: simplify tree_printer a little (424874d)

Bug Fixes

  • print_helpers: use new token method (0c39f05)

Miscellaneous Chores

0.15.1 (2025-06-01)

Features

  • config: add room alias feature for all sanitized rooms (46bf91b)

  • purge_history: resolve room aliases (27a6b85)

  • purge_history: use room_id sanitizer (b62e043)

Miscellaneous Chores

0.15.0 (2025-05-26)

Features

  • command: do not redefine variable from outer scope (9fe9e2f)

  • command: nest commands in subcommands (d7401a5)

  • commands: add send_event command (e966c0b)

  • commands: add send_message command (f53ed74)

  • commands: Revisit the help texts (17329d5)

  • commands: Revisit the help texts for main (fc8b89b)

  • config: add an option to ger_username, to either return the user_id or just the localpart (d431b38)

  • renovate: enable pre-commit and schedule lock file maintenance (d800c70)

Bug Fixes

  • deps: update dependency rich to v14 (#881) (17e6127)

  • deps: update dependency sphinx-autodoc-typehints to >=3,<3.3 (#888) (b9aa57d)

  • release-please: fix manifest (8f23997)

Miscellaneous Chores

0.14.1 (2025-03-17)

Features

  • rows: render avatars in membership events (d152b44)

Bug Fixes

  • deps: update dependency sphinx-autodoc-typehints to >=3,<3.2 (#875) (53371db)

Miscellaneous Chores

0.14.0 (2025-01-12)

Features

  • put the functionallity for rendering an image in terminal from a mxc into its own helper function (2053965)

Bug Fixes

  • ci: add manifest, move ‘extra-files’ into config (7a96f38)

  • deps: update dependency sphinx-autodoc-typehints to v3 (#866) (4192c74)

  • get-events: use instead of (04d90bf)

  • pre-commit: disable pycln (03eb8ba)

  • release: also update version in lock file (d03a5f1)

0.13.0 (2024-12-31)

Features

  • get-events: Add option to format events as rows, with image support (#859) (339fcad)

  • rows: make images in rows configurable (253b632)

  • try out release-please (80363a9)

Documentation

  • readme: Improve wording (007e292)

Miscellaneous Chores

[0.12.1b2] - 2024-12-28

🐛 Bug Fixes

  • Move versioning from semver to PyPA spec due to normalization

[0.12.1-beta.1] - 2024-12-28

🏗️ Breaking changes

  • Remove Jitsi related features.

⚙️ Miscellaneous Tasks

  • (deps) Update pypa/gh-action-pypi-publish action to v1.8.14

  • (deps) Update pandoc/core docker tag to v2.19.2

  • (deps) Update dependency ubuntu to v22

  • (deps) Update pandoc/core docker tag to v3

  • (deps) Update softprops/action-gh-release action to v2

  • (dependabot) Remove Dependabot config as we use Renovate from now on

  • (classifiers) Add 3.12

  • (deps) Update actions/checkout action to v4.1.7

  • (deps) Update dependency ruff to v0.4.9

  • (deps) Update pypa/gh-action-pypi-publish action to v1.9.0

  • (deps) Update dependency flake8 to v7.1.0

  • (deps) Update dependency sphinx-autodoc-typehints to v2.2.0

  • (deps) Update dependency ruff to v0.4.10

  • (deps) Update dependency sphinx-autodoc-typehints to v2.2.1

  • (deps) Update dependency sphinx-autodoc-typehints to v2.2.2

  • (deps) Update dependency coverage to v7.5.4

  • (deps) Update dependency mypy to v1.10.1

  • (deps) Update dependency pylint to v3.2.4

  • (deps) Update pandoc/core docker tag to v3.2.1

  • (deps) Update dependency pylint to v3.2.5

  • (deps) Update actions/setup-python action to v5.1.1

  • (deps) Update dependency tox to v4.16.0

  • (deps) Update dependency ruff to v0.5.1

  • (deps) Update dependency coverage to v7.6.0

  • (deps) Update pandoc/core docker tag to v3.3.0

  • (deps) Update actions/setup-python action to v5.2.0

  • (deps) Update snok/install-poetry action to v1.4

  • (deps) Update pypa/gh-action-pypi-publish action to v1.10.1

  • (deps) Update pandoc/core docker tag to v3.4.0

  • (deps) Update pypa/gh-action-pypi-publish action to v1.10.2

  • (deps) Update dependency ruff to v0.6.8

  • (deps) Update dependency vulture to v2.12

  • (deps) Update dependency ubuntu to v24

  • (deps) Update actions/checkout action to v4.2.0

  • (deps) Update dependency pylint to v3.3.1

  • (deps) Update dependency tox to v4.20.0

  • (deps) Update dependency types-setuptools to v75

  • (deps) Update pypa/gh-action-pypi-publish action to v1.10.3

  • (deps) Update dependency ruff to v0.6.9

  • (deps) Update dependency tox to v4.21.2

  • (deps) Update dependency vulture to v2.13

  • (deps) Update actions/cache action to v4.1.0

  • (deps) Update dependency pre-commit to v4

  • (deps) Update actions/checkout action to v4.2.1

  • (deps) Update pandoc/core docker tag to v3.5.0

  • (deps) Update dependency pre-commit to v4.0.1

  • (deps) Update actions/checkout action to v4.2.1 (#856)

  • Update dependencies

  • (deps) Update actions/checkout action to v4.2.2 (#857)

  • (deps) Update astral-sh/setup-uv action to v5 (#860)

  • (deps) Lock file maintenance (#861)

  • Bump version from v0.12.0 to v0.12.1-beta.1

🚀 Features

  • (addon) Add download command

  • Remove unused dependencies

  • Add rye run doc command for building the docs

  • [breaking] Move from git-flow to GitHub Flow branching model

  • Rename addons to commands and remove api_path as well as api_version from the API handler

  • (ci) Add codeql workflow

🐛 Bug Fixes

  • (deps) Update dependency psycopg to v3.2.1

  • (docs) Add docs for the download feature

  • Break out the the sync status code handler from _request of the API handler into handle_sync_response_status_code and re-use it in streamed_download

  • (renovate) Add missing :

  • (deps) Update dependency psycopg to v3.2.2

  • (deps) Update dependency paramiko to v3.5.0

  • (deps) Update dependency psycopg to v3.2.3

  • (deps) Update dependency rich to v13.9.2

  • (docs) Replace master branch with main branch

  • (ci) Replace master/develop branch with main branch

  • (ci) Rye run sync regardless of cache hit; remove old codeql workflow

  • (ci) Add tomli since it seems to be required for ci to build the docs

  • Add dependency exceptiongroup for python < 3.11 to build docs

  • (ci) Use a version matrix and let rye pin the python version

  • (ci) Create .python-version before installing rye to avoid multiple toolchains

  • (ci) Create .python-version before installing rye to avoid multiple toolchains

  • (ci) Remove --no-lock from rye sync

  • (ci) Remove --no-lock from rye sync

  • (docs) Wrap make in ‘uv run’

  • (ci) Wrap make for docs in ‘uv run’

  • (pre-commit) Ignore all lock files

📚 Documentation

  • (changelog) Make the old changelog available under changelog

  • Replace rye with uv

  • (readme) Typo

[0.12.0] - 2024-06-05

⚙️ Miscellaneous Tasks

  • (dependencies) Update mypy v0.991 -> v1.1.1

  • (dependencies) Bump sphinx v5.2.3 -> v6.1.3

  • (dependencies) Bump xdg v5.1.1 -> v6.0.0

  • (dependencies) Bump paramiko v2.11.0 -> v3.1.0

  • (dependencies) Bump some linters

  • Update all dependencies

  • Update ruff, towncrier pylint yapf attrs, httpx, ruamel.ymal

  • (pre-commit) Update sources

  • (matrixctl) Bump version from v0.12.0-beta.2 to v0.12.0

🚀 Features

  • Use ruff instead of flake8 and isort (and addons); refactor

  • Update pre-commit, also run tests on 3.11

  • Add largest-rooms command

🐛 Bug Fixes

  • (deepsource) Add skipcq: PYL-W0212 for intentionally use of private type _SubParsersAction

  • (largest-rooms) Use processed variable to produce output for table instead of the input variable

  • Build process due to poetry having new optional group config

  • (ci) Use Python 3.11 in CI

  • Make linters happy

  • (rtd) Add ‘–all-extras’ to the install arguments

  • (rtd) Follow the latest guidelines

[0.12.0-beta.2] - 2023-03-23

⚙️ Miscellaneous Tasks

  • Update dependencies

  • (workflow) Update Python 3.9 -> 3.10

  • (workflow) Fix Python version

  • Update pre-commit dependencies

  • Update poetry lock file

  • Bump version from v0.12.0-beta.1 to v0.12.0-beta.2

  • Bump version from v0.12.0-beta.1 to v0.12.0-beta.2

🚀 Features

  • (tests) Add tests for sanitizers

  • Add force-purge argument to delroom

🐛 Bug Fixes

  • Lazy formatting of message string passed to logging module

  • False positive BAN-B601

  • (ssh) Lazy formatting of message string passed to logging module

  • (tox) Update label from py39 -> py310

  • (yaml) Don’t log the database password for synapse in debug mode

  • Formatting strings passed to logging module

  • Formatting strings passed to logging module

  • (table) Use correct types in docs

  • Formatted string passed to logging module

[0.12.0-beta.1] - 2021-12-02

⚙️ Miscellaneous Tasks

  • Add breaking newsfragment

🐛 Bug Fixes

  • (purge-remote-media) Message rooms -> media files

  • (purge-remote-media) Message rooms -> media files

  • (doctest) Ignore example (not meant as doctest)

  • (api) Remove f-string without any expression

  • (table) Error when table_data is empty

  • (table) Dicstring

[0.11.4] - 2021-12-01

⚙️ Miscellaneous Tasks

  • (pre-commit) Update dependencies

🐛 Bug Fixes

  • (api) Typehints

[0.11.3] - 2021-11-16

🚀 Features

  • Implement make-room-admin API

  • Implement get context API

  • (rooms) Add switch argument

  • (purge-history) Add switch

  • Implement

  • Implement delete-local-media addon

  • (delroom) Update delroom to use the “Delete Room API”

  • (help) Debloat

  • (README) Update help output

  • (action) Generate the release body with a script

  • Add missing newsfragment and reorder release workflow

🐛 Bug Fixes

  • (users) Set timeout to 10s

  • Wrap long line

[0.11.2] - 2021-09-26

🐛 Bug Fixes

  • Unguarded next()

[0.10.1] - 2021-06-17

🐛 Bug Fixes

  • Use secure, temporary directory for ansible_runner’s private data (#120)

[0.9.0] - 2021-04-23

📚 Documentation

  • Add xref param type links

  • Fix commandline example (#77)

  • Remove program name from changelog (#80)

[0.8.6] - 2021-04-17

🚀 Features

  • main.py instead of application.py (#62)

  • Add towncrier to generate a changelog (#63)

🐛 Bug Fixes

  • Logging TypeError (#45) (#66)

📚 Documentation

  • Add changelog to docs

  • Minor

  • Add rest of docstrings; set min. coverage 100%

Changelog (deprecated)

This is the changelog of MatrixCtl. You can find the issue tracker on GitHub.

0.12.0 (2024-06-05)

(No significant changes)

0.12.0-beta.2 (2023-03-24)

Bugfixes

  • Fix M_UNKNOWN bug when using purge-history. (#165)

  • Ensure MatrixCtl does not log the database password for synapse in debug mode (#460)

Removals & Deprecations

  • Add a deprecation warning to the adduser-jitsi and deluser-jitsi commands. They are planned for removal in MatrixCtl v0.13.0. (#453)

Miscellaneous

  • Add tests to the sanitizers (#315)

  • Update pre-commit plugin flake8 to new repo url (#448)

  • Fix rtd: Invalid configuration option: python.version (#450)

0.12.0-beta.1 (2021-12-02)

Behavior & Breaking Changes

  • This release changes how MatrixCtl connects to the database. Therefore the configuration file must be changed. Please check the documentation for more information. (#313)

Features & Improvements

  • get-event and get-events are not using psycopg instead of a docker command (#313)

Bugfixes

  • Empty data for the table handler does no longer raise an error. (#309)

  • The message Deleted Rooms: 0 in purge-remote-media has been corrected to Deleted Media Files: 0 (#311)

0.11.5 (2021-12-01)

No significant changes.

0.11.4 (2021-12-01)

Features & Improvements

  • Update to Delete Room API v2. (#305)

Bugfixes

  • Fix a bug introduced in be411cf0c1a9413bf25ca1b72004150c032555c2, after the last release because the httpx typehints are incorrect. (#307)

Miscellaneous

  • Fix incorrect typehints in the API handler (#287)

0.11.3 (2021-11-16)

Features & Improvements

  • Add is-admin addon to determine if a user is a server admin. (#252)

  • Add set-admin addon to promote/demote users to/from homeserver admin (#254)

  • Add make-room-admin addon (#265)

  • Add get-event-context addon. (#267)

  • Add -f|--force switch to purge-history to answer all questions with yes. (#271)

  • Add -e|--empty switch argument to rooms, to only show empty rooms. (#273)

  • Add purge-remote-media addon. (#275)

  • delroom now uses the “Delete Room API” instead of the old “Purge Room API”, which is deprecated. (#277)

  • Add delete-local-media addon. (#278)

  • Debloat matrixctl --help (#281)

Miscellaneous

  • Remove dependency single_source (#245)

  • Generate the release body with a script while running the release action. (#284)

0.11.2 (2021-09-26)

Features & Improvements

  • Add the joinroom (join a user to a room) addon to MatrixCtl. (#89)

Miscellaneous

  • The API handler was refactored, which results roughly in a 10% speed increase for asynchronous requests. (#235)

0.11.1 (2021-09-25)

Features & Improvements

  • paramiko now creates a known_hosts entry, if it does not exist. (#231)

Bugfixes

  • Fix: adduser, deluser, delroom, server-notice, purge-history. (#233)

0.11.0 (2021-09-21)

Behavior & Breaking Changes

  • The config file now is using the YAML format instead of the TOML format. (#174)

  • Drop support for python 3.8. (#181)

  • The password generation of MatrixCtl has been removed (#193)

  • All servers in the config (config.yaml) file now need too be grouped below servers:. (#213)

  • Remove --number and -n in the rooms addon and replace it with [limit]. (#217)

Features & Improvements

  • Add rust-synapse-compress-state to the maintenance command. (#163)

  • Multiple servers can be specified in the config file. (#174)

  • Per-server maintenance task configuration. (#184)

  • Optimized startuptime by lazy importing commands by a factor of 10. Added a addon_manager which now manages imports of the addon (sub)parsers. (#187)

  • Add get_events addon, which gets user-events from the DB. (#198)

  • Add reports addon. (#200)

  • Add report addon. (#202)

  • Replace tabulate with the new table handler. (#206)

  • With the -j or --to-json argument, the output of reports, rooms, users and user can be set to the JSON format. (#211)

  • All API requests which need multiple requests to collect all data are now asynchronous. Add a optional [limit] argument to the users and reports addon. (#217)

  • Add (one-pass) Jinja2 support for the configuration file. (#229)

Miscellaneous

  • Add tests for the yaml handler. (#174)

  • Commands or subcommands are now located in matrixctl.commands as packages and considered commands. Commands are splitted in parser.py and addon.py. It is now allowed to use multible modules for one addon. (#187)

  • More flexible yaml handler. (#213)

0.10.3 (2021-06-26)

Features & Improvements

Bugfixes

  • Make MatrixCtl compatible with Python 3.8. (#146)

Improved Documentation

  • Add Contribution Guidlines (#149)

Miscellaneous

  • The event_id of the command get-event now gets sanitized. (#143)

0.10.2 (2021-06-24)

Features & Improvements

  • Add start/restart switch to the deploy subcommand to start/restart the server right after the deployment. (#132)

  • Added the new command get-event, which gets an event by event_id from the Database and prints it as JSON. (#139)

Miscellaneous

  • Rewritten API handler. (#136)

  • Fixed: Wrong version while developing in virtual environment. (#141)

0.10.1 (2021-06-17)

Features & Improvements

  • Update type hinting according to PEP 585. (#123)

0.10.0 (2021-06-17)

Behavior & Breaking Changes

  • Drop support for Python 3.8 for tests and typing. (#121)

Features & Improvements

  • add purge-history to purge historic events from the DB (#86)

  • Modules are using logger instead of logging. (#117)

  • Use secure, temporary directory for ansible_runner’s private data. (#119)

Miscellaneous

  • Moved mypy.ini into pyproject.toml. (#113)

  • Fix of false-positive CWE-798: Use of Hard-coded Credentials. (#115)

  • Update pre-commit and dependencies. (#121)

0.9.0 (2021-04-23)

Behavior & Breaking Changes

  • add shadow-banned (needs synapse v1.28 or greater) and displayname to the table output of `matrixctl users. (#30)

Features & Improvements

  • Add the stop command to matrixctl, which stops all OCI containers. (#74)

Improved Documentation

  • Fixed the commandline tool example in the docs. (#68)

  • Removed the program name from every title of the changelog. We now only use the version number and the date. (#79)

0.8.6 (2021-04-17)

Features & Improvements

  • The application now uses __main__.py instead of application.py. Developers are now able to use python matrixctl from the project root to start the application. (#60)

  • Add tox as simple way to check the changelog, testbuild the docs, run pre-commit and run tests (#64)

Bugfixes

  • Fix TypeError when enabling debug mode and using the API. (#45)

Miscellaneous

  • Add CHANGELOG.rst to project root generated by towncrier. This is the first release using the new changelog generation procedure. If you want to see the previous changelog please check our releases on GitHub. (#61)

0.8.5 (2021-02-24)

Bugfixes

  • Add the new serve-notice feature.

0.8.4 (2021-02-24)

Note

This version of MatrixCtl has not been released.

0.8.3 (2021-02-24)

Note

This version of MatrixCtl has not been released.

0.8.2 (2021-02-24)

Note

This version of MatrixCtl has not been released.

Features & Improvements

  • feature upload which makes it possible to upload files and images. It returns the mxc:// uri.

  • feature server-notice.

Miscellaneous

  • Changed docs to classic python theme.

0.8.1 (2020-12-02)

Behavior & Breaking Changes

  • The update command now uses config: [SYNAPSE] -> Playbook instead of [SYNAPSE] -> Path

Features & Improvements

  • Add missing [SYNAPSE] (config file) documentation.

0.8.0 (2020-12-02)

Behavior & Breaking Changes

  • The option to run multiple playbooks with matrixctl. The user should use - import_playbook: /PathTo/matrix-docker-ansible-deploy/setup.yml in an own playbook. (#20)(#21)

Features & Improvements

  • The ansible handler now uses ansible-runner instead of subprocess (#20)(#21)

  • The api handler now gives the user a hint, when the admin api is disabled.

0.7.0 (2020-09-25)

Behavior & Breaking Changes

  • Removed the --with-bots, “bots” are now shown by default (#15)

Bugfixes

  • Fixed the deploy control logic (#18)

0.6.3 (2020-09-17)

Features & Improvements

  • With the help of two args it is possible to deploy the two playbooks independently: - -s/--synapse: Only deploy the synapse playbook, - -a/--ansible: Only deploy your own playbook.

0.6.2 (2020-09-16)

Bugfixes

  • It is now possible to deploy, when only one of [ANSIBLE] or [SYNAPSE] are configured.

0.6.1 (2020-06-02)

Features & Improvements

  • If the access-token has changed or is wrong, MatrixCtl now throws a specific error, which tells the user, what went wrong. (#12)

  • Replace the assertions from the API handler with proper TypeError.

0.6.0 (2020-05-12)

Behavior & Breaking Changes

  • Changed users --no-bots or users -b to users --with-bots or users -b

  • Changed users --guests or users -g to users --with-guests or users -g

Features & Improvements

  • users --with-deactivated or users -d (#2)

Bugfixes

  • SSH handler logs an error if unable to connect (#7)

0.5.0 (2020-04-30)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Behavior & Breaking Changes

  • Fixed typo in the maintenance command.

Removals & Deprecations

0.4.0 (2020-04-22)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Behavior & Breaking Changes

  • rooms submodule: Changed argument --order_by_size to --order-by-size.

Features & Improvements

  • Add the version command.

  • Add the delroom command.

  • Add more debug output to the API handler (params, data, method and censored headers)

0.3.2 (2020-04-21)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Features & Improvements

  • Add the rooms command.

0.3.1 (2020-04-21)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Note

This version of MatrixCtl has not been released.

0.3.0 (2020-04-20)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Note

No significant changes to the Project.

Project restructured.

0.2.2 (2020-04-13)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Features & Improvements

  • Added docs to the Project (gh-pages branch).

Bugfixes

  • matixctl adduser --ansible. MatrixCtl was not able to create a user with the --ansible argument.

0.2.1 (2020-04-13)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Note

This version of MatrixCtl has not been released.

0.2.0 (2020-04-12)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Behavior & Breaking Changes

  • The command list-user has been renamed to users.

Features & Improvements

  • Add the command user.

0.1.4 (2020-04-10)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Features & Improvements

  • Add the command start.

  • Add the command restart (alias for start).

  • Add the command check.

0.1.3 (2020-04-10)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Features & Improvements

  • Add the command adduser-jitsi.

  • Add the command deluser-jitsi.

0.1.2 (2020-04-07)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

First official release.

Features & Improvements

  • Add the command list-users.

0.1.1 (2020-04-07)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Note

No significant changes to the Project.

Trivial Changes

  • Fixed GitHub Wokflow.

0.1.0 (2020-04-07)

Warning

Since the synapse-janitor is not safe to use anymore, please do not use the maintenance command for any MatrixCtl version below 0.5.0!

Note

No significant changes to the Project.

Internal Release