From f10e33d3877eaadd99d345f4499403ec4d74db39 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 20 Jul 2022 23:59:51 -0500 Subject: [PATCH] Website: update article categories (#6679) * add deploy category, change product to guides * update links to deployment guides * Update deploy-fleet-on-hetzner-cloud.md * Update enrolling-a-digital-ocean-droplet-on-a-fleet-instance.md * Update how-to-install-osquery-and-enroll-linux-devices-into-fleet.md * Update delivering-data-to-snowflake-from-fleet-and-osquery.md * Update how-to-install-osquery-and-enroll-windows-devices-into-fleet.md * Update how-to-install-osquery-and-enroll-macos-devices-into-fleet.md * Update deploying-fleet-on-aws-with-terraform.md * Update deploying-fleet-on-render.md * Update how-to-uninstall-osquery.md * Update osquery-a-tool-to-easily-ask-questions-about-operating-systems.md * Update get-and-stay-compliant-across-your-devices-with-fleet.md * Update work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md * Update converting-unix-timestamps-with-osquery.md * Update correlate-network-connections-with-community-id-in-osquery.md * Update using-elasticsearch-and-kibana-to-visualize-osquery-performance.md * Update fleet-quick-tips-querying-procdump-eula-has-been-accepted.md * Update locate-assets-with-osquery.md * Update osquery-consider-joining-against-the-users-table.md * Update import-and-export-queries-and-packs-in-fleet.md * Update ebpf-the-future-of-osquery-on-linux.md * Update generate-process-trees-with-osquery.md * Update get-and-stay-compliant-across-your-devices-with-fleet.md * Update work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md * Update ebpf-the-future-of-osquery-on-linux.md * Change category meta value back to guides Co-authored-by: Desmi-Dizney <99777687+Desmi-Dizney@users.noreply.github.com> * change article category * update latest article category * add redirects for articles not handled by cloudflare rules * Update to main nav I did a little more housekeeping on the main nav for when we do the switch on these categories. - Added link to /deploy under Guides on the Documentation dropdown. - Added link to /guides under Guides on the Documentation dropdown - Removed the now redundant "See all" from under Guides on the Documentation dropdown - Removed the now redundant "See all" from under Articles on the Community dropdown (There's no need to point users to All categories any more, since all the category land are now linked to independently from the main nav. * Update article category name Co-authored-by: Desmi-Dizney <99777687+Desmi-Dizney@users.noreply.github.com> Co-authored-by: Mike Thomas --- .../converting-unix-timestamps-with-osquery.md | 4 ++-- ...ork-connections-with-community-id-in-osquery.md | 4 ++-- articles/deploy-fleet-on-hetzner-cloud.md | 2 +- articles/deploying-fleet-on-aws-with-terraform.md | 4 ++-- articles/deploying-fleet-on-render.md | 4 ++-- articles/ebpf-the-future-of-osquery-on-linux.md | 4 ++-- ...-a-digital-ocean-droplet-on-a-fleet-instance.md | 2 +- ...ips-querying-procdump-eula-has-been-accepted.md | 4 ++-- articles/generate-process-trees-with-osquery.md | 4 ++-- ...tay-compliant-across-your-devices-with-fleet.md | 4 ++-- ...-osquery-and-enroll-linux-devices-into-fleet.md | 2 +- ...-osquery-and-enroll-macos-devices-into-fleet.md | 4 ++-- ...squery-and-enroll-windows-devices-into-fleet.md | 2 +- articles/how-to-uninstall-osquery.md | 2 +- ...import-and-export-queries-and-packs-in-fleet.md | 4 ++-- articles/locate-assets-with-osquery.md | 4 ++-- ...easily-ask-questions-about-operating-systems.md | 4 ++-- ...ery-consider-joining-against-the-users-table.md | 4 ++-- ...n-course-with-your-security-compliance-goals.md | 2 +- ...-and-kibana-to-visualize-osquery-performance.md | 4 ++-- ...hing-but-it-might-not-be-as-bad-as-you-think.md | 4 ++-- website/assets/js/pages/articles/articles.page.js | 8 ++++---- website/config/routes.js | 8 +++++--- website/scripts/build-static-content.js | 4 ++-- website/views/layouts/layout.ejs | 14 ++++---------- website/views/pages/articles/articles.ejs | 2 +- 26 files changed, 52 insertions(+), 56 deletions(-) diff --git a/articles/converting-unix-timestamps-with-osquery.md b/articles/converting-unix-timestamps-with-osquery.md index 40ad1aed98..a7b2f9daa2 100644 --- a/articles/converting-unix-timestamps-with-osquery.md +++ b/articles/converting-unix-timestamps-with-osquery.md @@ -77,9 +77,9 @@ So there we go. Simple, human readable timestamps with osquery. Let us know if you can think of any other example scenarios you’d like us to cover. - + - \ No newline at end of file + diff --git a/articles/correlate-network-connections-with-community-id-in-osquery.md b/articles/correlate-network-connections-with-community-id-in-osquery.md index 989451f8f9..d3871599b2 100644 --- a/articles/correlate-network-connections-with-community-id-in-osquery.md +++ b/articles/correlate-network-connections-with-community-id-in-osquery.md @@ -114,9 +114,9 @@ The `community_id` column can then be used to correlate the events logged by net On Linux, the `socket_events` table may produce additional utility as it captures all socket connections, not only those active at the time of query execution. - + - \ No newline at end of file + diff --git a/articles/deploy-fleet-on-hetzner-cloud.md b/articles/deploy-fleet-on-hetzner-cloud.md index cb54c4122f..9a5d305f91 100644 --- a/articles/deploy-fleet-on-hetzner-cloud.md +++ b/articles/deploy-fleet-on-hetzner-cloud.md @@ -707,7 +707,7 @@ Now that you’re ready to use Fleet and have a host installed. Here's some next - Import Fleet's [standard query library](https://fleetdm.com/docs/using-fleet/standard-query-library) to start asking questions about your hosts. - To run a more secure setup, consider creating a dedicated `fleet` user with Docker's support for user [namespaces](https://docs.docker.com/engine/security/userns-remap/). - + diff --git a/articles/deploying-fleet-on-aws-with-terraform.md b/articles/deploying-fleet-on-aws-with-terraform.md index 12b4a54b90..f9514ee989 100644 --- a/articles/deploying-fleet-on-aws-with-terraform.md +++ b/articles/deploying-fleet-on-aws-with-terraform.md @@ -1,6 +1,6 @@ # Deploying Fleet on AWS with Terraform -There are many ways to deploy Fleet. Last time, we looked at deploying [Fleet on Render](https://fleetdm.com/guides/deploying-fleet-on-render). This time, we’re going to deploy Fleet on AWS with Terraform IaC (infrastructure as code). +There are many ways to deploy Fleet. Last time, we looked at deploying [Fleet on Render](https://fleetdm.com/deploy/deploying-fleet-on-render). This time, we’re going to deploy Fleet on AWS with Terraform IaC (infrastructure as code). Deploying on AWS with Fleet’s reference architecture will get you a fully functional Fleet instance that can scale to your needs @@ -145,7 +145,7 @@ Navigating to `https://fleet.queryops.com` we should be greeted with the Setup p Setting up all the required infrastructure to run a dedicated web service in AWS can be a daunting task. The Fleet team’s goal is to provide a solid base to build from. As most AWS environments have their own specific needs and requirements, this base is intended to be modified and tailored to your specific needs. - + diff --git a/articles/deploying-fleet-on-render.md b/articles/deploying-fleet-on-render.md index d1a1c23718..df83da9099 100644 --- a/articles/deploying-fleet-on-render.md +++ b/articles/deploying-fleet-on-render.md @@ -142,9 +142,9 @@ fleetctl apply -f standard-query-library.yaml That’s it! We have successfully deployed and configured a Fleet instance! Render makes this process super easy, and you can even enable auto-scaling and let the app grow with your needs. - + - \ No newline at end of file + diff --git a/articles/ebpf-the-future-of-osquery-on-linux.md b/articles/ebpf-the-future-of-osquery-on-linux.md index bf46b691b2..765d1687b9 100644 --- a/articles/ebpf-the-future-of-osquery-on-linux.md +++ b/articles/ebpf-the-future-of-osquery-on-linux.md @@ -14,9 +14,9 @@ This talk discusses the Audit approach to Linux events with osquery, including c - + - \ No newline at end of file + diff --git a/articles/enrolling-a-digital-ocean-droplet-on-a-fleet-instance.md b/articles/enrolling-a-digital-ocean-droplet-on-a-fleet-instance.md index 56a90d85fa..e69236f8d9 100644 --- a/articles/enrolling-a-digital-ocean-droplet-on-a-fleet-instance.md +++ b/articles/enrolling-a-digital-ocean-droplet-on-a-fleet-instance.md @@ -123,4 +123,4 @@ Which should return all the commands typed in the shell, and I got an output lik - \ No newline at end of file + diff --git a/articles/fleet-quick-tips-querying-procdump-eula-has-been-accepted.md b/articles/fleet-quick-tips-querying-procdump-eula-has-been-accepted.md index 0fdfabb318..0dd0254380 100644 --- a/articles/fleet-quick-tips-querying-procdump-eula-has-been-accepted.md +++ b/articles/fleet-quick-tips-querying-procdump-eula-has-been-accepted.md @@ -21,9 +21,9 @@ For more information about the recent security breach, take a look at [Microsoft ### Could this post be more helpful? Let us know if you can think of any other example scenarios you’d like us to cover. - + - \ No newline at end of file + diff --git a/articles/generate-process-trees-with-osquery.md b/articles/generate-process-trees-with-osquery.md index c607974864..aa33ab2c8b 100644 --- a/articles/generate-process-trees-with-osquery.md +++ b/articles/generate-process-trees-with-osquery.md @@ -131,9 +131,9 @@ FROM ( With this query as a building block, osquery provides the capability to generate rich process trees. Consider using this with an osquery TLS server such as [Fleet](https://fleetdm.com/) to examine this information on multiple machines at once. - + - \ No newline at end of file + diff --git a/articles/get-and-stay-compliant-across-your-devices-with-fleet.md b/articles/get-and-stay-compliant-across-your-devices-with-fleet.md index 709981574d..d69ea6650b 100644 --- a/articles/get-and-stay-compliant-across-your-devices-with-fleet.md +++ b/articles/get-and-stay-compliant-across-your-devices-with-fleet.md @@ -95,9 +95,9 @@ Thanks to automation and open source tools like osquery and Fleet, compliance is - + - \ No newline at end of file + diff --git a/articles/how-to-install-osquery-and-enroll-linux-devices-into-fleet.md b/articles/how-to-install-osquery-and-enroll-linux-devices-into-fleet.md index 5529295717..b7768646c5 100644 --- a/articles/how-to-install-osquery-and-enroll-linux-devices-into-fleet.md +++ b/articles/how-to-install-osquery-and-enroll-linux-devices-into-fleet.md @@ -88,4 +88,4 @@ If you’re managing an enterprise environment, you will likely have a deploymen - \ No newline at end of file + diff --git a/articles/how-to-install-osquery-and-enroll-macos-devices-into-fleet.md b/articles/how-to-install-osquery-and-enroll-macos-devices-into-fleet.md index 3f9f50b521..89a11c2275 100644 --- a/articles/how-to-install-osquery-and-enroll-macos-devices-into-fleet.md +++ b/articles/how-to-install-osquery-and-enroll-macos-devices-into-fleet.md @@ -6,7 +6,7 @@ Alternatively, you can run a preview environment of Fleet locally (which automat ## Prerequisites -Before installing osquery on macOS and enrolling that macOS device, you will need to have access to a Fleet server (see [Deploying Fleet on Render](https://fleetdm.com/guides/deploying-fleet-on-render) for an example.) +Before installing osquery on macOS and enrolling that macOS device, you will need to have access to a Fleet server (see [Deploying Fleet on Render](https://fleetdm.com/deploy/deploying-fleet-on-render) for an example.) You will also need to install the `fleetctl` CLI tool if you don’t have it already. `fleetctl` can be installed via `npm` by running the command below: @@ -58,4 +58,4 @@ Fleet makes it easy to install osquery and enrol macOS devices with fleetctl. If - \ No newline at end of file + diff --git a/articles/how-to-install-osquery-and-enroll-windows-devices-into-fleet.md b/articles/how-to-install-osquery-and-enroll-windows-devices-into-fleet.md index a6b91ceef8..9f4dc0a8b4 100644 --- a/articles/how-to-install-osquery-and-enroll-windows-devices-into-fleet.md +++ b/articles/how-to-install-osquery-and-enroll-windows-devices-into-fleet.md @@ -6,7 +6,7 @@ Alternatively, you can run a preview environment of Fleet locally (which automat ## Prerequisites -Before installing osquery on Windows and enrolling that Windows device, you will need access to a Fleet server (see [Deploying Fleet on Render](https://fleetdm.com/guides/deploying-fleet-on-render) for an example.) +Before installing osquery on Windows and enrolling that Windows device, you will need access to a Fleet server (see [Deploying Fleet on Render](https://fleetdm.com/deploy/deploying-fleet-on-render) for an example.) If you don’t already have it, you will also need to install the `fleetctl` CLI tool. `fleetctl` can be installed via `npm` by running the following command: diff --git a/articles/how-to-uninstall-osquery.md b/articles/how-to-uninstall-osquery.md index edd423da4b..3f8a95fbcf 100644 --- a/articles/how-to-uninstall-osquery.md +++ b/articles/how-to-uninstall-osquery.md @@ -57,4 +57,4 @@ Are you running into trouble uninstalling osquery on macOS, Windows, or Linux? G - \ No newline at end of file + diff --git a/articles/import-and-export-queries-and-packs-in-fleet.md b/articles/import-and-export-queries-and-packs-in-fleet.md index 8b8474afa0..5ed748ac0f 100644 --- a/articles/import-and-export-queries-and-packs-in-fleet.md +++ b/articles/import-and-export-queries-and-packs-in-fleet.md @@ -37,9 +37,9 @@ Here’s how you can do this in 2 quick fleetctl commands. Let us know if you can think of any other example scenarios you’d like us to cover. - + - \ No newline at end of file + diff --git a/articles/locate-assets-with-osquery.md b/articles/locate-assets-with-osquery.md index 1dbc169bd4..65070068dc 100644 --- a/articles/locate-assets-with-osquery.md +++ b/articles/locate-assets-with-osquery.md @@ -32,9 +32,9 @@ WHERE url = 'http://ipapi.co/json'; Other techniques A common technique for geolocation of macOS devices with osquery is to use the `wifi_survey` table in combination with the [Google Geolocation API](https://developers.google.com/maps/documentation/geolocation/intro#wifi_access_point_object). This strategy has become more difficult to use due to security controls introduced in macOS 10.15, and poses privacy concerns due to the precision of the location data returned by the API. - + - \ No newline at end of file + diff --git a/articles/osquery-a-tool-to-easily-ask-questions-about-operating-systems.md b/articles/osquery-a-tool-to-easily-ask-questions-about-operating-systems.md index 9bba87125b..5467dab241 100644 --- a/articles/osquery-a-tool-to-easily-ask-questions-about-operating-systems.md +++ b/articles/osquery-a-tool-to-easily-ask-questions-about-operating-systems.md @@ -59,9 +59,9 @@ To deploy osquery at scale across your organization’s devices, an osquery mana Ready to give Fleet a try? Head over to our [get started page](https://fleetdm.com/get-started), and you can be up and running with a sandbox environment in less than 5 minutes. Alternatively, check out the [docs](https://fleetdm.com/docs) to learn how to deploy Fleet across your organization. - + - \ No newline at end of file + diff --git a/articles/osquery-consider-joining-against-the-users-table.md b/articles/osquery-consider-joining-against-the-users-table.md index 976c549cba..3382188dc9 100644 --- a/articles/osquery-consider-joining-against-the-users-table.md +++ b/articles/osquery-consider-joining-against-the-users-table.md @@ -60,9 +60,9 @@ Writing the query with this `JOIN` ensures that osquery first generates the list Note: It is important to use `CROSS JOIN` as this tells the query optimizer not to reorder the evaluation of the tables. If we use a regular `JOIN` it is possible that reordering could result in the original error being encountered (because the `chrome_extensions` table generates with no `uid` in its context). - + - \ No newline at end of file + diff --git a/articles/stay-on-course-with-your-security-compliance-goals.md b/articles/stay-on-course-with-your-security-compliance-goals.md index 9d7b27d592..c4adec932f 100644 --- a/articles/stay-on-course-with-your-security-compliance-goals.md +++ b/articles/stay-on-course-with-your-security-compliance-goals.md @@ -57,7 +57,7 @@ Fleet also lets you [assign users different levels of access](https://fleetdm.co Fleet policies, teams, and permissions empower employees at every level of your organization to share the responsibility of measuring compliance. With more hands on deck, going after your goals will be a breeze. - + diff --git a/articles/using-elasticsearch-and-kibana-to-visualize-osquery-performance.md b/articles/using-elasticsearch-and-kibana-to-visualize-osquery-performance.md index aca02b821b..c34dbed491 100644 --- a/articles/using-elasticsearch-and-kibana-to-visualize-osquery-performance.md +++ b/articles/using-elasticsearch-and-kibana-to-visualize-osquery-performance.md @@ -124,9 +124,9 @@ This will import the Index Pattern that allows Kibana to read the osquery data, The dashboard created in this tutorial serves as a great starting point for monitoring the performance of osquery in your organization. Take the time to determine what your priorities are, and modify the dashboard to suit your needs. - + - \ No newline at end of file + diff --git a/articles/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md b/articles/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md index 4e151fbb47..53db57ef93 100644 --- a/articles/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md +++ b/articles/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think.md @@ -45,9 +45,9 @@ A VPN (virtual private network) helps to protect your company’s data when acce While it is common for companies to collect activity data, it’s rarely looked at manually, and even less so is it collected nefariously. So it’s probably OK to check your social media likes from time to time; your employer is not out to get you. Just remember to use proper judgment, be professional, and avoid sharing your personal information on your work computer. - + - \ No newline at end of file + diff --git a/website/assets/js/pages/articles/articles.page.js b/website/assets/js/pages/articles/articles.page.js index b71fb7d836..9b16f23741 100644 --- a/website/assets/js/pages/articles/articles.page.js +++ b/website/assets/js/pages/articles/articles.page.js @@ -41,15 +41,15 @@ parasails.registerPage('articles', { break; case 'guides': this.articleCategory = 'Guides'; - this.categoryDescription = 'Learn more about how to deploy and use Fleet.'; + this.categoryDescription = 'Learn more about how to use Fleet to accomplish your goals.'; break; case 'announcements': this.articleCategory = 'Announcements'; this.categoryDescription = 'The latest news from Fleet.'; break; - case 'use-cases': - this.articleCategory = 'Product'; - this.categoryDescription = 'Learn how you can use Fleet to accomplish your goals.'; + case 'deploy': + this.articleCategory = 'Deployment guides'; + this.categoryDescription = 'Learn more about how to deploy Fleet.'; break; case 'podcasts': this.articleCategory = 'Podcasts'; diff --git a/website/config/routes.js b/website/config/routes.js index fab270f8f4..2c312d7f9b 100644 --- a/website/config/routes.js +++ b/website/config/routes.js @@ -68,15 +68,15 @@ module.exports.routes = { } }, - 'r|/((device-management|securing|releases|engineering|guides|announcements|use-cases|podcasts|report)/(.+))$|': { + 'r|/((device-management|securing|releases|engineering|guides|announcements|podcasts|report|deploy)/(.+))$|': { skipAssets: false, action: 'articles/view-basic-article', locals: { currentPage: 'articles', } - },// handles /device-management/foo, /securing/foo, /releases/foo, /engineering/foo, /guides/foo, /announcements/foo, /use-cases/foo, /podcasts/foo, /report/foo + },// Handles /device-management/foo, /securing/foo, /releases/foo, /engineering/foo, /guides/foo, /announcements/foo, /deploy/foo, /podcasts/foo, /report/foo - 'r|^/((device-management|securing|releases|engineering|guides|announcements|use-cases|articles|podcasts|report))/*$|category': { + 'r|^/((device-management|securing|releases|engineering|guides|announcements|articles|podcasts|report|deploy))/*$|category': { skipAssets: false, action: 'articles/view-articles', locals: { @@ -203,6 +203,8 @@ module.exports.routes = { 'GET /try-fleet': '/get-started', 'GET /docs/deploying/fleet-public-load-testing': '/docs/deploying/load-testing', 'GET /handbook/customer-experience': '/handbook/customers', + 'GET /guides/deploy-fleet-on-hetzner-cloud': '/deploy/deploy-fleet-on-hetzner-cloud', + 'GET /use-cases/stay-on-course-with-your-security-compliance-goals': '/guides/stay-on-course-with-your-security-compliance-goals', diff --git a/website/scripts/build-static-content.js b/website/scripts/build-static-content.js index 417ae5bf1a..cbb37c4317 100644 --- a/website/scripts/build-static-content.js +++ b/website/scripts/build-static-content.js @@ -407,7 +407,7 @@ module.exports = { if(embeddedMetadata.category) { // Throwing an error if the article has an invalid category. embeddedMetadata.category = embeddedMetadata.category.toLowerCase(); - let validArticleCategories = ['product', 'security', 'engineering', 'success stories', 'announcements', 'guides', 'releases', 'podcasts', 'report' ]; + let validArticleCategories = ['deploy', 'security', 'engineering', 'success stories', 'announcements', 'guides', 'releases', 'podcasts', 'report' ]; if(!validArticleCategories.includes(embeddedMetadata.category)) { throw new Error(`Failed compiling markdown content: An article page has an invalid category meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the meta tag to a valid category, one of: ${validArticleCategories}`); } @@ -442,7 +442,7 @@ module.exports = { // If the article is categorized as 'product' we'll replace the category with 'use-cases', or if it is categorized as 'success story' we'll replace it with 'device-management' rootRelativeUrlPath = ( '/' + - (embeddedMetadata.category === 'product' ? 'use-cases' : embeddedMetadata.category === 'success stories' ? 'device-management' : embeddedMetadata.category === 'security' ? 'securing' : embeddedMetadata.category) + '/' + + (embeddedMetadata.category === 'success stories' ? 'device-management' : embeddedMetadata.category === 'security' ? 'securing' : embeddedMetadata.category) + '/' + (pageUnextensionedLowercasedRelPath.split(/\//).map((fileOrFolderName) => encodeURIComponent(fileOrFolderName.replace(/^[0-9]+[\-]+/,''))).join('/')) ); } diff --git a/website/views/layouts/layout.ejs b/website/views/layouts/layout.ejs index b752e3d52d..4d8b870403 100644 --- a/website/views/layouts/layout.ejs +++ b/website/views/layouts/layout.ejs @@ -168,10 +168,8 @@ Releases Query library GUIDES - Deploy on AWS with Terraform - Deploy on Render - Deploy on Hetzner Cloud with Cloud-init & Docker - See more + Deployment guides + How-to guides
@@ -185,7 +183,6 @@ Security Engineering Announcements - See more RESOURCES Handbook Logos & artwork @@ -217,10 +214,8 @@ Query library GUIDES - Deploy on AWS with Terraform - Deploy on Render - Deploy on Hetzner Cloud with Cloud-init & Docker - See more + Deployment guides + How-to guides
@@ -234,7 +229,6 @@ Security Engineering Announcements - See more RESOURCES Handbook diff --git a/website/views/pages/articles/articles.ejs b/website/views/pages/articles/articles.ejs index 7323ea4670..925dadf668 100644 --- a/website/views/pages/articles/articles.ejs +++ b/website/views/pages/articles/articles.ejs @@ -4,7 +4,7 @@
All
-
Product
+
Deploy
Engineering
Security
Announcements