Commit graph

254 commits

Author SHA1 Message Date
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
f14ab358fe
2023-11-21 Website: Add new usage statistics (#15263)
Closes: #15255

Changes:
- Added the usage statistics added in
https://github.com/fleetdm/fleet/pull/14216 to the inputs of the
`receive-usage-analytics` webhook.
- Updated the `receive-usage-analytics` webhook to send the new usage
statistics to Datadog.
- Added attributes for the new usage statistics to the
`HistoricalUsageSnapshot` model.
- Removed the `columnName` from the `hostsStatusWebHookEnabled`
attribute of the `HistoricalUsageSnapshot` model, the name of this
column will be changed in the database when the new columns are added to
the databse table.
- Updated the usage statistics documentation to have the new statistics.


This PR requires database migrations. When this is approved and ready to
merge, we will need to:
- [ ] Merge this PR
- [ ] Put fleetdm.com into maintenance mode while the "Deploy Fleet
website" GH action runs.
- [ ] Add the new columns to the database table
- [ ] Change the name of the `hostStatusWebhookEnabled` column to
`hostsStatusWebHookEnabled`
- [ ] Set the default values for the new columns on the existing
records.
- [ ] When the website has finished redeploying, take it out of
maintenance mode.
2023-12-01 17:59:41 -06:00
Eric
4feff451da
Website: Update pricing features yaml and pricing page. (#15294)
Closes: #15265

Changes:
- Updated `pricing-features-table.yml`:
- Changed the structure of the file so it is a flat array of features
(previously, features were nested under a category)
   - Added `productCategories` arrays to features that did not have them
   - Added `usualDepartment` values to features.
- Updated the pricing features validation in `build-static-content` to
work with the new file structure and made `productCategories` a required
value for features.
- Updated `view-pricing.js` to:
- categorize features based on the values of the `productCategories`
array
- build a single array of features (previously, it would also build an
array of features for security-focused buyers).
   - sort premium features to the bottom of the pricing table.
- Updated the `pricing.ejs` to:
   - render only the list of all features server-side
- conditionally show features in the pricing table, depending on the
selected pricing mode
2023-11-22 18:33:32 -06:00
Eric
29671f4249
Website: Update receive-usage-analytics webhook to limit size of requests sent to Datadog. (#15245)
Closes: https://github.com/fleetdm/fleet/issues/15243

Changes:
- Updated the `receive-usage analytics` webhook to send multiple
requests to Datadog, depending on the number of metrics built from
reported usage statistics. (Datadog has a request body limit of 512kb)
2023-11-21 10:15:59 -06:00
Eric
6a6f51dce6
Website: Update usage statistics webhook inputs and HistoricalUsageSnapshot model. (#15180)
Closes: #11812

Changes:
- Renamed the `hostStatusWebhookEnabled` attribute of the
`HistoricalUsageSnapshot` model to `hostsStatusWebHookEnabled` and
updated the definition to use the existing database column name.
- Updated the inputs of the `receive-usage-analytics` webhook to accept
a `hostsStatusWebHookEnabled` input.
- Updated the usage statistics documentation to have the [correct
variable
name](36e12d02e3/server/fleet/statistics.go (L21)).
2023-11-20 15:34:19 -06:00
Eric
9984bc6894
Website: Fix object mutation in receive-usage-analytics webhook. (#15185)
Closes: #15182

Changes:
- Updated the receive-usage-analytics webhook to create new database
records with a cloned `inputs` object. This prevents the JSON attributes
from being mutated into strings.
2023-11-20 12:04:03 -06:00
Michael Pinto
c602a1a2d3
Add pintomi1989 to "Humans" list (#15025) 2023-11-08 11:19:31 -05:00
Paul H Tardif
b383888202
Add phtardif1 to list of humans (#14937)
...

Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2023-11-03 16:02:04 -05:00
3KindsofFish
efdbf39009
add 3kindsoffish to list of humans (#14705)
...
2023-10-23 15:22:57 -05: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
Victor Lyuboslavsky
8d0f37f926
Added getvictor to list of humans (#14548)
...
2023-10-13 16:31:30 -05:00
Joanne Stableford
972b61967f
Update humans list in receive-from-github.js (#14518)
...
2023-10-12 17:58:59 -05:00
Sampfluger88
b43188a671
Offboarding » Mo (#14470)
...
2023-10-11 15:25:51 -05:00
Eric
eafc9ab313
Website: Add two events to stripe webhook, add comments about when events are sent. (#14370)
Changes:
- Added the `invoice.updated` and `invoice.voided` events to the
`STRIPE_EVENTS_SENT_BEFORE_A_SUBSCRIPTION_RECORD_EXISTS` array in the
`receive-from-stripe` webhook.
2023-10-07 10:54:45 -05:00
Eric
e61d91a35e
Website: Update receive-from-stripe webhook to handle failed payments when creating a subscription. (#14348)
Changes:
- Added two events to the
`STRIPE_EVENTS_SENT_BEFORE_A_SUBSCRIPTION_RECORD_EXISTS` array in the
`receive-from-stripe` webhook
2023-10-06 10:07:51 -05:00
Eric
04a3f18a60
Website: Add integrations page (#14128)
Changes:
- Added a new page: /integrations
- Added the page to `config/policies.js`, `config/routes.js`, and
`assets/styles/importer.less`
- Added a link to the page to the "Platform" navigation dropdown.


This PR will be ready for review when:
- [ ] The meta description (in routes.js) is approved
- [ ] The text that replaces the lorum ipsum in the wireframes has been
approved.
2023-10-05 08:52:19 +09:00
Jahziel Villasana-Espinoza
56e5a978d2
adding Jahziel to humans list (#14120)
...
2023-09-25 15:42:47 -04:00
Eric
85fdeb4234
2023-09-16: Website: Update sitemap, set lastModifedAt timestamps for osquery schema pages. (#13725)
Closes: #13728

Changes:
- Added /support to the array of hand-coded HTML pages in
`download-sitemap.js`:
- Updated `get-extended-osquery-schema`:
- Added a new (optional) input: `includeLastModifiedAtValue` if this
input is provided, the helper will:
      - Set a `lastModifiedAt` value on all tables.
- Send a request to the GitHub API to get a lastModifiedAt timestamp for
tables that have no fleet overrides.
- Use `git` to get a lastModifiedAt timestamp of when the tables YAML
file was changed.
- Updated the `build-static-content` script to include a lastModifiedAt
timestamp for table pages, and updated the `lastModifiedAt` value that
is set for pages built from `/handbook/company/open-positions.yml`

---------

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2023-09-15 18:39:39 -05:00
Anthony Snyder
741ace0515
Added new user to "humans" list (#13951) 2023-09-15 09:58:56 -06:00
Nathanael Holliday
6d6e188ced
Update receive-from-github.js (#13823)
Removed an employee no longer at Fleet.
2023-09-08 20:25:19 -05:00
Eric
2a66915915
Website: remove /overview & unused images (#13840)
Closes: #13769

Changes:
- Removed the /overview page
- Updated routes, importer.less, and policies
- Removed 21 unused images
2023-09-08 20:23:36 -05:00
Eric
ac8150a319
Website: Create Platform model and use platform record to track mergefreeze status. (#13681)
Closes: #11755

Changes:
- Created a new model: `Platform` that has a single attribute:
`currentUnfrozenGitHubPrNumbers`
- Updated bootstrap.js to throw an error if more than one platform
record exists, and to create a platform record when the server is lifted
with the `--drop` flag.
- Updated the receive-from-github webhook to use a Platform record to
track the PRs that are currently unfrozen in the fleetdm/fleet repo.

Before this Pr is merged, we will need to:
- [x] Migrate the Fleet website's database to add the new database
table.
- [x] Create a single platform record.
2023-09-05 16:31:40 -05:00
Eric
2708933529
Website: build handbook pages for open positions from YAML. (#13672)
Closes: #13536

Changes:
- Deleted all handbook pages for current open positions.
- Created `/handbook/company/open-positions.yml`, and created entries
for the deleted handbook pages.
- Updated the build script to generate handbook pages for every entry in
`open-positions.yml`, and add information about each open position to
`sails.config.builtStaticContent.openPositions`
- Created a new component: `<open-positions>` - A component that takes a
single prop (named `openPositions`) that renders links to open position
handbook pages.
- Updated the "Creating a new position" section of the handbook to have
updated instructions for adding a new position to `open-positions.yml`
.
2023-09-04 21:20:57 -05:00
Eric
eb680a3cd3
Website: Update GH webhook to handle draft PRs that have been marked as ready for review (#13693)
Closes: #13477

Changes:
- Updated the receive-from-github webhook to handle draft pull requests
that have been marked as ready for review...
2023-09-04 21:06:57 -05:00
pacamaster
a02b8b140d
adding Grant to list of humans (#13641)
...
2023-08-31 14:51:34 -06:00
Mike McNeil
35834c12e0
Automation: Only attach #g-ceo label if not draft (#13383)
Why? So it doesn't show up in the #g-ceo board until it's time to review
it
2023-08-19 19:58:00 -05:00
Eric
944be6d876
Website: Update error handling in Stripe webhook. (#13369)
Closes: https://github.com/fleetdm/confidential/issues/3356

Changes:
- Updated the `receive-from-stripe` webhook not to throw an error if it
receives an event that stripe sends before we create a subscription
record in the website's database. It will now check if the Stripe
customer referenced in the event matches a User record in the database
and throws an error if it no matching user is found.
2023-08-18 18:16:03 -05:00
Sampfluger88
e8c88399f0
removing DRI (#13354)
.
.
2023-08-16 22:22:22 -05:00
Will Mayhone
f5649513a4
Adding willmayhone88 to humans (#13331)
.
2023-08-15 23:31:37 -05:00
Mike McNeil
d92e5df64c
Automation: Draft PRs now get #g-ceo label if appropriate (#13325)
Closes #13324

Previously, `expectedReviewers` were not built for draft PRs, (they were
left empty) which meant the code for determining whether a PR should get
the #g-ceo label didn't work for PRs that began their life as draft PRs.
2023-08-14 23:00:47 -05:00
Tim Lee
1a0186e0fd
Add mostlikelee to maintainers (#13185) 2023-08-07 12:47:20 -06:00
Eric
46802ee56a
Website: Add admin page to manage the Fleet Sandbox waitlist (#13111)
Closes: #12954

Changes:
- Added an admin page that displays a table containing all of the users
that are currently on the Fleet Sandbox waitlist where admins can
approve waitlisted users.
- Added a new email template that tells users that their Fleet Sandbox
instance is ready.
- Added a new action:
`admin/provision-sandbox-instance-and-deliver-email.js`, an action that
provisions a Fleet sandbox instance for a single user and sends them an
email telling them that their Fleet Sandbox Instance is ready.
- Added a script that provisions a Fleet Sandbox instance for the user
who has been on the waitlist the longest and sends them an email telling
them that their Sandbox instance is ready.
2023-08-04 18:32:00 -05:00
Eric
ab504d766a
Website: Update admin license generator (#13101)
Closes: https://github.com/fleetdm/confidential/issues/3230

Changes:
- Added a new (optional) input to the admin license key generator:
`partnerName`.
- Renamed `admin/generate-license-key.js` to
`admin/build-license-key.js`, updated routes and regenerated
`cloud.setup.js`
- Updated the create license key helper to add a `partner` field to the
generated license key if `partnerName` is provided.
2023-08-04 14:48:29 -05:00
Eric
3e1936d9c7
Website: add <rituals> component, add ritualsTables (parsed from YAML) to website configuration (#13084)
Changes:
- Updated the `build-static-content` script to parse files named
`rituals.yml` in the handbook folder, and add the contents to the
website's configuration as
`sails.config.builtStaticContent.ritualsTables`, and to throw errors if
a `rituals.yml` file contains a ritual that is missing a required value.
- Created the `<rituals>` component, a component that takes a single
prop (`ritualsTable`) and renders a table containing a row for each
ritual.
- Added a new property to `handbook/company/rituals.yml` - moreInfoUrl.
If this value is present, the description in the rendered HTML table (of
the `<rituals>` component) will link to the URL provided.
- updated view-basic-handbook to send
`sails.config.builtStaticContent.ritualsTables` in `SAILS_LOCALS`

---------

Co-authored-by: Sampfluger88 <108141731+Sampfluger88@users.noreply.github.com>
2023-08-03 21:58:02 -05:00
Isabell Reedy
ed121fcda8
Update received from github to add ireedy to new humans 2023-08-03 07:17:41 +09:30
Andrew Baker
864b8dd44c
Create jamf alternative landing page (#13066)
# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [ ] Documented any API changes (docs/Using-Fleet/REST-API.md or
docs/Contributing/API-for-contributors.md)
- [ ] Documented any permissions changes
- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for
new osquery data ingestion features.
- [ ] Added/updated tests
- [ ] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [ ] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [ ] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2023-08-01 18:03:10 -04: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
081e0e432a
Website: Update self-service license dispenser (#12987)
Related to: https://github.com/fleetdm/confidential/issues/3219

Changes:
- Updated `save-billing-info-and-continue.js` to check a new
subscription's invoice before completing the order.
- Added a new error message to the self-service license dispenser to
tell users signing up if a card provided requires additional
verification.
...
...
2023-07-27 21:11:23 -05:00
Jarod Reyes
5cc3ef3e8e
Adding defcon landing page to /imagine (#12867)
# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [ ] Documented any API changes (docs/Using-Fleet/REST-API.md or
docs/Contributing/API-for-contributors.md)
- [ ] Documented any permissions changes
- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for
new osquery data ingestion features.
- [ ] Added/updated tests
- [ ] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [ ] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [ ] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).

---------

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2023-07-24 14:42:46 -05:00
Mike McNeil
b660c5a222
GitHub automation: Reduce logging (#12920)
- Smile at the log retention gods
- Plus fix a bug
2023-07-22 16:16:17 -05:00
Mike McNeil
55f6f8300b
Fix #g-ceo label attachment and simplify DRI auto-review-request logic (#12919)
- Fix #g-ceo label attachment
- Simplify DRI auto-review-request logic
2023-07-22 15:47:36 -05:00
Mike McNeil
6305cb18f8
Fix #g-ceo label management (#12918) 2023-07-22 14:57:45 -05:00
Mike McNeil
6460893a5c
Deduplicate config, auto-remove #g-ceo and #handbook labels when appropriate, improve comments (#12915)
- Deduplicate config for DRI vs CODEOWNERS (this eliminates extra
notifications folks were receiving)
- auto-remove #g-ceo and #handbook labels when appropriate
- improve comments
2023-07-22 14:07:54 -05:00
Mike McNeil
199dbf9211
Update logging in GitHub webhook (ensure we're reducing notifications) (#12913) 2023-07-22 11:50:26 -05:00
Mike McNeil
e591744b32
Remove accidental escalation of approval requests (#12911)
This fix reduces the extra approval requests that started appearing
recently for stuff like /imagine pages
2023-07-21 22:37:29 -05:00
Mike McNeil
5cfd2db4e2
GitHub automation: Listen for "synchronize" events (#12804) 2023-07-15 23:19:32 -05:00
Mike McNeil
33ae2dbc4a
Fix one more bug in github automation (#12801) 2023-07-15 22:49:32 -05:00
Mike McNeil
24d45c3316
Add in logs to see what's going on with ancestral paths (#12800) 2023-07-15 22:34:11 -05:00
Mike McNeil
9c11b43bce
GitHub automation: Correctly check author using lowercased version of… (#12795)
GitHub automation: Correctly check author using lowercased version of
github username
2023-07-15 22:06:06 -05:00
Mike McNeil
6aa57951f9
Properly handle PR edits even when the original PR author is the DRI (#12793) 2023-07-15 21:43:55 -05:00