Skip to content

Move Apple Business instructions out of UI and into guides - #43638

Merged
noahtalerman merged 4 commits into
mainfrom
move-abm-instructions
Apr 20, 2026
Merged

Move Apple Business instructions out of UI and into guides#43638
noahtalerman merged 4 commits into
mainfrom
move-abm-instructions

Conversation

@noahtalerman

@noahtalerman noahtalerman commented Apr 15, 2026

Copy link
Copy Markdown
Member

For the following quick win:

Summary by CodeRabbit

  • Improvements

    • Simplified Apple Business Manager setup and renewal modals by replacing step-by-step inline instructions with direct links to external guides, reducing modal complexity.
  • Documentation

    • Updated Apple MDM documentation links and routing to point to new, consolidated guides for improved content organization and user guidance.

@noahtalerman
noahtalerman requested a review from a team as a code owner April 15, 2026 21:34
@fleet-release
fleet-release requested a review from eashaw April 15, 2026 21:34

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Review Summary by Qodo

Move Apple Business Manager instructions to external guides

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• Move Apple Business Manager setup instructions from UI modals to external guides
• Update routing to point ABM-related links to new guide pages
• Simplify AddAbmModal and RenewAbmModal by removing inline instructions
• Replace detailed step lists with brief descriptions and links to guides
Diagram
flowchart LR
  A["ABM UI Modals<br/>with inline instructions"] -->|Remove detailed steps| B["Simplified modals<br/>with guide links"]
  C["Old routing<br/>to docs pages"] -->|Update routes| D["New routing<br/>to guide pages"]
  B -->|Link to| E["External guides<br/>apple-mdm-setup"]
  D -->|Point to| E
Loading

Grey Divider

File Changes

1. website/config/routes.js ⚙️ Configuration changes +3/-2

Update ABM routing to guide pages

• Update /learn-more-about/setup-abm route to point to /guides/apple-mdm-setup#apple-business-ab
• Update /learn-more-about/renew-abm route to point to /guides/apple-mdm-setup#renew-ab
• Add new route /learn-more-about/turn-on-apple-mdm pointing to
 /guides/apple-mdm-setup#turn-on-apple-mdm
• Migrate ABM-related links from docs pages to guide pages

website/config/routes.js


2. frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/_styles.scss Formatting +0/-26

Remove setup list styling from AddAbmModal

• Remove &__setup-list styling block for numbered instruction list
• Remove margin-top from &__request-button
• Remove margin-left from &__file-uploader
• Simplify modal styling by removing list-related CSS

frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/_styles.scss


3. frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/_styles.scss Formatting +0/-19

Remove instructions list styling from RenewAbmModal

• Remove &__setup-instructions-list styling block
• Remove &__file-uploader margin styling
• Keep only core modal content styling

frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/_styles.scss


View more (3)
4. frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/AppleBusinessManagerPage.tsx ✨ Enhancement +0/-1

Remove orgName prop from RenewAbmModal

• Remove orgName prop from RenewAbmModal component
• Simplify modal initialization by removing organization name parameter

frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/AppleBusinessManagerPage.tsx


5. frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/AddAbmModal.tsx ✨ Enhancement +10/-67

Replace inline instructions with guide link

• Remove entire 9-step numbered instruction list from modal
• Replace with brief description and link to external guide
• Move DownloadABMKey component to modal footer button area
• Simplify modal content to focus on file upload functionality

frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/AddAbmModal.tsx


6. frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/RenewAbmModal.tsx ✨ Enhancement +14/-23

Replace inline instructions with guide link

• Remove orgName prop from interface and component parameters
• Remove organization-specific description text
• Replace detailed instruction list with brief description and guide link
• Simplify FileUploader placement by removing wrapper list
• Update CustomLink to point to renew-abm guide page

frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/RenewAbmModal.tsx


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Apr 15, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (1)

Grey Divider


Action required

1. Broken setup-abm and renew-abm links 📎 Requirement gap ≡ Correctness
Description
The new Apple Business guide links in the UI point to /learn-more-about/setup-abm and
/learn-more-about/renew-abm, but the configured redirects use fragment anchors
(#apple-business-ab, #renew-ab) that don’t exist in the target guide. Users clicking "Learn how"
may land on the wrong section or a broken anchor, failing the requirement that the guide link be
present and accessible.
Code

website/config/routes.js[R1162-1165]

+  'GET /learn-more-about/turn-on-apple-mdm': '/guides/apple-mdm-setup#turn-on-apple-mdm',
+  'GET /learn-more-about/setup-abm': '/guides/apple-mdm-setup#apple-business-ab',
'GET /learn-more-about/renew-apns': '/guides/apple-mdm-setup#renew-apns',
-  'GET /learn-more-about/renew-abm': '/docs/using-fleet/mdm-setup#apple-business-manager-abm',
+  'GET /learn-more-about/renew-abm': '/guides/apple-mdm-setup#renew-ab',
Evidence
PR Compliance ID 3 requires that Apple Business setup/renewal instructions be replaced by a working
guide link. The UI now links to /learn-more-about/setup-abm and /learn-more-about/renew-abm, but
the route redirects point to #apple-business-ab and #renew-ab, and the referenced guide content
does not contain those anchors (it contains headings like ## Apple Business Manager (ABM) and `###
To renew an ABM token:` instead).

Apple Business setup/renewal instructions are moved out of UI and replaced with a guide link
frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/AddAbmModal.tsx[55-63]
frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/RenewAbmModal.tsx[66-73]
website/config/routes.js[1162-1165]
articles/apple-mdm-setup.md[37-55]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The `/learn-more-about/setup-abm` and `/learn-more-about/renew-abm` redirects use fragment identifiers that don’t exist in the target guide (`/guides/apple-mdm-setup`). This makes the new UI "Learn how" links potentially broken or misdirected.
## Issue Context
The UI was updated to remove inline Apple Business instructions and replace them with guide links. Per compliance, the guide link must be present and accessible (not broken).
## Fix Focus Areas
- website/config/routes.js[1162-1165]
- articles/apple-mdm-setup.md[37-55]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Comment thread website/config/routes.js
Comment on lines +1162 to +1165
'GET /learn-more-about/turn-on-apple-mdm': '/guides/apple-mdm-setup#turn-on-apple-mdm',
'GET /learn-more-about/setup-abm': '/guides/apple-mdm-setup#apple-business-ab',
'GET /learn-more-about/renew-apns': '/guides/apple-mdm-setup#renew-apns',
'GET /learn-more-about/renew-abm': '/docs/using-fleet/mdm-setup#apple-business-manager-abm',
'GET /learn-more-about/renew-abm': '/guides/apple-mdm-setup#renew-ab',

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Broken setup-abm and renew-abm links 📎 Requirement gap ≡ Correctness

The new Apple Business guide links in the UI point to /learn-more-about/setup-abm and
/learn-more-about/renew-abm, but the configured redirects use fragment anchors
(#apple-business-ab, #renew-ab) that don’t exist in the target guide. Users clicking "Learn how"
may land on the wrong section or a broken anchor, failing the requirement that the guide link be
present and accessible.
Agent Prompt
## Issue description
The `/learn-more-about/setup-abm` and `/learn-more-about/renew-abm` redirects use fragment identifiers that don’t exist in the target guide (`/guides/apple-mdm-setup`). This makes the new UI "Learn how" links potentially broken or misdirected.

## Issue Context
The UI was updated to remove inline Apple Business instructions and replace them with guide links. Per compliance, the guide link must be present and accessible (not broken).

## Fix Focus Areas
- website/config/routes.js[1162-1165]
- articles/apple-mdm-setup.md[37-55]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@codecov

codecov Bot commented Apr 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.90%. Comparing base (bdf6953) to head (52d7b8b).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #43638      +/-   ##
==========================================
- Coverage   66.91%   66.90%   -0.01%     
==========================================
  Files        2600     2600              
  Lines      208643   208359     -284     
  Branches     9304     9210      -94     
==========================================
- Hits       139608   139412     -196     
+ Misses      56327    56273      -54     
+ Partials    12708    12674      -34     
Flag Coverage Δ
frontend 54.76% <ø> (ø)

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

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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

@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request refactors the Apple Business Manager (ABM) integration UI by removing inline step-by-step setup instructions and replacing them with links to external guides. The RenewAbmModal component's orgName prop is eliminated, and its interface is simplified. Corresponding SCSS styles are removed for the deleted UI elements. Website routing is updated to map ABM-related learn-more links to new guide documentation pages under /guides/apple-mdm-setup.

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is severely incomplete and does not follow the required template. Only an issue link is provided, with all required checklist items missing. Fill out the PR description template completely, including relevant checklist items (e.g., changes files, testing, QA confirmation) and provide a detailed explanation of the changes being made.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Move Apple Business instructions out of UI and into guides' accurately summarizes the main change across all modified files: removing inline instructions from modals and replacing them with links to external guides.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch move-abm-instructions

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.

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@website/config/routes.js`:
- Around line 1162-1165: Update the two incorrect redirect targets in routes.js:
replace the value for the route key 'GET /learn-more-about/setup-abm' currently
pointing to '/guides/apple-mdm-setup#apple-business-ab' with the correct
fragment '/guides/apple-mdm-setup#apple-business-manager-abm', and replace the
value for 'GET /learn-more-about/renew-abm' currently pointing to
'/guides/apple-mdm-setup#renew-ab' with
'/guides/apple-mdm-setup#to-renew-an-abm-token'; alternatively, if you prefer to
change the docs instead, add matching markdown headings (e.g., "### Renew ABM"
or a heading that generates "#apple-business-ab") so the existing route
fragments resolve.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2015a304-4b64-4a37-bfe7-bd8870d91f27

📥 Commits

Reviewing files that changed from the base of the PR and between 3ef0a3f and f7413e8.

📒 Files selected for processing (6)
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/AppleBusinessManagerPage.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/AddAbmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/_styles.scss
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/RenewAbmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/_styles.scss
  • website/config/routes.js
💤 Files with no reviewable changes (3)
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/AppleBusinessManagerPage.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/RenewAbmModal/_styles.scss
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/_styles.scss

Comment thread website/config/routes.js
Comment on lines +1162 to +1165
'GET /learn-more-about/turn-on-apple-mdm': '/guides/apple-mdm-setup#turn-on-apple-mdm',
'GET /learn-more-about/setup-abm': '/guides/apple-mdm-setup#apple-business-ab',
'GET /learn-more-about/renew-apns': '/guides/apple-mdm-setup#renew-apns',
'GET /learn-more-about/renew-abm': '/docs/using-fleet/mdm-setup#apple-business-manager-abm',
'GET /learn-more-about/renew-abm': '/guides/apple-mdm-setup#renew-ab',

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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

url="https://fleetdm.com/guides/apple-mdm-setup"
html="$(curl -fsSL "$url")"

echo "Checking fragment IDs on $url"
for id in turn-on-apple-mdm apple-business-ab renew-ab troubleshooting; do
  if printf '%s' "$html" | rg -q "id=\"$id\""; then
    echo "FOUND   #$id"
  else
    echo "MISSING #$id"
  fi
done

Repository: fleetdm/fleet

Length of output: 221


🏁 Script executed:

find . -name "*apple-mdm*" -o -name "*apple*mdm*" | head -20

Repository: fleetdm/fleet

Length of output: 857


🏁 Script executed:

find . -path "*/articles/*" -o -path "*/guides/*" | grep -i apple | head -20

Repository: fleetdm/fleet

Length of output: 1302


🏁 Script executed:

git ls-files | grep -i "apple.*mdm\|mdm.*apple" | head -20

Repository: fleetdm/fleet

Length of output: 1178


🏁 Script executed:

head -100 articles/apple-mdm-setup.md

Repository: fleetdm/fleet

Length of output: 6241


🏁 Script executed:

cat articles/apple-mdm-setup.md | rg "^#{1,6}\s+" | head -30

Repository: fleetdm/fleet

Length of output: 953


🏁 Script executed:

wc -l articles/apple-mdm-setup.md

Repository: fleetdm/fleet

Length of output: 88


🏁 Script executed:

find website -name "*config*" -o -name "*astro*" | grep -E "\.(ts|js|json)$" | head -10

Repository: fleetdm/fleet

Length of output: 231


🏁 Script executed:

cat website/astro.config.ts 2>/dev/null | head -50

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

rg "slug\|fragment\|heading" website --type ts --type js -i | head -20

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

rg "apple-business" website/config/routes.js -B2 -A2

Repository: fleetdm/fleet

Length of output: 1342


🏁 Script executed:

find website -name "*.ts" -o -name "*.js" -o -name "*.md" | xargs grep -l "remark\|rehype\|heading\|fragment" 2>/dev/null | head -10

Repository: fleetdm/fleet

Length of output: 568


🏁 Script executed:

cat website/package.json | grep -A5 -B5 "remark\|rehype"

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

rg "apple-business-manager" articles/apple-mdm-setup.md -i -C2

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

# Check what the exact heading is for ABM section
sed -n '45,75p' articles/apple-mdm-setup.md

Repository: fleetdm/fleet

Length of output: 2193


🏁 Script executed:

sed -n '34,50p' articles/apple-mdm-setup.md

Repository: fleetdm/fleet

Length of output: 982


🏁 Script executed:

# Extract all headings with their context to understand the structure
rg "^#{1,6}\s+.*" articles/apple-mdm-setup.md -o

Repository: fleetdm/fleet

Length of output: 953


🏁 Script executed:

# Check if there's any heading with just "Renew AB" or "Apple Business AB"
rg -i "renew.*ab|apple.*business" articles/apple-mdm-setup.md

Repository: fleetdm/fleet

Length of output: 1370


🏁 Script executed:

find website -name "*.config.*" -o -name "*.ts" | xargs grep -l "slug\|heading\|rehype" 2>/dev/null | head -5

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

cat website/config.js 2>/dev/null | head -100

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

# Check if there's a build process that might customize heading IDs
rg "apple-business-manager-abm|apple-business-ab" website --type md --type ts --type js

Repository: fleetdm/fleet

Length of output: 315


🏁 Script executed:

# Let's check the actual rendering by looking at recent HTML output or build artifacts
find . -name "*.html" -path "*/apple-mdm-setup*" 2>/dev/null | head -5

Repository: fleetdm/fleet

Length of output: 39


🏁 Script executed:

rg "github-slugger|rehype-slug|heading.*id" website --type ts --type js -i | head -20

Repository: fleetdm/fleet

Length of output: 4230


🏁 Script executed:

# Check the package.json dependencies to see what markdown processor is used
cat website/package.json | head -100

Repository: fleetdm/fleet

Length of output: 4173


🏁 Script executed:

# Search for any custom heading ID configuration
rg "turnOnAppleMdm|apple.business.*ab|renew.*ab" . --type ts --type js -i

Repository: fleetdm/fleet

Length of output: 9659


Fix incorrect fragment IDs in ABM redirect routes.

Two of the new redirects point to non-existent fragment IDs:

  • #apple-business-ab doesn't exist; the actual heading is "## Apple Business Manager (ABM)" which generates #apple-business-manager-abm
  • #renew-ab doesn't exist; the "To renew an ABM token" subsection generates #to-renew-an-abm-token

Update routes to use the correct fragment IDs, or add new markdown headings (e.g., "### Renew ABM") that match the intended targets.

Current incorrect routes:
  'GET /learn-more-about/setup-abm': '/guides/apple-mdm-setup#apple-business-ab',
  'GET /learn-more-about/renew-abm': '/guides/apple-mdm-setup#renew-ab',
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/config/routes.js` around lines 1162 - 1165, Update the two incorrect
redirect targets in routes.js: replace the value for the route key 'GET
/learn-more-about/setup-abm' currently pointing to
'/guides/apple-mdm-setup#apple-business-ab' with the correct fragment
'/guides/apple-mdm-setup#apple-business-manager-abm', and replace the value for
'GET /learn-more-about/renew-abm' currently pointing to
'/guides/apple-mdm-setup#renew-ab' with
'/guides/apple-mdm-setup#to-renew-an-abm-token'; alternatively, if you prefer to
change the docs instead, add matching markdown headings (e.g., "### Renew ABM"
or a heading that generates "#apple-business-ab") so the existing route
fragments resolve.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is ok. See this comment here: #43638 (comment)

@noahtalerman
noahtalerman merged commit fa796cd into main Apr 20, 2026
20 checks passed
@noahtalerman
noahtalerman deleted the move-abm-instructions branch April 20, 2026 19:16
noahtalerman added a commit that referenced this pull request Apr 20, 2026
…out of UI and into guides (#43813)

## Cherry-picks for 4.84 RC

- 1fe982a Move APNs instructions out of UI and into guides (#43434)
- 51af71f Move VPP instructions out of UI and into guides (#43641)
- fa796cd Move Apple Business instructions out of UI and into guides
(#43638)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants