Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Container feature detection #656

Open
kegsay opened this issue Oct 2, 2023 · 1 comment
Open

Container feature detection #656

kegsay opened this issue Oct 2, 2023 · 1 comment

Comments

@kegsay
Copy link
Member

kegsay commented Oct 2, 2023

There are an increasing set of features which are:

  • not in the spec
  • required in practice for all production homeservers.

A few examples:

  • ability to delete media.
  • ability to delete rooms/history entirely.
  • change rate limits for the CS API.

It would be nice if a homeserver could "declare" that it supports this, which then runs some magic command on the container to enable/disable this in the container prior to startup (to avoid needing to SIGHUP a running container or other nonsense). If this declaration API is standardised, it would allow the same rate limit tests to work across different HSes for example, and if not, it can be easily skipped.

This has overlap with #654 which suggests a configuration format for saying which tests should be run. One can imagine that the "rate limit tests" were an MSC and hence could be opted-in to. The difference is that this needs configuration on a per-test basis, as we usually want very high rate limits in tests.

@kegsay
Copy link
Member Author

kegsay commented Oct 2, 2023

This could also be used to standardise configuration between homeservers. For example, setting an application service up in Dendrite is subtly different to Synapse (different config file formats). If it was just exposed as a Go API though, then this could be standardised and make setting experimental flags easier.

The risk is that there isn't just one way to configure these things, e.g Synapse worker mode is very different to Synapse monolith mode. Complement generally dictates that the only API the HS needs is the image so we might need to mandate something container-side (e.g have a script called /complement/change_rate_limits.sh or expose AS registration files in /complement/appservices/).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant