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)
Closes: #24231
Changes:
- Updated build-static-content to ingest the uninstall scripts from the
`/server/mdm/maintainedapps/testdata/scripts` and condense them into a
single line command that can be pasted into a terminal.
- uncommented the uninstall section of the app-details page
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
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.
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 <[email protected]>
Changes:
- updated build-static-content to allow auto-issue rituals with a
`annually` frequency
- Updated the create-issues-for-todays-rituals script to create GH
issues for annually occurring rituals
- Added an annual ritual for checking GitHub's terms
- Added a responsibility to the Digital experience handbook page about
the ritual.
---------
Co-authored-by: Sam Pfluger <[email protected]>
Changes:
- Updated the build-static-content script to only get lastModifiedAt
timestamps when the script is run on the `main` branch fo the Fleet repo
and updated variable names.
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)
Closes: #20776
Changes:
- updated the build-static-content script to throw an error if a feature
in the pricing-features-table.yml contains an unrecognized key.
Note: The "Test Fleet website" GH action will fail until
https://github.com/fleetdm/fleet/pull/20825 is merged and this PR is
updated.
Changes:
- Updated the regex that matches multiline HTML comments directly after
list items in Markdown content to prevent it from incorrectly matching
two multiline comments with no newlines in between them.
Closes: https://github.com/fleetdm/confidential/issues/7260
Changes:
- Updated `build-static-content` to throw an error if it detects a
multi-line HTML comment that starts on the line after a list to prevent
rendering issues
e.g.,
```
- List item
<!--
- Commented-out list item
-->
```
Changes:
- Updated the build-static-content script to use clearer variable names
and to replace spaces in folders when modifying relative links to
documentation pages.
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.
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: #18787
Changes:
- Updated the `build-static-content` script to only send requests to
GitHub if a GitHub token was provided via the `--GithubAccessToken`
flag, and removed the skipGithubRequests input.
- Added a command to website/package.json to run the build static
content script and start the website server (`npm run start-website`)
- Updated the "Test fleetdm.com locally" section of the Digital
Experience handbook page.
- Updated the "Testing locally" section of the website's readme
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`
Related to: #17787
Changes:
- Updated build-static-content not to hide columns of tables with
`hidden: true`, and instead add a note about the column not being
returned in results from a `SELECT * FROM [table]` query.
Note: These columns will still be hidden in the Fleet UI. This PR only
changes the table documentation on fleetdm.com/tables
Related to: #17727
Changes:
- Updated the `build-static-content` script to sort the columns of
tables alphabetically by the name of the column when the pages for
fleetdm.com/tables are generated.
Closes: #17582
Changes:
- Updated the `build-static-content` script to not generate HTML pages
for files in subfolders that are prefixed with an underscore
- Renamed the `docs/Deploy/kubernetes` folder »
`docs/Deploy/_kubernetes`
- Documented this new behavior on the communications page of the
handbook.
- Updated commands on the Deploy Fleet on Kubernetes page.
---------
Co-authored-by: Mike McNeil <[email protected]>
Closes: #17667
Changes:
- Updated `build-static-content` to skip pages in the docs/contributing
folder when Markdown pages are converted to HTML partials.
Closes: #16797
Changes:
- Updated `build-static-content` to throw an error if an extensionless
Markdown link containing a hash link is found.
- Fixed two broken relative links in the contributing documentation
Changes:
- Updated the website's build script to not validate
`/handbook./company/open-positions.yml` if it is empty
- Updated the open-positions component to have an empty state
- commented out the open position in open-postions.yml
Closes: #14246
Changes:
- Added a new key to the rituals YAML configuration: `autoIssue.repo`.
This value should be a string that is the name of the GH repo that
issues for the ritual should be created in.
- Updated ritual validation in `build-static-content`.
- Added support for the "monthly" ritual frequency for rituals with an
`autoIssue` value.
- Updated the `create-issues-for-todays-rituals` script to create GitHub
issues for rituals.
---------
Co-authored-by: Mike McNeil <[email protected]>
Co-authored-by: Sam Pfluger <[email protected]>
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")
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: #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
Changes:
- Updated `build-static-content` to parse `<meta>` tags from HTML
generated from a Markdown file, instead of the Markdown file. Parsing
them after the Markdown is converted to HTML will prevent any `<meta>`
tags inside code blocks from being seen as a `<meta>` tag containing
information about the page because angle brackets inside code blocks are
changed into HTML entities (`<` & `>`) when the Markdown is
converted to HTML.
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: #14812
Changes:
- Added a "critical" tag to critical policies in the standard query
library.
- Updated the macOS version used in the "Operating system up to date
(macOS)" policy.
- Updated the name of a policy to be in sentence case ("MDM Enrolled
(macOS)" » "MDM enrolled (macOS)")
- Updated the build-static-content script to add a `critical` attribute
to queries that have the "critical" tag.
- Updated the /queries page to add a "critical" badge to queries that
have the critical attribute.