Rocket.Chat v3.14.0 Release Notes

  • 2021-04-28 · 9 🎉 · 9 🚀 · 55 🐛 · 38 🔍 · 30 👩‍💻👨‍💻

    Engine versions

    • Node: 12.22.1
    • NPM: 6.14.1
    • MongoDB: 3.4, 3.6, 4.0
    • Apps-Engine: 1.25.0

    🎉 New features

    • APPS: Method to fetch Livechat Departments (#21690)

    New method in the livechat bridge that allows apps to fetch departments that are enabled and have agents assigned

    Adding the user information when installing and uninstalling an App to the Apps-Engine.

    • ENTERPRISE: LDAP Teams Sync (#21658)

    • Enterprise: Second layer encryption for data transport (alpha) (#21692)

    The second layer encryption for data transport works implementing the ECDH algorithm where session keys are exchanged before the rest of the communication. This feature is enterprise only since it requires the micro-services architecture and it's in the early stage of tests as an alpha feature and documentation may not be available before the beta stage.

    • 🆕 New set of rules for client code (#21318)

    This small PR does the following:

    • Now React is the web client's first-class citizen, being loaded before Blaze. Thus, BlazeLayout calls render templates inside of a React component (BlazeLayoutWrapper);

    • Main client startup code, including polyfills, is written in TypeScript;

    • At the moment, routes are treated as regular startup code; it's expected that FlowRouter will be deprecated in favor of a new routing library;

    • React was updated to major version 17, deprecating the usage of React as namespace (e.g. use memo() instead of React.memo());

    • The client/ and ee/client/ directory are linted with a custom ESLint configuration that includes:

      • Prettier;
      • react-hooks/* rules for TypeScript files;
      • react/no-multi-comp, enforcing the rule of one single React component per module;
      • react/display-name, which enforces that React components must have a name for debugging;
      • import/named, avoiding broken named imports.
    • A bunch of components were refactored to match the new ESLint rules.

    image

    • Password history (#21607)

      • Store each user's previously used passwords in a passwordHistory field (in the users record);
      • Users' previously used passwords are stored in their passwordHistory even when the setting is disabled;
      • Add "Password History" setting -- when enabled, it blocks users from reusing their most recent passwords;
      • Convert comparePassword file to TypeScript.

    Password_Change Password_History

    add teams.update endpoint

    • Standard Importer Structure (#18357)

    🚀 Improvements

    • APPS: Scheduler option to skip immediate execution of recurring jobs (#21353 by @lolimay)

    Create and schedule a task manually at scheduleRecurring method so the first iteration runs after the configured interval. This is accomplished by adding the setting skipImmediate: true when setting up the task.

    • ➕ Add error messages to the creation of channels or usernames containing reserved words (#21016)

    Display error messages when the user attempts to create or edit users' or channels' names with any of the following words (case-insensitive):

    • admin;

    • administrator;

    • system;

    • user. create-channel register-username change-channel change-username

      • ➕ add permission check when adding a channel to a team (#21689 by @g-thome)

    add permission check for each room

    • ➕ Add proxy for data export (#20998)

    Add a proxy for data export downloads (instead of just linking ufs urls) so we can have more control over its response. Also added a human readable message when the user tries to download the user-data unauthenticated.

    • ➕ Add support to range downloads on file system storage (#21463)

    • Alert on team deletion (#21617)

    • 🔧 Do not require pre-configured tags in Omnichannel chats (#21488 by @rafaelblink)

    • OEmbed details by requesting using the accept language header on the request (#21686)

      • Send Accept-Language header on oembed requests
    • Resize custom emojis on upload instead of saving at max res (#21593)

      • Create new MediaService (ideally, should be in charge of all media-related operations)
      • Resize emojis to 128x128

    🛠 🐛 Bug fixes

    • Enterprise: Omnichannel simultaneous chat limit is not properly checking the limit by department (#21839)

    The Omnichannel Concurrent Chat Limit feature is not working properly when checking the limit per department, the reason is that the algorithm that fetches the number of ongoing chats per agent wasn't considering the department of the subscriptions, hence, the number returned from DB was bigger than it should be.

    • ➕ Add tag input to Closing Chat modal (#21462 by @rafaelblink)

    • Admin Users list pagination (#21469)

      • Fix Administration/Users pagination
    • 👍 Allow deletion of own account for passwordless accounts (e.g. OAUTH) (#21119 by @wolbernd)

    • 👍 Allows more than 25 discussions/files to be loaded in the contextualbar (#21511 by @Jeanstaquet)

    In some places, you could not load more than 25 threads/discussions/files on the screen when searching the lists in the contextualbar. Threads & list are numbered for a better view of the solution

    https://user-images.githubusercontent.com/45966964/114222225-93335800-996e-11eb-833f-568e83129aae.mp4

    Now when you scroll to the bottom of the users list, it shows more users. Before the fix, the limit for the query for loadMore was calculated so that no additional users could be loaded.

    Before

    https://user-images.githubusercontent.com/45966964/114249739-baece500-999b-11eb-9bb0-3a5bcee18ad8.mp4

    After

    https://user-images.githubusercontent.com/45966964/114249895-364e9680-999c-11eb-985c-47aedc763488.mp4

    • App installation from marketplace not correctly displaying the permissions (#21470)

    Fixes the marketplace app installation not correctly displaying the permissions modal.

    • Archive permissions for room moderator (#21563)

    • Attachment files are not rendered properly on SMS channels (#21746)

    • Audio message same pattern as image message (#21466)

    image

    • Avoid sidebar being broke (#21490)

    • 🔄 Change margin size for quote messages (#21461)

    image

    • 🔄 Change team private info text (#21535)

    • 🔄 Change the active appearance for toolbox buttons (#21416)

    image

    Permissions 'start-discussion-other-user' and 'start-discussion' are checked everywhere before letting anyone start any discussions, this permission check was missing for message box actions, so added it.

    I added a default case to the total when there are no result to the user's query

    • Discussions not showing in Safari (#21270 by @Kartik18g)

    • Don't allow whitespace on bold, italic and strike (#21483)

    Stops the original markdown rendered from rendering empty bold, italic and strike text. Stops _ _, * * and ~ ~

    • Don't ask again modals blinking (#21454)

    Made the check before opening the modal.

    • Duplicated header on admin's user contextualbar (#21810)

    image

    I added the right row export to display the discussions list

    • Generic Attachment broken somehow (#21657)

    • Header component breaking if user is not part of teams room. (#21465)

    • Livechat not retrieving messages (#21644 by @cuonghuunguyen)

    • 👉 Make Omnichannel's closing chat button the last action in the toolbox (#21476 by @rafaelblink)

    • Margins on contextual bar information (#21457)

    ### Room Before image

    After image

    ### Livechat image

    • Message Block ordering (#21464)

    Reactions should come before reply button. image

    Additional checks on message_link field before rendering message contents

    • Omnichannel Activity Monitor closing chats returned to the queue (#21782)

    Fix VisitorInactivityMonitor is still monitoring rooms that returned to Queue Chats

    • Omnichannel current chats and agents grid aren't sorting by status properly (#21616 by @rafaelblink)

    • Omnichannel queue manager returning outdated room object (#21485)

    The Omnichannel Queue Manager is returning outdated room object when delegating the chat to an agent, hence, our Livechat widget is affected and the agent assigned to the chat is not displayed on the widget, only after refreshing/reloading.

    • Omnichannel room information panel breaking due to lack of data verification (#21608 by @rafaelblink)

    • public teams not appearing on spotlight search results (#21495)

    • ✂ Remove all agent subscriptions when an Omnichannel chat is closed (#21509)

    • ✂ Remove size prop from StatusBullet component (#21428)

    • 📇 Rename Omnichannel Rooms, Inquiries and Subscriptions when the Contact Name changes (#21513 by @rafaelblink)

    • 📇 Rename team not working properly (#21552)

    • Selected channels are not showing in Teams (#21669 by @sumukhah)

    • Send alternative color to unread sidebar icon (#21432)

    image

    • 👉 Show direct rooms as readonly when one of the users is deactivated (#21684)

    • 🏷 Tag component is no longer rendering on Chat Room Information panel (#21429 by @rafaelblink)

    • Team types in admin -> rooms. (#21612)

    print

    • Team's channels list for teams with too many channels (#21491)

      • Fix teams.listRooms pagination for non-admin users
    • Too many request on loadHistory method (#21594)

    • Toolbox icons order (#21739)

    • 🌐 Typos/missing elements in the French translation (#21525 by @Jeanstaquet)

      • I have corrected some typos in the translation
      • I added a translation for missing words
      • I took the opportunity to correct a mistranslated word
      • Test_Desktop_Notifications was missing in the EN and FR file image
    • ⚡️ Updating a message causing URLs to be parsed even within markdown code (#21489)

      • Fix updateMessage to avoid parsing URLs inside markdown
      • Honor parseUrls property when updating messages
    • 👉 Use async await in TeamChannels delete channel action (#21534)

    • 🔀 User status out of sync (#21656)

    • Wrong title on Omnichannel contact information panel (#21682 by @rafaelblink)

    • Wrong useMemo on Priorities EE field. (#21453 by @rafaelblink)

    • Wrong user in user info (#21451)

    Fixed some race conditions in admin.

    Self DMs used to be created with the userId duplicated. Sometimes rooms can have 2 equal uids, but it's a self DM. Fixed a getter so this isn't a problem anymore.

    🔍 Minor changes

    • 📚 Doc: Corrected links to documentation of rocket.chat README.md (#20478 by @joshi008)

    The link for documentation in the readme was previously https://rocket.chat/docs/ while that was not working and according to the website it was https://docs.rocket.chat/ The link for deployment methods in readme was corrected from https://rocket.chat/docs/installation/paas-deployments/ to https://docs.rocket.chat/installation/paas-deployments Some more links to the documentations were giving 404 error which hence updated.

    • 🚚 [Improve] Remove useless tabbar options from Omnichannel rooms (#21561 by @rafaelblink)

    • A React-based replacement for BlazeLayout (#21527)

      • The Meteor package kadira:blaze-layout was removed;
      • A global subscription for the current application layout (appLayout) replaces BlazeLayout entirely;
      • The #react-root element is rendered on server-side instead of dynamically injected into the DOM tree;
      • The "page loading" throbber is now rendered on the React tree;
      • The renderRouteComponent helper was removed;
      • Some code run without any criteria on main template module was moved into client startup modules;
      • React portals used to embed Blaze templates have their own subscription (blazePortals);
      • Some route components were refactored to remove a URL path trap originally disabled by renderRouteComponent;
      • A new component to embed the DOM nodes generated by RoomManager was created.
    • ➕ Add ')' after Date and Time in DB migration (#21519 by @im-adithya)

    • ⬆️ Bump Apps-Engine version (#21840)

    • ⬆️ bump fuselage (#21841)

    • ⬆️ Bump Livechat Version (#21694)

    • ⚡️ Chore: Add tests for teams.update REST endpoint (#21653 by @g-thome)

    add more tests to this endpoint

    • 👷 Chore: Cache EE node_modules on CI (#21831)

    • ✅ Chore: Do not stop animations on Test Mode (#21484)

    • ✅ Chore: Increase testing coverage on password policy class (#21482)

    • ⚡️ Chore: Meteor update to 2.1.1 (#21494)

    Basically Node update to version 12.22.1

    Meteor change log https://github.com/meteor/meteor/blob/devel/History.md#v211-2021-04-06

    • 🚚 Chore: Remove control character from room model operation (#21493)

    • 🛠 Fix typo in app/apps/README file (#21204 by @sauravjoshi23)

    • 🛠 Fix: Missing module eventemitter3 for micro services (#21611)

      • Fix error when running micro services after version 3.12
      • Fix build of docker image version latest for micro services
    • ⚡️ Language update from LingoHub 🤖 on 2021-04-05Z (#21446)

    • ⚡️ Language update from LingoHub 🤖 on 2021-04-12Z (#21530)

    • ⚡️ Language update from LingoHub 🤖 on 2021-04-19Z (#21642)

    • 🔀 Merge master into develop & Set version to 3.14.0-develop (#21441)

    • QoL improvements to add channel to team flow (#21778)

      • Fixed canAccessRoom validation
      • Added e2e tests
      • Removed channels that user cannot add to the team from autocomplete suggestions
      • Improved error messages
    • Regression: Bold, italic and strike render (Original markdown) (#21747)

    Modified regex to avoid spaces between the marked text and the symbols. Also made it possible to apply the three markings at the same time, independing of order.

    • regression: Cannot enable e2e in direct room. (#21650)

    • 👷 Regression: Change CI files hashes for caching (#21776)

    • Regression: Edit user in admin breaking (#21613)

    • Regression: Fix room not returning to the previous room after directory (#21757)

    • Regression: Fix scroll to bottom (#21731)

    • 🏗 Regression: Fix services Docker image build (#21750)

    • 📜 regression: Italic being parsed with surrounding non-whitespace text (#21815)

    • Regression: Legacy Banner Position (#21598)

    ### Before: image

    ### After image

    • regression: Markdown broken on safari (#21780)

    • 🔊 Regression: Problem with Importer's logs (#21812)

    • Regression: React + Blaze reconciliation (#21567)

    • Regression: Reactivate direct conversations only if all involved users are active (#21714)

    • Regression: Reconnection not working properly due to changes on ECHD Proxy (#21741)

    The ECHD Proxy implements a delay on websocket connection, the first implementation lost the reference to auto reconnect functionality.

    • regression: Team Channels actions (#21417)

    • 🔀 Regression: team sync not accepting multiple teams (#21768)

    • Regression: Unread Threads Header and List (#21816)

    • ⚡️ Regression: Update fuselage for icons fix (#21809)

    👩‍💻👨‍💻 Contributors 😍

    👩‍💻👨‍💻 Core Team 🤓