Commit graph

680 commits

Author SHA1 Message Date
Eric
5ab0ead09a
Website: remove /meetups and update routes (#44701)
Some checks failed
Go Tests / test-go (mysql:8.0.44, main) (push) Waiting to run
Go Tests / test-go-extended-mysql (mysql:8.4.8, integration-enterprise) (push) Waiting to run
Go Tests / test-go (mysql:8.0.44, mysql) (push) Waiting to run
Go Tests / test-go (mysql:8.0.44, service) (push) Waiting to run
Go Tests / test-go (mysql:8.0.44, vuln) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, fleetctl) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, integration-core) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, integration-enterprise) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, integration-mdm) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, main) (push) Waiting to run
Go Tests / test-go-extended-mysql (mysql:8.4.8, integration-mdm) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, mysql) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, service) (push) Waiting to run
Go Tests / test-go (mysql:9.5.0, vuln) (push) Waiting to run
Go Tests / test-go-extended-mysql (mysql:8.0.42, fleetctl) (push) Waiting to run
Go Tests / test-go-extended-mysql (mysql:8.0.42, integration-core) (push) Waiting to run
Go Tests / upload-coverage (push) Blocked by required conditions
Go Tests / aggregate-result (push) Blocked by required conditions
JavaScript Tests / test-js (ubuntu-latest) (push) Waiting to run
JavaScript Tests / lint-js (ubuntu-latest) (push) Waiting to run
Test Mock Changes / test-mock-changes (push) Waiting to run
Test native tooling packaging / test-packaging (local, ubuntu-latest) (push) Waiting to run
Test native tooling packaging / test-packaging (remote, ubuntu-latest) (push) Waiting to run
Test packaging / test-packaging (macos-15) (push) Waiting to run
Test packaging / test-packaging (macos-26) (push) Waiting to run
Test packaging / test-packaging (ubuntu-latest) (push) Waiting to run
Test Puppet / test-puppet (push) Waiting to run
tfvalidate / terraform validate (push) Has been cancelled
Trivy vulnerability scan / discover (push) Has been cancelled
Trivy vulnerability scan / Trivy sarif report (push) Has been cancelled
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.
2026-05-04 17:08:21 -05:00
Eric
1c89b79dbe
Website: Fix typo in ms compliance proxy inputs (#44258)
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 -->
2026-04-27 16:35:20 -05:00
Eric
2e762731dd
Website: update forms inputs (#44024)
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
2026-04-22 19:05:31 -05:00
Eric
1e2c3891e4
Website: exclude whitepaper articles from blog category page (#43980)
Closes: https://github.com/fleetdm/fleet/issues/43953

Changes:
- Updated the article category template page's view action to exclude
whitepaper articles from the "Blog" category
2026-04-22 13:42:16 -05:00
Eric
275e21bcda
Website: Update partners form, update action input validation (#43954)
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 -->
2026-04-22 11:02:06 -05:00
johnjeremiah
087ba3ff80
Contact source change for webinar and gated doc (#43838)
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 -->
2026-04-21 17:03:41 -05:00
Eric
50a7dac9d2
Website: queries » reports (#43871)
Closes: https://github.com/fleetdm/fleet/issues/43578

Changes:
- Renamed the /query-library page to be /report-library, and added a
redirect
- Renamed the query-detail template page to report-details, and added
redirects for the query pages.
- Updated the docs nav to link to the "reports"  page instead of queries
- Updated mentions of query/queries to be "report/reports"
- Renamed the query generator to be the report generator, and added a
redirect
- Updated the sitemap to use the new URLs for report-related pages

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

* **New Features**
* Added dedicated "Reports" library and details pages and client
bundles.

* **Refactor**
* Renamed "Queries" to "Reports" across UI, routes, page headings, and
labels (legacy redirects added).
* Updated generator branding from "Query robot" to "Report robot" and
updated tooltips/messages.

* **Chores**
* Updated sitemap and navigation to reference /reports and report detail
URLs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-21 13:42:32 -05:00
Eric
be14f7c10d
Website: Add webinar article template page. (#43627)
Changes:
- Added support for a new article category: `webinar`.
- Added a template page for webinar articles.
- Added an additional route for webinar articles that users are taken to
to watch the webinar recording.
- Added `deliver-webinar-access-request`, an action that updates CRM
records when users fill out the form on the webinar template page.
- Updated the accepted `intentSignal` values in the
create-historical-event helper.
- Added an article for the "Beyond the hype, practical AI for device
management" webinar.

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

* **New Features**
* Public webinar pages (/webinars/:slug and /watch) with optional
embedded video and a new page template, script, and styles.
* Sidebar signup form (first name, last name, work email) with prefill
for signed-in users and improved scroll behavior.
* POST API to request webinar access: validates email domain, records a
webinar-request event, triggers background CRM sync, and returns a watch
view on success.
* Static-site build now recognizes webinar articles and enforces
embedded-video URL validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-16 09:14:28 -05:00
Eric
703e825105
Website: Add two exits to vpp app metadata proxy (#43531)
Related to: https://github.com/fleetdm/confidential/issues/15379

Changes:
- Added two exits to the VPP metadata proxy that are used when the Apple
API returns errors. `appleApiReturnedServerError` Is returned when the
Apple API returns a 500 error, and `appleApiReturnedForbiddenResponse`
is used when the Apple API returns a 403 response.
- Updated the error handler in the VPP metadata proxy to return the body
of the logged error.

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

* **Bug Fixes**
* Improved Apple App Store API error handling: forbidden (403) and
server (500) responses are now distinguished and mapped to specific
error outcomes.
* Other API errors now return the API response body (not the internal
error object), and error logging text was clarified for better
diagnostics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-14 11:06:41 -05:00
Eric
d90f8dfd27
Website: update when stripe customers are created for new users (#43424)
Changes:
- Updated when Stripe customers are created for users who sign up on the
website. A Stripe customer will be created for new users if they
purchase a self-service Fleet Premium license.

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

* **New Features**
* Stripe customer accounts are now created during checkout instead of at
signup, deferring billing setup until needed.
* Signup no longer creates a Stripe customer record as part of user
registration.
* Checkout now enforces billing feature availability and includes
improved handling when creating customer billing records.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-10 15:23:18 -05:00
kilo-code-bot[bot]
4b659bd3a1
Rename /jamf-alternative to /replace-jamf (#43409)
## Summary

- Renames the `/jamf-alternative` landing page URL to `/replace-jamf`
- Adds a redirect from `/jamf-alternative` → `/replace-jamf` so existing
links continue to work
- Updates all internal references (route config, controller, view,
styles, JS, layout, homepage link)

## Changes

**Renamed files:**
- `website/views/pages/landing-pages/jamf-alternative.ejs` →
`replace-jamf.ejs`
- `website/assets/styles/pages/landing-pages/jamf-alternative.less` →
`replace-jamf.less`
- `website/assets/js/pages/landing-pages/jamf-alternative.page.js` →
`replace-jamf.page.js`
- `website/api/controllers/landing-pages/view-jamf-alternative.js` →
`view-replace-jamf.js`

**Updated references in:**
- `website/config/routes.js` — route and redirect
- `website/views/layouts/layout.ejs` — script tag
- `website/assets/styles/importer.less` — LESS import
- `website/views/pages/homepage.ejs` — announcement banner link

---

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

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-04-10 11:56:13 -05:00
Eric
fe72a6c1c4
Website: add support for new usage statistics (#42923)
Closes: https://github.com/fleetdm/fleet/issues/42049

Changes:
- Added four attributes to the HistoricalUsageSnapshot model:
`oktaConditionalAccessConfigured`, `conditionalAccessEnabled`,
`conditionalAccessBypassDisabled`, and
`entraConditionalAccessConfigured`
- Added the new usage statistics as inputs to the
receive-usage-analytics webhook

> Note: Before this PR can be merged, the website's database needs to be
migrated to add the new columns.

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

## Summary by CodeRabbit

* **New Features**
* Added tracking for conditional access configuration states across Okta
and Entra platforms, including bypass and enablement status.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-10 08:27:02 -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
Isabell Reedy
064ae0f7e7
Update receive-from-github.js (#42726) 2026-04-06 12:42:20 +01:00
Isabell Reedy
3d7ccafdae
Update receive-from-github.js (#43004) 2026-04-03 21:14:19 +01:00
Eric
eed4fe1357
Website: Update CRM helper to set values on account (#42989)
Closes: https://github.com/fleetdm/confidential/issues/14516

Changes:
- Updated update-or-create-contact-and-account to set the number of
hosts on account records if it is provided.
- Updated the create-quote action to send details about the number of
hosts to the update-or-create-contact-and-account helper
2026-04-03 12:30:21 -05:00
Eric
f1ab3a2ac3
Website: update partners page and form actions (#42910)
Changes:
- Updated the comments in the partners page script,
deliver-deal-registration-submission, and
deliver-partner-registration-submission.
- Removed unused @input functions on the partners page.
2026-04-02 13:22:26 -05:00
Eric
e53daf4971
Website: add /jamf-alternative page (#42776)
Closes: https://github.com/fleetdm/fleet/issues/42538

Changes:
- Added a /jamf-alternative page
- Updated the banner on the homepage to go to the /jamf-alternative
page.
2026-04-02 11:27:37 -05:00
Eric
b9a53136bf
Website: Add partners page. (#42866)
Changes:
- Added a new action `deliver-partner-registration-submission`
- Added a new page: `/partners` A page where users can submit a form to
register as a partner (reseller or integrations) or register a deal
- Updated `deliver-deal-registration-submission` to work with the new
form.
- Removed the route for the `/deals` page, and added a redirect to the
/partners page.
- Added a new email template `email-partner-registration`
- Added fake template data to the email tempalte preview tool's view
action for the new/updated email templates.

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-04-02 15:58:30 +09:00
Eric
41c79ee17e
Website: Update generated trial license keys for users who don't have an organization set. (#42835)
Closes: https://github.com/fleetdm/fleet/issues/42829

Changes:
- Updated the trial licenses generated for users in
view-fleet-premium-trial-or-redirect and view-fleetctl-preview to use
"Fleet Premium trial" as the organization if a user does not have an
organization set (older accounts created for Fleet sandbox)
2026-04-01 13:55:47 -05:00
Isabell Reedy
035242dd77
Update receive-from-github.js (#42719) 2026-03-31 16:06:33 +01:00
Eric
0414f30d24
Website: Update case study links on customers page. (#42571)
Closes: https://github.com/fleetdm/fleet/issues/42043

Changes:
- Updated the customers page to only show 12 case study links by
default, and to include a "Load more" button that shows 12 more case
study card links when clicked.
- Renamed the files for the customers page (testimonials » customers)
2026-03-27 17:21:57 -05:00
Eric
e890981e1c
Website: Move documentation pages into docs/ folder, rename scripts to script-library (#42510)
Changes:
- Moved documentation pages into the docs/ folder
- Updated routes, poicies, and importer.less
- Renamed the "scripts" page to "script-library" to be consistent with
the other landing pages for YAML documentation
- removed a stray console.log() in the new-licence page script
2026-03-26 15:32:48 -05:00
Eric
addabc28bb
Website: Update self-service Fleet premium license form (#42488)
Closes: https://github.com/fleetdm/confidential/issues/14516 

Changes:
- Added inputs for individual platforms to the license form on
/new-license
- Updated contact descriptions set by the receive-from-stripe webhook
- Updated supported intentSignal values in the createHistoricalEvent
helper
- Updated the create-quote action to update contact descriptions and
create a historical event
2026-03-26 14:23:05 -05:00
kilo-code-bot[bot]
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
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
George Karr
f71a206396
Fix formatting in CODEOWNERS file (#42111)
removing Ben from codeowners
2026-03-23 11:14:29 +00:00
Isabell Reedy
89969c1eed
Update receive-from-github.js (#42181) 2026-03-20 19:00:57 +00:00
kilo-code-bot[bot]
262234f5ac
Fix fleetdm.com RSS feed to pass W3C Feed Validator (#42068)
## Summary

Fixes all errors and warnings reported by the [W3C Feed Validation
Service](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Ffleetdm.com%2Frss%2Farticles)
for the `/rss/articles` endpoint (and all other `/rss/:categoryName`
endpoints).

## Changes

Only one file modified: `website/api/controllers/download-rss-feed.js`

### Errors fixed
- **`lastBuildDate` not RFC-822 format**: Changed from `new
Date(Date.now())` (which produces JS `toString()` format like `Thu Mar
19 2026 14:45:30 GMT+0000 (Coordinated Universal Time)`) to `new
Date().toUTCString()` (which produces RFC-822 format like `Thu, 19 Mar
2026 14:45:30 GMT`)
- **`pubDate` not RFC-822 format** (431 occurrences): Changed from
`.toJSON()` (ISO 8601) to `.toUTCString()` (RFC-822)
- **Missing channel `<link>` element**: Added `<link>` element at the
channel level pointing to the category page

### Warnings fixed
- **Missing `guid` on items** (431 occurrences): Added `<guid
isPermaLink="true">` to each item using the article's permalink URL
- **Missing `atom:link` with `rel="self"`**: Added `xmlns:atom`
namespace to the `<rss>` element and an `<atom:link href="..."
rel="self" type="application/rss+xml"/>` element in the channel

### Additional fix
- Fixed a minor bug where the image `<link>` URL was missing a `/`
separator between the domain and category name (`fleetdm.comarticles` →
`fleetdm.com/articles`)

### Not addressed
- The "Invalid HTML: Named entity expected" warning about `&#39;`
entities in descriptions. This is produced by Lodash's `_.escape()`
which correctly escapes apostrophes for XML content. The `&#39;` entity
is valid XML — the validator flags it only in an HTML parsing context,
and it does not affect feed validity or reader interoperability.

---

Built for [Brock
Walters](https://fleetdm.slack.com/archives/C097P4TAPRR/p1773932018039599)
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-20 11:42:26 -05:00
Eric
f19cc81772
Website: automatically add case study links to the /customers page (#42088)
Closes: https://github.com/fleetdm/fleet/issues/41799 

Changes:
- Added support for a new required meta tag for anonymous case study
articles: `cardTitleForCustomersPage`. The value of this meta tag is
used as the title of the automatically generated card link for the
article on the /customers page.
- Added support for a new meta tag for anonymous case study articles:
`cardBodyForCustomersPage`. If provided, the card link for the article
will use this value for the body text, if not provided, the card link
will display the `articleTitle` meta tag value.
- Updated the /customers page to automatically create card links for
case study articles that have `useBasicArticleTemplate` and
`cardTitleForCustomersPage` meta tags.
2026-03-19 13:19:22 -05:00
Eric
ab3e5ce7f3
Website: Update GitOps workshop page to show events without a venue set. (#41956)
Changes:
- Updated the GitOps workshop page to show events with no venue set.
2026-03-18 11:10:04 -05:00
Eric
4bffa64e14
Website: Update gitops-workshop view action (#41950)
Changes:
- Updated the GitOps workshop page's view action to omit events without
a venue set. (Note: this is a quick fix to resolve 500 errors on that
page, and I will create a follow up PR to display events without a venue
set)
2026-03-18 10:21:21 -05:00
kilo-code-bot[bot]
05f2daad4b
Add 'Registered for a conference' intent signal (#41919)
## Summary

- Adds `'Registered for a conference'` to the `intentSignal` `isIn`
array in three files:
- `website/api/helpers/salesforce/create-historical-event.js` — between
`'Signed up for Fleet event'` and `'Engaged with Fleetie at event'`
- `website/api/controllers/webhooks/receive-from-clay.js` — between
`'Signed up for Fleet event'` and `'Engaged with Fleetie at event'`
-
`website/api/helpers/salesforce/update-or-create-contact-and-account.js`
— added to the `isIn` array
- This replaces the incorrect approach in PR #41918, which added the
signal to the handbook markdown table instead of the code where intent
signals are validated.

---

Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/D0AF8QFBVHB/p1773789580384389?thread_ts=1773788922.891409&cid=D0AF8QFBVHB)
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: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-03-18 08:21:50 -05:00
Eric
38d89d6637
Website: Remove release section in GitHub webhook (#41898)
Changes:
- Commented out the section of the GitHub webhook that handles "release"
webhook events. The Zapier automation triggered by the webhook has been
turned off.
2026-03-17 16:19:27 -05:00
Eric
5a266bfaca
Website: Update Microsoft proxy endpoint to support windows devices (#41780)
For: https://github.com/fleetdm/fleet/issues/39489

Changes:
- Updated the `update-one-devices-compliance-status` Microsoft proxy
endpoint to support compliance status updates for Windows devices
enrolled in Entra.

---------

Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2026-03-17 13:03:32 -05:00
kilo-code-bot[bot]
f7c20c4731
Switch query generator to use Anthropic Sonnet on the backend (#41521)
## Summary

Closes #41466

- Adds Anthropic Claude API support to the `prompt.js` AI helper,
detecting `claude-*` model names and routing to the Anthropic Messages
API (`https://api.anthropic.com/v1/messages`) with proper authentication
headers
- Switches both LLM calls in the query generator
(`get-llm-generated-sql.js`) from OpenAI models
(`gpt-4o-mini-2024-07-18` for schema filtration, `o3-mini-2025-01-31`
for SQL generation) to `claude-sonnet-4-6-20260218`
- Adds `anthropicSecret` config placeholder in `custom.js` (set via
`sails_custom__anthropicSecret` env var in production)
- Updates the query generator UI to reference "Anthropic" instead of
"OpenAI"

### Changes

| File | What changed |
|------|-------------|
| `website/api/helpers/ai/prompt.js` | Added Anthropic API branch
alongside existing OpenAI logic; system prompts use Anthropic's
top-level `system` parameter |
| `website/api/controllers/query-generator/get-llm-generated-sql.js` |
Both model references changed to `claude-sonnet-4-6-20260218` |
| `website/config/custom.js` | Added `anthropicSecret` config
placeholder |
| `website/views/pages/admin/query-generator.ejs` | Updated copy from
"OpenAI" to "Anthropic" |

### Deployment notes

The `sails_custom__anthropicSecret` environment variable must be set
with an Anthropic API key before deploying this change.

---

Built for
[mikermcneil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1773278374183489?thread_ts=1773271495.702919&cid=D0AFASLRHNU)
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-16 11:48:33 -05:00
Mike Thomas
63e6375c10
Renamed fleet-gitops => infrastructure-as-code (#41520)
- Renamed fleet-gitops => infrastructure-as-code
- Changed the URL (maintaining backwards compatibility)

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-12 12:54:17 +09:00
Eric
bd9867c7b6
Website: update error handling in create-vanta-authorization-request (#41483)
Changes:
- Updated the create-vanta-authorization-request action to return a
`fleetInstanceNotResponding` response if requests fail with a 404 status
code.
2026-03-11 13:53:49 -05:00
Eric
46bc7dc880
Website: add whitepaper article template page (#41405)
Changes:
- Updated `build-static-content` to support a new article category:
`whitepaper`
- Added a new article template page: `basic-whitepaper.ejs`.
- Added `deliver-whitepaper-download-request`, an action that
creates/updates a contact and account in the CRM and creates a
historical event when a user submits a form to download a whitepaper.
- Updated the "News" link in the website's header navigation to be
"Resources / Blog", and changed the link to /articles
- Added a link to the whitepapers category page (/whitepapers) to the
side bar navigation on article category pages
- Added a whitepaper article: "Modern endpoint management: Managing
devices as code"
2026-03-11 12:37:23 -05:00
Eric
4101aa4b36
Website: Add note about using req.body in android proxy endpoints (#41186)
Closes: https://github.com/fleetdm/fleet/issues/39688

Changes:
- Added a note to android proxy endpoints that forward `req.body` to the
Android management API.
2026-03-06 18:06:25 -06:00
Isabell Reedy
ddf7796229
Update receive-from-github.js (#41170) 2026-03-06 18:47:46 -05:00
Eric
bafbc05f6d
Website: Add support for new usage statistics (#40879)
Closes: https://github.com/fleetdm/fleet/issues/39836

Changes:
- Added `fleetMaintainedAppsWindows` and `fleetMaintainedAppsMacOS`
attributes to the HistoricalUsageSnapshot model
- Added `fleetMaintainedAppsWindows` and `fleetMaintainedAppsMacOS` as
inputs to the receive-usage-analytics webhook


Note: This pull request requires database migrations and should only be
merged after the website's database is updated while it is in
maintenance mode.
2026-03-06 07:41:50 -06:00
Eric
26e6331528
Website: update testimonials on customers page (#40872)
Closes https://github.com/fleetdm/fleet/issues/39906

Changes:
- Updated the testimonials shown on the /customers page
2026-03-03 13:10:52 -06:00
Eric
c6468b598d
Website: add Linux management page (#40869)
Closes: https://github.com/fleetdm/confidential/issues/13312

Changes:
- Added /linux-management
- Updated the "Solutions" dropdown in the website's header navigation to
link to the new page.

---------

Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
2026-03-03 12:17:37 -06:00
Martin Angers
53c48dea51
Website: implement android proxy endpoint for create webapp (#40059) 2026-03-03 08:23:19 -05:00
Eric
48029fa29f
Website: Update redirects in basic article view action. (#40833)
Changes:
- Updated the behavior of the view-basic-article action to fix redirects
for article URLs with upper case letters.
2026-03-02 17:31:33 -05:00
Eric
84b9027148
Website: update case study articles (#40567)
Closes: https://github.com/fleetdm/fleet/issues/40161
Closes: https://github.com/fleetdm/confidential/issues/14508

Changes:
- Added support for a new meta tag (`<meta
name="useBasicArticleTemplate" value="true">`) that will be used to
determine which template case study articles use.
- Updated the build-static-content script to not require
`summaryChallenge`, `summarySolution`, `summaryKeyResults`, and
`companyLogoFilename` meta tags for case study articles with a
`useBasicArticleTemplate` meta tag.
- Updated the view-case-study action to display case study articles with
a `useBasicArticleTemplate` meta tag on the basic-article template page

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-02-27 14:33:42 -06:00
Mike McNeil
6cd23c0ef1
Set to aware instead of intrigued (precursor for retiring "intrigued") (#40703) 2026-02-27 12:29:41 -06:00
Eric
08d3e57759
Website: add /deployment page (#40455)
Closes: https://github.com/fleetdm/confidential/issues/14327

Changes:
- Added a /deployment page
- Added a link to the page in the "Solutions" navigation dropdown.
2026-02-25 13:34:18 +09:00
Eric
274abc6cb0
Website: update android proxy error handling (#40140)
Related to: https://github.com/fleetdm/fleet/issues/40127

Changes:
- Updated errors logged by Android proxy endpoints to include more
information about the error.
- Added a `deviceNoLongerManaged` exit to the `delete-android-device`
endpoint that is used when the Google API returns a "Device is no longer
being managed" error.
- Added a `policyNotFound` exit to the `modify-android-policies` and
`modify-enterprise-app-policy` endpoints that is used when the Google
API returns a 404 response
- Added a `invalidPolicyName` exit to the `modify-android-device`
endpoint that is used when the Google API returns an error related to
the policy name sent in the request body.
2026-02-19 17:46:41 -06:00