Commit graph

7 commits

Author SHA1 Message Date
Eric
30f90c8216
Website: Remove "explore data" pages (#19777)
Related to: https://github.com/fleetdm/confidential/issues/5573

Changes:
- Deleted /explore-data pages and related files
- Added redirects for removed pages.
- Removed all explore data related website configuration in the
build-static-content script.
- Removed the explore data section of the custom configuration.
2024-06-14 17:50:07 -05:00
Eric
b36256a053
Website: Update /try-fleet (#17608)
Changes:
- Added `/start`, a page where users can choose whether to run a local
demo of Fleet, or purchase a Fleet Premium license
- Updated all "Try it now" links to go to the `/register` page.
- Updated the URL and added redirects:
   - `/customers/new-license` » `/new-license`
   - `/try-fleet/fleetctl-preview` » `/try-fleet`
   - `/customers/register` » `/register`
   - `/customers/login` » `/login`
- Removed the `/try-fleet/login` and `/try-fleet/register` pages
- Updated the /try-fleet/explore-data pages to redirect logged-out-users
to the /register page
- Updated policies, routes, and importer.less

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2024-03-14 10:28:23 -05:00
Eric
39f9c50cda
Website: Update /try-fleet/explore-data redirect (#15739)
Closes: #15728

Changes:
- Updated `view-query-report.js` to redirect non-logged in users who
visit `/try-fleet/explore-data/*` to `/try-fleet/register`
2023-12-19 17:52:38 -06:00
Eric
2db26cd44e
Website: Add "Explore data" (#15400)
Closes: #14847

Changes:
- Added two new pages:
- `/try-fleet/explore-data`: A page where users can select a host, and
be taken to a page where they can see query results for that host.
- `try-fleet/explore-data/:platformName/:tableName`: A page where users
can see the contents of osquery tables on hosts.
     - The view-action for this page will:
- Redirect unauthenticated users to the /try-fleet/login page. (With a
query parameter that will tell the login/register pages to redirect
users back to this page)
        - Get information for hosts on a specified team.
- Build a filtered list of osquery tables that are compatible with the
host and have queries that will run on a specified host.
- Get the latest query results for a specified query/osquery table for
the specified host, and reorder the results to match the order of the
columns in the osquery schema.
- Updated build-static-content to add information about osquery tables
for the /explore-data pages to
`sails.config.builtStaticContent.osqueryTables`.
- Added 5 new config variables:
- `sails.config.custom.fleetBaseUrlForQueryReports`: The URL of the
Fleet instance used for the /explore-data pages
- `sails.config.custom.fleetTokenForQueryReports`: An API token for the
Fleet instance used for the /explore-data pages
- `sails.config.custom.teamApidForQueryReports`: the API ID of the team
that the hosts listed on the explore-data page are in.
- `sails.config.custom.queryIdsByTableName`: A dictionary containing
key:value pairs where each key is the name of an osquery table, and the
value is the API ID of the query that gets results for this table in a
Fleet instance. This is stored in the custom configuration to make it
easily editable (If we ever need to add or remove queries
- `sails.config.custom.hostIdsByHostPlatform`: A dictionary containing
key:value pairs where each key is a type of operating system, and the
value is the API ID of a Host.
- Updated the `/try-fleet` redirect to go to `/try-fleet/explore-data`
- Updated the "try it out" button links to go to `/try-fleet`
- Updated /try-fleet/login and /try-fleet/register to send users who are
redirected to the page via the /explore-data page to the page they had
tried to navigate to when they log in/create an account.


I'm creating this as a PR as a draft. It will be ready to merge when we:
- [x] Add hosts to the "Explore data (fleetdm.com) [DO NOT DELETE]" team
- [x] Create queries for every compatible osquery table for the "Explore
data (fleetdm.com) [DO NOT DELETE]" team.
- [ ] Add a `sails.config.custom.queryIdsByTableName` config variable
with the query IDs for the queries created in the previous step
- [ ] Add `sails.config.custom.hostIdsByHostPlatform` config variable
with the real host IDs/platforms
2023-12-11 15:29:30 -06:00
Eric
4a6bf0d447
2023-10-24 Website: Update /try-fleet (#14638)
Closes: https://github.com/fleetdm/confidential/issues/4015

Changes:
- Changed the url for `/fleetctl-preview` to
`/try-fleet/fleetctl-preview`
- Updated the controller for the `/fleetctl-preview` page to redirect
non-logged-in users to `/try-fleet/login`
- Removed the route for `/try-fleet/sandbox-expired`, and added a
redirect going to `/try-fleet/fleetctl-preview`.
- Updated the controller for `/try-fleet/sandbox` to redirect the users
without a non-expired Sandbox instance to `/try-fleet/fleetctl-preview`.
- Updated `signup.js` to not provision Fleet sandbox instances for
users.
- Updated the `User` model to support a third `signupReason`: "Try
Fleet"
- Updated `/try-fleet/register` to submit "Try Fleet" as a
`signupReason` when users sign up.
- Renamed the files for the `/fleetctl-preview` page (`get-started` »
`fleetctl-preview`)
- Updated/removed Fleet Sandbox related handbook sections.
- Replaced the "Fleet vs Fleet Sandbox" section in the deploying
documentation with a note about `fleetctl preview`.
- Updated links to Fleet Sandbox in articles.

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2023-10-20 13:59:18 -05:00
Eric
47227d7bd3
Website: add Fleet Sandbox waitlist (#13028)
Changes:
- Added a new config variable:
`sails.config.custom.fleetSandboxWaitlistEnabled`
- Added a new attribute to the website's `user` model:
`inSandboxWaitlist`
- Updated `signup.js` to create user accounts without a Fleet sandbox
instance and `inSandboxWaitlist` set to true if
`sails.config.custom.fleetSandboxWaitlistEnabled` is true.
- Added /try-fleet/waitlist, a page that shows a message to users who
have been added to the Fleet sandbox waitlist.
- renamed`view-sandbox-teleporter-or-redirect-because-expired.js` to
`view-sandbox-teleporter-or-redirect-because-expired-or-waitlist.js` and
updated it to redirect users who are on the Fleet Sandbox waitlist to
/try-fleet/waitlist

Before this PR can be merged, we need to:
- [x] Add `sails.config.custom.fleetSandboxWaitlistEnabled` config
variable in Heroku.
- [x] Add the new attribute to the user table in the website's database
- [x] Update existing `user` records to have the new attribute (set to
false)
..
2023-07-28 18:56:54 -05:00
Eric
7974bdfa80
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 d5a1280759.

* 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 6297c33892.

* Revert "Revert "Provision Fleet sandbox for users logging in""

This reverts commit c2a2567b68.

* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""

This reverts commit acc178ea76.

* 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 17:31:01 -05:00