Skip to content

chore!: remove Atlassian Crowd integration - #41986

Merged
dionisio-bot[bot] merged 1 commit into
release-9.0.0from
chore/remove-atlassian-crowd
Aug 31, 2026
Merged

chore!: remove Atlassian Crowd integration#41986
dionisio-bot[bot] merged 1 commit into
release-9.0.0from
chore/remove-atlassian-crowd

Conversation

@KevLehman

@KevLehman KevLehman commented Aug 28, 2026

Copy link
Copy Markdown
Member

Proposed changes (including videos or screenshots)

Removes the first-party Atlassian Crowd integration from core, targeting 9.0.0 (breaking). Atlassian has announced Crowd's end-of-life (Server support ended Feb 2024; Data Center: no new licences from 30 Mar 2026, read-only on 28 Mar 2029), usage is marginal, and the LDAP integration covers the same need — Crowd itself exposes an LDAP interface.

What is removed:

  • Settings: the AtlassianCrowd group and all CROWD_* settings (server/settings/crowd.ts), including the Test Connection / Sync Users action settings. The Admin → Settings → Atlassian Crowd section disappears with them; the admin/settings/AtlassianCrowd deep link falls into the settings page's existing not-found handling.
  • Login handler: Accounts.registerLoginHandler('crowd') and the client Meteor.loginWithCrowd wiring. A login request with crowd: true is now rejected by Meteor's accounts system with a handled "Unrecognized options for login request" 400 error.
  • Meteor methods: crowd_test_connection and crowd_sync_users.
  • User-sync job: the CROWD_Sync cron job and its settings watcher.
  • Dependency: atlassian-crowd-patched and its ambient type declaration.
  • Model API: Users.findCrowdUsers (only consumer was the sync job).
  • Client: Crowd branch in AuthenticationProvider login-method selection and the LDAP/Crowd collision warning hook.
  • i18n: all Crowd keys plus now-orphaned Clean_Usernames, Sync_Users, Sync_Interval and every_10_minutes keys across all locales.

Migration v342 deletes the stored CROWD_*/AtlassianCrowd settings and any scheduled CROWD_Sync job document from rocketchat_cron, so upgraded workspaces have no orphaned admin entries or scheduled jobs.

Crowd-provisioned users keep their accounts, profile data, roles and room memberships (crowd/crowd_username fields are left on user documents as inert data). They must sign in through another method: LDAP (pointed at Crowd or the directory behind it), or local password via the "Forgot password" flow. Workspaces where Crowd was the only auth path should follow the upgrade guide's recovery route (existing local admin credentials / password reset / re-provisioning via LDAP) — docs update tracked with the release notes.

Issue(s)

Steps to test or reproduce

  1. On a pre-9.0 workspace, enable Crowd (CROWD_Enable, sync on) so CROWD_* settings and a CROWD_Sync job exist.
  2. Upgrade to this branch: Admin → Settings no longer lists Atlassian Crowd, admin/settings/AtlassianCrowd resolves to not-found, db.rocketchat_settings.find({_id: /^CROWD_/}) and db.rocketchat_cron.find({name: 'CROWD_Sync'}) are empty.
  3. Attempt a login with a crowd: true login request — clean 400 error, no 500/hang.
  4. Existing Crowd-provisioned users remain active and can sign in via LDAP or password reset.

Further comments

https://rocketchat.atlassian.net/browse/CORE-2647

Review in cubic

Summary by CodeRabbit

  • Breaking Changes

    • Removed Atlassian Crowd authentication and user synchronization.
    • Removed the Atlassian Crowd settings section and related configuration options.
    • Existing Crowd-provisioned accounts are retained, but must use another sign-in method, such as LDAP or password reset.
  • Bug Fixes

    • Upgrades automatically remove obsolete Crowd settings and scheduled synchronization jobs.
  • Documentation

    • Updated documentation and translations to remove Atlassian Crowd references.

@dionisio-bot

dionisio-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@changeset-bot

