This makes the following changes:
* The various `Defaults` functions are now responsible for setting sane defaults if `generate` is specified, rather than hiding them in `generate-config`
* Some configuration options have been marked as `omitempty` so that they don't appear in generated configs unnecessarily (monolith-specific vs. polylith-specific options)
* A new option `-polylith` has been added to `generate-config` to create a config that makes sense for polylith deployments (i.e. including the internal/external API listeners and per-component database sections)
* A new option `-normalise` has been added to `generate-config` to take an existing file and add any missing options and/or defaults
* Refactor ApplicationServiceWorkerState to be more robust
* Add launch.json to VS Code
* Implement login with JWT, registering with email, failed login rate limiting and reset password with m.login.email.identity auth type
* Log errors when JWT parsing failed
* Development build script
* Fix linter errors
* Use golangci-lint as a linter in VS Code
* Fix tests with RtFailedLogin
* Pass config load tests - parse JWT public key only if enabled
* Reduce CI steps
Do not support 386 arch and go 1.16, 1.17
* Fix linter errors
* Change RtFailedLogin logic - nil pointer can be provided
* Respect access token in query
* Fix typos
* Use only one mutex in RtFailedLogin
* Remove eventsRemaining across appservice component
* Push dendrite to production registry as well
* Rafactor TestRtFailedLogin
* Rate limiting changes
This makes the following changes:
* For logged in users, the rate limiting now applies to the device session rather than the remote IP address;
* For non-logged in users, the rate limiting continues to apply to remote address as it does today;
* It is now possible to add user IDs to the `exempt_user_ids` option under `rate_limiting` to exclude bots from rate limiting;
* Admin and appservice users are now exempt from rate limiting by default.
* Fix build with media API
* Add restrications for open registration
* Make enable open registration a parameter
* Enable registration for CI
* Update error message
* Shuffle things around a bit
* Add a warning at every startup just to be extra annoying
* Ignore shared secret when warning about open registration, since it's not strictly required when it is set if registration is otherwise enabled
* Make CI happy?
* Add missing parameter; try new parameter in upgrade-test
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
* Mention unstable features in /_matrix/client/versions
* list enabled mscs
* Don't update go.mod/go.sum
* goimports
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>