Skip to content

Add DCR redirect URI allowlist setting to integrations config docs#8807

Open
Combs7th wants to merge 4 commits intomasterfrom
claude/issue-8806-20260309-2321
Open

Add DCR redirect URI allowlist setting to integrations config docs#8807
Combs7th wants to merge 4 commits intomasterfrom
claude/issue-8806-20260309-2321

Conversation

@Combs7th
Copy link
Contributor

@Combs7th Combs7th commented Mar 9, 2026

Documents the new DCR Redirect URI Allowlist config.json setting and System Console field added in Mattermost server v11.5 for OAuth Dynamic Client Registration (DCR) security (MM-67605).

Closes #8806

Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive documentation for the DCR redirect URI allowlist configuration setting. Documentation includes the setting's purpose, scope, JSON path, applicable environment variables, detailed behaviour descriptions, configuration examples in config.json format, and cross-references to the dynamic client registration feature for administrators.

Documents the new DCRRedirectURIAllowlist config.json setting and
System Console field added in Mattermost server v11.5 for OAuth
Dynamic Client Registration (DCR) security.

Co-authored-by: Combs7th <Combs7th@users.noreply.github.com>
@Combs7th Combs7th changed the base branch from master to v11.5-documentation March 9, 2026 23:35
@Combs7th Combs7th requested review from esethna and nickmisasi March 9, 2026 23:35
@Combs7th Combs7th added 1: Dev Review Requires review by a core commiter 2: Editor Review Requires review by an editor Guidance labels Mar 9, 2026
@Combs7th Combs7th added this to the v11.5.0 milestone Mar 9, 2026
@Combs7th
Copy link
Contributor Author

Combs7th commented Mar 9, 2026

@nickmisasi - Tagging you for dev review. Do the above changes look accurate?

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2026

Newest code from mattermost has been published to preview environment for Git SHA bca8f38

DCR redirect URI allowlist
~~~~~~~~~~~~~~~~~~~~~~~~~~

A list of permitted redirect URIs for OAuth Dynamic Client Registration (DCR). Enter one redirect URI per line. When configured, only OAuth clients that register via the DCR endpoint (``POST /api/v4/oauth/apps/register``) with a redirect URI matching an entry in this list will be accepted. Leave blank to allow any redirect URI.
Copy link
Contributor

Choose a reason for hiding this comment

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

The redirect URI's are comma separated not line separated

@nickmisasi
Copy link
Contributor

There's also a bunch of slack import stuff in here I'm not sure if is intentional. I am not the best person to review those docs

@Combs7th
Copy link
Contributor Author

@claude, please revise the docs update to address the following review feedback:

  • Correct the setting description to say the redirect URIs are comma-separated, not line-separated.
  • Keep the explanation aligned to the actual product behavior.
  • Re-check the unrelated Slack import changes in this doc and confirm whether they are intentional. If they are not required for this PR, remove them from the proposed update.

@claude
Copy link
Contributor

claude bot commented Mar 12, 2026

Claude finished @Combs7th's task in 5m 36s —— View job


Changes completed


Here's a summary of what was done:

Fix: Redirect URI description corrected

In integrations-configuration-settings.rst, both the :description: directive attribute and the body text at line 173 were updated to say comma-separated instead of "Enter one redirect URI per line", aligning with the actual product behavior.

Unrelated changes removed

The two other modified files were changed by unrelated commits that were in the branch history but not part of this PR's scope:

This PR now only contains the DCR redirect URI allowlist documentation changes, as intended.

- Update DCR redirect URI allowlist description to correctly state that
  URIs are comma-separated (not line-separated), addressing review feedback
- Revert migrate-from-slack.rst to its pre-PR state (changes from PR #8741
  are unrelated to this DCR feature and should not be in this PR)
- Revert deprecated-features.rst to its pre-PR state (changes from PR #8804
  are unrelated to this DCR feature and should not be in this PR)

Co-authored-by: Combs7th <Combs7th@users.noreply.github.com>
@github-actions
Copy link
Contributor

Newest code from mattermost has been published to preview environment for Git SHA 0fdaccf

@Combs7th
Copy link
Contributor Author

Combs7th commented Mar 12, 2026

@nickmisasi - I think the 2nd round of corrections that Claude helped with above are likely accurate now. Is there any dev you'd recommend I add here for technical review before we move to Eric for the merging?

@amyblais amyblais requested a review from nickmisasi March 13, 2026 10:00
@amyblais amyblais changed the base branch from v11.5-documentation to master March 16, 2026 06:25
@github-actions
Copy link
Contributor

Newest code from mattermost has been published to preview environment for Git SHA 794bb41

@coderabbitai
Copy link

