This pull request adds support for several new macOS applications to the
maintained apps system. It introduces new input definitions, output
metadata, and installation/uninstallation scripts for each app, enabling
automated management and categorization. The changes primarily focus on
expanding the catalog with productivity, developer, and communication
tools.
**New App Integrations:**
* Added input definitions and output metadata for the following apps:
- Inkscape (vector graphics editor)
[[1]](diffhunk://#diff-7ce5d431eb69c5546afaa12ada343d8584e835e855ecebf4adc13801ab3eab78R1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R697-R703)
[[3]](diffhunk://#diff-00054bf967e9164fbd87bfc1518f6332cbee50e85936c7e9617a0bfefe405fa4R1-R21)
- Jabra Direct (headset management)
[[1]](diffhunk://#diff-78c52106d0314ec88decc1b6e6490ea8519a45170df466789414c8eac90825f9R1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R739-R745)
[[3]](diffhunk://#diff-cd97d46bd199c6376c16fe81366404c1a3010d3f75b8b8b9a611d354a9edc2cbR1-R21)
- Keeper Password Manager (password manager)
[[1]](diffhunk://#diff-a973ebde05953000c62f2492b17c079a9e552fd3bbab3b678ee2aa0757dafeadR1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R767-R787)
[[3]](diffhunk://#diff-5b88b8712d6bf670a34dd05a496fa7a036b9f53dda262bea1f57deb9a10f6f6eR1-R21)
- Keka (file archiver)
[[1]](diffhunk://#diff-2c462b137233fc73d72dd6f42b4bc07e58d6396e6b178741d496536822f4e732R1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R767-R787)
- Lens (Kubernetes IDE)
[[1]](diffhunk://#diff-51e6db269aa8b8fc295f8573eb1582adbb28bcf1f1fd040fe92f8e0e95c816b2R1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R767-R787)
- Maccy (clipboard manager)
[[1]](diffhunk://#diff-a497d9aa8763fd1b331ce6d454994c1fc955e9fec54d996dae5134c2c64d5e2cR1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R830-R843)
- Mattermost (open-source chat)
[[1]](diffhunk://#diff-7286f40f757bf5322974f664bb55fd6ef89ca486aacba5e524e3e4a7055f24bcR1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R830-R843)
- MongoDB Compass (database GUI)
[[1]](diffhunk://#diff-c03bf76b1aa1a8a9a857a235e2eaa46a35c5d0a8b8331d5990251eadf1855568R1-R8)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R921-R927)
**Installer and Uninstaller Scripts:**
* Added custom install and uninstall shell scripts for Inkscape, Jabra
Direct, and Keeper Password Manager to handle application lifecycle
tasks, including quitting running apps and cleaning up user data.
[[1]](diffhunk://#diff-00054bf967e9164fbd87bfc1518f6332cbee50e85936c7e9617a0bfefe405fa4R1-R21)
[[2]](diffhunk://#diff-cd97d46bd199c6376c16fe81366404c1a3010d3f75b8b8b9a611d354a9edc2cbR1-R21)
[[3]](diffhunk://#diff-5b88b8712d6bf670a34dd05a496fa7a036b9f53dda262bea1f57deb9a10f6f6eR1-R21)
**App Categorization:**
* Assigned appropriate default categories (e.g., Productivity, Developer
tools, Communication) to each new app for better organization and
filtering in the catalog.
[[1]](diffhunk://#diff-7ce5d431eb69c5546afaa12ada343d8584e835e855ecebf4adc13801ab3eab78R1-R8)
[[2]](diffhunk://#diff-78c52106d0314ec88decc1b6e6490ea8519a45170df466789414c8eac90825f9R1-R8)
[[3]](diffhunk://#diff-a973ebde05953000c62f2492b17c079a9e552fd3bbab3b678ee2aa0757dafeadR1-R8)
[[4]](diffhunk://#diff-2c462b137233fc73d72dd6f42b4bc07e58d6396e6b178741d496536822f4e732R1-R8)
[[5]](diffhunk://#diff-51e6db269aa8b8fc295f8573eb1582adbb28bcf1f1fd040fe92f8e0e95c816b2R1-R8)
[[6]](diffhunk://#diff-a497d9aa8763fd1b331ce6d454994c1fc955e9fec54d996dae5134c2c64d5e2cR1-R8)
[[7]](diffhunk://#diff-7286f40f757bf5322974f664bb55fd6ef89ca486aacba5e524e3e4a7055f24bcR1-R8)
[[8]](diffhunk://#diff-c03bf76b1aa1a8a9a857a235e2eaa46a35c5d0a8b8331d5990251eadf1855568R1-R8)
**Metadata and Version Tracking:**
* Introduced detailed metadata and version tracking for each app,
including installer URLs, bundle identifiers, SHA256 checksums, and SQL
queries for existence checks.
[[1]](diffhunk://#diff-00054bf967e9164fbd87bfc1518f6332cbee50e85936c7e9617a0bfefe405fa4R1-R21)
[[2]](diffhunk://#diff-cd97d46bd199c6376c16fe81366404c1a3010d3f75b8b8b9a611d354a9edc2cbR1-R21)
[[3]](diffhunk://#diff-5b88b8712d6bf670a34dd05a496fa7a036b9f53dda262bea1f57deb9a10f6f6eR1-R21)
**Catalog Expansion:**
* Updated the main `apps.json` output to include all new apps with
descriptions and platform information, ensuring visibility in the
maintained apps catalog.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R697-R703)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R739-R745)
[[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R767-R787)
[[4]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R830-R843)
[[5]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R921-R927)
This pull request adds support for several new macOS applications to the
maintained apps system, including their metadata, installation, and
uninstallation scripts. The changes introduce new JSON definitions for
each app, update the main app index, and provide versioned
install/uninstall scripts for deployment automation.
**New app support and integration:**
* Added definitions and metadata for the following applications in the
`inputs/homebrew` directory: UTM, VirtualBox, Viscosity, Wacom Tablet,
Windsurf, and Zeplin. These include details like bundle identifiers,
installer formats, and default categories.
[[1]](diffhunk://#diff-f505c4894da8dff95d8a1fe17b97bde45e8ca3a7fbc7f3d59b4503e438aa8c14R1-R8)
[[2]](diffhunk://#diff-6d3c5db09812e5401dff9317e33d579d9b0cdf2f2cabfc5aea987349b571e02bR1-R8)
[[3]](diffhunk://#diff-12a8fefe26e3a6350dd9530e4c0cf6704159f3752a5000599ed50a18374284a7R1-R8)
[[4]](diffhunk://#diff-8d59fcfade669dc36f4b1d1c3c6151bea12a6546d0f7bc8397bdff11f0c0a732R1-R8)
[[5]](diffhunk://#diff-e231f655a5832c59d4edb934a76f6588626558e3a52adaaef22c2c0e455be342R1-R8)
[[6]](diffhunk://#diff-5b11aeb43017cc56c7f2b89a7de86cf0fbd7e822c43f5652d83684fd33741543R1-R8)
* Updated `outputs/apps.json` to register the new applications,
including descriptions and platform information for UTM, VirtualBox,
Viscosity, Wacom Tablet, Windsurf, and Zeplin.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1257-R1277)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1313-R1319)
[[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1355-R1361)
[[4]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1404-R1410)
**Installer and uninstaller automation:**
* Added versioned install and uninstall scripts for UTM
(`outputs/utm/darwin.json`), VirtualBox
(`outputs/virtualbox/darwin.json`), and Viscosity
(`outputs/viscosity/darwin.json`). These scripts automate mounting disk
images, copying apps, handling package receipts, and cleaning up
user/system files.
[[1]](diffhunk://#diff-6aaef2cade302a02388ce54d43a7a7b2ce0fba667863128e8a9602ad52e42292R1-R21)
[[2]](diffhunk://#diff-6cb1303c0b58d6a02c96133d007d426ace0de8df1f17fde17417c8c56c8c5b0aR1-R21)
[[3]](diffhunk://#diff-8005993d76074a6c94d4e7f8c0bd0c3c2d6b3a599bee394fee47035a84a59dc3R1-R21)
These updates streamline the deployment and management of these macOS
applications within the maintained apps ecosystem.
This pull request adds support for several new macOS applications to the
maintained apps catalog. It introduces metadata, installation, and
uninstallation scripts for each app, and updates the main `apps.json`
output to include these new entries. The changes are grouped into new
app additions and corresponding installer/uninstaller script
implementations.
**New macOS app additions:**
* Added metadata and catalog entries for the following applications:
Egnyte, Elgato Control Center, Elgato Stream Deck, ExpressVPN, Fork,
Front, Ghostty, GIMP, and Hyper. Each app now has a dedicated input JSON
file and an entry in `apps.json` with platform, identifier, and
description.
[[1]](diffhunk://#diff-23ba1125ec0779e89bd0e70b112583b332e841bc14a4920419e0c116f6718aecR1-R8)
[[2]](diffhunk://#diff-c0489d22fc52f53b7a44c4fb6b16c25eb8e22d53772c62bad36c3a874138cc65R1-R8)
[[3]](diffhunk://#diff-96bdb6025cdcaefdb9c689401cfd102ed248ce0360a178da5e208b570967d459R1-R8)
[[4]](diffhunk://#diff-a5441bc7fd33cb26cc4bc787bfec51f8a0384f7270cd7e97958c3a814e71fa7cR1-R8)
[[5]](diffhunk://#diff-82a6115c15a63073e97e105400f396f3b6a6181e787dde23c5b038c1018c4b9eR1-R8)
[[6]](diffhunk://#diff-ddee5c0aabd18f5cbdb8d3cab2a9f069e895401e9dd5f94db2b06af940f286f8R1-R8)
[[7]](diffhunk://#diff-f11cb1fa827924b89af074a0ec08aae96f962abf08133df45a8d326f22ff467bR1-R8)
[[8]](diffhunk://#diff-a481e356326319c0bd932ece074bdd533294a19a333da5dbfc0c081b4052fa1dR1-R8)
[[9]](diffhunk://#diff-ffe0600fd34e997bde34d076822e13354866d9dbc6c6fd43865b4a70f0a479a0R1-R8)
[[10]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R515-R549)
[[11]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R578-R605)
[[12]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R683-R689)
**Installer and uninstaller script implementations:**
* For each new app, added output JSON files containing version info,
installer URLs, SHA256 hashes, and install/uninstall scripts. These
scripts handle application installation and cleanup, including quitting
running apps and removing associated files and directories.
[[1]](diffhunk://#diff-458d8f6eb15663b336e76a6964ca22f83e940b0bef4474391d46a1698cd3dcb4R1-R21)
[[2]](diffhunk://#diff-5f9bd670a42a11fb7ab0bf3575557a938a96d8652497c14e2e8f60369f735bf8R1-R21)
[[3]](diffhunk://#diff-c31491a17eb8dff09d145de13e703188c032a446a8e74060505024c239db208fR1-R21)
These updates expand the catalog’s coverage and ensure proper lifecycle
management for each newly supported app.
This pull request adds support for "DB Browser for SQLite" to the
maintained apps system and frontend, including metadata, installer
details, and icon integration. The changes ensure that "DB Browser for
SQLite" is now recognized, installable, and visually represented in the
software catalog.
**Backend: App Metadata and Installer Integration**
* Added a new input file `db-browser-for-sqlite.json` with metadata for
"DB Browser for SQLite"
(`ee/maintained-apps/inputs/homebrew/db-browser-for-sqlite.json`).
* Generated output files for the app, including listing in `apps.json`
and a detailed installer/uninstaller script with version info and SHA256
checksum (`ee/maintained-apps/outputs/apps.json`,
`ee/maintained-apps/outputs/db-browser-for-sqlite/darwin.json`).
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R403-R409)
[[2]](diffhunk://#diff-4f92dcbeb9f303f8a2b0337097c2c11892b2eb2f73023dc26845f6971d34aa6aR1-R21)
**Frontend: Icon and Mapping Integration**
* Added a new React SVG icon component for "DB Browser for SQLite"
(`DbBrowserForSqLite.tsx`).
* Imported the new icon into the icons index and mapped it in
`SOFTWARE_NAME_TO_ICON_MAP` for correct display on the software page
(`frontend/pages/SoftwarePage/components/icons/index.ts`).
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR56)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR234)
- @noahtalerman: My understanding is that we use this error message for
all platforms. "Select Cancel..." doesn't help the end user on Android
because there's no cancel button. The copy could be more helpful but
with this tweak at least it's not confusing.
This pull request adds support for several new macOS applications to the
maintained apps system. It introduces metadata and installer/uninstaller
scripts for each app and updates the main apps output file to include
them with descriptions and platform information. The most significant
changes are grouped below.
**New Application Integrations:**
* Added support for `balenaEtcher`, including metadata
(`balenaetcher.json`), installer/uninstaller scripts, and entry in
`apps.json` with description.
[[1]](diffhunk://#diff-929134bb1d28b55d168f4dc3e35f9f08a0d1e45d46bcf6f4183f99f79428433cR1-R8)
[[2]](diffhunk://#diff-8d03c90ab45b7ed733912e7ba94c2601b8a80047896ed6812dbacb91d538b2edR1-R21)
[[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R165-R171)
* Added support for `CleanMyMac`, including metadata
(`cleanmymac.json`), installer/uninstaller scripts, and entry in
`apps.json` with description.
[[1]](diffhunk://#diff-a3148bf2381a87133a9daf9bb676da3561b68458fac4a8bf5a13ee4b2ca1e6a0R1-R8)
[[2]](diffhunk://#diff-3c53d70fb16a8d91fddbe12c90115a282738652ce25e082795baff88d67cb4afR1-R21)
[[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R305-R318)
* Added support for `CleanShot X`, `Clockify Desktop`, `CotEditor`,
`DBeaver` (Community, Enterprise, Lite, Ultimate), `DeepL`, and
`Dialpad` with metadata files and entries in `apps.json`.
[[1]](diffhunk://#diff-371522e9c06a5ea355102f316203a3e6c9227337e418fa477c6a70e04f558da4R1-R8)
[[2]](diffhunk://#diff-32597ee59d679b740ccc62e2bf05354aa0918a3662d9949d27f117526128ab62R1-R8)
[[3]](diffhunk://#diff-1be741483848b645a6c7e85e58d79c3b5eb1b4353b27f57316c00ec6e176b6e5R1-R8)
[[4]](diffhunk://#diff-dff15693362fcb9e4b7d6dde7a8eafa67806903a0b05d6ab07e2eb923cf7bbe1R1-R8)
[[5]](diffhunk://#diff-cef23a1c4601fb334e1bd6cc7f4a96a7e25550b08b381942998bb108fc64d58dR1-R8)
[[6]](diffhunk://#diff-5df1e672d5a9546c5acbfe9d82ddddfa82bc946d1c0b18900d5bc055efbbcdd9R1-R8)
[[7]](diffhunk://#diff-b249fc32817185ddef560ebee1c3271e480c8ad3a15e276b9603f573d24b76b2R1-R8)
[[8]](diffhunk://#diff-0c12c073b1a807c9688bc529c1c5ab8682fbd6e8ddeb70cfa44ce9758e5ae4e7R1-R8)
[[9]](diffhunk://#diff-d9099249f5d9ce758e4c9dfe6a5df22821ff466fdcfecb8138f1880b7f9c76e6R1-R8)
[[10]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R305-R318)
[[11]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R340-R346)
[[12]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R361-R367)
[[13]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R403-R451)
**Installer and Uninstaller Scripts:**
* Added custom install and uninstall shell scripts for `balenaEtcher`
and `CleanMyMac`, referenced in their respective output JSON files for
automated deployment and removal.
[[1]](diffhunk://#diff-8d03c90ab45b7ed733912e7ba94c2601b8a80047896ed6812dbacb91d538b2edR1-R21)
[[2]](diffhunk://#diff-3c53d70fb16a8d91fddbe12c90115a282738652ce25e082795baff88d67cb4afR1-R21)
**App Metadata and Categorization:**
* Each new app includes metadata such as name, unique identifier,
installer format, slug, and default categories in its respective input
JSON file for improved organization and categorization.
[[1]](diffhunk://#diff-929134bb1d28b55d168f4dc3e35f9f08a0d1e45d46bcf6f4183f99f79428433cR1-R8)
[[2]](diffhunk://#diff-a3148bf2381a87133a9daf9bb676da3561b68458fac4a8bf5a13ee4b2ca1e6a0R1-R8)
[[3]](diffhunk://#diff-371522e9c06a5ea355102f316203a3e6c9227337e418fa477c6a70e04f558da4R1-R8)
[[4]](diffhunk://#diff-32597ee59d679b740ccc62e2bf05354aa0918a3662d9949d27f117526128ab62R1-R8)
[[5]](diffhunk://#diff-1be741483848b645a6c7e85e58d79c3b5eb1b4353b27f57316c00ec6e176b6e5R1-R8)
[[6]](diffhunk://#diff-dff15693362fcb9e4b7d6dde7a8eafa67806903a0b05d6ab07e2eb923cf7bbe1R1-R8)
[[7]](diffhunk://#diff-cef23a1c4601fb334e1bd6cc7f4a96a7e25550b08b381942998bb108fc64d58dR1-R8)
[[8]](diffhunk://#diff-5df1e672d5a9546c5acbfe9d82ddddfa82bc946d1c0b18900d5bc055efbbcdd9R1-R8)
[[9]](diffhunk://#diff-b249fc32817185ddef560ebee1c3271e480c8ad3a15e276b9603f573d24b76b2R1-R8)
[[10]](diffhunk://#diff-0c12c073b1a807c9688bc529c1c5ab8682fbd6e8ddeb70cfa44ce9758e5ae4e7R1-R8)
[[11]](diffhunk://#diff-d9099249f5d9ce758e4c9dfe6a5df22821ff466fdcfecb8138f1880b7f9c76e6R1-R8)
**Main Apps Output Update:**
* Updated `apps.json` to include all new applications, complete with
platform, unique identifier, and descriptive text for each, ensuring
visibility in the maintained apps catalog.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R165-R171)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R305-R318)
[[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R340-R346)
[[4]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R361-R367)
[[5]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R403-R451)
This pull request adds support for several new macOS applications to the
maintained apps system. It introduces input definitions, output package
specifications (including install/uninstall scripts), and updates the
central `apps.json` registry to include metadata for these new apps. The
main focus is on expanding the catalog with communication, developer,
productivity, and browser tools.
**New app support and metadata:**
* Added input definitions for the following apps, specifying their
identifiers, installer formats, and categories:
- Aircall (`aircall.json`)
- Amazon Chime (`amazon-chime.json`)
- Anka (`anka-virtualization.json`)
- Apparency (`apparency.json`)
- Archaeology (`archaeology.json`)
- Audacity (`audacity.json`)
- Avast Secure Browser (`avast-secure-browser.json`)
- AWS Client VPN (`aws-vpn-client.json`)
**Installer and uninstaller automation:**
* Added detailed install and uninstall scripts for each new app in their
respective output package files, handling application installation,
application quitting, and cleanup of related files and services.
[[1]](diffhunk://#diff-69612a2273163047de2ee0e4446f923c345c2deda667da654faed9432fb7d955R1-R21)
[[2]](diffhunk://#diff-b85f25e5875032d395e9a68bb3fbda92ac1411d0e1cd6ec4d161b65a60306b39R1-R21)
[[3]](diffhunk://#diff-5ce44247a9095604b20b7b52648b84ff211ed6f71a8bd23c8d1bafc88d00a408R1-R21)
[[4]](diffhunk://#diff-dbe46146299146d8e6a02593fe835bf16c17d690e6e76d90dfa9f16b63a8aa48R1-R21)
**Catalog update:**
* Updated `apps.json` to include metadata (name, slug, platform, unique
identifier, and description) for all newly supported apps, making them
available in the maintained apps catalog.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R74-R129)
[[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R144-R164)
This pull request adds support for the Bruno application to both the
backend maintained apps system and the frontend software page. The main
changes introduce Bruno's metadata, installation and uninstallation
scripts, and its icon for display in the UI.
**Backend: Bruno app integration**
* Added `bruno.json` input definition for Bruno, specifying its
installer format, unique identifier, and default categories.
* Updated `apps.json` output to include Bruno with its description,
platform, and slug.
* Created output file `bruno/darwin.json` with Bruno's version info,
installer and uninstall script references, SHA256 checksum, and
category.
**Frontend: Bruno icon and mapping**
* Added `Bruno.tsx` SVG icon component for Bruno.
* Imported Bruno icon in the icons index and mapped it in
`SOFTWARE_NAME_TO_ICON_MAP` for use on the software page.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR25)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR183)
This pull request adds support for the Arc browser to both the backend
maintained apps and the frontend software icons. The main changes
include adding Arc's metadata and install/uninstall scripts, updating
the apps listing, and providing a new SVG icon for Arc in the frontend.
**Backend: Arc browser support**
* Added Arc's metadata to `arc.json`, including its identifier,
installer format, and default categories.
* Created `arc/darwin.json` with version info, install/uninstall
scripts, and installer details for Arc on macOS.
* Updated `apps.json` to include Arc in the list of supported apps, with
a user-friendly description.
**Frontend: Arc browser icon**
* Added a new SVG icon component for Arc in `Arc.tsx`.
* Registered Arc in the icon index and mapped its name to the new icon
for use in the software page.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR18)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR175)
This pull request adds support for managing Blender as a maintained app
on both macOS and Windows platforms. It includes new app definitions,
installation and uninstallation scripts, and integrates Blender’s icon
into the frontend for display.
**Blender app support (macOS & Windows):**
* Added input definitions for Blender in `homebrew/blender.json` (macOS)
and `winget/blender.json` (Windows), specifying installer formats and
metadata.
[[1]](diffhunk://#diff-891fa47f83954f81130e9a15f0fe60497916acb54a89b78478215cb08e9fb0e8R1-R8)
[[2]](diffhunk://#diff-69ce1c29dce360a4dd0033a269811880ea700530661b9b73c1f02bbc37145f91R1-R10)
* Updated `apps.json` to include Blender entries for both platforms,
with descriptions and unique identifiers.
* Created output manifests for Blender on macOS (`blender/darwin.json`)
and Windows (`blender/windows.json`), including version info, installer
URLs, SHA256 hashes, and install/uninstall scripts.
[[1]](diffhunk://#diff-10617b0d1fdc87b778d38cf37a7a3ba479561eedb55b9c6cf8f5128abb224de1R1-R21)
[[2]](diffhunk://#diff-a295dabd830631ee695b318097606d605b1d511cf32b46c9663c06ebbf24182bR1-R22)
**Frontend integration:**
* Added a new Blender SVG icon component (`Blender.tsx`) and registered
it in the software icon map for display on the Software Page.
[[1]](diffhunk://#diff-ba9ba14ef95d070975d2aa0e46b19d118bc9c167aeeb34b45ba48d2c1cc5848cR1-R14)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR22)
[[3]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR179)
This pull request updates the icon mapping for software sources in the
`SoftwarePage` component. The most important change is that the icon for
`programs` is now set to `WindowsAppRemote` instead of `WindowsApp`.
* Updated the `SOFTWARE_SOURCE_TO_ICON_MAP` in
`frontend/pages/SoftwarePage/components/icons/index.ts` to use
`WindowsAppRemote` for the `programs` key instead of `WindowsApp`.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#36762
<img width="852" height="624" alt="Screenshot 2025-12-05 at 1 07 26 PM"
src="https://github.com/user-attachments/assets/f8624566-faaf-4c56-a1b5-608ea2bb976d"
/>
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
- [x] Changes file added for user-visible changes in `changes/
- [x] QA'd all new/changed functionality manually
Icon mapping was explicitly looking for `zoom.us.app`. It also needs to
match on `zoom.us`. I am holding off on matching anything that starts
with `zoom*` since this might interfere with the other Zoom apps.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#35058
- Open the Query save or save-as-new-ing flows in the UI even when a
syntax error is found in the Query's SQL.
- Continue blocking save when the query is empty
- Update tests
- JS –> TS housekeeping
<img width="1162" height="1248" alt="Screenshot 2025-12-02 at 4 31
47 PM"
src="https://github.com/user-attachments/assets/23b4e70d-f104-4b0e-b316-c03fb6492f59"
/>
<img width="1162" height="1248" alt="Screenshot 2025-12-02 at 4 31
50 PM"
src="https://github.com/user-attachments/assets/5b5ad0b7-36f0-4c5e-a2ff-e9665263c8f1"
/>
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
- [x] Changes file added for user-visible changes in `changes/`
- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
* "invalid" according to Fleet's UI. Though we make efforts to fix false
negatives here as we become aware of them, that parsing is imperfectly
aligned with SQL that osquery considers valid
- Getting all current FMA's icons added to index.ts
- Updating the generate-icons.sh script to automatically add icons to
the index.ts file
---------
Co-authored-by: Jahziel Villasana-Espinoza <jahziel@fleetdm.com>
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves #
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
## Testing
- [x] Added/updated automated tests
- [x] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)
- [x] QA'd all new/changed functionality manually
For unreleased bug fixes in a release candidate, one of:
- [x] Confirmed that the fix is not expected to adversely impact load
test results
---------
Co-authored-by: Jahziel Villasana-Espinoza <jahziel@Jahziels-MacBook-Pro-2.local>
Co-authored-by: Ian Littman <iansltx@gmail.com>