Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFD 0196 - Add opinionated intro to product #50987

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

thedevelopnik
Copy link
Contributor

@thedevelopnik thedevelopnik commented Jan 13, 2025

Signed-off-by: Dave Sudia <15764229+thedevelopnik@users.noreply.github.com>
Signed-off-by: Dave Sudia <15764229+thedevelopnik@users.noreply.github.com>
@thedevelopnik thedevelopnik added rfd Request for Discussion size/lg no-changelog Indicates that a PR does not require a changelog entry labels Jan 13, 2025
@thedevelopnik thedevelopnik self-assigned this Jan 13, 2025
@thedevelopnik thedevelopnik changed the title RFD 1096 - Add opinionated intro to product RFD 0196 - Add opinionated intro to product Jan 13, 2025
@github-actions github-actions bot requested review from jimbishopp and zmb3 January 13, 2025 15:44
Copy link
Collaborator

@r0mant r0mant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High-level premise makes sense but it's a bit hard to provide better feedback about the UX without seeing more specifics like what is it actually that we want to implement and what those flows would look like. I would take 1 or 2 initial flows you think we should prioritize and explore those in detail.


This implementation is limited to the persona of a new admin. In the future we should have similar intros for other personas like dev users, SSO users (an access use case similar to our own internal platform.teleport.sh), admins coming into an existing cluster, etc. Product will do future work with design and other teams to formulate these personas. This means we need to define “a new admin.” Since we do not have user types in the app, simply roles, we’ll need to define this via one or a combination of roles, and this should only show up for newly created clusters.

### Out of Bounds
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty section?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I didn't have anything to put there but held in case out-of-bounds things are identified in discussion.

* Scalability

### Rough outline of the content
* Quickstart
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these supposed to be "knowledge-base" type articles/helpers or something actionable a user actually does or a mixture of both? It's not very clear from the descriptions - for example what is "Roles -> Strategy"?

This also lists a lot of things. Less is more - I think we should identify and start with just a handful (maybe 1 or 2) of very specific flows we want to highlight and spec those out in detail so we understand what the scope here is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a mix that leans heavily towards a actionable tutorials. Things like Roles -> Strategy would definitely be more knowledge-base-like, and maybe we taking anything like that and change it to a link to the docs. One reason for doing this is to give people more context and instruction on why they're doing what they're doing, but the outline is definitely still rough.

There's also content that could be cut, but part of the spec here is giving people the option to cut that content on their own. I will argue for basically keeping the list as it is here. But for figuring out the total scope it makes sense to flesh out 1 or 2 of the areas, I will get on that!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specifically I believe that having more topics does not increase the scope for design or engineering, mostly on me to write the content.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another way we could slice this is to think of it from 'what I have perspective', for example if I'm on AWS. I would want to learn about connecting EC2 using AWS IAM Join token, AWS console access, JIT access for AWS and Policy for AWS.

+1 or picking 1 or 2 and flushing it out as part of this RFD.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you use either LucidChart or Excalidraw for wireframes/mockups?

Copy link
Contributor Author

@thedevelopnik thedevelopnik Jan 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I can convert these over to FigJam which is the tool I have an account for, and switch the images to links to there. I normally draw there on my iPad but with the new rules about what we can access on devices couldn't get in, so just wanted to get something up for review. But I'll do a pass now with wireframe vs drawing.

Copy link
Contributor Author

@thedevelopnik thedevelopnik Jan 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the sketches to FigJam board and will be putting more there as I flesh out the 2 routes. Updated the RFD to point there, removed the images here, and updated and the rendered link.

Key context to provide in each guide is some pros/cons and the why of each topic, especially for topics like Users/Auth. Why use local users vs SSO? This is a good place to incorporate info from SE like in the SSO one saying “you may not have permission to set up your SSO yet, in that case local users are a great place to get started.”

The following fat marker sketches are meant as a jumping off point for design.
* [side bar and intro page](./assets/0196-sketch1.jpeg)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to consider how to host / privacy of these videos. YouTube is often banned, but we could self-host or leverage a 3rd party tool such as https://www.mux.com/ to have greater control.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call out, and if it adds a lot to scope this is a place I'm fine cutting, just not having the video.


