Skip to content

feat(ui): add Attack Paths product tour (driver.js PoC)#11383

Open
pfe-nazaries wants to merge 9 commits into
masterfrom
feature/driver-js-poc
Open

feat(ui): add Attack Paths product tour (driver.js PoC)#11383
pfe-nazaries wants to merge 9 commits into
masterfrom
feature/driver-js-poc

Conversation

@pfe-nazaries
Copy link
Copy Markdown
Contributor

Context

PoC introducing a product-tour pattern to Prowler using driver.js, applied to the Attack Paths workflow.

Description

  • ui/lib/tours/: swappable abstraction (tour definition, React hook, persistence adapter, theming).
  • attack-paths.tour.ts + attack-paths-empty.tour.ts: the two tours wired on /attack-paths.
  • ui/styles/tours.css: themed popover bound to existing design tokens. One new --text-button-primary token in globals.css so the Next button text has accessible contrast against --bg-button-primary.
  • skills/prowler-tour/: drift-detection skill that keeps tours aligned with the covered UI.
  • ui/scripts/check-tour-alignment.mjs: syntactic CI gate that fails on orphan data-tour-id selectors.

Steps to review

  1. pnpm run dev, log in, open /attack-paths in a fresh session — full tour auto-opens and drives the underlying UI between anchored steps.
  2. Open /attack-paths with zero scans available — the empty-state mini-tour opens instead, pointing at Scan Jobs.
  3. Toggle light/dark theme; the overlay and popover re-render in the active palette.
  4. pnpm run tour:check exits 0; remove a data-tour-id attribute to confirm the script fails on drift.

Screenshots of the six tour steps available locally (tour-step{1..6}*.png) — will attach in a follow-up comment.

Checklist

Community Checklist
  • This feature/issue is listed in here or roadmap.prowler.com
  • Is it assigned to me, if not, request it via the issue/feature in here or Prowler Community Slack

UI (if applicable)

  • All issue/task requirements work as expected on the UI
  • Screenshots/Video - Mobile (X < 640px)
  • Screenshots/Video - Tablet (640px > X < 1024px)
  • Screenshots/Video - Desktop (X > 1024px)
  • Ensure new entries are added to ui/CHANGELOG.md

License

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@github-actions github-actions Bot added github_actions Pull requests that update GitHub Actions code component/ui labels May 28, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 28, 2026

✅ All necessary CHANGELOG.md files have been updated.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 28, 2026

Conflict Markers Resolved

All conflict markers have been successfully resolved in this pull request.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 28, 2026

🔒 Container Security Scan

Image: prowler-ui:7e8caeb
Last scan: 2026-05-29 08:30:16 UTC

📊 Vulnerability Summary

Severity Count
🔴 Critical 2
Total 2

2 package(s) affected

⚠️ Action Required

Critical severity vulnerabilities detected. These should be addressed before merging:

  • Review the detailed scan results
  • Update affected packages to patched versions
  • Consider using a different base image if updates are unavailable

📋 Resources:

Pablo F.G and others added 9 commits May 29, 2026 09:00
- Add driver.js abstraction under ui/lib/tours with localStorage persistence
- Ship full Attack Paths tour and empty-state mini-tour for users with no scans
- Add prowler-tour skill and CI alignment script to prevent selector drift

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Drop tour meta-commentary about auto-selecting scan/query
- Use "provider" to match app terminology
- Replace technical "renders the result" with plain "see the graph"
- Friendlier outro: "You're all set" instead of "clear browser storage"

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Drop WHAT-describing JSDoc; keep comments explaining non-obvious WHY
- Remove time-rotting markers (PoC/v1 notes, design-doc refs, path coupling)
- Tighten inline rationale on AWS-scan and demo-query selection
- Remove openspec references and v1/PoC rotting markers
- Restrict allowed-tools to read-only (Read, Glob, Grep)
- Move report template to references/output-format.md
- Convert remaining second-person prose to imperative form
- Generize TourStep/TourDefinition/handlers over a literal target union
- Add defineTour helper that preserves step targets through const inference
- Validate stepHandlers keys and waitForStep args at useDriverTour call sites
- Align prowler-tour skill template and architecture reference

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the multi-sentence description with a single concise line and
add the PR link.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add DOM → tour orphan check to the alignment script
- Warns (does not fail) on data-tour-id attributes no tour references
@pfe-nazaries pfe-nazaries force-pushed the feature/driver-js-poc branch from 1b23c11 to 1ef1509 Compare May 29, 2026 08:25
@pfe-nazaries pfe-nazaries marked this pull request as ready for review May 29, 2026 08:27
@pfe-nazaries pfe-nazaries requested review from a team as code owners May 29, 2026 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/ui github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant