Skip to content

Add macOS Fleet-maintained apps (O) - #47237

Merged
allenhouchins merged 3 commits into
mainfrom
new-mac-fmas-o
Jun 10, 2026
Merged

Add macOS Fleet-maintained apps (O)#47237
allenhouchins merged 3 commits into
mainfrom
new-mac-fmas-o

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jun 9, 2026

Copy link
Copy Markdown
Member

Adds 29 Fleet-maintained app(s) whose cask token starts with 'O': inputs, outputs, app icons (TSX + website PNG), and the matching index.ts and apps.json entries.

Summary by CodeRabbit

  • New Features
    • Added 26 new macOS applications to the managed software catalog, including productivity tools (OmniFocus, ONLYOFFICE), utilities (OmniDiskSweeper, One Switch), and development tools (OpenLens).
    • Added corresponding application icons to the user interface.
    • Enhanced macOS app deployment with automated installation and uninstallation capabilities.

Adds 29 Fleet-maintained app(s) whose cask token starts with 'O':
inputs, outputs, app icons (TSX + website PNG), and the matching
index.ts and apps.json entries. Split out from #47121.
@codecov

codecov Bot commented Jun 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.13%. Comparing base (5a9f8fc) to head (67b98c9).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
.../pages/SoftwarePage/components/icons/Ocenaudio.tsx 50.00% 1 Missing ⚠️
...end/pages/SoftwarePage/components/icons/OkJson.tsx 50.00% 1 Missing ⚠️
.../SoftwarePage/components/icons/Omnidisksweeper.tsx 50.00% 1 Missing ⚠️
.../pages/SoftwarePage/components/icons/Omnifocus.tsx 50.00% 1 Missing ⚠️
...ges/SoftwarePage/components/icons/Omnioutliner.tsx 50.00% 1 Missing ⚠️
...d/pages/SoftwarePage/components/icons/Omniplan.tsx 50.00% 1 Missing ⚠️
.../pages/SoftwarePage/components/icons/OneSwitch.tsx 50.00% 1 Missing ⚠️
...pages/SoftwarePage/components/icons/Onionshare.tsx 50.00% 1 Missing ⚠️
...pages/SoftwarePage/components/icons/OnlySwitch.tsx 50.00% 1 Missing ⚠️
...pages/SoftwarePage/components/icons/Onlyoffice.tsx 50.00% 1 Missing ⚠️
... and 13 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #47237      +/-   ##
==========================================
- Coverage   67.14%   67.13%   -0.01%     
==========================================
  Files        3045     3068      +23     
  Lines      226606   226652      +46     
  Branches    11721    11721              
==========================================
+ Hits       152150   152173      +23     
- Misses      60717    60740      +23     
  Partials    13739    13739              
Flag Coverage Δ
frontend 57.83% <50.00%> (-0.02%) ⬇️

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

☔ View full report in Codecov by Harness.
📢 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.

Delete maintained-apps inputs/outputs and frontend assets for osquery, outset, overflow, Oversight, and ownCloud. Removed homebrew input JSONs, darwin output JSONs (versions/install/uninstall refs), related frontend icon components and website app images, and updated ee/maintained-apps/outputs/apps.json and the icons index to reflect the removals.
@allenhouchins
allenhouchins marked this pull request as ready for review June 10, 2026 01:39
@allenhouchins
allenhouchins requested a review from a team as a code owner June 10, 2026 01:39
Copilot AI review requested due to automatic review settings June 10, 2026 01:39
@fleet-release
fleet-release requested a review from eashaw June 10, 2026 01:39
@allenhouchins
allenhouchins merged commit 9c0689e into main Jun 10, 2026
29 of 30 checks passed
@allenhouchins
allenhouchins deleted the new-mac-fmas-o branch June 10, 2026 01:39

Copilot AI 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.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds newly supported macOS applications to the maintained-apps catalog and wires their icons into the SoftwarePage icon registry.

Changes:

  • Added multiple new icon components and registered them in SOFTWARE_NAME_TO_ICON_MAP.
  • Added/updated maintained-app definitions for several macOS apps (inputs + generated outputs + apps catalog).
  • Introduced install/uninstall scripts for the new maintained apps.

Reviewed changes

Copilot reviewed 73 out of 96 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
frontend/pages/SoftwarePage/components/icons/index.ts Registers newly added icons in the software-name→icon map.
frontend/pages/SoftwarePage/components/icons/Opentoonz.tsx Adds Opentoonz icon component (embedded base64 PNG).
frontend/pages/SoftwarePage/components/icons/Openrefine.tsx Adds Openrefine icon component (embedded base64 PNG).
frontend/pages/SoftwarePage/components/icons/Openlens.tsx Adds Openlens icon component (embedded base64 PNG).
frontend/pages/SoftwarePage/components/icons/Opencloud.tsx Adds Opencloud icon component (embedded base64 PNG).
frontend/pages/SoftwarePage/components/icons/Openboard.tsx Adds Openboard icon component (embedded base64 PNG).
frontend/pages/SoftwarePage/components/icons/Onlyoffice.tsx Adds Onlyoffice icon component (embedded base64 PNG).
ee/maintained-apps/outputs/origami-studio/darwin.json Generated maintained-app output + scripts for Origami Studio (macOS).
ee/maintained-apps/outputs/optimus-player/darwin.json Generated maintained-app output + scripts for Optimus Player (macOS).
ee/maintained-apps/outputs/opentoonz/darwin.json Generated maintained-app output + scripts for OpenToonz (macOS pkg).
ee/maintained-apps/outputs/openrefine/darwin.json Generated maintained-app output + scripts for OpenRefine (macOS).
ee/maintained-apps/outputs/openrct2/darwin.json Generated maintained-app output + scripts for OpenRCT2 (macOS zip).
ee/maintained-apps/outputs/openmtp/darwin.json Generated maintained-app output + scripts for OpenMTP (macOS zip).
ee/maintained-apps/outputs/openlens/darwin.json Generated maintained-app output + scripts for OpenLens (macOS).
ee/maintained-apps/outputs/openinterminal/darwin.json Generated maintained-app output + scripts for OpenInTerminal (macOS zip).
ee/maintained-apps/outputs/opencode-desktop/darwin.json Generated maintained-app output + scripts for OpenCode (macOS).
ee/maintained-apps/outputs/opencloud/darwin.json Generated maintained-app output + scripts for OpenCloud Desktop (macOS pkg).
ee/maintained-apps/outputs/openboard/darwin.json Generated maintained-app output + scripts for OpenBoard (macOS).
ee/maintained-apps/outputs/openaudible/darwin.json Generated maintained-app output + scripts for OpenAudible (macOS).
ee/maintained-apps/outputs/opal-composer/darwin.json Generated maintained-app output + scripts for Opal Composer (macOS).
ee/maintained-apps/outputs/onlyoffice/darwin.json Generated maintained-app output + scripts for ONLYOFFICE (macOS zip).
ee/maintained-apps/outputs/only-switch/darwin.json Generated maintained-app output + scripts for OnlySwitch (macOS).
ee/maintained-apps/outputs/onionshare/darwin.json Generated maintained-app output + scripts for OnionShare (macOS).
ee/maintained-apps/outputs/one-switch/darwin.json Generated maintained-app output + scripts for One Switch (macOS).
ee/maintained-apps/outputs/omniplan/darwin.json Generated maintained-app output + scripts for OmniPlan (macOS).
ee/maintained-apps/outputs/omnioutliner/darwin.json Generated maintained-app output + scripts for OmniOutliner (macOS).
ee/maintained-apps/outputs/omnifocus/darwin.json Generated maintained-app output + scripts for OmniFocus (macOS).
ee/maintained-apps/outputs/omnidisksweeper/darwin.json Generated maintained-app output + scripts for OmniDiskSweeper (macOS).
ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json Generated maintained-app output + scripts for Okta Advanced Server Access (macOS pkg).
ee/maintained-apps/outputs/ok-json/darwin.json Generated maintained-app output + scripts for OK JSON (macOS zip).
ee/maintained-apps/outputs/ocenaudio/darwin.json Generated maintained-app output + scripts for ocenaudio (macOS dmg).
ee/maintained-apps/outputs/apps.json Adds new app entries to the aggregated maintained-apps catalog.
ee/maintained-apps/inputs/homebrew/origami-studio.json Adds Homebrew input metadata for Origami Studio.
ee/maintained-apps/inputs/homebrew/optimus-player.json Adds Homebrew input metadata for Optimus Player.
ee/maintained-apps/inputs/homebrew/opentoonz.json Adds Homebrew input metadata for OpenToonz.
ee/maintained-apps/inputs/homebrew/openrefine.json Adds Homebrew input metadata for OpenRefine.
ee/maintained-apps/inputs/homebrew/openrct2.json Adds Homebrew input metadata for OpenRCT2.
ee/maintained-apps/inputs/homebrew/openmtp.json Adds Homebrew input metadata for OpenMTP.
ee/maintained-apps/inputs/homebrew/openlens.json Adds Homebrew input metadata for OpenLens.
ee/maintained-apps/inputs/homebrew/openinterminal.json Adds Homebrew input metadata for OpenInTerminal.
ee/maintained-apps/inputs/homebrew/opencode-desktop.json Adds Homebrew input metadata for OpenCode.
ee/maintained-apps/inputs/homebrew/opencloud.json Adds Homebrew input metadata for OpenCloud Desktop.
ee/maintained-apps/inputs/homebrew/openboard.json Adds Homebrew input metadata for OpenBoard.
ee/maintained-apps/inputs/homebrew/openaudible.json Adds Homebrew input metadata for OpenAudible.
ee/maintained-apps/inputs/homebrew/opal-composer.json Adds Homebrew input metadata for Opal Composer.
ee/maintained-apps/inputs/homebrew/onlyoffice.json Adds Homebrew input metadata for ONLYOFFICE.
ee/maintained-apps/inputs/homebrew/only-switch.json Adds Homebrew input metadata for OnlySwitch.
ee/maintained-apps/inputs/homebrew/onionshare.json Adds Homebrew input metadata for OnionShare.
ee/maintained-apps/inputs/homebrew/one-switch.json Adds Homebrew input metadata for One Switch.
ee/maintained-apps/inputs/homebrew/omniplan.json Adds Homebrew input metadata for OmniPlan.
ee/maintained-apps/inputs/homebrew/omnioutliner.json Adds Homebrew input metadata for OmniOutliner.
ee/maintained-apps/inputs/homebrew/omnifocus.json Adds Homebrew input metadata for OmniFocus.
ee/maintained-apps/inputs/homebrew/omnidisksweeper.json Adds Homebrew input metadata for OmniDiskSweeper.
ee/maintained-apps/inputs/homebrew/okta-advanced-server-access.json Adds Homebrew input metadata for Okta Advanced Server Access.
ee/maintained-apps/inputs/homebrew/ok-json.json Adds Homebrew input metadata for OK JSON.
ee/maintained-apps/inputs/homebrew/ocenaudio.json Adds Homebrew input metadata for ocenaudio.
Comments suppressed due to low confidence (4)

