## Summary
- Adds a new monthly ritual to the CEO's rituals file: "Check Eventbrite
for upcoming GitOps workshops"
- On the first Monday of every month, early in roundup, verify that
https://www.eventbrite.com/organizations/collections has all upcoming
GitOps workshops listed.
- DRI: SFriendLee
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Savannah Friend <157323611+SFriendLee@users.noreply.github.com>
Changes:
- Simplified the feature comparison table on the homepage (Removed the
switch and "For CISOs" table, and reduced the list to 8 features)
- Cleaned up unused methods and variables in the homepage page script
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Updates**
* Streamlined the homepage comparison tables by removing several vendor
and feature rows
* Simplified vendor selection dropdowns on desktop and mobile for easier
browsing
* Removed the mobile/desktop mode switch for the IT comparison view
* Adjusted homepage ticker behavior so the bottom ticker always animates
(hero ticker removed)
* Condensed IT comparison content, preserving the simplified "Open
source" indicator
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46293?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Introduce GoToMeeting to maintained apps: add homebrew and winget input
manifests, darwin and windows output metadata (with installers,
checksums, and install/uninstall script refs), and frontend icon asset.
Include Windows install/uninstall PowerShell scripts (MSI machine-wide
install and uninstall via hard-coded UpgradeCode) and macOS DMG
install/uninstall refs and scripts. Update
ee/maintained-apps/outputs/apps.json to register GoToMeeting for darwin
and windows.
Also adjust Windows validation logic to special-case GoToMeeting version
checks: winget reports a package version (10.19.0.19950) that contains
an extra ".0" segment compared to the installed MSI/registry version
(10.19.19950), so the validator falls back to existence-only validation
and logs the difference.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#42744
# 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/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
## Testing
- [x] Added/updated automated tests
- [ ] 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
- Tested setup experience on a macOS virtual machine, see below.
This is what happens after the change:
- Editing pkg while setup experience is running, whether the package is
pending or currently running, doesn't cancel anything. Installs were
successful.
- Editing pkg while queueing a normal install caused it to cancel with
no record.
- Deleting while an installer is running causes the row to disappear
immediately in the setup experience UI, HSI row removed.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Editing a software installer no longer cancels in-progress
setup-experience installs; running setup-experience flows are preserved
when installer scripts are updated.
* Deleting an installer still removes its associated pending
setup-experience entries and related pending host-install records.
* GitOps batch updates: editing installers in a batch preserves running
setup experiences; omitting an installer from a batch deletes only that
installer’s pending entries.
* **Tests**
* Added/updated integration tests validating edit/delete behavior during
setup experience.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46236?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Fixes a security issue where `POST /api/latest/fleet/targets` returned
sensitive fleet configuration to users with insufficient privileges.
Other team-facing endpoints apply proper access controls; the target
search path did not.
- Replaces the `teamSearchResult` struct with a slim version containing
only the non-sensitive fields documented in the API response (`id`,
`created_at`, `name`, `description`, `user_count`, `host_count`,
`display_text`, `count`).
- Removes the `MarshalJSON`/`UnmarshalJSON` methods (~70 lines) that
serialized fields the target picker never uses.
- Verified that no frontend component, fleetctl client, or integration
test reads sensitive fields from the target search response.
- Validated the response shape matches the documented API contract in
`docs/REST API/rest-api.md`.
Closesfleetdm/confidential#16054
Related advisory: GHSA-88p2-jj8w-j8qg
## How we reproduced
1. Started local dev server (`fleet serve --dev --dev_license`)
2. Created a global observer user and a saved query with
`observer_can_run = true`
3. Logged in as the observer
**Before fix** -- same observer session, same team:
```
GET /api/latest/fleet/fleets/2/secrets
-> secret: "********" (correctly masked)
POST /api/latest/fleet/targets {"query":"","query_id":7,"selected":{"hosts":[],"labels":[],"teams":[]}}
-> sensitive configuration leaked for all teams
```
**After fix** -- rebuilt binary, restarted server, same observer:
```
GET /api/latest/fleet/fleets/2/secrets
-> secret: "********" (unchanged)
POST /api/latest/fleet/targets (same request)
-> only non-sensitive fields returned (id, name, display_text, count, etc.)
```
Also verified admin target search still returns team metadata correctly.
## Test plan
- [x] Manual reproduction on local dev server
- [x] Manual verification after fix
- [x] Admin target search still returns team metadata (id, name,
host_count, display_text)
- [x] Verified no consumers (frontend, fleetctl, tests) read sensitive
fields from target search
- [x] Validated response matches documented API contract in `docs/REST
API/rest-api.md`
- [x] Unit test verifies response contains only documented non-sensitive
fields
- [x] `go test ./server/service/ -run TestSearchTargets` passes
- [ ] CI passes
Add P4V (Perforce) Windows package: new winget input (Perforce.P4V) and
a dedicated outputs/p4v/windows.json describing version 242.61.2 with
installer URL, sha256, upgrade code, and embedded PowerShell
install/uninstall scripts. Also update outputs/apps.json to register the
P4V/windows app entry.
Add Windows winget inputs and PowerShell scripts for IntelliJ IDEA
Community Edition and Ultimate. New files include input manifests
(ee/maintained-apps/inputs/winget/*.json), installer scripts that run
the NSIS installers silently (using /S), and uninstall scripts that
locate the uninstall string in the registry, stop running IDEA
processes, ensure the /S silent flag, and execute the uninstaller.
Update outputs by adding app entries in
ee/maintained-apps/outputs/apps.json and new per-app outputs with
version metadata, installer URLs, sha256 hashes and embedded script
refs: CE version 2025.2.6.2 and Ultimate version 2025.2.5.
Add Genesys Cloud to maintained apps: create input manifests for
Homebrew (darwin dmg) and Winget (windows msi), add output metadata
files for darwin (v2.49.25) and windows (v2.49.903.0) including
installer URLs, checksums, install/uninstall script refs and a Windows
upgrade code. Register the app in ee/maintained-apps/outputs/apps.json
and add a frontend SVG icon component, mapping entry, and PNG asset for
the software page.
Introduce Beyond Compare Windows package metadata and scripts for
winget. Adds input manifest
(ee/maintained-apps/inputs/winget/beyond-compare.json) plus install and
uninstall PowerShell scripts that handle Inno Setup silent install flags
and registry-based uninstaller discovery. Updates outputs: registers the
app in ee/maintained-apps/outputs/apps.json and adds a versioned output
file with installer URL, sha256, and script refs
(ee/maintained-apps/outputs/beyond-compare/windows.json).
<!-- 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.
- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
## Testing
- [X] QA'd all new/changed functionality manually
## Database migrations
- [X] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a migration cleanup tool to recover from failed starts after
migration renumbering.
* Supports dry-run mode to preview the SQL changes and apply mode to
execute fixes.
* Includes secure database connection options and safe, transactional
execution with reporting for detected issues.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46177?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
Add support for Amazon Corretto 25 across the repo: new winget input
definition, Windows output metadata (version 25.0.3.9) including
installer/uninstaller PowerShell scripts, SHA256 and upgrade_code, and
register the app in ee/maintained-apps/outputs/apps.json. Also add a
frontend SVG icon component, map it in the icons index, and include the
2x PNG asset so the app is displayed in the UI. This enables Fleet to
install and uninstall Amazon Corretto 25 on Windows.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Added complete Amazon Corretto 25 support for Windows including
detection, installation, and lifecycle management capabilities
* Enhanced Windows application detection to support matching by multiple
registry identifiers, improving detection accuracy for installed
programs
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46220?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Resolves#45149 and #45150.
- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [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] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
## Database migrations
- [X] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [X] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [X] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [x] Verified that the setting is exported via `fleetctl
generate-gitops`
- [X] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [x] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added team policy setting continuous_automations_enabled (default:
false) to re-run software/script automations on every failing
evaluation; exposed in APIs and GitOps YAML. Disallowed for "All fleets"
and requires a premium license.
* **Tests**
* Added integration tests for CRUD, GitOps, and re-queuing behavior
validating continuous automations.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45999?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Add BlueJ as a maintained Windows app: new winget input manifest
(ee/maintained-apps/inputs/winget/bluej.json), PowerShell install and
uninstall scripts
(ee/maintained-apps/inputs/winget/scripts/bluej_install.ps1 and
bluej_uninstall.ps1), and output metadata
(ee/maintained-apps/outputs/bluej/windows.json). Also update apps index
(ee/maintained-apps/outputs/apps.json) to include BlueJ. The install
script passes ALLUSERS=2 so the per-user WiX MSI installs per-machine
when run elevated; the uninstall script finds related product codes for
the app's upgrade code and uninstalls each with a timeout. The outputs
include version 5.5.0, installer URL, checksum, and embedded script
refs.
This pull request adds Windows support for managing PhpStorm as a
maintained app, including installation and uninstallation automation,
and improves the ingestion logic to handle publisher information for
better normalization. The most important changes are:
**Windows support for PhpStorm:**
* Added a new maintained app definition for PhpStorm on Windows,
including metadata and references to install/uninstall scripts
(`phpstorm.json`).
* Implemented a PowerShell install script for PhpStorm that runs the
NSIS installer silently (`phpstorm_install.ps1`).
* Implemented a PowerShell uninstall script that finds the correct
PhpStorm uninstaller via registry, ensures it's the JetBrains version,
and runs it silently (`phpstorm_uninstall.ps1`).
* Added PhpStorm for Windows to the `apps.json` output and created a
versioned output file with install/uninstall logic and metadata
(`apps.json`, `phpstorm/windows.json`).
[[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1404-R1410)
[[2]](diffhunk://#diff-0286e1ea4f71a5a6d429728675f1b3d8eb8bb14241c86c1ce7697e454b9cbe4dR1-R22)
**Improvements to ingestion logic:**
* Updated the app existence check in `windows.go` to select and
propagate the `publisher` field, and set the `Vendor` on ingested
software, ensuring publisher-based normalization (important for
JetBrains build-number handling).
[[1]](diffhunk://#diff-a0970c0b97aa9bac9f771a8ecb164afea2bc7245206844f6e32aa5b69d964f4aL55-R55)
[[2]](diffhunk://#diff-a0970c0b97aa9bac9f771a8ecb164afea2bc7245206844f6e32aa5b69d964f4aR74)
[[3]](diffhunk://#diff-a0970c0b97aa9bac9f771a8ecb164afea2bc7245206844f6e32aa5b69d964f4aR84-R91)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added support for PhpStorm on Windows, including automated
installation and removal capabilities.
* Enhanced Windows application detection to retrieve publisher
information for improved vendor identification.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46217?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
**Related issue:** Resolves#41053
# 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/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [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] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Android hosts associated with an IdP now display as "{IdP first
name}'s {device model}" when IdP fullname is available.
* Enrollment now links hosts to an MDM IdP account when enrollment
payload includes IdP info.
* **Bug Fixes / Behavior**
* Unenrollment records and host naming use device brand+model for
hardware identification and sensible fallbacks when IdP data is missing.
* Re-enrollment updates IdP association without creating duplicate
hosts.
* **Tests**
* Added tests covering display-name and hardware-model behavior with and
without IdP data.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46135?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Allow "endpoint" as a usable word. Removing this was apparently not a
universally agreed to rule, and analysts use it in category names and
reports, so we need to be able to as well.
Register Omnissa Horizon Client for Windows: add a winget input
manifest, install and uninstall PowerShell scripts, and output metadata.
The install script runs the WiX Burn bundle via ${env:INSTALLER_PATH}
with /quiet /norestart; the uninstall script locates the WiX
bootstrapper in the registry and runs it silently. Also add app entry to
outputs/apps.json and a new outputs/omnissa-horizon-client/windows.json
containing version 8.18.0.51429, installer URL, sha256, and embedded
script refs.
Add Logi Options+ Windows package manifest and scripts. Creates a winget
input manifest (logi-options+.json), silent install and uninstall
PowerShell scripts, and a new outputs file for the app version with
installer URL, SHA256 and script refs. Also updates
ee/maintained-apps/outputs/apps.json to include the Windows entry.
Installer script handles the analytics opt-out and treats exit code 0 or
-1978335226 as success; uninstall script locates the app via registry
(QuietUninstallString/UninstallString) and ensures a /quiet uninstall.
Register TortoiseGit as a maintained app: add winget input
(ee/maintained-apps/inputs/winget/tortoisegit.json), add app metadata to
outputs/apps.json, and create a platform-specific output with version,
installer URL, sha256, install/uninstall PowerShell scripts, and MSI
upgrade code (ee/maintained-apps/outputs/tortoisegit/windows.json). Also
add a frontend icon component and asset
(frontend/pages/SoftwarePage/components/icons/Tortoisegit.tsx and
website/assets/images/app-icon-tortoisegit-60x60@2x.png) and wire it
into the icons index mapping.
Resolves#46009.
- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
## Testing
- [X] Added/updated automated tests
- [X] QA'd all new/changed functionality manually
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Fixed permissions for host activity items by aligning serialized field
names used by authorization rules, ensuring fleet-scoped users receive
correct access rights when listing and reading host activities.
* **Tests**
* Added authorization tests validating host activity access control
across user roles and team scopes, including denial cases for
unauthorized and GitOps-scoped users, and verifying policy evaluation
depends on correct serialized field naming.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46203?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This pull request adds full support for managing Adobe Creative Cloud on
Windows via Winget, including installation, uninstallation, and
detection. It introduces new manifest and script files, as well as
updates to the application metadata and output definitions.
**Adobe Creative Cloud for Windows integration:**
* Added a new Winget manifest file `adobe-creative-cloud.json` that
defines how to install and uninstall Adobe Creative Cloud, specifying
installer details and script paths.
* Implemented a PowerShell install script
(`adobe_creative_cloud_install.ps1`) that performs a silent installation
using the official stub executable and handles errors gracefully.
* Implemented a PowerShell uninstall script
(`adobe_creative_cloud_uninstall.ps1`) that finds and invokes the
official Adobe uninstaller, including logic to stop related processes
and search both registry and known paths.
**Application metadata and output updates:**
* Added a new entry for Adobe Creative Cloud (Windows) to the
`apps.json` output file, ensuring it appears in application listings
with the correct metadata.
* Created a new output definition file (`windows.json`) for Adobe
Creative Cloud, specifying detection queries, installer URL, script
references, SHA256 hash, and category.