Skip to content

fleet-v4.91.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Sep 22:28
· 616 commits to main since this release
35fc1c0

Fleet 4.91.0 (Sep 2, 2026)

IT Admins

  • Added the ability to create a managed local admin account on Windows hosts. Requires fleetd 1.60.0 or higher.
  • Added a default fleet for new Windows MDM enrollments (Fleet Premium). IT admins can pick the fleet that hosts enrolling through user-driven Windows MDM enrollment (Windows Autopilot, Entra join) are automatically assigned to. The fleet is assigned before the Autopilot Enrollment Status Page runs, so the default fleet's software, scripts, and configuration profiles apply during out-of-box setup.
  • Added the option to keep macOS, iOS, and iPadOS hosts on the latest OS version (Fleet Premium). Setting minimum_version to latest along with deadline_days tells Fleet to automatically track the newest version Apple publishes for each host's hardware and to set the update deadline that many days after the version has been released.
  • Added activity automations for fleets (Fleet Premium): a per-fleet webhook, configured from the Hosts page, that sends a request to a destination URL whenever an activity linked to one of the fleet's hosts is created.
  • Added a "Patch when closed" option for patch policies that only patches an app on a host if the app is not running.
  • Added support for Fleet's built-in variables (e.g. $FLEET_VAR_HOST_END_USER_IDP_USERNAME) in scripts, including software install, post-install, and uninstall scripts. Variables are resolved per host at execution time and require a Fleet Premium license.
  • Added Adobe plugins to software inventory: Fleet now detects Adobe Creative Cloud plugins (CEP and UXP extensions) on macOS and Windows hosts and lists them on the Software page and host details with the software type "Plugin (Adobe)", including version and host count.
  • Added 29 new iOS/iPadOS device vitals, such as battery level, accessibility settings, cellular technology, cloud backup status, organization info, MDM options, device attestation, and cellular service subscriptions, collected via the existing DeviceInformation MDM refetch and shown in the host API response and a new "View all" vitals modal on the host details page. Personal (BYOD) enrollments don't receive these new fields, to avoid exposing information about a device the organization doesn't own.
  • Added marketing name display for Apple devices (macOS, iOS, iPadOS) on the Hosts and Host details pages. The "Hardware model" field now shows human-readable names (e.g. "MacBook Pro (16-inch, 2021)") instead of raw identifiers (e.g. "MacBookPro18,1").
  • Added support for releasing devices from Apple Business inside Fleet.
  • Added the s3_software_installers_signed_url configuration option to serve software installer, in-house app, and bootstrap package downloads via GCS presigned URLs (the GCS counterpart to CloudFront URL signing), so clients download directly from object storage instead of streaming through the Fleet server.
  • Added support for custom host vitals ($FLEET_HOST_VITAL_<id>) in Android configuration profiles and managed app configuration, including per-host value expansion at delivery and automatic resend when a host's value changes.
  • Added support for $FLEET_HOST_VITAL_<id> custom host vital variables in host name templates, including per-host resolution, validation of referenced vital IDs, and automatic re-delivery when a host's vital value changes.
  • Added support for nested groups in Entra in IdP vitals.
  • Added linux as a label platform option, which targets hosts on any Linux distribution.
  • Added a sortable "Added to Fleet" column to the hosts table, showing when each host last enrolled with Fleet.
  • Added support for enabling/disabling software inventory per-fleet via PATCH /api/v1/fleet/fleets/{id} with {"features": {"enable_software_inventory": <bool>}}. The key follows PATCH-merge semantics: when omitted, the stored value is unchanged.
  • Added a --bypass-end-user-auth flag to fleetctl package that configures the generated fleetd installer to skip the end-user authentication prompt during enrollment on Linux and Windows hosts (e.g. when the end user already authenticated via another MDM). Requires fleetd v1.60.0 or higher.
  • Added host_id and host_serial to the mdm_enrolled activity for Apple (macOS, iOS, iPadOS) enrollments, and the activity now appears on the host's activity timeline.
  • Added token_invalid to the ABM token API responses and dep_device_error (a human-readable message) to GET /hosts/:id/dep_assignment, to help identify why a host's Apple Business Manager device lookup or ABM token isn't returning expected data (e.g. a rejected or invalid-signature token, unsigned terms, a server-side error, or the device no longer being assigned to Fleet).

