Skip to content

[feat] Adds a context-aware schema visualizer, modernizes the UI, and bugfixes#184

Merged
floydtree merged 7 commits into
ocsf:mainfrom
floydtree:server-revamp
Jun 22, 2026
Merged

[feat] Adds a context-aware schema visualizer, modernizes the UI, and bugfixes#184
floydtree merged 7 commits into
ocsf:mainfrom
floydtree:server-revamp

Conversation

@floydtree

Copy link
Copy Markdown
Contributor

Visual Refresh

  • Updated CSS design system: Inter font, refined color palette (teal primary), improved spacing and typography
  • Sidebar options revamped with pill toggle switches (Dark mode, Compact view, Show deprecated)
  • Added global compact/wide layout toggle (persisted via localStorage)
  • Moved theme toggle from top navbar into sidebar Options section

Context-Aware Visualizer (inspired by #177)

  • New /visualizer route rendered as a Phoenix template within the app layout
  • Accessible via "Visualizer" button on class, object, and category pages
  • Scoped graph showing only relevant relationships: parent category, parent class (extends), and object-type attributes as connected nodes
  • Double-click navigation between nodes (loads that entity's visualizer)
  • Profile/extension filtering respected in graph data (API calls forward current selection)
  • Deprecated annotations: deprecated objects/classes shown with dashed amber border, deprecated attribute edges shown as amber dashed lines, "D" badge in detail panel
  • Show/hide deprecated toggle updates graph in real-time
  • Cytoscape.js served locally (no CDN dependency)
  • Removed old vis-network graph pages (/class/graph/, /object/graph/), templates, Schema.Graph module, and vis-network.min.js (702KB)

Bug fixes

  • Profile auto-selection bug: updateProfileVisibility() no longer writes to localStorage on page load, breaking the self-reinforcing loop
  • Extension/profile URL handling: Changes preserve context params (e.g., class=X) when toggling extensions/profiles on the visualizer page
  • Extension-scoped entities: Visualizer correctly handles ext/class_name style scoped names, consistent with the rest of the app

Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
Signed-off-by: Rajas Panat <rajaspa@amazon.com>
@floydtree floydtree self-assigned this Jun 18, 2026
@floydtree floydtree marked this pull request as ready for review June 18, 2026 17:11
@floydtree floydtree added bug Something isn't working enhancement New feature or request labels Jun 18, 2026
@floydtree floydtree merged commit 62e08ae into ocsf:main Jun 22, 2026
1 check passed
@floydtree floydtree deleted the server-revamp branch June 22, 2026 18:56
@PR0CK0

PR0CK0 commented Jun 24, 2026

Copy link
Copy Markdown

Hooray for the visualizer! Pleasure working with you @floydtree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants