Commit Graph
23197 Commits
Author SHA1 Message Date
Allen Houchins 39d4ceb347 Add cherry-pick kilocode skill (#42660)
## Summary
- Adds a new kilocode skill for cherry-picking PRs onto release
candidate branches
- Codifies the single-session constraint to prevent duplicate PRs
- Documents branch naming, commit message format, and common issues

## Test plan
- [ ] Verify the skill is picked up by Kilo when prompted with a
cherry-pick task
- [ ] Confirm the documented steps match the existing cherry-pick
workflow
2026-04-07 12:28:56 -05:00
Ian Littman f60903cea9 Don't turn Prometheus on in --dev mode (#43129)
# 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

- [ ] QA'd all new/changed functionality manually
2026-04-07 12:01:26 -05:00
johnjeremiah 2b932b9926 Add SE to the attribution framework (#43139)
This ads speaking engagement to the framework
2026-04-07 11:58:46 -05:00
Irena Reedy 4ce90e3514 Update marketing.rituals.yml (#43100)
Quarterly ritual for momentumising new customers
2026-04-07 11:51:53 -05:00
Nico dc18192b60 Add cherry-pick skill (#43111)
Usage:
- `/cherry-pick 43082`: auto-picks the latest RC branch
- `/cherry-pick 43082 rc-minor-fleet-v4.84.0`: targets a specific RC
branch

Sample PR I opened with the skill:
https://github.com/fleetdm/fleet/pull/43110
2026-04-07 13:49:12 -03:00
Nico e55e316d04 Fix Reports nav underline (#43137)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43125

# Checklist for submitter

- [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

<img width="2116" height="553" alt="Screenshot 2026-04-07 at 1 38 06 PM"
src="https://github.com/user-attachments/assets/62b58312-9fed-4a59-bc0b-bdf0aeaf8e3a"
/>
2026-04-07 13:46:30 -03:00
Scott Gress 2790ba984e Update VSCode Typescript version setting (#43131)
This PR updates VSCode settings to use Fleet's installed version of
Typescript (v4.7.4) for its language server (linting, autocomplete,
etc.) instead of what's built in to VSCode (v6.0.2). As the two can
drift, we end up with VSCode incorrectly highlighting certain syntax as
incorrect.
2026-04-07 11:27:10 -05:00
Victor Lyuboslavsky 4457459422 Wait for CERT_INSTALL delegation to be available before attempting certificate enrollment (#43065)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43064 

# Checklist for submitter

- [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

## Release Notes

* **New Features**
* Certificate enrollment now verifies system delegation availability
before attempting installation, preventing unnecessary failures.

* **Bug Fixes**
* Enhanced error messages to include specific certificate alias and
delegation status information for better troubleshooting.
* Improved handling of system state exceptions during the enrollment
process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 11:16:02 -05:00
Noah Talerman 65f1448d6f Fleet-maintained apps: Rename "Firefox" to "Mozilla Firefox" (#43095)
To be consistent w/ macOS:
https://github.com/fleetdm/fleet/blob/3a6ecb5a11fdbdf290faf7fdd7ffa6b29335892f/ee/maintained-apps/inputs/homebrew/firefox.json#L2
2026-04-07 12:13:10 -04:00
Carlo a8dae187f9 Update handbook incident response sections (#43049) 2026-04-07 10:26:54 -05:00
Eric 5652731f89 Website: Update logging in VPP proxy endpoint (#43124)
Changes:
- Updated the get-vpp-app-metadata endpoint to log all errors returned
by the Apple API
2026-04-07 10:26:38 -05:00
Allen Houchins 0989fe084a Consolidate department labels into departments.yml (#43121)
Replace individual department-*.yml label files with a single
lib/all/labels/departments.yml and update it-and-security/default.yml to
reference the consolidated file. Removes the separate department files
and moves their label entries into departments.yml; behavior and label
criteria are unchanged — this is a refactor to reduce file clutter and
simplify label management.
2026-04-07 10:10:13 -05:00
Allen Houchins ce91bfb19e Add Claude to iOS and Android (#43118) 2026-04-07 10:06:35 -05:00
Allen Houchins 00537ff370 Use Fleet-maintained Firefox and remove legacy files (#43119)
Migrate Firefox management to the fleet-maintained app slug
(firefox/darwin): update workstations.yml to remove the old update
policy and replace the macOS software entry with the firefox/darwin
slug; add a dynamic label for Macs with Firefox installed; add a patch
policy that targets the fleet_maintained_app_slug and uses the new
label. Also remove legacy update policy and package files for Firefox
(macOS and Windows) and the hardcoded Firefox pkg URL. This consolidates
Firefox management under Fleet-maintained apps and removes
duplicated/obsolete artifacts.
2026-04-07 10:01:42 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 78d12190b3 Remove YubiKey references from onboarding handbook pages (#43104)
## Summary

- Removes YubiKey/Yubikey mentions from onboarding-related handbook
pages
- Security policy pages (`handbook/it/security.md`) are intentionally
**not** modified

## Changes

### `handbook/it/README.md`
- Removed "and YubiKey security keys" from the equipment provisioning
intro
- Removed the bullet item to order YubiKey 5C NFC keys for new team
members
- Removed "and include Yubikeys (if requested)" from the shipping
checklist

### `handbook/company/leadership.md`
- Removed "do NOT receive Yubikeys" from the consultant distinction list
(no longer relevant since YubiKeys are not part of onboarding)
- Removed "and Yubikeys" from the core team member hiring description

### `handbook/company/communications.md`
- Removed "YubiKey security keys," from the tools & equipment overview

---

Built for [Isabell
Reedy](https://fleetdm.slack.com/archives/D0AEGJCGJR0/p1775558324267559?thread_ts=1775484858.521199&cid=D0AEGJCGJR0)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-04-07 09:43:59 -05:00
Magnus Jensen 0d723adf4c more done to close frontend pieces (#43113)
Follow up PR from QA'ing https://github.com/fleetdm/fleet/issues/41756
2026-04-07 09:41:52 -05:00
Juan Fernandez 3df6449426 API endpoints initial models (#42881)
**Related issue:** Resolves #42881

- Added user_api_endpoints table to track per user API endpoint
permissions.
- Added service/api_endpoints, used to handle service/api_endpoints.yml
artifact.
- Added check on server start that makes sure that
service/apin_endpoints.yml is a subset of router routes.
2026-04-07 10:40:39 -04:00
fleet-releaseandmostlikelee 07df99daa7 Update Fleet-maintained apps (#43117)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-07 09:40:29 -05:00
Lucas Manuel Rodriguez 305886fe86 Move policy request and response types to server/fleet/ package (#43068)
For #36087

## Testing

- [x] QA'd all new/changed functionality manually
2026-04-07 11:04:08 -03:00
Lucas Manuel Rodriguez 013c09721a Update changelog for fleetd 1.54.0 release (#43108) 2026-04-07 10:40:22 -03:00
Nico f465f47bbf Fix: Policies page: Browser back button doesn't work as expected (#43082)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36643

# Checklist for submitter

- [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
2026-04-07 09:51:35 -03:00
Gabriel HernandezandMagnus Jensen 4f9c908102 clear enrollment from migration status on host when it is a new enrollment (#42553)
**Related issue:** Resolves #40076

This clears out the enrollment from migration status from the
`nano_enrollment` table if the device is going through a fresh
enrollment (aka not from an mdm migration)

# Checklist for submitter

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] Added/updated automated tests
- [ ] QA'd all new/changed functionality manually

---------

Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-04-07 07:44:52 -05:00
github-actions[bot]andlucasmrod 06b5f56870 Update versions of fleetd components in Fleet's TUF [automated] (#43107)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2026-04-07 09:12:59 -03:00
Lucas Manuel Rodriguez df5b1ce78a Fix UserMenu.tsx for multi-team user (#43059)
Resolves #42979

- [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

Tested UI flow described in issue with:
- Global admin.
- Global maintainer.
- Team admin of one team.
- Team admin of two teams (where bug manifests).
- Team maintainer of two teams.
- Team admin of one team, maintainer of another team.
- Team admin of one team, technician of another team.
2026-04-07 08:13:18 -03:00
fleet-releaseandallenhouchins ce5ba8aed2 Update Fleet-maintained apps (#43101)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-06 21:16:56 -05:00
Allen Houchins 6c82a29709 Support for Slack MSIX installer and scripts in Fleet-maintained app catalog (#43060)
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.
2026-04-06 20:46:51 -05:00
Luke Heath b61d2d0d81 Handbook working group process and AI tools (#43096) 2026-04-06 19:03:01 -05:00
Irena Reedy 91109e2c91 Update fleet-social-proof.md (#43099)
Fixed broken links (we'll try this again lol)
2026-04-06 18:53:07 -05:00
Carlo 86d4162f1d Add team-shared Claude Code configuration (#42793)
## Summary

- Adds a comprehensive `.claude/` configuration that gives every
engineer Fleet-aware AI assistance out of the box — no MCP servers,
plugins, or external dependencies required
- Converts legacy `.claude/commands/` to skills with YAML frontmatter,
adds new skills, agents, rules, and hooks
- Adds ~2,500 tokens at startup; rules, skill bodies, and agent bodies
load on demand

  ## What's included

  **6 rules** (auto-apply by file path):
- Go backend, frontend, database, API endpoints, and Orbit agent
conventions
- Covers: ctxerr errors, banned imports, `fleethttp.NewClient()`,
`new(expression)` over legacy `server/ptr`, bounded contexts
(`server/activity/`, `server/mdm/`), transaction safety (no
`ds.reader`/`ds.writer` inside tx), terminology (fleets/reports), React
Query, BEM, permissions utilities, and more

  **12 skills** (invoke with `/`):
- `/review-pr`, `/fix-ci`, `/test`, `/find-related-tests`, `/lint` —
review and testing workflows
- `/new-endpoint`, `/new-migration`, `/update-data-dictionary` —
scaffolding and maintenance
- `/fleet-gitops`, `/spec-story`, `/project` — planning and
configuration workflows.
- `/project` includes a minimal self-improvement mechanism. Claude adds
discoveries and gotchas to the workstream context as you work, so each
session starts with slightly richer context than the last.

  **3 agents** (specialized reviewers):
- `go-reviewer` (sonnet, proactive) — Go conventions, ctxerr, auth,
testing
- `frontend-reviewer` (sonnet, proactive) — TypeScript, React Query,
BEM, accessibility
- `fleet-security-auditor` (opus, on-demand) — MDM, auth gaps,
injection, PII exposure

  **4 hooks** (automated):
- PreToolUse guard blocking dangerous commands (`rm -rf`, `force push`,
`pipe-to-shell`)
  - PostToolUse goimports on Go files (`**/*.go`)
  - PostToolUse prettier on frontend files (`frontend/**`)
- PostToolUse `lint-on-save`: auto-fixes with `golangci-lint --fix` /
`eslint --fix`, then runs `make lint-go-incremental` and feeds remaining
violations back to Claude as context for self-correction

**Permissions** — pre-approves safe operations (`test`, `lint`, `build`,
`make`, `git` read, `gh` CLI) and blocks dangerous ones (`force push`,
`rm -rf`)

**README** — includes a Claude Code primer for engineers new to the
tool, full reference for all skills/agents/hooks/rules, customization
guide (how to override skills, agents, model, effort), and contributing
instructions

**DATA-DICTIONARY.md** — updated with 13 recent migrations (March 2026)
that were missing

  ## Not covered (future iterations)

  - `android/` (Android app)
  - `website/` (Sails.js marketing site)
  - `ee/fleetd-chrome/` (Chrome extension)
  - `ee/vulnerability-dashboard/` (legacy Sails dashboard)
  - `third_party/` (forked external code)
  - Documentation workflows (guides, API docs, handbook)
- Fleet-maintained apps (FMA catalog, packaging, `ee/maintained-apps/`)
  - MDM-specific conventions beyond the Go backend rule

  ## How to test

  Pull the `.claude/` folder into your working branch without switching:

```bash
  git checkout origin/cc-setup-teamwide -- .claude/
  claude --debug  # start a session and work normally
  git checkout -- .claude/  # revert when done
  git clean -fd .claude/    # remove new files that weren't on your branch
```

Check the debug log at `~/.claude/debug/` for detailed hook and tool
execution traces.

Try `/test` on a recent change, `/lint` go to lint Go files, or ask
Claude to review your code and watch the `go-reviewer` agent kick in.

  ### Test plan

- [x] Start a new Claude Code session in the Fleet project and run
`/context` to verify loading
  - [x] Type `/` and confirm all 12 skills appear
  - [x] Run `/test` on a small package
  - [x] Edit a `.go` file and verify goimports runs automatically
- [x] Edit a `.go` file with a lint violation and verify `lint-on-save`
auto-fixes it
  - [x] Edit a `.tsx` file and verify prettier runs automatically
- [x] Run a command like `echo test` and verify no permission prompt
(allowed by settings)
  - [x] Verify `git diff` runs without prompt
- [x] Ask Claude to review code and check that the `go-reviewer` agent
is invoked
  - [x] Verify skills
- [x] `/update-data-dictionary` correctly updates `DATA-DICTIONARY.md`
- [x] `/spec-story` fetches issue and follows the process defined in the
skill
    - [x] `/project` detects memory directory and runs in a fork
    - [x] `/review-pr` runs in fork, produces detailed review
    - [x] `/lint go` detects changes and runs appropriate linters
    - [x] `/lint frontend` detects changes and runs appropriate linters
    - [x] `/lint full` runs all linters
- [x] `/test` detects changed packages and runs with correct env vars
    - [x] `/test` runs frontend tests when frontend files changed
- [x] `/find-related-tests` outputs correct test files and go test
commands
    - [x] `/fix-ci` with a real failing CI run URL
    - [x] `/fleet-gitops` provides GitOps context and references
    - [x] `/new-endpoint` scaffolds with correct Fleet patterns
- [x] `/new-migration` creates timestamped file + test file with correct
structure
  - [x] Verify hooks
  - [x] Verify agents
  - [x] Verify rules
  
  ### Hooks test results

<img width="792" height="502" alt="Screenshot 2026-04-04 at 10 16 14 AM"
src="https://github.com/user-attachments/assets/ed066f65-1b79-4faa-a06f-3ce50837f055"
/>

<img width="811" height="693" alt="Screenshot 2026-04-06 at 8 49 28 AM"
src="https://github.com/user-attachments/assets/4513423e-d16c-40c1-a8d8-27f38a87acfd"
/>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated internal developer documentation and Claude Code configuration
for improved development workflows, including coding standards, security
guidelines, testing procedures, and automated code review/formatting
setup.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-06 19:48:07 -04:00
Irena Reedy 0822b55257 Irena reedy ritual for printful (#43088) 2026-04-06 18:40:33 -05:00
Phillip Boushy c33e6150df Add note about server private key (#42865)
To deploy certificates, you must have a server private key setup or
GitOps errors with 'Error: applying certificate authorities: POST
/api/latest/fleet/spec/certificate_authorities received status 500
crypto/aes: invalid key size 0: crypto/aes: invalid key size 0'
2026-04-06 19:10:59 -04:00
Ashish Kuthiala eba4fad885 Update customer name references to 'Leading GPU manufacturer' (#43089) 2026-04-06 17:59:26 -05:00
Eric 3a6ecb5a11 Website: add package-lock.json (#43001)
Changes:
- Updated the top-level .gitignore to allow a package-lock.json file in
the website/ folder
- Added website/package-lock.json
2026-04-06 17:45:44 -05:00
Victor Lyuboslavsky c4479c6a84 Add require_all_software_windows config option (#43011)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42853

This PR simply adds the `require_all_software_windows` config option. It
doesn't use it. The logic to use it will be hooked up in subsequent PRs.

The fleetctl TestIntegrationsPreview test is expected to fail since it
builds the server against main and doesn't know about our new config
option.

# 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`.

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

## New Fleet configuration settings

- [x] Verified that the setting is exported via `fleetctl
generate-gitops`
- Not exported. generate-gitops does not export
require_all_software_windows (or require_all_software_macos either). The
generateControls function (generate_gitops.go) outputs a "TODO: update
with your setup_experience configuration" placeholder when any setup
experience config exists, rather than exporting individual field values.
This is a pre-existing limitation that applies equally to both fields -
not something introduced by our PR.
- [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)
- Yes. PR #42046 adds require_all_software_windows to both docs/REST
API/rest-api.md and docs/Configuration/yaml-files.md.
- [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)
- Yes, it gets cleared to false - both when setup_experience: is present
without the field, and when setup_experience: is omitted entirely. This
is the same behavior as the existing require_all_software_macos field
- [x] Verified that any relevant UI is disabled when GitOps mode is
enabled
- Covered by #42854 (frontend subtask). The existing macOS checkbox in
InstallSoftwareForm.tsx:271 already checks gitOpsModeEnabled to disable
itself. The Windows checkbox to be added in #42854 will follow the same
pattern.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a Windows setup experience software requirement setting. When
enabled, Windows devices will cancel the Autopilot setup if any required
software installation fails.

* **Tests**
* Added test coverage for the new Windows software requirement
configuration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-06 17:39:59 -05:00
Eric b1ea2121da Website: Add "About Fleet" section to case study article template page. (#43086)
Closes https://github.com/fleetdm/fleet/issues/41798


Changes:
- Added an "About Fleet" section to the case study article template
page.
- Removed the "About Fleet" sections from case study articles.



FYI @irenareedy: After this change is merged, you will not need to
include an "About Fleet" section on new case study articles.
2026-04-06 17:28:36 -05:00
Irena Reedy b5e337d129 Update fleet-social-proof.md (#43081)
Updated all case studies so they all show up on the marketing assets
social proof page
2026-04-06 17:24:15 -05:00
Irena Reedy f2fd9f2d51 Update fleet-social-proof.md (#43083)
Removed Global social media platform from assets as we had to take the
case study down
2026-04-06 17:23:26 -05:00
Konstantin SykulevandCopilot 4587edfb72 Set ResolvedInVersion for osv vuln scanning (#43087)
Bug fix for
https://github.com/fleetdm/fleet/pull/42063
**Related issue:** Resolves #40057

# Checklist for submitter

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [ ] Confirmed that the fix is not expected to adversely impact load
test results

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-06 17:15:07 -05:00
0342347675 Add guidance on converting a private Slack channel to public (#43078)
## Summary
- Adds a new "Converting a private Slack channel to public" section to
the communications handbook page, placed alongside other Slack-related
guidance under "Communicating with team members."
- Documents that regular members and channel creators cannot convert
private channels to public, and that Pepper (Andrea Pepper), the IT
admin, should be invited to the channel to perform the conversion.

Built for
[mikermcneil](https://fleetdm.slack.com/archives/C09861YJUJ2/p1775507341926709?thread_ts=1775500998.229109&cid=C09861YJUJ2)
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: Mike McNeil <mikermcneil@users.noreply.github.com>
2026-04-06 15:40:48 -05:00
c9e42aacfe Fleet vs. Jamf vs. Iru: How to Choose the Right MDM (#42166)
New Article by Team GrowthX

Date: 20-03-2026

cc @nonpunctual @irenareedy @johnjeremiah

---------

Co-authored-by: Dan Gordon <daniel@fleetdm.com>
Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
2026-04-06 15:14:22 -05:00
Eric e9a0f0ff2b Website: update search and article styles (#43076)
Related to: #42652

Changes:
- Updated the colors of the docsearch search menu
- Updated the `<li>` marker color on article pages
2026-04-06 15:03:42 -05:00
Dan Gordon 3e37820b9f Post article: Deploy fleet to Proxmox (#43058)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** RESOLVES  fleetdm/confidential#15231

Post a Guide on installing Fleet to Proxmox. Proxmox hypervisor as host.
2026-04-06 14:58:26 -05:00
theusamah fdb24fb428 Fix spelling error in marketing ops document (#43056)
Corrected spelling of 'effectively' in the contact source section.

<!-- 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.

- [ ] 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.

- [ ] 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.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [ ] 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)

- [ ] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] 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)
- [ ] 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)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))
2026-04-06 14:57:50 -05:00
Noah Talerman 6e6e9211f3 Simplify Zoom patch policy configuration (#43075)
Removed unnecessary description and resolution from Zoom patch policy
because it makes it look like you need to include these.
2026-04-06 14:31:14 -05:00
Eric ef119bd6c6 Website: Add cookieyes footer link (#43071)
Changes:
- Updated the website layout to add a "Do Not Sell or Share My Personal
Information" link for users who see the Cookie Yes banner for CCPA.
2026-04-06 13:37:05 -05:00
RachelElysia 16c65050be Fleet UI: Align edit icon with first row of text (#43048) 2026-04-06 14:20:37 -04:00
Ian Littman 1e24ead7c7 🤖 Add "confirm is pending" else block back to setup experience test (#43063)
Zed + Opus 4.6; prompts below all in the same conversation:

Relates to #41741.

> What hanged between the base branch and now in
`TestSetupExperienceVPPInstallError`, and why?

(sic)

> Explain what changed around L2179

(agent assumed something without actually running the tests)

> Run the test first to validate existing behavior; the current test
*does* pass. Thinking we want to put the else block back but use the
slice index to differentiate between the first item in the list
(expected to be running) and the rest (expected to be pending).

(agent found that an app is _not_ listed as running on the polling cycle
that we're looking at and suggested testing for everything being
pending)

> Yep
2026-04-06 12:40:45 -05:00
Jahziel Villasana-EspinozaandIan Littman 1b95a581f6 incorporate display name into setup experience ordering and enforce 1 at a time execution (#42393)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41741 

# 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] 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


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Software setup items are now ordered using custom display names when
available.

* **Bug Fixes**
* Software installations now process sequentially for improved
reliability and predictability.
* Enhanced handling of missing installation tracking data to prevent
failures.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2026-04-06 11:51:39 -05:00
344e4f2dcd Fix query results table deduplicating rows when data contains an id column (#42937)
## Summary

Closes #42402

- **Root Cause 1 (Row deduplication):** `DataTable`'s `getRowId` used
`row.id` directly as the react-table row identity. When query results
contain an `id` column with non-unique values (e.g., `SELECT id FROM
processes` where multiple hosts share PID 0), react-table deduplicates
rows with the same row ID, displaying fewer results than expected.
- **Root Cause 2 (Misleading count):** The "Showing X results" count was
derived from react-table's `rows` array, which was already deduplicated.
Fixing Root Cause 1 resolves this as well — all rows are now preserved,
so the count is accurate.

## Changes

- **`DataTable.tsx`**: Changed `getRowId` to append the array index to
the row ID (`${row.id}-${index}` instead of `String(row.id)`),
guaranteeing uniqueness while preserving the `id` prefix.
- **`InstallSoftwareTable.tsx`**: Updated `generateSelectedRows` to
produce keys matching the new `getRowId` format
(`${software.id}-${index}`), so that `defaultSelectedRows` continues to
correctly persist row selection.

## QA

1. Run a live query like `SELECT id FROM processes` targeting multiple
hosts → all rows should appear (no deduplication).
2. Verify the results count matches the actual number of displayed rows.
3. Verify the Setup Experience > Install Software table still correctly
shows pre-selected software with checkmarks persisted across pagination.

---

Built for [Rachael
Shaw](https://fleetdm.slack.com/archives/D0AFC5BRFHD/p1775167005579149?thread_ts=1775164653.589489&cid=D0AFC5BRFHD)
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: Rachael Shaw <r@rachael.wtf>
Co-authored-by: nulmete <nicoulmete1@gmail.com>
2026-04-06 13:41:02 -03:00
Jonathan Katz b447918b44 Pin FMA major version in GitOps (#43053)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38988

# 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.

- [ ] 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.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## 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)

- [ ] QA'd all new/changed functionality manually
2026-04-06 12:36:47 -04:00