mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
* 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 <mthomas@fleetdm.com>
544 lines
48 KiB
Text
Vendored
544 lines
48 KiB
Text
Vendored
<%
|
|
// In case we're displaying the 404 or 500 page and relevant code in the "custom" hook was not able to run,
|
|
// we make sure certain view locals exist that are commonly used in this layout.ejs file. This ensures we
|
|
// don't have to do `typeof` checks below.
|
|
var me;
|
|
var isHomepage;
|
|
var headerCTAHidden;
|
|
%><!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title><%= typeof pageTitleForMeta !== 'undefined' ? pageTitleForMeta : 'Fleet for osquery | Open source device management' %></title>
|
|
<meta name="description" content="<%= typeof pageDescriptionForMeta !== 'undefined' ? pageDescriptionForMeta : 'Open source software, built on osquery. With Fleet you can ask important questions about your devices. Whatever operating system, wherever they live.' %>" />
|
|
|
|
<% /* Viewport tag for sensible mobile support */ %>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<meta name="twitter:card" content="summary" />
|
|
<meta name="twitter:site" content="https://fleetdm.com" />
|
|
<meta name="twitter:title" content="<%= typeof pageTitleForMeta !== 'undefined' ? pageTitleForMeta : 'Fleet for osquery | Open source device management' %>" />
|
|
<meta name="twitter:description" content="<%= typeof pageDescriptionForMeta !== 'undefined' ? pageDescriptionForMeta : 'Open source software, built on osquery. With Fleet you can ask important questions about your devices. Whatever operating system, wherever they live.' %>" />
|
|
<meta name="twitter:image" content="<%= typeof pageImageForMeta !== 'undefined' ? 'https://fleetdm.com' + pageImageForMeta : 'https://fleetdm.com/images/fleet-logo-square@2x.png' %>" />
|
|
<% /* Script tags should normally be included further down the page- but any
|
|
scripts that load fonts (e.g. Fontawesome ≥v5) are special exceptions to the
|
|
rule. (Include them up here along with any hard-coded «link» tags for Typekit,
|
|
Google Fonts, etc. - above the «body» to prevent the page flickering when fonts
|
|
load.) */ %>
|
|
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,900&display=swap" rel="stylesheet">
|
|
<% /* Certain scripts, normally analytics tools like Google Tag Manager and
|
|
Google Analytics, should only be included in production: */
|
|
if (sails.config.environment === 'production') { %>
|
|
<% /* Rollbar */%>
|
|
<script>
|
|
var _rollbarConfig = {
|
|
accessToken: "20a8dbf5d8884b5480e58d99748ec127",
|
|
captureUncaught: true,
|
|
captureUnhandledRejections: true,
|
|
payload: {
|
|
environment: "production"
|
|
}
|
|
};
|
|
// Rollbar Snippet
|
|
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(5);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.22.0/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,e,o){"use strict";var n=o(2),t=o(3);function a(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}var l=0;function i(r,e){this.options=r,this._rollbarOldOnError=null;var o=l++;this.shimId=function(){return o},"undefined"!=typeof window&&window._rollbarShims&&(window._rollbarShims[o]={handler:e,messages:[]})}var s=o(4),d=function(r,e){return new i(r,e)},c=function(r){return new s(d,r)};function u(r){return a((function(){var e=this,o=Array.prototype.slice.call(arguments,0),n={shim:e,method:r,args:o,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)}))}i.prototype.loadFull=function(r,e,o,n,t){var l=!1,i=e.createElement("script"),s=e.getElementsByTagName("script")[0],d=s.parentNode;i.crossOrigin="",i.src=n.rollbarJsUrl,o||(i.async=!0),i.onload=i.onreadystatechange=a((function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){i.onload=i.onreadystatechange=null;try{d.removeChild(i)}catch(r){}l=!0,function(){var e;if(void 0===r._rollbarDidLoad){e=new Error("rollbar.js did not load");for(var o,n,a,l,i=0;o=r._rollbarShims[i++];)for(o=o.messages||[];n=o.shift();)for(a=n.args||[],i=0;i<a.length;++i)if("function"==typeof(l=a[i])){l(e);break}}"function"==typeof t&&t(e)}()}})),d.insertBefore(i,s)},i.prototype.wrap=function(r,e,o){try{var n;if(n="function"==typeof e?e:function(){return e||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){o&&"function"==typeof o&&o.apply(this,arguments);try{return r.apply(this,arguments)}catch(o){var e=o;throw e&&("string"==typeof e&&(e=new String(e)),e._rollbarContext=n()||{},e._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=e),e}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(e){return r}};for(var p="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),f=0;f<p.length;++f)i.prototype[p[f]]=u(p[f]);r.exports={setupShim:function(r,e){if(r){var o=e.globalAlias||"Rollbar";if("object"==typeof r[o])return r[o];r._rollbarShims={},r._rollbarWrappedError=null;var l=new c(e);return a((function(){e.captureUncaught&&(l._rollbarOldOnError=r.onerror,n.captureUncaughtExceptions(r,l,!0),e.wrapGlobalEventHandlers&&t(r,l,!0)),e.captureUnhandledRejections&&n.captureUnhandledRejections(r,l,!0);var a=e.autoInstrument;return!1!==e.enabled&&(void 0===a||!0===a||"object"==typeof a&&a.network)&&r.addEventListener&&(r.addEventListener("load",l.captureLoad.bind(l)),r.addEventListener("DOMContentLoaded",l.captureDomContentLoaded.bind(l))),r[o]=l,l}))()}},Rollbar:c}},function(r,e,o){"use strict";function n(r,e,o,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null);var t=e.handleUncaughtException.apply(e,n);o&&o.apply(r,n),"anonymous"===t&&(e.anonymousErrorsPending+=1)}r.exports={captureUncaughtExceptions:function(r,e,o){if(r){var t;if("function"==typeof e._rollbarOldOnError)t=e._rollbarOldOnError;else if(r.onerror){for(t=r.onerror;t._rollbarOldOnError;)t=t._rollbarOldOnError;e._rollbarOldOnError=t}e.handleAnonymousErrors();var a=function(){var o=Array.prototype.slice.call(arguments,0);n(r,e,t,o)};o&&(a._rollbarOldOnError=t),r.onerror=a}},captureUnhandledRejections:function(r,e,o){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var o,n,t;try{o=r.reason}catch(r){o=void 0}try{n=r.promise}catch(r){n="[unhandledrejection] error getting `promise` from event"}try{t=r.detail,!o&&t&&(o=t.reason,n=t.promise)}catch(r){}o||(o="[unhandledrejection] error getting `reason` from event"),e&&e.handleUnhandledRejection&&e.handleUnhandledRejection(o,n)};n.belongsToShim=o,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}}}},function(r,e,o){"use strict";function n(r,e,o){if(e.hasOwnProperty&&e.hasOwnProperty("addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(e,o,t){n.call(this,e,r.wrap(o),t)};t._rollbarOldAdd=n,t.belongsToShim=o,e.addEventListener=t;for(var a=e.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,e,o){a.call(this,r,e&&e._rollbar_wrapped||e,o)};l._rollbarOldRemove=a,l.belongsToShim=o,e.removeEventListener=l}}r.exports=function(r,e,o){if(r){var t,a,l="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(t=0;t<l.length;++t)r[a=l[t]]&&r[a].prototype&&n(e,r[a].prototype,o)}}},function(r,e,o){"use strict";function n(r,e){this.impl=r(e,this),this.options=e,function(r){for(var e=function(r){return function(){var e=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,e)}},o="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<o.length;n++)r[o[n]]=e(o[n])}(n.prototype)}n.prototype._swapAndProcessMessages=function(r,e){var o,n,t;for(this.impl=r(this.options);o=e.shift();)n=o.method,t=o.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],o.ts]):this[n].apply(this,t));return this},r.exports=n},function(r,e,o){"use strict";r.exports=function(r){return function(e){if(!e&&!window._rollbarInitialized){for(var o,n,t=(r=r||{}).globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;o=window._rollbarShims[i++];)n||(n=o.handler),o.handler._swapAndProcessMessages(l,o.messages);window[t]=n,window._rollbarInitialized=!0}}}}]);
|
|
// End Rollbar Snippet
|
|
</script>
|
|
<% /* Google Analytics, Google Tag Manager, Snitcher etc. */ %>
|
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-JC3DRNY1GV"></script>
|
|
<script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-JC3DRNY1GV');
|
|
</script>
|
|
<%/* Meta pixel code */%>
|
|
<script>
|
|
!function(f,b,e,v,n,t,s)
|
|
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
'https://connect.facebook.net/en_US/fbevents.js');
|
|
fbq('init', '673041690615149');
|
|
fbq('track', 'PageView');
|
|
</script>
|
|
<noscript>
|
|
<img alt="Meta pixel" height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=673041690615149&ev=PageView&noscript=1"/>
|
|
</noscript>
|
|
<%/* Hotjar code */%>
|
|
<!-- Hotjar Tracking Code for https://fleetdm.com/ -->
|
|
<script>
|
|
(function(h,o,t,j,a,r){
|
|
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
|
|
h._hjSettings={hjid:3068651,hjsv:6};
|
|
a=o.getElementsByTagName('head')[0];
|
|
r=o.createElement('script');r.async=1;
|
|
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
|
|
a.appendChild(r);
|
|
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
|
|
</script>
|
|
<%/* Heap analytics code */%>
|
|
<script type="text/javascript">
|
|
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src="https://cdn.heapanalytics.com/js/heap-"+e+".js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(r,a);for(var n=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","resetIdentity","removeEventProperty","setEventProperties","track","unsetEventProperty"],o=0;o<p.length;o++)heap[p[o]]=n(p[o])};
|
|
heap.load("4175146533");
|
|
</script>
|
|
<%/* Snitcher analytics code */%>
|
|
<script>
|
|
!function(i,s,o,g,r,a,m){i.Ip2cObject=o;i[o]||(i[o]=function(){
|
|
(i[o].q=i[o].q||[]).push(arguments)});i[o].l=+new Date;r=s.createElement(g);
|
|
a=s.getElementsByTagName(g)[0];r.src='//reveal.ip2c.net/8416878.js';
|
|
a.parentNode.insertBefore(r,a)}(window,document,'ip2c','script');
|
|
ip2c('verify', '8416878');
|
|
</script>
|
|
<% }
|
|
/* Otherwise, any such scripts are excluded, and we instead inject a
|
|
robots/noindex meta tag to help prevent any unwanted visits from search engines. */
|
|
else { %>
|
|
<meta name="robots" content="noindex">
|
|
<% } %>
|
|
<% /*
|
|
Stylesheets
|
|
========================
|
|
|
|
Stylesheets can be hard-coded as «link» tags, automatically injected
|
|
by the asset pipeline between "STYLES" and "STYLES END", or both.
|
|
(https://sailsjs.com/docs/concepts/assets/task-automation)
|
|
*/ %>
|
|
|
|
<% /* Auto-injected «link» tags: */ %>
|
|
<!--STYLES-->
|
|
<link rel="stylesheet" href="/dependencies/bootstrap-4/bootstrap-4.css">
|
|
<link rel="stylesheet" href="/dependencies/fontawesome.css">
|
|
<link rel="stylesheet" href="/dependencies/nunito-webfonts.css">
|
|
<link rel="stylesheet" href="/styles/importer.css">
|
|
<!--STYLES END-->
|
|
</head>
|
|
<body>
|
|
<div purpose="page-wrap">
|
|
<div class="<%= isHomepage ? 'homepage-header' : 'header' %>" purpose="page-header">
|
|
<div purpose="header-report-cta" class="<%= headerCTAHidden ? 'd-none' : 'd-flex' %> flex-row justify-content-center align-items-md-center">
|
|
<div class="mb-0 d-flex flex-lg-row flex-column justify-content-center py-3 px-2">
|
|
<p class="text-center pr-1 mb-0">We surveyed 200+ security practitioners to discover the state of device management in 2022. </p>
|
|
<a class="mb-0 d-block text-center d-lg-inline text-lg-left" href="/reports/state-of-device-management">Click here to learn about their struggles and best practices.</a>
|
|
</div>
|
|
</div>
|
|
<div style="max-width: 1248px; height: 94px;" class="container-fluid d-flex justify-content-between align-items-center pt-3 pb-3 px-3 px-md-4">
|
|
<a href="/" style="max-width: 118px;">
|
|
<% /* The homepage-header on the homepage has a white fleet logo */ %>
|
|
<% if (isHomepage) { %>
|
|
<img alt="Fleet logo" src="/images/logo-white-162x92@2x.png" style="width: 162px; height: 92px;"/>
|
|
<% } else { %>
|
|
<img alt="Fleet logo" src="/images/logo-blue-162x92@2x.png" style="height: 92px; width: 162px;"/>
|
|
<% } %>
|
|
</a>
|
|
<div class="d-flex d-lg-none">
|
|
<button purpose="header-btn" style="font-size: 16px; text-decoration: none;" class="btn btn-link d-flex align-items-center" data-toggle="collapse" data-target="#navbarToggleExternalContent">
|
|
<span class="mr-2">Menu</span>
|
|
<% /* The hamburger icon on the homepage is white */ %>
|
|
<% if (isHomepage) { %>
|
|
<img alt="An icon indicating that interacting with this button will open the navigation menu." src="/images/icon-hamburger-16x14@2x.png" style="width: 16px;" />
|
|
<% } else { %>
|
|
<img alt="An icon indicating that interacting with this button will open the navigation menu." src="/images/icon-hamburger-blue-16x14@2x.png" style="width: 16px;" />
|
|
<% } %>
|
|
</button>
|
|
</div>
|
|
<%/* Mobile Navigation menu */%>
|
|
<div purpose="mobile-nav" class="collapse px-4 px-sm-5" id="navbarToggleExternalContent">
|
|
<div class="d-flex justify-content-between">
|
|
<a href="/">
|
|
<img alt="Fleet logo" src="/images/logo-blue-162x92@2x.png" style="height: 92px; width: 162px;" class="mt-3"/>
|
|
</a>
|
|
<button style="font-size: 16px; text-decoration: none;" class="btn btn-link d-flex align-items-center" data-toggle="collapse" data-target="#navbarToggleExternalContent">
|
|
<img alt="An 'X' icon indicating that this can be interacted with to close the navigation menu." src="/images/icon-close-16x16@2x.png" style="width: 16px;" />
|
|
</button>
|
|
</div>
|
|
<div id="mobileDropdowns" class="py-2">
|
|
<a purpose="mobile-dropdown-toggle" class="d-flex align-items-center collapsed" data-toggle="collapse" data-target="#mobileNavbarToggleUseCases" aria-haspopup="true" aria-expanded="false">Use cases</a>
|
|
<div class="d-block">
|
|
<div id="mobileNavbarToggleUseCases" purpose="mobile-dropdown" class="collapse align-items-start" data-parent="#mobileDropdowns">
|
|
<a href="/platform">How it works</a>
|
|
<span>SUCCESS STORIES</span>
|
|
<a class="pl-3" href="/device-management/fleet-user-stories-wayfair">Wayfair</a>
|
|
<a class="pl-3" href="/device-management/fleet-user-stories-schrodinger">Schrödinger</a>
|
|
<a class="pl-3" href="/device-management/fleet-user-stories-f100">F100 security & networking co.</a>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<a purpose="mobile-dropdown-toggle" class="d-flex align-items-center mr-4 collapsed" data-toggle="collapse" data-target="#mobileNavbarToggleDocumentation" aria-haspopup="true" aria-expanded="false">Documentation</a>
|
|
<div class="d-block">
|
|
<div id="mobileNavbarToggleDocumentation" purpose="mobile-dropdown" class="collapse" data-parent="#mobileDropdowns">
|
|
<a href="/docs">Docs</a>
|
|
<a href="https://github.com/fleetdm/fleet/releases">Releases</a>
|
|
<a href="/queries">Query library</a>
|
|
<span>GUIDES</span>
|
|
<a class="pl-3" href="/deploy">Deployment guides</a>
|
|
<a class="pl-3" href="/guides">How-to guides</a>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<a purpose="mobile-dropdown-toggle" class="d-flex align-items-center mr-4 collapsed" data-toggle="collapse" data-target="#mobileNavbarToggleCommunity">Community</a>
|
|
<div class="d-block">
|
|
<div id="mobileNavbarToggleCommunity" purpose="mobile-dropdown" class="collapse" data-parent="#mobileDropdowns">
|
|
<a href="/slack" target="_blank">Chat</a>
|
|
<a href="/podcasts">Podcasts</a>
|
|
<a href="/reports/state-of-device-management">State of device management</a>
|
|
<span>ARTICLES</span>
|
|
<a href="/securing">Security</a>
|
|
<a href="/engineering">Engineering</a>
|
|
<a href="/announcements">Announcements</a>
|
|
<span>RESOURCES</span>
|
|
<a href="/handbook">Handbook</a>
|
|
<a href="/logos">Logos & artwork</a>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<a href="/pricing" class="d-flex align-items-center mb-2 pb-3" style="text-decoration: none; font-weight: 700;">Pricing</a>
|
|
<a style="padding: 4px 16px; line-height: 24px; width: 100px" class="btn btn-sm btn-primary align-items-center d-flex " href="/get-started?tryitnow" >Try it out</a>
|
|
</div>
|
|
</div>
|
|
<%/* Desktop Navigation bar */%>
|
|
<div purpose="header-nav" class="d-none d-lg-flex align-items-center">
|
|
<div purpose="dropdown-button" class="btn-group">
|
|
<a class="dropdown-toggle d-flex align-items-center py-2 px-3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Use cases</a>
|
|
<div purpose="header-dropdown" class="dropdown-menu">
|
|
<a class="dropdown-item mb-1" href="/platform">How it works</a>
|
|
<div class="dropdown-divider"></div>
|
|
<h6 class="muted dropdown-header">SUCCESS STORIES</h6>
|
|
<a class="dropdown-item mb-1" href="/device-management/fleet-user-stories-wayfair">Wayfair</a>
|
|
<a class="dropdown-item mb-1" href="/device-management/fleet-user-stories-schrodinger">Schrödinger</a>
|
|
<a class="dropdown-item" href="/device-management/fleet-user-stories-f100">F100 security & networking co.</a>
|
|
</div>
|
|
</div>
|
|
<div purpose="dropdown-button" class="btn-group">
|
|
<a class="dropdown-toggle d-flex align-items-center py-2 px-3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Documentation</a>
|
|
<div purpose="header-dropdown" class="dropdown-menu">
|
|
<a class="dropdown-item mb-1" href="/docs">Docs</a>
|
|
<a class="dropdown-item mb-1" href="https://github.com/fleetdm/fleet/releases">Releases</a>
|
|
<a class="dropdown-item mb-1" href="/queries">Query library</a>
|
|
<div class="dropdown-divider"></div>
|
|
<span class="muted dropdown-header">GUIDES</span>
|
|
<a class="dropdown-item" href="/deploy">Deployment guides</a>
|
|
<a class="dropdown-item" href="/guides">How-to guides</a>
|
|
</div>
|
|
</div>
|
|
<div purpose="dropdown-button" class="btn-group">
|
|
<a class="dropdown-toggle d-flex align-items-center py-2 px-3" data-toggle="dropdown">Community</a>
|
|
<div purpose="header-dropdown" class="dropdown-menu">
|
|
<a class="dropdown-item mb-1" href="/slack" target="_blank">Chat</a>
|
|
<a class="dropdown-item mb-1" href="/podcasts">Podcasts</a>
|
|
<a class="dropdown-item mb-1" href="/reports/state-of-device-management">State of device management</a>
|
|
<div class="dropdown-divider"></div>
|
|
<span class="muted dropdown-header">ARTICLES</span>
|
|
<a class="dropdown-item mb-1" href="/securing">Security</a>
|
|
<a class="dropdown-item mb-1" href="/engineering">Engineering</a>
|
|
<a class="dropdown-item mb-1" href="/announcements">Announcements</a>
|
|
<div class="dropdown-divider"></div>
|
|
<span class="muted dropdown-header">RESOURCES</span>
|
|
<a class="dropdown-item mb-1" href="/handbook">Handbook</a>
|
|
<a class="dropdown-item" href="/logos">Logos & artwork</a>
|
|
</div>
|
|
</div>
|
|
<a href="/pricing" class="d-flex align-items-center py-2 px-3" style="text-decoration: none; line-height: 23px;">Pricing</a>
|
|
<span class="d-flex align-items-center px-3">
|
|
<iframe src="//ghbtns.com/github-btn.html?user=fleetdm&repo=fleet&type=watch&count=true"
|
|
allowtransparency="true" frameborder="0" scrolling="0" width="100" height="20"></iframe>
|
|
</span>
|
|
<a style="padding: 4px 16px; line-height: 24px; color: #FFFFFF" class="btn btn-sm btn-primary align-items-center d-flex" href="/get-started?tryitnow" >Try it out</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<%- body %>
|
|
|
|
<%/* Note: footer is hidden until the page is loaded. See «script» tag at the bottom of this file. */%>
|
|
<div style="background-color: #182147;" class="invisible" purpose="page-footer" data-hide-until-rendered>
|
|
<div style="max-width: 1248px;" purpose="footer-container" class="container-fluid d-flex flex-column flex-sm-row align-items-sm-end justify-content-center justify-content-sm-between">
|
|
<div class="d-flex flex-column order-first justify-content-start">
|
|
<div class="d-flex pb-4 pr-4">
|
|
<a class="pb-3" href="/">
|
|
<img alt="Fleet logo" src="/images/logo-white-118x48@2x.png" style="width: 118px; height: 48px;" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex flex-grow-1 flex-column">
|
|
<div purpose="footer-nav" class="justify-content-between justify-content-sm-end order-l pb-xl-2 px-lg-0">
|
|
<div class="flex-column">
|
|
<a href="/get-started" class="d-block pr-md-5 pr-sm-3 pb-2">Get started</a>
|
|
<a href="/docs" class="d-block pr-md-5 pr-sm-3 pb-2">Docs</a>
|
|
<a href="/queries" class="d-block pr-md-5 pr-sm-3 pb-2">Query library</a>
|
|
<a href="/transparency" class="d-block pr-md-5 pr-sm-3 pb-2 pb-xl-0">Transparency</a>
|
|
</div>
|
|
<div class="flex-column">
|
|
<a href="/pricing" class="d-block px-md-5 px-sm-3 pb-2">Pricing</a>
|
|
<a href="/customers/dashboard" class="d-block px-md-5 px-sm-3 pb-2">Customers</a>
|
|
<a href="/handbook" class="d-block px-md-5 px-sm-3 pb-2">Handbook</a>
|
|
<a href="/logos" class="d-block px-md-5 px-sm-3 pb-2 pb-xl-0">Logos/artwork</a>
|
|
</div>
|
|
<div class="flex-column">
|
|
<a href="/apply" class="d-block pr-lg-2 pl-md-5 pl-sm-3 pb-2">Jobs</a>
|
|
<a href="/blog" class="d-block pr-lg-2 pl-md-5 pl-sm-3 pb-2">Blog</a>
|
|
<a href="/docs/contributing" class="d-block pr-lg-2 pl-md-5 pl-sm-3 pb-2">Contribute</a>
|
|
<a href="/hall-of-fame" class="d-block pr-lg-2 pl-md-5 pl-sm-3 pb-2 pb-xl-0">Hall of fame</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div purpose="footer-bottom" style="background-color: #101639;">
|
|
<div style="max-width: 1248px;" class="container-fluid d-flex px-0 flex-md-row flex-column align-items-md-center justify-content-md-between pb-4 pr-3 pb-md-0">
|
|
|
|
<div style="font-size: 11px; line-height: 18px;" class="d-flex flex-column justify-content-start flex-sm-row pr-sm-0">
|
|
<img alt="Creative Commons Licence CC BY-SA 4.0" src="/images/logo-creative-commons-160x30@2x.png" style="width: 80px; height: 15px;" />
|
|
<div class="pl-sm-3 pt-sm-0 pt-1 pl-0 text-sm-nowrap d-block d-sm-inline">
|
|
© 2022 Fleet Device Management Inc.
|
|
<span purpose="legal-nav">
|
|
<a style="text-decoration: underline;" href="/legal/privacy">Privacy</a>
|
|
<a style="text-decoration: underline;" class="pl-3" target="_blank" href="https://osquery.io">What is osquery?</a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="font-size: 14px;" class="flex-row d-inline-flex font-weight-bold order-first order-md-last justify-content-start justify-content-md-end pl-md-3 py-3">
|
|
<a href="https://twitter.com/fleetctl">
|
|
<img alt="Twitter logo" src="/images/logo-twitter-50x44@2x.png" style="height: 20px; width: auto; margin-top:2px" class="pr-4" />
|
|
</a>
|
|
<a href="https://www.youtube.com/channel/UCZyoqZ4exJvoibmTKJrQ-dQ">
|
|
<img alt="Youtube logo" src="/images/logo-youtube-57x40@2x.png" style="height: 20px; width: auto; margin-top:2px" class="pr-4" />
|
|
</a>
|
|
<a href="/slack">
|
|
<img alt="Slack logo" src="/images/logo-slack-24x24@2x.png" style="height: 20px; width: auto; margin-top:2px" class="pr-4" />
|
|
</a>
|
|
<a href="https://github.com/fleetdm/fleet">
|
|
<img alt="GitHub logo" src="/images/github-mark-white-24x24@2x.png" style="height: 20px; width: auto; margin-top:2px" />
|
|
</a>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<% /*
|
|
Client-side JavaScript
|
|
========================
|
|
|
|
Scripts can be hard-coded as «script» tags, automatically injected
|
|
by the asset pipeline between "SCRIPTS" and "SCRIPTS END", or both.
|
|
(https://sailsjs.com/docs/concepts/assets/task-automation)
|
|
*/ %>
|
|
<% /* Cookie consent banner */ %>
|
|
<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/71bcdd51b166ceeb18bd0d28/script.js"></script>
|
|
<% /* Chat (Papercups) */ %>
|
|
<script>window.Papercups = { config: { accountId: '5b59eeac-1578-4fdb-b946-e17c1dca0c51', primaryColor:'#6A67FE', requireEmailUpfront: true } };</script>
|
|
<script type="text/javascript" async defer src="https://app.papercups.io/widget.js"></script>
|
|
|
|
<%/* Stripe.js */%>
|
|
<script src="https://js.stripe.com/v3/"></script>
|
|
|
|
<%/* Linkedin Ads Insight tag */%>
|
|
<script type="text/javascript">
|
|
_linkedin_partner_id = "4365817";
|
|
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
|
|
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
|
|
</script><script type="text/javascript">
|
|
(function(l) {
|
|
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
|
|
window.lintrk.q=[]}
|
|
var s = document.getElementsByTagName("script")[0];
|
|
var b = document.createElement("script");
|
|
b.type = "text/javascript";b.async = true;
|
|
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
|
|
s.parentNode.insertBefore(b, s);})(window.lintrk);
|
|
</script>
|
|
<noscript>
|
|
<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=4365817&fmt=gif" />
|
|
</noscript>
|
|
|
|
<% /* Delete the global `self` to help avoid client-side bugs.
|
|
(see https://developer.mozilla.org/en-US/docs/Web/API/Window/self) */ %>
|
|
<script>delete window.self;</script>
|
|
|
|
<% /* Sticky header */ %>
|
|
<script>
|
|
var lastScrollTop = 0;
|
|
var header = document.querySelector('.header') || document.querySelector('.homepage-header')
|
|
window.addEventListener('scroll', windowScrolled)
|
|
|
|
function windowScrolled() {
|
|
var scrollTop = window.pageYOffset || document.documentElement.scrollTop
|
|
var fleetLogo = header.querySelector('img')
|
|
var hamburgerMenuIcon = header.querySelector('.btn.btn-link > img')
|
|
if(scrollTop == 0 && header.classList.contains('homepage-header')) {
|
|
header.classList.remove('sticky')
|
|
fleetLogo.src = '/images/logo-white-162x92@2x.png'
|
|
hamburgerMenuIcon.src = '/images/icon-hamburger-16x14@2x.png'
|
|
return;
|
|
}
|
|
if(scrollTop > lastScrollTop && scrollTop > window.innerHeight * 1.5) {
|
|
header.classList.add('translate-y-0');
|
|
} else {
|
|
if(header.classList.contains('homepage-header') && scrollTop > 16) {
|
|
header.classList.add('sticky')
|
|
fleetLogo.src = '/images/logo-blue-162x92@2x.png'
|
|
hamburgerMenuIcon.src="/images/icon-hamburger-blue-16x14@2x.png"
|
|
}
|
|
header.classList.remove('translate-y-0');
|
|
}
|
|
lastScrollTop = scrollTop;
|
|
}
|
|
</script>
|
|
|
|
<%/* bowser.js (for browser detection) -- included inline to avoid issues with minification that could affect the unsupported browser overlay */%>
|
|
<script>!function(e,i,s){if("undefined"!=typeof module&&module.exports)module.exports=s();else if("function"==typeof define&&define.amd)define(i,s);else e[i]=s()}(this,"bowser",function(){var e=true;function i(i){function s(e){var s=i.match(e);return s&&s.length>1&&s[1]||""}function o(e){var s=i.match(e);return s&&s.length>1&&s[2]||""}var r=s(/(ipod|iphone|ipad)/i).toLowerCase(),n=/like android/i.test(i),t=!n&&/android/i.test(i),a=/nexus\s*[0-6]\s*/i.test(i),d=!a&&/nexus\s*[0-9]+/i.test(i),l=/CrOS/.test(i),f=/silk/i.test(i),m=/sailfish/i.test(i),v=/tizen/i.test(i),p=/(web|hpw)os/i.test(i),c=/windows phone/i.test(i),u=/SamsungBrowser/i.test(i),h=!c&&/windows/i.test(i),w=!r&&!f&&/macintosh/i.test(i),b=!t&&!m&&!v&&!p&&/linux/i.test(i),g=o(/edg([ea]|ios)\/(\d+(\.\d+)?)/i),k=s(/version\/(\d+(\.\d+)?)/i),x=/tablet/i.test(i)&&!/tablet pc/i.test(i),y=!x&&/[^-]mobi/i.test(i),S=/xbox/i.test(i),B;if(/opera/i.test(i))B={name:"Opera",opera:e,version:k||s(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)};else if(/opr\/|opios/i.test(i))B={name:"Opera",opera:e,version:s(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||k};else if(/SamsungBrowser/i.test(i))B={name:"Samsung Internet for Android",samsungBrowser:e,version:k||s(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)};else if(/coast/i.test(i))B={name:"Opera Coast",coast:e,version:k||s(/(?:coast)[\s\/](\d+(\.\d+)?)/i)};else if(/yabrowser/i.test(i))B={name:"Yandex Browser",yandexbrowser:e,version:k||s(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)};else if(/ucbrowser/i.test(i))B={name:"UC Browser",ucbrowser:e,version:s(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)};else if(/mxios/i.test(i))B={name:"Maxthon",maxthon:e,version:s(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)};else if(/epiphany/i.test(i))B={name:"Epiphany",epiphany:e,version:s(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)};else if(/puffin/i.test(i))B={name:"Puffin",puffin:e,version:s(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)};else if(/sleipnir/i.test(i))B={name:"Sleipnir",sleipnir:e,version:s(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)};else if(/k-meleon/i.test(i))B={name:"K-Meleon",kMeleon:e,version:s(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)};else if(c){B={name:"Windows Phone",osname:"Windows Phone",windowsphone:e};if(g){B.msedge=e;B.version=g}else{B.msie=e;B.version=s(/iemobile\/(\d+(\.\d+)?)/i)}}else if(/msie|trident/i.test(i))B={name:"Internet Explorer",msie:e,version:s(/(?:msie |rv:)(\d+(\.\d+)?)/i)};else if(l)B={name:"Chrome",osname:"Chrome OS",chromeos:e,chromeBook:e,chrome:e,version:s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)};else if(/edg([ea]|ios)/i.test(i))B={name:"Microsoft Edge",msedge:e,version:g};else if(/vivaldi/i.test(i))B={name:"Vivaldi",vivaldi:e,version:s(/vivaldi\/(\d+(\.\d+)?)/i)||k};else if(m)B={name:"Sailfish",osname:"Sailfish OS",sailfish:e,version:s(/sailfish\s?browser\/(\d+(\.\d+)?)/i)};else if(/seamonkey\//i.test(i))B={name:"SeaMonkey",seamonkey:e,version:s(/seamonkey\/(\d+(\.\d+)?)/i)};else if(/firefox|iceweasel|fxios/i.test(i)){B={name:"Firefox",firefox:e,version:s(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)};if(/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(i)){B.firefoxos=e;B.osname="Firefox OS"}}else if(f)B={name:"Amazon Silk",silk:e,version:s(/silk\/(\d+(\.\d+)?)/i)};else if(/phantom/i.test(i))B={name:"PhantomJS",phantom:e,version:s(/phantomjs\/(\d+(\.\d+)?)/i)};else if(/slimerjs/i.test(i))B={name:"SlimerJS",slimer:e,version:s(/slimerjs\/(\d+(\.\d+)?)/i)};else if(/blackberry|\bbb\d+/i.test(i)||/rim\stablet/i.test(i))B={name:"BlackBerry",osname:"BlackBerry OS",blackberry:e,version:k||s(/blackberry[\d]+\/(\d+(\.\d+)?)/i)};else if(p){B={name:"WebOS",osname:"WebOS",webos:e,version:k||s(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)};/touchpad\//i.test(i)&&(B.touchpad=e)}else if(/bada/i.test(i))B={name:"Bada",osname:"Bada",bada:e,version:s(/dolfin\/(\d+(\.\d+)?)/i)};else if(v)B={name:"Tizen",osname:"Tizen",tizen:e,version:s(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||k};else if(/qupzilla/i.test(i))B={name:"QupZilla",qupzilla:e,version:s(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||k};else if(/chromium/i.test(i))B={name:"Chromium",chromium:e,version:s(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||k};else if(/chrome|crios|crmo/i.test(i))B={name:"Chrome",chrome:e,version:s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)};else if(t)B={name:"Android",version:k};else if(/safari|applewebkit/i.test(i)){B={name:"Safari",safari:e};if(k)B.version=k}else if(r){B={name:"iphone"==r?"iPhone":"ipad"==r?"iPad":"iPod"};if(k)B.version=k}else if(/googlebot/i.test(i))B={name:"Googlebot",googlebot:e,version:s(/googlebot\/(\d+(\.\d+))/i)||k};else B={name:s(/^(.*)\/(.*) /),version:o(/^(.*)\/(.*) /)};if(!B.msedge&&/(apple)?webkit/i.test(i)){if(/(apple)?webkit\/537\.36/i.test(i)){B.name=B.name||"Blink";B.blink=e}else{B.name=B.name||"Webkit";B.webkit=e}if(!B.version&&k)B.version=k}else if(!B.opera&&/gecko\//i.test(i)){B.name=B.name||"Gecko";B.gecko=e;B.version=B.version||s(/gecko\/(\d+(\.\d+)?)/i)}if(!B.windowsphone&&(t||B.silk)){B.android=e;B.osname="Android"}else if(!B.windowsphone&&r){B[r]=e;B.ios=e;B.osname="iOS"}else if(w){B.mac=e;B.osname="macOS"}else if(S){B.xbox=e;B.osname="Xbox"}else if(h){B.windows=e;B.osname="Windows"}else if(b){B.linux=e;B.osname="Linux"}function O(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return undefined}}var T="";if(B.windows)T=O(s(/Windows ((NT|XP)( \d\d?.\d)?)/i));else if(B.windowsphone)T=s(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i);else if(B.mac){T=s(/Mac OS X (\d+([_\.\s]\d+)*)/i);T=T.replace(/[_\s]/g,".")}else if(r){T=s(/os (\d+([_\s]\d+)*) like mac os x/i);T=T.replace(/[_\s]/g,".")}else if(t)T=s(/android[ \/-](\d+(\.\d+)*)/i);else if(B.webos)T=s(/(?:web|hpw)os\/(\d+(\.\d+)*)/i);else if(B.blackberry)T=s(/rim\stablet\sos\s(\d+(\.\d+)*)/i);else if(B.bada)T=s(/bada\/(\d+(\.\d+)*)/i);else if(B.tizen)T=s(/tizen[\/\s](\d+(\.\d+)*)/i);if(T)B.osversion=T;var P=!B.windows&&T.split(".")[0];if(x||d||"ipad"==r||t&&(3==P||P>=4&&!y)||B.silk)B.tablet=e;else if(y||"iphone"==r||"ipod"==r||t||a||B.blackberry||B.webos||B.bada)B.mobile=e;if(B.msedge||B.msie&&B.version>=10||B.yandexbrowser&&B.version>=15||B.vivaldi&&B.version>=1||B.chrome&&B.version>=20||B.samsungBrowser&&B.version>=4||B.firefox&&B.version>=20||B.safari&&B.version>=6||B.opera&&B.version>=10||B.ios&&B.osversion&&B.osversion.split(".")[0]>=6||B.blackberry&&B.version>=10.1||B.chromium&&B.version>=20)B.a=e;else if(B.msie&&B.version<10||B.chrome&&B.version<20||B.firefox&&B.version<20||B.safari&&B.version<6||B.opera&&B.version<10||B.ios&&B.osversion&&B.osversion.split(".")[0]<6||B.chromium&&B.version<20)B.c=e;else B.x=e;return B}var s=i("undefined"!==typeof navigator?navigator.userAgent||"":"");s.test=function(e){for(var i=0;i<e.length;++i){var o=e[i];if("string"===typeof o)if(o in s)return true}return false};function o(e){return e.split(".").length}function r(e,i){var s=[],o;if(Array.prototype.map)return Array.prototype.map.call(e,i);for(o=0;o<e.length;o++)s.push(i(e[o]));return s}function n(e){var i=Math.max(o(e[0]),o(e[1]));var s=r(e,function(e){var s=i-o(e);e+=new Array(s+1).join(".0");return r(e.split("."),function(e){return new Array(20-e.length).join("0")+e}).reverse()});while(--i>=0)if(s[0][i]>s[1][i])return 1;else if(s[0][i]===s[1][i]){if(0===i)return 0}else return-1}function t(e,o,r){var t=s;if("string"===typeof o){r=o;o=void 0}if(void 0===o)o=false;if(r)t=i(r);var a=""+t.version;for(var d in e)if(e.hasOwnProperty(d))if(t[d]){if("string"!==typeof e[d])throw new Error("Browser version in the minVersion map should be a string: "+d+": "+String(e));return n([a,e[d]])<0}return o}function a(e,i,s){return!t(e,i,s)}s.isUnsupportedBrowser=t;s.compareVersions=n;s.check=a;s._detect=i;s.detect=i;return s});</script>
|
|
|
|
<% /* Auto-injected «script» tags: */ %>
|
|
<!--SCRIPTS-->
|
|
<script src="/dependencies/sails.io.js"></script>
|
|
<script src="/dependencies/lodash.js"></script>
|
|
<script src="/dependencies/jquery.min.js"></script>
|
|
<script src="/dependencies/vue.js"></script>
|
|
<script src="/dependencies/vue-router.js"></script>
|
|
<script src="/dependencies/bootstrap-4/bootstrap-4.bundle.js"></script>
|
|
<script src="/dependencies/chart.min.js"></script>
|
|
<script src="/dependencies/cloud.js"></script>
|
|
<script src="/dependencies/docsearch.min.js"></script>
|
|
<script src="/dependencies/highlight.min.js"></script>
|
|
<script src="/dependencies/mermaid.min.js"></script>
|
|
<script src="/dependencies/moment.js"></script>
|
|
<script src="/dependencies/parasails.js"></script>
|
|
<script src="/js/cloud.setup.js"></script>
|
|
<script src="/js/components/ajax-button.component.js"></script>
|
|
<script src="/js/components/ajax-form.component.js"></script>
|
|
<script src="/js/components/bar-chart.component.js"></script>
|
|
<script src="/js/components/call-to-action.component.js"></script>
|
|
<script src="/js/components/cloud-error.component.js"></script>
|
|
<script src="/js/components/js-timestamp.component.js"></script>
|
|
<script src="/js/components/modal.component.js"></script>
|
|
<script src="/js/components/stripe-card-element.component.js"></script>
|
|
<script src="/js/utilities/open-stripe-checkout.js"></script>
|
|
<script src="/js/pages/account/account-overview.page.js"></script>
|
|
<script src="/js/pages/account/edit-password.page.js"></script>
|
|
<script src="/js/pages/account/edit-profile.page.js"></script>
|
|
<script src="/js/pages/articles/articles.page.js"></script>
|
|
<script src="/js/pages/articles/basic-article.page.js"></script>
|
|
<script src="/js/pages/contact.page.js"></script>
|
|
<script src="/js/pages/customers/dashboard.page.js"></script>
|
|
<script src="/js/pages/customers/new-license.page.js"></script>
|
|
<script src="/js/pages/dashboard/welcome.page.js"></script>
|
|
<script src="/js/pages/docs/basic-documentation.page.js"></script>
|
|
<script src="/js/pages/entrance/confirmed-email.page.js"></script>
|
|
<script src="/js/pages/entrance/forgot-password.page.js"></script>
|
|
<script src="/js/pages/entrance/login.page.js"></script>
|
|
<script src="/js/pages/entrance/new-password.page.js"></script>
|
|
<script src="/js/pages/entrance/signup.page.js"></script>
|
|
<script src="/js/pages/faq.page.js"></script>
|
|
<script src="/js/pages/get-started.page.js"></script>
|
|
<script src="/js/pages/handbook/basic-handbook.page.js"></script>
|
|
<script src="/js/pages/homepage.page.js"></script>
|
|
<script src="/js/pages/landing.page.js"></script>
|
|
<script src="/js/pages/legal/privacy.page.js"></script>
|
|
<script src="/js/pages/legal/terms.page.js"></script>
|
|
<script src="/js/pages/platform.page.js"></script>
|
|
<script src="/js/pages/press-kit.page.js"></script>
|
|
<script src="/js/pages/pricing.page.js"></script>
|
|
<script src="/js/pages/query-detail.page.js"></script>
|
|
<script src="/js/pages/query-library.page.js"></script>
|
|
<script src="/js/pages/reports/state-of-device-management.page.js"></script>
|
|
<script src="/js/pages/sales-one-pager.page.js"></script>
|
|
<script src="/js/pages/transparency.page.js"></script>
|
|
<!--SCRIPTS END-->
|
|
|
|
<% /* Display an overlay if the current browser is not supported.
|
|
(Relies on `bowser`, which is loaded inline above.) */ %>
|
|
<script>
|
|
(function(){
|
|
if (typeof bowser !== 'undefined') {
|
|
// --------------------------------------------------------------------
|
|
// Additional compatibility tips:
|
|
//
|
|
// • The browser/OS compatibility below is determined by the needs of Vue.js and Bootstrap.js.
|
|
// • All browsers on Windows XP are probably unsupported (because of compatibility issues with modern SSL certs)
|
|
// • See https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/
|
|
// • See also https://github.com/vuejs/vue/tree/0e5306658ad7b83c553a6a3eeedb15f9066ab063#browser-compatibility
|
|
// • For more info, see:
|
|
// - https://github.com/lancedikson/bowser/blob/1fb99ced0e8834fd9662604bad7e0f0c3eba2786/test/test.js#L110-L123
|
|
// - https://github.com/lancedikson/bowser/tree/1fb99ced0e8834fd9662604bad7e0f0c3eba2786#rendering-engine-flags
|
|
// --------------------------------------------------------------------
|
|
var LATEST_SUPPORTED_VERSION_BY_OS = {
|
|
iOS: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect
|
|
Android: '6'
|
|
};
|
|
var LATEST_SUPPORTED_VERSION_BY_USER_AGENT = {
|
|
msedge: '16',
|
|
// msie: '11',
|
|
safari: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect
|
|
firefox: '54',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
chrome: '51',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
opera: '38',//« earliest version to support both ES6 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
|
|
};
|
|
var LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME = {
|
|
'microsoft edge': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msedge,
|
|
// 'internet explorer': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msie,
|
|
'safari': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.safari,
|
|
'firefox': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.firefox,
|
|
'chrome': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.chrome,
|
|
'opera': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.opera
|
|
};
|
|
var isUnsupportedBrowser = (
|
|
bowser.isUnsupportedBrowser(LATEST_SUPPORTED_VERSION_BY_USER_AGENT, window.navigator.userAgent) || bowser.msie
|
|
);
|
|
var isUnsupportedOS = (
|
|
LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname] &&
|
|
bowser.compareVersions([bowser.osversion, LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname]]) < 0
|
|
);
|
|
if (isUnsupportedBrowser || isUnsupportedOS) {
|
|
document.body.innerHTML =
|
|
'<div class="container browser-warning-message text-center">'+
|
|
' <a href="https://fleetdm.com/company/contact">'+
|
|
'<img style="display: block; height: 40px; width: auto; margin: 0 auto 32px;" alt="Logo" src="/images/fleet-logo-black-118x40@2x.png"/>'+
|
|
'</a>'+
|
|
' <h5 class="card-title">This '+(isUnsupportedBrowser ? 'browser' : 'operating system')+' is not supported.</h5>'+
|
|
' <p style="max-width: 500px; margin: 0 auto 24px;">'+
|
|
' This app does not currently support '+(
|
|
isUnsupportedBrowser?
|
|
(bowser.msie?
|
|
'<strong>'+bowser.name+'</strong><br>'+ 'To continue, please use a supported browser, or download the <a href="https://www.google.com/chrome">latest version of Google Chrome</a>.'+
|
|
' </p>'+
|
|
' <a class="btn btn-primary" style="padding: 5px 10px" href="https://www.google.com/chrome">Download Chrome</a>'
|
|
:
|
|
'<strong>'+bowser.name+'</strong> for versions lower than <strong>v'+ LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME[bowser.name.toLowerCase()]+'</strong>. '+
|
|
'To continue, please upgrade your browser to the newest version, or download the <a href="https://www.google.com/chrome">latest version of Google Chrome</a>.'+
|
|
' </p>'+
|
|
' <a class="btn btn-sm btn-primary" style="padding: 5px 10px" href="https://www.google.com/chrome">Download Chrome</a>'
|
|
)
|
|
:
|
|
'<strong>'+bowser.osname+'</strong> for versions lower than <strong>v'+ LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname]+'</strong>. '+
|
|
'To continue, please use a different device, or <a href="'+(bowser.osname === 'iOS' ? 'https://support.apple.com/en-us/HT204204' : 'https://support.google.com/android/?hl=en#topic=7313011')+'">upgrade this device\'s software</a> to the latest compatible version.'+
|
|
' </p>'+
|
|
' <a class="btn btn-primary" style="padding: 5px 10px" href="/contact">Need help?</a>'
|
|
)+
|
|
'</div>';
|
|
document.body.style.padding = '75px 0';
|
|
}
|
|
}
|
|
})();
|
|
</script>
|
|
|
|
<% /* Keep footer hidden until the document is ready (prevents flicker that is especially unattractive on mobile) */ %>
|
|
<script>
|
|
$(function() {
|
|
$('[data-hide-until-rendered]').removeClass('invisible'); // Note: invisible is a bootstrap 4 class
|
|
});
|
|
<%/* Adding hover events to header dropdown menus*/%>
|
|
$(function(){
|
|
$('[purpose=dropdown-button]').hover(
|
|
function() {
|
|
$(this).children('.dropdown-menu').addClass('show');
|
|
$(this).children('.dropdown-toggle').attr('aria-expanded', true);
|
|
},
|
|
function() {
|
|
$(this).children('.dropdown-menu').removeClass('show');
|
|
$(this).children('.dropdown-toggle').attr('aria-expanded', false);
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|