1435 Коммитов

Автор SHA1 Сообщение Дата
Nick Misasi
6cece9faa6 Update download app link in Cloud welcome email (#28123) 2024-09-13 10:53:29 -04:00
Miguel de la Cruz
f41d54b336 Allows invites to be sent to offline remotes (#28176)
* Allows invites to be sent to offline remotes

Invites sent to remotes marked as offline will be stored as pending,
and when the remote comes back online, it will process the invites as
part of the synchronization process.

* Update condition name for excluding confirmed invites
2024-09-13 10:54:51 +02:00
Miguel de la Cruz
d879927876 Skip racy subtest from TestUpdateChannelBookmarkSortOrder (#28155) 2024-09-13 14:51:19 +08:00
Ben Schumacher
70fe2abea6 [MM-57194] Allow plugins to mark setting fields as secret (#27986)
Co-authored-by: Claudio Costa <cstcld91@gmail.com>
2024-09-12 19:23:57 +02:00
Caleb Roseland
84a0c09d56 Content-Type fixes in client4.ts and remote_cluster.go (#27887)
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
2024-09-12 10:21:06 -05:00
Miguel de la Cruz
f8202309ce Adds logical deletes to shared channel remotes and remote clusters (#28159)
* Adds logical deletes to shared channel remotes and remote clusters

Instead of physically deleting the shared channel remote and remote
clusters records when a channel is unshared, a remote uninvited or a
remote cluster is deleted, now those have a logical `DeleteAt` field
that is set.

This allows us to safely restore shared channels between two remote
clusters (as of now resetting the cursor without backfilling their
contents) and to know which connections were established in the past
and now are severed.

* Delete the index in remoteclusters before adding the new column

* Fix bad error check
2024-09-12 13:55:11 +02:00
Guillermo Vayá
41bca03270 MM-55208 allow search prefixes (#28146)
* Ignore at and tilde for username and channel searches.

* allow using tilde in search suggestions

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-12 12:19:51 +02:00
Daniel Espino García
af503d9d45 Ignore ack and notification counts if notifications are blocked by the device (#27570)
* Ignore performance counts if notifications are blocked by the device

* Change the endpoint to allow more information

* Add tests and API description

* Remove wrong test

* Address feedback

* Only update the cache when there is no error

* Follow same casing as other props

* use one single endpoint

* Fix tests

* Fix i18n

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-11 18:01:21 +02:00
Agniva De Sarker
b9debc75a0 MM-60478: Do not invalidate session cache on user added to channel (#28142)
PR: https://github.com/mattermost/mattermost/pull/27204 fixed the issue
where `invalidateWebConnSessionCacheForUser` was not broadcasted across
the cluster. However, we became too conservative and started to invalidate
the session cache as well.

But the session cache only contains the session details for the user
and the team membership. There is no channel membership related info.

Therefore, we avoid that and improve performance as well.

https://mattermost.atlassian.net/browse/MM-60478

```release-note
NONE
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-11 20:42:49 +05:30
Ben Schumacher
d9e47522a0 Remove unnecessary copies of loop variables (#28138) 2024-09-11 16:51:30 +02:00
Daniel Espino García
b6bd92f90e Fix mark as unread websocket (#28145)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-11 10:57:46 +02:00
Miguel de la Cruz
b898d13e55 Adds status sync to shared channels (#28020)
* Adds status sync to shared channels

To allow for status to be synced, this changes add a new type of
shared channel internal task. This task has its contents pre-fetched
and stored in the `existingMsg` property, and it is keyed with a user
ID besides a channel ID, so it doesn't conflict with channel-driven
synchronization tasks.

All status synchronizations are triggered from the app layer, so there
is no need of watching for new WebSocket events. Although right now
we're only syncing one user status per message, the changes account
for a list of statuses in case we want to batch them in the future.

The feature is gated by a configuration property and can be disabled
independently of the rest of Shared Channels if it's necessary. It is
backwards compatible as well, and should cause no problems with
servers running older Mattermost versions.

* Adds status sync error management and retry

* Adds DisableSharedChannelsStatusSync to the telemetry report

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-10 21:39:07 +00:00
Harrison Healey
c74f830b76 MM-60283 Add standard response and API docs to /client_perf API (#28124)
* MM-60283 Add standard response to /client_perf API

* Add API docs for /client_perf endpoint

* Fix invalid response schema
2024-09-10 21:11:05 +00:00
Miguel de la Cruz
d5e9aa9fb3 Adds ConnectedWorkspacesSettings configuration block (#27820)
* Adds ServerFederationSettings configuration block

The Server Federation related configuration properties were located in
the `ExperimentalSettings` config block. Now that the feature is going
to get out of beta, and foreseeing more configuration properties being
added to it, we're moving them to a block of its own.

If the properties were set in the old location, their values should be
carried over to the new ones. The old properties are left in place and
marked as deprecated not to cause issues with the model.

* Update System Console to include Server Federation section

* Remove system console section

* Move the configuration properties to ConnectedWorkspaces

* Add ConnectedWorkspacesSettings to the telemetry

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-10 22:33:00 +02:00
Scott Bishel
0c585bdac6 MM-59529 Set Channel/Team Admin permissions if All members get set (#28104)
* initial fix

* cleanup code

* move struct back

* fix unit test

* add unit tests

* add comments

* add manage_bookmark permissions

* revert package-lock.json

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-10 11:26:55 -06:00
Rajat Dabade
27ad7e08b9 MM-60481 Skip test TestCreateChannelBookmark (#28144) 2024-09-10 14:42:41 +05:30
Kunal Acharya
0c3c298253 MM-56819: Introduce --local mode in MMCTL to handle user preferences. (#26972) 2024-09-09 14:12:22 +02:00
daveseo901
388dfdfbca [MM-56792] Clarify large plugin upload error (#26271)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2024-09-09 14:00:25 +02:00
Claudio Costa
70dc4888fd Simplify thumbnail resizing logic to ensure target constraints are respected (#28012)
Automatic Merge
2024-09-06 21:44:32 +02:00
Harrison Healey
8c5f00da86 MM-60285 Add fresh label to channel and team switch metrics (#28100)
* Changed measureAndReport to take an object as parameters

* MM-60285 Add fresh label to channel and team switch metrics
2024-09-05 16:30:24 -04:00
Nick Misasi
8694b78cc8 [CLD-8304] Return 501 if not a cloud license accessing IP Filtering (#28093)
* Return 501 if not a cloud license accessing IP Filtering

* Changes for PR feedback
2024-09-05 14:28:51 -04:00
Miguel de la Cruz
98ef6b9ad8 Skip racy test TestPostReminder (#28089) 2024-09-05 18:09:07 +02:00
Ben Cooke
57450489e6 convert MessageExport query to squirrel (#28023)
Co-authored-by: Benjamin Cooke <ben@Benjamins-MacBook-Pro-2.local>
2024-09-03 11:36:14 +01:00
Elias Nahum
d2a5b2e56c Fix Channel Bookmarks flaky tests (#28016) 2024-08-30 07:33:24 +08:00
Ibrahim Serdar Acikgoz
6235f6cb77 [MM-60280] api4/license.go: add err check to JSON unmarshal (#28063) 2024-08-29 15:24:55 +02:00
Ibrahim Serdar Acikgoz
d5cc2eb2f6 [MM-59367] export: enable exporting thread followers for CRT (#27623) 2024-08-29 14:06:41 +02:00
Miguel de la Cruz
3dc0e63c03 Adds Shared Channel related API endpoints (#27436)
* Adds Shared Channel management API endpoints

New endpoints for the following routes are added:

- Get Shared Channel Remotes by Remote Cluster at `GET
/api/v4/remotecluster/{remote_id}/sharedchannelremotes`
- Invite Remote Cluster to Channel at `POST
/api/v4/remotecluster/{remote_id}/channels/invite`
- Uninvite Remote Cluster to Channel at `POST
/api/v4/remotecluster/{remote_id}/channels/uninvite`

These endpoints are planned to be used from the system console, and
gated through the `manage_secure_connections` permission.

* Adds i18n messages for API errors

* Fix pagination flaky test

* Fix linter

* Adds the posibility of filtering shared channel remotes by home

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-29 12:46:37 +02:00
Ben Schumacher
5ff680d20d [MM-60262] Respect config store option when creating platform service (#28038)
* Respect config store option when creating platform service

* Remove ConfigStore from ServiceConfig
2024-08-28 07:02:09 +02:00
Ibrahim Serdar Acikgoz
4b3de1861f [MM-59519] preserve DM/GM unread/read state over export and import (#27707) 2024-08-26 17:04:48 +02:00
Harshil Sharma
c2c37cea20 MM-60269: Removed an incorrect return that caused missing API timing metrics for 4xx and 5xx errors (#28049)
* removed an incorretc return that caused missing API timing metrics for 4xx and 5xx errors

* Added tests and recorded metric for URL length limit as well

* Status code fix
2024-08-26 16:21:47 +02:00
Domenico Rizzo
e8b5ecd826 MM-57738 - Added GetPluginID function across multiple files (#27960) 2024-08-26 13:39:29 +02:00
Daniel Espino García
e121bebba5 Differentiate remove device error from push proxy (#27998)
* Differentiate remove device error from push proxy

* Fix variable name
2024-08-23 17:43:47 +02:00
Ben Cooke
0d6b1070a2 [MM-58549] Desktop login (#27732)
* desktop oauth and saml login
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-21 18:00:19 -04:00
Arya Khochare
4999c4a9c6 Get posts for a channel has_next attribute fix (#26901)
* Get posts for a channel has_next attribute fix

* HasNext attribute test changes

* tests fix

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-21 11:00:42 +05:30
Agniva De Sarker
3150900bd7 MM-59827: Remove user profile invalidations from channel APIs (#27720)
We were invalidating the userProfileByIds cache unnecessarily
when it wasn't really needed. It's just that the InvalidateCacheForUser
method wiped off all user related caches, when we just needed to wipe
user-channel related caches.

To fix this, we split the user cache invalidation method into two
and just call the InvalidateChannelCacheForUser method from app/channel.go.

https://mattermost.atlassian.net/browse/MM-59827
```release-note
NONE
```
2024-08-19 20:02:35 +05:30
enzowritescode
91d4bc627d Remove redundant check and fix language in comment (#27991)
* Remove redundant if statement

* Fix language in comment per IDE recommendation
2024-08-15 14:13:44 -06:00
Julien Tant
5f19d8513b [MM-60026] Add playbooks <v2 in the transitionaslly packaged list (#27903) 2024-08-14 10:22:18 -07:00
Ben Schumacher
fc1a111b06 [MM-38131] Remove deprecated pageSize query parameter (#27957) 2024-08-13 22:18:22 +02:00
Ben Schumacher
bcf92d3f53 Fix flaky TestCreateZipFileAndAddFiles/write_one_file - 2nd round (#27923) 2024-08-13 10:49:05 +02:00
Agniva De Sarker
a1012d33eb MM-59932: Migrate remaining caches to Redis (#27880)
- We introduce 2 new APIs:
1. Scan: this allows incremental iteration
without blocking the Redis server and is the
recommended way to iterate over keys. With this,
we have entirely removed the need for Keys.
2. RemoveMulti: this allows deletion of multiple
keys in a single operation which optimizes
network round trips.

- While here, we make a small improvement to
GetStatusFromCache, where we remove the shallow
copy which wasn't necessary because we always
serialize the data from the cache.
- We do not use Redis for session cache because of
frequent requests to iterate the entire cache which leads
to a lot of `SCAN` calls.
- Avoid broadcasting status update messages for Redis case.
- Setting cache expiry for status cache
- Removing .Set method altogether to prevent
any chances of setting an item with no expiry.

https://mattermost.atlassian.net/browse/MM-59932

```release-note
NONE
```
2024-08-13 14:18:25 +05:30
Ben Schumacher
b5ac317e82 [MM-60152] Fix notifications log file location for Support Packet (#27921) 2024-08-12 14:40:04 +02:00
alexcekay
7232b5f002 [GH-26715] Added Pagination Support for IncomingWebHooks (#27502)
* Added Pagination Support for IncomingWebHooks

* Incorporated feedback from reviews

* Removed trailing spaces

* Restored deleted server en.json entries, fixed order in webapp en.json

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-09 16:44:22 -04:00
Miguel de la Cruz
cd99c4068d Removes the backslash in migrations.list (#27882)
The use of the backslash was causing issues between different versions
of make.
2024-08-09 11:17:15 +02:00
Miguel de la Cruz
59873a2a50 Adds default team to the remote cluster entity (#27863)
* Adds default team to the remote cluster entity

A new DefaultTeamId field is added to the RemoteCluster entity and its
endpoints, and used when receiving channel invites to choose in which
team to create a new channel.

This will be later extended with the ability for the system admin to
manually accept invites, choosing which team to create the channel on
each. This use case will be triggered when the DefaultTeamId field is
empty, which now simply chooses the first team it finds in the
database as a fallback.

* Fix migrations list

* Fixes channelinvite test case

* Fix i18n

* Fix migration list
2024-08-08 16:36:27 +02:00
Miguel de la Cruz
eec9a4742a Allows creating new remote clusters without providing a password (#27864)
* Allows creating new remote clusters without providing a password

If the endpoint receives a request with no password, it will generate
one internally and return it in the response, so the frotend can show
it to the user.

* Use a random string instead of a UUID for the generated password

* Update function name to avoid CString reference and adds assertion

* Update server/channels/utils/textgeneration.go

Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>

* Extends the charset

---------

Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
2024-08-08 12:18:21 +02:00
Julien Tant
06d8c857ea [MM-60025][MM-59522] Add playbooks v2 to prepackaged plugins (#27862)
* add playbooks v2 to prepackaged plugins

* Update Makefile
2024-08-07 14:17:10 -07:00
Devin Binnie
90884172ae [MM-59911] Force individual users to receive the user_added and group_added events instead of relying on the channel membership (#27846)
* [MM-59911] Force individual users to receive the `user_added` and `group_added` events instead of relying on the channel membership

* Fix redundant JSON serializing
2024-08-07 11:29:36 +00:00
Devin Binnie
6ae03a098e [MM-58492] Remove subsequent check for team permissions on open channels (#27827)
* [MM-58492] Remove subsequent check for team permissions on open channels

* Removed extra check for open channel for webhooks as well

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-06 08:56:25 -04:00
Harshil Sharma
69a8b3df0f Cleanup post embed for WebSocket payload (#27763)
* Cleanup post embed for WebSocket payload

* Removing post embeds in create post API

* Fixed a nil check:

* Removed a now-irrelavent test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-06 15:17:31 +05:30
Agniva De Sarker
540febd866 MM-56876: Redis: first introduction (#27752)
```release-note
NONE
```

---------

Co-authored-by: Jesús Espino <jespinog@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-06 09:28:41 +05:30