- created a new page on fleetdm.com called /compliance
- updated the main nav to include this page under 'Platform'
---------
Co-authored-by: Eric <eashaw@sailsjs.com>
Closes: https://github.com/fleetdm/fleet/issues/9762
Changes:
- `routes.js`: Changed the `currentPage` local variable to
`currentSection` and updated the value based each on the dropdown
navigation menus in the website header. This variable is used to make a
section "active" in the header.
- `view-basic-article` & `view-articles`: Updated these view actions to
set a `currentSection` variable based on the Markdown article category.
- `Layout.less`: Updated styles to match wireframes
- `layout.ejs`: Updated the styles and layout of the website header to
match wireframes.
- `layout-landing.ejs`, `layout-sandbox.ejs` & `layout-customer.ejs`:
Updated to match wireframes and stylesheet changes.
- `basic-documentation.less`: adjusted the position of the sticky right
sidebar.
---------
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Changes:
- Added a new page: `/upgrade-to-fleet-premium`
- Added a new action `deliver-premium-upgrade-form.js`
- Updated policies, routes, importer.less, and regenerated
cloud.setup.js
.
---------
Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
Closes: https://github.com/fleetdm/fleet/issues/6493
Changes:
- Added a new action, `get-one-rss-feed.js`. This action generates and
returns RSS feeds for article categories on fleetdm.com.
- This action has one required input: `categoryName`.
- Lives at `/rss/[Article Category Name]` e.g.,
`fleetdm.com/rss/releases`
- If `articles` is provided as the category, it returns an RSS feed of
all articles published on our blog.
- Updated `view-basic-article.js` to set an `articleCategorySlug`
variable, that is used to link to the RSS feed for an article category
from an article page.
- Added a "subscribe" button to articles and article category pages that
links to an RSS feed for that category.
When the file is provided as an attachment to the Sails helper, it gets
decoded, since we need for the signed CSR to be delivered in base64
format, we doubly encode the contents before sending the email.
Changes:
- Updated the custom hook to include a POST request to Algolia to
refresh the Fleetdm.com search index.
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Changes:
- Updated the conditional statement that determines if we will be
notified in Slack to filter out commit comments and deleted comments
from Fleet team members with uppercase letters in their GitHub
usernames.
This pull request relies on the `mdm-gen-cert` command from
https://github.com/fleetdm/fleet/pull/8884.
Closes: https://github.com/fleetdm/fleet/issues/8223
Changes:
- Updated the deploy Fleet website workflow to:
- Add Go as a dependency
- Build the mdm-gen-cert binary in `/website/.tools/`
- add the `/.tools/` folder to the Heroku app
- Added `deliver-apple-csr.js` - an API that:
- can be called by making a `POST` request to
`/api/v1/deliver-apple-csr`
- accepts `csr` as an input
- runs the `mdm-gen-cert` command with the `csr` set as an environment
variable
- returns an `invalidEmailDomain` response if the user's email domain is
in the array of banned email domains.
- saves the users organization and email address to the website's
database
- Sends an email to the requesting user's email address with the signed
CSR attached as a text file named `apple-apns-request.txt`
- Posts a message to a channel in the Fleet Slack.
- Added a new model: `CertificateSigningRequests` that contains two
required attributes: `emailAddress` and `organization`
- Added a new email template `email-signed-csr-for-apns`
- Updated routes, policies, eslintrc, and rebuilt cloud-sdk
Before this can be merged, we will need to:
- [x] Add new config variables in Heroku
- [x] `sails.config.custom.mdmVendorCertPem`
- [x] `sails.config.custom.mdmVendorKeyPem`
- [x] `sails.config.custom.mdmVendorKeyPassphrase`
- [x] `sails.config.custom.slackWebhookUrlForMDMSignups`
- [x] Add the `CertificateSigningRequests` model to the website's
database
Improve https://github.com/fleetdm/fleet/pull/9336 providing default
settings similar to the OpenAI playground, including a higher
temperature and number of maximum tokens. Also fixes prefix trimming.
This improves https://github.com/fleetdm/fleet/pull/9336 by eliminating
junk text and encouraging better replies. Uses an h1 to emphasize the
issue title, so that short issues don't get weird and truncated, and the
bot reply stays focused on the main point of the issue.
Changes:
- Added a "Number of devices" input to the MDM beta signup form on the
`/device-management` page.
- Updated `website/api/controllers/deliver-mdm-beta-signup.js` to accept
a `numberOfHosts` input, and to include that value in the request to the
Zapier webhook.
Changes:
- Added three errors to
`website/api/helpers/get-extended-osquery-schema.js` that are thrown if
a YAML schema table has:
- A `platforms` value that is not an array
- A `description` value that is not a string
- A `columns` value that is not an array
- Updated the `platforms` of YAML schema tables in `schema/tables/` that
had string `platforms` values
- Regenerated `/schema/osquery_fleet_schema.json`
.
Changes:
- Updated the version of the osquery schema we merge with Fleet's
overrides (`5.6.0` » `5.7.0`)
- Ran the `generate-merged-schema` script to regenerate
`schema/osquery_fleet_schema.json`
. .
Changes:
- Updated the Fleet sandbox registration page to make a first name, last
name, and organization required.
- Removed the "REQUIRED" label from the email address input on the Fleet
Sandbox registration page and removed styles for it from the page's
stylesheet.
- Updated the `organization` input of `signup.js` to be required.
- Changed the POST request to Zapier in `signup.js` to always use the
information provided.
Changes:
- Added a new page: `/device-management`
- Added a new action: `deliver-mdm-beta-signup.js` - This action sends a
post request to a Zapier webhook when a user submits a form on the
`/device-managment` page.
- Added a new component: `<scrollable-tweets>`
- Updated routes, importer, policies, cloud-sdk, and
`download-sitemap.js`
- Updated the route for our success story articles to live at
`fleetdm.com/success-stories/*` (Previously at
`fleetdm.com/device-management/*`) and updated `config/routes.js` to
have redirects for each article in that category
- Updated the "Use cases" navigation item to "Platform" and changed the
platform link to "How it works"
Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
Changes:
- Updated the `expiresAt` input description in
`api/controllers/admin/generate-license-key.js` and
`api/helpers/create-license-key.js`
- Updated timestamps sent to `generate-license-key` and
`create-license-key` to be in seconds.
. .
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
As raised by a community member in
[Slack](https://osquery.slack.com/archives/C01DXJL16D8/p1672751794862639),
this updates our documentation to account for both `unified_log` and
`macadmins_unified_log`.
Per my testing, it should also help with the #9158 bug in Fleet's UI.
I have updated the columns of `macadmins_unified_log` according to
what's in the [source
code](50f94d0d70/tables/unifiedlog/unified_log.go (L47-L69)),
and modified the example to work.
Since I was there I have also updated the osquery version we use to pull
the JSON to `5.6.0` and fixed a small bug related to the examples we
pull from there.
. . . . . . .
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
cc: @alexmitchellii
Changes:
- Added optional inputs to the Fleet Sandbox signup page:
- First name
- Last name
- Organization
- Updated signup.js to send the optional inputs to the Zapier webhook
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
https://github.com/fleetdm/fleet/issues/9172
Changes:
- Added
`website/api/controllers/webhooks/recieve-stripe-subscription-events.js`
a webhook for receiving Stripe events.
- If the stripe event received is from a user's subscription
automatically renewing, A new license key is generated, the subscription
record is updated, and a renewal confirmation email is sent.
- If the stripe event received is from a user's subscription's upcoming
renewal, a renewal notification email is sent.
- If any other event type is received from Stripe, the webhook returns a
200 response.
- Added new email templates:
- `email-subscription-renewal-confirmation`
- `email-upcoming-subscription-renewal`
- Updated `website/api/controllers/admin/view-email-template-preview.js`
to have fake data for the added email templates.
- Updated `website/api/controllers/customers/view-dashboard.js` to set
two boolean variables: `subscriptionExpiresSoon` and
`subscriptionHasBeenRecentlyRenewed`
- Updated the customer dashboard to display notifications on the top of
the page if a user's subscription will renew in the next 30 days, or if
the user's subscription has been renewed in the past 30 days.
- `website/views/layouts/layout-email.ejs` - Updated the font, padding,
and text color to match wireframes.
* add link to "defaults to root" text and evented table labels
* override requires_user_context value in merged schema
* update link styles on table pages
* Update get-extended-osquery-schema.js
* encodeURIComponent
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
* update helper to use the osquery schema from the osquery/osquery-site repo
* update script description and generated json filename
* Add ritual to digital experience handbook
* add merged schema
* Update README.md
* Update get-extended-osquery-schema.js
* add additional inputs to billing info form
* adjust layout, update labels to match wireframes
* update inputs
* rebuild cloud-sdk with new inputs
* Remove focus from billing info form
* update updateOne inputs
* Add signupReason to the User model, update new-license page script and signup action
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
* move docsearch api key to a config variable, update styles to disable outline on input
* Update basic-handbook.less
* Update basic-handbook.less
* update config variable name & update comment
* Website: send request to Zapier when a license is purchased
* Update error message/lint fix
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
* 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>
* add #handbook label to handbook PRs
* Update get-is-pr-only-handbook-changes.js
* remove while loop from _.all()
* revert changes to github token name
* Simplifications
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
A timeboxed workaround for an intermittent issue where the mergefreeze API reports that a repo is frozen: false, when the mergefreeze UI says that it is actually truly frozen.
Turns out the issue being debugged in https://github.com/fleetdm/fleet/pull/6906 was in the API itself-- somehow it can get stuck on frozen: false. If that happens, the solution is to freeze/unfreeze everything in the dashboard
* Tool: Bring back mergefreeze API integration
Context: https://github.com/fleetdm/fleet/pull/5628#issuecomment-1196175485
Unfortunately, the API doesn't work.
* Lay out how this would work in the database - but instead, do it ephemerally for now
* Remove model
* Maintain state (the easy way for now)
* Website: Follow up to strip leading slashes
re https://github.com/fleetdm/fleet/pull/6796#issuecomment-1193054810
* remove log
* Verified: whitespace trim not needed
And leading slash trim is only needed if using a regex route (not something I recommend most of the time). But since we are using one, I included it, and put it in all three places for consistency. (It doesn't ever hurt)
* Simplify regex syntax used for #2025
* extra trailing slashes now redirect instead of rendering
* Simplify regex
* Match implementation to view-basic-documentation, etc
* Match view-basic-documentation, and slurp up title and description logic to help indicate (and future proof) that it has no side effects
* Update view-basic-handbook.js
* Update view-basic-documentation.js
* trivial
* lint fix
* make handbook and doc landing pages continue working despite my recent commit in this same PR, and add some comment clarifications
* update regex to replace leading slashes and whitespace
Co-authored-by: Eric <eashaw@sailsjs.com>
Related to #5898, this reports an anonymized summary of errors stored in Redis into the analytics payload.
For each error stored, this includes:
- A `count` attribute with the number of occurrences of the error
- A `loc` attribute with the 3 topmost lines in the stack trace. Note that stack traces only contain package name + line number (example: github.com/fleetdm/fleet/server.go:12
This also includes a minor refactor around error types.
* Website: Create page for sales one-pager
* update layout, add images
* update mobile layout
* update layout & styles
* Update sales-one-pager.less
* add todos for page description and page title
* add alt text, final route & meta information, make hero-image visible at 1024px
* state of device management page, chart component
* add images
* website: add charts.min.js, update layout, page script, and images
* layout updates, component validation
* add alt text, lint fixes
* update image name
* update bar-chart styles and layout
* add empty href and link styles
* Style overrides for mobile & tablet
• Added style overrides for mobile and tablet.
* Updated text
Updated text for the following sections:
• Introduction
• Key findings
• Part 1
* Updated text
Updated text in the following sections:
• Part 2
• Part 3
• Part 4
• Part 5
• Part 6
* Additional icon and text change
• Added icon for GitOps
• Repositioned text: The future of device management
* Text change
Removed "Takeaways" header from Part 6.
* style changes
• fixed some inconsistent headers (h3 to h2).
• fixed margin bottom on new GitOps note.
• Removed unneeded subsection div after removing "Takeaways" heading in my previous commit.
* update chart styles, add update charts function, sticky navigation
* lint fix
* lint fix
* Scroll navigation with header
* text changes
Updated chart titles to match the survey.
* style tweaks
Style tweaks to the charts.
* add pdf
Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
* trivial (comments)
* Remove old unfreeze/freeze logic
* trivial (clarify comment)
* Trivial (fix weird character)
* Extrapolate DRI mappings into config.
* Explain why this exists
* Extrapolate logic
* Use extrapolated logic + add 5 second wait time to prevent accidents + clean up
* Use extrapolated logic and fix omission in helper
* Make freezing actually happen and document usage
* In script, don't freeze PRs as long as they're preapproved to be edited by SOMEBODY
* Lint fixes
* articles page
* update articles route to handle category urls
* update articles page
* add articleImageUrl meta tags to article pages
* basic empty state, add comments
* Update view-articles.js
* Update articles.less
* add articles, update styles and image url validation
* lint fix
* Update routes.js
* Update articles.ejs
* Update articles.page.js
Updated article category descriptions.
* migrated more articles
I migrated more articles so that all categories are populated.
* Added thumbnails to new posts
* Some style tweaks
- Tweaked a couple of styles
- Added cursor: pointer to filters
- Changed "Blog" to "Articles" in the navigation
- Changed /blog to /articles in the navigation
Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
* add custom blockquote render and styles
* Update to-html.js
* adjust margin, replace icon
* increase margin on image
* Style updates
After seeing it in action, I noticed some improvements. I also updated Figma to reflect.
• Changed colors and icon alignment
• Adjusted top/bottom margins
• Adjusted corner radius
• Added new color variable (existing in Figma) to colors.less
Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
* Github bot: Temporarily disable label change notifications
Michael Thomas🕐 Today at 01:36
Are these alerts necessary in #g-digital-experience, and if not, how do we turn them off? They're creating a lot of noise in the channel 😵
1 reply
mikermcneil 3 minutes ago
I'm envisioning Digital Experience is responsible for keeping github labels tidy, so having visibility into changes would be useful. If you currently don't have bandwidth to do it, this is an easy thing to let slip, since it isn't the highest priority. (Labels have already gotten a bit messy- to the point I don't use them at all anymore, for example. I don't think they're actually necessary anymore, other than for doing estimations)
I'll PR a change that disables it for now.
* fix extra ampersand
* GitHub webhook: Add support for '*' DRI rule
This allows any fleetie to edit the handbook landing page (e.g. in the event pages need to get moved around)
* invert how DRI rules for website are expressed
* lint fix + add support for array syntax
* Update receive-from-github.js
* Update receive-from-github.js
* Update receive-from-github.js
* Update receive-from-github.js
* Update receive-from-github.js
* feat: add query to find running docker containers
* docs: 📝 add query to get Mac and Linux machines with unencrypted primary disks
* feat: add query to find running docker containers
* docs: 📝 add query to get Mac and Linux machines with unencrypted primary disks
* chore: remove queries from develop
* docs: add query to get running docker containers
* docs: add query to get machines with unencrypted primary disks
* fix: remove trailing ---
* fix: remove trailing ---
* chore: remove trailing ---
* docs: add query to get applications hogging memory
* fix: resolve merge conflicts
* chore: update PR
* chore: update PR
* chore: merge previous query
* feat: add query to find servers with root logins within the day
* fix: remove unneeded period
* docs: add instructions for submiting multiple queries
* fix: remove duplicate entry
* fix: remove period from get running docker containers query description
* docs: add instructions for submiting multiple queries
* fix: resolve merge conflicts
* feat: add description for query to fetch failing batteries
* fix: resolve duplicate descriptions
* fix: remove typo in deplying docs
* fix: reword description
* fix: add suggestions to improve description
* feat: add description to query to fet windows machines with unencrypted hard disks
* feat: update description for count apple applications installed query
* chore: add dominuskelvin as maintainer
* docs: 📝 Add query to get apps opened within the last 24 hours
* feat: add query to find apps not in Applications directory
* feat: add query to find subscription based applications that have not been opened for the last 30 days
* feat: add link to signing installers
* fix: typo with link to the getting started page
* feat: docs on how to sign an osquery installer
* feat: make signing installer a subsection of osquery installer
* feat: make description for signing installer shorter and compact
* fix: change package to installers
* fix: reword note section
* feat: add instructions to use credentials below to log in to fleet preview
* feat: update static pages explicitly listed in sitemap
* Stub out a way of automatically poking a hole in branch protections for DRIs
* cleaned things out in there
* prototype of autoapproval automation
prototype of autoapproval automation for DRIs editing their files
* should never happen
* Add more specific error for login.js
* fix typo, add can I use comment
* adjust padding for quote preview
* update quoted price when number of hosts change
* update footer link layout
* fix lint error