Skip to content

fix: add English labels for app permissions that had none - #43118

Open
mrityunjay-pandey wants to merge 3 commits into
RocketChat:developfrom
mrityunjay-pandey:fix/app-permission-labels
Open

mrityunjay-pandey wants to merge 3 commits into
RocketChat:developfrom
mrityunjay-pandey:fix/app-permission-labels

Conversation

@mrityunjay-pandey

@mrityunjay-pandey mrityunjay-pandey commented Oct 25, 2026 •

Copy link
Copy Markdown

Proposed changes

AppPermissionsList labels each permission an app asks for with Apps_Permissions_<name> (dots turned into underscores). Sixteen permissions defined in packages/apps-engine/src/definition/metadata/AppPermissions.ts have no such key in en.i18n.json, so the permission review shown when installing or updating an app lists them as raw keys, for example Apps_Permissions_threads_read.

This adds English labels for them, worded after what each one allows in packages/apps/src/server (bridges and managers):

Permission Label
contact.read / contact.write Access / Modify omnichannel contact information
email.send Send emails from this server
livechat-message.multiple Access multiple livechat messages at once
moderation.read / moderation.write Access moderation reports / Report messages and dismiss moderation reports
oauth-app.read / oauth-app.write Access OAuth app information / Create, modify and delete OAuth apps
outbound-communication.provide Provide outbound message channels
role.read / role.write Access role information / Modify roles
threads.read Access thread messages
ui.registerButtons Add action buttons to the UI
video-conference-provider Provide a video conference service
video-conference.read / video-conference.write Access video conference information / Create and modify video conferences

Only en.i18n.json changes; other locales fall back to English until translated (docs/i18n.md).

Issue(s)

No existing issue. Found by comparing every name in AppPermissions with the Apps_Permissions_ keys.

Steps to test or reproduce

Install or update an app whose manifest requests, for example, threads.read or ui.registerButtons: the permission list shows the raw key before this change and the label after it.

appPermissionTranslations.spec.ts checks that every permission in AppPermissions has an English label; the sixteen above fail without this change. yarn workspace @rocket.chat/i18n check passes and the marketplace suites pass (22 suites).

Further comments

The spec builds the key with replaceAll('.', '_'); AppPermissionsList itself still uses replace, which only matters for room.system.view-all and is fixed separately in #43065.

Summary by CodeRabbit

  • Bug Fixes
    • App permission reviews now display readable English labels instead of raw translation keys for permissions related to omnichannel contacts, email, moderation, OAuth apps, messages, roles, threads, UI actions, and video conferences.
    • Added English labels for these app permissions to improve clarity when reviewing access.

@mrityunjay-pandey
mrityunjay-pandey requested a review from a team as a code owner October 25, 2026 08:34
@dionisio-bot

dionisio-bot Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label
  • This PR is missing the required milestone or project

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot

changeset-bot Bot commented Oct 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f0ed1e5

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

This PR includes changesets to release 4 packages
Name Type
@rocket.chat/i18n Patch
@rocket.chat/meteor Patch
@rocket.chat/core-typings Patch
@rocket.chat/rest-typings Patch

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 Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f8e91d39-e612-4b1b-9000-a1896f06e998
Commits

Reviewing files that changed from the base of the PR and between 1826a86 and f0ed1e5.

Files selected for processing: 3
  • .changeset/app-permission-labels.md
  • apps/meteor/client/views/marketplace/helpers/appPermissionTranslations.spec.ts
  • packages/i18n/src/locales/en.i18n.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.

Recent review details
Additional context used
Learnings: 1
Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 38068
File: apps/meteor/tests/data/apps/app-packages/README.md:14-16
Timestamp: 2026-01-08T15:03:59.621Z
Learning: For the RocketChat/Rocket.Chat repository, do not analyze or report formatting issues (such as hard tabs vs spaces, line breaks, etc.). The project relies on automated linting tools to enforce formatting standards.
Additional comments: 1
apps/meteor/client/views/marketplace/helpers/appPermissionTranslations.spec.ts: 1

2-2: 🩺 Stability & Availability

The generated locale is built before Meteor unit tests.

The root testunit script runs Turbo. Turbo requires dependency builds before testunit, and @rocket.chat/meteor declares @rocket.chat/i18n as a workspace dependency. The i18n build generates dist/resources/en.i18n.json, so the new import does not introduce the reported fresh-checkout failure.

Walkthrough

The English locale adds labels for app permissions that previously displayed raw translation keys. A test checks that every AppPermissions value has a corresponding English translation key. A changeset records patch releases for @rocket.chat/i18n and @rocket.chat/meteor.

Changes

App permission labels

Layer / File(s) Summary
Add labels and verify translation coverage
packages/i18n/src/locales/en.i18n.json, apps/meteor/client/views/marketplace/helpers/appPermissionTranslations.spec.ts, .changeset/app-permission-labels.md
The English locale adds labels for app permissions. The test checks for a corresponding English key for every AppPermissions value. The changeset records patch releases for @rocket.chat/i18n and @rocket.chat/meteor.

Priority: Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Possibly related PRs

Suggested labels: type: bug

Suggested reviewers: dougfabris, ggazzo, gabriellsh

Merge Risk: Minimal · up to f0ed1

The added labels and coverage test introduce no established merge-blocking risk. The separate rendering mismatch remains outside this change.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: adding English labels for app permissions that lacked translations.
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 1…
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 1 files. (2 skipped: 2 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@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.

No issues found across 3 files

View guided diff | Re-trigger cubic

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant