Add support for Druva inSync: new winget input
(ee/maintained-apps/inputs/winget/druva-insync.json), app metadata
(added entry in ee/maintained-apps/outputs/apps.json) and
platform-specific output with version, installer URL,
installer/uninstaller script refs, sha256 and upgrade_code
(ee/maintained-apps/outputs/druva-insync/windows.json). Also add
frontend icon component and mapping
(frontend/pages/SoftwarePage/components/icons/DruvaInSync.tsx and
index.ts) plus the PNG asset
(website/assets/images/app-icon-druva-insync-60x60@2x.png) so the app is
manageable and visually represented in the UI.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#43702
Add metadata and install/uninstall automation for Thunderbird on
Windows. Adds ee/maintained-apps/inputs/winget/thunderbird.json plus
PowerShell install/uninstall scripts (NSIS silent /S, install uses
/PreventRebootRequired=true; uninstall resolves registry entry for x64
en-US and appends /S). Update maintained apps outputs: register
Thunderbird in ee/maintained-apps/outputs/apps.json and add
ee/maintained-apps/outputs/thunderbird/windows.json (version 149.0.2,
installer URL and sha256, script refs). Also update frontend icon
component and app PNG asset for Thunderbird.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#43526
Add support for Granola (Windows) including winget input,
installer/uninstaller scripts, and output metadata. Added
ee/maintained-apps/inputs/winget/granola.json plus install/uninstall
PowerShell scripts, and new
ee/maintained-apps/outputs/granola/windows.json containing version
7.128.0, installer URL and script refs (with SHA256). Also register
Granola in ee/maintained-apps/outputs/apps.json and update the frontend
icon and website app image assets for Granola.
Add Windows support for Linear: new winget input
(ee/maintained-apps/inputs/winget/linear.json) with installer metadata
and category, plus install/uninstall PowerShell scripts. Add output
metadata (ee/maintained-apps/outputs/linear/windows.json) including a
version entry, installer URL, sha256 and script refs, and register the
app in apps.json. Update frontend icon component to reference a new PNG
and add the image asset.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#43501
Resolves#42714.
Zed + Opus 4.6; initial prompts (see additional ones in follow-on
commits):
---
Audit our existing Fleet Maintained App catalog. Look for:
1. Software that has the wrong identifiers associated (e.g. Abstract),
e.g. in `exists` queries
2. Software that has the version number in the name that leaks into the
`exists` query, e.g. 7-zip or 010 Editor or Airtame. These should be
fuzzy-matched.
For each affected app, revise input manifests to fix the issues. For
(1), revise apps.json if needed as well. Don't modify apps.json for (2)
cases.
---
Are there any discrepancies between bundle identifiers in input
manifests for Darwin apps and apps.json? If so, fix them.
---
Outputs will get overwritten by the ingester if neither the ingester nor
the input JSON files are changed. Make whatever changes need to be made
so that these edits survive an FMA ingestion cycle.
---
Revise `fuzzy` to allow specifying a custom value e.g. `Mozilal Firefox
% (ESR)` in addition to the existing true/false, then use that new
functionality to build unique queries for Firefox ESR.
---
Commit these changes, across multiple commits (there will be cases where
a changes to a single file will be spread across multiple commits, most
notably apps.json). Split commits out as follows:
1. All darwin-related changes
2. Windows switches to fuzzy matching + associated unique_identifier
changes
3. Revised handling for Firefox ESR
Prefix commit messages with "🤖 ".
---
The ingester and test changes should've gone in commit 3. Move them
there from commit 2.
---
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Updated application identifiers for Abstract, Amazon Chime, Beyond
Compare, and Teleport Suite to use correct bundle and package
identifiers.
* Enhanced Windows and macOS installation detection queries to match
multiple application versions using pattern matching instead of exact
version strings.
* **New Features**
* Added support for configurable fuzzy matching patterns to improve
application name matching flexibility.
* **Tests**
* Added tests validating fuzzy matching configuration unmarshaling and
behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Change Claude package from EXE to MSIX: update input metadata, replace
the installer script to provision the MSIX machine-wide and attempt
per-user registration, and rewrite the uninstaller to remove provisioned
and installed Appx packages (with best-effort package matching, timeout
handling, and safer error reporting). Update Windows output metadata:
bump version, update installer URL and sha256, and refresh
install/uninstall script refs to the new MSIX-based implementations.
Bump Cursor to 3.0.12 and Docker to 4.67.0: update installer URLs and
SHA256 hashes, add 'patched' SQL queries for version checks in Windows
outputs, and normalize default_categories from "Developer Tools" to
"Developer tools" in winget inputs and outputs.
This pull request transitions the Windows Slack package from an
MSI-based installer to an MSIX-based installer, updating the ingestion
logic, install/uninstall scripts, and package metadata to support the
new format. It also updates the Slack version and the associated
detection queries to match the MSIX deployment. The most important
changes are:
**Slack Package Migration to MSIX:**
* Changed the Slack package definition in `slack.json` to use
`installer_type: msix`, set the installer scope to `user`, and
referenced new install/uninstall scripts tailored for MSIX.
* Updated the output package version to `4.49.81`, switched the
installer URL to the MSIX package, and adjusted detection queries to
match the new MSIX app name and publisher.
**Installer/Uninstaller Script Updates:**
* Added a new PowerShell install script (`slack_install.ps1`) that
provisions the MSIX package machine-wide and registers it for the
current user to improve inventory visibility.
* Added a new PowerShell uninstall script (`slack_uninstall.ps1`) that
removes both provisioned and per-user MSIX installations, with a timeout
and error handling.
**Ingestion Logic Enhancements:**
* Updated the `wingetIngester` logic to handle MSIX installers by
populating `ProductCode` from `PackageFamilyName` when needed, and to
extract only the prefix for MSI product codes.
* Extended the `installer` struct to include a `PackageFamilyName` field
for MSIX support.
This pull request adds support for the "Google Credential Provider for
Windows" application to the maintained apps system, including its
metadata, installation logic, and user interface icon. The changes
ensure that the app is properly recognized, categorized, and visually
represented in the frontend.
**New application support:**
- Added metadata for "Google Credential Provider for Windows" in
`winget` input, including identifiers, architecture, installer type, and
default category.
- Added output configuration for the app, specifying version, detection
query, installer/uninstaller scripts, installer URL, and SHA256 hash.
- Registered the app in the main `apps.json` output with a description
and platform information.
**Frontend/UI updates:**
- Added a new React SVG icon component for "Google Credential Provider
for Windows" in the software page.
- Registered the new icon in the icons index and mapped the app name to
the icon in the `SOFTWARE_NAME_TO_ICON_MAP`.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR13)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR317)
Adds Krita (free and open-source digital painting application) as a
Fleet Maintained App for macOS and Windows.
## Changes
- **macOS**: Homebrew cask `krita`, DMG installer, bundle ID
`org.kde.krita`
- **Windows**: WinGet `KDE.Krita`, NSIS EXE installer with custom silent
install/uninstall scripts
- Icon generated from KDE official icon (128x128 PNG), added to icon
index
- Both platforms added to `apps.json` alphabetically (after Keka, before
LastPass)
## Testing
- macOS ingester ran successfully: `go run cmd/maintained-apps/main.go
--slug="krita/darwin" --debug`
- Windows ingester ran successfully: `go run cmd/maintained-apps/main.go
--slug="krita/windows" --debug`
- Output files generated: `ee/maintained-apps/outputs/krita/darwin.json`
and `windows.json`
## Related issue
Add Krita FMA
## Summary
- Adds Ollama as a fleet-maintained app (FMA) with support for both
macOS and Windows platforms
- Ollama is a popular tool to get up and running with large language
models locally
## Changes
### macOS (Darwin)
- **Input**: `ee/maintained-apps/inputs/homebrew/ollama.json` — uses
Homebrew cask `ollama-app`
- **Installer format**: `zip`
- **Bundle identifier**: `com.electron.ollama`
- **Output**: `ee/maintained-apps/outputs/ollama/darwin.json` —
generated via `go run cmd/maintained-apps/main.go --slug="ollama/darwin"
--debug`
### Windows
- **Input**: `ee/maintained-apps/inputs/winget/ollama.json` — uses
WinGet package `Ollama.Ollama`
- **Installer type**: `exe` (Inno Setup)
- **Installer scope**: `user`
- **Custom scripts**: `ollama_install.ps1` and `ollama_uninstall.ps1`
with Inno Setup silent flags (`/VERYSILENT /SUPPRESSMSGBOXES
/NORESTART`)
- **Output**: `ee/maintained-apps/outputs/ollama/windows.json` —
generated via `go run cmd/maintained-apps/main.go
--slug="ollama/windows" --debug`
### App catalog
- Added Ollama entries (darwin + windows) to
`ee/maintained-apps/outputs/apps.json` with description
## Notes
- Icon generation and frontend integration (`tools/software/icons`)
still need to be done separately per the FMA contributing guide
- Category: `Developer tools`
Built for [Mitch
Francese](https://fleetdm.slack.com/archives/D0AG92RJGHY/p1773163983187599?thread_ts=1773163736.129729&cid=D0AG92RJGHY)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Mitch Francese <2227948+tux234@users.noreply.github.com>
This pull request adds support for the Windows version of the Claude
desktop app to the maintained apps system. The changes include new
metadata, installation and uninstallation scripts, and integration into
the outputs that track available apps and versions.
Integration of Claude for Windows:
* Added `claude/windows` entry to the maintained apps outputs
(`ee/maintained-apps/outputs/apps.json`) to make the Windows version of
Claude discoverable and manageable.
* Introduced version tracking and metadata for `claude/windows`,
including installer URL, install/uninstall scripts, and SHA256 hash in
`ee/maintained-apps/outputs/claude/windows.json`.
Install/uninstall scripting:
* Added a PowerShell install script
(`ee/maintained-apps/inputs/winget/scripts/claude_install.ps1`) that
runs the Claude installer in silent mode and handles errors gracefully.
* Added a PowerShell uninstall script
(`ee/maintained-apps/inputs/winget/scripts/claude_uninstall.ps1`) that
locates the Claude uninstall entry, parses uninstall arguments, ensures
silent uninstallation, and terminates running processes.
Metadata for Windows app management:
* Created `claude.json` metadata file for Windows app management,
specifying installer details, script paths, and default categories.
This pull request adds Windows support for GIMP version 3.0.8-2 to the
maintained apps. It introduces new install and uninstall scripts,
updates the app metadata, and provides integration details for Fleet's
package management.
New GIMP Windows app integration:
* App metadata: Added `gimp.json` in the `winget` inputs directory,
specifying package details, installer type, architecture, and default
categories.
* App listing: Updated `apps.json` to include the new GIMP Windows entry
with platform, slug, unique identifier, and description.
Installer and uninstaller scripts:
* Install script: Added `gimp_install.ps1` for silent, machine-scope
installation using Inno Setup installer flags.
* Uninstall script: Added `gimp_uninstall.ps1` for silent removal,
including logic to locate the correct uninstaller and handle edge cases.
Fleet integration and versioning:
* App version definition: Created `gimp/windows.json` output file,
detailing version, installer URL, install/uninstall script references,
SHA256, and Fleet query for existence.
This pull request adds support for managing the Okta Verify app on
Windows via the maintained apps system. It introduces new ingestion
logic for handling WiX Burn installers, adds input and output
definitions for Okta Verify, and provides install/uninstall scripts
tailored for EXE-based (Burn) installers. The changes also ensure Okta
Verify is properly listed and categorized in the maintained apps
outputs.
**Okta Verify Windows app support:**
* Added a new input definition for Okta Verify on Windows, including
installer details and categorization in
`ee/maintained-apps/inputs/winget/okta-verify.json`.
* Added install (`okta_verify_install.ps1`) and uninstall
(`okta_verify_uninstall.ps1`) PowerShell scripts for Okta Verify,
supporting silent installation/uninstallation for EXE/Burn installers.
[[1]](diffhunk://#diff-fa86938dc330e2678c50210585ea8885283546dc370017fd6f3996f12af284b9R1-R27)
[[2]](diffhunk://#diff-944cc7275484b5010c66369e563c3d09a618d67295da5221e945aebc42b033dcR1-R96)
* Added Okta Verify Windows app entry to the maintained apps output
(`apps.json`) and created a detailed output file with version, installer
URL, scripts, and detection query in `outputs/okta-verify/windows.json`.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1145-R1151)
[[2]](diffhunk://#diff-0c852c8b0817f497526b3eb76c2074cece7ed002f5ffa6a2ea7771affdd90f52R1-R21)
**Improvements to installer ingestion logic:**
* Updated the Winget ingester to recognize "burn" (WiX Burn
bootstrapper) as an installer type and normalize it to "exe" for
processing, ensuring correct handling of Burn-based installers.
[[1]](diffhunk://#diff-eb6c4ae7be41e61a2292c4240de750809d40c0686fb01f80f52df056ebc9c2a8R488)
[[2]](diffhunk://#diff-eb6c4ae7be41e61a2292c4240de750809d40c0686fb01f80f52df056ebc9c2a8R223-R227)
This pull request adds support for the PuTTY application (Windows) to
the maintained apps system, including metadata,
installation/uninstallation scripts, and frontend icon integration. The
changes ensure that PuTTY can be managed and visually represented in the
software catalog.
**Maintained Apps Integration:**
- Added a new input file `putty.json` with PuTTY metadata for Windows,
specifying installer details and categories.
- Generated an output file `putty/windows.json` containing version
information, install/uninstall scripts, installer URL, and SHA256 hash
for PuTTY.
- Updated the aggregated `apps.json` output to include PuTTY with its
description and unique identifier for the Windows platform.
**Frontend/Icon Integration:**
- Added a new React SVG icon component for PuTTY in `Putty.tsx`.
- Registered the PuTTY icon in the icon index and mapped it in
`SOFTWARE_NAME_TO_ICON_MAP` for display in the software catalog.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR15)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR412)
This pull request adds support for the LastPass password manager to the
maintained apps ecosystem, including its metadata, installation and
uninstallation scripts, and a new icon for the frontend. The changes
ensure that LastPass can be managed like other supported applications
and is visually represented in the software UI.
**LastPass app integration:**
* Added LastPass metadata to `winget` inputs, including installer
details and default categories.
* Added LastPass to the maintained apps output list (`apps.json`) with a
description for display in the UI.
* Created a new output file for LastPass (`lastpass/windows.json`)
specifying versioning, detection queries, install/uninstall scripts, and
installer hash.
**Frontend/UI updates:**
* Added a new React SVG icon component for LastPass (`LastPass.tsx`).
* Registered the LastPass icon in the software icon map so it appears in
the UI when LastPass is detected.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR10)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR297)
This pull request adds support for managing the Yubico Authenticator
application on Windows. The changes introduce the necessary metadata,
installation and uninstallation scripts, and update the application
catalog to include this new platform-specific entry.
**Addition of Yubico Authenticator for Windows:**
* Added a new input file with metadata for the Windows version of Yubico
Authenticator, specifying details like package identifier, architecture,
and default categories in `yubico-authenticator.json`.
* Created an output file containing version information, installation
and uninstallation scripts, installer URL, SHA256 hash, and upgrade code
for Yubico Authenticator on Windows in
`yubico-authenticator/windows.json`.
* Updated the main application catalog (`apps.json`) to include a
Windows-specific entry for Yubico Authenticator, with appropriate slug
and description.
**Frontend icon update:**
* Updated the image data for the Yubico Authenticator icon in the
frontend component to reflect the correct or updated icon asset.
Deleted all configuration, install/uninstall scripts, and output files
related to the Microsoft Company Portal app from maintained-apps. Also
removed its entry from the apps.json manifest.
`Microsoft.CompanyPortal` was removed from `winget` recently in favor of
the `msstore` version:
https://github.com/microsoft/winget-pkgs/pull/330295
Attempting to install the existing FMA in Fleet results in a certificate
error.
## Summary
Fixes the publisher name in the 1Password Windows Fleet-maintained app
query to match the actual Windows registry value.
## Issue
The generated query was using `AgileBits Inc.` (capital 'B') from the
winget manifest, but Windows registry shows the publisher as `Agilebits
Inc.` (lowercase 'b'). This caused a mismatch preventing Fleet from
properly matching the installed software with the Fleet-maintained app.
## Changes
- Added `program_publisher` override to `inputs/winget/1password.json`
with the correct publisher name
- Regenerated output manifest with corrected query
## Test plan
- [x] Verify the query matches actual Windows registry value on a test
host
- [x] Confirm Fleet can now properly match installed 1Password software
## Summary
Fixes the app name in the Slack Windows Fleet-maintained app query to
match the actual Windows registry value.
## Issue
The generated query was using `Slack` as the app name, but Windows
registry shows the app name as `Slack (Machine - MSI)`. This caused a
mismatch preventing Fleet from properly matching the installed software
with the Fleet-maintained app.
## Changes
- Updated `unique_identifier` in `inputs/winget/slack.json` from
`"Slack"` to `"Slack (Machine - MSI)"`
- Regenerated output manifest with corrected query
- Version updated to 4.47.69 (latest available)
## Test plan
- [x] Verify the query matches actual Windows registry value on a test
host
- [x] Confirm Fleet can now properly match installed Slack software
This pull request adds support for Notepad++ as a maintained application
in the system. It includes metadata, installation and uninstallation
scripts, version tracking, and a custom icon for the frontend. The main
changes are grouped into backend app definition and scripting,
versioning/output updates, and frontend UI enhancements.
**Backend: Notepad++ App Definition and Scripting**
- Added a new app definition for Notepad++ in `winget` format, including
metadata and references to install/uninstall scripts (`notepad++.json`).
- Implemented PowerShell scripts for silent installation and
uninstallation of Notepad++ using NSIS-compatible flags
(`notepad++_install.ps1`, `notepad++_uninstall.ps1`).
[[1]](diffhunk://#diff-dbe7f508350f3d388cd03eba8739d31334cd4e8a20545dec83d40612cbb51190R1-R29)
[[2]](diffhunk://#diff-cda39039b54d874cec215f12e62ca7183f790fefe54d79affcb6f4965a305dbbR1-R99)
**Versioning and Outputs**
- Added Notepad++ entry to the main output apps registry (`apps.json`),
enabling it to be recognized as a supported app.
- Created a Notepad++ versioned output file for Windows, including
detection query, installer URL, SHA256, and script references.
**Frontend: UI Enhancements**
- Added a custom Notepad++ SVG icon component for use in the software
page UI (`Notepad++.tsx`).
- Registered the Notepad++ icon in the icon index and mapped it for
display with the app name.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR8)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR376)
Deleted Microsoft Teams Windows app definition and output files, and
removed its entry from the main apps.json. This cleans up legacy support
for the old Teams Windows package.
This pull request adds full support for managing the installation and
uninstallation of Spotify on Windows via winget in the maintained apps
system. It introduces new configuration and script files, updates output
manifests, and ensures that both install and uninstall processes are
handled silently and robustly.
**Spotify Windows app integration:**
* Added a new manifest `spotify.json` in
`ee/maintained-apps/inputs/winget` to define Spotify's winget package
details, including references to custom install and uninstall scripts.
* Updated `ee/maintained-apps/outputs/apps.json` to register the Spotify
Windows app, enabling it to be discovered and managed by the platform.
* Added a new output manifest
`ee/maintained-apps/outputs/spotify/windows.json` specifying the
installer URL, version, install/uninstall script references, and
detection query for Spotify.
**Installation and uninstallation scripting:**
* Introduced a PowerShell install script `spotify_install.ps1` that
performs a silent installation of Spotify, handling exit codes and
errors gracefully.
* Added a PowerShell uninstall script `spotify_uninstall.ps1` that
locates Spotify's uninstaller via the registry, kills running processes,
and executes the uninstall silently, preserving existing arguments and
handling errors.
This pull request adds support for managing OBS Studio on Windows using
Winget, including new install and uninstall scripts for automated
deployment and removal. The main changes are the introduction of a
metadata file for OBS Studio and robust PowerShell scripts to handle
silent installation and uninstallation.
**OBS Studio Winget Integration:**
* Added a new metadata file `obs.json` describing OBS Studio for Winget
management, including identifiers, script paths, and default categories.
**Installation Script:**
* Introduced `obs_install.ps1`, a PowerShell script that installs OBS
Studio silently using the `/S` flag, captures the installer exit code,
and handles errors gracefully.
**Uninstallation Script:**
* Added `obs_uninstall.ps1`, a PowerShell script that locates the OBS
Studio uninstaller via the Windows registry, ensures all running OBS
processes are stopped, parses the uninstall command, and performs a
silent uninstall (also with `/S`), including error handling and exit
code reporting.
This pull request adds support for the Windows version of Sourcetree
Enterprise to the maintained apps catalog. The changes introduce
metadata, installation, and uninstallation details for this app,
ensuring it can be managed and deployed via Fleet.
**Addition of Sourcetree Enterprise (Windows):**
* Added a new input definition for Sourcetree Enterprise in
`winget/sourcetree.json`, specifying package identifiers and installer
details.
* Updated `apps.json` to include Sourcetree Enterprise for the Windows
platform, with appropriate metadata and description.
* Created a new output file `sourcetree/windows.json` with version info,
install/uninstall PowerShell scripts, installer URL, SHA256 hash, and
upgrade code for proper management.
This pull request adds support for managing the Inkscape application on
Windows. It introduces new configuration files and updates existing
outputs to include Inkscape as a managed app, complete with installation
and uninstallation scripts.
**Addition of Inkscape for Windows:**
* Added a new input configuration for Inkscape in `winget`, specifying
installer details and default categories in `inkscape.json`.
* Created a new output file `inkscape/windows.json` with version
information, download URL, SHA256 hash, install/uninstall scripts, and
upgrade code for Inkscape 1.4.2.
**Updates to application listings:**
* Updated `apps.json` to include Inkscape for Windows as a managed app,
with its platform, slug, unique identifier, and description.
This pull request adds support for managing Steam as a maintained
application on both macOS (darwin) and Windows platforms. It introduces
new metadata, installation, and uninstallation scripts, and updates the
aggregated app catalog to include Steam for both platforms.
**Steam app integration:**
- Added metadata and configuration files for Steam on macOS and Windows,
including installation details, unique identifiers, and categorization.
[[1]](diffhunk://#diff-c281dce9b3fb0c07ee0240f023b10f04f90d714ede790faa62a0e6f140db35b2R1-R8)
[[2]](diffhunk://#diff-2f3d984248d056735d116afea075ebb59e8e209b4a35ecc35bc82c21f760ed7aR1-R12)
- Updated the main `apps.json` catalog to include Steam entries for both
platforms, complete with descriptions and platform-specific slugs.
**Installer and uninstaller scripts:**
- Added a PowerShell installation script for Windows that installs Steam
silently using the `/S` flag.
- Added a PowerShell uninstallation script for Windows that locates the
Steam uninstaller and removes it silently, handling both 32-bit and
64-bit registry locations.
- Added macOS shell scripts (referenced in the output) for installing
and uninstalling Steam, including logic to quit running processes and
clean up associated files.
**App version outputs:**
- Created output files for both `steam/darwin.json` and
`steam/windows.json`, specifying version information, detection queries,
installer URLs, script references, and default categories.
[[1]](diffhunk://#diff-12ddb40a8998c18e5806cefa53ded63d64144a101d2cab1dfbbe78093e8cddeaR1-R21)
[[2]](diffhunk://#diff-6a83a89e114cb2281eb5ee80b6f574a374304c1baa60b927c7e1096044814a55R1-R21)
This pull request updates the configuration for the Google Chrome
maintained app on Windows to bypass hash checking for the installer.
This change ensures that installations will proceed even if the
installer hash changes, which can help avoid issues with frequent
upstream updates.
Configuration changes for hash checking:
* Added `"ignore_hash": true` to the `winget/google-chrome.json` input
file to instruct the system to skip hash verification during
installation.
* Set `"sha256": "no_check"` in the `outputs/google-chrome/windows.json`
output file to explicitly indicate that the installer hash should not be
checked.
This pull request adds support for the CrashPlan backup and recovery
software to the maintained apps ecosystem for both macOS (Homebrew) and
Windows (Winget). It introduces new metadata, installation and
uninstallation scripts, and integrates CrashPlan into the application's
UI, including a dedicated icon.
**CrashPlan app support:**
- Added CrashPlan metadata for Homebrew (`crashplan.json`) and Winget
(`crashplan.json`), specifying identifiers, installer details, and
default categories.
[[1]](diffhunk://#diff-65666812266569e4f2198de5e97a2a0a2e02974e5b134dac13e9bd9fecc3109bR1-R8)
[[2]](diffhunk://#diff-c8f7deea2ce492ea0903ba3fcfdcf7a6df342b935c284dca8564f449f1247f39R1-R10)
- Included CrashPlan in the aggregated app listings (`apps.json`) for
both macOS and Windows platforms, with descriptions.
**Installer and uninstaller scripts:**
- Added versioned output and installation/uninstallation scripts for
CrashPlan on macOS (`crashplan/darwin.json`) and Windows
(`crashplan/windows.json`), including download URLs, SHA256 hashes, and
detection queries.
[[1]](diffhunk://#diff-13c8cfd39d6d7d8faabce6b6d7f6566275a4c7d09c37ca9cc9726e09c89cc60bR1-R21)
[[2]](diffhunk://#diff-5f7d9507b93b3c61d2035dd964d399e666e308be0cf46be8c358702c57b6927bR1-R22)
**UI integration:**
- Introduced a new CrashPlan SVG icon component (`CrashPlan.tsx`) and
mapped it in the software icon index for use in the UI.
[[1]](diffhunk://#diff-508f123066743b5b4f4de19a92f3aa6c1055e8cda2a5a9e8f57c99aed29df681R1-R14)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR7)
[[3]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR282)
This pull request adds support for managing 7-Zip as a maintained
Windows application. The changes include configuration for installation
and uninstallation, workflow updates to handle 7-Zip specifically in CI,
and a new icon for the frontend. These updates ensure that 7-Zip can be
detected, installed, uninstalled, and visually represented in the
software management system.
**Windows workflow and detection updates:**
- Updated `.github/workflows/test-fma-windows-pr-only.yml` to detect
changes related to 7-Zip, set a `has_7zip` output variable, and add a
step to remove pre-installed 7-Zip versions before proceeding with
further app verification. This prevents conflicts with pre-existing
installations during CI runs.
[[1]](diffhunk://#diff-51641fd1d2cc19348b81fd8310b62ad270ca5082ceddff2d49064e78f126a1eaR91)
[[2]](diffhunk://#diff-51641fd1d2cc19348b81fd8310b62ad270ca5082ceddff2d49064e78f126a1eaR102)
[[3]](diffhunk://#diff-51641fd1d2cc19348b81fd8310b62ad270ca5082ceddff2d49064e78f126a1eaR117-R124)
[[4]](diffhunk://#diff-51641fd1d2cc19348b81fd8310b62ad270ca5082ceddff2d49064e78f126a1eaR164-R227)
**7-Zip application configuration:**
- Added `ee/maintained-apps/inputs/winget/7-zip.json` to define 7-Zip as
a maintained app with metadata such as slug, package identifier,
installer type, and categories.
- Added `ee/maintained-apps/outputs/7-zip/windows.json` with version
info, installation and uninstallation scripts, SHA256, and upgrade code
for 7-Zip, enabling automated install/uninstall flows.
- Updated `ee/maintained-apps/outputs/apps.json` to include 7-Zip in the
list of available apps, with a description and unique identifier for
display and selection.
**Frontend icon support:**
- Added a new React SVG icon component for 7-Zip at
`frontend/pages/SoftwarePage/components/icons/7Zip.tsx`.
- Registered the 7-Zip icon in the icon index and mapped it in
`SOFTWARE_NAME_TO_ICON_MAP` to display the icon for 7-Zip in the UI.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR7)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR224)
### Summary
This PR adds support for `.zip` files as Windows Fleet Managed Apps
(FMAs). Zip files on Windows are treated similarly to `.exe` files and
require custom install/uninstall scripts, typically used for AppX/MSIX
packages that are distributed as zip archives.
### Changes
**Backend:**
- Added `.zip` as a supported Windows package type in
`SoftwareInstallerPlatformFromExtension`
- Updated validation to require install/uninstall scripts for zip files
(similar to `.exe` files)
- Added `addZipPackageMetadata` function to handle zip file metadata
extraction
- Updated error messages to include `.zip` in the list of supported file
types
- Enhanced `appExists` validation to detect provisioned AppX packages
(packages that are provisioned for all users but don't show up in the
programs table until a user logs in)
- Added version normalization logic to handle version string differences
(e.g., "11.2.1495.0" vs "11.2.1495")
- Updated winget ingester to recognize zip files and default to user
scope for MSIX/zip installers
**Frontend:**
- Added `.zip` to `windowsPackageTypes` in `package_type.ts`
- Updated `PackageAdvancedOptions` component to require
install/uninstall scripts for zip files
- Added validation rules for zip files in `PackageForm/helpers.tsx`
- Updated help text and tooltips to indicate script requirements for zip
packages
- Updated `software_install_scripts.ts` to include zip in default script
handling
**Maintained Apps:**
- Added Microsoft Company Portal as a maintained app example using zip
files
- Created install/uninstall PowerShell scripts that:
- Extract zip files containing AppX packages
- Provision packages for all future users (works in headless
environments)
- Install packages for the current user
- Handle both provisioned and installed package detection
**Tests:**
- Updated integration tests to include `.zip` in supported file type
error messages
- Updated unit tests for `SoftwareInstallerPlatformFromExtension` and
`SofwareInstallerSourceFromExtensionAndName`
### Use Case
This enables distribution of Windows AppX/MSIX packages that are
packaged as zip files (common for Microsoft Store apps like Company
Portal). The implementation handles both provisioned packages (for all
users) and user-installed packages, ensuring detection works in both
headless and interactive environments.
### Testing
- Updated existing tests to include zip file support
- Added Microsoft Company Portal as a maintained app example with full
install/uninstall scripts
---
**Note:** This PR follows the same pattern as `.exe` file support,
requiring custom install/uninstall scripts since zip files can contain
various content types that need custom handling.
This pull request adds support for the Airtame application on both macOS
and Windows platforms. It introduces metadata, installation and
uninstallation scripts, and icon support for Airtame, making it
available in the maintained apps catalog and ensuring it displays
correctly in the frontend.
**Airtame Application Support:**
- Added input metadata for Airtame for both Homebrew (macOS) and Winget
(Windows) in `airtame.json` files, specifying installer formats,
identifiers, and categories.
[[1]](diffhunk://#diff-448b5795b8fb5f9487415e1d64f1fca6b57fa434b4d78ce452f732a9ffda479eR1-R8)
[[2]](diffhunk://#diff-146d9ec4238b454a4f86989b068060760f2d70523aed34b68f935d493b3f23dbR1-R10)
- Added output definitions for Airtame in `darwin.json` and
`windows.json`, including version info, installation/uninstallation
scripts, installer URLs, SHA256 hashes, and verification queries.
[[1]](diffhunk://#diff-0c571f0352dfef93766b985359e9f1ab34ed36284fd701429edc5b733be5aef6R1-R21)
[[2]](diffhunk://#diff-23e19ef30503f3c50c25a06132b64d193ecfd70698e2a4ae433dbde55148b6f0R1-R22)
- Updated `apps.json` to include Airtame entries for both macOS and
Windows, with appropriate descriptions and unique identifiers.
**Frontend/Icon Integration:**
- Added a new React icon component for Airtame in `Airtame.tsx`, using a
base64-encoded image.
- Registered the Airtame icon in the icon index and mapped it in
`SOFTWARE_NAME_TO_ICON_MAP` for proper display in the software catalog.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR12)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR233)
This pull request adds support for the Aircall application on Windows to
the maintained apps ecosystem. It introduces the necessary input and
output configuration files, as well as versioning and
installation/uninstallation scripts. Additionally, it updates the main
app listing to include Aircall for Windows.
**New Aircall Windows app support:**
* Added a new input definition for Aircall in `winget/aircall.json`,
specifying metadata such as package identifier, installer type, and
architecture.
* Created a new output file `aircall/windows.json` with version details,
installation and uninstallation scripts, download URL, and SHA256
checksum for Aircall version 3.1.66.
* Updated `apps.json` to list Aircall for Windows as a maintained app,
including its name, slug, platform, and unique identifier.
This pull request adds support for the "8x8 Work" application on Windows
to the maintained apps system. The changes introduce input and output
definitions for the app, including installation and uninstallation
scripts, version metadata, and an entry in the global apps listing.
**Addition of 8x8 Work (Windows) application:**
* Added a new input definition for `8x8 Work` in `winget` format,
specifying package identifiers, architecture, installer type, and
default categories.
* Created an output file for `8x8 Work` on Windows, including version
metadata, installer and uninstaller scripts, SHA256 hash, upgrade code,
and detection SQL query.
* Added `8x8 Work` (Windows) entry to the global `apps.json` file,
including description and unique identifier.
This pull request adds support for managing the installation and
uninstallation of 010 Editor (version 16.0.2, 64-bit) on Windows via
Winget in the maintained apps system. It introduces metadata,
install/uninstall scripts, and output definitions for this application,
enabling automated deployment and inventory.
**010 Editor integration:**
* Added a new input definition for 010 Editor in
`winget/010-editor.json`, specifying metadata, installer details, and
script paths.
* Implemented PowerShell scripts for silent installation
(`010-editor_install.ps1`) and uninstallation
(`010-editor_uninstall.ps1`) tailored for Inno Setup-based installers.
[[1]](diffhunk://#diff-4d1e3101294ff5dcd9414cbbd5a470a1bd2942f5d4e8db5c25c9fe4098b815b3R1-R28)
[[2]](diffhunk://#diff-2ec71055559f078b69fc8cd53d483fc7738f0dbe7af384dda9587ecd76aeed23R1-R91)
**Output and inventory updates:**
* Generated a new output file `windows.json` for 010 Editor, including
version info, installation checks, installer URL, script references, and
SHA256 hash.
* Updated the main `apps.json` output to include 010 Editor as a Windows
application, ensuring it appears in the maintained apps inventory.
This pull request adds support for managing the installation and
uninstallation of Postman on Windows via Winget, and simplifies the
associated PowerShell scripts. The changes introduce a new Postman app
definition, refactor the install and uninstall scripts to remove
unnecessary complexity, and update the Postman icon in the frontend to
use a PNG image.
**Postman app management support:**
* Added a new `postman.json` manifest in
`ee/maintained-apps/inputs/winget/` to define Postman as a managed
application, including install/uninstall script paths and package
metadata.
**PowerShell script simplification:**
* Refactored `postman_install.ps1` to remove scheduled task logic and
run the installer directly with the `--silent` flag, improving
reliability and maintainability.
* Simplified `postman_uninstall.ps1` to directly search for and execute
the uninstall command for Postman, supporting silent uninstallation and
removing scheduled task and logging logic.
**Frontend update:**
* Updated the `Postman.tsx` icon component to use a PNG image instead of
inline SVG paths, ensuring consistency with other icon assets.
This pull request adds support for the Notion app on Windows to the
maintained apps system. It introduces new metadata, installation and
uninstallation scripts, and updates the relevant app listings and icon.
The most important changes are grouped below:
**Notion for Windows support:**
* Added a new input metadata file for Notion on Windows at
`ee/maintained-apps/inputs/winget/notion.json`, specifying installer
details, categories, and script paths.
* Added a new output app listing for Notion on Windows in
`ee/maintained-apps/outputs/apps.json` and created a dedicated manifest
at `ee/maintained-apps/outputs/notion/windows.json` with version,
installer, uninstall script references, and detection query.
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R977-R983)
[[2]](diffhunk://#diff-1dfe0659e83ec343ffcf27344c2dd5b257cf0bcc11434614acdc1820badda243R1-R21)
* Implemented install and uninstall PowerShell scripts for Notion on
Windows, referenced by the new manifest.
**Uninstallation improvements:**
* Updated the Notion uninstall script to ensure the `/S` flag is
included for silent uninstalls with NSIS installers, improving
reliability of unattended uninstalls.
[[1]](diffhunk://#diff-fe66fb3f5c34301a1a22112997ca0aa38ec0ccd9dc97db4cf2a845a8a8db6df1R36-R45)
[[2]](diffhunk://#diff-1dfe0659e83ec343ffcf27344c2dd5b257cf0bcc11434614acdc1820badda243R1-R21)
**UI/Icon update:**
* Replaced the SVG icon for Notion in the frontend with a PNG-based
image for improved appearance or compatibility.
**Other:**
* Clarified the description for Notion Calendar in the app listings for
better user understanding.
This pull request adds support for Microsoft Edge on Windows to the
maintained apps system and introduces a new icon for Microsoft Edge in
the frontend. The changes ensure that Microsoft Edge for Windows is
correctly represented in both backend data and the frontend UI.
**Microsoft Edge for Windows support:**
* Added a new input definition for Microsoft Edge in `winget` format,
specifying installation details and categories.
* Generated an output entry for Microsoft Edge on Windows in
`apps.json`, including its platform, slug, and description.
* Added a detailed output file for Microsoft Edge on Windows, including
version info, install/uninstall scripts, and metadata.
**Frontend icon integration:**
* Added a new React component `MicrosoftEdge.tsx` to provide an SVG icon
for Microsoft Edge.
* Registered the new icon in the icon mapping so it appears for Edge in
the software page UI.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR121)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR286)
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 adds support for managing Wireshark on Windows to the
maintained apps system. The main changes include introducing new input
and output files for Wireshark, updating the central apps manifest, and
providing installation and uninstallation scripts.
**Wireshark Windows support:**
* Added a new input manifest for Wireshark in `winget` format at
`ee/maintained-apps/inputs/winget/wireshark.json`.
* Created an output manifest for Wireshark on Windows at
`ee/maintained-apps/outputs/wireshark/windows.json`, including version
info, installer details, install/uninstall scripts, and metadata.
* Updated the central apps manifest
`ee/maintained-apps/outputs/apps.json` to include Wireshark for Windows
as a managed app.
This pull request updates the naming conventions for the VLC app in both
input and output configuration files to ensure consistency and clarity.
The most important changes are:
Naming consistency updates:
* Changed the `name` field from "VLC" to "VLC media player" in
`ee/maintained-apps/inputs/winget/vlc.json` to better reflect the
application's full name.
* Updated the `name` field from "VLC" to "VLC media player" in
`ee/maintained-apps/outputs/apps.json` for the Windows platform entry,
ensuring the output matches the input and provides a more descriptive
app name.
This pull request adds support for the Twingate Windows application to
the maintained apps system. The main changes include adding metadata and
installer information for Twingate on Windows, updating the aggregated
apps list, and providing install/uninstall scripts.
**Addition of Twingate Windows app:**
* Added a new input file `winget/twingate.json` with metadata for the
Twingate Windows app, including installer details and categorization.
* Created an output file `twingate/windows.json` specifying the
available version, installer URL, SHA256 hash, upgrade code, and
PowerShell scripts for install and uninstall operations.
**Updates to app listings:**
* Updated `apps.json` to include Twingate for Windows, with platform
information and description.
This pull request adds support for the Cisco Jabber application on
Windows, including its metadata, installation, and uninstallation
details. It also corrects the ordering of the TablePlus app entry in the
output list. The most important changes are:
**New application support:**
* Added a new input manifest for Cisco Jabber in
`winget/cisco-jabber.json`, specifying its package details and default
category.
* Added Cisco Jabber to `apps.json` output, including its name, slug,
platform, and unique identifier.
* Created a new output file `cisco-jabber/windows.json` with version
information, installation/uninstallation scripts, installer URL, SHA256
hash, and upgrade code for Cisco Jabber.
**App list correction:**
* Corrected the ordering of the TablePlus entry in `apps.json` output to
ensure proper listing.
This pull request adds support for the Cyberduck application on Windows
to the maintained apps system. The changes introduce Cyberduck's
metadata, installation details, and scripts for managing the app
lifecycle.
**Addition of Cyberduck for Windows:**
* Added a new input manifest for Cyberduck in `winget/cyberduck.json`,
specifying package identifiers, installer details, and default
categories.
* Created an output manifest `cyberduck/windows.json` with version info,
install/uninstall scripts, installer URL, SHA256 hash, and upgrade code
for reliable management.
* Updated `apps.json` to include Cyberduck as a supported Windows app,
with platform, identifier, and description.