2021-04-27 18:08:33 +00:00
<%
2020-12-02 20:48:03 +00:00
// In case we're displaying the 404 or 500 page and relevant code in the "custom" hook was not able to run,
2021-04-27 18:08:33 +00:00
// 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;
%><!DOCTYPE html>
2020-12-02 20:48:03 +00:00
<html>
<head>
2021-10-01 02:14:02 +00:00
<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.' %>" />
2020-12-02 20:48:03 +00:00
<% /* Viewport tag for sensible mobile support */ %>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
2021-07-20 15:24:25 +00:00
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="https://fleetdm.com" />
2021-10-01 02:14:02 +00:00
<meta name="twitter:title" content="<%= typeof pageTitleForMeta !== 'undefined' ? pageTitleForMeta : '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.' %>" />
2021-07-23 01:05:44 +00:00
<meta name="twitter:image" content="https://fleetdm.com/images/fleet-logo-square@2x.png" />
2020-12-02 20:48:03 +00:00
<% /* 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.) */ %>
2021-04-28 07:31:43 +00:00
<link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;400;500;600;700;800;900&family=Nunito:wght@300;400;500;600;700;800;900&display=swap&Source+Code+Pro&display=swap" rel="stylesheet">
2021-08-20 01:34:14 +00:00
<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">
2020-12-02 20:48:03 +00:00
<% /* Certain scripts, normally analytics tools like Google Tag Manager and
Google Analytics, should only be included in production: */
if (sails.config.environment === 'production') { %>
<% /* Google Analytics, Google Tag Manager, 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>
<% }
/* 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="/styles/importer.css">
<!--STYLES END-->
</head>
<body>
<div purpose="page-wrap">
2021-09-01 09:16:00 +00:00
<div class="<%= isHomepage ? 'homepage-header' : 'header' %>" purpose="page-header">
<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 */ %>
2021-04-27 18:08:33 +00:00
<% if (isHomepage) { %>
2021-09-01 09:16:00 +00:00
<img alt="Fleet logo" src="/images/logo-white-118x48@2x.png" style="width: 118px; height: 48px;"/>
2021-04-01 00:24:42 +00:00
<% } else { %>
2021-09-01 09:16:00 +00:00
<img alt="Fleet logo" src="/images/logo-blue-162x92@2x.png" style="height: 92px; width: 162px;"/>
2021-04-01 00:24:42 +00:00
<% } %>
2021-09-01 09:16:00 +00:00
</a>
<div class="d-flex d-lg-none">
<button style="font-size: 16px; text-decoration: none;" class="header-btn 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>
2021-09-08 23:07:43 +00:00
</div>
<div class="mobile-menu 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="header-btn 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 class="pt-2">
<a href="/get-started" class="menu-link d-flex align-items-center px-3 py-2 mb-4" style="text-decoration: none; font-weight: 700;">Get started</a>
<a href="/docs" class="menu-link d-flex align-items-center px-3 py-2 mb-4 text-decoration-none" style="text-decoration: none; font-weight: 700;">Docs</a>
<a href="/queries" class="menu-link d-flex align-items-center px-3 py-2 mb-4 text-decoration-none" style="text-decoration: none; font-weight: 700;">Queries</a>
<a href="/pricing" class="menu-link d-flex align-items-center px-3 py-2 mb-4 text-decoration-none" style="text-decoration: none; font-weight: 700;">Pricing</a>
<a href="/blog" class="menu-link d-flex align-items-center px-3 py-2 mb-4 text-decoration-none" style="text-decoration: none; font-weight: 700;">Blog</a>
<!-- <a href="/company/contact" class="menu-link d-flex align-items-center px-3 py-2 mb-4 text-decoration-none" style=" text-decoration: none; color: #192147; font-weight: 700;">Contact</a> -->
<a target="_blank" href="https://github.com/fleetdm/fleet" class="menu-link d-flex align-items-center px-3 py-2" style=" text-decoration: none; font-weight: 700;">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9633 0.5C5.3578 0.5 0 5.8578 0 12.4633C0 17.7477 3.44954 22.2248 8.14679 23.8394C8.73394 23.9128 8.95413 23.5459 8.95413 23.2523C8.95413 22.9587 8.95413 22.2248 8.95413 21.1972C5.65138 21.9312 4.91743 19.5826 4.91743 19.5826C4.40367 18.1881 3.59633 17.8211 3.59633 17.8211C2.49541 17.0872 3.66972 17.0872 3.66972 17.0872C4.84404 17.1606 5.50459 18.3349 5.50459 18.3349C6.6055 20.1697 8.29358 19.656 8.95413 19.3624C9.02752 18.555 9.3945 18.0413 9.68807 17.7477C7.04587 17.4541 4.25688 16.4266 4.25688 11.8028C4.25688 10.4817 4.69725 9.45413 5.50459 8.57339C5.43119 8.35321 4.99083 7.1055 5.65138 5.49083C5.65138 5.49083 6.6789 5.19725 8.95413 6.73853C9.90826 6.44495 10.9358 6.37156 11.9633 6.37156C12.9908 6.37156 14.0183 6.51835 14.9725 6.73853C17.2477 5.19725 18.2752 5.49083 18.2752 5.49083C18.9358 7.1055 18.4954 8.35321 18.422 8.64679C19.156 9.45413 19.6697 10.555 19.6697 11.8761C19.6697 16.5 16.8807 17.4541 14.2385 17.7477C14.6789 18.1147 15.0459 18.8486 15.0459 19.9495C15.0459 21.5642 15.0459 22.8119 15.0459 23.2523C15.0459 23.5459 15.2661 23.9128 15.8532 23.8394C20.6239 22.2248 24 17.7477 24 12.4633C23.9266 5.8578 18.5688 0.5 11.9633 0.5Z" fill="#192147"/>
</svg>
<span class="ml-2">GitHub</span>
</a>
2021-03-23 08:56:15 +00:00
</div>
</div>
2021-09-01 09:16:00 +00:00
<div class="d-none d-lg-flex">
2021-10-11 05:42:07 +00:00
<a href="/get-started" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none <%= typeof currentPage !== 'undefined' && currentPage === 'get started' ? 'current-page' : '' %>" style="text-decoration: none; line-height: 23px;">Get started</a>
<a href="/docs" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none <%= typeof currentPage !== 'undefined' && currentPage === 'docs' ? 'current-page' : '' %>" style=" text-decoration: none; line-height: 23px;">Docs</a>
<a href="/queries" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none <%= typeof currentPage !== 'undefined' && currentPage === 'queries' ? 'current-page' : '' %>" style=" text-decoration: none; line-height: 23px;">Queries</a>
<a href="/pricing" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none <%= typeof currentPage !== 'undefined' && currentPage === 'pricing' ? 'current-page' : '' %>" style=" text-decoration: none; line-height: 23px;">Pricing</a>
2021-09-09 22:04:17 +00:00
<a target="_blank" href="/blog" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none" style=" text-decoration: none; line-height: 23px;">Blog</a>
<!-- <a href="/company/contact" class="header-link d-flex align-items-center px-3 py-2 mr-4 text-decoration-none" style=" text-decoration: none; line-height: 23px;">Contact</a> -->
2021-09-01 09:16:00 +00:00
<a target="_blank" href="https://github.com/fleetdm/fleet" class="header-link d-flex align-items-center px-3 py-2" style=" text-decoration: none;line-height: 23px;">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9633 0.5C5.3578 0.5 0 5.8578 0 12.4633C0 17.7477 3.44954 22.2248 8.14679 23.8394C8.73394 23.9128 8.95413 23.5459 8.95413 23.2523C8.95413 22.9587 8.95413 22.2248 8.95413 21.1972C5.65138 21.9312 4.91743 19.5826 4.91743 19.5826C4.40367 18.1881 3.59633 17.8211 3.59633 17.8211C2.49541 17.0872 3.66972 17.0872 3.66972 17.0872C4.84404 17.1606 5.50459 18.3349 5.50459 18.3349C6.6055 20.1697 8.29358 19.656 8.95413 19.3624C9.02752 18.555 9.3945 18.0413 9.68807 17.7477C7.04587 17.4541 4.25688 16.4266 4.25688 11.8028C4.25688 10.4817 4.69725 9.45413 5.50459 8.57339C5.43119 8.35321 4.99083 7.1055 5.65138 5.49083C5.65138 5.49083 6.6789 5.19725 8.95413 6.73853C9.90826 6.44495 10.9358 6.37156 11.9633 6.37156C12.9908 6.37156 14.0183 6.51835 14.9725 6.73853C17.2477 5.19725 18.2752 5.49083 18.2752 5.49083C18.9358 7.1055 18.4954 8.35321 18.422 8.64679C19.156 9.45413 19.6697 10.555 19.6697 11.8761C19.6697 16.5 16.8807 17.4541 14.2385 17.7477C14.6789 18.1147 15.0459 18.8486 15.0459 19.9495C15.0459 21.5642 15.0459 22.8119 15.0459 23.2523C15.0459 23.5459 15.2661 23.9128 15.8532 23.8394C20.6239 22.2248 24 17.7477 24 12.4633C23.9266 5.8578 18.5688 0.5 11.9633 0.5Z" fill="#192147"/>
</svg>
<span style="line-height: 24px;" class="ml-2 mr-4">GitHub</span>
</a>
<span class="header-link d-flex align-items-center text-decoration-none">
<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>
</div>
2021-03-23 08:56:15 +00:00
</div>
2021-09-08 23:07:43 +00:00
</div>
2020-12-02 20:48:03 +00:00
<%- body %>
2021-07-01 23:06:14 +00:00
<div style="background-color: #201E43;" purpose="page-footer">
2021-10-04 04:28:20 +00:00
<div style="max-width: 1248px; background-color: #201E43;" purpose="footer-container" class="container-fluid d-flex flex-column flex-xl-row align-items-xl-end justify-content-center justify-content-xl-between">
<div class="d-flex flex-column order-first justify-content-start">
<div class="d-flex pb-4 pb-xl-0">
<a class="pb-3" href="/">
<img alt="Fleet logo" src="/images/logo-white-118x48@2x.png" style="width: 118px; height: 48px;"/>
</a>
</div>
<div style="font-size: 11px; line-height: 18px;" class="d-none d-xl-flex flex-column pt-lg-4 text-nowrap">
2021-07-01 23:06:14 +00:00
<span>© 2021 Fleet Device Management Inc.</span>
2021-10-04 04:28:20 +00:00
<img alt="Creative Commons Licence CC BY-SA 4.0" src="/images/logo-creative-commons-80x15@2x.png" style="width: 80px"/>
2020-12-02 20:48:03 +00:00
</div>
</div>
2021-10-04 04:28:20 +00:00
<div class="d-flex flex-grow-1 flex-column">
<div purpose="footer-nav" class="justify-content-between justify-content-xl-end pb-4 pb-xl-2 px-lg-0">
<div class="flex-column">
<a href="/get-started" class="d-block pr-lg-5 pb-2">Get started</a>
2021-10-06 22:03:14 +00:00
<a href="/docs" class="d-block pr-lg-5 pb-2">Docs</a>
<a href="/transparency" class="d-block pr-lg-5 pb-2 pb-xl-0">Transparency</a>
2021-10-04 04:28:20 +00:00
</div>
<div class="flex-column">
<a href="/pricing" class="d-block px-lg-5 pb-2">Pricing</a>
2021-10-06 22:03:14 +00:00
<a href="/blog" class="d-block px-lg-5 pb-2">Blog</a>
<a href="/logos" class="d-block px-lg-5 pb-2 pb-xl-0">Logos/artwork</a>
2021-10-04 04:28:20 +00:00
</div>
<div class="flex-column">
2021-10-06 22:03:14 +00:00
<a href="/handbook" class="d-block pr-lg-2 pl-lg-5 pb-2">Handbook</a>
<a href="/docs/contributing" class="d-block pr-lg-2 pl-lg-5 pb-2">Contribute</a>
<a href="/hall-of-fame" class="d-block pr-lg-2 pl-lg-5 pb-2 pb-xl-0">Hall of fame</a>
2021-10-04 04:28:20 +00:00
</div>
</div>
<div style="font-size: 14px;" class="container-fluid d-flex flex-column flex-md-row font-weight-bold text-nowrap justify-content-start justify-content-md-between justify-content-xl-end px-0 pt-xl-4 pb-3">
<a href="https://twitter.com/fleetctl" class="d-flex flex-nowrap px-xl-3 pb-3 pb-lg-0">
<img alt="Twitter logo" src="/images/logo-twitter-32x26@2x.png" style="height: 20px; width: auto; margin-top:2px" class="mr-2"/>
Follow us on Twitter
</a>
2021-10-05 01:06:13 +00:00
<a href="https://www.youtube.com/channel/UCZyoqZ4exJvoibmTKJrQ-dQ" class="d-flex flex-nowrap px-xl-3 pb-3 pb-lg-0">
2021-10-04 04:28:20 +00:00
<img alt="Youtube logo" src="/images/logo-youtube-57x40@2x.png" style="height: 20px; width: auto; margin-top:2px" class="mr-2"/>
<span>Watch on YouTube</span>
</a>
<a href="https://osquery.slack.com/join/shared_invite/zt-h29zm0gk-s2DBtGUTW4CFel0f0IjTEw#/" class="d-flex flex-nowrap px-xl-3 pb-3 pb-lg-0">
<img alt="Slack logo" src="/images/logo-slack-24x24@2x.png" style="height: 20px; width: auto; margin-top:2px" class="mr-2"/>
<span>Join the community<span purpose="join-the-community-on-slack-expanded-text"> on Slack</span></span>
</a>
<a href="https://github.com/fleetdm/fleet" class="d-flex flex-nowrap px-xl-3 pb-4 pb-lg-0 pr-3">
<img alt="GitHub logo" src="/images/github-mark-white-24x24@2x.png" style="height: 20px; width: auto; margin-top:2px" class="mr-2"/>
GitHub
</a>
</div>
</div>
<div style="font-size: 11px; line-height: 18px;" class="d-block d-xl-none pt-lg-4 pr-5 pr-sm-0">
2021-10-15 00:06:46 +00:00
<span class="mb-2"> </span>
2021-10-04 04:28:20 +00:00
<img alt="Creative Commons Licence CC BY-SA 4.0" src="/images/logo-creative-commons-80x15@2x.png" style="width: 80px"/>
</div>
2020-12-02 20:48:03 +00:00
</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)
*/ %>
2021-10-14 23:26:32 +00:00
<% /* Cookie consent banner */ %>
<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/71bcdd51b166ceeb18bd0d28/script.js"></script>
Add chat to website (#165)
* prevent eslintrc conflicts
* Pricing + chat for website (#124)
* Update manage users styles. Implement table (list) view. (#104)
The goal of this PR is to change the layout of the manage users to a table (list view).
Move the user actions into the table view.
Move EditUserForm into a Modal
Update styles for InviteUserForm
Edit copy for the configuring SMTP warning.
* Update query page (edit, new, manage) and packs page (edit, new, manage) styles. (#106)
The goal of this PR is to update the style across the query and packs pages so they are consistent with the latest global styles (colors, buttons, and fonts).
* Update app settings page and osquery options page styles. (#107)
The goal of this PR is to implement the new global styling (colors, buttons, and fonts) to the "App settings" and "Osquery options" pages. These pages are only visible to users granted an admin role.
* Fix and clarify API auth documentation (#109)
- Fix header name.
- Add note about SSO auth.
* New styles for 404, 500, Login, User settings, and Confirm invite pages. (#108)
- Kolide404 and Kolide500 components renamed to Fleet404 and Fleet500
- Styling for Login and Confirm invite pages are consistent with the recent changes to the Setup page.
- Add "*" character to the 404 <Route />'s path property. Now the 404 page renders when there is no exact path match.
* Fix JSON in rest-endpoints.md (#110)
* Add host enrollment cooldown period (#112)
This addresses an issue some users experienced in which performance
problems were encountered when hosts were "competing" for enrollment
using the same osquery host identifier. The issue is addressed by adding
a cooldown period for host enrollment, preventing the same (as judged by
osquery host identifier) host from enrolling more than once per minute.
When users end up in the problematic scenario, they will see quite a bit
of error logs due to this issue. For now that's probably a good thing as
users need to be aware of the lack of visibility. We can explore rate
limiting the logging if that becomes an issue for someone.
Fixes #102
* Improve MySQL transaction error logging (#113)
Clarify what exactly happened when logging these errors.
* Migrate remaining URLs to fleetdm.com (#116)
* Clean up unused test/demo SQL data (#117)
* Add style fixes caught during QA. Add favicon. (#119)
Changes include style fixes that were caught during a QA pass.
* Make password reset styles consistent with new global styles. (#120)
The changes include adding sentence casing and updating the styles of the and components.
* CHANGELOG for 3.5.0 (#121)
* Update fleetctl version number. Fix spelling error in changelog. (#122)
* Fix alt tag
* Set up pricing cards
* Match footer to bottom of gradient
* Set up FAQ and stub out chat button click
* Add chat, plus some other tweaks.
* fiddling with Papercups to hopefully get it to recognize who's responding from the Fleet side
* This isn't really a solution but it's the best we've got til Papercups is hacked to allow programmatic opening (or til we switch to something else, or just bring in the traditional contact form)
* trivial
* Temporary workaround using an undocumented API in papercups
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Co-authored-by: Rachael McNeil <r@rachael.wtf>
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
2021-01-01 02:28:18 +00:00
<% /* Chat (Papercups) */ %>
2021-01-04 21:20:17 +00:00
<script>window.Papercups = { config: { accountId: '5b59eeac-1578-4fdb-b946-e17c1dca0c51', requireEmailUpfront: true } };</script>
Add chat to website (#165)
* prevent eslintrc conflicts
* Pricing + chat for website (#124)
* Update manage users styles. Implement table (list) view. (#104)
The goal of this PR is to change the layout of the manage users to a table (list view).
Move the user actions into the table view.
Move EditUserForm into a Modal
Update styles for InviteUserForm
Edit copy for the configuring SMTP warning.
* Update query page (edit, new, manage) and packs page (edit, new, manage) styles. (#106)
The goal of this PR is to update the style across the query and packs pages so they are consistent with the latest global styles (colors, buttons, and fonts).
* Update app settings page and osquery options page styles. (#107)
The goal of this PR is to implement the new global styling (colors, buttons, and fonts) to the "App settings" and "Osquery options" pages. These pages are only visible to users granted an admin role.
* Fix and clarify API auth documentation (#109)
- Fix header name.
- Add note about SSO auth.
* New styles for 404, 500, Login, User settings, and Confirm invite pages. (#108)
- Kolide404 and Kolide500 components renamed to Fleet404 and Fleet500
- Styling for Login and Confirm invite pages are consistent with the recent changes to the Setup page.
- Add "*" character to the 404 <Route />'s path property. Now the 404 page renders when there is no exact path match.
* Fix JSON in rest-endpoints.md (#110)
* Add host enrollment cooldown period (#112)
This addresses an issue some users experienced in which performance
problems were encountered when hosts were "competing" for enrollment
using the same osquery host identifier. The issue is addressed by adding
a cooldown period for host enrollment, preventing the same (as judged by
osquery host identifier) host from enrolling more than once per minute.
When users end up in the problematic scenario, they will see quite a bit
of error logs due to this issue. For now that's probably a good thing as
users need to be aware of the lack of visibility. We can explore rate
limiting the logging if that becomes an issue for someone.
Fixes #102
* Improve MySQL transaction error logging (#113)
Clarify what exactly happened when logging these errors.
* Migrate remaining URLs to fleetdm.com (#116)
* Clean up unused test/demo SQL data (#117)
* Add style fixes caught during QA. Add favicon. (#119)
Changes include style fixes that were caught during a QA pass.
* Make password reset styles consistent with new global styles. (#120)
The changes include adding sentence casing and updating the styles of the and components.
* CHANGELOG for 3.5.0 (#121)
* Update fleetctl version number. Fix spelling error in changelog. (#122)
* Fix alt tag
* Set up pricing cards
* Match footer to bottom of gradient
* Set up FAQ and stub out chat button click
* Add chat, plus some other tweaks.
* fiddling with Papercups to hopefully get it to recognize who's responding from the Fleet side
* This isn't really a solution but it's the best we've got til Papercups is hacked to allow programmatic opening (or til we switch to something else, or just bring in the traditional contact form)
* trivial
* Temporary workaround using an undocumented API in papercups
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Co-authored-by: Rachael McNeil <r@rachael.wtf>
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
2021-01-01 02:28:18 +00:00
<script type="text/javascript" async defer src="https://app.papercups.io/widget.js"></script>
2020-12-02 20:48:03 +00:00
<%/* Stripe.js */%>
<script src="https://js.stripe.com/v3/"></script>
<% /* 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>
<%/* 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+(?:\.
<% /* 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/cloud.js"></script>
2021-09-09 04:08:35 +00:00
<script src="/dependencies/docsearch.min.js"></script>
Put live documentation on fleetdm.com (#1380)
* minor clarifications
* further expand comments and stubs
* absorb custom titles embedded in metadata, plus further comment expansion and a followup fix for something i left hanging in f8cbc14829d91e7577c63307fd9c4346dbc229bb
* Skip non-markdown files and use real path maths
* Prep for running in parallel (Remove `continue` so this isn't dependent on the `for` loop)
* determine + track unique HTML output paths
* Compile markdown + spit out real HTML (without involving any but the crunchy nougaty dependency from the very center of everything)
* add md metadata parsing
* add timestamp
* Update build-static-content.js
* attach misc metadata as "other"
* how doc images might should work (this also aligns with how the select few images in the sailsjs.com docs work)
* add file extension to generated HTML files
* "options"=>"meta"
* Make "htmlId" useful for alphabetically sorting pages within their bottom-level section
See recent comments on https://github.com/fleetdm/fleet/issues/706 for more information.
* list out the most important, specific build-time transformations
* Omit ordering prefixes like "1-" from expected content page URLs
* add a little zone for consolidating backwards compatible permalinks
* interpret README.md files by mapping their URLs to match their containing folder
* clarify plan for images
* decrease probability of collisions
* Make capitalization smarter using known acronyms, proper nouns, and a smarter numeric word trim
* Resolve app path in case pwd is different in prod
* Delete HTML output from previous runs, if any
* condense the stuff about github emojis
* got rid of "permalink" thing, since id gets automatically attached during markdown compilation anyway
Also "permalink" isn't even a good name for what this is. See https://github.com/fleetdm/fleet/issues/706#issuecomment-884693931
* …and that eliminates the need for the cheerio dep!
* Bring in bubbles+syntax highlighting into build script, and remove sails.helpers.compileMarkdownContent() -- this leaves link munging as a todo though
* trivial (condense comments)
* Remove unused code from toHtml() helper
* Implemented target="_blank" and root-relative-ification
* remove todo about emojis after testing and verifying it works just fine
* trivial: add link to comment in case github emojis matter at some point
* consolidate "what ifs" in comments
* Leave this up to Sarah, for now. (Either bring it back here in the build script or do it all on the frontend)
* Enable /docs and /handbook routes, and add example of a redirect for a legacy/deprecated URL
* implement routing
* Upgrade deps
this takes advantages of the latest work from @eashaw, @rachaelshaw, and the rest of the Sails community
* tweak var names and comments
* make readme pages use their folder names to determine their default (fallback) titles
as discussed in https://github.com/fleetdm/fleet/issues/706#issuecomment-884788002
* first (good enough for now) pass at link rewriting
as discussed in https://github.com/fleetdm/fleet/issues/706#issuecomment-884742072
* Adapt docs pages to build from markdown output
* Continue work on docs pages
* Add landing page
* Remove unused code; minor changes
* Replace regex
* fixes https://github.com/fleetdm/fleet/pull/1380#issuecomment-891429581
* Don't rely on "path" being a global var
* Syle fleetdm doc pages
* Continue work on docs pages
* Fix linting error
* Disable lesshint style warnings
* parasails-has-no-page-script attribute
Added a parasails-has-no-page-script attribute to the docs template, added a check for that attribute in parasails.js and removed the empty page script for 498
* bring in latest parasails dep
* trivial
* Update links to dedupe and not open in new tab unless actually external
* Disable handbook for now til styles are ready
* fix CTA links
* trivial
* make sitemap.xml get served in prod
* hide search boxes for now, remove hard-coded version and make releases open in new tab
* clean out unused files
Co-authored-by: gillespi314 <73313222+gillespi314@users.noreply.github.com>
Co-authored-by: eashaw <caglc@live.com>
2021-08-18 00:55:13 +00:00
<script src="/dependencies/highlight.min.js"></script>
2020-12-02 20:48:03 +00:00
<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/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/contact.page.js"></script>
<script src="/js/pages/dashboard/welcome.page.js"></script>
2021-05-20 08:22:42 +00:00
<script src="/js/pages/docs/basic-documentation.page.js"></script>
2020-12-02 20:48:03 +00:00
<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>
2021-05-26 08:24:38 +00:00
<script src="/js/pages/handbook/basic-handbook.page.js"></script>
2020-12-02 20:48:03 +00:00
<script src="/js/pages/homepage.page.js"></script>
<script src="/js/pages/legal/privacy.page.js"></script>
<script src="/js/pages/legal/terms.page.js"></script>
2021-09-09 21:56:29 +00:00
<script src="/js/pages/press-kit.page.js"></script>
2021-04-02 20:12:28 +00:00
<script src="/js/pages/pricing.page.js"></script>
2021-05-10 04:48:59 +00:00
<script src="/js/pages/query-detail.page.js"></script>
2021-05-20 08:22:42 +00:00
<script src="/js/pages/query-library.page.js"></script>
2021-07-15 14:48:21 +00:00
<script src="/js/pages/transparency.page.js"></script>
2020-12-02 20:48:03 +00:00
<!--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',
2021-08-30 07:31:53 +00:00
// msie: '11',
2020-12-02 20:48:03 +00:00
safari: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect
firefox: '28',//« earliest version to support both ES5 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
chrome: '29',//« earliest version to support both ES5 (for Vue.js) and unprefixed flexbox (for Bootstrap 4)
opera: '17',//« earliest version to support both ES5 (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,
2021-08-30 07:31:53 +00:00
// 'internet explorer': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msie,
2020-12-02 20:48:03 +00:00
'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 = (
2021-08-31 23:33:06 +00:00
bowser.isUnsupportedBrowser(LATEST_SUPPORTED_VERSION_BY_USER_AGENT, window.navigator.userAgent) || bowser.msie
2020-12-02 20:48:03 +00:00
);
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://sailsjs.com/support">'+
'<img style="display: block; height: 75px; width: auto; margin: 0 auto 15px;" alt="Logo" src="data:image/png;base64,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
'</a>'+
' <h5 class="card-title">This '+(isUnsupportedBrowser ? 'browser' : 'operating system')+' is not supported.</h5>'+
' <p style="max-width: 500px; margin-left: auto; margin-right: auto;">'+
' This app does not currently support '+(
2021-08-31 23:33:06 +00:00
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>'
2020-12-02 20:48:03 +00:00
:
2021-08-31 23:33:06 +00:00
'<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-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>'
2020-12-02 20:48:03 +00:00
)+
'</div>';
document.body.style.padding = '75px 0';
}
}
Add chat to website (#165)
* prevent eslintrc conflicts
* Pricing + chat for website (#124)
* Update manage users styles. Implement table (list) view. (#104)
The goal of this PR is to change the layout of the manage users to a table (list view).
Move the user actions into the table view.
Move EditUserForm into a Modal
Update styles for InviteUserForm
Edit copy for the configuring SMTP warning.
* Update query page (edit, new, manage) and packs page (edit, new, manage) styles. (#106)
The goal of this PR is to update the style across the query and packs pages so they are consistent with the latest global styles (colors, buttons, and fonts).
* Update app settings page and osquery options page styles. (#107)
The goal of this PR is to implement the new global styling (colors, buttons, and fonts) to the "App settings" and "Osquery options" pages. These pages are only visible to users granted an admin role.
* Fix and clarify API auth documentation (#109)
- Fix header name.
- Add note about SSO auth.
* New styles for 404, 500, Login, User settings, and Confirm invite pages. (#108)
- Kolide404 and Kolide500 components renamed to Fleet404 and Fleet500
- Styling for Login and Confirm invite pages are consistent with the recent changes to the Setup page.
- Add "*" character to the 404 <Route />'s path property. Now the 404 page renders when there is no exact path match.
* Fix JSON in rest-endpoints.md (#110)
* Add host enrollment cooldown period (#112)
This addresses an issue some users experienced in which performance
problems were encountered when hosts were "competing" for enrollment
using the same osquery host identifier. The issue is addressed by adding
a cooldown period for host enrollment, preventing the same (as judged by
osquery host identifier) host from enrolling more than once per minute.
When users end up in the problematic scenario, they will see quite a bit
of error logs due to this issue. For now that's probably a good thing as
users need to be aware of the lack of visibility. We can explore rate
limiting the logging if that becomes an issue for someone.
Fixes #102
* Improve MySQL transaction error logging (#113)
Clarify what exactly happened when logging these errors.
* Migrate remaining URLs to fleetdm.com (#116)
* Clean up unused test/demo SQL data (#117)
* Add style fixes caught during QA. Add favicon. (#119)
Changes include style fixes that were caught during a QA pass.
* Make password reset styles consistent with new global styles. (#120)
The changes include adding sentence casing and updating the styles of the and components.
* CHANGELOG for 3.5.0 (#121)
* Update fleetctl version number. Fix spelling error in changelog. (#122)
* Fix alt tag
* Set up pricing cards
* Match footer to bottom of gradient
* Set up FAQ and stub out chat button click
* Add chat, plus some other tweaks.
* fiddling with Papercups to hopefully get it to recognize who's responding from the Fleet side
* This isn't really a solution but it's the best we've got til Papercups is hacked to allow programmatic opening (or til we switch to something else, or just bring in the traditional contact form)
* trivial
* Temporary workaround using an undocumented API in papercups
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Co-authored-by: Rachael McNeil <r@rachael.wtf>
Co-authored-by: Rachael Shaw <rachaelshaw@users.noreply.github.com>
2021-01-01 02:28:18 +00:00
})();
2020-12-02 20:48:03 +00:00
</script>
</body>
</html>