changeset-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5a20f70

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 37 packages
Name Type
@rocket.chat/model-typings Major
@rocket.chat/meteor Major
@rocket.chat/models Major
@rocket.chat/i18n Major
@rocket.chat/apps Patch
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/presence-service Patch
@rocket.chat/queue-worker Patch
@rocket.chat/omnichannel-services Patch
rocketchat-services Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/instance-status Patch
@rocket.chat/omni-core Patch
@rocket.chat/server-fetch Patch
@rocket.chat/ui-client Major
@rocket.chat/abac Patch
@rocket.chat/federation-matrix Patch
@rocket.chat/media-calls Patch
@rocket.chat/omni-core-ee Patch
@rocket.chat/presence Patch
@rocket.chat/mock-providers Patch
@rocket.chat/ui-contexts Major
@rocket.chat/web-ui-registration Major
@rocket.chat/uikit-playground Patch
@rocket.chat/fuselage-ui-kit Major
@rocket.chat/gazzodown Major
@rocket.chat/livechat Patch
@rocket.chat/ui-avatar Major
@rocket.chat/ui-video-conf Major
@rocket.chat/ui-voip Major
@rocket.chat/ui-composer Major
@rocket.chat/core-typings Major
@rocket.chat/rest-typings Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 865e9b33-658f-45f5-acfd-2847f8623702

📥 Commits

Reviewing files that changed from the base of the PR and between 6da9251 and 5a20f70.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (78)
  • .changeset/remove-atlassian-crowd.md
  • apps/meteor/client/meteor/login/crowd.ts
  • apps/meteor/client/meteor/login/index.ts
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
  • apps/meteor/client/providers/AuthenticationProvider/hooks/useLDAPAndCrowdCollisionWarning.ts
  • apps/meteor/definition/externals/atlassian-crowd-patched.d.ts
  • apps/meteor/package.json
  • apps/meteor/server/importPackages.ts
  • apps/meteor/server/lib/auth-providers/crowd/crowd.ts
  • apps/meteor/server/lib/auth-providers/crowd/logger.ts
  • apps/meteor/server/meteor-methods/auth/crowd.ts
  • apps/meteor/server/meteor-methods/index.ts
  • apps/meteor/server/settings/crowd.ts
  • apps/meteor/server/settings/definitions.ts
  • apps/meteor/server/startup/migrations/index.ts
  • apps/meteor/server/startup/migrations/v342.ts
  • apps/meteor/tests/end-to-end/api/http-response-truncation.ts
  • docs/backend-folder-structure.md
  • packages/i18n/src/locales/af.i18n.json
  • packages/i18n/src/locales/ar.i18n.json
  • packages/i18n/src/locales/az.i18n.json
  • packages/i18n/src/locales/be-BY.i18n.json
  • packages/i18n/src/locales/bg.i18n.json
  • packages/i18n/src/locales/bs.i18n.json
  • packages/i18n/src/locales/ca.i18n.json
  • packages/i18n/src/locales/cs.i18n.json
  • packages/i18n/src/locales/cy.i18n.json
  • packages/i18n/src/locales/da.i18n.json
  • packages/i18n/src/locales/de-AT.i18n.json
  • packages/i18n/src/locales/de-IN.i18n.json
  • packages/i18n/src/locales/de.i18n.json
  • packages/i18n/src/locales/el.i18n.json
  • packages/i18n/src/locales/en.i18n.json
  • packages/i18n/src/locales/eo.i18n.json
  • packages/i18n/src/locales/es.i18n.json
  • packages/i18n/src/locales/fa.i18n.json
  • packages/i18n/src/locales/fi.i18n.json
  • packages/i18n/src/locales/fr.i18n.json
  • packages/i18n/src/locales/he.i18n.json
  • packages/i18n/src/locales/hi-IN.i18n.json
  • packages/i18n/src/locales/hr.i18n.json
  • packages/i18n/src/locales/hu.i18n.json
  • packages/i18n/src/locales/id.i18n.json
  • packages/i18n/src/locales/it.i18n.json
  • packages/i18n/src/locales/ja.i18n.json
  • packages/i18n/src/locales/ka-GE.i18n.json
  • packages/i18n/src/locales/km.i18n.json
  • packages/i18n/src/locales/ko.i18n.json
  • packages/i18n/src/locales/ku.i18n.json
  • packages/i18n/src/locales/lo.i18n.json
  • packages/i18n/src/locales/lt.i18n.json
  • packages/i18n/src/locales/lv.i18n.json
  • packages/i18n/src/locales/mn.i18n.json
  • packages/i18n/src/locales/ms-MY.i18n.json
  • packages/i18n/src/locales/nb.i18n.json
  • packages/i18n/src/locales/nl.i18n.json
  • packages/i18n/src/locales/nn.i18n.json
  • packages/i18n/src/locales/pl.i18n.json
  • packages/i18n/src/locales/pt-BR.i18n.json
  • packages/i18n/src/locales/pt.i18n.json
  • packages/i18n/src/locales/ro.i18n.json
  • packages/i18n/src/locales/ru.i18n.json
  • packages/i18n/src/locales/sk-SK.i18n.json
  • packages/i18n/src/locales/sl-SI.i18n.json
  • packages/i18n/src/locales/sq.i18n.json
  • packages/i18n/src/locales/sr.i18n.json
  • packages/i18n/src/locales/sv.i18n.json
  • packages/i18n/src/locales/ta-IN.i18n.json
  • packages/i18n/src/locales/th-TH.i18n.json
  • packages/i18n/src/locales/tr.i18n.json
  • packages/i18n/src/locales/ug.i18n.json
  • packages/i18n/src/locales/uk.i18n.json
  • packages/i18n/src/locales/vi-VN.i18n.json
  • packages/i18n/src/locales/zh-HK.i18n.json
  • packages/i18n/src/locales/zh-TW.i18n.json
  • packages/i18n/src/locales/zh.i18n.json
  • packages/model-typings/src/models/IUsersModel.ts
  • packages/models/src/models/Users.ts
