2020-12-02 20:48:03 +00:00
/ * *
* Route Mappings
* ( sails . config . routes )
*
* Your routes tell Sails what to do each time it receives a request .
*
* For more information on configuring custom routes , check out :
* https : //sailsjs.com/anatomy/config/routes-js
* /
module . exports . routes = {
// ╦ ╦╔═╗╔╗ ╔═╗╔═╗╔═╗╔═╗╔═╗
// ║║║║╣ ╠╩╗╠═╝╠═╣║ ╦║╣ ╚═╗
// ╚╩╝╚═╝╚═╝╩ ╩ ╩╚═╝╚═╝╚═╝
2021-09-16 07:23:59 +00:00
'GET /' : {
action : 'view-homepage-or-redirect' ,
locals : { isHomepage : true }
} ,
2020-12-02 20:48:03 +00:00
2021-09-16 07:23:59 +00:00
'GET /company/contact' : {
action : 'view-contact' ,
2021-10-11 05:42:07 +00:00
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Contact us | Fleet for osquery' ,
2021-10-01 02:14:02 +00:00
pageDescriptionForMeta : 'Get in touch with our team.'
2021-09-16 07:23:59 +00:00
}
} ,
2021-05-28 22:51:47 +00:00
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
'GET /fleetctl-preview' : {
action : 'view-get-started' ,
2021-10-11 05:42:07 +00:00
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'fleetctl preview | Fleet for osquery' ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
pageDescriptionForMeta : 'Learn about getting started with Fleet using fleetctl.'
2021-09-16 07:23:59 +00:00
}
} ,
2021-07-09 05:58:40 +00:00
2021-09-16 07:23:59 +00:00
'GET /pricing' : {
action : 'view-pricing' ,
2021-10-11 05:42:07 +00:00
locals : {
2023-02-11 00:33:12 +00:00
currentSection : 'pricing' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Pricing | Fleet for osquery' ,
2021-10-01 02:14:02 +00:00
pageDescriptionForMeta : 'View Fleet plans and pricing details.'
2021-09-16 07:23:59 +00:00
}
} ,
2021-10-04 04:28:20 +00:00
'GET /logos' : {
2021-09-16 07:23:59 +00:00
action : 'view-press-kit' ,
2021-10-11 05:42:07 +00:00
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Logos | Fleet for osquery' ,
2021-10-01 02:14:02 +00:00
pageDescriptionForMeta : 'Download Fleet logos, wallpapers, and screenshots.'
2021-09-16 07:23:59 +00:00
}
} ,
'GET /queries' : {
action : 'view-query-library' ,
2021-10-11 05:42:07 +00:00
locals : {
2023-02-11 00:33:12 +00:00
currentSection : 'documentation' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Queries | Fleet for osquery' ,
2021-10-01 02:14:02 +00:00
pageDescriptionForMeta : 'A growing collection of useful queries for organizations deploying Fleet and osquery.'
2021-09-16 07:23:59 +00:00
}
} ,
'GET /queries/:slug' : {
action : 'view-query-detail' ,
2021-10-11 05:42:07 +00:00
locals : {
2023-02-11 00:33:12 +00:00
currentSection : 'documentation' ,
2021-10-11 05:42:07 +00:00
}
2021-09-16 07:23:59 +00:00
} ,
2023-06-22 21:05:32 +00:00
'r|^/((success-stories|securing|releases|engineering|guides|announcements|podcasts|report|deploy)/(.+))$|' : {
2022-04-22 17:27:03 +00:00
skipAssets : false ,
action : 'articles/view-basic-article' ,
2022-07-21 04:59:51 +00:00
} , // Handles /device-management/foo, /securing/foo, /releases/foo, /engineering/foo, /guides/foo, /announcements/foo, /deploy/foo, /podcasts/foo, /report/foo
2022-04-28 06:16:07 +00:00
2023-01-11 17:29:38 +00:00
'r|^/((success-stories|securing|releases|engineering|guides|announcements|articles|podcasts|report|deploy))/*$|category' : {
2022-04-28 06:16:07 +00:00
skipAssets : false ,
action : 'articles/view-articles' ,
} , // Handles the article landing page /articles, and the article cateogry pages (e.g. /device-management, /securing, /releases, etc)
2022-04-22 17:27:03 +00:00
2022-01-17 19:13:11 +00:00
'GET /docs/?*' : {
2021-09-16 07:23:59 +00:00
skipAssets : false ,
action : 'docs/view-basic-documentation' ,
2021-10-11 05:42:07 +00:00
locals : {
2023-02-11 00:33:12 +00:00
currentSection : 'documentation' ,
2021-10-11 05:42:07 +00:00
}
2022-01-17 19:13:11 +00:00
} , // handles /docs and /docs/foo/bar
2021-09-16 07:23:59 +00:00
Implement /handbook on fleetdm.com (#2230)
* uncomment handbook route, disable redirect, add link to top nav
* Handbook page, note: most of this is directly copied from the docs, build handbook
* added maintainer <meta> tags
* handbook styles
* handbook broken up into different files
* update handbook layout
* updating markdown files
* handbook layout, adjusted header margins to make room for handbook
* handling links to specific sections in markdown compilation
* lint fixes
* commented out search bar for now
* cleaned up page script
* update handbook and clean up styles
* Delete handbook.md
* updated product content from latest version
* clean up styles, remove hardcoded image widths
* markdown updates
* title and description for /handbook, removed commented out route
* fix styles on firefox, remove commented logs
* lint fix
* update class name
* fix broken link
* updated how hashes are handled in links, adjusted links in handbook
* lint fix
* updated function names, removed comments, small markdown syntax fix
* move handbook link into footer
2021-09-28 01:16:49 +00:00
'GET /handbook/?*' : {
skipAssets : false ,
action : 'handbook/view-basic-handbook' ,
2023-02-11 00:33:12 +00:00
locals : {
currentSection : 'community' ,
}
Implement /handbook on fleetdm.com (#2230)
* uncomment handbook route, disable redirect, add link to top nav
* Handbook page, note: most of this is directly copied from the docs, build handbook
* added maintainer <meta> tags
* handbook styles
* handbook broken up into different files
* update handbook layout
* updating markdown files
* handbook layout, adjusted header margins to make room for handbook
* handling links to specific sections in markdown compilation
* lint fixes
* commented out search bar for now
* cleaned up page script
* update handbook and clean up styles
* Delete handbook.md
* updated product content from latest version
* clean up styles, remove hardcoded image widths
* markdown updates
* title and description for /handbook, removed commented out route
* fix styles on firefox, remove commented logs
* lint fix
* update class name
* fix broken link
* updated how hashes are handled in links, adjusted links in handbook
* lint fix
* updated function names, removed comments, small markdown syntax fix
* move handbook link into footer
2021-09-28 01:16:49 +00:00
} , // handles /handbook and /handbook/foo/bar
2021-09-16 07:23:59 +00:00
'GET /transparency' : {
action : 'view-transparency' ,
2021-10-11 05:42:07 +00:00
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Transparency | Fleet for osquery' ,
2021-10-01 02:14:02 +00:00
pageDescriptionForMeta : 'Learn what data osquery can see.' ,
2021-09-16 07:23:59 +00:00
}
} ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
'GET /customers/new-license' : {
action : 'customers/view-new-license' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Get Fleet Premium | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'Generate your quote and start using Fleet Premium today.' ,
}
} ,
'GET /customers/register' : {
action : 'entrance/view-signup' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Sign up | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'Sign up for a Fleet Premium license.' ,
}
} ,
'GET /customers/login' : {
action : 'entrance/view-login' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Log in | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'Log in to the Fleet customer portal.' ,
}
} ,
'GET /customers/dashboard' : {
action : 'customers/view-dashboard' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Customer dashboard | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'View and edit information about your Fleet Premium license.' ,
}
} ,
'GET /customers/forgot-password' : {
action : 'entrance/view-forgot-password' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Forgot password | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'Recover the password for your Fleet customer account.' ,
}
} ,
'GET /customers/new-password' : {
action : 'entrance/view-new-password' ,
locals : {
layout : 'layouts/layout-customer' ,
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'New password | Fleet for osquery' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
pageDescriptionForMeta : 'Change the password for your Fleet customer account.' ,
}
} ,
2021-08-28 01:27:32 +00:00
2022-06-01 15:31:10 +00:00
'GET /reports/state-of-device-management' : {
action : 'reports/view-state-of-device-management' ,
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'State of device management | Fleet for osquery' ,
2022-06-21 16:12:21 +00:00
pageDescriptionForMeta : 'We surveyed 200+ security practitioners to discover the state of device management in 2022. Click here to learn about their struggles and best practices.' ,
headerCTAHidden : true ,
2022-06-01 15:31:10 +00:00
}
} ,
2022-06-24 05:50:44 +00:00
'GET /overview' : {
action : 'view-sales-one-pager' ,
locals : {
2022-09-29 21:41:00 +00:00
pageTitleForMeta : 'Overview | Fleet for osquery' ,
2022-06-24 05:50:44 +00:00
pageDescriptionForMeta : 'Fleet helps security and IT teams protect their devices. We\'re the single source of truth for workstation and server telemetry. Click to learn more!' ,
layout : 'layouts/layout-landing'
} ,
} ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
'GET /try-fleet/register' : {
action : 'try-fleet/view-register' ,
locals : {
layout : 'layouts/layout-sandbox' ,
2023-06-29 15:28:04 +00:00
pageTitleForMeta : 'Fleet Sandbox | Fleet for osquery' ,
pageDescriptionForMeta : 'Fleet Sandbox - The fastest way to test Fleet. Get up and running in minutes to try out Fleet.' ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
}
} ,
'GET /try-fleet/login' : {
action : 'try-fleet/view-sandbox-login' ,
locals : {
layout : 'layouts/layout-sandbox' ,
2023-06-29 15:28:04 +00:00
pageTitleForMeta : 'Log in to Fleet Sandbox | Fleet for osquery' ,
pageDescriptionForMeta : 'Log in to Fleet Sandbox.' ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
}
} ,
'GET /try-fleet/sandbox' : {
2023-07-28 23:56:54 +00:00
action : 'try-fleet/view-sandbox-teleporter-or-redirect-because-expired-or-waitlist' ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
locals : {
layout : 'layouts/layout-sandbox' ,
} ,
} ,
'GET /try-fleet/sandbox-expired' : {
action : 'try-fleet/view-sandbox-expired' ,
locals : {
layout : 'layouts/layout-sandbox' ,
} ,
} ,
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
2023-07-28 23:56:54 +00:00
'GET /try-fleet/waitlist' : {
action : 'try-fleet/view-waitlist' ,
locals : {
layout : 'layouts/layout-sandbox' ,
pageTitleForMeta : 'Fleet Sandbox waitlist | Fleet for osquery' ,
}
} ,
Website: Add script for creating HTML email partials from Markdown articles (#7574)
* add to-html-email
* email-preview
* add build-html-email script, update .gitignore
* email preview and email-templates pages, update routes, importer and policies
* add newsletter email layout, build-html-email script, to-html-email updates
* Update .gitignore
* add newsletter emails section to growth handbook
* update scripts
* update fonts in emails
* Update README.md
* Update build-html-email.js
* update comments, add page scripts to layouts
* revert change to build-static-content
* update script
* update email layout and helper
* update handbook entry
* update template data and helper
* update email layout
* update fake data and unsubscribe link
* move added handbook section to the marketing handbook
* rename script
* update colors in unused email template
* update capitalization in helper
* view-email-preview » view-email-template-preview
* Hide emails generated from markdown if they don't exist
* update preview page
* update markdown email directory, create sample article email
* lint fixes, add target="_blank" to links in emails
* update page layouts & styles
* update sample newsletter email, code font, newsletter layout
* Update README.md
* Update view-email-template-preview.js
Co-authored-by: Tim Kern <tim@fleetdm.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-12-05 22:30:24 +00:00
'GET /admin/email-preview' : {
action : 'admin/view-email-templates' ,
locals : {
layout : 'layouts/layout-customer'
} ,
} ,
'GET /admin/email-preview/*' : {
action : 'admin/view-email-template-preview' ,
skipAssets : true ,
locals : {
layout : 'layouts/layout-customer'
} ,
} ,
2023-08-04 23:32:00 +00:00
'GET /admin/sandbox-waitlist' : {
action : 'admin/view-sandbox-waitlist' ,
locals : {
layout : 'layouts/layout-customer'
} ,
} ,
2022-09-24 00:06:55 +00:00
'GET /tables/:tableName' : {
action : 'view-osquery-table-details' ,
2023-02-11 00:33:12 +00:00
locals : {
currentSection : 'documentation' ,
}
2022-09-24 00:06:55 +00:00
} ,
2022-12-05 20:53:16 +00:00
'GET /admin/generate-license' : {
action : 'admin/view-generate-license' ,
locals : {
layout : 'layouts/layout-customer'
}
} ,
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
2022-12-22 05:39:39 +00:00
'GET /connect-vanta' : {
action : 'view-connect-vanta' ,
locals : {
layout : 'layouts/layout-sandbox' ,
}
} ,
'GET /vanta-authorization' : {
action : 'view-vanta-authorization' ,
locals : {
layout : 'layouts/layout-sandbox' ,
}
} ,
2023-01-11 17:29:38 +00:00
'GET /device-management' : {
action : 'view-fleet-mdm' ,
locals : {
2023-02-10 19:08:59 +00:00
pageTitleForMeta : 'Device management | Fleet for osquery' ,
2023-06-29 15:28:04 +00:00
pageDescriptionForMeta : 'GitOps-driven MDM. Automate the management of your fleet of devices with increased visibility, control, and improved stability.' ,
2023-02-11 00:33:12 +00:00
currentSection : 'platform' ,
2023-01-11 17:29:38 +00:00
}
} ,
2023-01-31 23:53:09 +00:00
'GET /upgrade' : {
action : 'view-upgrade' ,
locals : {
pageTitleForMeta : 'Upgrade to Fleet Premium | Fleet for osquery' ,
pageDescriptionForMeta : 'Learn about the benefits of upgrading to Fleet Premium' ,
}
} ,
2023-02-13 23:06:02 +00:00
'GET /compliance' : {
action : 'view-compliance' ,
locals : {
currentSection : 'platform' ,
pageTitleForMeta : 'Security compliance | Fleet for osquery' ,
pageDescriptionForMeta : 'Automate security workflows by creating or installing policies to maintain your organization\'s compliance goals. Simplify security compliance with Fleet.' ,
}
} ,
2023-03-02 00:09:07 +00:00
'GET /osquery-management' : {
action : 'view-osquery-management' ,
locals : {
pageTitleForMeta : 'Osquery management | Fleet for osquery' ,
pageDescriptionForMeta : 'Fleet lets you harness the power of osquery to stream accurate, real-time data from all your endpoints.' ,
}
} ,
2023-05-30 00:42:21 +00:00
'GET /vulnerability-management' : {
action : 'view-vulnerability-management' ,
locals : {
pageTitleForMeta : 'Vulnerability management | Fleet for osquery' ,
pageDescriptionForMeta : 'Know what\’ s going on with your computers. Measure and automate risk across your laptops and servers.' ,
}
} ,
2023-06-29 15:28:04 +00:00
'GET /support' : {
action : 'view-support' ,
locals : {
pageTitleForMeta : 'Support | Fleet for osquery' ,
pageDescriptionForMeta : 'Ask a question, chat with other engineers, or get in touch with the Fleet team.' ,
currentSection : 'documentation' ,
}
} ,
2023-06-23 23:06:04 +00:00
2022-12-22 05:39:39 +00:00
2023-02-17 00:11:56 +00:00
// ╦╔╦╗╔═╗╔═╗╦╔╗╔╔═╗ ┌─┬ ┌─┐┌┐┌┌┬┐┬┌┐┌┌─┐ ┌─┐┌─┐┌─┐┌─┐┌─┐─┐
// ║║║║╠═╣║ ╦║║║║║╣ │ │ ├─┤│││ │││││││ ┬ ├─┘├─┤│ ┬├┤ └─┐ │
// ╩╩ ╩╩ ╩╚═╝╩╝╚╝╚═╝ └─┴─┘┴ ┴┘└┘─┴┘┴┘└┘└─┘ ┴ ┴ ┴└─┘└─┘└─┘─┘
'GET /imagine/unused-software' : { action : 'imagine/view-unused-software' } ,
2023-05-15 20:15:59 +00:00
'GET /imagine/higher-education' : {
action : 'imagine/view-higher-education' ,
locals : {
pageTitleForMeta : 'Fleet for higher education' ,
pageDescriptionForMeta : 'Automate security workflows in a single application by creating or installing policies to identify which devices comply with your security guidelines.' ,
}
} ,
2023-06-15 21:57:26 +00:00
'GET /imagine/rapid-7-alternative' : {
action : 'imagine/view-rapid-7-alternative' ,
locals : {
pageTitleForMeta : 'An open-source alternative to Rapid7' ,
pageDescriptionForMeta : 'Simplify vulnerability management with Fleet, an open-source platform with superior visibility.' ,
}
} ,
2023-07-24 19:42:46 +00:00
'GET /imagine/defcon-31' : {
action : 'imagine/view-defcon-31' ,
locals : {
pageTitleForMeta : 'Fleet at DefCon 31' ,
pageDescriptionForMeta : 'Find Fleet at DefCon and get a custom tee shirt.' ,
}
} ,
2023-08-01 22:03:10 +00:00
'GET /imagine/jamf-alternative' : {
action : 'imagine/view-jamf-alternative' ,
locals : {
pageTitleForMeta : 'An open-source alternative to Jamf' ,
pageDescriptionForMeta : 'Simplify vulnerability management with Fleet, an open-source platform with superior visibility.' ,
}
} ,
2023-05-03 23:51:01 +00:00
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
// ╦ ╔═╗╔═╗╔═╗╔═╗╦ ╦ ╦═╗╔═╗╔╦╗╦╦═╗╔═╗╔═╗╔╦╗╔═╗
// ║ ║╣ ║ ╦╠═╣║ ╚╦╝ ╠╦╝║╣ ║║║╠╦╝║╣ ║ ║ ╚═╗
// ╩═╝╚═╝╚═╝╩ ╩╚═╝ ╩ ╩╚═╚═╝═╩╝╩╩╚═╚═╝╚═╝ ╩ ╚═╝
// ┌─ ┌─┐┌─┐┬─┐ ┌┐ ┌─┐┌─┐┬┌─┬ ┬┌─┐┬─┐┌┬┐┌─┐ ┌─┐┌─┐┌┬┐┌─┐┌─┐┌┬┐ ─┐
// │ ├┤ │ │├┬┘ ├┴┐├─┤│ ├┴┐│││├─┤├┬┘ ││└─┐ │ │ ││││├─┘├─┤ │ │
// └─ └ └─┘┴└─ └─┘┴ ┴└─┘┴ ┴└┴┘┴ ┴┴└──┴┘└─┘ └─┘└─┘┴ ┴┴ ┴ ┴ ┴o ─┘
2021-08-28 01:27:32 +00:00
// Add redirects here for deprecated/legacy links, so that they go to an appropriate new place instead of just being broken when pages move or get renamed.
//
// For example:
// If we were going to change fleetdm.com/company/about to fleetdm.com/company/story, we might do something like:
// ```
// 'GET /company/about': '/company/story',
// ```
//
// Or another example, if we were to rename a doc page:
// ```
// 'GET /docs/using-fleet/learn-how-to-use-fleet': '/docs/using-fleet/fleet-for-beginners',
// ```
'GET /try-fleet' : '/get-started' ,
2022-09-30 22:01:49 +00:00
'GET /try' : '/get-started' ,
2021-10-22 18:43:24 +00:00
'GET /docs/deploying/fleet-public-load-testing' : '/docs/deploying/load-testing' ,
2022-01-17 19:13:11 +00:00
'GET /handbook/customer-experience' : '/handbook/customers' ,
2022-07-25 16:18:58 +00:00
'GET /handbook/brand' : '/handbook/digital-experience' ,
2022-07-26 05:26:22 +00:00
'GET /guides/deploying-fleet-on-aws-with-terraform' : '/deploy/deploying-fleet-on-aws-with-terraform' ,
'GET /guides/deploy-fleet-on-hetzner-cloud' : '/deploy/deploy-fleet-on-hetzner-cloud' ,
'GET /guides/deploying-fleet-on-render' : '/deploy/deploying-fleet-on-render' ,
'GET /use-cases/correlate-network-connections-with-community-id-in-osquery' : '/guides/correlate-network-connections-with-community-id-in-osquery' ,
'GET /use-cases/converting-unix-timestamps-with-osquery' : '/guides/converting-unix-timestamps-with-osquery' ,
'GET /use-cases/ebpf-the-future-of-osquery-on-linux' : '/securing/ebpf-the-future-of-osquery-on-linux' ,
'GET /use-cases/fleet-quick-tips-querying-procdump-eula-has-been-accepted' : '/guides/fleet-quick-tips-querying-procdump-eula-has-been-accepted' ,
'GET /use-cases/generate-process-trees-with-osquery' : '/guides/generate-process-trees-with-osquery' ,
'GET /use-cases/get-and-stay-compliant-across-your-devices-with-fleet' : '/securing/get-and-stay-compliant-across-your-devices-with-fleet' ,
'GET /use-cases/import-and-export-queries-and-packs-in-fleet' : '/guides/import-and-export-queries-and-packs-in-fleet' ,
2022-08-12 20:03:54 +00:00
'GET /guides/import-and-export-queries-and-packs-in-fleet' : '/guides/import-and-export-queries-in-fleet' ,
2022-07-26 05:26:22 +00:00
'GET /use-cases/locate-assets-with-osquery' : '/guides/locate-assets-with-osquery' ,
'GET /use-cases/osquery-a-tool-to-easily-ask-questions-about-operating-systems' : '/guides/osquery-a-tool-to-easily-ask-questions-about-operating-systems' ,
'GET /use-cases/osquery-consider-joining-against-the-users-table' : '/guides/osquery-consider-joining-against-the-users-table' ,
'GET /use-cases/stay-on-course-with-your-security-compliance-goals' : '/guides/stay-on-course-with-your-security-compliance-goals' ,
'GET /use-cases/using-elasticsearch-and-kibana-to-visualize-osquery-performance' : '/guides/using-elasticsearch-and-kibana-to-visualize-osquery-performance' ,
'GET /use-cases/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think' : '/securing/work-may-be-watching-but-it-might-not-be-as-bad-as-you-think' ,
2022-08-02 00:06:30 +00:00
'GET /docs/contributing/testing' : '/docs/contributing/testing-and-local-development' ,
2022-10-18 03:17:16 +00:00
'GET /handbook/sales' : '/handbook/customers#sales' ,
'GET /handbook/people' : '/handbook/business-operations' ,
2023-08-19 04:16:01 +00:00
'GET /handbook/people/ceo-handbook' : '/handbook/ceo' ,
'GET /handbook/company/ceo-handbook' : '/handbook/ceo' ,
2022-10-19 15:22:03 +00:00
'GET /handbook/growth' : '/handbook/marketing#growth' ,
'GET /handbook/community' : '/handbook/marketing#community' ,
'GET /handbook/digital-experience' : '/handbook/marketing#digital-experience' ,
'GET /handbook/digital-experience/article-formatting-guide' : '/handbook/marketing/article-formatting-guide' ,
2023-08-17 09:51:46 +00:00
'GET /handbook/marketing/commonly-used-terms' : '/handbook/company/communications#commonly-used-terms' ,
2023-08-19 04:16:01 +00:00
'GET /handbook/digital-experience/commonly-used-terms' : '/handbook/company/communications#commonly-used-terms' ,
2022-10-19 15:22:03 +00:00
'GET /handbook/digital-experience/how-to-submit-and-publish-an-article' : '/handbook/marketing/how-to-submit-and-publish-an-article' ,
2023-08-17 09:51:46 +00:00
'GET /handbook/marketing/markdown-guide' : '/handbook/company/communications#writing-in-fleet-flavored-markdown' ,
2023-08-19 04:16:01 +00:00
'GET /handbook/digital-experience/markdown-guide' : '/handbook/company/communications#writing-in-fleet-flavored-markdown' ,
2023-08-17 09:51:46 +00:00
'GET /handbook/marketing/content-style-guide' : '/handbook/company/communications#writing' ,
'GET /handbook/marketing/editor-guide/' : '/handbook/company/communications#github' ,
2023-08-19 04:16:01 +00:00
'GET /handbook/marketing/docs-handbook/' : '/handbook/company/communications#docs' ,
'GET /handbook/marketing/website-handbook/' : '/handbook/company/communications#website' ,
2022-10-19 15:22:03 +00:00
'GET /handbook/quality' : '/handbook/engineering#quality' ,
2023-01-11 17:29:38 +00:00
'GET /device-management/fleet-user-stories-f100' : '/success-stories/fleet-user-stories-wayfair' ,
'GET /device-management/fleet-user-stories-schrodinger' : '/success-stories/fleet-user-stories-wayfair' ,
'GET /device-management/fleet-user-stories-wayfair' : '/success-stories/fleet-user-stories-wayfair' ,
2023-01-26 20:54:46 +00:00
'GET /handbook/security' : '/handbook/business-operations/security' ,
2023-02-02 22:29:05 +00:00
'GET /handbook/security/security-policies' : '/handbook/business-operations/security-policies#information-security-policy-and-acceptable-use-policy' , // « reasoning: https://github.com/fleetdm/fleet/pull/9624
2023-01-27 16:41:32 +00:00
'GET /handbook/handbook' : '/handbook/company/handbook' ,
2023-07-25 23:22:11 +00:00
'GET /handbook/company/development-groups' : '/handbook/company/product-groups' ,
2023-05-03 14:39:05 +00:00
'GET /docs/using-fleet/mdm-macos-settings' : '/docs/using-fleet/mdm-custom-macos-settings' ,
2023-07-25 23:22:11 +00:00
'GET /platform' : '/' ,
2023-05-30 22:12:07 +00:00
'GET /handbook/company/senior-software-backend-engineer' : 'https://www.linkedin.com/posts/mikermcneil_in-addition-to-our-product-quality-specialist-activity-7067711903166279680-6CMH' ,
2023-08-19 04:16:01 +00:00
'GET /handbook/business-operations/ceo-handbook' : '/handbook/ceo' ,
'GET /handbook/business-operations/people-operations' : '/handbook/company/communications#hiring' ,
2023-07-27 22:40:01 +00:00
'GET /docs' : '/docs/get-started/why-fleet' ,
'GET /docs/get-started' : '/docs/get-started/why-fleet' ,
'GET /docs/rest-api' : '/docs/rest-api/rest-api' ,
'GET /docs/using-fleet' : '/docs/using-fleet/fleet-ui' ,
'GET /docs/configuration' : '/docs/configuration/fleet-server-configuration' ,
'GET /docs/contributing' : 'https://github.com/fleetdm/fleet/tree/main/docs/Contributing' ,
'GET /docs/deploy' : '/docs/deploy/introduction' ,
'GET /docs/using-fleet/faq' : '/docs/get-started/faq' ,
'GET /docs/using-fleet/monitoring-fleet' : '/docs/deploy/monitoring-fleet' ,
'GET /docs/using-fleet/adding-hosts' : '/docs/using-fleet/enroll-hosts' ,
'GET /docs/using-fleet/teams' : '/docs/using-fleet/segment-hosts' ,
'GET /docs/using-fleet/permissions' : '/docs/using-fleet/manage-access' ,
'GET /docs/using-fleet/chromeos' : '/docs/using-fleet/enroll-chromebooks' ,
'GET /docs/using-fleet/rest-api' : '/docs/rest-api/rest-api' ,
'GET /docs/using-fleet/configuration-files' : '/docs/configuration/configuration-files/' ,
'GET /docs/using-fleet/application-security' : '/handbook/business-operations/application-security' ,
'GET /docs/using-fleet/security-audits' : '/handbook/business-operations/security-audits' ,
'GET /docs/using-fleet/process-file-events' : '/guides/querying-process-file-events-table-on-centos-7' ,
'GET /docs/using-fleet/audit-activities' : '/docs/using-fleet/audit-logs' ,
'GET /docs/using-fleet/detail-queries-summary' : '/docs/using-fleet/understanding-host-vitals' ,
2023-07-22 00:33:31 +00:00
'GET /docs/using-fleet/orbit' : '/docs/using-fleet/fleetd' ,
2023-07-27 22:40:01 +00:00
'GET /docs/deploying' : '/docs/deploy' ,
'GET /docs/deploying/faq' : '/docs/get-started/faq' ,
'GET /docs/deploying/introduction' : '/docs/deploy/introduction' ,
'GET /docs/deploying/reference-architectures' : '/docs/deploy/reference-architectures ' ,
'GET /docs/deploying/upgrading-fleet' : '/docs/deploy/upgrading-fleet' ,
'GET /docs/deploying/server-installation' : '/docs/deploy/server-installation' ,
'GET /docs/deploying/cloudgov' : '/docs/deploy/cloudgov' ,
'GET /docs/deploying/configuration' : '/docs/configuration/fleet-server-configuration' ,
'GET /docs/deploying/fleetctl-agent-updates' : '/docs/using-fleet/update-agents' ,
'GET /docs/deploying/debugging' : '/handbook/engineering/debugging' ,
'GET /docs/deploying/load-testing' : '/handbook/engineering/load-testing' ,
'GET /docs/contributing/configuration' : '/docs/configuration/configuration-files' ,
'GET /docs/contributing/*' : {
skipAssets : true ,
fn : ( req , res ) => {
return res . redirect ( 'https://github.com/fleetdm/fleet/tree/main/docs/Contributing' ) ;
}
} ,
2023-07-22 00:33:31 +00:00
'GET /docs/contributing/orbit-development-and-release-strategy' : '/docs/contributing/fleetd-development-and-release-strategy' ,
'GET /docs/contributing/run-locally-built-orbit' : '/docs/contributing/run-locally-built-fleetd' ,
2023-08-31 15:15:52 +00:00
'GET /deploy/deploying-fleet-on-render' : '/docs/deploy/deploy-on-render' ,
2023-08-31 00:17:22 +00:00
'GET /deploy/deploy-fleet-on-hetzner-cloud' : '/docs/deploy/deploy-on-hetzner-cloud' ,
'GET /deploy' : '/docs/deploy' ,
2023-08-31 00:11:19 +00:00
'GET /deploy/deploying-fleet-on-aws-with-terraform' : '/docs/deploy/deploy-on-aws-with-terraform' ,
2023-08-16 22:26:27 +00:00
'GET /docs/deploy/server-installation' : '/docs/deploy/introduction' ,
2023-08-20 18:13:28 +00:00
'GET /handbook/company/ceo' : '/handbook/ceo' ,
2020-12-02 20:48:03 +00:00
// ╔╦╗╦╔═╗╔═╗ ╦═╗╔═╗╔╦╗╦╦═╗╔═╗╔═╗╔╦╗╔═╗ ┬ ╔╦╗╔═╗╦ ╦╔╗╔╦ ╔═╗╔═╗╔╦╗╔═╗
// ║║║║╚═╗║ ╠╦╝║╣ ║║║╠╦╝║╣ ║ ║ ╚═╗ ┌┼─ ║║║ ║║║║║║║║ ║ ║╠═╣ ║║╚═╗
// ╩ ╩╩╚═╝╚═╝ ╩╚═╚═╝═╩╝╩╩╚═╚═╝╚═╝ ╩ ╚═╝ └┘ ═╩╝╚═╝╚╩╝╝╚╝╩═╝╚═╝╩ ╩═╩╝╚═╝
2021-05-06 02:27:58 +00:00
// Convenience
2021-08-28 01:27:32 +00:00
// =============================================================================================================
// Things that people are used to typing in to the URL and just randomly trying.
//
// For example, a clever user might try to visit fleetdm.com/documentation, not knowing that Fleet's website
// puts this kind of thing under /docs, NOT /documentation. These "convenience" redirects are to help them out.
2023-03-17 00:21:47 +00:00
'GET /renew' : 'https://calendly.com/zayhanlon/fleet-renewal-discussion' ,
2021-08-28 01:27:32 +00:00
'GET /documentation' : '/docs' ,
2022-02-24 02:30:24 +00:00
'GET /contribute' : '/docs/contributing' ,
2022-08-29 23:23:32 +00:00
'GET /install' : '/fleetctl-preview' ,
2021-08-28 01:27:32 +00:00
'GET /company' : '/company/about' ,
'GET /company/about' : '/handbook' , // FUTURE: brief "about" page explaining the origins of the company
'GET /contact' : '/company/contact' ,
'GET /legal' : '/legal/terms' ,
'GET /terms' : '/legal/terms' ,
2022-03-24 20:00:28 +00:00
'GET /handbook/security/github' : '/handbook/security#git-hub-security' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
'GET /login' : '/customers/login' ,
2023-06-06 17:02:33 +00:00
'GET /slack' : 'https://join.slack.com/t/osquery/shared_invite/zt-1wkw5fzba-lWEyke60sjV6C4cdinFA1w' ,
2022-03-10 19:13:48 +00:00
'GET /docs/using-fleet/updating-fleet' : '/docs/deploying/upgrading-fleet' ,
2022-04-28 06:16:07 +00:00
'GET /blog' : '/articles' ,
'GET /brand' : '/logos' ,
2022-08-29 23:23:32 +00:00
'GET /get-started' : '/try-fleet/register' ,
2022-07-19 01:54:53 +00:00
'GET /g' : ( req , res ) => { let originalQueryStringWithAmp = req . url . match ( /\?(.+)$/ ) ? '&' + req . url . match ( /\?(.+)$/ ) [ 1 ] : '' ; return res . redirect ( 301 , sails . config . custom . baseUrl + '/?meet-fleet' + originalQueryStringWithAmp ) ; } ,
Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies
* add new pages to importer
* sandbox page
* login -> sandbox-login
* Update login.less
* psuedo-code/code comments
* remove sandbox page
* Revert "remove sandbox page"
This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.
* view action drafts
* delete forgot-password page
* two new actions + draft code
* change action name
* Draft view actions and page scripts
* Update signup.js
* update comments
* update signup & sandbox-login page script
* update helper comments
* update helper usage in comments
* view-sandbox » view-sandbox-or-redirect
* Update helpers, actions, and routes
* login » sandbox-login
* update attributes on user model
* update signup action
* update page scripts and importer
* Update view-register.js
* html + css
* update signup and view-sandbox-or-redirect
* Password reset
Update user's sandbox password when they have a sandbox instance
* add new-sandbox, update sandbox page
- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
- updated policies & routes
* layout and importer updates
* update sandbox-login links & page script
* update signup action
* change logout redirect location to homepage
* lint fixes
* lint fixes
* Update sandbox & sandbox-expired
* Comment updates
* update password requirements for existing pages
* remove /get-started route
* lint fixes
* replace env variable with url
* remove `required: false` from organization attribute on user model
* send redirectToSandbox from view instead of routes
* changes sandbox page name
* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request
* update environment variable name
* update authorization header
* remove /new-sandbox
* update unauthorized response to redirect to correct login screen
* update comments
* update layout
* replace new-sandbox redirects with consistency violation errors
* Provision Fleet sandbox for users logging in
* Revert "Provision Fleet sandbox for users logging in"
This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.
* Revert "Revert "Provision Fleet sandbox for users logging in""
This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.
* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""
This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.
* update sandbox-login mobile styles
* update sandbox-expired page to match latest wireframes
* remove required: false and planned changes comments, update signup errors and behavior
* update error
* lint fix on updated error
* Update error's indentation
* remove added forgot-password flow, add redirect for sandbox users changing their password
* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow
* update bootstrap to give admin user an expired sandbox
* Update signup.js
* remove unused exits, revert password recovery email changes
* required:false is implied if unspecified, so can be omitted
* Remove defaultsTo: '', since it is not needed
This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495
It also makes two other trivial changes.
* Eliminate another unnecessary require:false
I think this one is actually baked into the sails-generate template.
* remove custom password validation
* update page name (sandbox-teleporter) and view action name
* revert minor changes to existing files
* update sandbox login friendlyName
* Update unauthorized response to redirect to /login
* Delete new-sandbox.less
* update layouts and importer
* add /fleetctl-preview route for old get-started page, update sandbox route
* update signup action with changes from review, add retry() to cloud provisioner request
* Update routes.js
* add missing comma to route
* update layout, fix typo in signup
* Update sandbox-expired.ejs
* lint fixes
* Update download-sitemap.js
* small whitespace changes, regenerate cloud-sdk
* remove placeholder text in password inputs
* add loading spinner to sandbox teleporter
* add logout button to header nav
* hide header on sandbox-teleporter
* update errors, check if a user already exists before cloud provisioner request
* Update sandbox-teleporter.page.js
* Update sandbox-teleporter.page.js
* Update signup.js
* resize loading spinner, history.pushState() » history.replaceState()
* send users who reset their password back to the fleetdm.com homepage
* Add Zapier webhook request for sandbox signups
* rebuild-scloud-sdk after resolving merge conflict
* update zapier request error
* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem
* Update links to /get-started to go to /try-fleet/register, change /get-started redirect
* Revert changes to links
* add /test-fleet-sandbox redirect, revert /try-fleet redirect
* send logged out users to the sandbox login page when they go to /try-fleet/sandbox
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 22:31:01 +00:00
'GET /test-fleet-sandbox' : '/try-fleet/register' ,
2022-09-02 22:38:34 +00:00
'GET /unsubscribe' : ( req , res ) => { let originalQueryString = req . url . match ( /\?(.+)$/ ) ? req . url . match ( /\?(.+)$/ ) [ 1 ] : '' ; return res . redirect ( 301 , sails . config . custom . baseUrl + '/api/v1/unsubscribe-from-all-newsletters?' + originalQueryString ) ; } ,
2022-09-24 00:06:55 +00:00
'GET /tables' : '/tables/account_policy_data' ,
2023-04-14 19:01:42 +00:00
'GET /imagine/launch-party' : 'https://www.eventbrite.com/e/601763519887' ,
2023-08-09 14:47:47 +00:00
'GET /blackhat2023' : 'https://github.com/fleetdm/fleet/tree/main/tools/blackhat-mdm' , // Assets from @marcosd4h & @zwass Black Hat 2023 talk
2021-07-09 05:58:40 +00:00
2023-05-16 17:34:06 +00:00
// Fleet UI
// =============================================================================================================
// These are external links not maintained by Fleet. We can point the Fleet UI to redirects here instead of the
// original sources to help avoid broken links.
'GET /learn-more-about/chromeos-updates' : 'https://support.google.com/chrome/a/answer/6220366' ,
2021-07-09 05:58:40 +00:00
// Sitemap
2021-08-28 01:27:32 +00:00
// =============================================================================================================
// This is for search engines, not humans. Search engines know to visit fleetdm.com/sitemap.xml to download this
// XML file, which helps search engines know which pages are available on the website.
2021-07-09 05:58:40 +00:00
'GET /sitemap.xml' : { action : 'download-sitemap' } ,
2023-01-27 22:58:53 +00:00
// RSS feeds
// =============================================================================================================
'GET /rss/:categoryName' : { action : 'download-rss-feed' } ,
2021-08-28 01:27:32 +00:00
// Potential future pages
// =============================================================================================================
// Things that are not webpages here (in the Sails app) yet, but could be in the future. For now they are just
// redirects to somewhere else EXTERNAL to the Sails app.
'GET /security' : 'https://github.com/fleetdm/fleet/security/policy' ,
2023-05-31 23:17:43 +00:00
'GET /trust' : 'https://trust.fleetdm.com' ,
'GET /status' : 'https://status.fleetdm.com' ,
2021-08-28 01:27:32 +00:00
'GET /hall-of-fame' : 'https://github.com/fleetdm/fleet/pulse' ,
2023-02-17 23:44:15 +00:00
'GET /apply' : '/jobs' ,
'GET /jobs' : 'https://fleetdm.com/handbook/company#open-positions' ,
2021-08-28 01:27:32 +00:00
'GET /company/stewardship' : 'https://github.com/fleetdm/fleet' , // FUTURE: page about how we approach open source and our commitments to the community
'GET /legal/terms' : 'https://docs.google.com/document/d/1OM6YDVIs7bP8wg6iA3VG13X086r64tWDqBSRudG4a0Y/edit' ,
2021-10-29 00:53:20 +00:00
'GET /legal/privacy' : 'https://docs.google.com/document/d/17i_g1aGpnuSmlqj35-yHJiwj7WRrLdC_Typc1Yb7aBE/edit' ,
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
'GET /logout' : '/api/v1/account/logout' ,
2022-07-21 07:23:35 +00:00
'GET /defcon' : 'https://kqphpqst851.typeform.com/to/Y6NYxM5A' ,
2022-08-05 20:23:59 +00:00
'GET /osquery-stickers' : 'https://kqphpqst851.typeform.com/to/JxJ8YnxG' ,
'GET /swag' : 'https://kqphpqst851.typeform.com/to/Y6NYxM5A' ,
2023-06-06 17:02:33 +00:00
'GET /community' : 'https://join.slack.com/t/osquery/shared_invite/zt-1wkw5fzba-lWEyke60sjV6C4cdinFA1w' ,
2021-05-26 08:24:38 +00:00
2022-09-24 00:06:55 +00:00
2020-12-02 20:48:03 +00:00
// ╦ ╦╔═╗╔╗ ╦ ╦╔═╗╔═╗╦╔═╔═╗
// ║║║║╣ ╠╩╗╠═╣║ ║║ ║╠╩╗╚═╗
// ╚╩╝╚═╝╚═╝╩ ╩╚═╝╚═╝╩ ╩╚═╝
2021-08-06 07:52:02 +00:00
'POST /api/v1/webhooks/receive-usage-analytics' : { action : 'webhooks/receive-usage-analytics' , csrf : false } ,
'/api/v1/webhooks/github' : { action : 'webhooks/receive-from-github' , csrf : false } ,
2023-01-07 00:36:29 +00:00
'POST /api/v1/webhooks/receive-from-stripe' : { action : 'webhooks/receive-from-stripe' , csrf : false } ,
2023-05-25 20:58:58 +00:00
'POST /api/v1/webhooks/receive-from-customer-fleet-instance' : { action : 'webhooks/receive-from-customer-fleet-instance' , csrf : false } ,
2020-12-02 20:48:03 +00:00
// ╔═╗╔═╗╦ ╔═╗╔╗╔╔╦╗╔═╗╔═╗╦╔╗╔╔╦╗╔═╗
// ╠═╣╠═╝║ ║╣ ║║║ ║║╠═╝║ ║║║║║ ║ ╚═╗
// ╩ ╩╩ ╩ ╚═╝╝╚╝═╩╝╩ ╚═╝╩╝╚╝ ╩ ╚═╝
// Note that, in this app, these API endpoints may be accessed using the `Cloud.*()` methods
// from the Parasails library, or by using those method names as the `action` in <ajax-form>.
Add customer portal and license dispenser to fleetdm.com (#3546)
* Add images for customer portal, dashboard, and email templates
* updated email layout and reset password template, new email template
* update ajax-button component to have an optional spinner
* updated cloud-error & stripe-card-element component styles
* updates to user model, add quote and subscription
* Login, signup, forgot password, update profile
* link to customer portal from pricing
* new-license page, bootstrap updates
* create quote action, dashboard page, update routes
* Add new page styles to importer, update component styles
* updates to js-timestamp
* update modal styles and layout
* using @submitted on ajax form, controller updates
* Update create-quote.js
* updates to quote model, action updates, truncate license key on dashboard
* update email layout, subscribe action, user model
* Update importer.less
* style updates, order confirmation
* use correct font
* style updates
* create license key
* new-license page changes
* signup page changes
* add billing format to js-timestamp component, dashboard updates, change password
* swap get started link for customers
* order -> subscription
* Update login.ejs
* Lint fixes, page updates, mobile styles
* remove edit-profile route, update layout, bootstrap, forms
* change customer-layout name to match other layout names, update copyright year in layouts
* changes requested from code review and #3570
* submit button width, contact font-size
* Update dashboard.less
* Update bootstrap-overrides.less
* slack logo update, login text
2022-01-05 02:02:42 +00:00
'POST /api/v1/deliver-contact-form-message' : { action : 'deliver-contact-form-message' } ,
'POST /api/v1/entrance/send-password-recovery-email' : { action : 'entrance/send-password-recovery-email' } ,
'POST /api/v1/customers/signup' : { action : 'entrance/signup' } ,
'POST /api/v1/account/update-profile' : { action : 'account/update-profile' } ,
'POST /api/v1/account/update-password' : { action : 'account/update-password' } ,
'POST /api/v1/account/update-billing-card' : { action : 'account/update-billing-card' } ,
'POST /api/v1/customers/login' : { action : 'entrance/login' } ,
'/api/v1/account/logout' : { action : 'account/logout' } ,
'POST /api/v1/customers/create-quote' : { action : 'customers/create-quote' } ,
'POST /api/v1/customers/save-billing-info-and-subscribe' : { action : 'customers/save-billing-info-and-subscribe' } ,
'POST /api/v1/entrance/update-password-and-login' : { action : 'entrance/update-password-and-login' } ,
2022-02-16 02:15:55 +00:00
'POST /api/v1/deliver-demo-signup' : { action : 'deliver-demo-signup' } ,
2022-09-02 22:38:34 +00:00
'POST /api/v1/create-or-update-one-newsletter-subscription' : { action : 'create-or-update-one-newsletter-subscription' } ,
2022-12-05 20:53:16 +00:00
'/api/v1/unsubscribe-from-all-newsletters' : { action : 'unsubscribe-from-all-newsletters' } ,
2023-08-04 19:48:29 +00:00
'POST /api/v1/admin/build-license-key' : { action : 'admin/build-license-key' } ,
2022-12-22 05:39:39 +00:00
'POST /api/v1/create-vanta-authorization-request' : { action : 'create-vanta-authorization-request' } ,
2023-01-11 17:29:38 +00:00
'POST /api/v1/deliver-mdm-beta-signup' : { action : 'deliver-mdm-beta-signup' } ,
2023-01-19 20:43:14 +00:00
'POST /api/v1/deliver-apple-csr ' : { action : 'deliver-apple-csr' , csrf : false } ,
2023-01-31 23:53:09 +00:00
'POST /api/v1/deliver-premium-upgrade-form' : { action : 'deliver-premium-upgrade-form' } ,
2023-03-28 17:20:00 +00:00
'POST /api/v1/deliver-launch-party-signup' : { action : 'imagine/deliver-launch-party-signup' } ,
2023-06-16 20:08:24 +00:00
'POST /api/v1/deliver-mdm-demo-email' : { action : 'deliver-mdm-demo-email' } ,
2023-08-04 23:32:00 +00:00
'POST /api/v1/admin/provision-sandbox-instance-and-deliver-email' : { action : 'admin/provision-sandbox-instance-and-deliver-email' } ,
2020-12-02 20:48:03 +00:00
} ;