github RocketChat/Rocket.Chat 4.0.0

latest releases: 6.12.2, 6.13.0, 6.13.0-rc.6...
3 years ago

2021-10-01 · 15 ️️️⚠️ · 4 🎉 · 11 🚀 · 24 🐛 · 67 🔍 · 26 👩‍💻👨‍💻

Engine versions

  • Node: 12.22.1
  • NPM: 6.14.1
  • MongoDB: 3.6, 4.0, 4.2, 4.4, 5.0
  • Apps-Engine: 1.28.0-alpha.5428

⚠️ BREAKING CHANGES

  • ENTERPRISE: "Download CSV" button doesn't work in the Engagement Dashboard's Active Users section (#23013)

    • Fix "Download CSV" button in the Engagement Dashboard's Active Users section;

    • Add column headers to the CSV file downloaded from the Engagement Dashboard's Active Users section;

    • Split the data in multiple CSV files.

  • ENTERPRISE: CSV file downloaded in the Engagement Dashboard's New Users section contains undefined data (#23014)

    • Fix CSV file downloaded in the Engagement Dashboard's New Users section;
    • Add column headers to the CSV file downloaded from the Engagement Dashboard's New Users section.
  • ENTERPRISE: Missing headers in CSV files downloaded from the Engagement Dashboard (#23223)

    • Add headers to all CSV files downloaded from the "Messages" and "Channels" tabs from the Engagement Dashboard;
    • Add headers to the CSV file downloaded from the "Users by time of day" section (in the "Users" tab).
  • LDAP Refactoring (#23171)

  • Moved advanced oAuth features to EE (#23201)

  • Moved role-sync and advanced SAML settings to EE (#23107)

  • Moved SAML custom field map to EE (#23319)

  • Remove cordova compatibility setting (#23302)

  • Remove deprecated endpoints (#23162)

    The following REST endpoints were removed:

    • /api/v1/emoji-custom

    • /api/v1/info

    • /api/v1/permissions

    • /api/v1/permissions.list

    The following Real time API Methods were removed:

    • getFullUserData

    • getServerInfo

    • livechat:saveOfficeHours

  • Remove Google Vision features (#23160)

    Google Vision features like "block adult images" or label detection were not being maintained and totally broken. So we decided to remove its feature and maybe in the future release the same features as an app.

  • Remove old migrations up to version 2.4.14 (#23277)

    To update to version 4.0.0 you'll need to be running at least version 3.0.0, otherwise you might loose some database migrations which might have unexpected effects.

    This aims to clean up the code, since upgrades jumping 2 major versions are too risky and hard to maintain, we'll keep only migration from that last major (in this case 3.x).

  • Remove patch info from endpoint /api/info for non-logged in users (#16050 by @MarcosSpessatto)

  • Removed support of MongoDB 3.4; Deprecated MongoDB 3.6 and 4.0 (#22907)

  • Stop sending audio notifications via stream (#23108)

    Remove audio preferences and make them tied to desktop notification preferences.

    TL;DR: new message sounds will play only if you receive a desktop notification. you'll still be able to chose to not play any sound though

  • Webhook will fail if user is not part of the channel (#23310)

    Remove deprecated behavior added by #18024 that accepts webhook integrations sending messages even if the user is not part of the channel.

    Starting from 4.0.0 the webhook request will fail with error-not-allowed error:

    {"success":false,"error":"error-not-allowed"}
    

🎉 New features

  • APPS: Get livechat's room transcript via bridge method (#22985)

    Adds a new method for retrieving a room's transcript via a new method in the Livechat bridge

  • Add activity indicators for Uploading and Recording using new API; Support thread context; Deprecate the old typing API (#22392 by @sumukhah)

  • Omnichannel source identification fields (#23090)

    This PR adds new fields to the room schema that aids in the identification of the source that created an Omnichannel room, which can be either via livechat widget, SMS, app, etc.

  • Seats Cap (#23017 by @g-thome)

    • Adding New Members

      • Awareness of seats usage while adding new members
      • Seats Cap about to be reached
      • Seats Cap reached
      • Request more seats
    • Warning Admins

      • System telling admins max seats are about to exceed
      • System telling admins max seats were exceed
      • Metric on Info Page
      • Request more seats
    • Warning Members

      • Invite link
        • Block creating new invite links
        • Block existing invite links (feedback on register process)
      • Register to Workspaces
    • Emails

      • System telling admins max seats are about to exceed
      • System telling admins max seats were exceed

🚀 Improvements

  • APPS: New storage strategy for Apps-Engine file packages (#22657)

    This is an enabler for our initiative to support NPM packages in the Apps-Engine.

    Currently, the packages (zip files) for Rocket.Chat Apps are stored as a base64 encoded string in a document in the database, which constrains us due to the size limit of a document in MongoDB (16Mb).

    When we allow apps to include NPM packages, the size of the App package itself will be potentially very large (I'm looking at you node_modules). Thus we'll be changing the strategy to store apps either with GridFS or the host's File System itself.

  • APPS: Return task ids when using the scheduler api (#23023)

    In the methods that create tasks (scheduleRecurring and scheduleOnce) return the id of the document created in the database so the user can cancel each task individually.

  • Add missing pt-BR translations, fix typos and unify language (#23176 by @gabrieloliverio)

  • Better text for auth banner (#23256 by @g-thome)

    Change the text in the banner warning for auth changes

  • Canned response admin settings (#23190)

  • Change log format to JSON (#22975)

  • Change occurences of Livechat to Omnichannel in ES translations were applicable (#23199)

  • Do not re-create General room on every server start (#22957)

    • Check the Show_Setup_Wizard Setting's value to control whether the general room should be created. This channel will only be created if the Show_Setup_Wizard Setting is 'pending'.
  • Load code highlighting languages on demand and fixes on new message parser (#23232)

    Now we have this setting called 'Code highlighting languages list' where you can define the languages that you want to be loaded by default.

  • Throw error if no appId is provided to useUIKitHandleAction (#23221)

  • Use PaginatedSelectFiltered in department edition (#23054)

🐛 Bug fixes

  • "Parent channel or group" search in discussions' creation throws "Unexpected end of JSON input" error (#23076)

    • Use encodeURIComponent() to encode values received by _generateQueryFromParams().
  • "Read Only" and "Allow Reacting" system messages are missing in rooms (#23037)

    • Add system message to notify changes on the "Read Only" setting;
    • Add system message to notify changes on the "Allow Reacting" setting;
    • Fix "Allow Reacting" setting's description (updated from "Only authorized users can write new messages" to "Only authorized users can react to messages").
      system-messages
  • Add check before placing chat on-hold to confirm that contact sent last message (#23053)

  • Add missing custom fields to apps' users converter (#21176 by @cuonghuunguyen)

  • Avoid bots to be marked as unavailable when log off/login (#23262)

  • Can't edit profile information if any field update setting is disabled (#23110)

    • Check which fields have been updated before throwing errors in validateUserEditing.
  • Inaccurate use of 'Mobile notifications' instead of 'Push notifications' in i18n strings (#22978)

    • Fix inaccurate use of 'Mobile notifications' (which is misleading in German) by 'Push notifications';
    • Update 'Notification_Mobile_Default_For' key to 'Notification_Push_Default_For' (and text to 'Send Push Notifications For' for English Language);
    • Update 'Accounts_Default_User_Preferences_mobileNotifications' key to 'Accounts_Default_User_Preferences_pushNotifications';
    • Update 'Mobile_Notifications_Default_Alert' key to 'Mobile_Push_Notifications_Default_Alert';
  • Logging out from other clients (#23276)

  • Mark agents as unavailable when they logout (#23219)

  • Modals is cutting pixels of the content (#23243)

    Fuselage Dependency: 543
    image

  • Omnichannel On hold chats being forwarded to offline agents (#23185)

  • Omnichannel transcript button without user's email (#23150)

  • Prevent users to edit an existing role when adding a new one with the same name used before. (#22407 by @lucassartor)

    before

    Peek 2021-07-13 16-31

    after

    Peek 2021-07-13 16-34

  • Remove doubled "Canned Responses" strings (#23056)

    • Remove doubled canned response setting introduced in #22703 (by setting id change);
    • Update "Canned Responses" keys to "Canned_Responses".
  • Remove margin from quote inside quote (#21779)

    image

  • Save department agents (#23209)

  • Sidebar not closing when clicking in Home or Directory on mobile view (#23218)

    Additional fixed

    • Merge Burger menu components into a single component

    • Show a badge with no-read messages in the Burger Button:
      image

    • remove useSidebarClose hook

  • Stop queue when Omnichannel is disabled or the routing method does not support it (#23261)

    • Add missing key logs

    • Stop queue (and logs) when livechat is disabled or when routing method does not support queue

    • Stop ignoring offline bot agents from delegation (previously, if a bot was offline, even with "Assign new conversations to bot agent" enabled, bot will be ignored and chat will be left in limbo (since bot was assigned, but offline).

  • Toolbox click not working on Safari(iOS) (#23244)

  • transfer message when tranferring room by Apps Engine (#23074 by @cuonghuunguyen)

  • Update bugsnag package (#23104)

  • User list not being updated after creation/deletion of user (#23032)

  • Wrap canned-responses endpoints with ee license (#23204)

  • Wrong docs link on Omni-Webhook page (#23117)

🔍 Minor changes
  • Bump @rocket.chat/string-helpers from 0.27.0 to 0.29.0 in /ee/server/services (#23138 by @dependabot[bot])

  • Bump @storybook/react from 6.3.6 to 6.3.8 (#23165 by @dependabot[bot])

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

  • Bump @types/ejson from 2.1.2 to 2.1.3 in /ee/server/services (#23126 by @dependabot[bot])

  • Bump @types/express from 4.17.12 to 4.17.13 in /ee/server/services (#22598 by @dependabot[bot])

  • Bump @types/imap from 0.8.34 to 0.8.35 (#23122 by @dependabot[bot])

  • Bump @types/ws from 7.4.6 to 7.4.7 in /ee/server/services (#23095 by @dependabot[bot])

  • Bump actions/stale from 3.0.19 to 4 (#22673 by @dependabot[bot])

  • Bump csv-parse from 4.16.0 to 4.16.3 (#23120 by @dependabot[bot])

  • Bump ejson from 2.2.1 to 2.2.2 in /ee/server/services (#23236 by @dependabot[bot])

  • Bump iconv-lite from 0.4.24 to 0.6.3 (#22527 by @dependabot[bot])

  • Bump image-size from 0.6.3 to 1.0.0 (#22528 by @dependabot[bot])

  • Bump ip-range-check from 0.0.2 to 0.2.0 (#22532 by @dependabot[bot])

  • Bump jsrsasign from 10.3.0 to 10.4.0 (#23163 by @dependabot[bot])

  • Bump juice from 5.2.0 to 8.0.0 (#22177 by @dependabot[bot])

  • Bump object-path from 0.11.5 to 0.11.6 (#23088 by @dependabot[bot])

  • Bump pm2 from 5.1.0 to 5.1.1 in /ee/server/services (#23128 by @dependabot[bot])

  • Bump stylelint-order from 2.2.1 to 4.1.0 (#22036 by @dependabot[bot])

  • Bump supertest from 6.1.3 to 6.1.6 (#23139 by @dependabot[bot])

  • Bump tar from 6.1.0 to 6.1.11 in /ee/server/services (#23068 by @dependabot[bot])

  • Bump xml-crypto from 2.1.2 to 2.1.3 (#23141 by @dependabot[bot])

  • Chore: Change Ubuntu version to 20.04 on all GitHub Actions (#23200)

  • Chore: client endpoints typings (#23152)

  • Chore: Convert VerticalBar component to typescript (#22542)

  • Chore: Environmental variable for marketplace url (#22922)

  • Chore: Make SMTP empty on docker-compose so registration won't hang out of the box (#23255)

  • Chore: Move client helpers (#23178)

    Moves helper modules under app/ to client/lib/utils/.

  • Chore: Re-enable session tests on local after removal of mongo-unit (#23263)

  • Chore: Remove non-used dependencies (#23109)

  • Chore: Remove wrong usages of Meteor.wrapAsync (#23079)

  • Chore: Update Livechat widget to 1.9.4 (#23198)

  • Chore: Update pino and pino-pretty (#23269)

  • Chore: Update pino and pino-pretty (#23157)

  • Chore: Upgrade limax (#23187)

    Upgrades limax for faster slugify algorithm.

  • i18n: Language update from LingoHub 🤖 on 2021-08-30Z (#23061)

  • i18n: Language update from LingoHub 🤖 on 2021-09-06Z (#23123)

  • i18n: Language update from LingoHub 🤖 on 2021-09-13Z (#23184)

  • Merge master into develop & Set version to 4.0.0 (#23086)

  • Regression: "Join" button not working (#23320)

  • Regression: renderEmoji helper referred as a template (#23212)

  • Regression: Add default value when no cookies are present (#23318)

  • Regression: Blank screen in Jitsi video calls (#23322)

    • Fix Jitsi calls being disposed even when "Open in new window" setting is disabled;
    • Fix misspelling on CallJitsWithData.js file name.
  • Regression: Create new loggers based on server log level (#23297)

  • Regression: Fix app storage migration (#23286)

    The previous version of this migration didn't take into consideration apps that were installed prior to Rocket.Chat@3.8.0, which removed the typescript compiler from the server and into the CLI. As a result, the zip files inside each installed app's document in the database had typescript files in them instead of the now required javascript files.

    As the new strategy of source code storage for apps changes the way the app is loaded, those zip files containing the source code are read everytime the app is started (or in this particular case, updated), and as the zips' contents were wrong, the operation was failing.

    The fix extract the data from old apps and creates new zip files with the compiled js already present.

  • Regression: Fix Bugsnag not started error (#23308)

  • Regression: Fix channel icons on queue (#23304)

  • Regression: Fix user registration stuck (#23254)

  • Regression: Fix view logs admin screen (#23194)

  • Regression: invalid call import (#23328)

  • Regression: invalid call import (#23334)

  • Regression: LDAP Channel/Role Sync not working (#23311)

  • Regression: LDAP Issues (#23306)

  • Regression: LDAP Refactoring (#23231)

  • Regression: LDAP User Data Sync not always working (#23321)

  • Regression: LDAP: Handle base authentication and prevent crash (#23331)

    When AD requires TLS the auth crashes the server if StartTLS is not set, the error shows at the end because the code was not waiting on this operation.

  • Regression: Log Sections not respecting Log Level setting (#23230)

  • Regression: Missing i18n key (#23282)

  • Regression: Properly trickle-down state from UsersPage to UsersTable (#23196)

    Spotted by @gabriellsh.

  • Regression: Removed exclusive tests statement (#23333)

  • Regression: Request seats link (#23312)

  • Regression: Request seats url (#23317)

  • Regression: SAML identifier mapping (#23330)

  • Regression: Seats Cap banner not being disabled if not enterprise (#23278)

  • Regression: View Logs administration page crashing (#23205)

    Fixes the stdout.queue endpoint; makes the components type-safe.

  • Regression: wrong settings order (#23281)

  • Release 3.18.1 (#23135 by @g-thome)

  • Release 3.18.2 (#23338)

👩‍💻👨‍💻 Contributors 😍

👩‍💻👨‍💻 Core Team 🤓

Don't miss a new Rocket.Chat release

NewReleases is sending notifications on new releases.