## Summary
- Adds a new testimonial quote from Ed Merrett (Director, Security &
TechOps @ Harmonic Security) to `handbook/company/testimonials.yml`
- Wires up the testimonial to appear at the end of the quote carousels
on both `/security-and-control` and `/visibility-and-reporting` pages
- Adds a placeholder profile image for the testimonial author
**Quote:** "We use Fleet Device Management. Basically, osquery is the
answer."
**Note:** The profile image
(`testimonial-author-ed-merrett-48x48@2x.png`) is a placeholder
transparent PNG. Replace with Ed Merrett's actual profile photo when
available.
---
Built for [Mike
McNeil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1781716393012429?thread_ts=1780459268.285059&cid=D0AFASLRHNU)
by [Kilo for Slack](https://kilo.ai/slack)
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
Changes:
- Added api/responses/notFound.js, an updated version of the notFound
response built into Sails that sets a `hideFooter` page local variable
to hide the website footer on the 404 page.
- Updated the styles and layout of the 404 page to match the latest
wireframes.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Completely redesigned the 404 error page with refreshed content and a
more modern layout.
* Added new visual styling, including animated interactive elements on
the 404 page.
* **Bug Fixes**
* Improved 404 response handling to consistently return the correct
status for JSON requests and render the 404 page when available.
* Ensures the 404 page can render cleanly even if view rendering fails,
and hides the footer for a cleaner error-page presentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Updated the get-enriched helper to not use deleted locations returned
from Coresignal when including information about a company's
headquarters.
Changes:
- Added a new page: /security-and-control
- Added a link to the new page in the "Solutions" header dropdown menu
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## New Features
* Added a new "Security & control" page featuring security solutions
overview, product features including software inventory and autonomous
remediation capabilities, customer testimonials, and call-to-action
sections. The page is accessible via the updated website navigation
menu.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Changes:
- Updated the get-territory-user-id helper to not require a country
input, but to throw an error if one is not provided. This is done to
replace the default usageError that is thrown by helpers with an error
that provides more information about the provided inputs
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Improved input validation error handling for territory lookups to
provide clearer error messages during runtime.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Updated the testimonials shown on the visibility and reporting page.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **Updates**
* Modified the selection and order of testimonials displayed on the
Visibility and reporting page.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Related to: https://github.com/fleetdm/fleet/issues/47391
Changes:
- Updated the receive-from-github webhook to log a warning and return a
200 response when a request to the GitHub GraphQL API to find issue
details fails.
Related to: https://github.com/fleetdm/confidential/issues/16303
Changes:
- Added a new Salesforce helper: getTerritoryUserId, a helper that
returns the ID of the Salesforce user associated with a provided
location (state, country, city)
- Updated the deliver-talk-to-us-form-submission action to send ICP
users to one of five different Calendly events based on their company's
headquarters location.
- Updated the get-enriched helper to include company headquarters
information when enriching a user.
Closes: https://github.com/fleetdm/fleet/issues/42891
Changes:
- Added support for two new usage statistics, `gitOpsModeEnabled` and
`gitOpsModeExceptions`.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Updated analytics infrastructure to support expanded configuration
tracking.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: https://github.com/fleetdm/fleet/issues/46872
Changes:
- Updated the `productCategories` value of the testimonial from Adam
Pippert to show it on the /software-management page.
- Updated the order of testimonials on the homepage,
/software-management, /device-management, and /linux-management
Closes: https://github.com/fleetdm/fleet/issues/45687
Changes:
- Updated the orchestration page to be at /visibility-and-reporting, and
updated the content and layout to match the latest wireframes
- Added a redirect for /orchestration going to /visibility-and-reporting
- Removed unused images
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Launched redesigned "Visibility & Reporting" marketing page: new hero,
CTAs, feature sections, testimonials (including scrollable tweets), and
parallax background.
* Added site navigation entry for "Visibility & reporting" and redirect
from /orchestration to /visibility-and-reporting.
* **Style**
* New responsive heading styles and a dedicated page stylesheet for
improved layout, spacing, and mobile behavior.
* **Behavior**
* Testimonials payload simplified — personalization-driven headline
variations removed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: https://github.com/fleetdm/confidential/issues/16057
Changes:
- Added `email-application-submitted`, an email template that is used to
reply to users who fill out the "Apply" form
- Updated the `deliver-application-submission` action to return an
`invalidEmailDomain` response if a user's email address is on the
bannedEmailDomainsForContactFormSubmissions list, and to send a "Thank
you for applying to Fleet" email to the user who submitted the form.
- Stubbed a new custom config variable: `applicationReplyEmailAddress`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Applicants receive a "Thanks for applying to Fleet" confirmation email
with a personalized greeting and ~7-day expectation.
* Added an application-submitted email template and preview using the
email layout.
* **Improvements**
* Added a hidden honeypot field to the application form; submissions
with it filled are silently discarded.
* Added email-domain validation with a specific form error and clearer
error rendering.
* Redirected jobs to the internal handbook open-positions section.
* **Chores**
* Added a commented placeholder for an application reply email setting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: https://github.com/fleetdm/fleet/issues/45686
Changes:
- updated layout and content of the /device-management page to match the
latest positioning/wireframes
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added testimonial block with scrollable tweets and responsive brand
logo grid
* Introduced new feature sections: patching, real-time compliance,
change management, transparency, and flexible deployment
* **Updates**
* Full redesign of the device management page: layout, typography,
spacing, responsive behavior, and testimonial/tweet styling
* Updated hero copy and primary CTA to “Talk to an engineer”
* **Removals**
* Removed desktop/mobile comparison table, legacy feature blocks, video
modal, and swag request form
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added support for website swag request contacts in webhook processing,
enabling the system to accept and validate requests from this new
contact source type.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Detect AI/LLM referrers and classify them as an "Organic AI (AI)"
source. Adds a REFERRER_DOMAINS_FOR_ORGANIC_AI list and branching logic
to set attributionDetails.sourceChannelDetails and
attributionDetails.campaign based on the referring AI platform (ChatGPT,
Claude, Gemini, or Other) in
website/api/helpers/salesforce/update-or-create-contact-and-account.js.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:**
resolvesfleetdm/confidential#16034
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Improved contact attribution: traffic from AI/LLM platforms (ChatGPT,
Claude, Gemini, etc.) is now labeled "Organic AI (AI)" and assigned
platform-specific default campaigns.
* Refined organic search detection to better identify Bing search
referrals.
* Other non-digital/non-event referrers now default to "Web referral
(WR)".
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46182?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Following the pattern we have for Clay updating historical events with
the campaign name, this updates the historical event to include the
campaign name for website events.
After the contact is created/updated, we now include the campaign name
as a parameter for the historical event to update/populate the existing
field on the sfdc historical event object.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Historical events for signups, newsletter subscriptions, contact/quote
requests, whitepaper downloads, workshop requests, and page views now
include campaign association to improve marketing analytics.
* **Bug Fixes / Reliability**
* Webhooks now fall back to the most recent campaign when none is
provided.
* **Chores**
* Backend responses now expose a mostRecentCampaign field to support
campaign attribution.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45750?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Not seeing referrer data in SFDC, making this code consistent to
troubleshoot
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Standardized referrer attribution so referrer URLs are consistently
captured from attribution data and applied for both new and existing
contacts in the Salesforce integration, improving accuracy of marketing
attribution and recent referrer tracking.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46096?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
A small bug in our attribution logic. R
Replace exact equality checks with startsWith() (via Array.some).
The classification uses Array.includes(), which requires an **exact
string match**.
The lists contain bare root domains: for example
> 'https://www.linkedin.com/'
> 'https://www.reddit.com/'
> 'https://x.com/'
The stored referrer is always the full URL of the specific page the
visitor came from, including path.
So - if an Organic Social URL was https://www.linkedin.com/feed/
It does not equal https://www.linkedin.com/
and
The match fails, and the visit falls through to Web Referral. (this
would be incorrect)
Also - Expand search engine list (generalized Google domain, added
Startpage, Brave, Kagi, Yandex entries) and significantly extend social
referrer list (LinkedIn variants, lnkd.in, Hacker News, X/Twitter
variants, Facebook mobile/l.facebook, Instagram, Threads, Bsky, Mastodon
instances, YouTube, Reddit variants, Pinterest, Quora, etc.).
These changes make Organic search/social detection more accurate across
country TLDs, subdomains and shortened links.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved Salesforce traffic attribution by expanding organic referrer
allowlists and enhancing matching to better detect organic search and
social sources.
* Normalized referrer values when absent or malformed to prevent
misclassification, yielding more accurate traffic categorization and
attribution reporting.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45803?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Set Salesforce contact referrer fields from
marketingAttributionCookie.referrer. Adds Source_referrer_url__c and
Most_recent_referrer_url__c assignments in the initial attribution block
and an additional Most_recent_referrer_url__c assignment in the later
block so referrer data is persisted when creating/updating contacts.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Enhanced Salesforce integration with improved contact attribution
tracking. Referrer information is now automatically captured and stored
in designated attribution fields for both newly created and updated
contact records, enabling more comprehensive tracking of customer
acquisition sources and marketing engagement paths throughout the user
journey.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45807?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
iteration 1
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Launched a comprehensive Windows Device Management landing page
showcasing Fleet's Windows MDM features, capabilities, and deployment
options. The page features detailed product information, multiple
hosting configurations (self-hosted, Fleet-hosted, air-gapped), verified
customer testimonials, video demonstrations, and a comprehensive FAQ
section addressing Windows MDM enrollment, management, and support
topics. Accessible at `/lp/windows-mdm`.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45690?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Changes:
- Updated the receive-from-stripe webhook to handle
`customer.subscription.updated` type events sent by Stripe when a
subscription's number of hosts is changed in the Stripe UI.
Add a list of form-based contact sources and set
Most_recent_campaign_member_status__c to 'Registered' when contactSource
matches any of them. This marks contacts originating from website
contact forms, webinars, gated docs, and related sources as registered.
The change includes an eslint-disable-line camelcase comment for the
Salesforce field name.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Enhanced contact registration tracking to automatically set
appropriate campaign status when contacts are registered through
form-based sources such as webinars.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45427)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Moved the files for four pages (linux-management, basic-comparison,
deployment, and gitops-workshop) out of the landing pages folder.
- Added policies for the moved pages
- Updated the URLs for pages in the landing pages folder to be prefixed
with /lp/, and added redirects that preserve query strings when
redirecting users.
- Created a section in the routes configuration for landing pages
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Implemented /lp/* landing-page paths with 301 redirects from legacy
URLs (query strings preserved).
* Added public access exceptions so selected marketing pages are
reachable without login.
* **Refactor**
* Reorganized routing and page templates to move several pages out of
the previous landing-pages area into dedicated page paths.
* Updated included page scripts and style imports to match the
reorganized pages.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45632)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Reviewed with Mike T - colors are ok for landing page.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Launched the "Open Source" landing page with hero, CTAs, terminal
install snippet, feature sections, handbook callout, FAQ (with JSON‑LD),
interactive visuals and client-side page wiring.
* **Styles**
* Added comprehensive responsive styles across desktop and mobile
breakpoints.
* **UX**
* Testimonials are now reordered using a prioritized list to surface key
contributors.
* **Routing**
* New public route exposes the landing page and includes page metadata.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45453)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: https://github.com/fleetdm/fleet/issues/43242
Changes:
- Added /download, a page that has links to download the fleetctl
installers included in the latest release
- Updated the build-static-content script to send a request to GitHub to
get the download URLs of the latest released fleetctl installers.
- Update the parallax-city component to support a new prop that removes
the component's background when set.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a dedicated /download page with platform-specific installer
links, FAQ accordion, and copy-to-clipboard for code snippets (copy
buttons removed if unsupported).
* Added shortlink redirect from /downloads → /download.
* Sitemap now includes /download for better discoverability.
* **Style**
* New page styles and component styles, plus an option to render the
parallax city without a background.
* **Chores**
* Build now fetches and populates installer URLs automatically; the
download route is publicly accessible.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45504)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
For apple mdm search terms
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Launched a dedicated Apple Device Management landing page with hero,
marketing sections, testimonials carousel, and bottom CTA.
* Added embedded video modal and client-side page behavior for
interactive presentation.
* Included page-specific styles and ensured the page is served at
/imagine/apple-mdm with updated route metadata.
* **Chores**
* Injected the new page bundle into the global layout.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45392)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
@eashaw, I also updated the intent signals for the receive-from-clay.js
to match create-historical-event.js
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **Improvements**
* Expanded system support for tracking additional customer interaction
types, including training attendance, meetings, forms, account updates,
and marketing activities.
* Added new event type for swag requests.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45443)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
to be published in landing page folder and not linked from the main
navigation
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added an Autonomous Endpoint Management landing page with full
marketing content, capability highlights, autonomous patching workflow,
GitOps messaging, and demo CTA.
* Includes a scrollable testimonials section, responsive styles across
breakpoints, and an interactive video modal.
* Page is reachable via a new route and loads the required client script
and styles.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45342)
<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: johnjeremiah <jjeremiah@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
This is an experiment landing page to see if we get any different
results from his post
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added "Patch Faster" landing page with marketing content, responsive
styles, and page-level meta (title/description)
* Interactive demo request form with client-side validation, submission
flow, conversion tracking, and success state
* Integrations/platforms and proof sections plus a CTA and client script
to boot the page UI
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45278)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Adding a new webpage on-premise and the menu navigation button using
Claude
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Introduced "On-premise" landing page with deployment details, feature
highlights, comparison tables, and customer testimonials
* Added "On-premise" option to Solutions navigation menu
* **Style**
* Updated homepage content and layout
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Co-authored-by: johnjeremiah <jjeremiah@gmail.com>
Website:
- Removed the stripe script tag from the website layout
- Removed the stripe-card-element component
- Removed stripe from the assets eslint configuration
- Removed unused methods and modals from the customer dashboard
- Removed the unused sails account-overview page
- Removed the open-stripe-checkout utility
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Removed Stripe payment integration from the application.
* Removed account overview page and associated billing management
features.
* Removed payment card management functionality (add, update, remove
cards) from the dashboard.
* **Style**
* Removed styles for deprecated payment components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- 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))
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Removed a GitHub account from the maintainer allowlist, preventing it
from triggering automated webhook actions including Slack notifications
and repository management behaviors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Removed the /meetups page, and added a redirect going to
/gitops-workshop
- Changed the route for the query generator back to /query-generator
(was /report-generator), and updated links going to that page.
Closes: https://github.com/fleetdm/confidential/issues/15631
Changes:
- Fixed a typo in the inputs on three microsoft proxy endpoints
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Corrected input validation to properly enforce required fields in
Microsoft proxy endpoints.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: https://github.com/fleetdm/fleet/issues/44066
Changes:
- updated the `update-or-create-contact-and-account` helper to:
- Save potential duplicate contacts with placeholder name values (`?
?`).
- Use the firstName and lastName values returned by the get-enriched
helper if a name is not provided.
- Update contacts with placeholder name values if a name is provided.
- Removed a domain from the lists of banned email domains.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Enhanced Salesforce contact creation with automatic name derivation
from enrichment data.
* Improved duplicate detection allowing new contacts to be created with
flexible matching rules.
* Automatic replacement of placeholder names with verified data during
contact updates.
* **Chores**
* Updated email domain blocklists configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Added new fields to forms that deliver emails
- Updated the actions called by those forms to return a success response
if the new input is provided
- removed two routes for unused actions
- Removed the button from the deal registration success state
Changes:
- Updated the input validation and added an invalidEmailDomain exit to
the deliver-deal-registration-submission and
deliver-partner-registration-submission actions
- Updated the input validation in the
deliver-whitepaper-download-request and deliver-webinar-access-request
actions
- Added error messages to the forms on the partners page for the added
exits
- Updated the `bannedEmailDomainsForCSRSigning` and
`bannedEmailDomainsForWebsiteSubmissions` config values
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Blocked submissions from restricted email domains with a clear error
response and a prompt to use a work email.
* **Bug Fixes**
* Strengthened email-format and required-field validation across
registration and request forms.
* Restricted partner registration type options to accepted values.
* **Chores**
* Added a domain to the denylist used for website submissions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Updating the contact source value for webinars and gated docs to match
the new sfdc values
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Corrected CRM contact-source classification so webinar access requests
and whitepaper downloads are categorized separately from general contact
form submissions.
* **Chores**
* Expanded accepted contact-source values in the CRM integration to
include distinct labels for webinars and gated documents.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->