* Adds Remote Cluster related API endpoints
New endpoints for the following routes are added:
- Get Remote Clusters at `GET /api/v4/remotecluster`
- Create Remote Cluster at `POST /api/v4/remotecluster`
- Accept Remote Cluster invite at `POST
/api/v4/remotecluster/accept_invite`
- Generate Remote Cluster invite at `POST
/api/v4/remotecluster/{remote_id}/generate_invite`
- Get Remote Cluster at `GET /api/v4/remotecluster/{remote_id}`
- Patch Remote Cluster at `PATCH /api/v4/remotecluster/{remote_id}`
- Delete Remote Cluster at `DELETE /api/v4/remotecluster/{remote_id}`
These endpoints are planned to be used from the system console, and
gated through the `manage_secure_connections` permission.
* Update server/channels/api4/remote_cluster_test.go
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
* Fix AppError names
---------
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Sanitize RemoteEmail user prop
If the server is configured to hide user emails, the "RemoteEmail"
user property will be sanitized as well, effectively hiding the real
email of remote users.
* fix merge conflict
---------
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Mattermost Build <build@mattermost.com>
* update for adding multiple members
* fix unit test
* more test fixes
* add another unit test
* fix object passed by client4
* revert package-lock.json
* revert package-lock.json
* add length check
* limit size of lists in API requests
* revert package-lock
* add batching to front end
* add batching to front end
* fix bad merge
* update return type
* remove unnecessary permisssion check, add unit test
* fixes and add tests from review
* revert changes adding limits to other apis
* fixes
* clean-up from code review
* fix unit test call
* revert back to interface{}, fix unit test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* added download system logs
* download all logs
* download all logs check-lint fix
* check lint fix
* download logs api
* download logs api working
* download logs working with error log
* linting issues and code cleanup
* CI check fix
* documented the api and logs from file with error handling
* test and final changes done
* final changes done
* Fix order of server-side translations
* Fix incorrect indentation of logs.yaml
---------
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
* Marks the RemoteTeamId field of RemoteClusters as deprecated
The `RemoteTeamId` was used both in the `RemoteCluster` model and as
part of remote invites. It existed so two different remotes could have
multiple secure connections between them, and have each of those
connections scoped to a team, sharing through each only the channels
that belong to their corresponding team.
The way that we're thinking on the feature currently only contemplates
one secure connection between two servers, and shares all the
channels through that secure connection, so this field is no longer
needed.
As we don't have a system in place for the user to choose in which
team a channel should be created from an invite, this change adds a
mechanism that checks the invite for a teamId, and if it's not
present, fetches a team from the database to create the channel
into. This makes the change backwards compatible for secure
connections that already have an established behavior and allows us to
move forward with the implementation of an alternative.
* Mark invite teamId field as deprecated
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* - ensure that posts and reactions can only be added via sync when coming from a remote that the target channel is shared with.
- ensure that posts and reactions are only modified/deleted by the remote that owns them.
* check that reaction belongs to post that belongs to channel that is shared with remote; check that posts belong to channel shared with remote
* check for correct error type in unit test
* tweak unit test
A new method, GetPluginID, has been added to the Manifest model. This function returns the ID of a plugin. Corresponding unit tests have also been implemented to ensure that this function works as expected. The test cases cover scenarios where IDs are the same and different.
* Cleans the RemoteId when creating a user through the API
* Replace bad usage of the API with an App call in tests
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-57882 Add metric for the time it takes to open the Threads list
* Clean up mark because the starting mark may be missing
* Pass global threads load duration to Prometheus
* Update mocks
* MM-58281 Allow client metrics to be floats and round timestamps
* MM-58281 Fix report version
* Ensure reports can contain a single timestamp
* Round timestamps in unit tests
* Expose experimental audit log settings to sys console
* Add the rest of the config
* Add check for enterprise sku
* Update string to include a note about being required given another setting
* gofmt
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-57407] Add setting to disable the wake up on reconnect handler
* Add dependency
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Deprecate Self Serve: First Pass
* Fix ci
* Fix more ci
* Remmove outdated server tests
* Fix a missed spot opening purchase modal in Self Hosted
* Fix i18n
* Clean up some more server code, fix webapp test
* Fix alignment of button
* Fix linter
* Fix i18n server side
* Deprecate in product true up
* Add back translation
* Remove client functions
* Put back client functions
* webapp deprecation
* Deprecate Self Serve: Second Pass
* Fix various pipeline issues
* Fix linter
* Fix pipelines
* Fix handlers_test.go
* Fix console.error around hostedCustomer in reducer
* PICKY LINTER PLEASE
* Fix webapp tests, various other fixes for the CI pipelines
* Fix i18n
* Updates to accomadate enterprise code removal
* Fix mocks
* More removal
* Fix
* Adjustments from PR
* Fixes for QA Feedback
* Update
* Add migrations to remove true up review history
* Fix migrations check
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: maria.nunez <maria.nunez@mattermost.com>
We were setting the user status to offline without
checking for connections on other nodes in a cluster.
Now we implement a request-response mechanism for the whole
cluster and we check that before setting a user to offline.
https://mattermost.atlassian.net/browse/MM-57153
```release-note
Fix a bug where the user status would incorrectly be set to offline
without checking for connections in other nodes in an HA cluster.
```
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
* Ensure your own posts are never ACKed
* Don't ACK mobile websocket notifications
* Add counter for the unsupported Desktop Apps
* Count only push messages when checking for acks
* Fix generated
* Add tests, fix comment
* Fix help string
* Check for nil session
* [MM-57066] Add metric counters for notification events
* Some small changes
* Account for Metrics() sometimes being nil
* Fix test (again)
* Fix more tests
* A few changes from testing - added success counter
* Missed a mock
* Lint
* Add feature flag for notification monitoring
* Renamed user limit API to app limit API
* Added post warning limit
* Added tests
* Fixed types
* Renamed AppLimits to ServerLimits
* Fixed tests and review fixes
* Updated generated code
* Updated server i18n
* Fixed TestCreateUserOrGuest test
* Exclude deleted posts from post count for liims
* Reduced limits for ease of testing
* Restored original limts