Changes:
- Added a new attribute to the user record:
`fleetPremiumTrialEmailSentAt` - A JS timestamp representing when a user
was sent an email about their Fleet Premium trial
- Updated the `deliver-expired-local-trial-emails` and
`manage-fleet-premium-trial-instances` scripts to set this value when
users are sent an email about their expired trial.
Changes:
- Updated the "Try it now" button on the website's header navigation, it
will now open a signup/login modal on every page (excluding the
dedicated /register and /login pages)
- Updated the website to assign Fleet Premium instances hosted on Render
to eligible users. All other users will be given a 30-day Fleet Premium
trial license key to use with their deployment method of choice.
- Added a script that creates and manages a pool of Render instances.
- Added a new database model: `RenderProofOfValue`
- Added four new email templates
- Updated primary button colors to match the core product.
- Removed the organization requirement for new users signing up.
- Added a new component: `<signup-modal>`
- Added a new attribute to the User model: `fleetPremiumTrialType`
Closes: https://github.com/fleetdm/confidential/issues/11365
Changes:
- Updated the User model's supported `primaryBuyingSituation` values.
- Updated the /start questionnaire to use the new
`primaryBuyingSituation` values.
- Updated the contact form to use the new `primaryBuyingSituation`
values.
Changes:
- Updated the User model to have a new attribute: `canUseQueryGenerator`
a boolean attribute that will grant users access to the query generator
page on the website.
- Added a new policy: `has-query-generate-access`
- Moved the query generator page from the admin section of the website.
Note: before this change can be merged, the website's database will need
to be migrated to add the new column to the User table
Related to: #18869
Changes:
- Updated the /start questionnaire to generate a 30 day, 10 host trial
for Fleet Premium when users submit the step before the "Is it any
good?" step (Where the user is directed to try `fleetctl preview`) and
to save the details (license key and expiration timestamp) of the trial
to their user record.
- Added two new attributes to the User model:
- `fleetPremiumTrialLicenseKey`: A Fleet Premium license key that was
generated for the user when they progressed through the get started
questionnaire.
- `fleetPremiumTrialLicenseKeyExpiresAt`: A JS timestamp of when the
user's Fleet Premium trial license key expires.
- Updated the try-fleet page to have copyable terminal commands, and to
add the `--license_key` flag with the users license key to the command
to run `fleetctl preview`
Closes: https://github.com/fleetdm/confidential/issues/7528
Changes:
- Added a new action: unsubscribe-from-marketing-emails, which updates a
user record that uses a specified email address to exclude it from the
deliver-nurture-emails script.
- Updated the email template to include a link that users can click to
unsubscribe.
- Added a modal to the homepage that is shown to users who unsubscribe
from marketing emails
- Updated the email template data in deliver-nurture-emails and
view-email-template-preview
Changes:
- Added three new emails for MDM-focused users who are psystage 3, 4
,and 5.
- Added a new email layout
- Added a script to send nurture emails to users with an MDM primary
buying situation who signed up after 2024-07-22 that
- have been in psychological stage 3 for 24 hours
- have been in psychological stage 4 for 24 hours
- have been in psychological stage 5 for six weeks
- Updated the USer model to have. four new attributes:
- `psychologicalStageLastChangedAt`
- `stageThreeNurtureEmailSentAt`
- `stageFourNurtureEmailSentAt`
- `stageFiveNurtureEmailSentAt`
- Added a new custom config variable
`sails.config.custom.contactEmailForNutureEmails`
Related to: https://github.com/fleetdm/confidential/issues/6155
Changes:
- Added a new attribute to the `User` model: `psychologicalStage`
- Updated `save-questionnaire-progress` to update a user's
`psychologicalStage` based on their current answers/progress on the
/start questionnaire
- Updated the personalization on the /contact page to use the
`psychologicalStage` from the user model
- Updated the value of a unselectable form option on the /start page
Closes: #18047
Changes:
- Added three steps to the /start questionnaire
- Updated the contact page to prefill information for logged-in users by
default
- Updated the layout of the f/leetctl-preview page for users navigating
to it from the /start page.
- Updated the quote for vulnerability management on the /start and
/contact pages to have a logo (There will be a separate PR, to add it to
testimonials.yml)
---------
Co-authored-by: Mike Thomas <[email protected]>
Closes: #17958
Changes:
- Updated the primary and secondary CTAs site-wide
- Updated the /start page to have a multi-stage form that users can fill
out to personalize their onboarding experience
- Updated the signup action to not set a `primaryBuyingSituation` on new
user records (This will now be set when users progress through the
/start form)
- Added two new attributes to the `User` model:
`currentGetStartedQuestionnarieStep` and
`getStartedQuestionnarieAnswers` that save user's progress in the /start
form.
Before this PR can be merged we will need to:
- [x] Update the Zapier webhook that runs when new users sign up to no
longer expect a `primaryBuyingSituation` value
- [ ] Update the User table in the website's database
- [ ] Migrate the existing user records
Changes:
- Added a new attribute to the `User` model: `primaryBuyingSituation`
- Updated `signup.js` to set this value on new User accounts
Before this PR can be merged, we will need to:
- [ ] Add the new column to the User table in the website's database
- [ ] Set a default value for existing User records.
---------
Co-authored-by: Sam Pfluger <[email protected]>
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 <[email protected]>
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)
..
* 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 <[email protected]>
* 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 <[email protected]>
* rename dir
* no need to install website or docs from npm
At some point, would also be nice to be able to exclude assets/ as well, and to only install a pre-built version of Fleet's frontend code
* Bring in fleetdm.com website
From https://github.com/fleetdm/fleetdm.com as of https://github.com/fleetdm/fleetdm.com/releases/tag/v0.0.21
* add procfile for heroku
Using https://github.com/timanovsky/subdir-heroku-buildpack
* avoid getting anybody's hopes up
* Create deploy-fleet-website.yml (#82)
* Create deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* update pjs with SPDX-like license expressions. also fix repo URL
and remove package lock
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* remove dummy uri
* Dissect deploy script
* Update deploy-fleet-website.yml
* workaround for eslintrc nesting issue
* lint fixes
* forgot the .js
* add per-commit git config
* Update deploy-fleet-website.yml
* might as well remove that
* cleanup
* connect w/ heroku app and have it actually push
* fix bug I introduced in 578a1a01ff
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* the beauty, the glory, of javascript
* GH actions don't like "\n"
* Update deploy-fleet-website.yml
* restore \n chars from 0d45e568f6
hoping I was wrong in 0d45e568f6 but see also https://github.community/t/what-is-the-correct-character-escaping-for-workflow-command-values-e-g-echo-xxxx/118465/5
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* Update deploy-fleet-website.yml
* rename script to prevent duplicate building
* Configure the real website
* clean up
* a test of the deploy workflow
* add handbook to npmignore
* I guess you could call this fixing a typo
* point workflow at master branch
* now clearly bogus: this completely unused version string