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 7.0.0 #33678

Closed
wants to merge 245 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
65d2a45
chore: update E2EE setting text (#33226)
hugocostadev Sep 20, 2024
9bcb802
feat: Implement proper accessbility for report user modal (#33294)
rique223 Sep 23, 2024
827850d
fix: imported fixes (#33330)
julio-cfa Sep 23, 2024
a6b9152
chore: create network broker package (#33338)
sampaiodiego Sep 23, 2024
1f89f78
feat: Adds new admin feature preview setting management (#33212)
lucas-a-pelegrino Sep 24, 2024
a4fcd99
chore: move common files to core-services (#33341)
sampaiodiego Sep 24, 2024
47c584c
Merge remote-tracking branch 'origin/release-6.13.0' into develop
ggazzo Sep 25, 2024
7dc9c41
chore: replace Meteor._localStorage -> Accounts.storageLocation (#33356)
ggazzo Sep 25, 2024
b4c3e5c
Bump rocket.chat to 6.14.0-develop (#33366)
sampaiodiego Sep 25, 2024
6bee2a1
ci: use node20 for release action (#33343)
trivikr Sep 26, 2024
fc26d85
regression: `Sidepanel` sort requires refresh after room update (#33370)
ggazzo Sep 26, 2024
fa226e4
chore: add ui-composer to storybook (#33383)
ggazzo Sep 27, 2024
34087b0
ci: remove Jira-GitHub security integration (#33384)
julio-cfa Sep 27, 2024
5965a1d
chore: Single Contact ID: improved typings and removed some duplicate…
pierre-lehnen-rc Sep 27, 2024
92e366e
fix: race condition when forwarding livechat by splitting subscriptio…
ricardogarim Sep 27, 2024
b17b3be
fix: Avoid notifying `watch.settings` on uncaught errors (#33376)
KevLehman Sep 27, 2024
a430faf
chore: add gazzodown preview (#33279)
ggazzo Sep 27, 2024
214d1b3
chore(Sidepanel): uses only local channels and discussions (#33387)
ggazzo Sep 27, 2024
bc1e6ee
chore: Move Apps-Engine to monorepo (#32951)
d-gubert Sep 27, 2024
662aca3
fix: Async E2EE key exchange not working on develop (#33378)
KevLehman Sep 30, 2024
bcacbb1
feat: Voip for Team Collaboration (#33346)
pierre-lehnen-rc Sep 30, 2024
6208dff
feat: search contacts endpoint (#33043)
tapiarafael Oct 2, 2024
cfb6912
chore: removed symbolic link to apps engine (#33406)
ggazzo Oct 2, 2024
f2844aa
test: fake timers to prevent voip unit tests failing sporadically (#3…
aleksandernsilva Oct 2, 2024
d661782
fix: Title missing in thread list for threads starting with attachmen…
hugocostadev Oct 3, 2024
34879cc
feat: page warning before leave/reload while a call is ongoing (#33404)
aleksandernsilva Oct 7, 2024
2aa3fa2
regression: add `GenericMenu` missing props (#33492)
juliajforesti Oct 8, 2024
b5ca81c
feat: added beta disclaimer to voip settings (#33463)
aleksandernsilva Oct 8, 2024
af202c7
Revert "refactor(i18n): Increase the adoption of `react-i18next` - Ph…
tassoevan Oct 8, 2024
a16b582
fix: Don't return users with `E2ESuggestedKey` set when selecting use…
KevLehman Oct 8, 2024
d9fe5bb
fix: Server not notifying users of E2EE key suggestions (#33435)
KevLehman Oct 8, 2024
5f9826b
fix: deno runtime controller not handling undefined child process ref…
d-gubert Oct 9, 2024
678faed
fix: Blank selected department when selecting out of range (#33386)
rique223 Oct 9, 2024
6843990
regression: unable to disable voip client query (#33510)
aleksandernsilva Oct 9, 2024
c24b0e5
regression: voip beforeunload listener being added instead of removed…
aleksandernsilva Oct 9, 2024
a15b925
fix: livechat stuck unread counter on new messages (#33229)
ricardogarim Oct 9, 2024
760ae5c
fix: "Filter by room type" selectable in Rooms filter (#33507)
abhinavkrin Oct 10, 2024
debd3ff
feat: introduce new categories field for UI Action Buttons (#33066)
Dnouv Oct 10, 2024
6d1b7f8
i18n: Rocket.Chat language update from Lingohub 🤖 on 2024-10-07Z (#33…
lingohub[bot] Oct 10, 2024
ecb509a
Merge remote-tracking branch 'origin/master' into develop
ggazzo Oct 10, 2024
8663c2e
chore: remove pm2 dependency (#33524)
sampaiodiego Oct 10, 2024
02debbe
feat: apply category reorder on `Enhanced navigation` (#33496)
juliajforesti Oct 10, 2024
3bd14c1
regression: disabled voip leaves empty section in the user menu (#33521)
aleksandernsilva Oct 11, 2024
efacfb3
chore: Recover `@rocket.chat/fuselage-ui-kit` storybook (#33531)
tassoevan Oct 11, 2024
f70954e
chore: bump minor deps (#33512)
ggazzo Oct 11, 2024
305b591
regression: fix preview (#33536)
ggazzo Oct 11, 2024
6ece177
feat: new fields contact (#33504)
tapiarafael Oct 11, 2024
bd5a5ff
fix: Custom sounds not working when storage is set to filesystem (#33…
KevLehman Oct 11, 2024
b97c106
fix: Cannot send messages after E2EE keys are refreshed (#33527)
hugocostadev Oct 11, 2024
00cdca7
refactor: adjusted voip endpoints error messages (#33515)
aleksandernsilva Oct 11, 2024
b9b1c0f
test: added MockedDeviceContext to voip unit tests (#33553)
ggazzo Oct 12, 2024
3c05136
chore: split ImportDataConverter into multiple classes and add unit t…
pierre-lehnen-rc Oct 12, 2024
8f71f78
feat: add contact channels (#33308)
tapiarafael Oct 14, 2024
e6a18c3
chore: Use `rmSync` instead of `rmdirSync` (#33551)
KevLehman Oct 14, 2024
8c8238e
chore: remove nameInsensitive sorting on /v1/users.listByStatus (#33401)
ricardogarim Oct 14, 2024
dc4d248
chore: Add `force` option to `rmSync` call (#33570)
KevLehman Oct 14, 2024
9cf0797
feat: new E2EE composer hint (#33283)
hugocostadev Oct 14, 2024
d929799
ci: cache artifacts to reduce api calls (#33567)
ggazzo Oct 14, 2024
682507c
feat: add history endpoint (#33349)
tapiarafael Oct 15, 2024
bafbedc
ci: add restore cache for `deploy-preview` (#33579)
ggazzo Oct 15, 2024
50c4441
fix: consider query strings in Twilio request validation (#33364)
julio-cfa Oct 15, 2024
eebb212
chore(deps): bump actions/setup-node from 4.0.3 to 4.0.4 (#33327)
dependabot[bot] Oct 15, 2024
08d0df2
feat: adds a new featured room action on the header for non-default c…
Dnouv Oct 15, 2024
dd923a8
feat: Apps-Engine method for reading and counting unread room message…
Dnouv Oct 15, 2024
cb49d7a
fix: broken jump-to-thread-message functionality using link (#33332)
abhinavkrin Oct 15, 2024
956bf61
chore: store contact emails and phones on the same format as user's a…
pierre-lehnen-rc Oct 15, 2024
72c6101
refactor: unified users page header content into a single component (…
aleksandernsilva Oct 15, 2024
065a742
fix: Updating path `responseBy` would create a conflict on `responseB…
KevLehman Oct 15, 2024
31eb47f
feat: New marketplace state for out of support window workspaces (#33…
MartinSchoeler Oct 15, 2024
5cc9ac5
regression: missing permission checks on voip for team collab (#33518)
aleksandernsilva Oct 15, 2024
e14fa89
fix: imported fixes (#33583)
julio-cfa Oct 15, 2024
3abc1e5
chore: replace fs+promisify with fs/promises (#33599)
pierre-lehnen-rc Oct 16, 2024
2b8ac8a
regression: voip toggle success/error toasts being displayed in quick…
aleksandernsilva Oct 16, 2024
8bbe581
chore: new stats (#33013)
hugocostadev Oct 16, 2024
f810929
fix: alter the regex in the isValidDomain function to accept hyphens …
julio-cfa Oct 16, 2024
df7f669
fix: Encrypted push notification missing message.content (#33377)
diegolmello Oct 16, 2024
a069e69
regression: prevent ui from blink login page during reconnection (#33…
ggazzo Oct 16, 2024
16f5c59
chore: bump 7.0.0
ggazzo Apr 8, 2024
552b255
fix!: api login should not suggest which credential is wrong (#32159)
ggazzo Apr 9, 2024
d9a9d0d
chore!: remove hipchat importer (#32154)
pierre-lehnen-rc Apr 11, 2024
d070f7d
chore!: Removed Mongo 4.4. support and added 7.0 (#32162)
ggazzo Apr 12, 2024
cef2fe4
chore!: Improve permissions check on channels endpoints (#32330)
matheusbsilva137 May 3, 2024
2442a5c
chore: Improve permissions check on cloud endpoints (#32331)
matheusbsilva137 May 3, 2024
0cf56e0
chore: Improve permissions check on instances endpoints (#32334)
matheusbsilva137 May 3, 2024
32b6305
chore: Improve permissions check on LDAP endpoints (#32335)
matheusbsilva137 May 3, 2024
e2040e3
chore!: Improve permissions check on mailer endpoints (#32336)
matheusbsilva137 May 3, 2024
c88ff51
chore: Improve permissions check on users endpoints (#32353)
matheusbsilva137 May 7, 2024
82c6471
chore!: Improve permissions check on groups endpoints (#32332)
matheusbsilva137 May 7, 2024
b81fe46
chore!: Improve permissions check on integrations endpoints (#32355)
matheusbsilva137 May 7, 2024
0b164cc
chore!: Improve permissions check on oauth-apps endpoints (#32338)
matheusbsilva137 May 9, 2024
3c732b5
chore!: Improve permissions check on teams endpoints (#32351)
matheusbsilva137 May 9, 2024
95460bf
chore!: Improve permissions check on im endpoints (#32333)
matheusbsilva137 May 13, 2024
923de04
chore!: Improve permissions check on permissions endpoints (#32343)
matheusbsilva137 May 13, 2024
7692e9d
chore!: Improve permissions check on settings endpoints (#32350)
matheusbsilva137 May 13, 2024
95793c9
chore!: Improve permissions check on licenses endpoints (#32354)
matheusbsilva137 May 13, 2024
6c88d0f
test: fix im.messages.others endpoint tests (#32426)
matheusbsilva137 May 14, 2024
d8e3c30
chore!: Improve permissions check on misc endpoints (#32337)
matheusbsilva137 May 14, 2024
928898c
chore!: Improve permissions check on roles endpoints (#32347)
matheusbsilva137 May 20, 2024
a5fb789
refactor!: removed listEmojiCustom method (#32542)
abhinavkrin Jun 24, 2024
c20e02d
chore!: removes view-history permission (#33042)
lucas-a-pelegrino Aug 15, 2024
8a5ac3f
chore!: Remove unused `omnichannelExternalFrameGenerateKey` (#32921)
dougfabris Aug 15, 2024
f5c25bb
chore!: remove deprecated meteor eraseRoom method (#32648)
AllanPazRibeiro Aug 17, 2024
1d487a1
chore!: removed setAsset, unsetAsset, refreshClients method (#32564)
abhinavkrin Aug 17, 2024
6830304
chore!: Remove `meteor/check` from `cloud` endpoints (#32533)
matheusbsilva137 Aug 17, 2024
4d15cb3
chore!: removed checkUsernameAvailability method (#32488)
abhinavkrin Aug 17, 2024
5eb7a9e
refactor!: removed roomNameExists method (#32484)
abhinavkrin Aug 17, 2024
73d2abb
chore!: removed reportMessage method (#32633)
abhinavkrin Aug 17, 2024
3792bdb
fix: Missing retention's `ignoreThreads` param for old channels (#33028)
dougfabris Aug 17, 2024
50943a0
chore!: Remove `meteor/check` from `chat` endpoints (#32532)
matheusbsilva137 Aug 17, 2024
8cf7a0a
chore!: Remove `meteor/check` from `banners` endpoints (#32509)
matheusbsilva137 Aug 18, 2024
363325f
chore!: Remove deprecated URL App installation (#33210)
MartinSchoeler Sep 27, 2024
7eb2905
chore!: remove deprecated livechat:loadHistory method (#33390)
abhinavkrin Oct 1, 2024
2511b8b
chore!: removed removeWebdavAccount method (#33355)
abhinavkrin Oct 1, 2024
449029c
chore!: remove livechat:addAgent and livechat:addManager method (#33372)
abhinavkrin Oct 1, 2024
fd40d84
fix: Private apps restrictions are not applied on license removal (#3…
matheusbsilva137 Oct 1, 2024
c5b0c98
feat: New Private apps limitations (#33316)
MartinSchoeler Oct 1, 2024
06e68a7
Revert "fix: Private apps restrictions are not applied on license rem…
matheusbsilva137 Oct 1, 2024
a94a608
chore!: remove deprecated livechat:searchAgent method (#33373)
abhinavkrin Oct 1, 2024
db19726
chore!: remove deprecated livechat:loginByToken method (#33391)
abhinavkrin Oct 1, 2024
08d3df6
chore!: remove livechat:getCustomFields method (#33371)
abhinavkrin Oct 1, 2024
04cee2a
fix: Upgrade option is being presented to Premium workspaces when upl…
matheusbsilva137 Oct 2, 2024
24f16be
refactor!: Room's Key ID generation (#33329)
KevLehman Oct 2, 2024
805a00d
chore!: Update private apps cap on Community Edition (#33399)
matheusbsilva137 Oct 2, 2024
a5f25e7
fix!: Private apps are always auto enabled when updated (#33417)
matheusbsilva137 Oct 3, 2024
14b64a8
chore: tag apps as migrated when downgrading to CE (#33439)
matheusbsilva137 Oct 4, 2024
d0c773c
chore!: Tag private apps as migrated (exempt from CE limitations) whe…
matheusbsilva137 Oct 7, 2024
73649db
chore!: Grandfathered private apps texts (#33468)
lucas-a-pelegrino Oct 7, 2024
cc1cb66
fix!: LDAP sync triggers multiple cron jobs in case an invalid sync i…
matheusbsilva137 Oct 9, 2024
c323351
chore!: remove deprecated livechat:saveSurveyFeedback method (#33443)
abhinavkrin Oct 9, 2024
aa6dd17
chore!: remove deprecated livechat:pageVisited method (#33427)
abhinavkrin Oct 9, 2024
c493e6a
chore!: remove deprecated method livechat:saveInfo (#33447)
abhinavkrin Oct 9, 2024
3395c82
chore!: remove deprecated endpoint pw.getPolicyReset (#33474)
abhinavkrin Oct 9, 2024
542fae0
chore!: remove deprecated method getPasswordPolicy (#33473)
abhinavkrin Oct 9, 2024
3091566
chore!: remove deprecated method deleteMessage (#33472)
abhinavkrin Oct 9, 2024
b167db0
chore!: remove deprecated endpoint channels.images (#33471)
abhinavkrin Oct 9, 2024
3f9c3f1
chore!: remove deprecated endpoints licenses.isEnterprise and license…
abhinavkrin Oct 9, 2024
92139cd
chore!: remove deprecated addOAuthApp method (#33465)
abhinavkrin Oct 9, 2024
b19ae4d
chore!: remove deprecated endpoint livechat/inquiries.queued (#33453)
abhinavkrin Oct 9, 2024
cf67f76
chore!: remove deprecated method livechat:sendOfflineMessage (#33452)
abhinavkrin Oct 9, 2024
30e698b
chore!: removed deprecated method livechat:getAgentData (#33450)
abhinavkrin Oct 9, 2024
71cb3ea
chore!: remove deprecated method livechat:webhookTest (#33449)
abhinavkrin Oct 9, 2024
be05322
chore!: remove deprecated method livechat:saveAppearance (#33448)
abhinavkrin Oct 9, 2024
fba7a3b
chore!: remove deprecated livechat:getAgentOverviewData method (#33445)
abhinavkrin Oct 9, 2024
962536f
chore!: removed deprecated methods livechat:removeAgent, livechat:rem…
abhinavkrin Oct 9, 2024
9a83426
chore!: remove deprecated livechat:setCustomField method (#33444)
abhinavkrin Oct 9, 2024
ddffa77
chore!: remove deprecated method livechat:saveIntegration (#33451)
abhinavkrin Oct 9, 2024
ea6c1ed
chore!: removed deprecated method livechat:getAnalyticsOverviewData (…
abhinavkrin Oct 9, 2024
4964863
feat!: Meteor 3.0 - Node.js 20 (#31438)
ggazzo Oct 10, 2024
016f4be
chore!: Remove unused `UI_Click_Direct_Message` setting (#33183)
dougfabris Oct 10, 2024
203328d
regression(Marketplace): Restore changes lost in rebase (#33514)
MartinSchoeler Oct 11, 2024
6b5b91f
chore!: Remove upsert users capability through the `users.update` end…
matheusbsilva137 Oct 11, 2024
5e0653a
fix!: "Forgot Password" e-mail is not translated correctly (#32212)
matheusbsilva137 Oct 11, 2024
af9fe06
chore!: remove deprecated livechat:saveTrigger and livechat:removeTri…
abhinavkrin Oct 11, 2024
8767742
chore!: remove deprecated livechat:requestTranscript and livechat:dis…
abhinavkrin Oct 11, 2024
5642031
chore!: remove deprecated method livechat:saveDepartmentAgents (#33446)
abhinavkrin Oct 11, 2024
8cfdc81
chore!: remove deprecated livechat:getNextAgent method (#33426)
abhinavkrin Oct 11, 2024
f7ff26a
chore!: remove deprecated livechat:setDepartmentForVisitor method (#3…
abhinavkrin Oct 11, 2024
fdfc2ed
chore!: remove deprecated method livechat:registerGuest (#33539)
abhinavkrin Oct 11, 2024
fa501ec
chore!: remove deprecated endpoint livechat/room.visitor (#33461)
abhinavkrin Oct 11, 2024
8865653
chore!: add conditional support to query and fields query params (#33…
ricardogarim Oct 11, 2024
d7f3592
fix!: Only room creator can set the E2EE room key for the first time …
KevLehman Oct 11, 2024
d6b8fc6
upgrade pdfworker
KevLehman Oct 11, 2024
3ea02d3
chore!: remove integration scripts' "Compatible Sandbox" (vm2)
pierre-lehnen-rc Oct 9, 2024
e934ad3
chore: adds external link icon to upgrade button in marketplace heade…
lucas-a-pelegrino Oct 14, 2024
03d1485
feat!: Allow E2EE rooms to reset its room key (#33328)
KevLehman Oct 14, 2024
e30f605
chore!: e2ee mention setting update (#33419)
hugocostadev Oct 15, 2024
9872596
chore: migration to remove redundant indexes (#30918)
sampaiodiego Oct 15, 2024
8c605ab
chore: Recover storybooks (#33565)
tassoevan Oct 15, 2024
13c906f
chore: remove unused modal from app install (#33522)
MartinSchoeler Oct 15, 2024
8598f83
regression: Aligns Learn More link to the left corner of the modal (#…
lucas-a-pelegrino Oct 15, 2024
e1c4767
chore: bump minor deps (#33581)
ggazzo Oct 15, 2024
5acb59b
feat!: renamed voip-related settings (#33434)
aleksandernsilva Oct 15, 2024
dd69fc1
refactor: Drop obsolete portals module (#33580)
tassoevan Oct 15, 2024
7697002
chore: Remove unused stuff related to Storybook (#33588)
tassoevan Oct 15, 2024
fb71cc5
chore!: make tags table component stop to use fields query param (#33…
ricardogarim Oct 15, 2024
53cc111
feat!: E2EE room's `Key` icon no longer toggles encryption of room (#…
KevLehman Oct 15, 2024
0d146f7
refactor(i18n): Use i18next API to get a fixed t-function (#33586)
tassoevan Oct 16, 2024
599079d
chore!: make livechat units table component stop to use fields query …
ricardogarim Oct 16, 2024
f23df1b
chore: Replace `webpack` with `webpack-cli` in npm scripts (#33600)
tassoevan Oct 16, 2024
26604d4
chore!: make ManagersTable component stop to use fields query param (…
ricardogarim Oct 16, 2024
e40b358
chore!: removed mailer.sendMail mailer:unsubscribe methods (#33358)
abhinavkrin Oct 16, 2024
16079bc
chore: replace esl fork targeted at node14 with the regular esl packa…
pierre-lehnen-rc Oct 16, 2024
de59657
refactor(i18n): Use i18next‘s t-function (#33601)
tassoevan Oct 16, 2024
6e909e6
chore!: remove unused oauth setting (#31102)
hugocostadev Oct 16, 2024
618abb3
fix!: hide archived rooms in room.autocomplete endpoint (#31383)
heitortanoue Oct 16, 2024
1286a3a
chore!: make custom user status pages stop to use query param (#33557)
ricardogarim Oct 16, 2024
f4ea653
chore!: Remove unused dependencies (#33593)
KevLehman Oct 16, 2024
4ae1773
chore!: make integrations stop to use query param (#33558)
ricardogarim Oct 16, 2024
d986b57
chore!: make channels files list stop to use query param (#33564)
ricardogarim Oct 16, 2024
c00aec8
chore!: make useQuery hook stop to use fields query param (#33578)
ricardogarim Oct 16, 2024
d929af7
chore: Revert #31102 (#33612)
yash-rajpal Oct 16, 2024
f314767
chore!: Update default E2EE settings behavior (#33361)
yash-rajpal Oct 16, 2024
a23e699
chore!: make get directory stop to use query param (#33563)
ricardogarim Oct 16, 2024
9662e1a
regression: missing link in AppsUsageCard info (#33571)
MartinSchoeler Oct 17, 2024
7da9ec6
chore!: make custom sounds page stop to use query param (#33499)
MarcosSpessatto Oct 17, 2024
4e1f8ef
feat!: Add permissions to create rooms in teams (#31117)
matheusbsilva137 Oct 17, 2024
53b4acb
skip test
yash-rajpal Oct 17, 2024
44a86bf
fix lint: add space
yash-rajpal Oct 17, 2024
0312349
chore: bump postcss-loader (#33621)
ggazzo Oct 17, 2024
cc28ea2
refactor: Migrate modules to TypeScript (#33620)
tassoevan Oct 17, 2024
a7a7aa5
chore: catch index creation errors (#33627)
sampaiodiego Oct 17, 2024
bed0d40
test: Reset room key (#33611)
KevLehman Oct 17, 2024
d92d8f1
chore: add contact-id-verification and teams-voip modules to bundle *…
ggazzo Oct 17, 2024
4d1ac75
chore: don't set state inside useQuery AppsProvider (#33625)
MartinSchoeler Oct 17, 2024
d8f9c35
chore: make sure appStorage.update updates the correct record (#33632)
sampaiodiego Oct 17, 2024
390901e
regression: marketplace header fixes (#33626)
MartinSchoeler Oct 17, 2024
c314bb6
fix: stop app propagation during startup (#33633)
ggazzo Oct 17, 2024
f63d8e2
chore: remove query field on channels listing (#33623)
ricardogarim Oct 17, 2024
b338807
feat!: Implement Cloud communication reliability (#32856)
Gustrb Oct 17, 2024
8670b57
chore!: remove migrations from 5.x (#33619)
ggazzo Oct 17, 2024
7726d68
feat(sci): Restrict livechat visitors to their source type scope (#33…
matheusbsilva137 Oct 18, 2024
e3629e0
feat: add setting to map an ldap attribute to the user's voice extens…
pierre-lehnen-rc Oct 18, 2024
15b6f4b
regression: Disable marketplace apps on license removal or downgrade …
matheusbsilva137 Oct 18, 2024
d44f614
fix!: Login services button colors (#33333)
yash-rajpal Oct 18, 2024
d879c8b
fix: E2EE not rendering new navigation feature preview (#33631)
hugocostadev Oct 18, 2024
f835e35
chore!: remove query field on online channels listing (#33646)
ricardogarim Oct 18, 2024
509143d
feat!: shrink payload of the startImport endpoint (#33630)
pierre-lehnen-rc Oct 18, 2024
0e00975
chore: patches mongodb to make ts task less expensive (#33639)
ggazzo Oct 18, 2024
916e205
chore: bump babel (#33535)
ggazzo Oct 18, 2024
94a1119
chore: sync latest Apps-engine alpha (#33649)
d-gubert Oct 18, 2024
4aa731d
chore!: e2ee settings update and removing beta wording (#33605)
hugocostadev Oct 18, 2024
2806cb5
feat: E2EE room key reset modal (#33503)
hugocostadev Oct 18, 2024
81998f3
feat: license add-ons (external modules) (#33433)
d-gubert Oct 18, 2024
687f1ef
feat(ui-kit): added accessory to CalloutBlock (#33528)
ggazzo Oct 18, 2024
019a69a
fix: message toolbar e2ee not decrypted (#33652)
hugocostadev Oct 18, 2024
15582b1
chore!: remove query field on online groups listing (#33647)
ricardogarim Oct 18, 2024
bd64aed
chore: use a separate license module for team collab VoIP and omnicha…
pierre-lehnen-rc Oct 18, 2024
9274cf4
feat: collapse sidebar groups (#33592)
juliajforesti Oct 18, 2024
4692150
chore: move to `matrix-*` (#33525)
ggazzo Oct 18, 2024
10ee065
regression: Move WorkspaceCredentials models to CE (#33657)
yash-rajpal Oct 18, 2024
34ed9ad
feat: show Recent chats on the new sidebar (#33489)
juliajforesti Oct 18, 2024
42143e2
ci: don't run workflow when docs are updated (#33645)
debdutdeb Oct 18, 2024
e3dac4a
feat: marketplace add-on components (#33483)
tiagoevanp Oct 18, 2024
274a89b
chore!: Change default Docker flavor to Alpine (#28042)
sampaiodiego Oct 18, 2024
634a6a5
ci: cache `matrix-rust-sdk-crypto-nodejs` (#33673)
ggazzo Oct 18, 2024
f33c07e
feat!: apply restrictions to air gapped environments (#33241)
MarcosSpessatto Oct 19, 2024
f4365b7
chore!: remove query field on custom emojis listing (#33650)
ricardogarim Oct 19, 2024
429d000
feat: Trace api calls (#32779)
rodrigok Oct 19, 2024
085fa5e
chore: Update typescript to 5.6 (#33665)
KevLehman Oct 19, 2024
1421f25
chore: add extra log to `No broker set to broadcast`
ggazzo Oct 19, 2024
5f3ae1c
regression: server randomly failing on startup (#33675)
ggazzo Oct 19, 2024
6acbadc
chore: remove allowed routes for query and fields (#33622)
ricardogarim Oct 19, 2024
82d8d52
regression: fix changeset typo
ggazzo Oct 20, 2024
7957a44
ci: onlyUpdatePeerDependentsWhenOutOfRange to avoid major bumps
ggazzo Oct 20, 2024
95b0f87
Release 7.0.0-rc.0
rocketchat-github-ci Oct 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: sync latest Apps-engine alpha (#33649)
  • Loading branch information
d-gubert authored Oct 18, 2024
commit 94a1119bc707a97ce538f5a2ee4fbac772f8b22d
20 changes: 20 additions & 0 deletions packages/apps-engine/src/definition/accessors/IRoomRead.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,24 @@ export interface IRoomRead {
* @returns a list of the users with the leader role in the room
*/
getLeaders(roomId: string): Promise<Array<IUser>>;

/**
* Retrieves an array of unread messages for a specific user in a specific room.
*
* @param roomId The unique identifier of the room from which to retrieve unread messages.
* @param uid The unique identifier of the user for whom to retrieve unread messages.
* @param options Optional parameters for retrieving messages:
* - limit: The maximum number of messages to retrieve. If more than 100 is passed, it defaults to 100.
* - skip: The number of messages to skip (for pagination).
* - sort: An object defining the sorting order of the messages. Each key is a field to sort by, and the value is either 'asc' for ascending order or 'desc' for descending order.
* @returns A Promise that resolves to an array of IMessage objects representing the unread messages for the specified user in the specified room.
*/
getUnreadByUser(roomId: string, uid: string, options?: Partial<GetMessagesOptions>): Promise<IMessageRaw[]>;

/**
* Gets the user's unread messages count in a room.
* @param roomId room's id
* @param uid user's id
*/
getUserUnreadMessageCount(roomId: string, uid: string): Promise<number>;
}
22 changes: 22 additions & 0 deletions packages/apps-engine/src/server/accessors/RoomRead.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,28 @@ export class RoomRead implements IRoomRead {
return this.roomBridge.doGetLeaders(roomId, this.appId);
}

public async getUnreadByUser(roomId: string, uid: string, options: Partial<GetMessagesOptions> = {}): Promise<IMessageRaw[]> {
const { limit = 100, sort = { createdAt: 'asc' }, skip = 0 } = options;

if (typeof roomId !== 'string' || roomId.trim().length === 0) {
throw new Error('Invalid roomId: must be a non-empty string');
}

if (!Number.isFinite(limit) || limit <= 0 || limit > 100) {
throw new Error(`Invalid limit provided. Expected number between 1 and 100, got ${limit}`);
}

this.validateSort(sort);

const completeOptions: GetMessagesOptions = { limit, sort, skip };

return this.roomBridge.doGetUnreadByUser(roomId, uid, completeOptions, this.appId);
}

public getUserUnreadMessageCount(roomId: string, uid: string): Promise<number> {
return this.roomBridge.doGetUserUnreadMessageCount(roomId, uid, this.appId);
}

// If there are any invalid fields or values, throw
private validateSort(sort: Record<string, unknown>) {
Object.entries(sort).forEach(([key, value]) => {
Expand Down
16 changes: 16 additions & 0 deletions packages/apps-engine/src/server/bridges/RoomBridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,18 @@ export abstract class RoomBridge extends BaseBridge {
}
}

public async doGetUnreadByUser(roomId: string, uid: string, options: GetMessagesOptions, appId: string): Promise<IMessageRaw[]> {
if (this.hasReadPermission(appId)) {
return this.getUnreadByUser(roomId, uid, options, appId);
}
}

public async doGetUserUnreadMessageCount(roomId: string, uid: string, appId: string): Promise<number> {
if (this.hasReadPermission(appId)) {
return this.getUserUnreadMessageCount(roomId, uid, appId);
}
}

protected abstract create(room: IRoom, members: Array<string>, appId: string): Promise<string>;

protected abstract getById(roomId: string, appId: string): Promise<IRoom>;
Expand Down Expand Up @@ -147,6 +159,10 @@ export abstract class RoomBridge extends BaseBridge {

protected abstract removeUsers(roomId: string, usernames: Array<string>, appId: string): Promise<void>;

protected abstract getUnreadByUser(roomId: string, uid: string, options: GetMessagesOptions, appId: string): Promise<IMessageRaw[]>;

protected abstract getUserUnreadMessageCount(roomId: string, uid: string, appId: string): Promise<number>;

private hasWritePermission(appId: string): boolean {
if (AppPermissionManager.hasPermission(appId, AppPermissions.room.write)) {
return true;
Expand Down
4 changes: 2 additions & 2 deletions packages/apps-engine/src/server/bridges/UserBridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export abstract class UserBridge extends BaseBridge {

public async doGetUserUnreadMessageCount(uid: string, appId: string): Promise<number> {
if (this.hasReadPermission(appId)) {
return this.getUserUnreadMessageCount(uid);
return this.getUserUnreadMessageCount(uid, appId);
}
}

Expand All @@ -65,7 +65,7 @@ export abstract class UserBridge extends BaseBridge {

protected abstract getActiveUserCount(): Promise<number>;

protected abstract getUserUnreadMessageCount(uid: string): Promise<number>;
protected abstract getUserUnreadMessageCount(uid: string, appId: string): Promise<number>;

/**
* Creates a user.
Expand Down
18 changes: 10 additions & 8 deletions packages/apps-engine/src/server/managers/AppListenerManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ import type {
IUIKitIncomingInteractionMessageContainer,
IUIKitIncomingInteractionModalContainer,
} from '../../definition/uikit/UIKitIncomingInteractionContainer';
import type { IUIKitLivechatIncomingInteraction } from '../../definition/uikit/livechat';
import { UIKitLivechatBlockInteractionContext } from '../../definition/uikit/livechat';
import type { IUIKitLivechatBlockIncomingInteraction, IUIKitLivechatIncomingInteraction } from '../../definition/uikit/livechat';
import type { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';
import type { IUser, IUserContext, IUserStatusContext, IUserUpdateContext } from '../../definition/users';
import type { AppManager } from '../AppManager';
Expand Down Expand Up @@ -1016,14 +1015,17 @@ export class AppListenerManager {

const app = this.manager.getOneById(appId);

const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitLivechatIncomingInteraction) => {
const { actionId, message, visitor, room, triggerId, container } = interactionData;
const interactionData = ((
interactionType: UIKitIncomingInteractionType,
interaction: IUIKitLivechatIncomingInteraction,
): IUIKitLivechatBlockIncomingInteraction => {
const { actionId, message, visitor, room, triggerId, container } = interaction;

switch (interactionType) {
case UIKitIncomingInteractionType.BLOCK: {
const { value, blockId } = interactionData.payload as { value: string; blockId: string };
const { value, blockId } = interaction.payload as { value: string; blockId: string };

return new UIKitLivechatBlockInteractionContext({
return {
appId,
actionId,
blockId,
Expand All @@ -1033,12 +1035,12 @@ export class AppListenerManager {
value,
message,
container: container as IUIKitIncomingInteractionModalContainer | IUIKitIncomingInteractionMessageContainer,
});
};
}
}
})(type, data);

return app.call(method, interactionContext);
return app.call(method, interactionData);
}

// Livechat
Expand Down
21 changes: 21 additions & 0 deletions packages/apps-engine/tests/server/accessors/RoomRead.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,27 @@ export class RoomReadAccessorTestFixture {

private messages: IMessageRaw[];

private unreadRoomId: string;

private unreadUserId: string;

private mockRoomBridgeWithRoom: RoomBridge;

@SetupFixture
public setupFixture() {
this.room = TestData.getRoom();
this.user = TestData.getUser();
this.messages = ['507f1f77bcf86cd799439011', '507f191e810c19729de860ea'].map((id) => TestData.getMessageRaw(id));
this.unreadRoomId = this.messages[0].roomId;
this.unreadUserId = this.messages[0].sender._id;

const theRoom = this.room;
const theUser = this.user;
const theMessages = this.messages;

const theUnreadMsg = this.messages;
const { unreadRoomId } = this;
const { unreadUserId } = this;
this.mockRoomBridgeWithRoom = {
doGetById(id, appId): Promise<IRoom> {
return Promise.resolve(theRoom);
Expand All @@ -47,6 +57,12 @@ export class RoomReadAccessorTestFixture {
doGetMessages(roomId, options, appId): Promise<IMessageRaw[]> {
return Promise.resolve(theMessages);
},
doGetUnreadByUser(roomId, uid, options, appId): Promise<IMessageRaw[]> {
if (roomId === unreadRoomId && uid === unreadUserId) {
return Promise.resolve(theUnreadMsg);
}
return Promise.resolve([]);
},
} as RoomBridge;
}

Expand All @@ -68,6 +84,11 @@ export class RoomReadAccessorTestFixture {
Expect(await rr.getDirectByUsernames([this.user.username])).toBe(this.room);
Expect(await rr.getMessages('testing')).toBeDefined();
Expect(await rr.getMessages('testing')).toBe(this.messages);
Expect(await rr.getUnreadByUser(this.unreadRoomId, this.unreadUserId)).toBeDefined();
Expect(await rr.getUnreadByUser(this.unreadRoomId, this.unreadUserId)).toEqual(this.messages);

Expect(await rr.getUnreadByUser('fake', 'fake')).toBeDefined();
Expect(await rr.getUnreadByUser('fake', 'fake')).toEqual([]);
}

@AsyncTest()
Expand Down
8 changes: 8 additions & 0 deletions packages/apps-engine/tests/test-data/bridges/roomBridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,12 @@ export class TestsRoomBridge extends RoomBridge {
public removeUsers(roomId: string, usernames: string[], appId: string): Promise<void> {
throw new Error('Method not implemented');
}

public getUnreadByUser(roomId: string, uid: string, options: GetMessagesOptions, appId: string): Promise<IMessageRaw[]> {
throw new Error('Method not implemented.');
}

protected getUserUnreadMessageCount(roomId: string, uid: string, appId: string): Promise<number> {
throw new Error('Method not implemented.');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class TestsUserBridge extends UserBridge {
throw new Error('Method not implemented');
}

protected getUserUnreadMessageCount(uid: string): Promise<number> {
protected getUserUnreadMessageCount(uid: string, appId: string): Promise<number> {
throw new Error('Method not implemented.');
}

Expand Down
Loading