From 360789913a45f1f04ed3ca58852cdb220f60ae0d Mon Sep 17 00:00:00 2001 From: Allen Houchins <32207388+allenhouchins@users.noreply.github.com> Date: Wed, 8 Jul 2026 11:30:00 -0500 Subject: [PATCH] Add icon for Okta Advanced Server Access macOS FMA (#48956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Okta Advanced Server Access macOS Fleet-maintained app had no icon — the Fleet UI fell back to the generic package icon, and the fleetdm.com software catalog used the fallback icon. The icon was extracted from the vendor's `ScaleFT.app` bundle inside `ScaleFT-1.108.0.pkg` (downloaded from the URL in `ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json`; SHA-256 verified against the manifest) and generated with `tools/software/icons/generate-icons.sh`: - `frontend/pages/SoftwarePage/components/icons/ScaleFt.tsx`: new icon component. - `frontend/pages/SoftwarePage/components/icons/index.ts`: two map entries — `"okta advanced server access"` (matches the FMA list name) and `"scaleft"` (matches host inventory, since the app's `CFBundleName` is `ScaleFT` and there is no `CFBundleDisplayName`). - `website/assets/images/app-icon-okta-advanced-server-access-60x60@2x.png`: 128×128 PNG for the fleetdm.com software catalog (filename follows the `app-icon-` convention used by `build-static-content.js`). # Checklist for submitter - [x] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters. ## Testing - [x] QA'd all new/changed functionality manually ## Summary by CodeRabbit * **New Features** * Added a new software icon for ScaleFT/Okta Advanced Server Access. * The icon now appears automatically when those software names are recognized in the app. --- .../SoftwarePage/components/icons/ScaleFt.tsx | 14 ++++++++++++++ .../pages/SoftwarePage/components/icons/index.ts | 3 +++ ...icon-okta-advanced-server-access-60x60@2x.png | Bin 0 -> 8381 bytes 3 files changed, 17 insertions(+) create mode 100644 frontend/pages/SoftwarePage/components/icons/ScaleFt.tsx create mode 100644 website/assets/images/app-icon-okta-advanced-server-access-60x60@2x.png diff --git a/frontend/pages/SoftwarePage/components/icons/ScaleFt.tsx b/frontend/pages/SoftwarePage/components/icons/ScaleFt.tsx new file mode 100644 index 0000000000..d721b511b1 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/ScaleFt.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const ScaleFt = (props: SVGProps) => ( + + + +); +export default ScaleFt; diff --git a/frontend/pages/SoftwarePage/components/icons/index.ts b/frontend/pages/SoftwarePage/components/icons/index.ts index e918c07d5d..4fe7cd5716 100644 --- a/frontend/pages/SoftwarePage/components/icons/index.ts +++ b/frontend/pages/SoftwarePage/components/icons/index.ts @@ -796,6 +796,7 @@ import Safari from "./Safari"; import SafeExamBrowser from "./SafeExamBrowser"; import Sanesidebuttons from "./Sanesidebuttons"; import Santa from "./Santa"; +import ScaleFt from "./ScaleFt"; import ScMenu from "./ScMenu"; import Scratch from "./Scratch"; import Screenflick from "./Screenflick"; @@ -1709,6 +1710,7 @@ export const SOFTWARE_NAME_TO_ICON_MAP = { obsidian: Obsidian, ocenaudio: Ocenaudio, "ok json": OkJson, + "okta advanced server access": ScaleFt, "okta verify": OktaVerify, ollama: Ollama, omnidisksweeper: Omnidisksweeper, @@ -1870,6 +1872,7 @@ export const SOFTWARE_NAME_TO_ICON_MAP = { santa: Santa, "sbarex qlmarkdown": Qlmarkdown, "sc menu": ScMenu, + scaleft: ScaleFt, scratch: Scratch, "screen studio": ScreenStudio, screenflick: Screenflick, diff --git a/website/assets/images/app-icon-okta-advanced-server-access-60x60@2x.png b/website/assets/images/app-icon-okta-advanced-server-access-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..75345831625bb9d153508bc2568267092005a05d GIT binary patch literal 8381 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