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

Release 3.3.0 #17763

Merged
merged 129 commits into from
May 28, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
5c993fe
Merge branch 'master' into develop
sampaiodiego Apr 27, 2020
299d855
Merge remote-tracking branch 'origin/master' into develop-sync
sampaiodiego Apr 28, 2020
e4adb9b
Bump version to 3.3.0-develop
sampaiodiego Apr 28, 2020
60e1452
Priority system messages were always created (#17479)
MarcosSpessatto Apr 29, 2020
2011e75
Merge pull request #17468 from RocketChat/develop-sync
sampaiodiego Apr 30, 2020
5b60fda
[FIX] Change email verification label (#17450)
MartinSchoeler Apr 30, 2020
2e2e186
[NEW] [Apps-Engine] New Livechat event handlers (#17033)
Apr 30, 2020
e0b8676
[IMPROVE] [Apps-Engine] App user as the default notifier (#17050)
Apr 30, 2020
2808ce7
[FIX] LDAP login error on Enterprise version (#17497)
pierre-lehnen-rc Apr 30, 2020
ef77a21
[FIX] Replace obsolete X-FRAME-OPTIONS header on Livechat route (#17419)
renatobecker May 1, 2020
b1ec3df
RegExp improvements suggested by LGTM (#17500)
rodrigok May 4, 2020
c05eac5
LingoHub based on develop (#17520)
engelgabriel May 4, 2020
90b591a
[NEW] Add Livechat website URL to the offline message e-mail (#17429)
renatobecker May 4, 2020
5182d59
[FIX] Federation attachment URL for audio and video files (#16430)
qwertiko May 4, 2020
78c9a31
[NEW] Add the ability to send Livechat offline messages to a channel …
renatobecker May 4, 2020
b3f2ce7
[FIX] Uncessary updates on Settings, Roles and Permissions on startup…
rodrigok May 4, 2020
aaf9083
Allow to filter omnichannel analytics dashboards per departments. (#1…
renatobecker May 5, 2020
36e72db
[FIX] Reactions may present empty names of who reacted when using Rea…
rodrigok May 5, 2020
6c0495e
[BREAK] Remove deprecated Omnichannel Knowledge Base feature (#17387)
renatobecker May 5, 2020
eef240e
[IMPROVE] Add new webhooks to the Omnichannel integration feature (#1…
renatobecker May 5, 2020
f3e0999
[FIX] Increasing highlight time in 3 seconds (#17540)
dudizilla May 5, 2020
0b1b0c2
[FIX] Replace postcss Meteor package (#15929)
tassoevan May 5, 2020
ca665fa
[NEW] Rewrite admin pages (#17388)
ggazzo May 5, 2020
32c558f
[FIX] Invalid CSS syntax (#17541)
tassoevan May 5, 2020
04fb735
Regression: Fix Avatar Url Provider when CDN_PREFIX_ALL is false (#17…
ggazzo May 6, 2020
01e5a21
[NEW] Screen Lock settings - mobile client (#17523)
djorkaeffalexandre May 6, 2020
9d66662
Fix default offline channel name when saving departments. (#17553)
renatobecker May 6, 2020
4a2bdff
Meteor update to version 1.10.2 (#17533)
sampaiodiego May 7, 2020
92faee7
Regression: RegExp callbacks of settings were not being called (#17552)
rodrigok May 8, 2020
ca3a41b
DPlatform is deprecated and the replacement does not support rocket.c…
ryjones May 8, 2020
47a8bac
[NEW] Show user's status description by the usernames in messages lis…
wreiske May 8, 2020
86bd4b1
Bump jquery from 3.3.1 to 3.5.0 (#17486)
dependabot[bot] May 8, 2020
241c205
Add some missing metadata information (#17524)
sampaiodiego May 8, 2020
615fa8c
[FIX] Emoji picker search broken (#17570)
ggazzo May 8, 2020
2ebfcd4
Regression: Override via env for string settings not working (#17576)
rodrigok May 8, 2020
75743f2
[FIX] Error during data export for DMs (#17577)
mtmr0x May 8, 2020
61a69ea
[FIX] Email configs not updating after setting changes (#17578)
rodrigok May 8, 2020
7826254
[FIX] Login Forbidden on servers that had LDAP enabled in the past (#…
pierre-lehnen-rc May 8, 2020
7caf6fb
[FIX] LDAP login on Enteprise Version (#17508)
pierre-lehnen-rc May 8, 2020
161b5d4
[FIX] Push settings enabled when push gateway is selected (#17582)
geekgonecrazy May 8, 2020
823c612
Regression: Do not show custom status inside sequential messages (#17…
ggazzo May 12, 2020
7b054e7
[FIX] Relative image path in oembededUrlWidget (#15902)
machester4 May 12, 2020
960bed4
[NEW] Unread bars on sidebar (#16862)
juzser May 12, 2020
8b380ab
[FIX] Resolve 'app already exists' error on app update (#17544)
thassiov May 12, 2020
a09b606
[FIX] Notification sounds (#17616)
sampaiodiego May 12, 2020
e51b3ab
[FIX] remove multiple options from dontAskMeAgain (#17514)
TaimurAzhar May 12, 2020
3a17555
[FIX] Mail Messages > Cannot mail own user. (#17625)
gabriellsh May 12, 2020
8ab8951
[FIX] Do not allow passwords on private channels (#15642)
MartinSchoeler May 12, 2020
e54e3ce
[FIX] Livechat iframe allow microphone and camera (#9956)
kolorafa May 12, 2020
b8a71a0
[NEW] Add permissions to deal with Omnichannel custom fields (#17567)
MarcosSpessatto May 13, 2020
b534b72
[NEW] Add Permissions to deal with Omnichannel visitor past chats his…
MarcosSpessatto May 13, 2020
ebd5126
Hyper.sh went out of business in early 2019 (#17622)
fbartels May 13, 2020
750384d
Deprecate compatibility cordova setting (#17586)
rodrigok May 14, 2020
362366b
Remove unnecessary setting redefinition (#17587)
rodrigok May 14, 2020
a4b77c5
Use Users.findOneByAppId instead of querying directly (#16480)
May 14, 2020
afa458d
Add engine versions for houston with templates (#17403)
rodrigok May 14, 2020
5bbf9c0
Improve: New PR Template (#16968)
regalstreak May 14, 2020
c9e5302
[FIX] Secret Registration not properly validating Invite Token (#17618)
pierre-lehnen-rc May 14, 2020
23f2f2e
[FIX] Marketplace tiered pricing plan wording (#17644)
geekgonecrazy May 14, 2020
06e5b86
[NEW] Added "Add custom emoji" link to emoji picker (#16250)
gabriellsh May 15, 2020
84ccdd0
[FIX] Directory search user placeholder (#17652)
zdumitru May 15, 2020
811688e
[IMPROVE] Unused styles (#17554)
tassoevan May 15, 2020
11a7ed8
[NEW] Admin refactor Second phase (#17551)
ggazzo May 15, 2020
03483ad
Regression: Pressing enter on search reloads the page - admin pages (…
gabriellsh May 15, 2020
ef0e827
[FIX] Not redirecting to `First Channel After Login` on register (#17…
gabriellsh May 16, 2020
97da27b
Regression: Outgoing List (#17667)
ggazzo May 16, 2020
4818012
Fix the Livechat queued webhook. (#17661)
renatobecker May 17, 2020
29eef3d
Add snapcraft files to be bumped with Houston (#17611)
geekgonecrazy May 18, 2020
ee024f8
Regression: status-color-online (#17684)
ggazzo May 19, 2020
1ae0059
[IMPROVE] Starred Messages (#17685)
gabriellsh May 19, 2020
3920219
[IMPROVE] Added divider between tables and paginations (#17680)
ggazzo May 19, 2020
171d515
[FIX] Avatar url provider ignoring subfolders (#17675)
ggazzo May 19, 2020
221f2b3
Regression: removed avatar provider temporary
ggazzo May 19, 2020
0ac151c
Fix the leak of agent's custom fields. (#17640)
renatobecker May 19, 2020
59c40d0
Regression: Set retryWrites=false as default Mongo options (#17683)
sampaiodiego May 19, 2020
2589cd8
[IMPROVE] Add env var to configure Chatpal URL and remove it from bet…
tkurz May 19, 2020
7aabfa4
[NEW] [Apps-Engine] New Room events (#17487)
d-gubert May 19, 2020
bbb3133
Improve: Remove uncessary RegExp query by email (#17654)
rodrigok May 19, 2020
d33d114
Regression: Fix incorrect imports of the Apps-Engine (#17695)
d-gubert May 19, 2020
1d9820a
[NEW] Added custom fields to Add/Edit user (#17681)
gabriellsh May 20, 2020
ff0c18f
LingoHub based on develop (#17693)
engelgabriel May 20, 2020
dbcaacc
Update Contributing Guide (#17653)
rodrigok May 20, 2020
a517991
[FIX] UI KIT Modal Width (#17697)
ggazzo May 20, 2020
7d6b9a8
Update Helper.js (#17700)
renatobecker May 20, 2020
c8fa37c
[FIX] Default filters on Omnichannel Current Chats screen not showing…
renatobecker May 20, 2020
560cf46
Regression: User edit form missing fields (#17699)
ggazzo May 20, 2020
6d6aae2
[FIX] Allow owners to react inside broadcast channels (#17687)
dudizilla May 20, 2020
a1afba6
Regression: Integrations edit/history crashing (#17702)
gabriellsh May 20, 2020
d1f2f22
[FIX] Elements of "Personal Access Tokens" section out of alignment …
Nikhil713 May 20, 2020
96552f4
[NEW] Option to remove users from RocketChat if not found in Crowd (#…
ocanema May 20, 2020
239e355
[IMPROVE] Display status information in the Omnichannel Agents list (…
renatobecker May 20, 2020
c5016cf
Fix typo "You aren't part of any channel yet" (#17498)
huzaifahj May 20, 2020
550d08a
[NEW] API endpoint to fetch Omnichannel's room transfer history (#17694)
renatobecker May 20, 2020
74f087d
[IMPROVE] Always shows the exact match first on user's and room's aut…
gabriellsh May 20, 2020
9029d83
Regression: Click to join button not working (#17705)
gabriellsh May 20, 2020
0ab8464
Update Apps-Engine version (#17706)
d-gubert May 20, 2020
cb46fb3
[FIX] Remove a non working setting "Notification Duration" (#15737)
pierre-lehnen-rc May 21, 2020
6ed0e44
[IMPROVE] Remove index files from action-links, accounts and assets (…
MarcosSpessatto May 21, 2020
5a6a084
Regression: Status presence color (#17707)
dudizilla May 21, 2020
9cde69f
[NEW][ENTERPRISE] Omnichannel Last-Chatted Agent Preferred option (#1…
renatobecker May 21, 2020
bf5af0d
Update Fuselage version (#17708)
ggazzo May 21, 2020
4aed76d
[NEW][ENTERPRISE] Support for custom Livechat registration form field…
renatobecker May 21, 2020
c35811d
[FIX] Can't click on room's actions menu of sidebar list when in sear…
vegeta999 May 21, 2020
9826434
Upgrade Livechat Widget version to 1.5.0 (#17710)
renatobecker May 21, 2020
d46c864
[NEW][ENTERPRISE] Support Omnichannel conversations auditing (#17692)
renatobecker May 21, 2020
d6a6332
[FIX] Password reset/change accepting current password as new passwor…
ashwaniYDV May 21, 2020
fb0cc0d
[FIX] Missing dropdown to select custom status color on user's profil…
ritwizsinha May 21, 2020
9575d1e
Bump version to 3.3.0-rc.0
sampaiodiego May 21, 2020
35ebde3
Regression: Add missing return to afterSaveMessage callbacks (#17715)
sampaiodiego May 21, 2020
4f93bfe
Regression: Threads list was fetching all threads (#17716)
ggazzo May 22, 2020
91928ec
Merge remote-tracking branch 'origin/develop' into release-candidate
sampaiodiego May 22, 2020
705ea6d
Bump version to 3.3.0-rc.1
sampaiodiego May 22, 2020
ccf6e27
[FIX] SAML IDP initiated logout error (#17482)
pierre-lehnen-rc May 22, 2020
0543346
Regression: Fix error preventing creation of group DMs (#17726)
pierre-lehnen-rc May 22, 2020
af54767
Merge remote-tracking branch 'origin/develop' into release-candidate
sampaiodiego May 22, 2020
83b5f44
Bump version to 3.3.0-rc.2
sampaiodiego May 22, 2020
bab21b3
[NEW][APPS-ENGINE] Essentials mechanism (#17656)
d-gubert May 25, 2020
46dfab6
Regression: Force unread-rooms bar to appears over the room list (#17…
dudizilla May 25, 2020
5c0a991
Regression: Removed status border on mentions list (#17741)
dudizilla May 25, 2020
e44f325
Regression: Scroll on admin user info (#17711)
ggazzo May 25, 2020
3b43d19
Merge remote-tracking branch 'origin/develop' into release-candidate
rodrigok May 26, 2020
c152cbf
Bump version to 3.3.0-rc.3
rodrigok May 26, 2020
d921707
Improved thread margins for clarity
engelgabriel May 26, 2020
499f245
Regression: Adjusting spaces between OAuth login buttons (#17745)
dudizilla May 27, 2020
0d2723f
Regression: Fix Unread bar design (#17750)
dudizilla May 27, 2020
1dce6e0
Merge remote-tracking branch 'origin/develop' into release-candidate
rodrigok May 27, 2020
e674d7e
Bump version to 3.3.0-rc.4
rodrigok May 27, 2020
abd5ebf
Merge remote-tracking branch 'origin/release-candidate' into release-…
rodrigok May 28, 2020
c98bcbe
Bump version to 3.3.0
rodrigok May 28, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .docker/Dockerfile.rhel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7

ENV RC_VERSION 3.2.2
ENV RC_VERSION 3.3.0

MAINTAINER [email protected]

Expand Down
239 changes: 225 additions & 14 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,253 @@
# Contributing to Rocket.Chat

:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
**First off, thanks for taking the time to contribute! :tada::+1:**

The following is a set of guidelines for contributing to Rocket.Chat and its packages, which are hosted in the [Rocket.Chat Organization](https://github.com/RocketChat) on GitHub.
> There are many ways to contribute to Rocket.Chat even if you're not technical or a developer:
>
> * Email us at [email protected] to tell us how much you love the project
> * Write about us in your blogs
> * Fix some small typos in our [documentation](https://docs.rocket.chat/contributing)
> * Become our [GitHub sponsor](https://github.com/sponsors/RocketChat)
> * Tell others about us and help us spread the word
>
> Every bit of contribution is appreciated 🙂 thank you!

The following is a set of guidelines for contributing to Rocket.Chat, which are hosted in the [Rocket.Chat Organization](https://github.com/RocketChat) on GitHub.

__Note:__ If there's a feature you'd like, there's a bug you'd like to fix, or you'd just like to get involved please raise an issue and start a conversation. We'll help as much as we can so you can get contributing - although we may not always be able to respond right away :)

## ECMAScript 2015 vs CoffeeScript
## Setup

Your development workstation needs to have at least 8GB or RAM to be able to build the Rocket.Chat's source code.

Rocket.Chat runs on top of [Meteor](https://www.meteor.com/). To run it on development mode you need to [install Meteor](https://www.meteor.com/install) and clone/download the Rocket.Chat's code, then just open the code folder and run:
```shell
meteor npm install && meteor
```
It should build and run the application and database for you, now you can access the UI on (http://localhost:3000)

It's not necessary to install Nodejs or NPM, every time you need to use them you can run `meteor node` or `meteor npm`.

It's important to always run the NPM commands using `meteor npm` to ensure that you are installing the modules using the right Nodejs version.

## Coding

We provide a [.editorconfig](../.editorconfig) file that will help you to keep some standards in place.

### ECMAScript vs TypeScript

We are currently adopting TypeScript as the default language on our projects, the current codebase will be migrated incrementally from JavaScript to TypeScript.

While we still have a lot of JavaScript files you should not create new ones. As much as possible new code contributions should be in **TypeScript**.

While we still have a lot of CoffeeScript files you should not create new ones. New code contributions should be in **ECMAScript 2015**.
### Blaze vs React

## Coding standards
We are currently adopting React over Blaze as our UI engine, the current codebase is under migration and will continue. You will still find Blaze templates in our code. Code changes or contributions may need to be made in Blaze while we continue to evolve our components library.

Most of the coding standards are covered by `.editorconfig` and `.eslintrc.js`.
[Fuselage](https://github.com/RocketChat/Rocket.Chat.Fuselage) is our component library based on React, check it out when contributing to the Rocket.Chat UI and feel free to contribute new components or fixes.

### Standards

Most of the coding standards are covered by ESLint configured at [.eslintrc](../.eslintrc), and most of them came from our own [ESLint Config Package](https://github.com/RocketChat/eslint-config-rocketchat).

Things not covered by `eslint`:

* `exports`/`module.exports` should be at the end of the file
* Longer, descriptive variable names are preferred, e.g. `error` vs `err`
* Prefer longer/descriptive variable names, e.g. `error` vs `err`, unless dealing with common record properties already shortened, e.g. `rid` and `uid`
* Use return early pattern. [See more](https://blog.timoxley.com/post/47041269194/avoid-else-return-early)
* Prefer `Promise` over `callbacks`
* Prefer `await` over `then/catch`
* Don't create queries outside models, the query description should be inside the model class.
* Don't hardcode fields inside models. Same method can be used for different purposes, using different fields.
* Prefer create REST endpoints over Meteor methods
* Prefer call REST endpoints over Meteor methods when both are available
* v1 REST endpoints should follow the following pattern: `/api/v1/dashed-namespace.camelCaseAction`
* Prefer TypeScript over JavaScript. Check [ECMAScript vs TypeScript](#ecmascript-vs-typescript)

We acknowledge all the code does not meet these standards but we are working to change this over time.
#### Blaze
* Import the HTML file from it's sibling JS/TS file

### Syntax check

Before submitting a PR you should get no errors on `eslint`.

To check your files, first install `eslint`:
To check your files run:

```shell
meteor npm run lint
```

## Tests

There are 2 types of tests we run on Rocket.Chat, **Unit** tests and **End to End** tests. The major difference is that End to End tests require a Rocket.Chat instance running to execute the API and UI checks.

### End to End Tests

First you need to run a Rocket.Chat server on **Test Mode** and on a **Empty Database**:
```shell
# Running with a local mongodb database
MONGO_URL=mongodb://localhost/empty MONGO_OPLOG_URL=mongodb://localhost/local TEST_MODE=true meteor
```
```shell
# Running with a local mongodb database but cleaning it before
mongo --eval "db.dropDatabase()" empty && MONGO_URL=mongodb://localhost/empty MONGO_OPLOG_URL=mongodb://localhost/local TEST_MODE=true meteor
```

Now you can run the tests:
```shell
meteor npm test
```

### Unit Tests

Unit tests are simpler to setup and run. They do not require a working Rocket.Chat instance.
```shell
meteor npm run testunit
```

It's possible to run on watch mode as well:
```shell
meteor npm run testunit-watch
```

<!-- ### Storybook -->

## Before Push your code

It's important to run the lint and tests before push your code or submit a Pull Request, otherwise your contribution may fail quickly on the CI. Reviewers are forced to demand fixes and the review of your contribution will be further delayed.

Rocket.Chat uses [husky](https://www.npmjs.com/package/husky) to run the **lint** and **unit tests** before proceed to the code push process, so you may notice a delay when pushing your code to your repository.

## Choosing a good PR title

It is very important to note that we use PR titles when creating our change log. Keep this in mind when you title your PR. Make sure the title makes sense to a person reading a releases' change log!

Keep your PR's title as short and concise as possible, use PR's description section, which you can find in the PR's template, to provide more details into the changelog.

Good titles require thinking from a user's point of view. Don't get technical and talk code or architecture. What is the actual user-facing feature or the bug fixed? For example:

```
[NEW] Allow search permissions and settings by name instead of only ID
```

Even it's being something new in the code the users already expect the filter to filter by what they see (translations), a better one would be:

```
[FIX] Permissions' search doesn't filter base on presented translation, only on internal ids
```

## Choosing the right PR tag

You can use several tags do describe your PR, i.e.: `[FIX]`, `[NEW]`, etc. You can use the descriptions below to better understand the meaning of each one, and decide which one you should use:

### `[NEW]`

#### When
- When adding a new feature that is important to the end user

#### How

Do not start repeating the section (`Add ...` or `New ...`)
Always describe what's being fixed, improved or added and not *how* it was fixed, improved or added.

Exemple of **bad** PR titles:

```
[NEW] Add ability to set tags in the Omnichannel room closing dialog
[NEW] Adds ability for Rocket.Chat Apps to create discussions
[NEW] Add MMS support to Voxtelesys
[NEW] Add Color variable to left sidebar
```

Exemple of **good** PR titles:

```
npm install -g eslint
[NEW] Ability to set tags in the Omnichannel room closing dialog
[NEW] Ability for Rocket.Chat Apps to create discussions
[NEW] MMS support to Voxtelesys
[NEW] Color variable to left sidebar
```

Then run:
### `[FIX]`

#### When
- When fixing something not working or behaving wrong from the end user perspective

#### How

Always describe what's being fixed and not *how* it was fixed.

Exemple of a **bad** PR title:

```
eslint .
[FIX] Add Content-Type for public files with JWT
```

# Contributor License Agreement
Exemple of a **good** PR title:

```
[FIX] Missing Content-Type header for public files with JWT
```

### `[IMPROVE]`

#### When
- When a change enhances a not buggy behavior. When in doubt if it's a Improve or Fix prefer to use as fix.

#### How
Always describe what's being improved and not *how* it was improved.

Exemple of **good** PR title:

```
[IMPROVE] Displays Nothing found on admin sidebar when search returns nothing
```

### `[BREAK]`

#### When
- When the changes affect a working feature

##### Back-End
- When the API contract (data structure and endpoints) are limited, expanded as required or removed
- When the business logic (permissions and roles) are limited, expanded (without migration) or removed

##### Front-End
- When the change limits (format, size, etc) or removes the ability of read or change the data (when the limitation was not caused by the back-end)

### Second tag e.g. `[NEW][ENTERPRISE]`

Use a second tag to group entries on the change log, we currently use it only for the Enterprise items but we are going to expand it's usage soon, please do not use it until we create a patter for it.

### Minor Changes

For those PRs that aren't important for the end user, we are working on a better pattern, but for now please use the same tags, use them without the brackets and in camel case:

```
Fix: Missing Content-Type header for public files with JWT
```

All those PRs will be grouped under the `Minor changes` section which is collapsed, so users can expand it to check for those minor things but they are not visible directly on changelog.

## Security Best Practices

- Never expose unnecessary data to the APIs' responses
- Always check for permissions or create new ones when you must expose sensitive data
- Never provide new APIs without rate limiters
- Always escape the user's input when rendering data
- Always limit the user's input size on server side
- Always execute the validations on the server side even when executing on the client side as well

## Performance Best Practices

- Prefer inform the fields you want, and only the necessary ones, when querying data from database over query the full documents
- Limit the number of returned records to a reasonable value
- Check if the query is using indexes, it it's not create new indexes
- Prefer queues over long executions
- Create new metrics to mesure things whenever possible
- Cache data and returns whenever possible

## Contributor License Agreement

To have your contribution accepted you must sign our [Contributor License Agreement](https://cla-assistant.io/RocketChat/Rocket.Chat). In case you submit a Pull Request before sign the CLA GitHub will alert you with a new comment asking you to sign and will block the Pull Request from be merged by us.

Please review and sign our CLA at https://cla-assistant.io/RocketChat/Rocket.Chat
45 changes: 40 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,46 @@
<!-- INSTRUCTION: Your Pull Request name should start with one of the following tags -->
<!-- This is a pull request template, you do not need to uncomment or remove the comments, they won't show up in the PR text. -->
<!-- Your Pull Request name should start with one of the following tags -->
<!-- [NEW] For new features -->
<!-- [FIX] For bug fixes -->
<!-- [BREAK] For pull requests including breaking changes -->

<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #ISSUE_NUMBER
## Proposed changes
<!-- Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue below. -->

<!-- INSTRUCTION: Link to a https://github.com/RocketChat/docs PR with added/updated documentation or an update to the missing/outdated documentation list, see https://rocket.chat/docs/contributing/documentation/ -->
## Issue(s)
<!-- Link the issues being closed by or related to this PR. For example, you can use #594 if this PR closes issue number 594 -->

## How to test or reproduce
<!-- Mention how you would reproduce the bug if not mentioned on the issue page already. Also mention which screens are going to have the changes if applicable -->

## Screenshots

## Types of changes
<!-- What types of changes does your code introduce to Rocket.Chat? -->
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Improvement (non-breaking change which improves a current function)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Hotfix (a major bugfix that has to be merged asap)
- [ ] Documentation Update (if none of the other choices apply)

## Checklist
<!-- Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code. -->

- [ ] I have read the [CONTRIBUTING](https://github.com/RocketChat/Rocket.Chat/blob/develop/.github/CONTRIBUTING.md#contributing-to-rocketchat) doc
- [ ] I have signed the [CLA](https://cla-assistant.io/RocketChat/Rocket.Chat)
- [ ] Lint and unit tests pass locally with my changes
- [ ] I have added tests that prove my fix is effective or that my feature works (if applicable)
- [ ] I have added necessary documentation (if applicable)
- [ ] Any dependent changes have been merged and published in downstream modules

## Changelog
<!-- CHANGELOG -->
<!-- Enter HERE a brief text that would go up on the changelog on our releases page -->
<!-- END CHANGELOG -->

## Further comments
<!-- If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc... -->

<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Loading