Skip to content

docs: phase 3 graph view implementation plan - #580

Merged
1 commit merged into
mainfrom
docs/phase-3-graph-view-plan
Apr 24, 2026
Merged

docs: phase 3 graph view implementation plan#580
1 commit merged into
mainfrom
docs/phase-3-graph-view-plan

Conversation

@CybotTM

@CybotTM CybotTM commented Apr 24, 2026

Copy link
Copy Markdown
Member

Summary

40-task plan executing the Phase 3 graph view design spec (merged on main as 51b1773). Organised as 6 slices plus a pre-flight verification section; each slice ends green and is independently revertable.

Slice Tasks Outcome
Pre-flight 5 Empirically verify the 5 open assumptions from spec §13 (parseDN escaping, ETag derivation, OU-scan perf, nested-group membership, reduced-motion audit).
1 9 internal/ldap_cache/graph.go — types, per-focus BFS walkers, caps, concentric math, cycle safety, tests.
2 5 /api/graph.json handler, ETag via body hash (mirrors /api/search-index.json), integration test.
3 8 /graph HTML template with SSR SVG + always-visible edge table; depth slider with no-JS fallback; AAA contrast tokens.
4 7 v2-graph.js — pan/zoom, keyboard nav, click-to-pivot, click-to-expand with aria-live, reduced-motion respect.
5 5 List-page Graph mode for /users, /groups, /computers; segmented List | Graph control.
6 6 Drawer pivots (View relationships → /graph); axe-core + tab-order ratchet; README conformance statement.

Each task gives exact file paths, runnable commands, actual test + implementation code (no placeholders or "add error handling here"), and a conventional-commit atomic signed commit message.

Design

See the accompanying spec for the full rationale. Key decisions locked in during brainstorming:

  • IA: dedicated /graph?entity=<dn> + List | Graph mode toggle on list pages.
  • Layout: concentric ego-centric rings. Hybrid positioning — Go assigns (ring, angle), client scales to viewport.
  • Library: hand-rolled SVG + plain JS. No new dependencies (CSP + bundle + supply-chain costs outweigh the benefit for a closed-form layout).
  • AAA: flat edge table always rendered below the canvas, not behind a toggle.
  • Interaction: click-to-pivot + click-to-expand. No editing from the graph.

Test plan (pre-merge)

  • Self-review block at the bottom of the plan cross-checks every spec section against a concrete task.
  • No placeholders found (other than the intentionally-flagged addOUChildren bug that's fixed in Task 5, and setupIntegrationTestApp that the implementer writes mirroring the existing setupFullTestApp).
  • Type consistency verified — NodeType / EdgeKind / GraphData field names match across all tasks.

This PR is the plan itself; the implementation lands on a separate feature branch per the plan's opening instructions.

40-task plan executing the 2026-04-24 graph view design spec, organised
as 6 slices that each end green and independently revertable:

- Pre-flight: verify the 5 open assumptions from spec §13 before
  starting.
- Slice 1 (9 tasks): graph builder in internal/ldap_cache/graph.go —
  types, per-focus BFS walks (user / group / computer / OU), per-ring
  + total caps, concentric layout math, cycle safety.
- Slice 2 (5 tasks): /api/graph.json handler — ETag via body hash
  mirroring /api/search-index.json, validation, integration test.
- Slice 3 (8 tasks): /graph HTML template — SSR SVG canvas, always-
  visible edge table, depth slider with no-JS fallback, graph CSS
  tokens with AAA-verified contrast.
- Slice 4 (7 tasks): v2-graph.js — pan/zoom, keyboard nav, click-to-
  pivot, click-to-expand with aria-live announce, reduced-motion
  respect.
- Slice 5 (5 tasks): list-page Graph mode for /users, /groups,
  /computers with a segmented List | Graph control.
- Slice 6 (6 tasks): drawer pivots, axe-core + tab-order ratchet,
  README conformance statement.

Each task gives exact file paths, runnable commands, actual test +
implementation code (no placeholders), and an atomic signed commit
with conventional-commit prefix. Self-review at the end cross-checks
every spec section against a concrete task.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings April 24, 2026 17:43
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Apr 24, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.42%. Comparing base (51b1773) to head (1f4d52d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #580   +/-   ##
=======================================
  Coverage   67.42%   67.42%           
=======================================
  Files          29       29           
  Lines        2864     2864           
=======================================
  Hits         1931     1931           
  Misses        799      799           
  Partials      134      134           
Flag Coverage Δ
e2e 58.99% <ø> (ø)
unittests 67.85% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@CybotTM CybotTM closed this pull request by merging all changes into main in 383047a Apr 24, 2026
@CybotTM
CybotTM deleted the docs/phase-3-graph-view-plan branch April 24, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants