fleetdm / fleet

Open-source platform for IT, security, and infrastructure teams. (Linux, macOS, Chrome, Windows, cloud, data center)
https://fleetdm.com
Other
3k stars 416 forks source link

Add 30 day Fleet Premium trial to `fleetctl preview` #18869

Closed noahtalerman closed 2 weeks ago

noahtalerman commented 5 months ago

UDPATE: We went w/ 30 day trial instead of 14: https://github.com/fleetdm/fleet/pull/21922

(noahtalerman 2024-09-16)


Goal

User story
As someone evaluating Fleet using fleetctl preview,
I want to use Fleet Premium features for 30 days
so that I can evaluate Fleet Premium.

Context

How?

rachaelshaw commented 4 months ago

@RachelElysia or @jacobshandling if you have time, could one of you help figure out if there's any UI on the dashboard that is only shown when running fleetctl preview? When I first started it up, I saw some different cards in the dashboard with links to the docs and such, but I haven't figured out how to get that UI to show up again. Not sure if it's preview-specific or some sort of empty state.

rachaelshaw commented 4 months ago

@RachelElysia @jacobshandling to follow up on the comment above: I managed to get screenshots of the alternate dashboard states through some combo of starting a fresh preview/deleting hosts/refreshing at just the right moment:

Screenshot 2024-05-17 at 4 36 17 PM Screenshot 2024-05-17 at 4 30 49 PM

Now the question is: do you know if any of those states are specific to fleetctl preview?

jacobshandling commented 4 months ago

@rachaelshaw, tl;dr - it doesn't seem any of these states are specific to fleetctl preview

The "Welcome to Fleet" and "Learn how to use Fleet" cards are rendered when the instance has < 2 hosts enrolled.

If the above condition is satisfied, there are various sub-conditions that will lead to different content of the "Welcome" card:

RachelElysia commented 4 months ago

@rachaelshaw cc: @jacobshandling

Yeah, IIRC those states are not specific to fleetctl preview, I don't think we have anything specific to fleetctl preview. We put all our eggs into fleet sandbox UI 16 months ago and have been removing all of it starting ~6 months ago.

Following the variable isPreviewMode in app context. It looks like the only UI that changes currently for preview mode is a forced email/password to login for preview mode and no loading of a certificate for the add host modal.

sharon-fdm commented 4 months ago

We probably have the information about the license-expiry. Need to add an API and present the"days left" in UI.

sharon-fdm commented 4 months ago

FE - 3 BE - 8

mike-j-thomas commented 4 months ago

@rachaelshaw, in response to your question on Slack, I have added my recommendation to 🚧 Scratchpad in your Figma file. (Posting here for quick reference)

image
noahtalerman commented 3 months ago

@sharon-fdm shoot, unless I'm missing something I think this story never made it to the release board (ZenHub bug?) and thus we never started working on it.

If that's right can you please move it back to the drafting board and assign me? Thanks.

FYI @lukeheath @rachaelshaw

rachaelshaw commented 3 months ago

@noahtalerman I'm seeing it on the current sprint board, but yeah looks like it was added a month ago according to when those labels were assigned, so should have gone back through Feature Fest if it was never worked on, right? 🤔

noahtalerman commented 3 months ago

Dang...

@rachaelshaw I added this back to the drafting board so we can get it moving sooner. Added it to "Prioritized" and assigned you. Can you please check to see if designs are stale? If they're not, I think we can move it to "Settled" and try to get it re-estimated this sprint.

noahtalerman commented 3 months ago

FYI @sharon-fdm and @jacobshandling ^^

sharon-fdm commented 3 months ago

Oh my. I'll need to check how this happened. @noahtalerman, tell me if you want to run it through product or swap something out.

noahtalerman commented 2 months ago

Whoops forgot to assign you @rachaelshaw!

@sharon-fdm the plan is to bring it through drafting and re-estimate to make sure it's not stale: https://github.com/fleetdm/fleet/issues/18869#issuecomment-2207465748

rachaelshaw commented 2 months ago

Can you please check to see if designs are stale? If they're not, I think we can move it to "Settled" and try to get it re-estimated this sprint.

@noahtalerman I just reviewed the designs; needed to pull in the updated dashboard styles from #19319 but other than that, all the changes/dev notes should still be the same.

noahtalerman commented 2 months ago

Thanks @rachaelshaw!

I assigned this one back to @sharon-fdm and removed the old estimate (13).

sharon-fdm commented 2 months ago

Thanks @noahtalerman! Will re-estimate soon.

rachaelshaw commented 2 months ago

Maybe a new license type? (instead of premium/free, "preview")

lukeheath commented 2 months ago

@noahtalerman @sharon-fdm One option would be to not offer an enhanced preview experience, and instead just behind the scenes start Fleet with the --dev_license flag if it's less than 14 days since they first started it. I think that would be a 2-3 pointer.

sharon-fdm commented 2 months ago

@lukeheath if we can go this way I agree that should be simpler. @getvictor @mostlikelee @lucasmrod tell me what you think about Luke's suggestions

mostlikelee commented 2 months ago

fleet serve is initiated from a docker-compose but we could possibly pass the launch command in as env var, however that will only work if fleet preview is called multiple times (ie. if you only run it 1x and keep it up, the trial period will never expire)

mostlikelee commented 2 months ago

Since fleetctl doesn't have any local storage, that also assumes it's ok to write a timestamp to disk, which may be too easy to remove and start the trial over again.

sharon-fdm commented 2 months ago