frontend/pages/SoftwarePage/components/icons/Openlens.tsx:1

  • These icon components embed large base64 PNG payloads directly in the JS bundle. This increases bundle size, parse/compile time, and memory usage for every page that imports the icon map (even if the icon is never rendered). Consider moving the PNGs to static assets (served by the CDN) or converting to real SVG paths; alternatively, lazy-load rarely-used icons so the base64 payload is not part of the main bundle.
    frontend/pages/SoftwarePage/components/icons/Openlens.tsx:1
  • The <svg> lacks a viewBox and any accessibility semantics (e.g., role=\"img\" + label, or aria-hidden=\"true\" if decorative). Without a viewBox, scaling via CSS/props can behave unexpectedly; and without ARIA labeling, screen readers may announce an unhelpful graphic. Add viewBox=\"0 0 32 32\" and either accept a title/aria-label prop or mark the SVG as decorative.
    ee/maintained-apps/outputs/opentoonz/darwin.json:1
  • In remove_receipt_files, you compute FULL_INSTALL_LOCATION but then the actual sed prefix used for file deletion is /${INSTALL_LOCATION}/, which ignores the volume and can produce incorrect paths (and also makes the computed FULL_INSTALL_LOCATION effectively unused). Use FULL_INSTALL_LOCATION consistently when prefixing install-relative receipt paths to absolute paths before deleting.
    ee/maintained-apps/outputs/opencloud/darwin.json:1
  • The install script hard-codes the pkg filename under TMPDIR (OpenCloud_Desktop-v3.0.3-macos-clang-arm64.pkg). If the downloaded file is stored under a different name (or the version changes without regenerating scripts), installation will fail. Prefer installing directly from $INSTALLER_PATH (or programmatically discovering the pkg file in TMPDIR) to avoid brittle, version-specific paths.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"slug": "okta-advanced-server-access/darwin",
"platform": "darwin",
"unique_identifier": "com.scaleft.ScaleFT",
"description": "Okta Advanced Server Access is an identity and access management."
"slug": "omnidisksweeper/darwin",
"platform": "darwin",
"unique_identifier": "com.omnigroup.OmniDiskSweeper",
"description": "OmniDiskSweeper is a finds large, unwanted files and deletes them."
"slug": "omnifocus/darwin",
"platform": "darwin",
"unique_identifier": "com.omnigroup.OmniFocus4",
"description": "OmniFocus is an app for scheduling application focusing on organisation."
"slug": "onionshare/darwin",
"platform": "darwin",
"unique_identifier": "org.onionshare.onionshare",
"description": "OnionShare is a securely and anonymously share files, host websites, and chat with friends."
"slug": "origami-studio/darwin",
"platform": "darwin",
"unique_identifier": "com.facebook.Origami-Studio",
"description": "Origami Studio is a tool to design tool for interactive interfaces."
@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e79b0dad-a8f0-4f1f-8af2-a74091a58b7e

📥 Commits

Reviewing files that changed from the base of the PR and between 5a9f8fc and 67b98c9.

⛔ Files ignored due to path filters (23)
  • website/assets/images/app-icon-ocenaudio-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-ok-json-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-omnidisksweeper-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-omnifocus-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-omnioutliner-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-omniplan-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-one-switch-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-onionshare-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-only-switch-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-onlyoffice-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-opal-composer-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openaudible-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openboard-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-opencloud-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-opencode-desktop-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openinterminal-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openlens-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openmtp-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openrct2-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-openrefine-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-opentoonz-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-optimus-player-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-origami-studio-60x60@2x.png is excluded by !**/*.png
📒 Files selected for processing (73)
  • ee/maintained-apps/inputs/homebrew/ocenaudio.json
  • ee/maintained-apps/inputs/homebrew/ok-json.json
  • ee/maintained-apps/inputs/homebrew/okta-advanced-server-access.json
  • ee/maintained-apps/inputs/homebrew/omnidisksweeper.json
  • ee/maintained-apps/inputs/homebrew/omnifocus.json
  • ee/maintained-apps/inputs/homebrew/omnioutliner.json
  • ee/maintained-apps/inputs/homebrew/omniplan.json
  • ee/maintained-apps/inputs/homebrew/one-switch.json
  • ee/maintained-apps/inputs/homebrew/onionshare.json
  • ee/maintained-apps/inputs/homebrew/only-switch.json
  • ee/maintained-apps/inputs/homebrew/onlyoffice.json
  • ee/maintained-apps/inputs/homebrew/opal-composer.json
  • ee/maintained-apps/inputs/homebrew/openaudible.json
  • ee/maintained-apps/inputs/homebrew/openboard.json
  • ee/maintained-apps/inputs/homebrew/opencloud.json
  • ee/maintained-apps/inputs/homebrew/opencode-desktop.json
  • ee/maintained-apps/inputs/homebrew/openinterminal.json
  • ee/maintained-apps/inputs/homebrew/openlens.json
  • ee/maintained-apps/inputs/homebrew/openmtp.json
  • ee/maintained-apps/inputs/homebrew/openrct2.json
  • ee/maintained-apps/inputs/homebrew/openrefine.json
  • ee/maintained-apps/inputs/homebrew/opentoonz.json
  • ee/maintained-apps/inputs/homebrew/optimus-player.json
  • ee/maintained-apps/inputs/homebrew/origami-studio.json
  • ee/maintained-apps/outputs/apps.json
  • ee/maintained-apps/outputs/ocenaudio/darwin.json
  • ee/maintained-apps/outputs/ok-json/darwin.json
  • ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json
  • ee/maintained-apps/outputs/omnidisksweeper/darwin.json
  • ee/maintained-apps/outputs/omnifocus/darwin.json
  • ee/maintained-apps/outputs/omnioutliner/darwin.json
  • ee/maintained-apps/outputs/omniplan/darwin.json
  • ee/maintained-apps/outputs/one-switch/darwin.json
  • ee/maintained-apps/outputs/onionshare/darwin.json
  • ee/maintained-apps/outputs/only-switch/darwin.json
  • ee/maintained-apps/outputs/onlyoffice/darwin.json
  • ee/maintained-apps/outputs/opal-composer/darwin.json
  • ee/maintained-apps/outputs/openaudible/darwin.json
  • ee/maintained-apps/outputs/openboard/darwin.json
  • ee/maintained-apps/outputs/opencloud/darwin.json
  • ee/maintained-apps/outputs/opencode-desktop/darwin.json
  • ee/maintained-apps/outputs/openinterminal/darwin.json
  • ee/maintained-apps/outputs/openlens/darwin.json
  • ee/maintained-apps/outputs/openmtp/darwin.json
  • ee/maintained-apps/outputs/openrct2/darwin.json
  • ee/maintained-apps/outputs/openrefine/darwin.json
  • ee/maintained-apps/outputs/opentoonz/darwin.json
  • ee/maintained-apps/outputs/optimus-player/darwin.json
  • ee/maintained-apps/outputs/origami-studio/darwin.json
  • frontend/pages/SoftwarePage/components/icons/Ocenaudio.tsx
  • frontend/pages/SoftwarePage/components/icons/OkJson.tsx
  • frontend/pages/SoftwarePage/components/icons/Omnidisksweeper.tsx
  • frontend/pages/SoftwarePage/components/icons/Omnifocus.tsx
  • frontend/pages/SoftwarePage/components/icons/Omnioutliner.tsx
  • frontend/pages/SoftwarePage/components/icons/Omniplan.tsx
  • frontend/pages/SoftwarePage/components/icons/OneSwitch.tsx
  • frontend/pages/SoftwarePage/components/icons/Onionshare.tsx
  • frontend/pages/SoftwarePage/components/icons/OnlySwitch.tsx
  • frontend/pages/SoftwarePage/components/icons/Onlyoffice.tsx
  • frontend/pages/SoftwarePage/components/icons/OpalComposer.tsx
  • frontend/pages/SoftwarePage/components/icons/Openaudible.tsx
  • frontend/pages/SoftwarePage/components/icons/Openboard.tsx
  • frontend/pages/SoftwarePage/components/icons/Opencloud.tsx
  • frontend/pages/SoftwarePage/components/icons/OpencodeDesktop.tsx
  • frontend/pages/SoftwarePage/components/icons/Openinterminal.tsx
  • frontend/pages/SoftwarePage/components/icons/Openlens.tsx
  • frontend/pages/SoftwarePage/components/icons/Openmtp.tsx
  • frontend/pages/SoftwarePage/components/icons/Openrct2.tsx
  • frontend/pages/SoftwarePage/components/icons/Openrefine.tsx
  • frontend/pages/SoftwarePage/components/icons/Opentoonz.tsx
  • frontend/pages/SoftwarePage/components/icons/OptimusPlayer.tsx
  • frontend/pages/SoftwarePage/components/icons/OrigamiStudio.tsx
  • frontend/pages/SoftwarePage/components/icons/index.ts

Walkthrough

This PR adds 25 new Fleet-maintained macOS applications to the registry spanning from Ocenaudio to OrigamiStudio. Each app receives an input metadata manifest defining its identifier and installer details, an output specification with version detection and embedded install/uninstall bash scripts, a registry entry in the main app list, a new React icon component, and a frontend icon mapping. The changes follow a consistent pattern across all 25 apps, coordinating backend app definitions with frontend icon assets and registry bindings.

Possibly related PRs

  • fleetdm/fleet#47187: Both PRs extend the same maintained-app registry by adding new Homebrew app entries, updating ee/maintained-apps/outputs/apps.json and the frontend SOFTWARE_NAME_TO_ICON_MAP.
  • fleetdm/fleet#47046: Both PRs extend the same data registries—ee/maintained-apps/outputs/apps.json and frontend/pages/SoftwarePage/components/icons/index.ts—adding new macOS app entries and corresponding icon mappings.
  • fleetdm/fleet#46906: Both PRs add new maintained-app entries via input and output metadata files plus extend the frontend software icon registry with new app-to-icon mappings.
✨ 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 new-mac-fmas-o

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.

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.

3 participants