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 4.5.0 #24652

Merged
merged 126 commits into from
Mar 1, 2022
Merged

Release 4.5.0 #24652

merged 126 commits into from
Mar 1, 2022

Conversation

pierre-lehnen-rc
Copy link
Contributor

2022-02-28 · 3 🎉 · 15 🚀 · 19 🐛 · 72 🔍 · 30 👩‍💻👨‍💻

Engine versions

  • Node: 14.18.3
  • NPM: 6.14.15
  • MongoDB: '3.6', '4.0', '4.2', '4.4', '5.0'
  • Apps-Engine: 1.31.0

🎉 New features

  • E2E password generator (#24114)

  • Marketplace sort filter (#24567)

    Implemented a sort filter for the marketplace screen. This component sorts the marketplace apps list in 4 ways, alphabetical order(A-Z), inverse alphabetical order(Z-A), most recently updated(MRU), and least recent updated(LRU). Besides that, I've generalized some components and types to increase code reusability, renamed some helpers as well as deleted some useless ones, and inserted the necessary new translations on the English i18n dictionary.
    Demo gif:
    Marketplace sort filter

  • VoIP Support for Omnichannel (#23102)

    • Created VoipService to manage VoIP connections and PBX connection

    • Created LivechatVoipService that will handle custom cases for livechat (creating rooms, assigning chats to queue, actions when call is finished, etc)

    • Created Basic interfaces to support new services and new model

    • Created Endpoints for management interfaces

    • Implemented asterisk connector on VoIP service

    • Created UI components to show calls incoming and to allow answering/rejecting calls

    • Added new settings to control call server/management server connection values

    • Added endpoints to associate Omnichannel Agents with PBX Extensions

    • Added support for event listening on server side, to get metadata about calls being received/ongoing

    • Created new pages to update settings & to see user-extension association

    • Created new page to see ongoing calls (and past calls)

    • Added support for remote hangup/hold on calls

    • Implemented call metrics calculation (hold time, waiting time, talk time)

    • Show a notificaiton when call is received

🚀 Improvements

  • ENTERPRISE: Improve how micro services are loaded (#24388)

  • Add return button in chats opened from the list of current chats (#24458)

    The new return button for Omnichannel chats came out with release 3.15 but the feature was only available for chats that were opened from Omnichannel Contact Center.
    Now, the same UI/UX is supported for chats opened from Current Chats list.

    image

    The chat now opens in the Omnichannel settings and has the return button so the user can go back to the Current Chats list.

    image

  • Add tooltips on action buttons of Canned Response message composer (#24483)

    The tooltips were missing on the action buttons of CR message composer.

    image

    Users can now feel more encouraged to use these actions knowing what they are supposed to do.

  • Add user to room on "Click to Join!" button press (#24041)

    • Add user to room on "Click to Join!" button press;

    • Display the "Join" button in discussions inside channels (keeping the behavior consistent with discussions inside groups).

  • Added a new "All" tab which shows all integrations in Integrations (#24109 by @aswinidev)

  • ChatBox Text to File Description (#24451)

    The text content from chatbox goes to the file description when drag and drop a file.

  • Close modal on esc and outside click (#24275)

    This is a QUICK change in order to close modals pressing Esc button and clicking outside of it intentionally.

  • CloudLoginModal visual consistency (#24334)

    before

    image

    after

    Screen Shot 2022-01-28 at 13 32 02

  • Convert tag edit with department data to tsx (#24369)

  • Descriptive tooltip for Encrypted Key on Room Header (#24121)

  • OTR system messages (#24382)

    OTR system messages to indicate key refresh and joining chat to users.

  • Purchase Type Filter for marketplace apps and Categories filter anchor refactoring (#24454)

    Implemented a filter by purchase type(free or paid) component for the apps screen of the marketplace. Besides that, new entries on the dictionary, fixed some parts of the App type (purchaseType was typed as unknown and price as string), and created some helpers to work alongside the filter. Will be refactoring the categories filter anchor and then will open this PR for reviews.

    Demo gif:
    purchaseTypeFIlter

    Refactored the categories filter anchor from a plain fuselage select to a select button with dynamic colors.
    Demo gif:
    New categories filter anchor(PR)

  • Replace AutoComplete in UserAutoComplete & UserAutoCompleteMultiple components (#24529)

    This PR replaces a deprecated fuselage's component AutoComplete in favor of Select and MultiSelect which fixes some of UX/UI issues in selecting users

    before

    Screen Shot 2022-02-19 at 13 33 28

    after

    Screen Shot 2022-02-19 at 13 30 58

  • Skip encryption for slash commands in E2E rooms (#24475)

    Currently Slash Commands don't work in an E2EE room, as we encrypt the message before slash command is detected by the server, So removed encryption for slash commands in e2e rooms.

  • Team system messages feedback (#24209)

    • Delete some keys that aren't being used (eg: User_left_female).

    • Add new Teams' system messages:

      • added-user-to-team: added @\user to this Team;
      • removed-user-from-team: removed @\user from this Team;
      • user-converted-to-team: converted #\room to a Team;
      • user-converted-to-channel: converted #\room to a Channel;
      • user-removed-room-from-team: removed @\user from this Team;
      • user-deleted-room-from-team: deleted #\room from this Team;
      • user-added-room-to-team: deleted #\room to this Team;
    • Add the corresponding options to hide each new system message and the missing ujt and ult hide options.

🐛 Bug fixes

  • 2FA via email when logging in using OAuth (#24572)

  • Add ?close to OAuth callback url (#24381)

  • GDPR action to forget visitor data on request (#24441)

  • Implement client errors on ddp-streamer (#24310)

  • Inconsistent validation of user's access to rooms (#24037)

  • Issues on selecting users when importing CSV (#24253)

    • Fix users selecting by fixing their _id

    • Add condition to disable 'Start importing' button if usersCount, channelsCount and messageCount equals 0, or if messageCount is alone

    • Remove disabled={usersCount === 0} on user Tab

  • OAuth mismatch redirect_uri error (#24450)

  • Oembed request not respecting payload limit (#24418)

  • Omnichannel managers can't join chats in progress (#24553)

  • Outgoing webhook without scripts not saving messages (#24401)

  • Prevent Apps Bridge to remove visitor status from room (#24305)

  • Read receipts showing first messages of the room as read even if not read by everyone (#24508)

  • respect Accounts_Registration_Users_Default_Roles setting (#24173)

    • Fix user role being added as default regardless of the Accounts_Registration_Users_Default_Roles setting.
  • Room context tabs not working in Omnichannel current chats page (#24559)

  • Skip admin info in setup wizard for servers with admin registered (#24485)

  • Skip cloud steps for registered servers on setup wizard (#24407)

  • Slash commands previews not working (#24387)

  • Startup errors creating indexes (#24409)

    Fix bio and prid startup index creation errors.

  • typo on register server tooltip of setup wizard (#24466)

🔍 Minor changes
  • Bump @types/ws from 8.2.2 to 8.2.3 in /ee/server/services (#24556 by @dependabot[bot])

  • Bump adm-zip from 0.4.14 to 0.5.9 (#24538 by @dependabot[bot])

  • Bump body-parser from 1.19.0 to 1.19.1 in /ee/server/services (#23963 by @dependabot[bot])

  • Bump body-parser from 1.19.1 to 1.19.2 in /ee/server/services (#24517 by @dependabot[bot])

  • Bump cookie from 0.4.1 to 0.4.2 in /ee/server/services (#24472 by @dependabot[bot])

  • Bump date-fns from 2.24.0 to 2.28.0 (#24058 by @dependabot[bot])

  • Bump express from 4.17.1 to 4.17.2 in /ee/server/services (#24469 by @dependabot[bot])

  • Bump express from 4.17.2 to 4.17.3 in /ee/server/services (#24522 by @dependabot[bot])

  • Bump follow-redirects from 1.14.7 to 1.14.8 in /ee/server/services (#24491 by @dependabot[bot])

  • Bump jaeger-client from 3.18.1 to 3.19.0 in /ee/server/services (#23961 by @dependabot[bot])

  • Bump pm2 from 5.1.2 to 5.2.0 in /ee/server/services (#24537 by @dependabot[bot])

  • Bump simple-get from 4.0.0 to 4.0.1 (#24341 by @dependabot[bot])

  • Bump sodium-native from 3.2.1 to 3.3.0 in /ee/server/services (#23512 by @dependabot[bot])

  • Bump underscore.string from 3.3.5 to 3.3.6 in /ee/server/services (#24498 by @dependabot[bot])

  • Bump url-parse from 1.5.3 to 1.5.7 (#24528 by @dependabot[bot])

  • Bump vm2 from 3.9.5 to 3.9.7 in /ee/server/services (#24509 by @dependabot[bot])

  • Chore: twoFactorRequired signature (#24518)

    Improved type checking for decorator twoFactorRequired.

  • Chore: Add description to global OTR setting (#24333)

  • Chore: Bump Fuselage packages (#24573)

    It uses the last stable version of Fuselage packages.

  • Chore: bump fuselage version (#24453)

  • Chore: Convert JS files to Typescript (#24410)

    This pull request converts 26 more files from Javascript to Typescript, to check variable types and increase validation on the code.

  • Chore: Convert to typescript the me slashCommands files (#24321)

    Convert to typescript the me slashCommands files

  • Chore: Convert to typescript the mute and unmute slash commands files (#24325)

    Convert to typescript the mute and unmute slash commands files

  • Chore: Convert to typescript the slash commands create files (#24306)

    Convert Slash Commands create files to typescript.

  • Chore: Convert to typescript the slash commands invite files (#24311)

    Convert to typescript the slash commands invite files

  • Chore: Convert to typescript the unarchive slash commands files (#24331)

    Convert to typescript the unarchive slash commands files

  • Chore: Delete unused file (NewAdminInfoPage.js) (#24196)

    Just removing a duplicated/unused file.

  • Chore: Improve PR title validation regex (#24467)

  • Chore: Js to ts slash commands archive (#24304)

    Convert Slash Commands archive files to typescript

  • Chore: Remove storybook build job from CI (#24530)

  • Chore: roomTypes: Stop mixing client and server code together (#24536)

  • Chore: Run tests using microservices deployment on CI (#24513)

  • Chore: Set Docker image tag to latest only when really latest (#24366)

  • Chore: Unify ILivechatAgent with ILivechatAgentRecord (#24406)

  • Chore: Update Apps-Engine (#24568)

  • Chore: Update Apps-Engine (#24651)

  • Chore: Update fuselage deps to match monolith versions (#24501)

  • Chore: Update Meteor to 2.5.6 (#24461)

  • Chore: Update ws package (#24477)

  • Chore(deps-dev): Bump ts-node from 10.0.0 to 10.5.0 in /ee/server/services (#24435 by @dependabot[bot])

  • Chore(deps): Bump node-fetch from 2.6.1 to 2.6.7 in /ee/server/services (#24299 by @dependabot[bot])

  • i18n: Language update from LingoHub 🤖 on 2022-01-31Z (#24357)

  • i18n: Language update from LingoHub 🤖 on 2022-02-07Z (#24429)

  • i18n: Language update from LingoHub 🤖 on 2022-02-14Z (#24493)

  • i18n: Language update from LingoHub 🤖 on 2022-02-21Z (#24558)

  • Merge master into develop & Set version to 4.5.0-develop (#24363)

  • Regression: Add support to namespace within micro services (#24581)

  • Regression: Admin Sidebar colors inverted. (#24609)

  • Regression: Bunch of settings fixes for VoIP (#24594)

  • Regression: Do not show toast on incoming voip calls (#24619)

  • Regression: Encode registration info as JWT when signing key is provided (#24626)

  • Regression: Error setting user avatars and mentioning rooms on Slack Import (#24585)

    • Fix Mentioned room not found error when importing rooms from Slack;

    • Fix Forbidden error when setting avatars for users imported from Slack (on user import/creation);

    • Fix incorrect message count on imported rooms;

    • Fix missing username on messages imported from Slack;

  • Regression: Error when trying to load name of dm rooms for avatars and notifications (#24583)

  • Regression: Extension List panel UI not aligned with designs (#24645)

  • Regression: Fix double value on holdTime and empty msg on last message (#24630)

  • Regression: Fix in-correct room status shown to agents (#24592)

  • Regression: Fix incoming voip call ringtone is not ringing (#24616)

  • Regression: Fix room not getting created due to null visitor status (#24562)

  • Regression: Fix time fields and wrap up in Voip Room Contexual bar (#24625)

  • Regression: Fix time format on Voip system messages (#24603)

  • Regression: Fix translation for call started message (#24615)

  • Regression: Fix wrong tab name for VoIP settings (#24647)

  • Regression: Fixes in Voice Contextual Bar and Directory (#24596)

  • Regression: If Asterisk suddenly goes down, server has no way to know. Causes server to get stuck. Needs restart (#24624)

  • Regression: Mark all rooms as read modal closing instantly. (#24610)

  • Regression: No audio when call comes from Skype/IP phone (#24602)

    The audio was not rendered because of re-rendering of react element based on
    queueCounter and roomInfo. queueCounter and roomInfo cause the dom to re-render when call gets accepted
    because after accepting call, queueCounter changes or a room gets created.
    The audio element gets recreated. But VoIP user probably holds the old one.
    The behaviour is not predictable when such case happens. If everything gets cleanly setup,
    even if the audio element goes headless, it still continues to play the remote audio.
    But in other cases, it is unreferenced the one on dom has its srcObject as null.
    This causes no audio.

    This fix provides a way to re-initialise the rendering elements in VoIP user
    and calls this function on useEffect() if the re-render has happen.

  • Regression: Prevent button from losing state when rerendering (#24648)

  • Regression: Prevent connect to asterisk when VoIP is disabled (#24601)

  • Regression: Queue counter aggregator for incoming/hanged calls (#24635)

  • Regression: Refresh server connection when MI server settings change (#24649)

  • Regression: Server crashing if Voip credentials are invalid (#24646)

  • Regression: VoIP service button displayed when VoIP is disabled (#24598)

👩‍💻👨‍💻 Contributors 😍

👩‍💻👨‍💻 Core Team 🤓

sampaiodiego and others added 30 commits January 31, 2022 09:06
Merge master into develop & Set version to 4.5.0-develop
Project Name: Rocket.Chat
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat
User: Robot LingoHub

Easy language translations with LingoHub 🚀

Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
* Language update from LingoHub 🤖

Project Name: Rocket.Chat
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat
User: Robot LingoHub

Easy language translations with LingoHub 🚀

* Update packages/rocketchat-i18n/i18n/pl.i18n.json

Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
…es (#24299)

Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](node-fetch/node-fetch@v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: fix import selected users error

* feat: disable import btn when count equals 0

based on users, channels and messages count

* fix: remove btn disable when usersCount === 0

* fix: fix min import data for disabling import btn

Does not allow import msg without channel

* fix: change function import due to TypeError

* fix: fix import selected users error

* feat: disable import btn when count equals 0

based on users, channels and messages count

* fix: remove btn disable when usersCount === 0

* fix: fix min import data for disabling import btn

Does not allow import msg without channel

* fix: remove variable from data on convert funcs

remove u, c, m from respective convert function

Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat>
Co-authored-by: pierre-lehnen-rc <55164754+pierre-lehnen-rc@users.noreply.github.com>
* Store visitor status inside room for UI usage
* [FIX] Inconsistent validation of user's access to rooms

* Replaced Object.assign with object destructuring

* prettier

* packages

* type

* Fixed invalid import from micro services

* Removed code duplicated by merge conflict

* Adjusted new validator

Co-authored-by: Leonardo Ostjen Couto <leonardoostjen@gmail.com>
Bumps [jaeger-client](https://github.com/jaegertracing/jaeger-client-node) from 3.18.1 to 3.19.0.
- [Release notes](https://github.com/jaegertracing/jaeger-client-node/releases)
- [Changelog](https://github.com/jaegertracing/jaeger-client-node/blob/master/CHANGELOG.md)
- [Commits](jaegertracing/jaeger-client-node@v3.18.1...v3.19.0)

---
updated-dependencies:
- dependency-name: jaeger-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.19.0...1.19.1)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Display Join button in discussions inside channels, add user to room on 'Click To Join'

* Open jitsi call on Meteor.call callback

* Fixed jitsi

* Removed console.log

* Add user to room when clicking on the 'Call' tbb bar option

* Update getMessageFunction name

* Use canAccessRoomId function

Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat>
Co-authored-by: Pierre Lehnen <pierre.lehnen@rocket.chat>
Co-authored-by: Leonardo Ostjen Couto <leonardoostjen@gmail.com>
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.0.0 to 10.5.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](TypeStrong/ts-node@v10.0.0...v10.5.0)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
murtaza98 and others added 26 commits February 25, 2022 07:50
…ded (#24626)

* Encode credentials as JWT when signing key is provided

* Endpoint protection
Co-authored-by: Kevin Aleman <kevin.aleman@rocket.chat>
…. Causes server to get stuck. Needs restart (#24624)

* Clickup Task : https://app.clickup.com/t/22qmrw3
Description:
This PR implements a connection retries in case the asterisk connection dies for some reason.
It does 5 retries with backoff options. The retries will not be done for connectivity check.

Once the retries are exhausted, and server comes up, there is no way to connect back but to restart
the voip service. This works only for management connection. Call Server connection, if dies, there are no
retries.

* Grammar rename on vars

Co-authored-by: Kevin Aleman <kevin.aleman@rocket.chat>
#24630)

* Fix time fields and add wrap up

* fix lint

* Regression: Fix missing hold time and wrap up time missing

* On cancel wrapup close room

* Fix lint

* Fix wrong code

* Oh boy I need more sleep

* Cherrypick fix
…Import (#24585)

* Add setting to control avatar rotation

* Fix users' and rooms' mentions, fix setUserAvatar error on import

* Remove unrelated changes

* Fix missing username on imported messages

* Reverted some changes

* Fixed mentions

* Removed duplicated code

* Fix #23808

Co-authored-by: Pierre Lehnen <pierre.lehnen@rocket.chat>
* Update Apps-Engine

* Update Apps-Engine
@lgtm-com
Copy link

lgtm-com bot commented Mar 1, 2022

This pull request introduces 1 alert when merging d686145 into ec8011e - view on LGTM.com

new alerts:

  • 1 for Expression has no effect

@pierre-lehnen-rc pierre-lehnen-rc merged commit 3901054 into master Mar 1, 2022
@pierre-lehnen-rc pierre-lehnen-rc deleted the release-4.5.0 branch March 1, 2022 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.