Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Service environment #23443

Merged
merged 30 commits into from Jun 7, 2023
Merged

Service environment #23443

merged 30 commits into from Jun 7, 2023

Conversation

lieut-data
Copy link
Member

@lieut-data lieut-data commented May 18, 2023

Summary

Bring us closer to the Single Build Artifact vision by embedding all "secrets" directly into the source instead of juggling a myriad of release pipelines that generate disparate binaries/images.

Different environments must be serviced differently, i.e. discrete Rudder keys between production and cloud. The MM_SERVICEENVIRONMENT controls this setting:

MM_SERVICEENVIRONMENT Description
production The default if unset for production builds
test Testing environment (e.g. /cloud)
dev Development environments, the default if unset for non-production builds

Ticket Link

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

Release Note

NONE

@lieut-data lieut-data added the 2: Dev Review Requires review by a developer label May 18, 2023
@mm-cloud-bot mm-cloud-bot added release-note-none Denotes a PR that doesn't merit a release note. labels May 18, 2023
@lieut-data lieut-data force-pushed the external-service-environment branch from 504d807 to 3e94fca Compare May 18, 2023 01:15
@@ -74,6 +74,13 @@ func (l *LicenseValidatorImpl) ValidateLicense(signed []byte) (bool, string) {
plaintext := decoded[:len(decoded)-256]
signature := decoded[len(decoded)-256:]

var publicKey []byte
switch model.GetExternalServiceEnvironment() {
case model.ExternalServiceEnvironmentDefault, model.ExternalServiceEnvironmentCloud:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would be different for the cloud environment from the prod environment? It seems that in this PR it's always considered the same case as Default which seems to be the case for Rudder, Licenses and Stripe keys

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. Somehow, I assumed going in that we needed to distinguish cloud from self-managed in some way, given (I think) we have separate Docker images for each, but you're right that after these changes nothing obvious shook out.

cc @stylianosrigas, any idea what distinguishes these images from your side?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that there are differences between the two but because we are not involved in the building I don't have all the details. Let me copy @phoinixgrr and @toninis that can probably provide some more input into this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @stylianosrigas @lieut-data

I apologize for any inconvenience caused by my lack of context. If you could kindly provide some additional information, I would greatly appreciate it. I would like to understand exactly what information is needed here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @phoinixgrr! I'm helping wrap up work that @toninis, Nathaniel, @marianunez and I started to help us realize the delivery team's vision of a single build artifact that conforms to the 12 factor principle, instead of our current practice of a myriad of release pipelines that build various Docker images, e.g. mattermost-enterprise-edition for self-managed customers, mattermost-cloud for Cloud, and mm-ee-test for testing environments.

This PR makes it possible for a single binary to be any of the above with the appropriate environment variable, but after incorporating all necessary changes, we found no need to distinguish between the mattermost-enterprise-edition and the mattermost-cloud. Do you know why we build separate images in this case? Is there some other difference we need to account for in these application changes? Or is it simply that we publish builds from the cloud branch to a different image?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Chiming in)

Or is it simply that we publish builds from the cloud branch to a different image?

This is what I thought too.

Since the introduction of cloud, in terms of testing, I'm not treating mattermost-cloud differently from mattermost-enterprise-edition (or their equivalent test images), except for loading cloud license, cloud-specific server config (together with test CWS test, etc) and cloud-specific env variables (api key, customer and installation IDs).

Copy link
Member

@marianunez marianunez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jesse! Left some initial comments for a first high level pass, will come back for full review.

External Service Environment is not as clear to me what it does so agree that we could consider some other alternatives. I don't have a suggestion yet but will think about it

server/channels/app/server.go Outdated Show resolved Hide resolved
server/channels/utils/license_test.go Outdated Show resolved Hide resolved
server/config/client.go Outdated Show resolved Hide resolved
server/platform/services/telemetry/telemetry.go Outdated Show resolved Hide resolved
server/public/model/config.go Outdated Show resolved Hide resolved
@lieut-data
Copy link
Member Author

lieut-data commented May 18, 2023

@marianunez, thanks again for the feedback. To make this whole thing more robust, I reintroduced the go tags approach with production builds being explicitly tagged and triggering a different default service environment. Here's the matrix:

MM_SERVICEENVIRONMENT -tags production Effective Environment
unset or empty or unknown value YES enterprise
unset or empty or unknown value NO dev
set to X * X

When using go test or most Makefile directives, there is no -tags production and so we get the default dev behaviour. When building via make package, the -tags production ensures the default of enterprise. The environment variable can always be used to override MM_SERVICESETTINGS, removing some of the previous magic around build number detection.

Furthermore, this now introduces a discrete enterprise service environment, adding to the cloud, test, and dev. It's still not super clear that we need this level of granularity, but it makes it very easy to get precisely the desired behaviour especially as we find the need to build on this functionality.

@lieut-data lieut-data changed the title External service environment Service environment May 18, 2023
@lieut-data
Copy link
Member Author

I've also filed https://mattermost.atlassian.net/browse/CLD-5691 to the SRE team to help export this environment variable in advance of our actually deploying.

@mm-cloud-bot
Copy link

Test server creation failed. See the logs for more information.

@lieut-data lieut-data added Setup Cloud + CWS Test Server Setup a test server linked to the CWS test portal and removed Setup Cloud + CWS Test Server Setup a test server linked to the CWS test portal labels Jun 5, 2023
@mm-cloud-bot
Copy link

Creating a new SpinWick test cloud server with CWS using Mattermost Cloud.

@mm-cloud-bot
Copy link

Mattermost test server with CWS created! 🎉

Access here: https://mattermost-pr-23443.test.mattermost.cloud

Account Type Username Password
Admin user-mattermost-pr-23443@example.mattermost.com Cws@10102020

@lieut-data lieut-data removed the 2: Dev Review Requires review by a developer label Jun 6, 2023
@mm-cloud-bot
Copy link

New commit detected. SpinWick will upgrade if the updated docker image is available.

@mm-cloud-bot
Copy link

Mattermost test server updated with git commit 35d5d5c570cb77dd49b01ccbeaf991d5a3dc8723.

Access here: https://mattermost-pr-23443.test.mattermost.cloud

@phoinixgrr
Copy link
Contributor

@lieut-data I have no objections to merging this, as long as the security team also is informed and approves of the decision to embed keys directly into the code.

cc: @esarafianou Could you take a look at this?

@esarafianou
Copy link
Contributor

@lieut-data these Rudder and Stripe keys are the ones we had discussed in the "Immutable Build Artifacts" document, right?

@lieut-data
Copy link
Member Author

@esarafianou, yes: that's correct!

Copy link
Contributor

@esarafianou esarafianou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@lieut-data lieut-data merged commit 305fac6 into master Jun 7, 2023
31 checks passed
@lieut-data lieut-data deleted the external-service-environment branch June 7, 2023 13:15
@mm-cloud-bot
Copy link

Test server destroyed

@amyblais amyblais added Changelog/Not Needed Does not require a changelog entry Docs/Not Needed Does not require documentation labels Jun 7, 2023
sinansonmez pushed a commit to sinansonmez/mattermost that referenced this pull request Jun 8, 2023
* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests
hmhealey added a commit that referenced this pull request Jun 15, 2023
* update more_channels for ui and show all channels

* update searchable channel list

* fix style

* fix tests

* fix style for delete icon

* fix failing tests

* fix style

* remove dot

* remove header button

* put back header button

* Fix duplicate keys in CombinedSystemMessage component (#23507)

* MM-52873 : Switch to npm's 'reselect' for Playbooks (#23396)

* Enable golangci-lint (attempt 2) (#23517)


This time we are just using the Makefile command
to see if that makes a difference
```release-note
NONE
```

* MM-52888 Always load users mentioned in message attachments (#23460)

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

* Prepare: run E2E smoketests with GitHub actions (#23301)

- Port E2E testing scripts from cypress-ui-automation
- Move server to docker-compose, move E2E images to ecrpublic
* Integrate General channel renaming, fixes
- Add local automation-dashboard
- Add readme
- Add E2E smoketests
- Bump postgres to 12

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>

* MM-47064/MM-34345/MM-47072 Remove inheritance from Suggestion components and migrate to TS (#23455)

* MM-47064 Remove inheritance from Suggestion components

* Address feedback

* Fix users without DM channels not appearing in the channel switcher

---------

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

* MM-52544 Fix missing reply bar mention highlight (#23534)

* MM-52513: fixes deleting a reply (#23177)

* MM-52513: fixes deleting a reply

Currently when we receive a WS event for a reply being deleted we might
accidentally push it to a wrong team's store. This might happen if the
thread is already loaded in store and we are viewing another team.
In that case we were fetching the thread from the API using the team id
of the current team. The API returns the thread, even though the team id
is not the one which the thread belongs to.

This commit is fixing the above issue by getting the team id in which
the thread belongs to, or current team id in the case of DM/GM messages,
and using that to fetch the thread from the API.

PS: the fetching is needed since we don't send a thread_update WS event
upon deleting a reply, and we need to get the new participants list.

* Fixes team id on another occasion

* Refactors a bit

* Reverts returning empty string as team id

* Refactor a bit to pass the post as argument

---------

Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Avoid calling the user count query in future if we get a count > 0 (#23545)

* Avoid calling the user count query in future if we get a count > 0

* re-adding mock session to avoid adding the old mitigation in future

* adjustments based on feedback

* MM-52365 - fix JS error banner (#23501)

* MM-52365 - fix js error banner

* add null type to bindings as an optional type

* Make used of typed atomic.Pointer (#23550)

* Make save_post_spec less affected by other E2E tests (#23541)

* Revert "Prepare: run E2E smoketests with GitHub actions (#23301)" (#23553)

This reverts commit 68be3a6.

* adding debug log when executing query (#23559)

* server/docker-compose.yml: updates to run HA in local after monorepo (#23552)

* [MM-52919] Remove all uses of window.desktop.version from webapp (#23558)

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

* [MM-21096] webapp: Migrate "components/suggestion/search_channel_with_permissions_provider.jsx" to Typescript (#23323)

* migrate to ts

* linting

* fix test

* refactor

* Remove accidental comments from merge

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* fix server ci after renaming the project (#23576)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON (#23578)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON

* Repo name ci fixes (#23569)

* mattermost-server -> mattermost

* mattermost-server -> mattermost

* Empty-Commit

* Empty-Commit

* Empty-Commit

---------

Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>

* MM-51585 : Fix duplicated date separator in center channel when Pinned posts RHS is open (#23068)

* Fix references from 'packages/*' to 'platform/*' in READMEs (#23498)

* [MM-52541] Mark files as deleted along with thread (#23226)

* mark thread files as deleted

* add missing check

* improve query

* Stopped rendering post preview if post is deleted

* Fixed lint error

* Fixed test

* updated types

* Removed deleted post from other post's embed data

* Added tests

* Apply suggestions from code review

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* lint fix

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-52476 Fix guest users access to playbooks. (#23279)

* Fix guest users access to playbooks.

* Fix guest access.

* Add guests list restriction.

* Update PULL_REQUEST_TEMPLATE.md to include Jira ticket for contributors (#23589)

* [MM-52836] : Migrate "components/admin_console/admin_definition_constants.jsx" to TypeScript (#23566)

* MM-52297 Fix reactions disappearing with search open and add testing utilities (#23510)

* MM-52297 Fix reactions disappearing when search is open

* Add unit tests and extra utilities

* Fix typing issue

* MM-53002: Fix ESR CI (#23599)

* Do not use the mattermost path

The /mattermost path is used by the image and it seems to conflict with
the container running the binary

* Use a regular machine in the esr-upgrade-diff job

* Add missing space

* [MM-52955] Fix panic for not found posts (#23561)

* [MM-52973] Avoid thundering herd problem in IsFirstUserAccount (#23549)

* [MM-45802] Clear CRT notification on deleted reply (#23568)

* reduce the counter on post deletion

* add test

* change translations

* fix collecting mentions for DMs

* add translation texts

* extract logic for getting mentions

* send WS event

* add e2e tests

* tidy mod

* WIP

* Deleting notification async

* Fixed a unit test

* Added more tests

* Updated i18n

* CI

* mattermost-server -> mattermost

* mattermost-server -> mattermost

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* Includes mmctl into the mono-repo (#23091)

* Includes mmctl into the mono-repo

* Update to use the new public module paths

* Adds docs check to the mmctl CI

* Fix public utils import path

* Tidy up modules

* Fix linter

* Update CI tasks to use the new file structure

* Update CI references

* [MM-30432]: Allow users to specify different desktop notification sounds per channel (#21671)

* [MM-44165]: When Help link is left blank Help Resources option should not be visible in the help menu (#23609)

* Clean up at .github due to repo rename (#23580)

* update .github after repo rename

* update

* Update PULL_REQUEST_TEMPLATE.md

---------

Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* MM-52819 : "medical_symbol", "male_sign" and "female_sign" emojis are broken (#23538)

* [MM-52979]: Remove code around abandoned MUI modal migration (#23556)

* Re-export all React Testing Library functions (#23522)

* Fix panic if JSON null value is passed as channel update (#23629)

* MM-52818 - create config setting to enable/disable playbooks product (#23508)

* create config setting to enable/disable playbooks product

* fix to config name

* fix typo

* revert changes to package-lock.json

* update name of test

---------

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

* [MM-52926] Deprecating work templates (#23466)

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

* [MM-52839]: Migrate "components/admin_console/remove_file_setting.jsx" to Typescript (#23565)

* [MM-52833]: Migrate "components/admin_console/multiselect_settings.jsx" to Typescript (#23542)

* [MM-52835]: Migrate "components/admin_console/settings_group.jsx" and tests to Typescript (#23563)

* fix typo in index name for idx_teammembers_create_at (#23632)

* [MM-49989] Pass a context.Context to Client4 methods (#22922)

* Migrate all method in model/client4.go to accept a context.Context

* Fix th.*Client

* Fix remaining issues

* Empty commit to triger CI

* Fix test

* Add cancellation test

* Test that returned error is context.Canceled

* Fix bad merge

* Update mmctl code

---------

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

* Service environment (#23443)

* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests

* [MM 22957] webapp a11y: fix sso btns focus issue (#23326)

* make suggested changes

* added form tag and removed event handler

* fix snapshot

---------

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

* Upgrade docker CI image to 23.0.1 (#23664)

Automatic Merge

* MM-52995: Fix opening DM/GM thread from thread footer (#23579)

* MM-52487: fix more playbooks tests (#23475)

* fix playbooks/channels/rhs/template_spec.js

* fix playbooks/channels/update_request_post_spec.js

* fix playbooks/runs/rdp_rhs_runinfo_spec.js

* fix playbooks/runs/rdp_rhs_statusupdates_spec.js

* remove enableexperimentalfeatures flag in e2e tests

* rdp_main_header_spec: simplify channel loaded assertion

* playbooks rhs participants: fix infinite fetch loop

* improved onboarding skipping

* simplify participants fetching

* Support json.RawMessage in configuration env overrides (#23610)

* support json.RawMessage in env overrides

* update more_channels for ui and show all channels

* remove header button

* put back header button

* [MM-52979]: Remove code around abandoned MUI modal migration (#23556)

* fix import

* update snapshot

* Update e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js

* fix e2e tests

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
Co-authored-by: mvitale1989 <mvitale1989@hotmail.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Kyriakos Z <3829551+koox00@users.noreply.github.com>
Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Ben Cooke <benkcooke@gmail.com>
Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
Co-authored-by: Sai Deepesh <saideepesh000@gmail.com>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>
Co-authored-by: Hideaki Matsunami <mahaker@users.noreply.github.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas+github@gmail.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Christopher Speller <crspeller@gmail.com>
Co-authored-by: Tejas Karelia <tejas.karelia17@gmail.com>
Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: KyeongSoo Kim <gaganso71@korea.ac.kr>
Co-authored-by: Matheus <20505926+MattSilvaa@users.noreply.github.com>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
Co-authored-by: Julien Tant <785518+JulienTant@users.noreply.github.com>
Co-authored-by: Karan Mishra <karan.m2704@gmail.com>
Co-authored-by: Judy Hanson <106325339+Esterjudith@users.noreply.github.com>
Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
karan2704 pushed a commit to karan2704/mattermost-server that referenced this pull request Jun 21, 2023
* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests
ilies-bel pushed a commit to ilies-bel/mattermost that referenced this pull request Jun 26, 2023
* update more_channels for ui and show all channels

* update searchable channel list

* fix style

* fix tests

* fix style for delete icon

* fix failing tests

* fix style

* remove dot

* remove header button

* put back header button

* Fix duplicate keys in CombinedSystemMessage component (mattermost#23507)

* MM-52873 : Switch to npm's 'reselect' for Playbooks (mattermost#23396)

* Enable golangci-lint (attempt 2) (mattermost#23517)


This time we are just using the Makefile command
to see if that makes a difference
```release-note
NONE
```

* MM-52888 Always load users mentioned in message attachments (mattermost#23460)

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

* Prepare: run E2E smoketests with GitHub actions (mattermost#23301)

- Port E2E testing scripts from cypress-ui-automation
- Move server to docker-compose, move E2E images to ecrpublic
* Integrate General channel renaming, fixes
- Add local automation-dashboard
- Add readme
- Add E2E smoketests
- Bump postgres to 12

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>

* MM-47064/MM-34345/MM-47072 Remove inheritance from Suggestion components and migrate to TS (mattermost#23455)

* MM-47064 Remove inheritance from Suggestion components

* Address feedback

* Fix users without DM channels not appearing in the channel switcher

---------

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

* MM-52544 Fix missing reply bar mention highlight (mattermost#23534)

* MM-52513: fixes deleting a reply (mattermost#23177)

* MM-52513: fixes deleting a reply

Currently when we receive a WS event for a reply being deleted we might
accidentally push it to a wrong team's store. This might happen if the
thread is already loaded in store and we are viewing another team.
In that case we were fetching the thread from the API using the team id
of the current team. The API returns the thread, even though the team id
is not the one which the thread belongs to.

This commit is fixing the above issue by getting the team id in which
the thread belongs to, or current team id in the case of DM/GM messages,
and using that to fetch the thread from the API.

PS: the fetching is needed since we don't send a thread_update WS event
upon deleting a reply, and we need to get the new participants list.

* Fixes team id on another occasion

* Refactors a bit

* Reverts returning empty string as team id

* Refactor a bit to pass the post as argument

---------

Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Avoid calling the user count query in future if we get a count > 0 (mattermost#23545)

* Avoid calling the user count query in future if we get a count > 0

* re-adding mock session to avoid adding the old mitigation in future

* adjustments based on feedback

* MM-52365 - fix JS error banner (mattermost#23501)

* MM-52365 - fix js error banner

* add null type to bindings as an optional type

* Make used of typed atomic.Pointer (mattermost#23550)

* Make save_post_spec less affected by other E2E tests (mattermost#23541)

* Revert "Prepare: run E2E smoketests with GitHub actions (mattermost#23301)" (mattermost#23553)

This reverts commit 68be3a6.

* adding debug log when executing query (mattermost#23559)

* server/docker-compose.yml: updates to run HA in local after monorepo (mattermost#23552)

* [MM-52919] Remove all uses of window.desktop.version from webapp (mattermost#23558)

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

* [MM-21096] webapp: Migrate "components/suggestion/search_channel_with_permissions_provider.jsx" to Typescript (mattermost#23323)

* migrate to ts

* linting

* fix test

* refactor

* Remove accidental comments from merge

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* fix server ci after renaming the project (mattermost#23576)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON (mattermost#23578)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON

* Repo name ci fixes (mattermost#23569)

* mattermost-server -> mattermost

* mattermost-server -> mattermost

* Empty-Commit

* Empty-Commit

* Empty-Commit

---------

Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>

* MM-51585 : Fix duplicated date separator in center channel when Pinned posts RHS is open (mattermost#23068)

* Fix references from 'packages/*' to 'platform/*' in READMEs (mattermost#23498)

* [MM-52541] Mark files as deleted along with thread (mattermost#23226)

* mark thread files as deleted

* add missing check

* improve query

* Stopped rendering post preview if post is deleted

* Fixed lint error

* Fixed test

* updated types

* Removed deleted post from other post's embed data

* Added tests

* Apply suggestions from code review

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* lint fix

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-52476 Fix guest users access to playbooks. (mattermost#23279)

* Fix guest users access to playbooks.

* Fix guest access.

* Add guests list restriction.

* Update PULL_REQUEST_TEMPLATE.md to include Jira ticket for contributors (mattermost#23589)

* [MM-52836] : Migrate "components/admin_console/admin_definition_constants.jsx" to TypeScript (mattermost#23566)

* MM-52297 Fix reactions disappearing with search open and add testing utilities (mattermost#23510)

* MM-52297 Fix reactions disappearing when search is open

* Add unit tests and extra utilities

* Fix typing issue

* MM-53002: Fix ESR CI (mattermost#23599)

* Do not use the mattermost path

The /mattermost path is used by the image and it seems to conflict with
the container running the binary

* Use a regular machine in the esr-upgrade-diff job

* Add missing space

* [MM-52955] Fix panic for not found posts (mattermost#23561)

* [MM-52973] Avoid thundering herd problem in IsFirstUserAccount (mattermost#23549)

* [MM-45802] Clear CRT notification on deleted reply (mattermost#23568)

* reduce the counter on post deletion

* add test

* change translations

* fix collecting mentions for DMs

* add translation texts

* extract logic for getting mentions

* send WS event

* add e2e tests

* tidy mod

* WIP

* Deleting notification async

* Fixed a unit test

* Added more tests

* Updated i18n

* CI

* mattermost-server -> mattermost

* mattermost-server -> mattermost

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* Includes mmctl into the mono-repo (mattermost#23091)

* Includes mmctl into the mono-repo

* Update to use the new public module paths

* Adds docs check to the mmctl CI

* Fix public utils import path

* Tidy up modules

* Fix linter

* Update CI tasks to use the new file structure

* Update CI references

* [MM-30432]: Allow users to specify different desktop notification sounds per channel (mattermost#21671)

* [MM-44165]: When Help link is left blank Help Resources option should not be visible in the help menu (mattermost#23609)

* Clean up at .github due to repo rename (mattermost#23580)

* update .github after repo rename

* update

* Update PULL_REQUEST_TEMPLATE.md

---------

Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* MM-52819 : "medical_symbol", "male_sign" and "female_sign" emojis are broken (mattermost#23538)

* [MM-52979]: Remove code around abandoned MUI modal migration (mattermost#23556)

* Re-export all React Testing Library functions (mattermost#23522)

* Fix panic if JSON null value is passed as channel update (mattermost#23629)

* MM-52818 - create config setting to enable/disable playbooks product (mattermost#23508)

* create config setting to enable/disable playbooks product

* fix to config name

* fix typo

* revert changes to package-lock.json

* update name of test

---------

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

* [MM-52926] Deprecating work templates (mattermost#23466)

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

* [MM-52839]: Migrate "components/admin_console/remove_file_setting.jsx" to Typescript (mattermost#23565)

* [MM-52833]: Migrate "components/admin_console/multiselect_settings.jsx" to Typescript (mattermost#23542)

* [MM-52835]: Migrate "components/admin_console/settings_group.jsx" and tests to Typescript (mattermost#23563)

* fix typo in index name for idx_teammembers_create_at (mattermost#23632)

* [MM-49989] Pass a context.Context to Client4 methods (mattermost#22922)

* Migrate all method in model/client4.go to accept a context.Context

* Fix th.*Client

* Fix remaining issues

* Empty commit to triger CI

* Fix test

* Add cancellation test

* Test that returned error is context.Canceled

* Fix bad merge

* Update mmctl code

---------

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

* Service environment (mattermost#23443)

* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests

* [MM 22957] webapp a11y: fix sso btns focus issue (mattermost#23326)

* make suggested changes

* added form tag and removed event handler

* fix snapshot

---------

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

* Upgrade docker CI image to 23.0.1 (mattermost#23664)

Automatic Merge

* MM-52995: Fix opening DM/GM thread from thread footer (mattermost#23579)

* MM-52487: fix more playbooks tests (mattermost#23475)

* fix playbooks/channels/rhs/template_spec.js

* fix playbooks/channels/update_request_post_spec.js

* fix playbooks/runs/rdp_rhs_runinfo_spec.js

* fix playbooks/runs/rdp_rhs_statusupdates_spec.js

* remove enableexperimentalfeatures flag in e2e tests

* rdp_main_header_spec: simplify channel loaded assertion

* playbooks rhs participants: fix infinite fetch loop

* improved onboarding skipping

* simplify participants fetching

* Support json.RawMessage in configuration env overrides (mattermost#23610)

* support json.RawMessage in env overrides

* update more_channels for ui and show all channels

* remove header button

* put back header button

* [MM-52979]: Remove code around abandoned MUI modal migration (mattermost#23556)

* fix import

* update snapshot

* Update e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js

* fix e2e tests

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
Co-authored-by: mvitale1989 <mvitale1989@hotmail.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Kyriakos Z <3829551+koox00@users.noreply.github.com>
Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Ben Cooke <benkcooke@gmail.com>
Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
Co-authored-by: Sai Deepesh <saideepesh000@gmail.com>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>
Co-authored-by: Hideaki Matsunami <mahaker@users.noreply.github.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas+github@gmail.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Christopher Speller <crspeller@gmail.com>
Co-authored-by: Tejas Karelia <tejas.karelia17@gmail.com>
Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: KyeongSoo Kim <gaganso71@korea.ac.kr>
Co-authored-by: Matheus <20505926+MattSilvaa@users.noreply.github.com>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
Co-authored-by: Julien Tant <785518+JulienTant@users.noreply.github.com>
Co-authored-by: Karan Mishra <karan.m2704@gmail.com>
Co-authored-by: Judy Hanson <106325339+Esterjudith@users.noreply.github.com>
Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
sbishel pushed a commit to sbishel/mattermost that referenced this pull request Aug 15, 2023
* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests
sbishel added a commit to sbishel/mattermost that referenced this pull request Aug 15, 2023
* update more_channels for ui and show all channels

* update searchable channel list

* fix style

* fix tests

* fix style for delete icon

* fix failing tests

* fix style

* remove dot

* remove header button

* put back header button

* Fix duplicate keys in CombinedSystemMessage component (mattermost#23507)

* MM-52873 : Switch to npm's 'reselect' for Playbooks (mattermost#23396)

* Enable golangci-lint (attempt 2) (mattermost#23517)


This time we are just using the Makefile command
to see if that makes a difference
```release-note
NONE
```

* MM-52888 Always load users mentioned in message attachments (mattermost#23460)

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

* Prepare: run E2E smoketests with GitHub actions (mattermost#23301)

- Port E2E testing scripts from cypress-ui-automation
- Move server to docker-compose, move E2E images to ecrpublic
* Integrate General channel renaming, fixes
- Add local automation-dashboard
- Add readme
- Add E2E smoketests
- Bump postgres to 12

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>

* MM-47064/MM-34345/MM-47072 Remove inheritance from Suggestion components and migrate to TS (mattermost#23455)

* MM-47064 Remove inheritance from Suggestion components

* Address feedback

* Fix users without DM channels not appearing in the channel switcher

---------

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

* MM-52544 Fix missing reply bar mention highlight (mattermost#23534)

* MM-52513: fixes deleting a reply (mattermost#23177)

* MM-52513: fixes deleting a reply

Currently when we receive a WS event for a reply being deleted we might
accidentally push it to a wrong team's store. This might happen if the
thread is already loaded in store and we are viewing another team.
In that case we were fetching the thread from the API using the team id
of the current team. The API returns the thread, even though the team id
is not the one which the thread belongs to.

This commit is fixing the above issue by getting the team id in which
the thread belongs to, or current team id in the case of DM/GM messages,
and using that to fetch the thread from the API.

PS: the fetching is needed since we don't send a thread_update WS event
upon deleting a reply, and we need to get the new participants list.

* Fixes team id on another occasion

* Refactors a bit

* Reverts returning empty string as team id

* Refactor a bit to pass the post as argument

---------

Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Avoid calling the user count query in future if we get a count > 0 (mattermost#23545)

* Avoid calling the user count query in future if we get a count > 0

* re-adding mock session to avoid adding the old mitigation in future

* adjustments based on feedback

* MM-52365 - fix JS error banner (mattermost#23501)

* MM-52365 - fix js error banner

* add null type to bindings as an optional type

* Make used of typed atomic.Pointer (mattermost#23550)

* Make save_post_spec less affected by other E2E tests (mattermost#23541)

* Revert "Prepare: run E2E smoketests with GitHub actions (mattermost#23301)" (mattermost#23553)

This reverts commit 68be3a6.

* adding debug log when executing query (mattermost#23559)

* server/docker-compose.yml: updates to run HA in local after monorepo (mattermost#23552)

* [MM-52919] Remove all uses of window.desktop.version from webapp (mattermost#23558)

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

* [MM-21096] webapp: Migrate "components/suggestion/search_channel_with_permissions_provider.jsx" to Typescript (mattermost#23323)

* migrate to ts

* linting

* fix test

* refactor

* Remove accidental comments from merge

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* fix server ci after renaming the project (mattermost#23576)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON (mattermost#23578)

* Temporarily let AdvancedLoggingConfig take precedence over AdvancedLoggingJSON

* Repo name ci fixes (mattermost#23569)

* mattermost-server -> mattermost

* mattermost-server -> mattermost

* Empty-Commit

* Empty-Commit

* Empty-Commit

---------

Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>

* MM-51585 : Fix duplicated date separator in center channel when Pinned posts RHS is open (mattermost#23068)

* Fix references from 'packages/*' to 'platform/*' in READMEs (mattermost#23498)

* [MM-52541] Mark files as deleted along with thread (mattermost#23226)

* mark thread files as deleted

* add missing check

* improve query

* Stopped rendering post preview if post is deleted

* Fixed lint error

* Fixed test

* updated types

* Removed deleted post from other post's embed data

* Added tests

* Apply suggestions from code review

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* lint fix

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-52476 Fix guest users access to playbooks. (mattermost#23279)

* Fix guest users access to playbooks.

* Fix guest access.

* Add guests list restriction.

* Update PULL_REQUEST_TEMPLATE.md to include Jira ticket for contributors (mattermost#23589)

* [MM-52836] : Migrate "components/admin_console/admin_definition_constants.jsx" to TypeScript (mattermost#23566)

* MM-52297 Fix reactions disappearing with search open and add testing utilities (mattermost#23510)

* MM-52297 Fix reactions disappearing when search is open

* Add unit tests and extra utilities

* Fix typing issue

* MM-53002: Fix ESR CI (mattermost#23599)

* Do not use the mattermost path

The /mattermost path is used by the image and it seems to conflict with
the container running the binary

* Use a regular machine in the esr-upgrade-diff job

* Add missing space

* [MM-52955] Fix panic for not found posts (mattermost#23561)

* [MM-52973] Avoid thundering herd problem in IsFirstUserAccount (mattermost#23549)

* [MM-45802] Clear CRT notification on deleted reply (mattermost#23568)

* reduce the counter on post deletion

* add test

* change translations

* fix collecting mentions for DMs

* add translation texts

* extract logic for getting mentions

* send WS event

* add e2e tests

* tidy mod

* WIP

* Deleting notification async

* Fixed a unit test

* Added more tests

* Updated i18n

* CI

* mattermost-server -> mattermost

* mattermost-server -> mattermost

---------

Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* Includes mmctl into the mono-repo (mattermost#23091)

* Includes mmctl into the mono-repo

* Update to use the new public module paths

* Adds docs check to the mmctl CI

* Fix public utils import path

* Tidy up modules

* Fix linter

* Update CI tasks to use the new file structure

* Update CI references

* [MM-30432]: Allow users to specify different desktop notification sounds per channel (mattermost#21671)

* [MM-44165]: When Help link is left blank Help Resources option should not be visible in the help menu (mattermost#23609)

* Clean up at .github due to repo rename (mattermost#23580)

* update .github after repo rename

* update

* Update PULL_REQUEST_TEMPLATE.md

---------

Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>

* MM-52819 : "medical_symbol", "male_sign" and "female_sign" emojis are broken (mattermost#23538)

* [MM-52979]: Remove code around abandoned MUI modal migration (mattermost#23556)

* Re-export all React Testing Library functions (mattermost#23522)

* Fix panic if JSON null value is passed as channel update (mattermost#23629)

* MM-52818 - create config setting to enable/disable playbooks product (mattermost#23508)

* create config setting to enable/disable playbooks product

* fix to config name

* fix typo

* revert changes to package-lock.json

* update name of test

---------

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

* [MM-52926] Deprecating work templates (mattermost#23466)

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

* [MM-52839]: Migrate "components/admin_console/remove_file_setting.jsx" to Typescript (mattermost#23565)

* [MM-52833]: Migrate "components/admin_console/multiselect_settings.jsx" to Typescript (mattermost#23542)

* [MM-52835]: Migrate "components/admin_console/settings_group.jsx" and tests to Typescript (mattermost#23563)

* fix typo in index name for idx_teammembers_create_at (mattermost#23632)

* [MM-49989] Pass a context.Context to Client4 methods (mattermost#22922)

* Migrate all method in model/client4.go to accept a context.Context

* Fix th.*Client

* Fix remaining issues

* Empty commit to triger CI

* Fix test

* Add cancellation test

* Test that returned error is context.Canceled

* Fix bad merge

* Update mmctl code

---------

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

* Service environment (mattermost#23443)

* fix fileutils.TestFindFile on MacOS

* introduce model.ExternalServiceEnvironment

* pick license public key from external service env

* pick Stripe public key from external service env

* pick Rudder key from external service env

* configure Sentry DSN from external service env

* always log external_service_environment, Unsetenv

* clear faked BuildEnv, improve logging

* strip out unset GOTAGS

* fix Sentry tests

* simplify to just ServiceEnvironment

* relocate ServiceEnvironment in client config

* initialize CWS URLs based on service environment

* unset rudder key for boards dev

* harden service environment to avoid accidental production

* fix TestSentry again

* fix DEFAULT -> ENTERPRISE

* s/dev/test when naming playbooks rudder key

* simplify boards rudder key switch

* use uniform rudderKey variable names

* retain compatibility with existing pipeline

* reduce to just production/test

* unit test with valid test license

* simplify Playbooks telemetry initialization

* restore dev service environment

* emit ServiceEnvironment when running e2e tests

* [MM 22957] webapp a11y: fix sso btns focus issue (mattermost#23326)

* make suggested changes

* added form tag and removed event handler

* fix snapshot

---------

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

* Upgrade docker CI image to 23.0.1 (mattermost#23664)

Automatic Merge

* MM-52995: Fix opening DM/GM thread from thread footer (mattermost#23579)

* MM-52487: fix more playbooks tests (mattermost#23475)

* fix playbooks/channels/rhs/template_spec.js

* fix playbooks/channels/update_request_post_spec.js

* fix playbooks/runs/rdp_rhs_runinfo_spec.js

* fix playbooks/runs/rdp_rhs_statusupdates_spec.js

* remove enableexperimentalfeatures flag in e2e tests

* rdp_main_header_spec: simplify channel loaded assertion

* playbooks rhs participants: fix infinite fetch loop

* improved onboarding skipping

* simplify participants fetching

* Support json.RawMessage in configuration env overrides (mattermost#23610)

* support json.RawMessage in env overrides

* update more_channels for ui and show all channels

* remove header button

* put back header button

* [MM-52979]: Remove code around abandoned MUI modal migration (mattermost#23556)

* fix import

* update snapshot

* Update e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js

* fix e2e tests

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
Co-authored-by: mvitale1989 <mvitale1989@hotmail.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Kyriakos Z <3829551+koox00@users.noreply.github.com>
Co-authored-by: Kyriakos Ziakoulis <koox00@Kyriakoss-MacBook-Pro.local>
Co-authored-by: Kyriakos Ziakoulis <koox00@192.168.2.3>
Co-authored-by: Ben Cooke <benkcooke@gmail.com>
Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
Co-authored-by: Sai Deepesh <saideepesh000@gmail.com>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Akis Maziotis <akis.maziotis@mattermost.com>
Co-authored-by: Hideaki Matsunami <mahaker@users.noreply.github.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas+github@gmail.com>
Co-authored-by: Konstantinos Pittas <konstantinos.pittas@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Christopher Speller <crspeller@gmail.com>
Co-authored-by: Tejas Karelia <tejas.karelia17@gmail.com>
Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: KyeongSoo Kim <gaganso71@korea.ac.kr>
Co-authored-by: Matheus <20505926+MattSilvaa@users.noreply.github.com>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
Co-authored-by: Julien Tant <785518+JulienTant@users.noreply.github.com>
Co-authored-by: Karan Mishra <karan.m2704@gmail.com>
Co-authored-by: Judy Hanson <106325339+Esterjudith@users.noreply.github.com>
Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
@jwilander jwilander added the kind/refactor Categorizes issue or PR as related to refactor of production code. label Nov 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog/Not Needed Does not require a changelog entry Docs/Not Needed Does not require documentation kind/refactor Categorizes issue or PR as related to refactor of production code. release-note-none Denotes a PR that doesn't merit a release note. Setup Cloud + CWS Test Server Setup a test server linked to the CWS test portal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet