Plugins let you build lightweight UI extensions that surface metadata directly in the Cortex UI. Cortex already renders custom data automatically in the Custom data & metrics tab on every entity page. However, many teams want to go further, like adding richer visualizations, grouping related fields, embedding links, or turning custom data into more opinionated dashboards.
This guide shows how to build a plugin page that reads custom data and renders it using your own UI.
Overview
Cortex supports attaching structured metadata to any catalog entity using Custom Data. This metadata automatically appears in the Custom Data tab of the entity page.
If your team wants to:
organize fields into custom sections
add tables, charts, or diagrams
highlight important metadata
provide context-specific controls
match a specific visualization or compliance requirement
a plugin can fetch the same custom data and render a tailored UI that sits alongside the built-in Cortex experience.
Step 1: Add custom data to an entity
To add custom data to an entity, you can use the Custom Data API. To illustrate how this works, we’ll use the following fictional metadata object:
This object is stored under the custom data key sample-metadata.
Step 2: Register the plugin
Once you have custom data to visualize, register your plugin in Cortex. Follow the Creating Plugins documentation, making sure to choose Specific entity types as the context. This ensures your visualization displays when viewing an entity that contains the custom data.
Step 3: Download the Plugin Template
After registering the plugin, Cortex provides a downloadable plugin starter template, including:
React setup
Plugin Context provider
Styling tokens (--cortex-plugin-*)
Local development instructions
A preconfigured route structure
Download the template from the Register plugin page in Cortex. This template is where you’ll build your visualization.
Step 4: Build the Custom Data Visualization
Inside the downloaded template:
Add a new component
Use the Plugin Context to read the current entity tag
Fetch custom data using CortexApi.proxyFetch()
Render a styled table or any UI you choose
Below is a complete example component (SampleMetadataView.tsx) that renders the fictional sample-metadata object.
Example Component
Add the component to App.tsx
Inside the downloaded template, open App.tsx.
In a single-view plugin like this, the recommended pattern is to render your visualization directly from App.tsx. Here’s what the minimal setup looks like:
src/App.tsx
Step 5: Upload and Preview the Plugin in Cortex
Once your plugin is ready:
Run npm run build (or equivalent)
Upload the generated UI.html bundle in the Cortex UI
Open an entity of a supported type
Select your plugin in the left sidebar
Verify your custom visualization displays correctly
This gives you a full end-to-end workflow for developing, testing, and launching plugin-based custom data visualizations.