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

1051 Коммитов

Автор SHA1 Сообщение Дата
Christopher Poile
aba4434dab MM-59966 - Compliance Export overhaul - feature branch (#29789)
* [MM-59089] Add a compliance export constant (#27919)

* add a useful constant

* i18n

* another constant

* another i18n

* [MM-60422] Add GetChannelsWithActivityDuring (#28301)

* modify GetUsersInChannelDuring to accept a slice of channelIds

* add GetChannelsWithActivityDuring

* add compliance export progress message; remove unused custom status

* linting

* tests running too fast

* add batch size config settings

* add store tests

* linting

* empty commit

* i18n changes

* fix i18n ordering

* MM-60570 - Server-side changes consolidating the export CLI with server/ent code (#28640)

* add an i18n field; add the CLI's export directory

* int64 -> int

* Add UntilUpdateAt for MessageExport and AnalyticsPostCount

to merge

* remove now-unused i18n strings

* add TranslationsPreInitFromBuffer to allow CLI to use i18n

* use GetBuilder to simplify; rename TranslationsPreInitFromFileBytes

* [MM-59089] Improve compliance export timings (#1733 - Enterprise repo)

* MM-60422 - Performance and logic fixes for Compliance Exports (#1757 - Enterprise repo)

* MM-60570 - Enterprise-side changes consolidating the export CLI with server/ent code (#1769 - Enterprise repo)

* merge conflicts; missed file from ent branch

* MM-61038 - Add an option to sqlstore.New (#28702)

remove useless comment

add test

add an option to sqlstore.New

* MM-60976: Remove RunExport command from Mattermost binary (#28805)

* remove RunExport command from mattermost binary

* remove the code it was calling

* fix i18n

* remove test (was only testing license, not functionality)

* empty commit

* fix flaky GetChannelsWithActivityDuring test

* MM-60063: Dedicated Export Filestore fix, redo of #1772 (enterprise) (#28803)

* redo filestore fix #1772 (enterprise repo) on top of MM-59966 feature

* add new e2e tests for export filestore

* golint

* ok, note to self: shadowing bad, actually (when there's a defer)

* empty commit

* MM-61137 - Message export: Support 7.8.11 era dbs (#28824)

* support 7.8.11 era dbs by wrapping the store using only what we need

* fix flaky GetChannelsWithActivityDuring test

* add a comment

* only need to define the MEFileInfoStore (the one that'll be overridden)

* blank commit

* MM-60974 - Message Export: Add performance metrics (#28836)

* support 7.8.11 era dbs by wrapping the store using only what we need

* fix flaky GetChannelsWithActivityDuring test

* add a comment

* only need to define the MEFileInfoStore (the one that'll be overridden)

* performance metrics

* cleanup unneeded named returns

* blank commit

* MM-60975 - Message export: Add startTime and endTime to export folder name (#28840)

* support 7.8.11 era dbs by wrapping the store using only what we need

* fix flaky GetChannelsWithActivityDuring test

* add a comment

* only need to define the MEFileInfoStore (the one that'll be overridden)

* performance metrics

* output startTime and endTime in export folder

* empty commit

* merge conflict

* MM-60978 - Message export: Improve xml fields; fix delete semantics (#28873)

* support 7.8.11 era dbs by wrapping the store using only what we need

* fix flaky GetChannelsWithActivityDuring test

* add a comment

* only need to define the MEFileInfoStore (the one that'll be overridden)

* performance metrics

* output startTime and endTime in export folder

* empty commit

* add xml fields, omit when empty, tests

* fix delete semantics; test (and test for update semantics)

* clarify comments

* simplify edited post detection, now there's no edge case.

* add some spacing to help fast running tests

* merge conflicts/updates needed for new deleted post semantics

* linting; fixing tests from upstream merge

* use SafeDereference

* linting

* stronger typing; better wrapped errors; better formatting

* blank commit

* goimports formatting

* fix merge mistake

* minor fixes due to changes in master

* MM-61755 - Simplifying and Support reporting to the db from the CLI (#29281)

* finally clean up JobData struct and stringMap; prep for CLI using db

* and now simplify using StringMapToJobDataWithZeroValues

* remove unused fn

* create JobDataExported; clean up errors

* MM-60176 - Message Export: Global relay cleanup (#29168)

* move global relay logic into global_relay_export

* blank commit

* blank commit

* improve errors

* MM-60693 - Refactor CSV to use same codepath as Actiance (#29191)

* move global relay logic into global_relay_export

* blank commit

* refactor (and simplify) ExportParams into shared

* blank commit

* remove unused fn

* csv now uses pre-calculated joins/leaves like actiance

* improve errors

* remove nil post check; remove ignoredPosts metric

* remove unneeded copy

* MM-61696 - Refactor GlobalRelay to use same codepath as Actiance (#29225)

* move global relay logic into global_relay_export

* blank commit

* refactor (and simplify) ExportParams into shared

* blank commit

* remove unused fn

* csv now uses pre-calculated joins/leaves like actiance

* remove newly unneeded function and its test. goodbye.

* refactor GetPostAttachments for csv + global relay to share

* refactor global_relay_export and fix tests (no changes to output)

* improve errors

* remove nil post check; remove ignoredPosts metric

* remove unneeded copy

* remove unneeded nil check

* PR comments

* MM-61715 - Generalize e2e to all export types 🤖  (#29369)

* move global relay logic into global_relay_export

* blank commit

* refactor (and simplify) ExportParams into shared

* blank commit

* remove unused fn

* csv now uses pre-calculated joins/leaves like actiance

* remove newly unneeded function and its test. goodbye.

* refactor GetPostAttachments for csv + global relay to share

* refactor global_relay_export and fix tests (no changes to output)

* improve errors

* remove nil post check; remove ignoredPosts metric

* remove unneeded copy

* remove unneeded nil check

* PR comments

* refactor isDeletedMsg for all export types

* fix start and endtime, nasty csv createAt bug; bring closer to Actiance

* align unit tests with new logic (e.g. starttime / endtime)

* refactor a TimestampConvert fn for code + tests

* bug: pass templates to global relay (hurray for e2e tests, otherwise...)

* add global relay zip to allowed list (only for tests)

* test helpers

* new templates for e2e tests

* e2e tests... phew.

* linting

* merge conflicts

* unexport PostToRow; add test helper marker

* cleanup, shortening, thanks to PR comments

* MM-61972 - Generalize export data path - Actiance (#29399)

* extract and generalize the export data generation functions

* finish moving test (bc of previous extraction)

* lift a function from common -> shared (to break an import cycle)

* actiance now takes general export data, processes it into actiance data

* bring tests in line with correct sorting rules (upadateAt, messageId)

* fixups, PR comments

* turn strings.Repeat into a more descriptive const

amended: one letter fix; bad rebase

* MM-62009 - e2e clock heisenbug (#29434)

* consolidate assertions; output debuggable diffs (keeping for future)

* refactor test output generator to generators file

* waitUntilZeroPosts + pass through until to job = fix all clock issues

* simplify messages to model.NewId(); remove unneeded waitUntilZeroPosts

* model.NewId() -> storetest.NewTestID()

* MM-61980 - Generalize export data path - CSV (#29482)

* simple refactoring

* increase sleep times for (very) rare test failures

* add extra information to the generic export for CSV

* adj Actiance to handle new generic export (no difference in its output)

* no longer need mergePosts (yay), move getJoinLeavePosts for everyone

* adjust tests for new csv semantics (detailed in summary)

* and need to add the new exported data to the export_data_tests

* rearrange csv writing to happen after data export (more logical)

* linting

* remove debug statements

* figured out what was wrong with global relay e2e test 3; solid now

* PR comments

* MM-61718 - Generalize export data path - Global Relay (#29508)

* move global relay over to using the generalized export data

* performance pass -- not much can be done

* Update server/enterprise/message_export/global_relay_export/global_relay_export.go

Co-authored-by: Claudio Costa <cstcld91@gmail.com>

---------

Co-authored-by: Claudio Costa <cstcld91@gmail.com>

* MM-62058 - Align CSV with Actiance (#29551)

* refactoring actiance files and var names for clarity

* bug found in exported attachments (we used to miss some start/ends)

* changes needed for actiance due to new generic exports

* bringing CSV up to actiance standards

* fixing global relay b/c of new semantics (adding a note on an edge case)

* aligning e2e tests, adding comments to clarify what is expected/tested

* necessary changes; 1 more test for added functionality (ignoreDeleted)

* comment style

* MM-62059 - Align Global Relay with Actiance/CSV; many fixes (#29665)

* core logic changes to general export_data and the specific export paths

* unit tests and e2e tests, covering all new edge cases and all logic

* linting

* better var naming, const value, and cleaning up functions calls

* MM-62436 - Temporarily skip cypress tests that require download link (#29772)

---------

Co-authored-by: Claudio Costa <cstcld91@gmail.com>
2025-01-10 16:56:02 -05:00
enzowritescode
0c213eae9e Reduce number of IDE warnings in permissions_migrations.go (#29605)
* Reduce number of IDE warnings in permissions_migrations.go

* Fix comment language
2025-01-09 11:33:03 -07:00
Ben Schumacher
e8beefd423 Remove duplicate SAML login error message (#29767) 2025-01-09 12:41:11 +01:00
Agniva De Sarker
4265df8a07 MM-62079: Fix permissions being reset properly (#29574)
The default role permissions weren't being saved
to a separate variable which would have not restored
them properly. This was a problem in various other
tests, potentially causing side-effects in other
flaky tests as well.

We fix that, as well as clean up the for loop
a bit and mention how many messages were recieved
in the failure message so that it becomes clear
whether no messages were recieved, or atleast some
were received.

https://mattermost.atlassian.net/browse/MM-62079
```release-note
NONE
```
2025-01-08 20:03:59 +05:30
Agniva De Sarker
148dff2c24 MM-62378: Initialize status and session cache before loading license (#29686)
* MM-62378: Initialize status and session cache before loading license

ps.LoadLicense could end up calling InvalidateAllCaches. Therefore,
we need to intialize those caches before calling LoadLicense
to prevent a panic from happening.

While here, we also remove some unused code.

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

* fix lint errors

```release-note
NONE
```

* fix test

```release-note
NONE
```
2025-01-03 10:25:35 +05:30
Jesse Hallam
06a8c728c4 Fix cases where args... was not spread (#29668) 2024-12-23 11:22:02 -04:00
Yahya Haq
0482b57bf8 [MM-29441] Fix errcheck issues in web_hub.go (#29614)
* fix errcheck for web_hub.go

* log user id
2024-12-23 15:09:50 +05:30
Doug Lauder
3b125a4564 Fix bug in SqlPostStore.PermanentDeletebyUser where no error was returned when 10K posts was exceeded. Remaining posts were silently orphaned. (#29642)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-12-20 16:32:16 -05:00
Jesse Hallam
9e01424b15 Improve system admin permissions to dms and gms (#29656)
* revert the api4 portion of 57372bd06b

* test: Add system admin channel access tests

* skip a.HasPermissionToTeam for channels without a team

* fix TestPostGetInfo
2024-12-20 12:49:58 -04:00
TheInvincible
812034f5eb Update export.go (fix errcheck issue) (#28971) 2024-12-20 17:45:13 +01:00
Ibrahim Serdar Acikgoz
902888efd9 server/channels/app/export_test: fix a lint error due to err check (#29650) 2024-12-19 19:34:46 +01:00
Ibrahim Serdar Acikgoz
e76786278b [MM-60083] export: do not export DMs/GMs if users are deleted (#28854) 2024-12-19 16:47:52 +01:00
Seiya Homma
cf392f7cca [MM-62143] Avoid SELECT * in role_store.go 2024-12-19 13:57:10 +01:00
Ibrahim Serdar Acikgoz
bf4d41954a [MM-53245] export/import: add Props to the replies (#29531) 2024-12-18 17:36:17 +01:00
Harshil Sharma
041c874961 Reduced unnecessary debug logs from scheduled post job (#29560)
* Reduced unnecessery debug logs from scheduled post job

* Improved log
2024-12-18 12:58:32 +05:30
Ivy Gesare
0e4e7ca0b9 [MM-61514] Fix errcheck issues in server/channels/app/web_broadcast_hooks_test.go (#29213)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
2024-12-17 15:09:24 -06:00
Ibrahim Serdar Acikgoz
bdbce2f8be server/channels/app/import_functions_test: fix build errors (#29630) 2024-12-17 10:36:58 -05:00
Arya Khochare
cf93d2a14e Fixed errcheck issues in server/channels/app/export_test.go (#29004)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2024-12-17 16:15:38 +01:00
Scott Bishel
faa7e4f2ea MM-62188 - Revoke user sessions when converted to bot (#29573)
* revoke user sessions when converted to bot

* lint fixes
2024-12-17 07:55:10 -07:00
Ibrahim Serdar Acikgoz
de59770797 [MM-51468] import: allow usernames to be uppercase (#29530) 2024-12-17 13:27:53 +00:00
Ibrahim Serdar Acikgoz
74afa1fa78 [MM-60684] GetMaxPostSize: update threshold to V2, it was way overdue (#28662) 2024-12-17 13:26:48 +00:00
Arya Khochare
1f7f0d20cd Fixed errcheck issues in server/channels/app/migrations.go (#29067) 2024-12-17 14:16:37 +01:00
Arya Khochare
cdfadcf47d Fixed errcheck issues in server/channels/app/security_update_check.go (#29200) 2024-12-17 12:52:43 +01:00
Ibrahim Serdar Acikgoz
b59819da68 [MM-56986] imports/import_validators: add valid guest role check (#28658) 2024-12-17 11:49:55 +00:00
Ibrahim Serdar Acikgoz
424ce2b8db [MM-59503] export: enable exporting configuration with mmctl (#28412) 2024-12-17 10:23:52 +01:00
fume4mattermost
4a5994906c [MM-56031] Add DeleteSidebarCategory method and channel category API tests (#29161)
* Add DeleteSidebarCategory method and channel category API tests

* Add test to verify channels move to default categories when custom category is deleted

* rename channel category tests and remove duplicate context

* TestNotifications fix

---------

Co-authored-by: Fume <contact@fumedev.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-12-16 16:29:43 -05:00
Jesús Espino
d316df6d28 Replacing interface{} with any everywhere (except generated mocks) (#29446) 2024-12-15 21:11:36 +01:00
Seiya Homma
01415bee9c Resolve backward compatibility issues (#29566)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-12-13 12:49:00 -04:00
Agniva De Sarker
bc22267829 MM-61699: Improve TestDeletePostEvent (#29575)
This test failed because TestWebHubCloseConnOnDBFail failed
and therefore the ChannelMembers table failed to be
renamed back.

We can see that in the logs:

```
teams","request_id":"sdxjxsd1wibd9mb7kc3ixj6g1w","ip_addr":"127.0.0.1","user_id":"afw9qqjh7pnddqakraxnjf1oph","method":"POST","user_id":"afw9qqjh7pnddqakraxnjf1oph","team_id":"bocubwmn4jyrmc1p9uxrc4pwfc","error":"JoinDefaultChannels: Unable to save direct channel., channel_members_save: Error 1146 (42S02): Table 'dbrt3jzcosj3nb8g6mgwmqyss9rh.ChannelMembers' doesn't exist"}
{"timestamp":"2024-11-10 13:52:34.260 Z","level":"error","msg":"Error while invalidating channel member cache","caller":"platform/web_hub.go:524","user_id":"afw9qqjh7pnddqakraxnjf1oph","error":"failed to find ChannelMembers, TeamScheme and ChannelScheme data: Error 1146 (42S02): Table 'dbrt3jzcosj3nb8g6mgwmqyss9rh.ChannelMembers' doesn't exist"}
{"timestamp":"2024-11-10 13:52:34.260 Z","level":"error","msg":"Error while invalidating channel member cache","caller":"platform/web_hub.go:524","user_id":"afw9qqjh7pnddqakraxnjf1oph","error":"failed to find ChannelMembers, TeamScheme and ChannelScheme data: Error 1146 (42S02): Table 'dbrt3jzcosj3nb8g6mgwmqyss9rh.ChannelMembers' doesn't exist"}
```

There is nothing wrong with this test. And while
we are here, we slightly improve the for-select loop
to exit faster.

https://mattermost.atlassian.net/browse/MM-61699
```release-note
NONE
```
2024-12-13 13:28:58 +05:30
Jesús Espino
31351a48b0 Depublishing some app layer methods (#29559)
* Depublishing some app layer methods

* Fixing errors

* Addressing PR review comment

* Using goimports formatting now
2024-12-12 20:15:38 +01:00
Rohan Sharma
a5a92d825a [MM-61102] Fix errcheck issues in server/channels/app/channel_bookmark_test.go (#28789)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2024-12-12 16:48:48 +01:00
Devin Binnie
3eb95af974 [MM-62086] Don't include deleted DMs/GMs when returning archived channels (#29572) 2024-12-12 15:19:21 +00:00
Devin Binnie
57372bd06b [MM-62092] Allow system admins to pull posts in from DMs they're not in (#29557) 2024-12-12 15:12:21 +00:00
Agniva De Sarker
d20dbc3b88 MM-61698: Fix TestWebHubCloseConnOnDBFail properly (#29577)
Finally I figured out why the log message for
/api/v4/websocket does not appear. It is because
the log gets generated only when the request returns,
and for websockets, the request doesn't return
until the client closes. And because we were closing
the client in a defer clause, the flushing of the logger
would happen before closing the client, therefore
leading to a race condition of the log not appearing
from time to time.

https://mattermost.atlassian.net/browse/MM-61698
```release-note
NONE
```
2024-12-12 18:55:44 +05:30
Ivy Gesare
832b5a3332 [MM-61771] Fix errcheck issues in server/channels/app/platform/service_test.go (#29375)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2024-12-12 13:51:16 +01:00
Seiya Homma
55500b573a [MM-61776] Fix errcheck issues in server/channels/app/platform/web_conn.go (#29515) 2024-12-12 12:19:23 +01:00
Kyrillos Isaac
267c4133b7 [MM-61263] fix: errcheck issues in server/channels/app/job_test.go (#29070)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2024-12-12 12:17:40 +01:00
AulakhHarsh
1b164c8302 Fix errcheck issues in server/channels/app/platform/service.go (#29366) 2024-12-12 11:22:57 +01:00
Agniva De Sarker
f3309633b2 MM-61698: Unskip TestWebHubCloseConnOnDBFail (#29546)
https://github.com/mattermost/mattermost/pull/29214 fixed the
race condition in web_hub initialization.

The failure in the test is strange because there's no log
for the websocket request. It's as if th.CreateWebSocketClientWithClient()
never got called at all.

I am re-arranging the lines so that even if it fails,
the table rename happens anyways. But overall, I don't see
any reason for the failure.

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

```release-note
NONE
```
2024-12-12 10:53:31 +05:30
Agniva De Sarker
bfdf6638ee Adding error context in license validation (#29554)
While investigating https://mattermost.atlassian.net/browse/MM-61529,
I noticed that we weren't adding the internal error which made
it impossible to understand what was really happening.

```release-note
NONE
```
2024-12-12 10:33:46 +05:30
Felipe Martin
0ad5b6ac37 tests: skip flaky outgoing oauth connection tests (#29542) 2024-12-11 16:12:53 +01:00
Agniva De Sarker
7df4727353 [Aider assisted]: Use SelectBuilder and GetBuilder in webhook_store.go (#29555)
I was planning to kick off a campaign for this. But aider can do this just fine.

Starting off with a single file for now. But will slowly send more PRs with larger
commit diffs.

```release-note
NONE
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-12-11 12:03:03 +05:30
Alejandro García Montoro
a906e980f9 Skip flaky test - Tracked in MM-62079 (#29494) 2024-12-10 15:46:59 +01:00
Jesse Hallam
5369f8b36b s/Get(Master|Replica)X/Get\1/g (#29520)
Drop the legacy `X` suffix from `GetMasterX` and `GetReplicaX`. The
presence of the suffix suggests there's a `non-X` version: but in fact
we migrated these away a long time ago, so remove the cognitive
overhead.

As an aside, this additionally helps avoid trip up LLMs that interpret
this as "something to fix".
2024-12-10 09:57:19 -04:00
David Krauser
f1d5884532 MM-62105 use WARN log level when ws can't report hostname (#29523) 2024-12-10 09:33:44 +01:00
Agniva De Sarker
0f5d160131 MM-62077: Fix cluster broadcast for LRU caches (#29488)
We were incorrectly not broadcasting status cache updates
inspite of that being an LRU cache.

We were also not doing it for profilesInChannel cache.
Now we fix it by properly checking the invalidationEvent
which is something local to the cache itself rather
than the cache provider.

https://mattermost.atlassian.net/browse/MM-62077
```release-note
NONE
```
2024-12-10 11:08:17 +05:30
David Krauser
3224e0d3a2 MM-61991 Show server hostname in about modal (#29413)
This introduces a new entry in the `Main Menu -> About` modal with the hostname of the currently connected websocket. This will be used to aid debugging issues in clustered environments by showing which node in the cluster is servicing requests for a particular websocket.

This information is only visible in self-managed instances. It will not be visible on cloud instances.
2024-12-06 10:39:36 -05:00
fxnm
491e46d390 [MM-61477] Fixed exif rotates images width and height is not correctly calculated (#29309)
* [MM-61477] Fixed exif rotates images width and height is not correctly calculated

* [MM-61477] Apply rotation ony to png or jepg

* [MM-61477] Added test cases to verify correct rotation

* fix: fixed wrong format

* uff

* fix: exif rotation is only possible on jpeg images

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-12-05 13:16:01 -05:00
Alejandro García Montoro
6b648199f0 MM-61992: Verify license.Features.Users is not nil (#29417)
* Verify license.Features.Users is not nil

* Move check before DB call to avoid it if possible

* Add more context to the error
2024-12-05 16:46:04 +01:00
Jessie Kahn
82c1f7bf09 [MM-61508] Fixed errcheck issues in upload_test.go, [MM-61510] Fixed errcheck issues in user_test.go (#29308) 2024-12-05 12:22:41 +01:00