fleet/website/api/controllers/view-query-detail.js

92 lines
4.3 KiB
JavaScript
Raw Normal View History

Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
module.exports = {
friendlyName: 'View query detail',
description: 'Display "Query detail" page.',
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
inputs: {
slug: { type: 'string', required: true, description: 'A slug uniquely identifying this query in the library.', example: 'get-macos-disk-free-space-percentage' },
},
Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
exits: {
success: { viewTemplatePath: 'pages/query-detail' },
notFound: { responseType: 'notFound' },
badConfig: { responseType: 'badConfig' },
redirectToPolicy: {
description: 'The requesting user has been redirected to a policy page.',
responseType: 'redirect'
},
Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
},
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
fn: async function ({ slug }) {
Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.queries)) {
throw {badConfig: 'builtStaticContent.queries'};
} else if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.policies)) {
throw {badConfig: 'builtStaticContent.policies'};
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
} else if (!_.isString(sails.config.builtStaticContent.queryLibraryYmlRepoPath)) {
throw {badConfig: 'builtStaticContent.queryLibraryYmlRepoPath'};
}
// Serve appropriate content for query.
// > Inspired by https://github.com/sailshq/sailsjs.com/blob/b53c6e6a90c9afdf89e5cae00b9c9dd3f391b0e7/api/controllers/documentation/view-documentation.js
let query = _.find(sails.config.builtStaticContent.queries, {kind: 'query', slug: slug });
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
if (!query) {
// If we didn't find a query matching this slug, check to see if there is a policy with a matching slug.
// Note: We do this because policies used to be on /queries/* pages. This way, all old URLs that policies used to live at will still bring users to the correct page.
let policyWithThisSlug = _.find(sails.config.builtStaticContent.policies, {kind: 'policy', slug: slug});
if(policyWithThisSlug){
// If we foudn a matchign policy, redirect the user.
throw {redirectToPolicy: `/policies/${policyWithThisSlug.slug}`};
} else {
throw 'notFound';
}
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
}
// Find the related osquery table documentation for tables used in this query, and grab the keywordsForSyntaxHighlighting from each table used.
let allTablesInformation = _.filter(sails.config.builtStaticContent.markdownPages, (pageInfo)=>{
return _.startsWith(pageInfo.url, '/tables/');
});
// Get all the osquery table names, we'll use this list to determine which tables are used.
let allTableNames = _.pluck(allTablesInformation, 'title');
// Create an array of words in the query.
let queryWords = _.words(query.query, /[^ \n;]+/g);
let columnNamesForSyntaxHighlighting = [];
let tableNamesForSyntaxHighlighting = [];
// Get all of the words that appear in both arrays
let intersectionBetweenQueryWordsAndTableNames = _.intersection(queryWords, allTableNames);
// For each matched osquery table, add the keywordsForSyntaxHighlighting and the names of the tables used into two arrays.
for(let tableName of intersectionBetweenQueryWordsAndTableNames) {
let tableMentionedInThisQuery = _.find(sails.config.builtStaticContent.markdownPages, {title: tableName});
tableNamesForSyntaxHighlighting.push(tableMentionedInThisQuery.title);
let keyWordsForThisTable = tableMentionedInThisQuery.keywordsForSyntaxHighlighting;
columnNamesForSyntaxHighlighting = columnNamesForSyntaxHighlighting.concat(keyWordsForThisTable);
}
// Remove the table names from the array of column names to highlight.
columnNamesForSyntaxHighlighting = _.difference(columnNamesForSyntaxHighlighting, tableNamesForSyntaxHighlighting);
// Setting the meta title and description of this page using the query object, and falling back to a generic title or description if query.name or query.description are missing.
let pageTitleForMeta = query.name ? query.name + ' | Query details' : 'Query details';
let pageDescriptionForMeta = query.description ? query.description : 'View more information about a query in Fleet\'s standard query library';
Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
// Respond with view.
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
return {
query,
queryLibraryYmlRepoPath: sails.config.builtStaticContent.queryLibraryYmlRepoPath,
pageTitleForMeta,
pageDescriptionForMeta,
columnNamesForSyntaxHighlighting,
tableNamesForSyntaxHighlighting,
algoliaPublicKey: sails.config.custom.algoliaPublicKey,
Obviate doc-templater dependency + dynamic sitemap.xml (#827) * trivial * Simplify build-static-content script and rip out the old markdown compilation for query library * improve error msg * trivial * move helper * bring in the skeleton * Compile handbook as well, and bring more stuff inline * instead of generating sitemap.xml file, could just serve it as a route * Serve sitemap.xml on the fly * add failsafe to prevent search engine accidents * add remaining hand-coded pages to sitemap * rearrange routes and get rid of commented-out ones * Update build-static-content.js * stub out the remaining pieces * Add assertion (Which actually helped catch a real duplicate query: get-mac-os-disk-free-space-percentage) * clean out inadvertently committed stuff in sailsrc * route and serve data for correct query by slug + fix error message re duplicate query slugs + added assertion for duplicate doc page slugs * yaml == dev dependency * remove doc-templater dependency, as promised * stub out handbook page * clarify comments & remove unnecessary skipAssets * Update build-static-content.js * res.badConfig() * add missing exit that I left out back in https://github.com/fleetdm/fleet/commit/ec95df6a4b8b0344fcbdb71f892d1185ec094f6e * remove unused file * update comments before commenting out and moving over to basic-documentation.less * move example styling of generated HTML over to docs/handbook * include both links * Fix sitemap.xml URLs in local dev by fixing baseUrl config for local development (since Fleet itself is on 1337). * followup to https://github.com/fleetdm/fleet/commit/d55c777590f4b1dac4b7500cce1bf8f70b652fd9 * Include query pages in sitemap.xml (+make urls generated for docs/handbook in build script slightly more real) -- but also don't serve sitemap * sails.config.builtStaticContent.allPages » sails.config.buildStaticContent.markdownPages (also remove unnecessary trailing slash trimming) * trivial * check config when serving sitemap + smarter error message for contributors * hook up GitHub link to edit the query * remove html ids * Update query-detail.ejs * somre more setup re https://github.com/fleetdm/fleet/issues/368#issuecomment-848566533
2021-05-26 08:24:38 +00:00
};
Compile markdown docs (#714) * Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working * inline beforeConvert and afterConvert, for readability because it's better when you tell a story with the parts of the story in order * trivial (change arg name for clarity) * trivial (apply more up-to-date err callback convention) * modernize some of the bits relying on reassigning arguments * convert the rest of the way to async/await * trivial * just aesthetics * remove reliance on app-level config * mostly i'm doing this to remember how it works * normalize better so this can be more flexible * this makes it work (albeit needs a bit more fluffing) * strip out more sails-specific stuff * clean up menu files between runs, scrape off a bit more technical debt * scrape out some more dead code * use devDependencies for markdown compilation stuff since it won't be compiling at runtime * stub script for compiling markdown content * Fill in implementation of script, rename helper. * add note about the non-markdown file problem * tweak output paths for clarity * Improve generated menu content and set up groundwork for being able to easily access it via config * Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed) * more explicit tmp filename, in case we forget how this works later * fix typo in build script (missing .js extension) * Stub query detail page and a dev route for developing it http://localhost:2024/sandbox/example-query * fix helper friendlyName * Run compilation in series to avoid race condition in doc-templater when cloning from the same repo. Add todos about sitemap and further menu data cleanup. * make sandbox actually useful * Help prevent accidental checking in of compiled HTML files. * rename script and generated folder in partials/ * fix/expand script metadata
2021-05-10 04:48:59 +00:00
}
};