A widget is one query plus one visualisation. A dashboard is a saved arrangement of widgets. You build a widget in the Query Builder, save it, and then place it on a dashboard.
You can write a widget's query three ways: by picking fields on the Query tab, by writing it on the SQL tab, or by describing it to ZIN on the AI tab. All three feed the same live preview on the right of the screen.
This guide walks through every part of the Query Builder and then shows how to put the finished widget on a dashboard. For chart types and colours in depth, see How to Customize Widget Appearance & Colors in Interno. For everything about dashboards themselves (templates, filters, export and import), see How to Manage Dashboards (Templates, Filters, Export/Import).
defence:widget:create to open the Query Builder for a widget. Without it the builder shows an unauthorised screen.defence:dashboard:create to create a dashboard and defence:dashboard:update to arrange one.There are three ways in. All open the same screen.
| From | Click |
|---|---|
| Sidebar → Dashboard | Create → Widget |
| Sidebar → Assets → Query Library → Widget tab | Create Widget |
| A dashboard in edit mode → Widgets: selector | Add Widget |
The screen has two panels. Query Builder on the left holds three tabs: Query, SQL and AI. Visualization on the right shows the result, with Reset and Create Widget buttons above it.
Switching between the Query, SQL and AI tabs clears what you have built on the current tab. Finish on one tab, or copy your query first.
Navigation: Sidebar → Dashboard → Create → Widget → Query tab
You must select at least one field or one aggregation. Otherwise Interno shows Unable to Proceed, please select at least one column or aggregation.
Changing the Source resets the rest of the query, because the fields belong to the table.
Every field picker in the builder shows each field with a readable label (for example Last Logon Time), the underlying TABLE.COLUMN name beneath it, and a small chip showing its type. Use the Group: toggle at the top of the list to group the fields by theme or by table. Type in the box to search.
The themes are Timestamps, Risk, Network, Identity, Identifiers, Status and Other. Interno assigns a theme from the words in the field's name.
| Block | What you set | Notes |
|---|---|---|
| Filters | A field, an Operator and a Value | Click Add More Filter for another row and choose And or Or between rows. The value box matches the field: text, number, a Yes or No choice, or a list |
| Aggregations | A function (Condition) and the field to apply it to (Value) | Click Add More Aggregation for another. See the aggregation table below |
| Group by | One or more fields to group the result by | Use it together with an aggregation |
| Order by | A field and ASC or DESC | Click Add More Order for another |
| Limit | The maximum number of rows | Must be a number. If you leave the Limit block off, the result is capped at 100 rows |
To remove a row from a block, click the delete icon at the end of the last row.
The operators offered depend on the type of the field.
| Field type | Operators offered | Meaning |
|---|---|---|
| Text | eq, in | Equals; is one of |
| Whole number, decimal, date, date and time | eq, gt, gte, lt, lte | Equals; greater than; greater than or equal; less than; less than or equal |
| List | contains | The list contains the value |
| Function | Offered for |
|---|---|
count | Identifier fields (names ending in _ID) and the host name field |
min, max | Number fields and date fields |
avg, sum | Number fields |
If you select only category-style fields and no aggregation, a chart would repeat the same values row after row. Interno offers a hint: You picked category fields. Add a Count so the chart shows totals per value instead of repeated rows.
The fields of the joined tables become available in every field picker. If you later untick a table, any fields, filters, groupings, orderings and aggregations that used it are removed from the query, and the rest is left as it was.
The Data Dictionary is a searchable list of every field Interno holds for your organisation, across all tables. Use it when you know what you are looking for but not which table it is in.
Navigation: Sidebar → Dashboard → Create → Widget → Query tab → Browse data dictionary
TABLE.COLUMN name.TABLE.COLUMN name and its description. A field without a written description shows No description yet.What + Insert does depends on your query so far:
| Your query | What happens |
|---|---|
| No source chosen yet | The field's table becomes the Source and the field is added to Select |
| The field is in your source, or in a table you already joined | The field is added to Select |
| The field is in a related table you have not joined | The table is joined for you, the field is added, and you see Linked (table) so you can use this field. |
| The field is in a table with no link to your source | Nothing is added. You see That field is from a different source with no link to your current one. Choose it as your Source instead. |
If the search finds nothing, the panel reads No fields match "…". Try a field or table name.
For how tables and system fields are organised, see Interno Data Sources & Fields (Data Dictionary).
Navigation: Sidebar → Dashboard → Create → Widget → SQL tab
Rules for the SQL you write:
SELECT query. Statements that change structure or permissions (CREATE, DROP, ALTER, TRUNCATE, GRANT, REVOKE) are refused.View Schema replaces the preview with the Table Relationship panel.
The AI tab is offered when you are building a widget. It is not shown when you build an alert or an evidence query.
Navigation: Sidebar → Dashboard → Create → Widget → AI tab
The AI tab produces one query per prompt. To hand-edit a generated query, copy it, switch to the SQL tab and paste it there.
When the query returns rows, the Visualization panel shows them as a table and offers the display controls above the result.
| Control | What it does |
|---|---|
| Chart Type: | Switches between a table, a card and the chart types |
| x-Axis: | The field along the category axis. Shown for chart types that have one |
| y-Axis: | One or more fields to plot. Pie-style charts take exactly one |
| More Options (three-dot icon) | Extra settings for some chart types: the axis label when you plot more than one field, Include Total: for doughnut charts, Show Legend: for pie-style charts |
| Color Palette (round rainbow icon) | Chooses the colours. Hidden for the table and card types |
A new query starts as a table, with the first column as the x-axis and the second as the y-axis. If the chart type you choose does not fit the fields you selected, the preview shows why, for example Pie chart requires exactly 1 Y-axis metric.
The full list of chart types, what each needs, and how to change colours are covered in How to Customize Widget Appearance & Colors in Interno.
| Field | Required | Notes |
|---|---|---|
| Title | Yes | The widget's name. It cannot be blank or only spaces |
| Description | Yes | Up to 500 words. Shown as the information tooltip on the widget card |
| Linked Widget | No | Offered for every chart type except table. See Linking a widget to a detail widget below |
Interno confirms that the widget was created and takes you to the Widget tab of the Query Library, where the new widget is at the top of the list.
Reset, next to Create Widget, clears the query and the preview so you can start again.
A widget is not placed on any dashboard when you save it. Add it to a dashboard as described below.
A Linked Widget connects a summary widget to a second widget that holds the detail behind it, for example a count card linked to the full table.
On a dashboard and in the Query Library preview, a widget that has a link shows a View link icon in its toolbar. Clicking it opens a Linked Widget page showing the detail widget on its own.
To let users click a bar or a slice and see the rows behind that one value, set up a drilldown instead. See How to Use the Query Library.
Interno confirms with Widget updated successfully and returns you to where you came from. The change shows on every dashboard that uses the widget.
The standard widgets that ship with Interno cannot be edited or deleted.
When a preview fails, a red warning icon appears next to the Preview button. Hover over it to read the reason. Saving a widget runs the same checks, so a query that cannot run is refused before it is saved.
| Message starts with | What it means | What to do |
|---|---|---|
| SQL validation failed: | The query broke one of Interno's rules. The message names the problem, for example a schema prefix on a table name, or a statement that is not allowed | Correct the part named in the message |
| SQL rejected by ClickHouse: | The query is well formed but the data engine could not make sense of it, for example an unknown column or a function it does not have | Check column names in View Schema and use functions the data engine supports |
| Query execution failed in ClickHouse: | The query was accepted but failed while running, for example because it needed more memory than allowed | Narrow the query with a filter or a lower limit |
| No valid query could be generated | The fields picked on the Query tab did not add up to a runnable query | Check the source, the selected fields and the blocks |
| Something went wrong | Interno could not run the check at all. This is not a problem with your query | Try again shortly. If it persists, contact support |
Navigation: Sidebar → Dashboard → Create → Dashboard
Interno opens the new dashboard in edit mode.
Navigation: Sidebar → Dashboard → open the dashboard → ⋮ → Edit Dashboard
| To | Do this |
|---|---|
| Add or remove widgets | Click the Widgets: selector, select or deselect widgets in the Select Widgets window, and click Apply Changes |
| Move a widget | Drag its card to a new position |
| Resize a widget | Drag the handle at its bottom-right corner |
| Tidy the grid | Click Auto Layout |
| Edit a widget's query | Click the edit icon on its card (Navigate to edit widget) |
| Take a widget off the dashboard | Click the close icon on its card (Remove from dashboard), then Confirm Remove |
| Rename the dashboard or change its type | Click the pencil icon next to the dashboard name |
| Save | Click Save Changes |
Things to know:
Each step is described in full in How to Manage Dashboards (Templates, Filters, Export/Import).
In view mode, each chart widget has a small toolbar and responds to clicks.
| Control | What it does |
|---|---|
| Information icon next to the title | Shows the widget's description |
| Filter icon | Filters this widget only, for the current visit |
| Change Preview | Temporarily changes the x-axis, y-axis and chart type |
| Data View | Shows the rows behind the chart in a table under it. Click again to hide |
| Save as image | Downloads the chart as an .svg image named after the widget |
| View link | Opens the linked detail widget. Shown only when the widget has one |
| Click a bar, slice or point | Opens Chart Data Details with the rows for the value you clicked. Not available on radar, sunburst, theme-river and parallel charts |
Table widgets have their own toolbar: Search, Filter, Visibility (show or hide columns) and Export data, which downloads the rows as a CSV file.
The Query Builder shows an unauthorised screen → Building a widget needs defence:widget:create. Ask your administrator.
"Source required" → Choose a table in Source before clicking Preview.
"Unable to Proceed, please select at least one column or aggregation" → Pick at least one field in Select, or add an aggregation.
The preview says "No data found!" → The query ran but matched nothing. Loosen the filters, and check that the integration feeding the table has completed a scan.
The preview says "No visualization available!" → Nothing has been previewed yet, or the last preview failed. Build a query and click Preview, and hover over the red warning icon if one is shown.
A red warning icon appears next to Preview → Hover over it for the reason. See the query errors section above.
A table I expected is not in Source → Tables appear once the matching integration has collected data. See How to Configure Connectors/Integrations.
The table I want to join is not under Include related data → Only tables with a known link to your source can be joined. Choose the other table as the Source instead, or write the join on the SQL tab.
Count is not offered for the field I want → On the Query tab, count is offered for identifier fields and the host name. Use Apply Count when Interno offers it, or write the query on the SQL tab.
My chart repeats the same value over and over → You selected category fields without an aggregation. Click Apply Count, or add a Count aggregation and a Group by.
I only ever get 100 rows → Without a Limit block the result is capped at 100 rows. Click Limit and enter a higher number.
The AI tab produced nothing → ZIN could not turn the prompt into a query. Name the tool, the metric and the grouping you want, and try again.
The AI tab is missing → It is offered only when building a widget, and not when editing an existing one.
My work vanished when I changed tab → Switching between Query, SQL and AI clears the current tab. Rebuild the query on the tab you want to finish on.
"Duplicate Widget Detected" → A widget with a similar query already exists. Use the existing one, or click Continue Anyway to save yours as well.
"Description required" → A widget must have a description before it can be saved.
I saved a widget but it is not on my dashboard → Saving a widget adds it to the Query Library only. Open the dashboard in edit mode and add it with the Widgets: selector.
I changed a chart with Change Preview and it went back → Change Preview is temporary. To change a widget permanently, edit it in the Query Builder and click Update Widget.
Need more help? Contact support@zeron.one