Граф коммитов

481 Коммитов

Автор SHA1 Сообщение Дата
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
Julien Tant
5f19d8513b [MM-60026] Add playbooks <v2 in the transitionaslly packaged list (#27903) 2024-08-14 10:22:18 -07: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
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
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
Agniva De Sarker
c3ed07e679 OSF: Used model.NewPointer everywhere (#27838)
```release-note
NONE
```
2024-08-06 09:15:00 +05:30
Ben Schumacher
1158e6358c [MM-54593] HA aware Support Packet (#27598) 2024-08-03 16:11:13 +02:00
Agniva De Sarker
28939d84da MM-59283: Minor improvement in getClientConfig (#27825)
Overall, there is no bug here. But opportunities for
improvement.
- Used the maps.Clone function.
- Handled the error while writing to the network.

https://mattermost.atlassian.net/browse/MM-59283
```release-note
NONE
```
2024-08-01 21:09:58 +05:30
Claudio Costa
453eabb54a Fully deprecate CallsEnabled feature flag (#27826)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-08-01 07:41:46 +00:00
Jesse Hallam
19bf864f04 update missed model.NewUsername() for app.TestZippedImportPostAndRepliesWithAttachments (#27829) 2024-07-31 17:52:42 +00:00
Jesse Hallam
1f26de3024 MM-59875: default apps enabled false (#27756)
* MM-59875: default apps enabled false

We stopped prepackaging the apps framework and stopped supporting it in
Mattermost Cloud a year ago. As part of v10, we're formally deprecating
it, while making allowances for customers who still need to transition
by not making this a breaking change immediately. To help prevent new
adoption, let's ensure the feature flag is disabled by default.

Fixes: https://mattermost.atlassian.net/browse/MM-59875

* fix tests
2024-07-31 17:18:30 +00:00
Scott Bishel
08ed72f060 MM-54502 - Update regex to force first character to be alpha (#24675)
Automatic Merge
2024-07-31 17:27:52 +03:00
Nick Misasi
5bfb32c504 [CLD-8131] Convert Subscription History Reporting to a Job (#27800)
* Remove CloudFreeDeprecated feature flag

* Fixes for CI pipelines

* Remove CloudReverseTrial feature flag and accompanying code (#27676)

Co-authored-by: Mattermost Build <build@mattermost.com>

* Stashing

* Convert subscription history reporting into a daily job

* Update comments

* Fix pipeline, redundant varaible declaration removed

* Add debug logs for start/finish

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-07-31 08:31:55 -04:00
Devin Binnie
aa85a13c8f [MM-58492][MM-58523] Fixed some access control bugs around archived channels by replacing the permission check with HasPermissionToReadChannel (#27409)
* [MM-58492][MM-58523] Fixed some access control bugs around archived channels by replacing the permission check with HasPermissionToReadChannel

* Fix lint, add ChannelId to uploads

* Fix MMCTL tests and remove unnecessary check for the error message that doesn't work anyways

* Include channel map for getting flagged posts

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-07-29 10:05:20 -04:00
Ben Schumacher
705679e875 Fix flaky TestCreateZipFileAndAddFiles/write_one_file (#27737) 2024-07-29 10:04:56 +02:00
Julien Tant
5547504c1d [MM-58378] Prevent prepackaged playbook v2 from upgrading on servers without enterprise license (#27335)
* add check for playbooks v2

* add new license helper

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-07-26 11:03:44 +02:00
Ben Cooke
b244bb621d [MM-56904] Reduce the number of api requests made to fetch user information for GMs on page load (#27149)
* use new endpoint to fetch group members
2024-07-25 15:57:23 -04:00
Ben Schumacher
733156ed23 [MM-59825] Fix linter error found by updated govet (#27715) 2024-07-23 13:10:31 +02:00
Harshil Sharma
b25820b5c5 Added a bunch of debugging logs for Elasticsearch index check (#27678)
* Added a bunch of debugging logs for Elasticsearch index check

* Update server/channels/app/elasticsearch.go

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2024-07-17 13:37:34 +05:30
Ben Schumacher
ff3ed78124 [MM-59292] Add metadata to Support Packet (#27573) 2024-07-14 20:26:43 +02:00
Ben Schumacher
bbc8baac0a [MM-59350] Include LDAP vendor errors in Support Packet (#27571) 2024-07-13 10:17:07 +02:00
Harshil Sharma
87d983cc7f Sysadmin manage user settings (#27583)
* Opened modal from system console

* WIP

* WIP

* WIP

* Handled saving user

* Successfully updated user based settings

* WIP

* WIP

* All settings are updating well

* Fixed modal style

* Added admin mode indicators in modal

* Added confirmation dialog

* Lint fixes

* Added license check

* Added permission check

* Fixed i18n file order

* type fix

* Updated snapshots

* Handled performance debugging setting

* Some styling tweaks

* Fixed text alighnment

* Updated license required from professional to enterprise

* Handled long user names

* review fixes

* Added manage setting option in user list page context menu

* Added loader

* Minor reordering

* Removed confirm modal

* Updated snapshots for removed modal

* Added some tests

* Lint fix

* Used new selector in user detail page

* Used new selector in user list page

* Updated tests

* Fixed an incorrect default test
2024-07-12 10:22:04 +05:30
Harrison Healey
e3b2b13292 MM-58535 Add more information to LCP and INP metrics (#27484)
* Improve mocking of imported resources in unit tests

We have Webpack configured so that, when code imports an image or other resource, the code gets the URL of that image. Jest now matches that behaviour which is needed because React Testing Library would previously throw an error.

* Polyfill ResizeObserver in all unit tests

* Ensure haveIChannelPermission always returns a boolean value

The previous code could sometimes return undefined. While that should behave the same in practice, it can cause React to print prop type warnings

* MM-58535 Add region label to LCP metrics

* MM-58535 Upgrade web-vitals and add INP attribution

* Change new labels to use snake_case

* Remove replaceGlobalStore option from renderWithContext

I was going to add this in case any tests failed with this option set to false, but after running those tests, that's not the case. I'm going to remove this as an option since it seems more likely than not that anyone using RTL would prefer to have this on.
2024-07-09 15:06:08 -04:00
Ben Schumacher
6fc5ff572f Don't modify global variables in TestNoticeValidation (#27591) 2024-07-09 12:36:08 +02:00
Agniva De Sarker
db45c0132e MM-57824: Export/import custom status (#27361)
https://mattermost.atlassian.net/browse/MM-57824
```release-note
NONE
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-07-08 09:41:25 +05:30
Daniel Espino García
e5a3dd7fea Add platform information for push notification metrics (#27460)
* Add platform information for push notification metrics

* Address feedback

* Add the client platform returned by the devices to the normalize function

* Add "no platform" platform label to distinguish from unknown
2024-07-05 09:34:01 +02:00
Ben Schumacher
6bbf7bbb9f Update Packet metadata generation based on feedback (#27490) 2024-07-04 21:56:38 +02:00
Miguel de la Cruz
809ad4f76d Adds Remote Cluster related API endpoints (#27432)
* 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>
2024-07-04 10:35:26 +02:00
Christopher Poile
cc5e87ae24 [MM-57942] Fix a panic on password is too long (#27449)
* return error from bcrypt, handle gracefully; remove dead code

* linting

* linting

* i18n

* fix test

* fill out translations
2024-07-03 17:58:26 -04:00
Ben Cooke
1f9c9486b8 fix panic in migrations (#27494) 2024-07-02 09:08:23 -04:00
Ibrahim Serdar Acikgoz
e85d34163c Add support packet metadata (#27465) 2024-06-27 15:27:57 +02:00
Doug Lauder
6773d13dee MM-58255 Ensure remote users do not get valid email addresses (#27421)
* remote users don't get valid email addresses; remote users cannot have access tokens

* block notification emails for remote users

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-06-25 09:26:08 -04:00
Arya Khochare
a8b18ac807 MM-57013 Added download button for downloading logs from server logs page in system console (#26389)
* 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>
2024-06-24 14:05:23 -04:00
Miguel de la Cruz
d490fdc1d9 Marks the RemoteTeamId field of RemoteClusters as deprecated (#27364)
* 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>
2024-06-22 23:08:55 +02:00
enzowritescode
a624c6dc87 Add saml private key to gitignore, remove unused constants (#27391) 2024-06-19 10:03:28 -06:00
Devin Binnie
f41e8ad756 [MM-57489] Check for StatusCode when receiving responses from the push proxy (#27392) 2024-06-19 09:18:26 -04:00
Daniel Schalla
1bbc3b4e83 [MM-58560] Configurable session revocation during password resets (#27286)
* [MM-58560] Allow for configurable session revocation during password reset

* Missing i18n additions

* Update Settings Wording

* Update Settings Wording #2

* Update default_config.ts for Session Termination

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-06-18 21:13:29 +02:00
Ben Cooke
9187c772b6 [MM-56074] mmctl job commands (#26855)
* add job list and update  job status command to mmctl
2024-06-17 12:07:05 -04:00
Claudio Costa
4b0ae20ef7 Pass remote address in WebSocketMessageHasBeenPosted plugin hook (#27332) 2024-06-13 09:01:49 +02:00
Daniel Espino García
1ec2de4a95 Add mobile metrics (#27045)
* Add mobile metrics

* Fix mocks

* Add tests

* Fix lint

* Address feedback

* Fix lint

* Fix test

* Fix CI

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-06-12 11:33:04 +02:00
Ibrahim Serdar Acikgoz
691386a814 [MM-53356] server/app/migrations: refactor app migrations (#23958) 2024-06-12 10:08:57 +02:00
Nick Misasi
b86ba51efd Add check to not send license expiration email when in Cloud (#27308) 2024-06-10 11:20:44 -04:00
Devin Binnie
f3e760008c [MM-58355] Send invalidate cache message across the cluster so that websocket connections on other instances are invalidated correctly (#27204)
* [MM-58355] Send invalidate cache message across the cluster so that websocket connections on other instances are invalidated correctly

* Add suggestion to clear the session cache on the local node as well

* Force read from master DB when gettting channel members for websocket to avoid any DB sync issues

* PR feedback

* Missed generated files
2024-06-07 09:38:53 -04:00
Christopher Speller
04181247f8 Move HTTP service to public for plugin use (#27284)
* Move httpservice for use in plugins

* Adapt httpservice for plugin use

* Fix lint
2024-06-05 09:58:04 -07:00
Ibrahim Serdar Acikgoz
53bd7a73a4 [MM-58086] platform/busy_test.go: increase test busy duration time (#27082) 2024-06-05 18:52:38 +02:00