💤 Files with no reviewable changes (72)
  • packages/i18n/src/locales/el.i18n.json
  • apps/meteor/definition/externals/atlassian-crowd-patched.d.ts
  • packages/i18n/src/locales/ug.i18n.json
  • packages/i18n/src/locales/ms-MY.i18n.json
  • packages/i18n/src/locales/mn.i18n.json
  • packages/i18n/src/locales/ta-IN.i18n.json
  • packages/i18n/src/locales/id.i18n.json
  • packages/i18n/src/locales/sl-SI.i18n.json
  • packages/i18n/src/locales/sk-SK.i18n.json
  • packages/i18n/src/locales/sr.i18n.json
  • packages/i18n/src/locales/sq.i18n.json
  • packages/i18n/src/locales/da.i18n.json
  • packages/i18n/src/locales/bg.i18n.json
  • packages/i18n/src/locales/zh-TW.i18n.json
  • apps/meteor/server/meteor-methods/index.ts
  • packages/model-typings/src/models/IUsersModel.ts
  • packages/i18n/src/locales/tr.i18n.json
  • packages/i18n/src/locales/de-IN.i18n.json
  • apps/meteor/server/importPackages.ts
  • packages/i18n/src/locales/lv.i18n.json
  • packages/i18n/src/locales/he.i18n.json
  • packages/i18n/src/locales/zh-HK.i18n.json
  • packages/i18n/src/locales/fr.i18n.json
  • packages/models/src/models/Users.ts
  • packages/i18n/src/locales/lt.i18n.json
  • packages/i18n/src/locales/cs.i18n.json
  • packages/i18n/src/locales/fa.i18n.json
  • packages/i18n/src/locales/nb.i18n.json
  • apps/meteor/server/settings/crowd.ts
  • packages/i18n/src/locales/bs.i18n.json
  • packages/i18n/src/locales/nn.i18n.json
  • apps/meteor/server/lib/auth-providers/crowd/logger.ts
  • packages/i18n/src/locales/ku.i18n.json
  • apps/meteor/server/settings/definitions.ts
  • apps/meteor/client/meteor/login/index.ts
  • apps/meteor/client/providers/AuthenticationProvider/hooks/useLDAPAndCrowdCollisionWarning.ts
  • packages/i18n/src/locales/ca.i18n.json
  • apps/meteor/package.json
  • packages/i18n/src/locales/pt.i18n.json
  • packages/i18n/src/locales/ar.i18n.json
  • packages/i18n/src/locales/it.i18n.json
  • packages/i18n/src/locales/hr.i18n.json
  • packages/i18n/src/locales/eo.i18n.json
  • packages/i18n/src/locales/en.i18n.json
  • packages/i18n/src/locales/uk.i18n.json
  • packages/i18n/src/locales/cy.i18n.json
  • packages/i18n/src/locales/ka-GE.i18n.json
  • packages/i18n/src/locales/pt-BR.i18n.json
  • packages/i18n/src/locales/lo.i18n.json
  • packages/i18n/src/locales/pl.i18n.json
  • packages/i18n/src/locales/es.i18n.json
  • apps/meteor/server/meteor-methods/auth/crowd.ts
  • packages/i18n/src/locales/az.i18n.json
  • apps/meteor/client/meteor/login/crowd.ts
  • apps/meteor/server/lib/auth-providers/crowd/crowd.ts
  • packages/i18n/src/locales/fi.i18n.json
  • packages/i18n/src/locales/ro.i18n.json
  • packages/i18n/src/locales/sv.i18n.json
  • packages/i18n/src/locales/ko.i18n.json
  • packages/i18n/src/locales/hu.i18n.json
  • packages/i18n/src/locales/ru.i18n.json
  • packages/i18n/src/locales/be-BY.i18n.json
  • packages/i18n/src/locales/ja.i18n.json
  • packages/i18n/src/locales/af.i18n.json
  • packages/i18n/src/locales/km.i18n.json
  • packages/i18n/src/locales/nl.i18n.json
  • packages/i18n/src/locales/th-TH.i18n.json
  • packages/i18n/src/locales/hi-IN.i18n.json
  • packages/i18n/src/locales/de.i18n.json
  • packages/i18n/src/locales/vi-VN.i18n.json
  • packages/i18n/src/locales/zh.i18n.json
  • packages/i18n/src/locales/de-AT.i18n.json

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (2)
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: Hacktron Security Check
🧰 Additional context used
📓 Path-based instructions (2)
The main Rocket.Chat Meteor application resides in `apps/meteor/`; place its application code there rather than in other monorepo areas.

