Commit graph

33 commits

Author SHA1 Message Date
Jesse Hallam
d4d8643e29
Remove certificate-based auth (#33751)
This feature has never worked as advertised. Let's deprecate it,
retaining the config field so we can fail server startup to ensure it's
not being used at all.
2025-08-21 09:59:20 -03:00
Jesse Hallam
72d363f605
MM-63726: Adjust default MaxOpenConns/MaxIdleConns settings (#33593)
* MM-63726: Adjust default MaxOpenConns/MaxIdleConns settings

- Change MaxOpenConns from 300 to 100
- Change MaxIdleConns from 20 to 50
- Establish a healthier 2:1 ratio instead of the previous 15:1
- Remove hardcoded values from config files to use new defaults

* Fix mmctl config test for updated MaxIdleConns default

Update test expectation from 20 to 50 to match the new default
value for SqlSettings.MaxIdleConns that was changed in the previous
commit.
2025-08-11 14:06:12 -03:00
Daniel Espino García
71334c6d8b
Report a problem (#30444)
* Add report a problem type and allow logs config

* Improve device type logic

* Add tests and minor fixes

* Add texts

* Fix tests by avoiding circular dependencies

* Fix test

* Fix useexternallink updating mailtos, and changing the content of query parameters

* Fix texts

* Fix e2e test

* Fix tsc

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-04-25 11:08:39 +02:00
catalintomai
7789223494
MM-62930: Add validation of LDAP attribute values. (#30419) 2025-04-14 13:29:42 +02:00
catalintomai
f54acdf100
MM-62704: Add Custom Profile Attributes to the LDAP synchronization process (#30443) 2025-04-11 19:41:26 +02:00
Claudio Costa
f8e16780ef
[MM-63436] Replace Exif parser dependency (#30479)
* Replace Exif parser dependency

* Improve forward seeking logic

* Fix linting

* Stop decoding upon finding tag

* Use latest version of imagemeta dependency

* Don't skip TIFF reader tests

* Log improvements

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-04-01 13:57:43 -06:00
Julien Tant
c440a3223e
[MM-63513] Turn Cross team search feature flag into a setting option (#30518)
* feat: Add EnableCrossTeamSearch configuration option to ServiceSettings

* feat: Add EnableCrossTeamSearch configuration option to ServiceSettings

* feat: Enable cross-team search by default

* include old FF in client config
2025-03-26 10:37:12 -07:00
Christopher Poile
3a73b517e2
[MM-62775] Fix: Bulk export not completing (#30044)
* do not error on exportFile error

* add tests for local and s3 storage exporting with missing file

* linting

* fix attachment path validation in mmctl
2025-02-04 17:56:11 -05:00
Claudio Costa
316cde2569
[MM-62191] Remove disintegration/imaging dependency (#29657)
* Remove disintegration/imaging dependency

* Simplify FillCenter logic

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-03 11:04:00 +05:30
Nadav Tasher
5e47c97db4
Added support for S3 storage classes (#28319)
* Added support for S3 storage classes

* Added missing translations for S3 storage class

* Changed default storage class values to preserve original behaviour

* Changed storage class description and example

* Fix translations ordering

* Change configuration defaults to empty strings

* Remove redundant empty string check

* Validate storage class variable against constants from S3 API docs

* Validate export storage class against constants

* Use slices for config validation

* Applied patch for translation ordering
2024-11-13 12:29:44 +05:30
Claudio Costa
70dc4888fd
Simplify thumbnail resizing logic to ensure target constraints are respected (#28012)
Automatic Merge
2024-09-06 21:44:32 +02:00
M-ZubairAhmed
e2d7d2d23c
[MM-59060] Remove pre release features section from advanced section of user settings (#27608) 2024-07-18 13:01:57 +00:00
Agniva De Sarker
177389d224
MM-53962: Adding ES8 dependency (#24399)
* Adding ES8 dependency

```release-note
NONE
```


Co-authored-by: Mattermost Build <build@mattermost.com>
2024-07-11 13:13:31 +05:30
lindalumitchell
d811bd9e1d
Update link preview URL in test-search.md (#27398) 2024-06-20 14:48:22 +08:00
Ibrahim Serdar Acikgoz
bff2989d95
Prevent null unicode character errors during the migration (#26974) 2024-06-05 18:53:16 +02:00
Jesse Hallam
cd51dec6e5
Centralize the GetPackagePath (#27004) 2024-05-15 12:05:13 -03:00
Jesse Hallam
630bd40141
Eliminate MM_SERVER_PATH (#24968) 2024-05-10 18:13:05 -03:00
Claudio Costa
446c763fa8
[MM-57500] Streaming support for importing file attachments (#26629)
* Bulk import: stream file attachments uploads

* Add comment with context on buffer size

* Add file name to logs

* Use sha256 to do checksum

* Fix bad merge

* Fix import file

* Update test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-04-19 15:49:33 -06:00
Julien Tant
ffc08858cf
[MM-54730] Don't use old hardcoded rule for validating imported posts (#25823)
* don't use old hardcoded rule for validating imported posts

* fix http verb in doc

* Use client config

* Handle local mode

* E2E tests

* Enforce default if unable to use real limit

* Unit tests

* Fix tests

* Use model.PostMessageMaxRunesV2 as lower default

* Update direct post message length validation

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: streamer45 <cstcld91@gmail.com>
2024-04-19 11:45:32 -06:00
Ben Schumacher
7337c384a8
[MM-57106] Remove unused cluster settings (#26490) 2024-03-22 10:44:38 +01:00
Ben Schumacher
726d7494b6
[MM-56889] Add PositionAttribute to LDAP test data (#26242) 2024-02-22 12:28:55 +01:00
Agniva De Sarker
04cf1ed114
Bump up the minimum required MySQL version (#25465)
MySQL 5.7 is at end of life.

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

```release-note
We bump up minimum MySQL version to be 8.0.0
```


Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
2024-01-11 22:18:20 +05:30
ludvigbolin
4547d9ab0e
[GH24626] Remove ExperimentalTimezone as this is always true (#24657)
* Remove all occurrences of ExperimentalTimezone in /server

This removes all uses of ExperimentalTimezone and makes all conditions using this setting being either removed (== false) or always used (== true)

* Remove timezone parameter for getChannelMemberByGroup

As timezone is always enabled this function no longer has a second parameter. The endpoint will always be called with includeTimezones set to true

* Remove all uses of ExperimentalTimezone in webapp

All conditions dependent of this are adjusted to always be true if experimentalTimezone should be true and vice versa

* Change all tests checking for correct usage of ExperimentalTimezone

As this parameter is no longer used, the tests which check for correct behaviour of this is no longer needed

* Fix type errors

Tests regarding types does now pass

'npm run check-types' will run successfully

* fix lint issues

Fix all current lint errors and now lint test goes through

* Fix test regarding profile popover

enableTimezone now is gone and all profile_popover.test.tsx can run successfully.

Added state.entities.users.profiles[] as it before threw an error without it.

* Fix tests where "April 1 2019" was changed to "April 01 2019"

Now it will show "April 1 2019" and "timeZone" will only show if its other than empty ("").

* Fix test where date was set to NaN

Now date will show correctly and will not be NaN

* fix minor test case that failed before

* fix linting in server

* Delete tests that are not valid with timeZoneEnabled removed

tests in advanced_create_comment and advanced_create_post had timeZoneEnabled
set to false as default. The tests that use this are now changed to once which are meant to have timeZoneEnabled set to true.

Adjust jest function in advanced_create_post to get correct stacktrace

* Parameter deleted

isTimeZoneEnabled is always true and therefore the parameter can be deleted

* adjust to prettier standard

* Remove all occurrences of ExperimentalTimezone in /server

This removes all uses of ExperimentalTimezone and makes all conditions using this setting being either removed (== false) or always used (== true)

* Remove timezone parameter for getChannelMemberByGroup

As timezone is always enabled this function no longer has a second parameter. The endpoint will always be called with includeTimezones set to true

* Remove all uses of ExperimentalTimezone in webapp

All conditions dependent of this are adjusted to always be true if experimentalTimezone should be true and vice versa

* Change all tests checking for correct usage of ExperimentalTimezone

As this parameter is no longer used, the tests which check for correct behaviour of this is no longer needed

* Fix type errors

Tests regarding types does now pass

'npm run check-types' will run successfully

* fix lint issues

Fix all current lint errors and now lint test goes through

* Fix test regarding profile popover

enableTimezone now is gone and all profile_popover.test.tsx can run successfully.

Added state.entities.users.profiles[] as it before threw an error without it.

* Fix tests where "April 1 2019" was changed to "April 01 2019"

Now it will show "April 1 2019" and "timeZone" will only show if its other than empty ("").

* Fix test where date was set to NaN

Now date will show correctly and will not be NaN

* fix minor test case that failed before

* fix linting in server

* Delete tests that are not valid with timeZoneEnabled removed

tests in advanced_create_comment and advanced_create_post had timeZoneEnabled
set to false as default. The tests that use this are now changed to once which are meant to have timeZoneEnabled set to true.

Adjust jest function in advanced_create_post to get correct stacktrace

* Parameter deleted

isTimeZoneEnabled is always true and therefore the parameter can be deleted

* adjust to prettier standard

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-10-30 15:31:05 -04:00
Ibrahim Serdar Acikgoz
47b51ff696
updates on the migration template (#24430) 2023-08-31 20:24:08 +03:00
Ibrahim Serdar Acikgoz
d9af86f3ac
migration: preserve index names and a couple of fixes (#24296) 2023-08-22 12:57:40 +03:00
Jesse Hallam
ad142c958e
MM-53355: install transitionally prepackaged plugins to filestore (#24225)
* move plugin signature verification to caller

The semantics for when plugin signature validation is required are unique to the caller, so move this logic there instead of masking it, thus simplifying some of the downstream code.

* support transitionally prepacked plugins

Transitionally prepackaged plugins are prepackaged plugins slated for unpackaging in some future release. Like prepackaged plugins, they automatically install or upgrade if the server is configured to enable that plugin, but unlike prepackaged plugins they don't add to the marketplace to allow for offline installs. In fact, if unlisted from the marketplace and not already enabled via `config.json`, a transitionally prepackaged plugin is essentially hidden.

To ensure a smooth transition in the future release when this plugin is no longer prepackaged at all, transitionally prepackaged plugins are persisted to the filestore as if they had been installed by the enduser. On the next restart, even while the plugin is still transitionally prepackaged, the version in the filestore will take priority. It remains possible for a transitionally prepackaged plugin to upgrade (and once again persist) if we ship a newer version before dropping it altogether.

Some complexity arises in a multi-server cluster, primarily because we don't want to deal with multiple servers writing the same object to the filestore. This is probably fine for S3, but has undefined semantics for regular filesystems, especially with some customers backing their files on any number of different fileshare technologies. To simplify the complexity, only the cluster leader persists transitionally prepackaged plugins.

Unfortunately, this too is complicated, since on upgrade to the first version with the transitionally prepackaged plugin, there is no guarantee that server will be the leader. In fact, as all nodes restart, there is no guarantee that any newly started server will start as the leader. So the persistence has to happen in a job-like fashion. The migration system might work, except we want the ability to run this repeatedly as we add to (or update) these transitionally prepackaged plugins. We also want to minimize the overhead required from the server to juggle any of this.

As a consequence, the persistence of transitionally prepackaged plugins occurs on every cluster leader change. Each server will try at most once to persist its collection of transitionally prepackaged plugins, and newly started servers will see the plugins in the filestore and skip this step altogether.

The current set of transitionally prepackaged plugins include the following, but this is expected to change:
* focalboard

* complete list of transitionally prepackaged plugins

* update plugin_install.go docs

* updated test plugins

* unit test transitionally prepackged plugins

* try restoring original working directory

* Apply suggestions from code review

Co-authored-by: Michael Kochell <6913320+mickmister@users.noreply.github.com>

* clarify processPrepackagedPlugins comment

---------

Co-authored-by: Michael Kochell <6913320+mickmister@users.noreply.github.com>
2023-08-17 12:46:57 -03:00
Ibrahim Serdar Acikgoz
83652aa3c2
[MM-53840] Add migration workflow (#24211) 2023-08-16 10:09:11 +03:00
Devin Binnie
116728424c
[MM-53124] Add optional Forgot Password custom link to override the default flow on the login page (#23831)
* [MM-53124] Add optional Forgot Password custom link to override the default flow on the login page

* Fix i18n

* Fix test

* Added the enable/disable flag

* Fix test

* Fix e2e

* Add blockable link for the Customization navigation
2023-07-11 09:04:39 -04:00
Felipe Martin
f3a9f166bb
[MM-52869] Update and fix links in the system console (#23694)
* Updated privacy policy link

* Removed broken link from fa language

* Updated terms of use link

* Updated pricing links

* Updated self hosted billing links

* Updated terms-of-use links

* Updated privacy-policy links across the project

* Updated pricing links in e2e tests

* Updated cloud billing docs

* Fixed upgrading mattermost server links

* Updated ssl client certificate links

* Updated configure session lenghts links

* Updated configure site url links

* Updated elasticsearch links

* Update data retention policy links

* Updated ldap links

* advanced-permissions

* Updated anchor ServiceSettings.ListenAddress

* Updated anchor #SystemSettings.Forward80To443

* Updated link desktop managed resources

* Updated elasticsearch links

* Updated file content extraction links

* Updated HA Cluster inks

* Updated setup image proxy link

* Updated push notification links

* Update performance monitoring links

* Help links

* Updated about mattermost links

* updated report a problem links

* Updated download apps links

* Updated mobile apps links

* Update share messages links

* Updated format messages links

* Updated in product notices links

* Updated multi factor auth links

* Updated LDAP links

* Updated setup saml links

* Updated saml/ldap configuration links

* Updated plugins URL

* Updated plugin signing links

* Updated webhook links

* Updated slash commands links

* Updated oauth2 links

* Updated webhook links

* Update enable oauth2 links

* Updated personal access tokens list

* Updated experimental links

* Updated snap files

* check-style

* privacy/terms links in about modal
2023-06-19 18:46:52 +02:00
Agniva De Sarker
88d1743191
MM-52325: Bump morph (#23394)
This is needed to implement non-transactional migrations

https://mattermost.atlassian.net/browse/MM-52325
```release-note
NONE
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-05-24 15:53:04 +05:30
Juho Nurminen
fc46a296ce
MM-52720: use an io.LimitedReader in gif frame counting (#23372)
* MM-52720: use an io.LimitedReader in gif frame counting

* Address review feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-05-11 12:47:07 +03:00
Allan Guwatudde
0140e94d77
[MM-49751] - Turn off Inactive Server Email (#22648)
* [MM-49751] - Turn off Inactive Server Email

* remove unused var

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-03-27 22:38:19 +03:00
Doug Lauder
c943ed6859
Mono repo -> Master (#22553)
Combines the following repositories into one:

https://github.com/mattermost/mattermost-server
https://github.com/mattermost/mattermost-webapp
https://github.com/mattermost/focalboard
https://github.com/mattermost/mattermost-plugin-playbooks
2023-03-22 17:22:27 -04:00