Security Engineers

  • Changed Orbit enrollment to determine end user authentication requirements from server policy rather than client-advertised capabilities. The mdm.allow_orbit_end_user_auth_bypass server setting (enabled by default) controls whether hosts that do not complete end user authentication may enroll into a fleet that requires it; set it to false to strictly enforce end user authentication for all Orbit enrollments.
  • Added a user_mfa_requested activity, recorded when valid credentials are submitted for an MFA-enabled account and a verification email is sent.
  • Added created_setup_experience_script and deleted_setup_experience_script activities so that adding, replacing, or removing a setup experience script (via the API or GitOps) is recorded in the audit log.
  • Updated the macOS CIS benchmark policies to the latest CIS releases: macOS 14 Sonoma v3.1.0, macOS 15 Sequoia v2.1.0, and macOS 26 Tahoe v1.1.0.
  • Excluded Adobe plugins from vulnerability scanning, so no vulnerabilities are reported for them. No vulnerability data source maps an Adobe CEP or UXP extension to a CVE; Adobe files CVEs against the host application (Photoshop, Acrobat, and so on), which Fleet already scans.

Bug fixes and improvements

  • Updated configuration profiles scoped by dynamic (query-based) labels to preserve a host's current profile state while the host's membership in a label is still unknown. Profile changes only happen after the label has been evaluated at the host's next refetch, so adding a new exclude-any (or include-all) label to a profile does not immediately remove it from hosts that have not run the label's query yet.
  • Improved the performance of the configuration profiles status summary (GET /api/latest/fleet/configuration_profiles/summary) for Windows hosts so it no longer times out on large fleets.
  • Reduced database load when software installed-path updates hit lock contention: the transaction now fails fast instead of retrying, and the host's next software report reconciles the paths.
  • Improved software ingestion performance at scale by batching host_software_installed_paths deletes (previously unbounded single statements).
  • Blocked host enrollment with empty or whitespace-only enroll secrets across all enrollment paths (osquery, Orbit, Apple MDM, Android), and removed any pre-existing empty enroll secrets.
  • Updated Windows SCEP profiles to fail with a clear message when the certificate authority challenge contains characters Windows doesn't support (ASN.1 PrintableString), instead of showing "Verified" while no certificate is installed.
  • Improved input validation for the Windows MDM enrollment flow.
  • Normalized LocURI values before validation in Windows profile handling.
  • Improved LocURI validation in Windows profile handling to canonicalize element content before checking.
  • Updated the macOS disk encryption banner on the Host details and My device pages to tell IT admins and end users that ADE-enrolled hosts escrow their FileVault key automatically on the next refetch, instead of asking the end user to log out.
  • Added a clear error message when adding both Mozilla Firefox and Firefox ESR (which share a bundle identifier) to the same fleet, so admins understand only one of them can be added instead of seeing a generic conflict error.
  • Added deduplication and out-of-order protection to the Android MDM Pub/Sub notification handler. Duplicate deliveries from Google Pub/Sub no longer re-run the setup experience or emit duplicate activities, and a stale device-deleted notification arriving after a re-enrollment no longer leaves the host stuck showing unenrolled.
  • Bounded the Android device reconciliation cron's Google API pagination so a malformed or cycling response can no longer cause an unbounded loop, and added periodic progress logging during pagination.
  • Bounded how much of a Google Workspace directory one IdP sync pass pulls, so a very large directory or a misbehaving response can no longer paginate indefinitely or grow server memory without limit. A sync that exceeds a limit fails with an error naming the limit (visible as the last IdP sync status) instead of ingesting a partial directory.
  • Clarified the failed-install modal copy on Android hosts to explain that the end user can retry via the Google Play Store in their work profile.
  • Added a disabled Refetch button with a tooltip on the Host details page for Android hosts, explaining that Android hosts sync data automatically and linking to how to sync manually.
  • Removed the misleading Self-service preview tab from the "Edit appearance" modal for Android apps. Android apps are installed from the Play Store rather than the Fleet self-service web view, and updating the appearance will not change anything in the Play Store.
  • Disabled the Android MDM "Connect" and "Turn off Android MDM" buttons with a GitOps tooltip when GitOps mode is enabled, matching the Windows MDM behavior.
  • Added software upload progress logging to fleetctl GitOps.
  • Added a diagnostic message when an install script can't be run (exit code -1), such as when the interpreter in its shebang is missing on the host, instead of reporting no output.
  • Allowed .py script-only packages to be assigned a setup_experience_platform (darwin or linux), matching .sh.
  • Added a software package maximum size error message in the UI to fix inconsistent errors across different browsers.
  • Normalized login responses for accounts with MFA enabled to follow authentication best practices.
  • Made MFA login token redemption atomic so a single one-time token can no longer be used to create more than one session under concurrent requests.
  • Ensured a password reset token can only be used once.
  • Added 255-character caps to additional user-supplied name and description inputs (API user, custom variable, certificate, label, pack, certificate authority forms) to prevent the same class of overflow bug.
  • Reworked the fleets dropdown to make the search input discoverable at 10+ fleets and added an "Add fleet" affordance for global admins.
  • Restricted deleting a fleet to global write permissions (global admin or GitOps), matching the existing restriction on creating one.
  • Restricted the manual MDM enrollment profile endpoint (GET /api/v1/fleet/enrollment_profiles/manual) to global and fleet-scoped admins and maintainers.
  • Clarified the Controls > OS updates empty state to say "Apple or Windows MDM must be turned on" and link to MDM settings, so it no longer implies MDM is off when only Android MDM is enabled.
  • Improved the Apple Business success toast shown after editing fleet assignments to name the organization.
  • Renamed the "Program (Windows)" software type to "Application (Windows)", which includes apps installed through the Windows app store.
  • Added tooltips to the "Agent", "Last restarted", and "Status" column headers on the Hosts page explaining which platforms are supported and why.
  • Updated the "Last opened" tooltip on the Host details Software table to explain why it's only supported for native macOS, Windows, and Linux apps and packages.
  • Removed the cellProps.rows.length === 1 workaround (which suppressed the tooltip whenever the table had exactly one row) by adding the correct CSS, fixing the tooltip overflowing when the host table has only one row.
  • Ranked "Select API endpoints" search results by relevance (exact match, then prefix, then whole-word, then substring, matched against both name and path) instead of leaving them in an unranked catalog order, and fixed a bug where the table's default sort silently discarded that ranking.
  • Removed pagination from the "Select API endpoints" search results table (Settings > Users > Add API-only user > Specific API endpoints), relying on the results dropdown's existing scrollbar instead.
  • Improved empty state copy on the software title detail page when the software is not found in the selected fleet.
  • Made the per-platform entries in the dashboard "Hosts enrolled" chart keyboard accessible: each platform with hosts is now focusable via Tab, activatable with Enter/Space, has a visible focus indicator, and exposes an accessible name (e.g. "macOS hosts").
  • Enforced API-only endpoint restrictions on chart endpoints.
  • Updated button styles across the Fleet UI to use the new bordered secondary and subdued button variants.
  • Aligned the configuration profiles empty state with the assets tab styling so admin and maintainer users see a consistent empty state.
  • Aligned the configuration profiles and assets empty states for technicians with the shared EmptyState styling.
  • Added a FLEET_DEV_SKIP_S3_CONFIG environment variable to skip applying local S3 dev defaults and creating test S3 buckets when running fleet serve --dev.
  • Added --since-commit and --commit flags to the migration-cleanup tool, allowing migration rename scans scoped to a commit range on main or a single commit, in addition to the existing --branch mode.
  • Split ListHostSoftware and ModifyAppConfig into smaller helpers so that those packages can be checked by the nilaway linter.
  • Removed an unneeded dependency that does not support Apple M chips.
  • Updated Go to 1.26.7.
  • Fixed an App Store or in-house app install that a device acknowledged but never verified leaving the host unable to run anything else. Fleet now fails such an install after 24 hours and releases the host's activity queue, so scripts, software installs, and uninstalls waiting behind it run. The wait is configurable with FLEET_SERVER_VPP_INSTALL_REAP_TIMEOUT. An install whose command has not reached the device yet is left alone until it can no longer be delivered.
  • Fixed Fleet holding on to an App Store app verification command after it had nothing left to verify on that host, which delayed verifying the next install on the same host by up to a day.
  • Fixed software (packages, App Store apps, and in-house apps) targeted with "exclude any" on a host vitals label being hidden from, and blocked for, every host instead of only the label's members.
  • Fixed duplicate software inventory entries (same name, version, and source with the same vulnerabilities but different host counts) that could appear on instances upgraded to Fleet v4.76.0 or later. Existing duplicate giflib (Homebrew) entries are merged during the database migration on upgrade.
  • Fixed a false-negative vulnerability report where Firefox Developer Edition on macOS was not matched to any CVEs because Fleet generated no CPE for it.
  • Fixed the SCEP proxy so that Windows profiles using a custom SCEP proxy certificate authority have their one-time Fleet challenge validated before a PKIOperation request is forwarded to the certificate authority. Requests with a missing, incorrect, or expired challenge are now rejected.
  • Fixed the SCEP proxy so that a Windows profile pending removal can no longer be used to relay SCEP requests to the configured certificate authority, and so that proxy error responses no longer include the certificate authority's URL.
  • Fixed a few edge cases for Apple profile reconciliation when devices respond with NotNow in certain scenarios.
  • Fixed an issue where re-enrolling an Apple device with a different type, e.g. Manual -> ADE, would not update the enrollment type correctly.
  • Fixed a bug where an Apple configuration profile (DDM declaration) could become undeletable if the set of allowed declaration types changed after the profile was added (for example, when a server configuration flag was toggled). Deleting a profile no longer re-runs upload-time validation.
  • Fixed Fleet storing an unusable disk encryption key and logging an escrow activity for macOS hosts that aren't enrolled in Fleet's MDM.
  • Fixed team-level BitLocker PIN enforcement never reaching Windows hosts when Apple MDM was not configured on the server: the "Create PIN" banner appeared on the My device page, but the queries and MDM command that enable PIN setup were never sent.
  • Fixed Windows software whose inventory name includes the version (e.g. "Granola 7.373.2") not matching the Fleet-maintained app's software title, which prevented the uninstall action from appearing and listed each version as its own software title. Applies to Fleet-maintained apps that have been added as an installer. Existing mismatched titles are merged when the app is added, shortly after server startup, and hourly thereafter.
  • Fixed a bug where a failed macOS Fleet-maintained app install could be reported as successfully installed because the install script did not check the exit code of the command that installed the app. This covers generated install scripts, the custom install scripts used by some apps (including Google Chrome, Zoom, Microsoft Edge, and Webex), and the already-published scripts of frozen apps.
  • Fixed the Docker Desktop macOS Fleet-maintained app not reporting an installed version or "Installed" status on hosts that already have Docker Desktop. The app matched on the embedded Electron bundle identifier (com.electron.dockerdesktop) instead of the identifier the installed app reports (com.docker.docker), and embedded bundles are excluded from software inventory. Existing Docker Desktop installers are re-pointed to the correct software title on upgrade.
  • Fixed a bug where the patch policy for the Windows Git Fleet-maintained app always returned "Pass", even on hosts running an outdated version, so update automations never triggered. The generated query matched programs.name LIKE 'Git %', but Git for Windows registers itself in the registry as exactly Git.
  • Fixed the macOS "Steam up to date" patch policy always failing on hosts that have the current version of Steam installed. Steam.app ships without a CFBundleShortVersionString, so the generated policy now compares CFBundleVersion, which agrees with the version Fleet reports in software inventory.
  • Fixed Fleet no longer recognizing hosts running Omarchy as Linux. Omarchy 4 ships its own /etc/os-release and reports platform=omarchy, where earlier versions inherited arch from Arch Linux and were covered by Fleet's Arch support. Host vitals and software inventory populate again, disk encryption and key escrow are available, policies and labels scoped to linux apply, and scripts can be run from the host's Actions menu. Omarchy hosts continue to roll up onto the "Arch Linux" / "rolling" row in Software > OS.
  • Fixed Android hosts staying stuck on a pending Lock, Wipe, or Clear passcode when Google never delivered the command's result to Fleet. Fleet now checks the command's outcome directly with Google once a day and updates the host, so the command can be re-issued.
  • Fixed the Hosts page so that managed Android hosts display their serial number instead of "Not supported" when one is reported.
  • Fixed an issue where GitOps could apply MDM SSO configuration values that were invalid.
  • Fixed an issue where generate-gitops would export an empty apple_business section if the AB default fleets had only been set via the UI.
  • Fixed the Google Calendar integration scheduling maintenance events over users' Focus Time and Out of office blocks.
  • Fixed the SCIM last request telemetry so that authorization failures (403 Forbidden) from unauthorized users are no longer persisted, preventing them from overwriting the admin-visible SCIM status.
  • Fixed an edge case where deactivating a SCIM user did not deprovision the matching Fleet user if the user's identifiers were changed in the same request.
  • Fixed the Helm chart's Deployment and fleet-vulnprocessing CronJob templates so empty/unset entries in environments (e.g. the default FLEET_SERVER_PRIVATE_KEY: "") are omitted from the rendered container env list instead of being emitted as an empty-string env var, which previously collided with the same key supplied via envsFrom and caused server-side apply to reject the object with a "duplicate entries for key" error.
  • Fixed password reset so that case-mutated reset tokens are no longer accepted; tokens are now matched case-sensitively.
  • Fixed an issue where an SSO-only invitation could be accepted with a password, creating a local password-authenticated account and bypassing SSO enforcement. The authentication mode is now derived solely from the invite.
  • Fixed the hosts list endpoint sometimes returning software title details that didn't match the applied filter.
  • Fixed the software title details response so that installer script contents and managed app configuration are only returned to users authorized to read the installer, and so that a request without a fleet is authorized against "No team" instead of skipping the scope check. This applies to GET /api/v1/fleet/software/titles/{id} and to the software_title included in GET /api/v1/fleet/hosts when filtering by software_title_id.
  • Fixed a software title request without a fleet so that it only resolves titles in fleets the requester can see. Previously a title reachable only through a software package, App Store app, or in-house app in another fleet was returned, which told the requester that software they have no access to exists.
  • Fixed device-authenticated ("My device") software uninstall so that it applies the same self-service and label-scope rules as the self-service install path, instead of accepting any package on the host's fleet.
  • Fixed the OS versions API (GET /api/latest/fleet/os_versions) to return a validation error for an unsupported platform filter and a "not found" error for an unknown OS version ID, instead of a successful but empty or null-filled response. Also corrected the max_vulnerabilities validation message so the >= character is no longer returned HTML-escaped.
  • Fixed the delete host endpoint returning inconsistent responses for a host outside the requester's fleet versus one that doesn't exist.
  • Fixed the host transfer activity (transferred_hosts) to only record host IDs that actually exist, so non-existent host IDs passed to POST /api/latest/fleet/hosts/transfer can no longer be injected into the audit trail. No activity is created when none of the requested hosts exist.
  • Fixed the policy automations table showing only one host for automation runs that cover multiple hosts.
  • Fixed query (report) responses so that pack metadata (ID, name, description) is only included when the requesting user is authorized to read packs, preventing cross-fleet pack metadata disclosure via query name collisions.
  • Fixed the live query results websocket stream returning a different error for a nonexistent campaign versus one owned by another user.
  • Fixed the self-service "Install all" button so its count and install target scope to the current search query. Previously, typing a search would filter the visible list while "Install all" still counted (and queued) every item in the selected category, including software the search had filtered out.
  • Fixed device-authenticated ("My device") endpoints so that host policies are returned in a device-safe representation that no longer exposes the policy author's name and email or the policy's raw SQL query.
  • Fixed a bug where a .sh or .py software package with Windows-style (CRLF) line endings was accepted at upload but failed to install on Linux hosts with a "No such file or directory" error. Line endings are now normalized to Unix-style before the script is stored.
  • Fixed a potential resource exhaustion issue in the MSI metadata parser.
  • Fixed a race condition that allowed a one-time software installer download token to be redeemed more than once when many requests raced concurrently, by making the token consumption atomic.
  • Fixed the "Add software" error for a file whose contents don't match a supported installer format: it no longer says "Couldn't edit software" on an add and no longer implies the file extension is the problem.
  • Fixed software installer validation errors reporting the wrong action verb (add vs. edit).
  • Fixed the install rejection message for .sh/.py script packages to say they can be installed on macOS and Linux hosts, rather than Linux only.
  • Fixed long fleet names overflowing the fleets table, fleet detail page header, teams dropdown, and manage enroll secrets modal. Fleet name inputs now cap at 255 characters (matching the database column), and the API and GitOps now return a clear validation error instead of a raw "Data too long" MySQL error when a longer name is submitted.
  • Fixed long label names overflowing the Labels card on the host details page.
  • Fixed a bug where modifying a label could silently persist a membership change without recording an audit activity when the label's metadata update failed (e.g. renaming to a name that already exists). Label metadata and membership are now saved in a single transaction, so a failed update rolls back both.
  • Fixed the Setup experience Users settings to default the account type to "Admin" for fleets whose config predates the setting, instead of showing no selection.
  • Fixed sort direction on the "Last seen" and "Last fetched" columns of the hosts table so that sort descending puts the oldest date (biggest "days ago" number) first, matching the visible duration rather than the underlying timestamp.
  • Fixed the "Last restarted" vital showing on ChromeOS hosts, where it's not actually collected.
  • Fixed the status-filter dropdown's selected-value icon (e.g. the disk encryption, bootstrap package, and policy status filters on the Hosts page) rendering near-black and barely visible in dark mode.
  • Fixed UI to show a direct button instead of a single-item dropdown on the Labels page (for users without edit/delete permissions) and the Integrations page (Jira/Zendesk).
  • Fixed styling issues with the gap between icons and text across the product.
  • Fixed the page content shifting left when opening a role dropdown near the bottom of the New user form (/settings/users/new/human). Dropdowns now flip upward when there's no room below the trigger.
  • Fixed the page content shifting left when opening the Actions dropdown on the last rows of a table (labels, users, fleets), and the resulting jump when a delete modal opened. The dropdown menu now flips upward when there's no room below the trigger.
  • Fixed an accessibility issue where the resend button would not show up when focused inside the OS settings modal.
  • Fixed tooltips wrapping icons or numeric values (like the Issues count on the host details page) showing a text (I-beam) cursor on hover, which made them look editable; those tooltips now use the default arrow cursor. Underlined-text tooltips are unchanged.
  • Fixed the My device > Self-service search bar not sitting flush right when the "Install all" button isn't rendered.
  • Fixed an empty summary card rendering above the Vitals section on the host details page for Fleet Free hosts with no summary content (Android, and iOS/iPadOS with no OS settings).
  • Fixed data table column headers stretching vertically when the table has no rows (e.g. while refetching from a zero-result search on the My device software page).
  • Fixed the misaligned icon in notify.success/notify.error toast notifications so it sits on the first line of the message on both single- and multi-line toasts.
  • Fixed low color contrast on the "Inherited" tag and unified the styling of tags (e.g. "Inherited," "API," "Patch," host filter chips, and host label pills) across the UI to match the design system.
  • Fixed helper text under checkboxes and radio buttons so it aligns with the label instead of the control.
  • Fixed misaligned app icons on the macOS setup experience "Setting up your device" screen.
  • Fixed an issue where the user-scoped icon wasn't showing for iOS and iPadOS hosts.
  • Fixed an issue where Fleet would show a turn on MDM banner before knowing the device state.
  • Fixed the script and query editors so that scrolling after a single click no longer selects text instead of scrolling.

Fleet-maintained app updates and vulnerability fixes are applied, whether or not you upgrade.

Fleet's agent

The following version of Fleet's agent (fleetd) support the latest changes to Fleet:

  1. orbit-v1.59.0
  2. fleet-desktop-v1.59.0 (included with Orbit)
  3. osquery-5.23.1 (included with Orbit)
  4. fleetd-chrome-v1.3.5
  5. fleetd-android-v1.5.0

Two features in this release (managed local admin accounts on Windows and the fleetctl package --bypass-end-user-auth flag) require fleetd 1.60.0, which will be released soon.

While newer versions of fleetd still function with older versions of Fleet, old versions of fleetd and osquery may not function with new versions of Fleet. We do not actively test these scenarios, and we recommend deploying a minimum of the agent versions above before upgrading to this version of Fleet.

Upgrading

Please visit our upgrade guide for upgrade instructions.

Documentation

Documentation for Fleet is available at fleetdm.com/docs.

Binary Checksum

SHA256

a9b73e16a44770a2c58cb693a71208473c104083b755b2570147ab1b35f798a4  fleet_v4.91.0_linux.tar.gz
efddc73ed5b4c1f524603aad95d993743ffd36c7737bdc69a6a27c074da57c36  fleetctl_v4.91.0_linux_amd64.tar.gz
09e9e7dbb00d4dae8e342d7b4c9bb391f966d4d476357901f7bae5bc82e3ee06  fleetctl_v4.91.0_linux_amd64.zip
c3a90037fc1083e76f955a7aca03303e336c2bebc7ffd649dc6f59171728be09  fleetctl_v4.91.0_linux_arm64.tar.gz
8b55ec7f8410f2f49561ad56428ff3bbd7f37e883c5c44d035212f94abe82617  fleetctl_v4.91.0_linux_arm64.zip
093b53445b379d8994d990e84fffe2655051e51949b287bdbd79982089ef0eb5  fleetctl_v4.91.0_macos.tar.gz
a8eb2c2ecb5bb1fe7eacfc88b9aa387ad75ca581a65f6cc86d9cce9e86880b73  fleetctl_v4.91.0_macos.zip
5320601a3369170bdfa8b5bb42e5351e4564ed66b80774ec33a3ffd89845eefe  fleetctl_v4.91.0_windows_amd64.tar.gz
2f6d2cddea5c16dcad6a56155ca9c914f715549b81ff044a7483e137160334d1  fleetctl_v4.91.0_windows_amd64.zip
2d05d4bab375f714d7d35b2011d57328c0754ced0f99cb9cc15dbb4c5f1214d2  fleetctl_v4.91.0_windows_arm64.tar.gz
6b35b3d9d7ff3068982f04311538b0b25951a0463e8e40475121967b8b5bf2fb  fleetctl_v4.91.0_windows_arm64.zip