📄 CodeRabbit inference engine (CLAUDE.md)

Files:

  • apps/meteor/server/startup/migrations/v342.ts
  • apps/meteor/tests/end-to-end/api/http-response-truncation.ts
  • apps/meteor/server/startup/migrations/index.ts
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

Files:

  • apps/meteor/server/startup/migrations/v342.ts
  • apps/meteor/tests/end-to-end/api/http-response-truncation.ts
  • apps/meteor/server/startup/migrations/index.ts
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
🪛 LanguageTool
docs/backend-folder-structure.md

[uncategorized] ~71-~71: The official name of this software platform is spelled with a capital “H”.
Context: ...om-oauth/, oauth/(core OAuth glue),github.ts, gitlab.ts, google.js, wordpre...

(GITHUB)


[uncategorized] ~71-~71: The official name of this content management system is spelled with a capital “P”.
Context: ... github.ts, gitlab.ts, google.js, wordpress.ts, … | | saml/, cas/, ldap/, `2...

(WORDPRESS)

🔇 Additional comments (6)
apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx (1)

9-9: LGTM!

Also applies to: 62-62

apps/meteor/tests/end-to-end/api/http-response-truncation.ts (1)

28-28: LGTM!

docs/backend-folder-structure.md (1)

71-71: LGTM!

apps/meteor/server/startup/migrations/index.ts (1)

50-50: LGTM!

apps/meteor/server/startup/migrations/v342.ts (1)

1-13: LGTM!

.changeset/remove-atlassian-crowd.md (1)

1-8: LGTM!


Walkthrough

Atlassian Crowd authentication, synchronization, settings, model APIs, dependency wiring, and translations were removed. Migration v342 deletes related settings and scheduled jobs. The changeset documents major version updates and retained user accounts.

Changes

Atlassian Crowd removal

Layer / File(s) Summary
Runtime authentication and synchronization removal
apps/meteor/client/..., apps/meteor/server/..., apps/meteor/package.json, apps/meteor/tests/..., docs/backend-folder-structure.md
The Crowd login helpers, provider, settings, Meteor methods, startup imports, dependency, type declaration, and documentation entry were removed. LDAP and password login remain as the authentication choices.
Upgrade migration and model cleanup
apps/meteor/server/startup/migrations/..., packages/model-typings/src/models/IUsersModel.ts, packages/models/src/models/Users.ts
Migration v342 deletes Crowd settings and the CROWD_Sync job. Crowd-specific user lookup APIs were removed.
Release metadata and localization cleanup
.changeset/remove-atlassian-crowd.md, packages/i18n/src/locales/*
The changeset declares major package updates and documents retained user data. Crowd-related translation keys were removed from the locale files.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: 🔵 Low · up to 5a20f

This breaking change removes Crowd authentication and deletes its stored settings and scheduled synchronization during upgrade. It is mergeable with explicit owner awareness that overlapping old and new application instances could temporarily operate against state being removed, so rollout sequencing should be confirmed.

Suggested labels: type: chore

Suggested reviewers: cardoso

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the primary change: removal of the Atlassian Crowd integration. The ! correctly signals a breaking change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 4…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 4 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Warning

Errors were encountered while retrieving linked issues.

Errors (1)
  • JIRA integration encountered authorization issues. Please disconnect and reconnect the integration in the CodeRabbit UI.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Atlassian is winding Crowd down and the LDAP integration covers
directory-backed authentication (Crowd itself exposes an LDAP
interface). Removes the CROWD_* settings and admin section, the crowd
login handler, the crowd_test_connection/crowd_sync_users methods, the
background user-sync cron job, the atlassian-crowd-patched dependency
and related i18n strings. A migration deletes the stored settings and
any scheduled CROWD_Sync job on upgrade; users provisioned through
Crowd keep their accounts.
@KevLehman
KevLehman force-pushed the chore/remove-atlassian-crowd branch from 05d4497 to 5a20f70 Compare August 28, 2026 15:09
@KevLehman KevLehman added this to the 9.0.0 milestone Aug 28, 2026
@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 25.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.74%. Comparing base (6da9251) to head (5a20f70).
⚠️ Report is 1 commits behind head on release-9.0.0.

Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                @@
##           release-9.0.0   #41986      +/-   ##
=================================================
+ Coverage          69.64%   69.74%   +0.10%     
=================================================
  Files               4253     4250       -3     
  Lines             169240   169013     -227     
  Branches           30139    30129      -10     
=================================================
+ Hits              117873   117885      +12     
+ Misses             46186    45967     -219     
+ Partials            5181     5161      -20     
Flag Coverage Δ
e2e 59.31% <0.00%> (-0.03%) ⬇️
e2e-api 46.71% <33.33%> (+0.21%) ⬆️
unit 71.31% <ø> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@KevLehman
KevLehman marked this pull request as ready for review August 28, 2026 16:26
@KevLehman
KevLehman requested review from a team as code owners August 28, 2026 16:26

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 79 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .changeset/remove-atlassian-crowd.md
@tassoevan tassoevan added the stat: QA assured Means it has been tested and approved by a company insider label Aug 31, 2026
@dionisio-bot dionisio-bot Bot added the stat: ready to merge PR tested and approved waiting for merge label Aug 31, 2026
@dionisio-bot
dionisio-bot Bot merged commit 12919a1 into release-9.0.0 Aug 31, 2026
98 of 101 checks passed
@dionisio-bot
dionisio-bot Bot deleted the chore/remove-atlassian-crowd branch August 31, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge type: chore

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants