Commit Graph
22777 Commits
Author SHA1 Message Date
Noah Talerman 02af994bb2 Renaming: YAML reference (#42115)
Part of the following issue:
- #41419
2026-03-23 17:55:18 -05:00
abb5aef6e3 Add Adam Anklewicz (Thumbtack) testimonial to customers page (#42229)
## Summary

- Adds a new testimonial from Adam Anklewicz (Manager of IT Endpoint
Engineering, Thumbtack) to the Fleet customers page
- Quote highlights Fleet's responsive Slack-based support as a key
selling point
- Testimonial is positioned prominently (2nd in sort order) on the
customers page
- Uses existing Thumbtack logo image (`thumbtack-logo-197x40@2x.png`)
for the testimonial card

### Changes

- `handbook/company/testimonials.yml` — Added new testimonial entry with
all required fields
- `website/api/controllers/view-testimonials.js` — Added Adam Anklewicz
to the sort order (2nd position)
-
`website/assets/images/testimonial-author-adam-anklewicz-100x100@2x.png`
— Placeholder profile image (to be replaced with actual LinkedIn photo)

> **Note:** The profile image
(`testimonial-author-adam-anklewicz-100x100@2x.png`) is currently a
placeholder. It should be replaced with Adam's actual profile photo from
LinkedIn before merging.

Built for [Michael
Thomas](https://fleetdm.slack.com/archives/D0AL6RD36GL/p1774252288344369)
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: Eric <eashaw@sailsjs.com>
2026-03-23 17:19:20 -05:00
Mike Thomas 2067bd9e60 Update MDM comparison PDF (#42228)
Replace PDF with updated content and CTA.
2026-03-23 17:11:15 -05:00
Allen Houchins 800f117660 Add kilocode SKILL.md for Fleet GitOps (#42258)
Create initial .kilocode/skills/fleet-gitops/SKILL.md to document
guidelines for working with Fleet GitOps configuration. Includes rules
for osquery queries and Fleet reports, validation guidance for Apple,
Windows, and Android configuration profiles, guidance on using
Fleet-maintained apps vs custom packages, and Declarative Device
Management (DDM) declaration validation. Also includes references to
Fleet, Apple, ProfileManifests, and Microsoft documentation. This is the
first version and will be expanded as patterns and constraints evolve.
2026-03-23 16:03:33 -05:00
Dante Catalfamo 4df9ae01a6 41542 android cert resend backend (#42099)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41542
2026-03-23 17:01:52 -04:00
Luke Heath d55d2571bb Fix incorrect labels on VPP and ABM tables (#41986) 2026-03-23 14:13:17 -05:00
Victor Lyuboslavsky eb71cd43b9 Removed the ptr helper package from Activity bounded context (#42161)
Refactoring. No functional changes.

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

## Summary by CodeRabbit

* **Refactor**
* Simplified internal pointer value construction across activity-related
test and service code by consolidating helper functions and using Go's
built-in operators. No changes to user-facing functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-23 14:10:07 -05:00
Eric ff35963a56 Website: Add qualified to contact forms (#42259)
Closes: https://github.com/fleetdm/confidential/issues/14602

Changes:
- Added qualified to website forms.
2026-03-23 13:28:06 -05:00
Lucas Manuel Rodriguez 6816a8294e Update host vitals docs (#42254)
This is breaking CI on PRs.
2026-03-23 15:00:51 -03:00
Victor Lyuboslavsky ea22c8087b Bind docker ports to 127.0.0.1 (#42232)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42226

When doing dev in a remote environment, like a public cloud VM, don't
expose ports to the public.
This is a contributor security improvement.

The localstack fail is present on main, and was not caused by this
change:
https://github.com/fleetdm/fleet/actions/runs/23439965808/job/68187858627

# Checklist for submitter

## Testing

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


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

## Summary by CodeRabbit

* **Chores**
* Docker Compose configuration updated across multiple services (Redis,
MySQL, mail, monitoring, and storage services) to restrict port bindings
to localhost only instead of all network interfaces.
* Documentation Docker Compose examples updated to reflect
localhost-only port binding for core services.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-23 12:30:23 -05:00
Luke Heath 1d5dfa0c79 Add @lukeheath as code owner for /docs/solutions (#42256) 2026-03-23 12:22:11 -05:00
Josh Roskos 39e6e6e82e Rename section for certificate renewal process (#42251)
Updated section title from 'Automated workflow' to 'Renewal workflow'
for clarity.
2026-03-23 12:17:08 -05:00
Mitch Francese 7be1d2bb42 Add kitty as a Fleet-maintained app (#41574)
## Summary

- Adds kitty (macOS) to the Fleet maintained apps catalog
- Input: `ee/maintained-apps/inputs/homebrew/kitty.json`
- Output generated via ingester script

## Validation checklist

- [ ] App can be downloaded using manifest URL
- [ ] App installs successfully using manifest install script
- [ ] App exists in software inventory after install
- [ ] App uninstalls successfully using manifest uninstall script

🔍 Note: @ mention #g-software Product Designer in a comment pointing to
the new icon once added.
2026-03-23 12:15:07 -05:00
Scott Gress 8ea6f338de Pin Localstack version (#42253)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42252 

Pins the Localstack image to the last-known-good version (4.5) before
they 🔪 'd the community edition and started requiring an auth token. I
also added a "wait for localstack" as an initial debugging step, and
left it in to catch similar future issues. It's probably redundant since
there likely _is_ no future for Fleet and Localstack beyond this, but it
take milliseconds and would catch any other weird Localstack failures
so, why not.
2026-03-23 12:11:55 -05:00
kilo-code-bot[bot] 879fb4a10a Update e-group meeting to 2-hour weekly with expanded attendee list (#42153) 2026-03-23 11:43:56 -05:00
e1fc1b08a8 Update modal 'Done' buttons to say 'Close' (#41751)
## Summary

- Changed all modal "Done" dismiss/close button labels to "Close" across
48 frontend component files
- Updated instructional text in `AutoEnrollMdmModal` that referenced the
"Done" button to say "Close" instead
- Updated 7 test files to assert "Close" instead of "Done" for modal
button names

## Excluded (intentionally not changed)

- `LiveResultsHeading.tsx` — "Done" button is a page-level navigation
action, not a modal dismiss
- `AddAbmModal.tsx` — Instructional text referencing Apple Business
Manager's "Done" button
- `Calendars.tsx` — Instructional text referencing Google Calendar's
"Done" button
- `ModalFooter.stories.tsx` — Storybook demo example

Built for
[Mel](https://fleetdm.slack.com/archives/D0AKX7DJFCN/p1773674157011109?thread_ts=1773673149.649299&cid=D0AKX7DJFCN)
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: melpike <mel@fleetdm.com>
Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
2026-03-23 09:59:18 -06:00
melpike f020aaa66d Update UI to reflect enrollment behavior (#42105)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41921
2026-03-23 09:54:35 -06:00
kilo-code-bot[bot]andkiloconnect[bot] a1ac4f4f88 Handbook: Add responsibility for LinkedIn ad creative management (#42213)
## Summary

- Adds a new "Manage LinkedIn ad creatives" responsibility to the
marketing handbook (`handbook/marketing/README.md`), placed after the
existing "Promote a post on LinkedIn" section.
- Documents the process for creating new ad creatives and boosted posts
inside the "Targeting experiments" campaign group with date-prefix
naming and lifetime budgets, and the criteria for promoting successful
creatives to evergreen awareness campaigns.
- Explains the reasoning: LinkedIn's campaign manager UI does not allow
true deletion of old/failed creatives from evergreen campaigns, which
clutters performance data.

**Context:**
https://fleetdm.slack.com/archives/D09Q0HUBSET/p1774045050069349

---

Built for
[mikermcneil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1774118315912539)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-23 10:47:29 -05:00
Scott Gress deec6aa904 Add "exceptions" GitOps config (#42013)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42008 

# Details

Step one in https://github.com/fleetdm/fleet/issues/40171. 

This PR adds a new `exceptions` subsection to the current GitOps config,
with boolean keys for software, secrets and labels. For existing
instances a migration is included to set labels and secrets to `true`.
For new instances, only `secrets` will be `true`.

# 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.
n/a, will put changelog in when more functionality is implemented.

## Testing

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

(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] ran migration and verified that app config had `gitops.exceptions`
with `software: false, secrets: true, labels: true`
- [X] created a new instance and verified that that app config had
`gitops.exceptions` with `software: false, secrets: true, labels: false`
- [X] verified that the PATCH /config API works and can update
exceptions independently of other config

## Database migrations

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

## New Fleet configuration settings

- [X] Setting(s) is/are explicitly excluded from GitOps
these will not be set in GitOps, since they're _about_ how GitOps works.

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* GitOps configuration now supports exception settings for granular
resource control. Administrators can configure which specific resource
types (labels, software, and secrets) are included in or excluded from
GitOps mode operations.

* **Improvements**
* Improved GitOps configuration handling to preserve exception settings
during partial updates and system migrations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-23 10:47:17 -05:00
Victor Lyuboslavsky 7a6a95703f Reduced redundant database calls in the osquery distributed query results hot path (#42157)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42156

The core change: instead of loading AppConfig, HostFeatures,
TeamMDMConfig, and rebuilding the detail query map **independently
inside each call** to `directIngestDetailQuery` and `ingestDetailQuery`
(so ~2N times per check-in with N detail results), we load everything
**once** into a `hostDetailQueryConfig` struct and pass it through.

## Before

```
SubmitDistributedQueryResults loop:
  for each query result:
    → ingestQueryResults
      → directIngestDetailQuery:  loads AppConfig, HostFeatures, TeamMDMConfig, builds detail query map
      → ingestDetailQuery:        loads AppConfig, HostFeatures, TeamMDMConfig, builds detail query map
  after loop:
    loads AppConfig for labels/policies
    loads AppConfig AGAIN for deferred host save
```

## After

```
SubmitDistributedQueryResults loop:
  on first detail query result:
    → loadHostDetailQueryConfig: loads AppConfig, HostFeatures, TeamMDMConfig, builds detail query map ONCE
  for each query result:
    → ingestQueryResults (receives pre-loaded config)
      → directIngestDetailQuery: just looks up the query in the cached map
      → ingestDetailQuery:       just looks up the query in the cached map
  after loop:
    loads AppConfig once for labels/policies/deferred host save
```

The detail config is **lazy-loaded** — if a check-in only has
label/policy results and no detail queries, the
HostFeatures/TeamMDMConfig calls are skipped entirely.

## Other changes bundled in

1. **`serialUpdateHost`** now receives the request context and uses
`context.WithoutCancel(ctx)` instead of `context.Background()`, so the
background goroutine preserves OTEL traces and logging context without
being subject to request cancellation.

2. **Deferred save host** at the end of `SubmitDistributedQueryResults`
reuses the already-loaded AppConfig instead of loading it a third time.
The old code silently skipped the host save if that third load failed.


# 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] QA'd all new/changed functionality manually
  - Ran a local load test with osquery perf

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

## Summary by CodeRabbit

* **Performance**
* Optimized distributed query result processing by preloading
configuration once per request instead of repeatedly per query result,
reducing redundant database calls and improving overall query
performance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-23 10:31:12 -05:00
fleet-releaseandallenhouchins 648a75c429 Update Fleet-maintained apps (#42241)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-03-23 10:28:15 -05:00
Eric 563b3fcef1 Website: Update order of events on GitOps workshop page. (#42244)
Changes:
- Updated the events on the gitops workshop page to be sorted by their
start date.
2026-03-23 10:25:05 -05:00
johnjeremiah 31d532b55c Removing script that strips UTM parameters (#42205)
Qualified reads UTM parameters in order to determine the source of
traffic. With this script, we are removing the parameters from the page
before Qualified can read them.
2026-03-23 09:59:09 -05:00
Mitch Francese 7c3f30a56f Add Proxyman as a Fleet-maintained app (#41573)
## Summary

- Adds Proxyman (macOS) to the Fleet maintained apps catalog
- Input: `ee/maintained-apps/inputs/homebrew/proxyman.json`
- Output generated via ingester script

## Validation checklist

- [ ] App can be downloaded using manifest URL
- [ ] App installs successfully using manifest install script
- [ ] App exists in software inventory after install
- [ ] App uninstalls successfully using manifest uninstall script

Note: @mention #g-software Product Designer in a comment pointing to the
new icon once added.
2026-03-23 09:52:41 -05:00
b274199214 Add open position: Customer Solutions Architect (#42237)
## Summary

- Adds a new open position entry for **Customer Solutions Architect**
under the Customers department to `handbook/company/open-positions.yml`
- Hiring manager: Zay Hanlon
- Includes responsibilities and experience requirements for the role

---

Built for [Isabell
Reedy](https://fleetdm.slack.com/archives/D0AEGJCGJR0/p1774273710133519)
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: Isabell Reedy <113355639+ireedy@users.noreply.github.com>
2026-03-23 14:06:33 +00:00
Victor LyuboslavskyandClaude Opus 4.6 109b4e10cd Throttle CA access through MDM (#42114)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38002 

Demo video: https://www.youtube.com/watch?v=JOZh1iQ34iI
Docs: https://github.com/fleetdm/fleet/pull/42190/changes

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

## New Fleet configuration settings

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

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

## Summary by CodeRabbit

* **New Features**
* Added the `FLEET_MDM_CERTIFICATE_PROFILES_LIMIT` configuration option
to control the number of certificate authority (CA) profiles installed
during each Apple MDM profile reconciliation cycle. This new setting
enables administrators to throttle CA profile installations and manage
installation performance during normal reconciliation operations across
large-scale deployments. Set this value to 0 to disable throttling.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:04:55 -05:00
kilo-code-bot[bot] 351107cef4 Fix purple hover color on cancel upcoming activity icon (#42173)
UPDATE: @noahtalerman: For the following bug:
- https://github.com/fleetdm/fleet/issues/41862
2026-03-23 09:44:45 -04:00
kilo-code-bot[bot] 0373967314 Show .tar.gz as allowed file type on custom package upload screen (#42174)
UPDATE: @noahtalerman: For the following bug:
- https://github.com/fleetdm/fleet/issues/42078
2026-03-23 09:44:19 -04:00
salgattll ae269f8967 Add Flatcar Container Linux and CoreOS to recognized Linux platforms (#42186)
Resolves #42185

## Summary

- Added `flatcar` and `coreos` to `HostLinuxOSs` in
`server/fleet/hosts.go`
- Added both to `HostNeitherDebNorRpmPackageOSs` (neither distro uses
deb or rpm)
- Added both to `HOST_LINUX_PLATFORMS` in
`frontend/interfaces/platform.ts`
- Added test cases in `server/fleet/hosts_test.go`
- Updated platform lists in
`docs/Contributing/product-groups/orchestration/understanding-host-vitals.md`
- Added changelog entry

## Problem

Flatcar Container Linux reports `platform=flatcar` and
`platform_like=coreos` via osquery's `os_version` table. Neither value
is in `HostLinuxOSs`, so `PlatformFromHost("flatcar")` returns `""` and
`RunsForPlatform` skips all Linux-platform-filtered detail queries.

**Symptoms:** Flatcar hosts enroll successfully, appear online, and
respond to live queries. But host details (private IP, disk space, etc.)
are never populated because the detail queries that collect this data
are never sent to the host.

## Context

Flatcar Container Linux is an immutable, container-optimized Linux
distribution (successor to CoreOS Container Linux). We deploy Fleet's
Orbit agent on Flatcar via systemd-sysext and have confirmed that all
osquery tables work correctly — the only gap was this platform string
not being recognized.

This follows the same pattern as prior platform additions: #19011
(tuxedo), #28977 (neon), #34357 (manjaro-arm).

## Changes file

- [x] Changes file added in `changes/`

## Checklist

- [x] Added/updated automated tests
- [x] Manual QA: Verified on Flatcar Container Linux 4459.2.4 with
osquery 5.21.0 and Orbit 1.53.0 — confirmed detail queries work after
patching `HostLinuxOSs` locally
- [x] No database migrations needed
- [x] No endpoint changes
- [x] No backward compatibility concerns (additive change only)
2026-03-23 10:33:48 -03:00
Nathanael Holliday eb35cd15cf Update 📜 Fleet Subscription Terms.md (#42102)
Updated online terms to reflect our enterprise terms. (eliminated refund
for termination for breach)
2026-03-23 11:44:27 +00:00
Noah Talerman dddf3ad3ad Update story template: Instructions for new tables (#42090)
Context:
https://fleetdm.slack.com/archives/C084F4MKYSJ/p1773887522983829?thread_ts=1773864328.625229&cid=C084F4MKYSJ
2026-03-23 11:15:24 +00:00
George Karr f71a206396 Fix formatting in CODEOWNERS file (#42111)
removing Ben from codeowners
2026-03-23 11:14:29 +00:00
Gabriel Hernandez afcf31f5ee fix flashing error message when turning off apple mdm (#42075)
**Related issue:** Resolves #38546

This fixes a quick error message flash on the mdm settings page when
apple mdm is turned off. We have a finally fixed an issue of stale data
on the integration page getting passed down to the mdm card when turning
apple mdm off. We now invalidate the cache of the config when apple mdm
is turned off, that way we make a request to get the most recent config
which will have the up to date data for `mdm.enabled_and_configured`.

# Checklist for submitter

- [x] QA'd all new/changed functionality manually
2026-03-23 09:55:18 +00:00
Allen Houchins a308b2f838 Update macOS 27 incompatible apps report (#42217)
Update macOS report SQL to return 'Never' for apps where
a.last_opened_time = -1 instead of converting -1 to a datetime. Adds a
CASE expression to show 'Never' or DATETIME(...), making the
last_opened_time column clearer for apps that were never opened.
2026-03-21 21:30:49 -05:00
Allen Houchins 25c221d5ce Add macOS 27 incompatible apps report (#42214)
Introduce a new report
lib/macos/reports/collect-macos-27-incompatible-apps.yml that queries
apps joined with Spotlight mdls to find Intel-only (x86_64 without
arm64) bundles. The report collects app name, path, bundle identifier,
version, architectures and last opened time, runs weekly (interval
604800), has snapshot logging and automations disabled. Also add the
report to the workstations.yml reports list so it runs for the macOS
workstation fleet.
2026-03-21 21:15:35 -05:00
fleet-releaseandmostlikelee eeef20a0c6 Update Fleet-maintained apps (#42209)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-03-21 13:31:43 -05:00
Ashish Kuthiala 24d6fa21f1 Update blue banner on home page (#42211)
Update jamf replacement messaging to be more direct
2026-03-21 11:34:28 -05:00
Victor Lyuboslavsky 241779cd67 Differentiate between Windows Server Core and full desktop installations (#42034) 2026-03-21 10:03:57 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 3cad27085f Fix sentence case violations on marketing handbook pages (#42208)
## Summary
- Fix sentence case violations in headings and table headers across
three marketing handbook pages: `fleet-social-proof.md`,
`marketing-assets.md`, and `socialmedia.md`
- Lowercased non-proper-noun words in headings (e.g., "Marketing Assets"
→ "Marketing assets", "Social Media" → "Social media", "Fleet Customer
Testimonials" → "Fleet customer testimonials")
- Applied consistent sentence case to sub-section headings with dash
separators (e.g., "Anonymous stories — Financial Services" → "Anonymous
stories — financial services")
- Corrected table header row in `socialmedia.md` ("Social Media
Platform" → "Social media platform")
- No changes to `event-execution.md` or `product-education.md` as they
already follow sentence case conventions

**Note:** Only headings (`#`, `##`, `###`) and table header rows were
modified. Body text, URLs, anchor links, and image paths were left
unchanged.

Built for [Ashish
Kuthiala](https://fleetdm.slack.com/archives/D0AG9JQ53GA/p1774074336792759)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-21 01:53:43 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 25455dfa80 Fix sentence case in marketing handbook pages and rename Marketing Assets slug (#42204)
## Summary

- Convert Title Case headings and bold labels to Fleet sentence case in
`handbook/marketing/digital-campaigns.md` (8 changes: headings like
"Paid Search Campaigns" → "Paid search campaigns", bold labels like
"Value Distribution" → "Value distribution")
- Convert Title Case headings to Fleet sentence case in
`handbook/marketing/marketing-assets.md` (26 changes across all section
headings, e.g. "Sales & Enablement" → "Sales & enablement", "Standalone
Articles" → "Standalone articles")
- Rename the page slug/title from "Marketing Assets New" to "Marketing
Assets" in the meta tag of `marketing-assets.md`
- No changes needed in `handbook/marketing/fleetchampions.md` — all
headings already follow sentence case

Only casing and the slug name were changed. No content meaning was
altered.

Built for [John
Jeremiah](https://fleetdm.slack.com/archives/D0AGMBRKRR9/p1774047981857059)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-20 19:45:59 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 795f63b2ca Fix sentence case violations in event-execution handbook page (#42202)
## Summary
- Fixed 18 Fleet Sentence Case violations in
`handbook/marketing/event-execution.md`
- Changed incorrectly capitalized words in headings, subheadings, table
headers, and the page title meta tag to follow sentence case (only first
word and proper nouns capitalized)
- Preserved proper nouns (Fleet, GitHub, Salesforce, Eventbrite, Clay,
Lu.ma, DRI, etc.)
- No content changes — only casing fixes

### Changes include:
- `Current Events` → `Current events`
- `Event Name` (table header) → `Event name`
- `Event Process` → `Event process`
- `Phase 3 Event postgame` → `Phase 3 event postgame`
- `Hex Code` → `Hex code`, `(When to use it)` → `(when to use it)`
- `Event Template Process and Script` → `Event template process and
script`
- `Connecting Eventbrite Registrations to Salesforce Campaigns (Event ID
Key)` → `Connecting Eventbrite registrations to Salesforce campaigns
(event ID key)`
- `Core Idea` → `Core idea`
- `Why This Approach` → `Why this approach`
- `Data Model (Salesforce)` → `Data model (Salesforce)`
- `Campaign Fields` → `Campaign fields`
- `Operational Workflow` → `Operational workflow`
- `Assumptions / Scope` → `Assumptions / scope`
- `Governance & Quality Controls` → `Governance & quality controls`
- `(FUTURE) Extending This to Lu.ma (Future)` → `(FUTURE) Extending this
to Lu.ma (future)`
- `Capture the Eventbrite Event ID` → `Capture the Eventbrite event ID`
- `Integration Logic (Clay)` → `Integration logic (Clay)`
- Meta title `Marketing Event Execution` → `Marketing event execution`

Built for [John
Jeremiah](https://fleetdm.slack.com/archives/D0AGMBRKRR9/p1774045647140139)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-20 17:38:53 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 4abdd56130 Fix sentence case violations in marketing-ops handbook page (#42201)
## Summary

- Fixed 5 Fleet Sentence Case violations in
`handbook/marketing/marketing-ops.md`
- Only casing changes — no content modifications

### Changes made

| Line | Before | After |
|------|--------|-------|
| Heading | `## SFDC Campaign Hierarchy` | `## SFDC campaign hierarchy`
|
| Bold text | `**Key Objectives:**` | `**Key objectives:**` |
| Bold text | `**Social Integration:**` | `**Social integration:**` |
| Heading | `#### Website Chat (Qualified)` | `#### Website chat
(qualified)` |
| Meta title | `🫧 Marketing Ops` | `🫧 Marketing ops` |

Built for [John
Jeremiah](https://fleetdm.slack.com/archives/D0AGMBRKRR9/p1774045647140139)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-20 17:35:06 -05:00
Eric 89cf234d4c Website: Update variable set in routes (#42196)
Changes:
- Updated the website layout to only disable the qualified chatbot
script on the /remediate, /turn-on-mdm, and
/okta-conditional-access-error
- Renamed the `disableAnalyticsScriptsAndIndexing` variable to
`disableChatbotAndIndexing`
2026-03-20 17:34:06 -05:00
Scott Gress 91362ba2ca Add fleetctl new command (#41909)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41345 

# Details

This PR:

* Adds a new `fleetctl new` command which creates a starter GitOps repo
file structure
* Adds support for file globs for the `configuration_profiles:` key in
GitOps, to support its use in the `fleetctl new` templates. This
involved moving the `BaseItem` type and `SupportsFileInclude` interface
into the `fleet` package so that the `MDMProfileSpec` type could
implement the interface and do glob expansion.

# 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
  - [X] added unit and intg tests for globbing profiles
  - [ ] added tests for `fleetctl new`
- [X] QA'd all new/changed functionality manually
- [X] `fleetctl new` with no args prompted for org name and created a
new `it-and-security` folder under current folder w/ correct files
- [X] `fleetctl new --dir /tmp/testnew` created correct files under
`/tmp/testnew`
- [X] `fleetctl new --dir /tmp/testexisting --force` with an existing
`/tmp/testexisting` folder created correct files under
`/tmp/testexisting`
- [X] `fleetctl new --org-name=foo` created correct files under
`it-and-security` without prompting for org name
- [X] `paths:` in `configuration_profiles` picks up multiple matching
profiles
- [X] `paths:` + `path:` in `configuration_profiles` will error if the
same profile is picked up twice


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

## Summary by CodeRabbit

* **New Features**
* Added `fleetctl new` command to initialize GitOps repository structure
via CLI.
* Added glob pattern support for `configuration_profiles` field,
enabling flexible profile selection.

* **Chores**
  * Updated CLI dependencies to support enhanced user interactions.
  * Removed legacy website generator configuration files.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-20 17:27:27 -05:00
Ashish Kuthiala 8154fa9c57 New marketing handbook page (#42198)
Separated customer stories to a new handbook page
2026-03-20 17:22:12 -05:00
Michael Buck e2e5c1bf78 updated Q4 MacSysAdmin event with location (#42192) 2026-03-20 16:58:32 -05:00
Victor Lyuboslavsky 57b7482dd6 Turn off Claude commit/PR attribution. (#42195)
Disable commit/PR messages containing: `Co-Authored-By: Claude Opus 4.6`
2026-03-20 16:43:38 -05:00
Jahziel Villasana-Espinoza 2e5d626988 SHAA: hosts summary and hosts filtering (#42149)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40795 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [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
2026-03-20 16:26:14 -04:00
Carlo 04980e8a5b Improve VPP errors for large install failures (#41997)
Fixes #39066
2026-03-20 15:37:42 -04:00
111bb4692e Bump MySQL test version from 8.0.39 to 8.0.42 (#42122)
Updates MySQL version references from 8.0.39 to 8.0.42 in GitHub Actions
workflow test matrices to match current Aurora version as of #42120.

---------

Co-authored-by: anthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com>
Co-authored-by: iansltx <472804+iansltx@users.noreply.github.com>
Co-authored-by: Ian Littman <iansltx@gmail.com>
2026-03-20 14:24:29 -05:00