Related to: https://github.com/fleetdm/confidential/issues/9884
Changes:
- Updated the prompt in the `get-llm-generated-sql` action to include a
note about using wildcard characters when generating queries that use
the LIKE operator.
- Improved error handling in the `get-llm-generated-sql` action
Changes:
- Updated the has-query-generator-access policy to allow the policy to
be bypassed when a `sails.config.custom.enablePublicQueryGenerator`
value is set
- Updated the query generator to match the latest wireframes
- Updated `get-llm-generated-sql` to pass a system prompt to the schema
filtration prompt.
Changes:
- Updated the prompt helper to accept a new input: `systemPrompt`, if
provided and a supported baseModel is selected, the system prompt will
be included in the Open AI API request along with the prompt.
- Updated the models used by the query generator to improve the speed of
query generation.
Changes:
- Updated the content of the /os-settings page to match the latest
wireframes and commented out the profile generator experiment on that
page.
- Added the os-settings page to the "Docs" navigation menu and
navigation component
Changes:
- Updated the contact page to only display the "Send a message" form for
users who have a Fleet premium subscription
- Updated the deliver-contact-form-message action to include details
about a user's subscription if the user has purchased a Fleet premium
license, and to also send an email to our support email address (in
addition to sending a message to our Slack)
Changes:
- Added the ability to use coupons on the Fleet premium license
dispenser
- Updated the stripe webhook to support coupons on Fleet premium
subscriptions
- Updated the customer dashboard on the website to show decimal places
in subscription/host prices.
Changes:
- Added /os-settings, a page where users can generate configuration
profiles
- Updated the docs navigation component to have a link to the os
settings page
- Added a new action: `get-llm-generated-configuration-profile` that
generates a configuration profile in either .mobileconfig, DDM, or CSP
formats.
- Added a new website dependency: ace editor.
Closes#25655
Changes:
- Created a new component: `<docs-nav-and-search>`, a component that
displays links to documentation pages and a search bar.
- Added the `<docs-nav-and-search>` component to documentation pages,
query pages, policy pages, vitals pages, app library pages, and osquery
schema documentation pages.
- Updated the documentation template page to match the latest
wireframes.
- Updated the osquery schema documentation pages to match the latest
wireframes.
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Changes:
- Added powershell commands to windows queries in queries.yml and
windows policies in the standard query library.
- Updated code blocks on the vital details, policy details, and query
details pages to have a tab switcher to switch to view PowerShell
commands.
---------
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
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.
Changes:
- Updated the modal styles on vitals/ pages
- Updated the platform filter behavior on the vitals page to take users
to a different vital query if the currently viewed vital is not
available on the platform they switch to.
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: #25465
Changes:
- Updated the query generator page to use socket requests to call the
`get-llm-generated-sql` action to bypass Heroku's 30-second request
timeout.
Changes:
- Updated the User model to have a new attribute: `canUseQueryGenerator`
a boolean attribute that will grant users access to the query generator
page on the website.
- Added a new policy: `has-query-generate-access`
- Moved the query generator page from the admin section of the website.
Note: before this change can be merged, the website's database will need
to be migrated to add the new column to the User table
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:
- Added /admin/query-generator, a page that admins can use to generate
queries from natural language questions.
- Added `/admin/get-llm-generated-sql.js` an action that uses the same
method in the `test-llm-generated-sql` script to generate queries from a
natural language question.
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)
Changes:
- Updated the receive-usage-analytics webhook to support a new input:
`numQueries`
- Added a new attribute to the HistoricalUsageSnapshot model
`numQueries`
- Added a commented-out section to the
send-aggregated-metrics-to-datadog script.
Closes: #24399
Changes:
- Updated the website's custom hook to validate values in the
sails.config.custom.githubRepoDRIByPath config variable when the website
starts.
Changes:
- Updated the product categories used in testimonials.yml and updated
the build-static-content script to add support for the changed values
(`Endpoint operations` » `Observability` & `Vulnerability management` »
`Software management`)
- Updated the testimonial cards on landing pages to only show the
testimonials that have an explicit sort order set for them.
- Updated the order of testimonials on landing pages and the
/testimonials page.
- Updated the styles of the `<scrollable-tweets>` component.
- Updated the layout of the CTA buttons on the /device-management page
on smaller screen sizes
Closes: #24345
Changes:
- Updated the receive-from-stripe webhook to send confirmation emails to
users who purchase a Fleet Premium license subscription.
Related to: #23792
Changes:
- Added /app-library, a page that displays information about
Fleet-maintained apps
- Added the app details page (/app-library/{app identifier}), a page
that gives users detailed information about a single Fleet-maintained
app
- Updated the build-static-content script to add information about
Fleet-maintained apps to the website's configuration.
Closes: https://github.com/fleetdm/confidential/issues/8975
Changes:
- Updated the update-or-create-contact-and-account helper to only check
the current stage value of a contact record if the value is set.
Closes: #24106
Changes:
- Changed the /endpoint-ops page to be at /observability
- Added a redirect for /ednpoint-ops that redirects users to the
/observability page with original query parameters intact.
Closes: https://github.com/fleetdm/confidential/issues/7696
Changes:
- Added `stripe` as a dependency
- Updated the license dispenser form to take users to a stripe hosted
checkout page where they can provide their billing address and Tax ID
depending on their location.
- Updated the receive-from-stripe webhook to fulfill license dispenser
purchases made via stripe checkout
- Added a new action: get-stripe-checkout-session-url. This action
creates a Stripe Checkout session and returns the URL
- Updated the customer dashboard to have a link that users can visit to
update their billing information, add more hosts to their Fleet premium
license, or cancel their subscription.
- Added a new action: redirect-to-stripe-billing-portal. An action that
redirects users to a Stripe-hosted billing portal.
Changes:
- Updated the endpoint ops view action to use the user's
primaryBuyingSituation for personalization if it is set, and to default
to the IT view if not (Note: this behavior is overridden with a purpose
query string. e.g., ?purpose=security.
Closes: #23987
Changes:
- Updated the endpoint ops page to default to the IT personalization if
no primaryBuyingSituation or `purpose` query string is provided/set
Changes:
- Updated the sort order of cards on the /customer-stories page
- Updated the cards on the /customer-stories page to be rendered
server-side.
- Updated styles for testimonial cards.
Missed a JSON.parse after refactoring the HTTP request code. This was
missed because we had to comment out some of the code for testing in
order to skip authentication.
Closes: #23890
Changes:
- Updated the styles, layout and content of the
/vulnerability-management page to match the latest wireframes
- Renamed the /vulnerability-management page to /software-management
- Added a redirect for the /vulnerability-management page that takes
users to the /software-management page with all query parameters.
For: #23721
Changes:
- Added /customer-stories, a page that displays the testimonials from
testimonials.yml
- Changed the /testimonials redirect to go to the /customer-stories
page.
- Updated the "What people are saying" link on the homepage and the
header navigation.
@mike-j-thomas FYI: To make this PR quickly, I did not implement the
sort order in the wireframes or change the testimonials yaml.
For https://github.com/fleetdm/confidential/issues/8785
New fleetdm.com endpoint that validates an IdP auth token and then
requests a certificate using the provided CSR.
This is a customer hackathon result.
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Changes:
- Updated the update-or-create-contact-and-account helper to update
created contact records with a psychological stage
- Updated places where we were using the
update-or-create-contact-and-account helper to set a contact source on
new records.
Closes: #23516Closes: #23517
Changes:
- Updated the headings on the /queries page to be clickable links
- Updated the query detail page to highlight osquery tables/columns in
queries
- Updated code blocks on the query details page to prevent the copy
button from covering the content in the code block.
Changes:
- Standard query library:
- Added three policies to the Standard query library (tagged as premium)
- Changed the `kind` of the "Identify Apple development secrets (macOS)"
query to `policy` because it is an informational query (It returns rows
of results rather than 1 or 0) and removed its `resolution` value
- Updated the build-static-content script to remove platform names from
the end of query names (e.g., (macOS)). This is done to keep the URLs
for queries the same while hiding them in the UI
- Updated the layout of the queries page to match the latest wireframes
and updated the page to only show policies
- Updated the styles and layout of the queries-details page.
---------
Co-authored-by: Rachael Shaw <r@rachael.wtf>
Changes:
- Updated view-basic-documentation, view-transparency, and
view-device-management to log warnings if the Cloudflare headers we use
to determine whether or not to show the swag CTA are missing in
production
- Fixed a typo in save-questionnaire-progress
Related to: https://github.com/fleetdm/confidential/issues/8234
Changes:
- Increased the period of time that psychological stage change reason is
set by ads in save-questionnaire-progress. (30 minutes » 7 days)
Related to: #23212
Changes:
- Added a form to the homepage for users to subscribe to the Fleet
newsletter.
- Updated the unsubscribe-from-all-newsletters action to redirect users
to the fleet homepage once they are unsubscribed from the newsletter.
- Updated the update-or-create-one-newsletter-subscription action to
create/update CRM records when users sign up for the Fleet newsletter.
Closes: #23222
Changes:
- Added a swag request CTA to the /device-management page that is
visible to users visiting from the contiguous US
When this PR is merged, a new version of [this Zapier
automation](https://zapier.com/editor/158652809/draft/237372699) needs
to be published
Closes: https://github.com/fleetdm/confidential/issues/8238
Changes:
- Updated save-questionnaire-progress to prepend a
"org-acording-to-fleetdm.com" response to the questionnaire answers
reported to the CRM
Closes: #23107
Changes:
- Updated the custom hook to send `adAttributionString` to Fleet website
page view records if that value was set in a logged-in user's session
<30m before they visit a page.
<img width="330" alt="image"
src="https://github.com/user-attachments/assets/454df86f-bea8-4392-a50e-df84a68703f6">
@eashaw, can I get your help with this part?
- [ ] Then make Scott's one of the default quotes on the
device-management page, and on the contact form and wherever else eric
shaw thinks it belongs.
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: #22881
Changes:
- updated the website's custom hook to only create Fleet website page
view records if the requested URL will not redirect the user and to not
log warnings caused by duplicate records.
Changes:
- Updated number of hosts required for Fleet managed cloud to 300
- removed the pricing-features-table.yaml codeowner and added
noahtalerman as a DRI in the website's custom configuration
---------
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Closes: #21694
Changes:
- Updated the custom hook to run the
`update-or-create-contact-and-account` helper and create a fleet website
page view record in the background when logged-in users visit a page.
Closes: https://github.com/fleetdm/confidential/issues/8237
Closes: https://github.com/fleetdm/confidential/issues/8236
Changes:
- Updated `save-questionnaire-progress` to update CRM records whenever a
user submits a step of the get started questionnaire. (This previously
only happened when a user's psychological stage changed)
- Changed the name of the 'cross-platform-mdm' step to
'message-about-cross-platform-mdm'
Closes: #22522
Changes:
- Updated the contact form to not have a personal email address filter.
- Updated the message posted in Slack when users submit contact form
messages.
Closes: #22190
Changes:
- updated `save-questionnaire-progress` to set a default value for the
`organization` value of generated license keys (if a user does not have
an organization set)
Related to: #18869
Changes:
- Updated the /start questionnaire to generate a 30 day, 10 host trial
for Fleet Premium when users submit the step before the "Is it any
good?" step (Where the user is directed to try `fleetctl preview`) and
to save the details (license key and expiration timestamp) of the trial
to their user record.
- Added two new attributes to the User model:
- `fleetPremiumTrialLicenseKey`: A Fleet Premium license key that was
generated for the user when they progressed through the get started
questionnaire.
- `fleetPremiumTrialLicenseKeyExpiresAt`: A JS timestamp of when the
user's Fleet Premium trial license key expires.
- Updated the try-fleet page to have copyable terminal commands, and to
add the `--license_key` flag with the users license key to the command
to run `fleetctl preview`
Related to: #21918
Changes:
- Changed the name of the query string the endpoint ops page uses for
personalization to be `purpose` (previously `pageMode`)
- Updated `update-or-create-contact-and-account` to only allow automated
psychological stage regressions caused by the get started questionnaire.
- Updated deliver-talk-to-us-form-submission to always set a
psychological stage. (That now may not be set depending on the contact
records psychological stage)
- Updated the `update-or-create-contact-and-account` helper to assert
that the number of employees returned from the `get-enriched` helper is
always a number.
- Updated the version of `sails-hooks-organics` the website uses and
updated the inputs to the sendgrid sendTemplateEmail helper.
Closes: #21798
Changes:
- Updated the layout and styles for the /guides page.
- Upgraded the version of DocSearch the website uses
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Related to: #21259
Changes:
- Updated the `receive-usage-analytics` webhook to add new inputs for
metrics added in [#21131](https://github.com/fleetdm/fleet/pull/21131)
- Updated the `HIstoricalUsageSnapshot` model to add attributes for the
new metrics.
When this PR is merged:
- [ ] Put the website into maintenance mode
- [ ] Update the HistoricalUsageSnapshot table to add new columns
- [ ] Update all existing records to set the default value for the new
columns
Closes: #21695
Changes:
- Removed the quote from Harrison in testimonials.yml
- Updated the order of quotes on the endpoint ops page
- Replaced the quote from Harrison on the /contact and /signup pages
Closes: https://github.com/fleetdm/confidential/issues/7815
Changes:
- Updated deliver-talk-to-us-form-submission to set contacts who fill
out the "talk to us form" to book a meeting as Psychological stage 4.
Closes: #21237
Changes:
- Updated view-endpoint-ops to set a `pagePersonalization` value using
the users primaryBuyingSituation (if it is set) or a `pageMode` query
parameter.
- Updated the endpoint ops page to be personalized based off the
pagePersonalization value set in the view action
- Updated the links to the endpoint ops page on the unpersonalized
homepage to use a pageMode query parameter (e.g., pageMode=it) instead
of a utm_content query parameter.
- Updated the links to the endpoint ops page on the personalized
homepage to not include a utm_content query parameter.
Closes: https://github.com/fleetdm/confidential/issues/7844
Changes:
- Updated the get-enriched helper to fix the return value for
numberOfEmployees.
- Updated the update-or-create-contact-and-account to make sure the
number of employees set on new account records is always a number.
Closes: #20904
Changes:
- Updated the `deliver-contact-form-message` action to send contact form
submissions to Fleet's support email address.
- Added an email template for contact form messages.
Changes:
- Updated the `update-or-create-contact-and-account` helper to support a
new input: `psychologicalStageChangedBy`, and to set the provided value
on contact records.
- Updated `save-questionnaire-progress` to set a
psychologicalStageChangedBy value when updating contact records.
Changes:
- Updated save-questionnaire-progress to send a formatted string of a
user's start questionnaire responses to the
update-or-create-contact-and-account helper
- Updated the update-or-create-contact-and-account helper to set
getStartedResponses on contact records.
Related to: https://github.com/fleetdm/confidential/issues/7339
Changes:
- Updated `save-questionnaire-progress` to return the user's selected
`primaryBuyingSituation`
- Updated the /start flow to update data in Segment
- Removed the border on the /start flow images that I mistakenly added.
Closes: #21417Closes: #21413Closes: #21378
Changes:
- Updated save-questionnaire-progress to return the user's current
psychological stage when a user submits a step of the /start
questionnaire
- Updated the /start questionnaire to display an image that changes as
the user's psychological stage progresses.
- Updated the first step of the /start questionnaire and gave users the
ability to go back to the first step.
- Added an option for Linux to the "what do you manage" question that is
asked to MDM-focused users
- Added a step for MDM-focused users filling out the /start
questionnaire
- Updated the /start CTA to show different images based on psychological
stage and to be visible to users who have not purchased a self-service
license
Changes:
- Updated the `update-or-create-contact-and-account` helper to set a
"Contact source" on new contact records created.
- Updated everywhere where a lead source was being set to instead set a
contact source
- Removed duplicate and redundant features
- Reordered features by order of operation from the POV of an IT admin
- Consolidated use cases
- Renamed some features for clarity
See [this
doc](https://docs.google.com/document/d/1z7X__TmJIpRXQF-Mx9NK4EChwkX73fj0ymLnIJM2GnQ/edit?usp=sharing)
for more details, including methodology for the organization and
styling.
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Closes: https://github.com/fleetdm/confidential/issues/7528
Changes:
- Added a new action: unsubscribe-from-marketing-emails, which updates a
user record that uses a specified email address to exclude it from the
deliver-nurture-emails script.
- Updated the email template to include a link that users can click to
unsubscribe.
- Added a modal to the homepage that is shown to users who unsubscribe
from marketing emails
- Updated the email template data in deliver-nurture-emails and
view-email-template-preview
Closes: #20823
Changes:
- Updated the build-static-content script to use the GitHub API to get
timestamps of when files were last changed.
- Updated the get-extended-osquery schema helper to use a GitHub token
to authenticate GitHub requests (if it is provided)
Related to: https://github.com/fleetdm/confidential/issues/7227
Changes:
- Added a banner to the /better page that is visible to users who visit
it with a `?utm_content=secureframe` query param.
- Updated the `<animated-arrow-button>` component to support customizing
text and arrow color.
Changes:
- Added three new emails for MDM-focused users who are psystage 3, 4
,and 5.
- Added a new email layout
- Added a script to send nurture emails to users with an MDM primary
buying situation who signed up after 2024-07-22 that
- have been in psychological stage 3 for 24 hours
- have been in psychological stage 4 for 24 hours
- have been in psychological stage 5 for six weeks
- Updated the USer model to have. four new attributes:
- `psychologicalStageLastChangedAt`
- `stageThreeNurtureEmailSentAt`
- `stageFourNurtureEmailSentAt`
- `stageFiveNurtureEmailSentAt`
- Added a new custom config variable
`sails.config.custom.contactEmailForNutureEmails`
Closes: #19531
Changes:
- Added a deal registration page at /deals
- Added a new email template: `email-deal-registration`
- Added a new action to send the deal registration form submission to
the email address set in the `sails.config.custom.
dealRegistrationContactEmailAddress` config variable
- Updated the HTML email preview page to support the new email template.
Closes: https://github.com/fleetdm/confidential/issues/7394
Changes:
- Updated update-or-create-contact-and-account to set descriptions on
contacts
- Updated deliver-talk-to-us-form-submissions to not create leads for
users sent to the "Lets get you set up!" event
- Updated deliver-contact-form-message to only create contact records.
Closes: #20284
Changes:
- Updated the `update-or-create-contact-and-account` helper to set a
lead source on new contact records
- Updated `update-or-create-contact-and-account-and-create-lead` to to
pass in a lead source to the `update-or-create-contact-and-account`
helper
- Updated save-questionnaire-progress to set a lead source on newly
created contact records
Closes: #20189
Changes:
- Made the CTA for the get started questionnaire visible to users who
have completed the "Thanks for checking out Fleet" step
- Updated the background of the image in the mobile start CTA.
- Updated the get started questionnaire to take users who have completed
the "Thanks for checking out Fleet" step to either the "What did you
think?" or "How was your deployment?" steps
Closes: #20102
Changes:
- Replaced timers.setImmediate with `.exec()` when CRM records are
updated in the background
- Removed the `\s` replacement during relative link modification in
build-static-content and added a comment explaining why we replace URL
encoded spaces in links.
Changes:
- Updated the `authorGitHubUsername` meta tag for three articles
- Updated a GitHub username in the list of maintainers in the
receive-from-github webhook.
Closes: https://github.com/fleetdm/confidential/issues/6929
Changes:
- Updated the update-or-create-contact-and-account helper to search for
an existing contact by email address before searching for an account
with the information provided by the get-enriched helper. This change
will allow us to change the account that a contact is associated with in
the CRM without duplicate records getting (re)created.
Closes: #19895
Changes:
- Updated the `update-or-create-account-and-contact` helper to search
for an existing account record by name before searching by website. This
additional search adds ~1.5 seconds to the time the helper runs in the
background but greatly reduces the chances of creating duplicate
accounts.
Closes: https://github.com/fleetdm/confidential/issues/6069
Changes:
- Added a new route going to the create-vanta-authorization-request
action: `/api/v1/create-external-vanta-authorization-request`
- Added a new input to the create-vanta-authorization-request action:
`sharedSecret` - A secret that must match
`sails.config.custom.sharedSecretForExternalVantaRequests` when an
external request is made to the
`/api/v1/create-external-vanta-authorization-request` endpoint
- Updated the authorization URL returned by the
create-vanta-authorization-request endpoint
- Updated the redirect in the view-vanta-authorization endpoint (if a
redirect URL is provided) to not use res.redirect() (it causes 500
errors) when redirecting users.
Related to: https://github.com/fleetdm/confidential/issues/5573
Changes:
- Deleted /explore-data pages and related files
- Added redirects for removed pages.
- Removed all explore data related website configuration in the
build-static-content script.
- Removed the explore data section of the custom configuration.
Closes: https://github.com/fleetdm/confidential/issues/6069
Changes:
- Added a new action to add support for the Vanta integration to be set
up from a partners website. This action sets the required cookies
provided via queryString and redirects users to the Vanta authorization
page.
- Updated the `create-vanta-authorization-request` action to redirect
users who provide a `redirectToExternalPageAfterAuthorization` value the
new endpoint instead of returning a vanta authorization URL.
- Updated `view-vanta-authorization` to redirect users to the URL
provided to the `create-vanta-authorization-request` endpoint (if one
was provided)
Changes:
- Updated the update-or-create-contact-and-account helper to always set
the integrations admin user as the owner of new accounts and contact
records created.
Closes: https://github.com/fleetdm/fleet/issues/19308
Changes:
- Added six new attributes to the `HistoricalUsageSnapshot` model (
`numSoftwareVersions`, `numHostSoftwares`, `numSoftwareTitles`,
`numHostSoftwareInstalledPaths`, `numSoftwareCPEs` and
`numSoftwareCVEs`)
- Added inputs to the receive-usage-analytics webhook for the new usage
statistics.
When this PR is merged, we will need to migrate the Fleet website's
database to add the new columns, to do this:
- [x] Make an announcement in Slack to let people know the website will
be offline for ~8 minutes
- [ ] Merge this PR
- [ ] As the deploy action runs, put the website into maintenance mode
- [ ] Add the new columns for the added attributes
- [ ] Set the default value for the new attributes on existing database
records
- [ ] After the deploy workflow is complete, take the website out of
maintenance mode.
Closes: #18530
Changes:
- Added a collapsable sitewide CTA to bring users who have not completed
the get started questionnaire back to the /start page.
- Added a new action (`account/updateStartCtaVisibility`) to set a
timestamp of when the CTA will be visible (not collapsed) in a user's
session when they close the CTA
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Related to: https://github.com/fleetdm/fleet/issues/19369
Changes:
- Disabled the requests to MergeFreeze that unfreeze auto-approved PRs
when the main branch of the Fleet repo is frozen.
Closes: #19271Closes: #19286
Changes:
- Updated the example in the schema folder readme
- Updated the block scalar used in Fleet's osquery override
documentation (`>-` » `|-`) and removed extra newlines
- Updated the block scalar used in URLs used to create new yaml override
files
- Regenerated osqeury_fleet_schema.json
Closes: #18932
Changes:
- Updated `update-or-create-contact-and-account.js` to not round robin
new account records created.
- Updated create-lead to reassign accounts owned by the integrations
admin user when a new lead is created.
- Updated logged warnings in signup, deliver-contact-form-message and
deliver-talk-to-us-form-submission.
- Updated signup.js to not create salesforce leads (only account and
contact records)
- Updated save-questionnaire-progress to create Salesforce leads when we
know the user has a use case for Fleet.
Changes:
- Added a new helper:
`salesforce/update-or-create-contact-and-account-and-create-lead`, a
wrapper for the `update-or-create-contact-and-account` and `create-lead`
helpers that is intended to be run in the background.
- Updated the `signup`, `deliver-contact-form-message`, and
`deliver-talk-to-us-form-submission` actions to use the new helper
Changes:
- Moved the logic for redirecting users to the license dispenser after
they login/sign up into the page scripts for the login and register
pages.
- Updated error messages in the create lead helper
Related to: https://github.com/fleetdm/fleet/issues/18863
Changes:
- Updated the receive-usage-analytics webhook to set a default value for
organization if a Fleet instance reports an empty string as its
organization.
Related to: https://github.com/fleetdm/fleet/issues/18817
Changes:
- Updated a conditional statement in save-questionnaire-progress to
check the correct variable for a user's previous answer to the "Have you
ever used Fleet?" question
Changes:
- Updated the `update-or-create-contact-and-account` helper to round
robin existing Account records assigned to the "Integrations admin"
user.
Changes:
- Updated the regex used to match HTTP protocol and common subdomains in
the `get-enriched` helper to include more subdomains and changed it to a
custom config variable
(`sails.config.custom.RX_PROTOCOL_AND_COMMON_SUBDOMAINS`)
- Updated the update-or-create-contact-and-account helper to remove HTTP
protocol and subdomains from provided linkedIn URLs.
Related to: https://github.com/fleetdm/confidential/issues/6357
Changes:
- wrapped the `updateOrCreateContactAndAccount` helper call in
`save-questionnaire-progress` in `setImmediate()` to allow users to
progress through the form without waiting for CRM updates.
Closes: https://github.com/fleetdm/confidential/issues/6381
Changes:
- Updated the get-enriched helper to improve enrichment results for
users whose provided organization is not the top experience listed on
their LinkedIn profile.
Eric, I did not test this (coded live w/ mike T). Relying on your eyes.
Also, remember remember the old legacy data that might need to be
migrated, especially since I added some assertions? (whuh ohhh)
When using this API many times in a row to try and populate real policy
descriptions/resolutions, I discovered a problem: the inferred
resolution (“What we’ll do”) almost never used decisive language, so
you'd get a lot of “probably”, etc., when we really want it to sound
more confident about what will happen during the maintenance window.
(The calendar events say what WILL happen to your device, not what
should probably happen.)
After several attempts to tweak the prompt, I ended up getting the best
results by just removing "probably" from
`whatWillProbablyHappenDuringMaintenance`. I made this change to the
prompt without changing the data that this API returns.
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: https://github.com/fleetdm/confidential/issues/6268
Changes:
- Updated the questionnaire on the /start page to take users who answer
"I'd like you to host Fleet for me" on the "What did you think?" step to
the host count question.
- Updated the /start page script to handle this new behavior.
- Updated how psychologicalStage is set for users who answer the host
count question in `save-questionnaire-progress`.
- Updated `save-questionnaire-progress` to only call the salesforce
helper if the user's `psychologicalStage` changes.
Changes:
- Added two steps to the /start questionnaire for users who select "I
want to deploy Fleet in my environment" on the "What did you think"
question.
- Updated save-questionnaire-progress to set psychologicalStage based on
selected answers to the new questions
Closes: https://github.com/fleetdm/confidential/issues/6355
Changes:
- Replaced the reqeust to zapier in `signup.js` with
`sails.helpers.salesforce.createLead()`.
- Updated signup.js to only call the salesforce helpers when the website
is running in a production environment.
- Updated the `createLead` to handle errors when retrieving or creating
salesforce records, and to set a provided `numberOfHosts` and
`primaryBuyingSituation` on created lead records.
Changes:
- Changed the warnings in the get-enriched helper to use
`sails.log.info`.
- Updated the email domain parsing to handle protocol-less URLs returned
from Coresignal
Closes: #18643
Changes:
- Updated the response from the `updateOrCreateAccountAndContact` helper
when running the website in a development environment.
- Updated the Zapier webhook request in the signup action to send the
contact and account IDs returned from the
`updateOrCreateAccountAndContact` helper.
Related to https://github.com/fleetdm/confidential/issues/6357
Changes:
- Updated `save-questionnaire-progress` to only call
`sails.helpers.salesforce.updateOrCreateContactAndAccount` is called
when a user's `psychologicalStage` changes.
Closes: https://github.com/fleetdm/confidential/issues/6215
Changes:
- Updated how psychological stages are set when a user completes a step
of the get started questionnaire
> Note: I'm creating this as a draft PR until I review these changes to
make sure this is what we want to do.
Changes:
- Updated the `salesforce/update-or-create-contact-and-account` helper
to not to try to use `enrichementData.employer.emailDomain` if an
`organization` was provided.
Changes:
- Updated the default value that is being sent as a
primaryBuyingSituation
- Updated the updateOrCreateContactAndAccount Salesforce helper to do
nothing in development.
+ Use the same "Failed to generate human interpretation using generative
AI." message if you send it something weird like "asdf" (so you don't
get a vague 500 error).
+ Simplify the code a bit
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: https://github.com/fleetdm/confidential/issues/6255
Changes:
- Updated view-endpoint-ops to sort and exclude quotes based on a user's
`primaryBuyingSituation`.
- Updated the quote by Brendan Shaklovitz in testimonials.yml
- Updated the endpoint ops page to hide/show videos based on a user's
`primaryBuyingSituation`
-
Closes: https://github.com/fleetdm/confidential/issues/6199
Changes:
- Updated view-new-license to redirect non-logged-in users to the
/register page (it was previously doing this, but had a policy applied,
so non-logged-in users were always redirected to the signup page.)
- Updated the /register page to support a new input: `purchaseLicense`.
If this query string is provided, the register page will redirect users
who sign up to the /new-license page.
- Updated the /login page to support a new input: `purchaseLicense`. If
this query string is provided, the login page will redirect users who
log in to the /new-license page.
- Updated policies to bypass the is-logged-in policy for the
/new-license page.
- Updated the "get your license" link in the website nav menu to go to
the /new-license page.
Closes: https://github.com/fleetdm/fleet/issues/18448
Changes:
- Updated `create-vanta-authorization-request` to return an
`invalidResponseFromFleetInstance ` response when a response from a
Fleet instance does not contain the expected values (A `user` object for
a request to the `/me` endpoint and a `license` object for the request
to the `/config` endpoint.)
- Updated the /connect-vanta page to show an error message to users
asking them to verify the URL of their Fleet instance if the API
response is invalid.
Changes:
- Updated personalization on the integrations section of the homepage
for users with `vm` or `eo-security`.
- Added a `FUTURE:` note to the custom hook detailing how to use the
platform model to be smarter about sending requests to the Algolia
crawler.
Related to: https://github.com/fleetdm/confidential/issues/6155
Changes:
- Added a new attribute to the `User` model: `psychologicalStage`
- Updated `save-questionnaire-progress` to update a user's
`psychologicalStage` based on their current answers/progress on the
/start questionnaire
- Updated the personalization on the /contact page to use the
`psychologicalStage` from the user model
- Updated the value of a unselectable form option on the /start page
Closes: https://github.com/fleetdm/confidential/issues/6158
Changes:
- Added two new config variables to website/config/custom:
- `bannedEmailDomainsForCSRSigning` An array of email domains that are
not allowed for CSR signing requests
- `bannedEmailDomainsForWebsiteSubmissions` an array of email domains
that are not allowed for website signups and contact form submissions.
- Updated the `deliver-apple-csr`, `deliver-talk-to-us-form-submission`,
`deliver-contact-form-message`, and `signup` actions to use the new
config variables.
Closes: #18240
Changes:
- Updated the schema override files to use only one YAML block scalar
(`>-`)
- Updated the template yaml included in the link to create a new
override file in get-extended-osquery-schema helper to use the `>-`
block scalar
- regenerated osquery_fleet_schema.json
Related to: #18099
Changes:
- Updated the contact page to show a different message depending on
answers a user provided in the /start questionnaire.
- For users who have Fleet deployed already: "Schedule a personalized
demo for your team and get support or training."
- For users who have tried Fleet and are ready to deploy: "Let us help
you deploy and evaluate Fleet quickly for yourself. We’d love to save
you some time."
-
Closes: #18295
Changes:
- Updated the custom hook to set `res.locals` for HEAD requests to
prevent 500 errors when a request is sent to a page that references
`res.locals.me`
Changes:
- Updated the `save-questionnaire-progress` to send a request to Zapier
when a user completes the "What are you using Fleet for" step of the
/start questionnaire.
Closes: #18047
Changes:
- Added three steps to the /start questionnaire
- Updated the contact page to prefill information for logged-in users by
default
- Updated the layout of the f/leetctl-preview page for users navigating
to it from the /start page.
- Updated the quote for vulnerability management on the /start and
/contact pages to have a logo (There will be a separate PR, to add it to
testimonials.yml)
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Changes:
- Updated the `build-static-content` script to remove support for the
`requires_user_context` column attribute
- Updated `get-extended-osquery-schema` to not set a
`requires_user_context` value in the merged schema json.
- Regenerated `schema/osquery_fleet_schema.json`
Changes:
- updated the custom hook to support clearing the
`primaryBuyingSituation` with a query string (`?utm_content=clear`)
- Updated the pricing page to pre-select a pricing table mode based on a
user's `primaryBuyingSituation`
- reordered content on and updated the /support page to personalize/hide
community slack links based on a user's `primaryBuyingSituation`
- Updated the meta description of the product category landing pages
- updated personalization based on `primaryBuyingSituation` on the
/contact page.
- Updated the title of the /queries page based on the user's
`primaryBuyingSituation`
- Added personalization to the product category landing pages.
Closes: #17958
Changes:
- Updated the primary and secondary CTAs site-wide
- Updated the /start page to have a multi-stage form that users can fill
out to personalize their onboarding experience
- Updated the signup action to not set a `primaryBuyingSituation` on new
user records (This will now be set when users progress through the
/start form)
- Added two new attributes to the `User` model:
`currentGetStartedQuestionnarieStep` and
`getStartedQuestionnarieAnswers` that save user's progress in the /start
form.
Before this PR can be merged we will need to:
- [x] Update the Zapier webhook that runs when new users sign up to no
longer expect a `primaryBuyingSituation` value
- [ ] Update the User table in the website's database
- [ ] Migrate the existing user records
Closes: #17883
Changes:
- Updated the `get-extended-osquery-schema` helper to set the `type`
values of columns of tables with Fleet overrides to be lowercase.
- Regenerated `osquery_fleet_schema.json`
Related to: https://github.com/fleetdm/fleet/issues/17861
Changes:
- Updated `get-extended-osquery-schema` helper to remove `examples`
values from the merged schema JSON if they are an empty array.
- regenerated `osqeury_fleet_schema.json`
Changes:
- Added a new attribute to the `User` model: `primaryBuyingSituation`
- Updated `signup.js` to set this value on new User accounts
Before this PR can be merged, we will need to:
- [ ] Add the new column to the User table in the website's database
- [ ] Set a default value for existing User records.
---------
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
Closes: #16697
Changes:
- Updated the managed cloud feature in `pricing-features-table.yml` to
note that is only available for >700 hosts
- Updated `signup.js` to accept one new input `primaryBuyingSituation`
and to throw an error if someone signs up with a personal email address.
- Updated the /customers/register page to ask users signing up what they
will be using Fleet for, and to display an error if a user signs up with
a personal email address.
- Updated the /try-fleet/register page to show an error if a user signs
up with a personal email address
- Updated the /customers/new-license page to:
- only show the quoted price for users creating a quote for >700 hosts
- Add a checkbox to the billing form for users to confirm that they
understand they are buying a license for self-hosted Fleet Premium
Changes:
- Added `/start`, a page where users can choose whether to run a local
demo of Fleet, or purchase a Fleet Premium license
- Updated all "Try it now" links to go to the `/register` page.
- Updated the URL and added redirects:
- `/customers/new-license` » `/new-license`
- `/try-fleet/fleetctl-preview` » `/try-fleet`
- `/customers/register` » `/register`
- `/customers/login` » `/login`
- Removed the `/try-fleet/login` and `/try-fleet/register` pages
- Updated the /try-fleet/explore-data pages to redirect logged-out-users
to the /register page
- Updated policies, routes, and importer.less
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Changes:
- Updated the contact page to have a second form that users can fill out
to schedule a Calendly meeting with Fleet.
- Updated CTAs on all landing pages, product category pages, article
pages, pricing page, and license dispenser.
- Updated the CTAs on the landing page generator template
- Removed the function that opens the hubspot chat widget from page
scripts.
- Updated `deliver-contact-form-message` to send a request to a Zapier
webhook
- Created a new action: `deliver-talk-to-us-form-submission` that sends
form submissions to a Zapier webhook.
> Related issue: https://github.com/fleetdm/confidential/issues/5138
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
<!-- Note that API documentation changes are now addressed by the
product design team. -->
- [x] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
Changes:
- Updated the custom hook to set `res.locals.primaryBuyingSituation` for
HEAD requests to prevent 500 errors when `primaryBuyingSituation` is not
set to `undefined`.
Changes:
- Updated the custom hook to not set
`req.session.primaryBuyingSituation` as undefined if a user does not
have a `utm_content` query parameter.
Closes: https://github.com/fleetdm/fleet/issues/17188
Changes:
- Updated `get-extended-osquery-schema.js` to only include the last
example from the osquery schema if a table has an override file that
does not contain an `examples` value.
- Regenerated osquery_fleet_schema.json with the correct `examples`
values
Closes: #16945
Changes:
- Updated the receive-from-stripe` webhook to update the database
records of subscriptions that have been changed in the Stripe UI.
Closes: https://github.com/fleetdm/confidential/issues/5182
Changes:
- Added a quote from Chandra Majumdar to testimonials.yml
- Updated the testimonial sorting in the view actions for the product
category landing pages to sort quotes by the authors full name.
---------
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Related to: #16458
Changes:
- Updated the receive-usage-analytics webhook not to send metrics to
Datadog.
- Updated the send-aggregated-metrics-to-datadog script to build
aggregated metrics from the JSON values reported by Fleet instances
(stored errors, host count by orbit version, host count by osquery
version, host count by operating system), and updated the script to not
report metrics from Fleet instances using the development premium
license key.
Closes: #16246
Closes: https://github.com/fleetdm/fleet/issues/16245
Changes:
- Added a logo for the quote from Harrison Ravazzolo
- Changed the `productCategories` value for the quotes from Nick Fohs
and Erik Gomez
- Updated the order of testimonials on the /endpoint-ops and
/vulnerability-management pages
Closes: #16135
Changes:
- Updated the `receive-from-github` webhook to not send requests to
Zapier when a patch version of Fleet is released.
For context: The request to Zapier triggers an automation that updates
Slack channel topics with information about the latest release of Fleet.
---------
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
Closes https://github.com/fleetdm/confidential/issues/5015
- Updated testimonials.yml to reflect correct quote content and logos
from wireframes
- Updated logos to be a consistent height
- Adjusted logo min and max height css
# Checklist for submitter
- [x] Manual QA for all new/changed functionality
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: #16018
Changes:
- Updated the testimonial configuration in testimonial.yml to add two
new required values:
- `quoteAuthorProfileImageFilename` - The filename of the quote author's
LinkedIn profile picture in the website's `assets/images/` folder
- `productCategories`: An array of product categories that this quote is
relevant to
- Added new quotes to testimonials.yml
- Updated the testimonial validation in build-static-content to throw an
error if a testimonial is missing one of the new required values
- Updated the `<scrollable-tweets> component to match the latest
wireframes
- Updated the controllers for the product category landing pages to
filter testimonials by product category and sort them by the order
specified in [the
wireframes](https://www.figma.com/file/3he8e72251IEnF6dBafKq1/%F0%9F%9A%A7-fleetdm.com-(scratchpad)?type=design&node-id=9369-4714&mode=dev)
Changes:
- Added a new (required) key to pricing-features-table.yml:
`pricingTableCategories` - an array of categories that will be used to
categorize the feature on the pricing page.
- Updated build-static-content to validate pricingTableCategories values
- Updated the pricing page features table to be categorized by the
pricingTableCategories value of features.
- Updated the names of tiers on the pricing features table to match the
cards above the table ("Free" » "Community")
Closes: #15728
Changes:
- Updated `view-query-report.js` to redirect non-logged in users who
visit `/try-fleet/explore-data/*` to `/try-fleet/register`
https://github.com/fleetdm/confidential/issues/4533
Changes:
- Added `/handbook/company/testimonials.yml`.
- Updated `build-static-content` to validate each item in
`testimonials.yml` and to add each item to
`sails.config.builtStaticContent.testimonials`
- Updated the scrollable tweets component to build cards of quotes from
`sails.config.builtStaticContent.testimonials`.
- Updated view-actions for pages where the `<scrollable-tweets>`
component is being used to throw an error if the testimonials
configuration is missing and to send the testimonials config to the
page.
- Updated pages where `<scrollable-tweets>` was being used.
- Updated the landing page generator to create new view-actions that
send the testimonials configuration to generated pages and updated the
template .ejs file.
Closes: #14900Closes: #15666
Changes:
- Updated the receive-from-github webhook to:
- Log a warning if a label cannot be deleted from a pull request.
- Reset the array of unfrozen PR numbers when the main branch of
fleetdm/fleet is unfrozen
---------
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Closes https://github.com/fleetdm/fleet/issues/15615
_I'm sorry, I should have split this into separate PRs. I was trying to
move fast, but I didn't consider how awkward to review this PR would
become._
- Updated page titles and descriptions for:
- Homepage (no change to description. Currently set to the default blurb
from "Why Fleet doc."
- `/pricing`
- `/integrations`
- `/vulnerability-management`
- `/endpoint-ops`
- `/device-management` (I'm not super happy with this one. I tried to
summarize everything, but I think it's too long. I probably need to
rewrite it in a fast follow PR)
- Renamed `/osquery-management` to `/endpoint-ops` and set up redirect
- Removed `/compliance` (Note: I did not remove the compliance feature
images as they are referenced in various /imagine land pages. I need to
confirm whether those imagine pages are used in active ads?)
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: #14847
Changes:
- Added two new pages:
- `/try-fleet/explore-data`: A page where users can select a host, and
be taken to a page where they can see query results for that host.
- `try-fleet/explore-data/:platformName/:tableName`: A page where users
can see the contents of osquery tables on hosts.
- The view-action for this page will:
- Redirect unauthenticated users to the /try-fleet/login page. (With a
query parameter that will tell the login/register pages to redirect
users back to this page)
- Get information for hosts on a specified team.
- Build a filtered list of osquery tables that are compatible with the
host and have queries that will run on a specified host.
- Get the latest query results for a specified query/osquery table for
the specified host, and reorder the results to match the order of the
columns in the osquery schema.
- Updated build-static-content to add information about osquery tables
for the /explore-data pages to
`sails.config.builtStaticContent.osqueryTables`.
- Added 5 new config variables:
- `sails.config.custom.fleetBaseUrlForQueryReports`: The URL of the
Fleet instance used for the /explore-data pages
- `sails.config.custom.fleetTokenForQueryReports`: An API token for the
Fleet instance used for the /explore-data pages
- `sails.config.custom.teamApidForQueryReports`: the API ID of the team
that the hosts listed on the explore-data page are in.
- `sails.config.custom.queryIdsByTableName`: A dictionary containing
key:value pairs where each key is the name of an osquery table, and the
value is the API ID of the query that gets results for this table in a
Fleet instance. This is stored in the custom configuration to make it
easily editable (If we ever need to add or remove queries
- `sails.config.custom.hostIdsByHostPlatform`: A dictionary containing
key:value pairs where each key is a type of operating system, and the
value is the API ID of a Host.
- Updated the `/try-fleet` redirect to go to `/try-fleet/explore-data`
- Updated the "try it out" button links to go to `/try-fleet`
- Updated /try-fleet/login and /try-fleet/register to send users who are
redirected to the page via the /explore-data page to the page they had
tried to navigate to when they log in/create an account.
I'm creating this as a PR as a draft. It will be ready to merge when we:
- [x] Add hosts to the "Explore data (fleetdm.com) [DO NOT DELETE]" team
- [x] Create queries for every compatible osquery table for the "Explore
data (fleetdm.com) [DO NOT DELETE]" team.
- [ ] Add a `sails.config.custom.queryIdsByTableName` config variable
with the query IDs for the queries created in the previous step
- [ ] Add `sails.config.custom.hostIdsByHostPlatform` config variable
with the real host IDs/platforms
Closes: #15255
Changes:
- Added the usage statistics added in
https://github.com/fleetdm/fleet/pull/14216 to the inputs of the
`receive-usage-analytics` webhook.
- Updated the `receive-usage-analytics` webhook to send the new usage
statistics to Datadog.
- Added attributes for the new usage statistics to the
`HistoricalUsageSnapshot` model.
- Removed the `columnName` from the `hostsStatusWebHookEnabled`
attribute of the `HistoricalUsageSnapshot` model, the name of this
column will be changed in the database when the new columns are added to
the databse table.
- Updated the usage statistics documentation to have the new statistics.
This PR requires database migrations. When this is approved and ready to
merge, we will need to:
- [ ] Merge this PR
- [ ] Put fleetdm.com into maintenance mode while the "Deploy Fleet
website" GH action runs.
- [ ] Add the new columns to the database table
- [ ] Change the name of the `hostStatusWebhookEnabled` column to
`hostsStatusWebHookEnabled`
- [ ] Set the default values for the new columns on the existing
records.
- [ ] When the website has finished redeploying, take it out of
maintenance mode.
Closes: #15265
Changes:
- Updated `pricing-features-table.yml`:
- Changed the structure of the file so it is a flat array of features
(previously, features were nested under a category)
- Added `productCategories` arrays to features that did not have them
- Added `usualDepartment` values to features.
- Updated the pricing features validation in `build-static-content` to
work with the new file structure and made `productCategories` a required
value for features.
- Updated `view-pricing.js` to:
- categorize features based on the values of the `productCategories`
array
- build a single array of features (previously, it would also build an
array of features for security-focused buyers).
- sort premium features to the bottom of the pricing table.
- Updated the `pricing.ejs` to:
- render only the list of all features server-side
- conditionally show features in the pricing table, depending on the
selected pricing mode
Closes: https://github.com/fleetdm/fleet/issues/15243
Changes:
- Updated the `receive-usage analytics` webhook to send multiple
requests to Datadog, depending on the number of metrics built from
reported usage statistics. (Datadog has a request body limit of 512kb)
Closes: #11812
Changes:
- Renamed the `hostStatusWebhookEnabled` attribute of the
`HistoricalUsageSnapshot` model to `hostsStatusWebHookEnabled` and
updated the definition to use the existing database column name.
- Updated the inputs of the `receive-usage-analytics` webhook to accept
a `hostsStatusWebHookEnabled` input.
- Updated the usage statistics documentation to have the [correct
variable
name](36e12d02e3/server/fleet/statistics.go (L21)).
Closes: #15182
Changes:
- Updated the receive-usage-analytics webhook to create new database
records with a cloned `inputs` object. This prevents the JSON attributes
from being mutated into strings.