Changes:
- Added /admin/reset-trial, a page where website admins can reset local
Fleet Premium trials.
- Added a link to the reset trial page to the navigation on admin pages.
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`
Changes:
- Added a script that sets a `fleetPremiumTrialLicenseKey` and
`fleetPremiumTrialLicenseKeyExpiresAt` values on all User records.
- Added a new email template to inform users that they have a new Fleet
premium trial available.
- Added the announcement banner to the /login, /register, and /try-fleet
pages.
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
Changes:
- Updated the `build-static-content` script to add the merged osquery
schema JSON to the website's `builtStaticContent` configuration
- Updated view-query-generator to have a badConfig exit that is used if
the website has an invalid `builtStaticContent.schemaTables`
configuration
- Updated `get-llm-generated-sql` to use the
`builtStaticContent.schemaTables` instead of attempting to use
`sails.helpers.getExtendedOsquerySchema()` (Which does not work as
intended when run in a production environment.)
Changes:
- Added /admin/query-generator, a page that admins can use to generate
queries from natural language questions.
- Added `/admin/get-llm-generated-sql.js` an action that uses the same
method in the `test-llm-generated-sql` script to generate queries from a
natural language question.
Closes: #20904
Changes:
- Updated the `deliver-contact-form-message` action to send contact form
submissions to Fleet's support email address.
- Added an email template for contact form messages.
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`
Closes: #19531
Changes:
- Added a deal registration page at /deals
- Added a new email template: `email-deal-registration`
- Added a new action to send the deal registration form submission to
the email address set in the `sails.config.custom.
dealRegistrationContactEmailAddress` config variable
- Updated the HTML email preview page to support the new email template.
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.
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.
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
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>
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.