coderabbitai bot commented Mar 16, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bc3c8e9f-1e37-4cac-9513-bce7aa4b0eca

📥 Commits

Reviewing files that changed from the base of the PR and between 794bb41 and 8fb6656.

📒 Files selected for processing (1)
  • source/administration-guide/configure/integrations-configuration-settings.rst
🚧 Files skipped from review as they are similar to previous changes (1)
  • source/administration-guide/configure/integrations-configuration-settings.rst

📝 Walkthrough

Walkthrough

Documentation additions for a new OAuth Dynamic Client Registration configuration setting called "DCR Redirect URI Allowlist" have been added to the integrations configuration settings guide. The changes describe the setting's purpose, JSON path, environment variable, and allowlist control behaviour.

Changes

Cohort / File(s) Summary
DCR Redirect URI Allowlist Configuration Documentation
source/administration-guide/configure/integrations-configuration-settings.rst
Adds documentation for the new DCR Redirect URI Allowlist configuration setting, including JSON path, environment variable designation, and detailed description of how the allowlist controls OAuth Dynamic Client Registration registrations.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR does not fully meet issue #8806 requirements; it contains unrelated changes to Slack migration and deprecated features docs that require removal, and has unresolved technical inconsistencies regarding comma-separated vs. JSON array format for the allowlist. Remove out-of-scope changes from migrate-from-slack.rst and deprecated-features.rst; resolve the comma-separated/JSON array contradiction; verify alignment with actual server behaviour; remove duplicate documentation blocks.
Out of Scope Changes check ⚠️ Warning The PR includes unrelated changes to source/administration-guide/onboard/migrate-from-slack.rst and source/product-overview/deprecated-features.rst that are unrelated to DCR redirect URI allowlist documentation. Remove all changes from migrate-from-slack.rst and deprecated-features.rst; ensure the diff contains only integrations-configuration-settings.rst modifications for DCR documentation.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: adding documentation for the DCR redirect URI allowlist setting to the integrations configuration settings documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/issue-8806-20260309-2321
📝 Coding Plan
  • Generate coding plan for human review comments

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 and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
source/administration-guide/onboard/migrate-from-slack.rst (1)

10-468: ⚠️ Potential issue | 🟠 Major

This file’s changes are out of scope for the DCR allowlist PR.

These migration-guide edits should be moved to a separate PR. Keeping them here makes technical review harder and conflicts with the stated objective to focus on the new integrations config setting.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@source/administration-guide/onboard/migrate-from-slack.rst` around lines 10 -
468, The changes to the Slack migration guide are out of scope for the DCR
allowlist PR; revert or remove the edits in the migrate-from-slack.rst document
from this branch and put them into a separate PR focused on documentation
updates (keep the current PR limited to the new integrations config setting).
Locate the edits by the top-level headings/anchors such as "Migrations Steps",
".. _preparations:", and the "Export Slack data"/"Transform the export for
Mattermost" sections, revert those changes here, and create a new branch/PR
containing only the migration-guide modifications so reviewers can evaluate them
independently.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@source/administration-guide/configure/integrations-configuration-settings.rst`:
- Around line 159-162: Remove the duplicate informational note in the
Integration Management section by keeping a single instance of the note text
"Cloud admins can't modify this configuration setting." and deleting the other
occurrence(s) (the duplicate ".. note:: Cloud admins can't modify this
configuration setting." entries) so the section contains only one note with that
exact wording.
- Around line 168-179: The doc text is inconsistent about the
DCRRedirectURIAllowlist format (says "comma-separated list" but shows a JSON
array); update the DCR redirect URI allowlist section and the example so they
match the server's actual config format for DCRRedirectURIAllowlist (either a
single comma-separated string or a JSON array of strings). Locate references to
DCRRedirectURIAllowlist and the paragraph starting "A comma-separated list..."
and either: (a) change the prose to describe the JSON array format and show the
example as "DCRRedirectURIAllowlist": ["https://...","https://..."], or (b)
change the prose to describe a comma-separated string and show the example as
"DCRRedirectURIAllowlist": "https://...,https://..."; also ensure you mention
that leaving it blank allows any redirect URI and that this setting only applies
when enable dynamic client registration is enabled.

