Before gorp, to use sqlx we had to resort to using
internal structs without the `db:"-"` tag so that
it doesn't interfere with the gorp table generation.
Now that it's gone, we can use the original model structs.
```release-note
NONE
```
* MM-40664: fixes CRT notifications
Reply notification settings that take effect when CRT is off where
considered when CRT is on as well. Resulting, in some cases, in not
respecting the CRT setting for notifications.
This commit fixes that by guarding against IsCRTEnabledForUser when
checking for reply notification settings.
* Adds test cases
* Satisfies the vet
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* config: bugfix on path resolution; fail if given config does not exist
* reflect review comments
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
We don't do instrumentation of Sentry transactions
anywhere in the code. Only opentracing code is present.
One has to explicitly add custom instrumentation for it
to work: https://docs.sentry.io/platforms/go/performance/instrumentation/custom-instrumentation/
It's likely someone is running custom code and sending
transaction data to Sentry. It's not super hard to pick
off the sentry DSN string from the binary.
The PR is more of a best effort to stop any future
transaction events to be sent.
```release-note
NONE
```
The AND condition would mean that it would try to dereference
token.Valid if there was an error. And there's no guarantee
to always have a non-nil token in case of an error. We need
to track those conditions separately.
https://mattermost.atlassian.net/browse/MM-41236
```release-note
NONE
```
We want to test with both text and binary mode. Using our CI
to test both in parallel.
```release-note
NONE
```
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
We were noting down the time of execution of a function and
expected that to match with the exact interval that we set.
However, sometimes in very busy CI environments, the goroutine
does not get a chance to be scheduled at the right time for
the interval to match exactly. Sometimes, we see a delay of
1 second.
To account for this, we increase the interval to 3 seconds,
and consider a 1 second buffer for this. If we see lags of
more than a second, then this test becomes useless and we
would need to remove it entirely.
https://mattermost.atlassian.net/browse/MM-41209
```release-note
NONE
```
* MM-41066: fixes replies when binary_parameters=yes
Migrating post_store from gorp to sqlx breaks replies on threads.
Why? Participants is a jsonb field and when binary_parameters is set to
'yes' it is failing to insert because it needs the version (1) to be
prepended to the bytes array ([]byte{0x01}).
The easiest fix on this is to cast to a string when inserting.
There is a drawback though, non utf8 characters would be replaced by the
question mark icon �.
This commit does exactly that, casts StringArray to a string.
* Adds a comment
* Removes unnecessary conversion
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* MM-35298: Follow thread when added to channel
* return better error if thread doesn't exist
* update test for possible race
* use correct comparision operator
* add Boards to DataRetention, add hook for data retention
* remove replaces
* update hook to remove parameter
* add boards data retention to telemetry
* fix unit test
* update test, update hooks
* update RunDataRetention server version
* put behind a feature flag
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Use the correct error variable to prevent crash
The errors.As check has been removed because ThreadStore.Get
returns a nil error if no thread is found and that's how
the application logic is written. So the check was redundant.
```release-note
NONE
```
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>