Plugins
FlowX logo

FlowX

anilhut

Get plugin

Changelog

2.2.0

New Features

  • Ten value rows per node, up from six. value7_header through value10_url are read like the existing ones, the type column accepts seven, eight, nine and ten, and the popup shows all ten. A node's height follows from the rows it shows, so ten stands 530px tall against six's 338px.

Changes

  • The six value node types were six copies of the same component differing only in how many rows they rendered. They are generated from that number now, along with their heights and the field-mapping options, so the row count lives in one constant. Node types, column names and rendered output are unchanged.

2.1.1

Fixes

  • Resolved the vulnerable transitive dependencies reported by osv-scanner. One critical (websocket-driver) and eleven high-severity advisories across fast-uri, js-yaml, nanoid, postcss and ws, all reached through build and test tooling rather than the plugin itself. Each is pinned to a patched release within its existing major via overrides, alongside the entries already there. The built artifact is byte-for-byte identical to 2.1.0 — module.js hashes to the same sha256 — so nothing in the panel changes.

2.1.0

Fixes

  • Collapsed subtrees no longer reserve space. The dagre graph instance was reused across layouts, and its setNode/setEdge calls are additive, so nodes that were no longer visible stayed in the graph and kept their slot. Collapsing a node hid its children but left the gap they occupied, so sibling nodes never closed ranks. The graph is now rebuilt from scratch on every layout. This also fixes nodes removed by a data refresh leaving a gap behind.
  • The graph no longer jumps on data refresh. Every refresh cleared the canvas and redrew from scratch, so on a dashboard with auto-refresh the whole diagram blinked and snapped back to dagre's raw coordinates on each cycle. Refreshes now diff against what is on screen and only animate nodes that actually changed. The same jump happened when changing any panel option; that path is fixed as well.
  • URLs from the datasource are restricted to http/https and Grafana-internal paths. A value such as javascript:... previously reached the href attribute as-is, making it a clickable script. Anything that is not an http(s) address or a path beginning with / is now ignored. As a side effect, text that was never a working link (a bare example.com, an N/A placeholder) no longer renders a broken one.

New Features

  • Animated layout transitions. Collapsing and expanding now tween instead of snapping: nodes that remain slide to their new position, nodes that appear grow out of their nearest visible ancestor, and nodes that disappear shrink back into it and fade out. Edges are redrawn every frame so they move together with their nodes. Honors the OS "reduce motion" setting.
  • Fit View on Collapse/Expand now focuses the toggled node. Instead of framing the entire graph, expanding frames the node together with the children it just revealed; collapsing frames it together with its siblings. The zoom is capped at native size so a small group never fills the pane. The viewport move runs concurrently with the node transition, so both read as a single movement.
  • Multiple links per URL field. Every URL column — value1_url through value6_url and the node's own url — now accepts JSON describing any number of labelled links, alongside the plain single address it has always taken. One link opens directly from the icon as before; several show a count on the icon and open a list at the icon, in front of the node popup, closed with its ✕, Esc, a click anywhere outside it, or a click on the canvas. It is shaped as a menu rather than a copy of the node popup — narrower, flatter, a title bar with a close control and rows that highlight on hover — so the two stay legible where they overlap. The list is kept inside the panel bounds, so it is never clipped near an edge. url_label is unchanged and still names the node's button.

Changes

  • Layouts are stabilized against the previous frame. dagre re-solves the whole drawing and re-anchors it to the origin on every run, which shifted the entire diagram even when nothing near it changed. The new layout is now translated back over the old one using the median displacement of the nodes present in both, so the bulk of the graph stays still and only the branch that actually changed moves. "Reset to Default" and the layout direction buttons deliberately re-anchor and are exempt.

2.0.4

Fixes

  • Scoped @xyflow/react styles inside the panel container using nested Emotion CSS selectors — no direct CSS imports remain.

2.0.3

Fixes

  • Replaced injectGlobal with component-scoped Emotion styles using useStyles2 to comply with Grafana plugin guidelines.
  • Restored @xyflow/react/dist/style.css import for standard library styling.

2.0.2

Fixes

  • Upgraded serialize-javascript dependency override to 7.0.5 to resolve high severity OSV vulnerability.

2.0.1

Fixes

  • Converted CSS imports to emotion injectGlobal to comply with Grafana plugin marketplace requirements.
  • Replaced @ts-ignore comments with proper type casts.
  • Updated README demo images to use absolute GitHub raw URLs.
  • Added sponsor link to plugin metadata.
  • Added build provenance attestation to release workflow.

2.0.0

Breaking Changes

  • Minimum Grafana version updated to 11.6.11. Grafana 10.x is no longer supported. This change was required to ensure React 19 compatibility ahead of Grafana 13. If you are using Grafana 10.x, please stay on version 1.0.3.

New Features

  • Collapse / Expand Nodes: Each node that has children now shows a collapse/expand button at its source edge. Clicking it hides or reveals the subtree beneath that node. The feature correctly handles cycles and multiple-parent scenarios using BFS reachability.
  • Initial Depth: New Initial Depth panel option controls how many levels are visible when the panel first loads. 0 means all nodes are expanded; 1 shows only root nodes; 2 shows roots and their direct children, and so on.
  • Fit View on Collapse/Expand: New panel option that automatically fits the view every time a node is collapsed or expanded.
  • Reset to Default Button: A "Reset to Default" button is now shown in the top-left corner (alongside the layout direction buttons) that clears all manual drag positions and resets the collapse state to the configured Initial Depth.
  • State Preserved on Data Refresh: Collapse/expand state and manually dragged node positions are now preserved across data refresh cycles. Only removed nodes are cleaned up.
  • TypeFive & TypeSix Node Types: Two new rectangular node types (five, six) supporting 5 and 6 value rows respectively, consistent with the existing type sizing pattern.
  • Custom Field Mapping: Added "Node Field Mapping" and "Edge Field Mapping" panel option categories. Users can now map any column name from their data source to the expected FlowX field names. All mapping fields are optional — leaving a field empty falls back to the default column name.
  • Value 5 & Value 6 in Popup: The node popup now displays value5 and value6 fields (header, data, and URL) in addition to the existing four.

Changes

  • React 19 compatibility: externalized react/jsx-runtime to prevent bundling conflicts with Grafana 13+.
  • Auto fit-view now triggers when clicking "Top to Bottom", "Left to Right", and "Reset to Default" buttons.

1.0.3

  • CSS classes have been made specific.
  • Root URL flag deleted.

1.0.0

Initial release.

Plugin Insights

Quality scores for version 2.2.0

  • Status: Passed
    Security

    All checks passed

  • Status: Passed
    Maintenance

    All checks passed

  • Status: Passed
    Documentation

    All checks passed

Version
2.2.0
Dependencies
  • Grafana >=11.6.11
Developer
anilhut
Last Updated
August 28, 2026