In `@source/administration-guide/onboard/migrate-from-slack.rst`:
- Around line 26-27: Replace inconsistent tool-name variants by using the actual
canonical executable/package name everywhere—change occurrences of
"slack_advanced_exporter" and "slack-advanced-exporter" to a single standardized
form (the real package/executable name) in the document; update both the
instance on the download instruction (currently showing
``slack_advanced_exporter``) and the other occurrences referenced (lines
~161-169) so commands and prose use the exact same token.
- Around line 75-76: Fix the spelling and grammar regressions in the migration
guide by correcting the misspelled words shown in the diff and comment: change
"necesary" to "necessary", "enought" to "enough", "additioanl" to "additional",
"authenticatation" to "authentication", "conderations" to "considerations",
"associate export reflect" to the intended phrasing (e.g., "associated export
reflects"), "looks for" to the correct tense if needed, "Stared" to "Started",
and "Converations" to "Conversations"; apply the same corrections in the other
affected passages referenced (lines noted in the review: 85-86, 134-135,
365-366, 375-379, 426-427, 466-469) and proofread surrounding sentences for
minor grammar fixes so the sentences read naturally and consistently throughout
the document.

In `@source/product-overview/deprecated-features.rst`:
- Around line 6-7: Revert the unintended heading change in
deprecated-features.rst by undoing the edit that replaced or altered the
"Removed features in upcoming versions" heading; restore the file to its prior
state (remove the new/unrelated heading modification) so the PR only contains
DCR allowlist documentation changes and no out-of-scope deprecations-page edits.

---

Outside diff comments:
In `@source/administration-guide/onboard/migrate-from-slack.rst`:
- Around line 10-468: The changes to the Slack migration guide are out of scope
for the DCR allowlist PR; revert or remove the edits in the
migrate-from-slack.rst document from this branch and put them into a separate PR
focused on documentation updates (keep the current PR limited to the new
integrations config setting). Locate the edits by the top-level headings/anchors
such as "Migrations Steps", ".. _preparations:", and the "Export Slack
data"/"Transform the export for Mattermost" sections, revert those changes here,
and create a new branch/PR containing only the migration-guide modifications so
reviewers can evaluate them independently.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 44ddd433-003d-44fe-8387-ceb400d884a0

📥 Commits

Reviewing files that changed from the base of the PR and between 8a9721d and 794bb41.

📒 Files selected for processing (3)
  • source/administration-guide/configure/integrations-configuration-settings.rst
  • source/administration-guide/onboard/migrate-from-slack.rst
  • source/product-overview/deprecated-features.rst

Comment on lines +159 to +162
.. note::

Cloud admins can't modify this configuration setting.

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Duplicate Cloud-admin note appears twice for the same area.

Keep a single .. note:: Cloud admins can't modify this configuration setting. to avoid repetition in the Integration Management section.

Also applies to: 181-183

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@source/administration-guide/configure/integrations-configuration-settings.rst`
around lines 159 - 162, Remove the duplicate informational note in the
Integration Management section by keeping a single instance of the note text
"Cloud admins can't modify this configuration setting." and deleting the other
occurrence(s) (the duplicate ".. note:: Cloud admins can't modify this
configuration setting." entries) so the section contains only one note with that
exact wording.

Comment on lines +6 to +7
Removed features in upcoming versions
-------------------------------------
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Please revert this out-of-scope deprecations-page edit.

This heading change is unrelated to the DCR allowlist documentation objective and should be excluded from this PR to keep scope clean for review and release notes hygiene.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@source/product-overview/deprecated-features.rst` around lines 6 - 7, Revert
the unintended heading change in deprecated-features.rst by undoing the edit
that replaced or altered the "Removed features in upcoming versions" heading;
restore the file to its prior state (remove the new/unrelated heading
modification) so the PR only contains DCR allowlist documentation changes and no
out-of-scope deprecations-page edits.

@Combs7th
Copy link
Contributor Author

@claude - Please review and revise this PR so it fully addresses all remaining CodeRabbit flags and leaves the branch in a clean, mergeable state.

Context:
This PR is only supposed to document the new DCR Redirect URI Allowlist setting and System Console field added in Mattermost server v11.5 for OAuth Dynamic Client Registration (DCR) security (MM-67605 / #8806).

The intended scope of this PR is:

  • source/administration-guide/configure/integrations-configuration-settings.rst
    And it should NOT include unrelated changes in:
  • source/administration-guide/onboard/migrate-from-slack.rst
  • source/product-overview/deprecated-features.rst

Please do all of the following:

  1. Re-check the current git diff against the PR base and remove any out-of-scope changes from:

    • source/administration-guide/onboard/migrate-from-slack.rst
    • source/product-overview/deprecated-features.rst
  2. In source/administration-guide/configure/integrations-configuration-settings.rst:

    • Resolve the duplicate Cloud note in this Integration Management area.
    • Keep only one .. note:: Cloud admins can't modify this configuration setting. where appropriate, instead of repeating it for the same section unnecessarily.
    • Confirm the final placement still matches existing doc style and nearby patterns in this file.
  3. Fix the DCR Redirect URI Allowlist documentation so it is fully consistent with actual product behavior:

    • CodeRabbit flagged a contradiction between describing the setting as “comma-separated” while also showing the config.json value as a JSON array:
      • DCRRedirectURIAllowlist": []
    • Please verify the real server behavior and document it accurately.
    • Make sure all of the following are aligned with each other:
      • System Console wording
      • prose/body text
      • :description: text
      • config.json table/value format
    • If the System Console accepts comma-separated input but config.json stores it as a string array, explicitly document that in a way that avoids admin confusion.
    • If that is NOT how it behaves, correct the docs to match the real implementation.
  4. Confirm the DCR section is technically accurate:

    • It applies only when dynamic client registration is enabled.
    • It governs OAuth clients registering through the DCR endpoint.
    • The endpoint reference should remain accurate.
    • The wording should be precise and not overstate or understate enforcement behavior.
  5. After edits, verify the PR diff is clean:

    • Only the intended DCR documentation changes should remain.
    • No Slack migration or deprecated-features changes should be left in the PR.
  6. Before finishing, do a final pass for Mattermost docs style consistency:

    • heading style
    • config directive formatting
    • note formatting
    • boolean/list/value wording
    • consistency with nearby settings in the same file

Please then provide:

  • a summary of exactly what you changed
  • confirmation of whether the final diff contains only in-scope files
  • any remaining ambiguity you found about actual DCR behavior that may need human/product confirmation

@claude
Copy link
Contributor

claude bot commented Mar 18, 2026

Claude finished @Combs7th's task in 8m 40s —— View job


Tasks

  • Gather context (read CLAUDE.md and current diff)
  • Revert out-of-scope changes in migrate-from-slack.rst and deprecated-features.rst
  • Fix duplicate Cloud admin note in integrations-configuration-settings.rst
  • Resolve comma-separated vs JSON array contradiction in DCR docs
  • Final style/accuracy pass on DCR section
  • Commit and push clean changes
  • Verify final diff is in-scope only

What was changed

source/administration-guide/onboard/migrate-from-slack.rst and source/product-overview/deprecated-features.rst

These files are now identical to master. The root cause of the recurring "out-of-scope" flag was subtle: the previous Claude fix (0fdaccf) had incorrectly reverted both files to versions older than master. Both PR #8741 (slack migration updates) and PR #8804 (deprecated features heading) had already merged into master before this PR branch was created, so those changes belong in the branch. Restoring from master clears the diff for both files completely.

source/administration-guide/configure/integrations-configuration-settings.rst

Fixed the format contradiction between "comma-separated" and [] (JSON array):

  • Updated body text to remove the ambiguous "comma-separated list" opening and replace with "A list of permitted redirect URIs..."
  • Added a new sentence explicitly documenting both representations: System Console = comma-separated; config.json / env var = JSON string array
  • Updated the config.json table to include an example: ["https://example.com/callback", "https://app.example.com/oauth"]
  • The :description: directive attribute retains "comma-separated" (this is what the System Console displays to admins)

Regarding the "duplicate Cloud admin note": After investigation, the two notes are not duplicates — the note at line 159 is for the new dcr-redirect-uri-allowlist setting, and the note at line 181 (pre-existing in master) is for the adjacent integration-request-timeout setting. This follows the established pattern in this file where each Cloud-restricted setting has its own .. note:: immediately before its .. config:setting:: directive. Both notes are kept as-is.


Final diff scope

The PR now modifies only source/administration-guide/configure/integrations-configuration-settings.rst — no other files appear in the diff against master.

Remaining ambiguity

One item that a dev reviewer should confirm: whether DCRRedirectURIAllowlist in the server is truly a []string in config.json (stored as a JSON array). If it is instead stored as a single comma-separated string ("uri1,uri2"), the config.json table should be changed to "DCRRedirectURIAllowlist": "" with string input. The current documentation assumes the []string type based on the [] default shown in the original PR.

… master

- Update DCR redirect URI allowlist body text to clarify the two formats:
  System Console accepts comma-separated URIs; config.json and environment
  variable use a JSON string array. Adds an example of the array format.
- Restore migrate-from-slack.rst to master state (previous Claude revert
  incorrectly removed PR #8741 changes that are already in master)
- Restore deprecated-features.rst to master state (previous Claude revert
  incorrectly removed PR #8804 changes that are already in master)

Co-authored-by: Combs7th <Combs7th@users.noreply.github.com>
@mattermost mattermost deleted a comment from claude bot Mar 18, 2026
@github-actions
Copy link
Contributor

Newest code from mattermost has been published to preview environment for Git SHA 8fb6656

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

Labels

1: Dev Review Requires review by a core commiter 2: Editor Review Requires review by an editor Guidance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add DCR redirect URI allowlist for OAuth DCR

3 participants