@mostlikelee, Valid point, though I would not assume any company would do illegal tricks. @noahtalerman @lukeheath tell us what you think.

One point to note is that we deliberately do not collect metrics from servers that have the dev flag into DataDog. (But we could dig in Heroku if we'd like) Is that a problem?

lukeheath commented 2 months ago

It could be abused, but so far that hasn't been a problem for us. Good feedback for the drafting process, though! I think right now, the benefit in speed is worth the risk of someone abusing the timestamp.

noahtalerman commented 1 month ago

Moving the issue description from when this issue was estimated and planned to be addressed by the Endpoint ops team (estimated at 13) here:


Changes

Product

Engineering

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

QA

Risk assessment

Manual testing steps

  1. Step 1
  2. Step 2
  3. Step 3

Testing notes

Confirmation

  1. [ ] Engineer (@____): Added comment to user story confirming successful completion of QA.
  2. [ ] QA (@____): Added comment to user story confirming successful completion of QA.
noahtalerman commented 1 month ago

@mike-j-thomas and @Sampfluger88 I think we need the digital experience team's help designing and building this user story because of the product groups' (product and engineering) capacity is close to full.

This is one of my Q3 OKRs.

See the issue description for the proposed solution.

If y'all don't think you can work this in to Q3 or you want to discuss the issue, please schedule a 30 min call to chat.

Thanks :)

cc @eashaw

Sampfluger88 commented 1 month ago

Whiteboard here: https://docs.google.com/document/d/1m2-7ZRAir3Fn-lw6uYwt589e51YG0NWqxQsJez6BZr4/edit

noahtalerman commented 1 month ago

Hey @mike-j-thomas, here's now the current wireframes for what the fleetctl preview user sees when their license key is under 30 days (which it will be): https://www.figma.com/design/yISBqrTWvOLPRbcqFidErJ/%2317860-Improve-styles-for-license-expiration-banner?node-id=344-1296&t=1geFxtwymSBSIOhQ-1

Sampfluger88 commented 1 month ago

Notes here: https://docs.google.com/document/d/1m2-7ZRAir3Fn-lw6uYwt589e51YG0NWqxQsJez6BZr4/edit

mike-j-thomas commented 1 month ago

@eashaw, drafts for /try-fleet have been approved and are ready for you. We decided to give the licenses a 30-day expiration instead of 14. Although Mike M said it's up to you when the website triggers license generation, he made a couple of suggestions that may be helpful. Please check the design review recording as the suggestions are a little above my pay grade to accurate detail here 👍

Figma: https://www.figma.com/design/3he8e72251IEnF6dBafKq1/%F0%9F%9A%A7-fleetdm.com-(scratchpad)?node-id=15618-41853

mike-j-thomas commented 3 weeks ago

@noahtalerman, Fleet Premium license keys for fleetctl_preview are now live on the site. Ok to close this issue?

noahtalerman commented 2 weeks ago

Hey @mike-j-thomas, sorry for the delay.

@eashaw did y'all get fleetctl up and running working? I can't get preview running on my own machine.

I'm seeing this error in Docker:

Screenshot 2024-09-16 at 10 38 30 AM

Also, we went w/ 30 day trial instead of 14 days right? Added that to the top of the issue description.

dherder commented 2 weeks ago

Is there anything special that users need to do in order to test this? I pulled the latest and tried fleetctl preview and I don't see a premium licensed preview, the env seems to be licensed Free, but it does startup just fine.

eashaw commented 2 weeks ago

@noahtalerman Thank you for noticing that! There was a bug in how we were generating licenses. I updated the license generator and updated all generated trial licenses to resolve this.

mike-j-thomas commented 2 weeks ago

@noahtalerman, @eashaw, when I run the command with the license key, I get this error message (after a long period of waiting for the server to start (like 15+ minutes):

Error: wait for server startup: checking server health: Get "https://localhost:8412/healthz": dial tcp [::1]:8412: connect: connection refused

If I use the original command ~/.fleetctl/fleetctl preview fleetctl_preview loads fine.

noahtalerman commented 2 weeks ago

Thanks @eashaw!

Hey @mike-j-thomas, sorry for the delay.

I'm not sure whether this is isolated to your device and whether it's on the website end or fleetctl preview's end.

After trying again, I'm still seeing the error I reported in this comment here.

Maybe we escalate this to a Slack thread in #help-qa to get some help w/ testing? If that's not fast enough I think we could ask the on-call engineer to jump on a call.

eashaw commented 2 weeks ago

@noahtalerman Sorry about this, I missed the trial license key on your account when I regenerated the trial licenses. Can you grab the command with your updated license key from fleetdm.com/try-fleet and try again?

mike-j-thomas commented 2 weeks ago

I was able to get fleetctl_preview running on my device by deleting my previous fleet preview folder (hidden folder) - also restarted my machine sometime in between trying (not sure if that did anything)

noahtalerman commented 2 weeks ago

@eashaw thanks! I can now see my trial instance 🎉

I think we can close this one. I updated the title to 30 days b/c it sounds like that's what we went w.

cc @mike-j-thomas

fleet-release commented 2 weeks ago

Preview shines like dawn, Fleet's trial in the cloud's grasp, Free features, two weeks spawn.

noahtalerman commented 2 weeks ago

Is there anything special that users need to do in order to test this? I pulled the latest and tried fleetctl preview and I don't see a premium licensed preview, the env seems to be licensed Free, but it does startup just fine.

@dherder to test this, head to fleetdm.com/start and click the "Try Fleet yourself" option when you get to this step: Screenshot 2024-09-19 at 4 54 06 PM