Changes:
- Updated the "Test Fleet website" and "Deploy Fleet website" workflows
to include the full git history when checking out the repo.
- Updated the website's build-static-content script to use git to build
lastModifiedAt timestamps for Markdown and YAML files on the website.
- Updated the article template page and article category pages to show a
timestamp of when an article's Markdown file was last changed, if it was
updated >3 days after it was published.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Articles now conditionally display an **Updated** timestamp when they
were substantially modified after publication.
* The **Updated** indicator is shown on both article listing pages and
individual article pages (including mobile/desktop headers).
* **Bug Fixes**
* Timestamp rendering is now more consistent, helping readers
distinguish original publish dates from later edits.
* **Styling**
* Added styling to support the new “updated timestamp” label and
timestamp formatting within article cards.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Retires old success stories and redirects `/success-stories` to
`/customers`.
@eashaw, is there anything else / different that needs to be done to
retire these old pages? I suspect there will still be some article
category artifacts hanging around.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Updated story-related redirects so visitors are sent to the customers
page instead of older story URLs.
* Fixed deprecated device-management “fleet user story” links to land on
the customers page.
* Adjusted article page metadata and category resolution so the “success
stories” category no longer uses the previous titles/descriptions or
friendly-name mapping.
* **Chores**
* Updated static-content build rules for allowed category values and
adjusted how certain category URL prefixes are generated.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Changes:
- Updated the website's build-static-content script to use download URLs
from the next latest released version of Fleet when the latest release
does not contain installers for a platform in its release assets.
- Reduced the length of the description meta tag value in the "Block and
monitor EDR Freeze on macOS with Santa and Fleet" article
- Updated the labels values for two engineering rituals (The old label
was removed from the GH repo)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
* **Bug Fixes**
* Improved resilience when generating fleetctl download links if the
latest GitHub release is missing one or more required platform installer
assets.
* The system now looks for the most recent release that contains the
complete installer set, warns for any missing platform, and fails only
if no complete set is available.
* **Documentation**
* Updated labels for two Apple-related engineering rituals to use the
correct label.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Fixed an error in the build-static-content script that was preventing
a validation error related to article images stored outside the website
folder from being logged.
- Moved an image used in the enroll hosts guide to the
website/assets/images/articles folder, and updated the name to match
website conventions.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved the overall stability and reliability of the article markdown
build process with enhanced error handling for image link processing.
The build system now gracefully manages edge cases when processing
various image link patterns and formats, preventing unexpected build
failures that could previously occur during content compilation.
<!-- review_stack_entry_start -->
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/46093?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 -->
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 -->
Changes:
- Updated the build-static-content script to modify links to embedded
YouTube videos to use youtube-nocookie.com instead
- Removed unused video modals on the homepage and orchestration page
- Updated embedded video links to use youtube-nocookie.com instead of
youtube
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Enhanced privacy for embedded YouTube videos site-wide by switching to
a privacy-focused embed domain.
* **Bug Fixes**
* Removed several end-of-page video modals (homepage and observability)
and consolidated homepage content into a preferences-focused modal;
minor content cleanup including a hidden identifier for page handling.
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45275)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- updated logged errors in the website's build static content script
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved error reporting for GitHub API issues during build process,
providing clearer diagnostic messages.
* Optimized validation error detection order for pricing table features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Changes:
- Updated validation error messages that log an object to use
util.inspect (These were being logged as `[object Object]`)
- Removed unused validation for `comingSoon` values in the pricing
features table YAML.
- Updated webinar video URL validation to use the same method we use for
validating testimonial video URLs
Related to https://github.com/fleetdm/confidential/issues/15609
Changes:
- Updated the logo carousel component
- Updated testimonials
- Removed unused images in the website's assets folder
- Updated the quote on the open position template page
- Removed the unused personalized quote on the device management page.
- Updated the quotes on the contact page
Changes:
- Updated the `URL.parse` in build-static-content to be
`require('URL').parse()`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved webinar video URL parsing for greater reliability. Existing
behavior remains: parse failures still produce errors and video links
containing query strings are rejected.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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>
Related to: https://github.com/fleetdm/fleet/issues/42738
Changes:
- Uncommented and updated the code that replaces text content in double
parentheses with `<bubble>` elements in build-static-content to not
replace content inside of `<code>` elements
- Created a `<bubble>` component based on the ((bubbles)) in the
Sails.js docs.
Closes: https://github.com/fleetdm/confidential/issues/14799
Changes:
- Updated the comparison page template to have a hardcoded subtitle and
removed the requirement for a `articleSubtitle` meta tag for comparison
articles
- Added two calls to action to the comparison page template.
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.
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"
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>
Closes: https://github.com/fleetdm/fleet/issues/37214
Changes:
- Updated the build-static-content script to not modify the uninstall
scripts for Windows Fleet-maintained apps when adding them to the
website's configuration
- Updated the Fleet-maintained apps template page to show uninstall
scripts for Windows apps.
Closes: https://github.com/fleetdm/fleet/issues/37021
Changes:
- Updated platform names shown on platform-specific columns on osquery
table documentation pages to have consistent capitalization and names.
Changes:
- Updated the category for comparison articles (`compare` »
`comparison`)
- Updated article meta tag validation and how URLS of comparison
articles are built
- Updated the view action for comparison articles to set a meta title
and description
Changes:
- Updated the build-static-content script to only build documentation
pages from the `docs/Get started/`, `docs/Deploy/`,
`docs/Configuration/`, and `docs/REST API/` folders
Changes:
- Updated the contact form to have a third form for job applications.
The form is only shown to users who visit the page with the `#apply`
hash.
- Added `deliver-application-submission` an action that sends
information from job application submissions to a zapier webhook.
- Updated the link to the contact form on the open positions template
page to link to /contact#apply
Changes:
- Updated the website's build-static-content script to add support for a
new article category: `case study`.
- Added a new article template page for case study articles
- Added case study articles from Stripe, Faire, and Foursquare.
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Closes: https://github.com/fleetdm/fleet/issues/35983
Changes:
- Updated the Fleet website's `builtStaticContent.appLibrary`
configuration to include Fleet-maintained apps for Windows
- Added platform filters and Windows apps to the /software-catalog page
- Updated the URLs for Fleet maintained app detail pages to include the
app's platform, and added redirects for all changed URLs.
Closes: https://github.com/fleetdm/confidential/issues/12276
Changes:
- updated the build-static-content script to add the line number of
software items in apps.json to the website's Fleet-maintained apps
configuration.
- Added an edit page button to software pages that links directly to the
app's location in the apps.json file on GitHub.
Closes: https://github.com/fleetdm/fleet/issues/20792
Changes:
- Added support for the quarterly frequency for issues automatically
created for rituals
- Added support for templated auto-issue issue descriptions. Rituals
with an `issueDescription` value nested in the `autoIssue` object will
now use that value as the issue description when an issue for the ritual
is created.
Related to: https://github.com/fleetdm/confidential/issues/10737
Changes:
- Added `docs/scripts.yml`, a YAML file that contains a list of scripts
- Added `docs/mdm-commands.yml`, a YAML file that contains Windows and
Apple MDM commands
- Added `/mdm-commands`, a page that contains a list of MDM commands for
Windows and Apple commands
- Added `/scripts`, a page that contains a list of scripts
- Updated the `<docs-nav-and-search>` component to have a link to the
controls library, and reordered the lists.
- Updated the build static content script to add the scripts and mdm
commands from scripts.yml and mdm-commands.yml to the website's
`builtStaticContent` configuration.
- Updated the layout of the os-settings page to match the latest
wireframes
Changes:
- Added `articles` to the list of supported article categories in the
build-static-content script.
- Added a route for articles in the articles category.
- Updated the `view-basic-article` action to support the new `articles`
category.
Closes: #28784
Changes:
- Updated the `build-static-content` script to not throw an error if an
app listed in apps.json is missing an icon, and to use a fallback icon
for apps with no icon.
Closes: #24379
Changes:
- Updated the build-static-content script to build the configuration for
/app-library/* pages from the JSON outputs in the ee/maintained-apps
folder.
Changes:
- Reverted the changes from #27049 until the file structure of the
ee/maintained-apps folder has been settled and JSON files exist for all
apps listed in the `/ee/maintained-apps/outputs/apps.json`.
Closes: #24379
Changes:
- Updated the `build-static-content` script to build the configuration
for /app-library pages from JSON files in the ee/maintained-apps/
folder.
Changes:
- Updated the `build-static-content` script to set a `lineNumberInYaml`
value on queries, policies, and vitals.
- Updated the edit page button on the policy-details, query-detail, and
vital-details pages to take users to the specified query's line number
in the YAML file.
Changes:
- Updated the website's sitemap to include pages for app-library pages,
the correct URL for the software management page, and the meetups page.
- Updated save-questionnaire-progress to not log warnings related to
duplicate CRM records if the user submitted one of the first three steps
of the get started questionnaire.
- Cleaned up comments in build-static-content.
Related to: https://github.com/fleetdm/confidential/issues/9096
Changes:
- Created docs/queries.yml. A YAML file that contains the queries from
the standard query library (`kind: query`) and the host vitals queries
(`kind: built-in`).
- Added the `vitals/*` page, a page that displays details about host
vital queries used to gather information about.
- Updated the /queries page to show queries from the new
`docs/queries.yml` file, and moved policies to a new page (/policies)
- Updated the view action for the query-detail page to look for/redirect
to a policy page with a matching slug before returning a 404 response if
a matching query is not found. This behavior will make it so all of the
old URLs for policy pages will redirect users to the new URL.
- Updated the website's "Docs" navigation menu to have links to the new
vitals and policies pages.
Closes: https://github.com/fleetdm/confidential/issues/9378
Changes:
- Added support for `onTargetEarnings` in open-positons.yml
- Updated the build-static-content script to validate `onTargetEarnings`
values, and to replace the default compensation range on the page
template with an `onTargetEarnings` value if one is provided.
- Updated the "Creating a new position" section of the leadership
handbook to document the new key in the open positions yaml
Changes:
- Updated the `build-static-content` script to add the merged osquery
schema JSON to the website's `builtStaticContent` configuration
- Updated view-query-generator to have a badConfig exit that is used if
the website has an invalid `builtStaticContent.schemaTables`
configuration
- Updated `get-llm-generated-sql` to use the
`builtStaticContent.schemaTables` instead of attempting to use
`sails.helpers.getExtendedOsquerySchema()` (Which does not work as
intended when run in a production environment.)
Changes:
- Updated the flags on the regex used to detect Vue templates in
MArkdown content. The regex was incorrectly matching double curly
bracket-wrapped variables in markdown code blocks when it should not.
Closes: #23904
Changes:
- Replaced the regex routes that handle articles and article category
pages to have a separate route for each category
- Updated the build-static-content script to transform periods in
article filenames into dashes
- Added redirects for articles that have a changed URL
Closes: https://github.com/fleetdm/fleet/issues/25176
Changes:
- Updated the to-html helper to add the `v-pre` directive to Markdown
code blocks, This directive will prevent any of the content inside of it
from being interpreted as a Vue template.
- Updated the regex in build-static-content that looks for vue templates
to not match any templates inside code blocks.
Closes: #24746
Changes:
- Replaced the hard-coded links to articles on the /testimonials page
with server-side rendered generated links to articles. These links are
now built using the website's markdown articles configuration.
- Added support for a new meta tag on articles:
`showOnTestimonialsPageWithEmoji` If provided and set to one of the four
supported emoji (🥀, 🔌, 🚪, or 🪟), a link to the article will be added to
the /testimonials page. Example: `<meta
name="showOnTestimonialsPageWithEmoji" value="🥀">`.
- Updated the build-static-content script to throw an error if an
article has an invalid `showOnTestimonialsPageWithEmoji` meta tag value.
- Updated recent case study articles to have a
`showOnTestimonialsPageWithEmoji` meta tag.
@Drew-P-drawers When this PR is merged, you can add links to the new
case studies articles to the /testimonials page with a
`showOnTestimonialsPageWithEmoji` meta tag. The definitions for each of
the supported emoji are in this [google
doc](https://docs.google.com/document/d/1-KWQa3uMIJzeitzDRmzT3SnUoFCfcFCb6K2lyVt-Gy0/edit?tab=t.0#heading=h.oskipmb8530l)