## Overview

### Problem
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For scope of this RFD, are we thinking about it for Teleport Cloud, Teleport Community, and Teleport Enterprise.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Cloud and Enterprise since they would have more feature parity, less checks to worry about on what to display. Unless it's just as easy to have it in community as well.

thedevelopnik and others added 2 commits January 16, 2025 08:59
Signed-off-by: Dave Sudia <david.sudia@goteleport.com>
Co-authored-by: Ben Arent <ben@goteleport.com>

### Rabbit Holes

This implementation is limited to the persona of a new admin. In the future we should have similar intros for other personas like dev users, SSO users (an access use case similar to our own internal platform.teleport.sh), admins coming into an existing cluster, etc. Product will do future work with design and other teams to formulate these personas. This means we need to define “a new admin.” Since we do not have user types in the app, simply roles, we’ll need to define this via one or a combination of roles, and this should only show up for newly created clusters.
Copy link
Contributor

@webvictim webvictim Jan 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will we still show the intro to all new SSO users signing into the cluster, or hide it completely?

Often with prospects, one of the things they want to get done first is to set up an SSO connector and have their teammates sign into the cluster so they can test it for themselves. If we were to hide the intro from them by default, we might be missing out on discoverability.

Perhaps we should have a way to enable it for a given user, or define whether users signing in via SSO should see the intro or not? Maybe they see it if they have the editor role or some set of admin permissions we deem sufficient?


Above the guide is a progress bar or other indicator that gives the user some sense of how close to “done” they are with learning the product. This is not an indicator of them being done fully implementing the product.

Within the content we want to weave a concepts in:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Within the content we want to weave a concepts in:
Within the content we want to weave in the concepts of:

### Rough outline of the content
* Quickstart
* You are a local user, what does that mean?
* You have the “access” role, what does that mean?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also explain the concept of built-in/Teleport-managed roles vs custom roles that you build yourself.

+1 if we can find a way to mark built-in roles somehow as being "different" within the product and encouraging their use over custom roles wherever appropriate.


Within the content we want to weave a concepts in:
* Tokens
* Agents
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we should really focus on after a user has been introduced to an agent is the idea of "one Teleport agent/process can run multiple services". This works nicely into tokens and what they're used for, IMO, as it builds up the idea of Teleport as a modular platform.

Essentially the concept of:

  • the job of an agent is mostly to run "close to" target resources and relay network connectivity to them
  • if you have multiple resources in one place, you can use the same agent/process to get connectivity to them just by modifying the agent's Teleport config and restarting it.

Our docs are currently not consistent at all in terms of showing how to add a new service to a running agent (three different services will show you three different methods) so this might also need to be tackled as part of the project, if we want a good tie-in between the guides in the UI and the docs they're ultimately backed by.

Above the guide is a progress bar or other indicator that gives the user some sense of how close to “done” they are with learning the product. This is not an indicator of them being done fully implementing the product.

Within the content we want to weave a concepts in:
* Tokens
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing that I think would be very valuable is teaching people about the different resource types/protocols that Teleport supports and how they're split up into different services.

There's also esoteric stuff like:

  • the Teleport ssh_service has a 1:1 relationship between a server and being able to connect to it using SSH, it has no "relay" capability
  • assuming it's deployed with the teleport-kube-agent Helm chart, the Teleport kubernetes_service generally has a 1:1 mapping between target Kubernetes cluster and Kubernetes service (but this goes out of the window when auto-discovery gets involved, so might be harder to explain)
  • the other "primary" Teleport services (db_service, app_service and windows_desktop_service) have a 1:many relationship which allows one service to relay connections to many different resources inside your target environment.

I'd really encourage us to use diagrams to show where the services sit inside an environment and how the data flows between the user and the resource.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-changelog Indicates that a PR does not require a changelog entry rfd Request for Discussion size/lg size/md
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants