Skip to content

mdm: define TailscaleOnboardingSeen syspolicy on Android #648

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

zbuchheit
Copy link

Adds an MDM setting TailscaleOnboardingSeen which allows for the intro screen to be skipped when set to true.

Updates https://github.com/tailscale/corp/issues/27966

Adds an MDM setting `TailscaleOnboardingSeen` which allows for the intro screen to be skipped when set to true.

Signed-off-by: zbuchheit <[email protected]>
Copy link

review-ai-agent bot commented May 12, 2025

Pull Request Revisions

RevisionDescription
r1
Added MDM control for intro screenIntroduced MDM setting to allow administrators to skip the initial onboarding/intro screen for Tailscale Android app

✅ AI review completed for r1
Help React with emojis to give feedback on AI-generated reviews:
  • 👍 means the feedback was helpful and actionable
  • 👎 means the feedback was incorrect or unhelpful
💬 Replying to feedback with a comment helps us improve the system. Your input also contributes to shaping future interactions with the AI reviewer.

We'd love to hear from you—reach out anytime at [email protected].

Comment on lines +295 to 297
if (!introScreenViewed() && !mdmTailscaleOnboardingSeen()) {
navController.navigate("intro")
setIntroScreenViewed(true)

Choose a reason for hiding this comment

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

The condition if (!introScreenViewed() && !mdmTailscaleOnboardingSeen()) could lead to a logical issue. If both conditions are false, the intro screen will not be shown. However, if introScreenViewed() is false but mdmTailscaleOnboardingSeen() is true, you're still calling setIntroScreenViewed(true) in the block below. This means the local state will be marked as viewed even though the user didn't actually see the intro. Should you only mark it as viewed when actually showing it?

@@ -97,6 +97,9 @@ object MDMSettings {
// Overrides the value provided by os.Hostname() in Go
val hostname = StringMDMSetting("Hostname", "Device Hostname")

// Allows admins to skip the get started intro screen
val tailscaleOnboardingSeen = BooleanMDMSetting("TailscaleOnboardingSeen", "Suppress the intro screen")
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you please use OnboardingFlow instead of TailscaleOnboardingSeen?

See also: tailscale/tailscale#13987 (comment)

Copy link
Contributor

Choose a reason for hiding this comment

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

TLDR: We have TailscaleOnboardingSeen on macOS. It's not a great policy setting name, so we went with OnboardingFlow on Windows. We'll update the macOS client sometime, but let's stick with OnboardingFlow and show/hide as the values for any new platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants