Add feature-flagged first-use onboarding experience to welcome page#26455
Open
dennisoelkers wants to merge 21 commits into
Open
Add feature-flagged first-use onboarding experience to welcome page#26455dennisoelkers wants to merge 21 commits into
dennisoelkers wants to merge 21 commits into
Conversation
Behind the `onboarding_experience` feature flag, show a full-width banner on the welcome page when the system is not yet receiving log data: - Permitted users (`inputs:create` or `collectors:create`) get an actionable box linking to a stub ingestion-setup modal, dismissable via the alert's close button (dismissal invalidates the eligibility query). - Other users get a "contact an administrator" box. The eligibility query and dismiss mutation are mocked in the frontend for now, shaped like real API hooks so the backend can be wired in later. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
196f481 to
87c5b2d
Compare
ef677cc to
57bb3e9
Compare
- Add FirstUseWelcome page and useShowOnboardingWizard hook that gates on the onboarding feature flag, eligibility, and required permissions - Let useOnboardingEligibility take an `enabled` flag - Add isAnyPermitted to usePermissions (and update affected test mocks) - Add `collectors:create` to the Permission type; move REQUIRED_PERMISSIONS into welcome Constants and reuse it in OnboardingBanner Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a static, non-interactive PlatformIcons component (each icon wrapped in a Card) reusing the collector PLATFORMS, and a 'Set up Collector' button linking to the collectors overview, in the Endpoint Logging box. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a static DataSourceIcons row (Google, AWS, Microsoft, Syslog-like, Palo Alto in Cards, plus an 'And more' label) and a 'Configure Input' button linking to the inputs page. Extend BrandIcon with the google/microsoft/aws/paloalto logos (monochrome, colors stripped to currentColor). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use the generated Onboarding.get() API (status-based) for eligibility, reduce OnboardingBanner to the contact-admin message (shown only when the user lacks permissions and status is 'setup'), add a Dismiss action on FirstUseWelcome, and update the banner tests to the new behavior. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the generic onboarding status PUT with a dedicated PUT /onboarding/dismiss endpoint (setting status DISMISSED, audited as onboarding:status:dismissed), wire useDismissOnboarding to Onboarding.dismiss(), and guard the FirstUseWelcome Dismiss action with a confirmation dialog explaining it applies to every user. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… tab Render each Resources panel as a Card wrapped in an anchor (target=_blank) so the whole panel is a link, with a hover/focus affordance, and match the section content background color. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Switch the Kubernetes and Docker collector platforms to BrandIcon logos, and crop their viewBox padding (0 0 32 32 -> 2 2 28 28) so they render at the same size as the other brand icons. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Suppress the anchor underline on plain :focus (not just :focus-visible) so Bootstrap's a:focus underline no longer sticks after a mouse click, and set outline:none on the link, keeping the intended highlight on :focus-visible only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a feature-flagged first-use onboarding experience to the welcome page, gated behind the
onboarding_experiencefeature flag.WelcomePagenow asks the backend for the onboarding state (useShowOnboardingWizard) and, while the instance is still insetup, decides what to render:inputs:create/collectors:create) see a newFirstUseWelcomepage: a guided landing page with two action sections — Endpoint Logging (Set up Collector, with platform icons) and Other Data Sources (Configure Input, with data-source icons) — plus a Resources section of clickable cards that open in a new tab. A Dismiss action opens a confirm dialog and, on confirmation, turns off onboarding for all users of the installation.OnboardingBanneron the regular welcome page telling them the instance is not yet receiving log data and to contact an administrator.Welcomepage is shown as before.Supporting changes:
useOnboardingEligibility/useDismissOnboardingreact-queryhooks backed by theOnboardingserver API.OnboardingResource: the genericPUT /onboarding/{status}endpoint is replaced with a dedicatedPUT /onboarding/dismissendpoint, and the audit event becomesONBOARDING_DISMISSED.usePermissionsgains anisAnyPermittedhelper; newREQUIRED_PERMISSIONSconstant.DataSourceIconscomponent;IngestionSetupModalis included as a placeholder for the upcoming guided setup flow./prd https://github.com/Graylog2/graylog-plugin-enterprise/pull/14700
Motivation and Context
New operators landing on the welcome page have no guidance when no data is flowing in. This change lays the (feature-flagged) groundwork for an in-product ingestion onboarding flow — a guided page for those who can set up ingestion, and a clear "contact your administrator" prompt for those who can't.
How Has This Been Tested?
FirstUseWelcome,OnboardingBanner,DataSourceIcons, andPlatformIconscovering eligibility, permission-gated rendering, dismissal (including the confirm dialog), and the action sections.yarn tsgo,yarn lint:changes, andyarn testfor the touched frontend files.Screenshots (if appropriate):
Types of changes
Checklist:
/nocl Onboarding experience ships disabled behind the
onboarding_experiencefeature flag, so there is no user-visible change yet.