Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ Generic Start
** xref:dashboards/index.adoc[Overview]
** xref:dashboards/getting-started.adoc[Getting started]
** xref:dashboards/managing-dashboards.adoc[Managing dashboards]
** xref:dashboards/import.adoc[Import]
** xref:dashboards/ai-dashboards.adoc[AI dashboards]
** xref:dashboards/parameters-and-filters.adoc[Parameters and filters]
** xref:dashboards/sharing-dashboards.adoc[Sharing dashboards]
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
192 changes: 192 additions & 0 deletions modules/ROOT/pages/dashboards/import.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
= Import
:description: This page holds information about import options for dashboards.

When you create a dashboard, you can choose to **Import**.

In the **Import dashboard** dialog, you have several options to source the dashboard specification for the import:

* Browse for a JSON file on your machine.
* Select a dashboard specification that is stored in your database.
Copy link
Collaborator

Choose a reason for hiding this comment

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

'dashboard specification' sounds a bit awkward - is dashboard instance/dashboard save better?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Maybe also explicitly call out that dashboards stored in the database is a legacy storage mechanism

Copy link
Contributor Author

Choose a reason for hiding this comment

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

hm... what do we call it internally?
it's not quite the dashboard itself, rather the stored version of it, or the JSON representation of a dashboard

legacy storage mechanism as in we discourage users?

Copy link
Contributor

@FilipLeonard FilipLeonard Jul 23, 2025

Choose a reason for hiding this comment

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

Imo, good options are "dashboard JSON" or more verbose "dashboard JSON representation".

When "sourcing" a JSON, we show a toast saying "Dashboard loaded successfully". Should we use "load" instead of "source"?

Copy link
Collaborator

Choose a reason for hiding this comment

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

^ agree with Leo that "dashboard JSON" makes sense.
I also prefer load over source.

* Drag and drop or paste a dashboard specification in JSON format to the editor.
.Import dashboard dialog
image::dashboards/import/import-dashboard-dialog.png[]

Note that you only have the option to select a stored dashboard specification when there are stored dashboards in your database.
Copy link
Collaborator

Choose a reason for hiding this comment

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

can this note and the next paragraph be boxed in?


It is not possible to delete stored dashboards from the database through the dashboard application.

If the dashboard specification selected for the import is syntactically correct, the **Import dashboard** dialog displays a **Summary** and **Details** for the import.
This means that the import can be run.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Suggested change
[NOTE]
====
Currently, Aura dashboards only support the import of NeoDash dashboard specifications.
====

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added this note, but let's avoid making promises in the docs :)

Copy link
Collaborator

Choose a reason for hiding this comment

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

lets remember to remove this note in a couple of weeks


== Supported types
Copy link
Collaborator

Choose a reason for hiding this comment

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

call out that advanced types (via extension) are not supported


[cols="9,^4",options="header",grid="cols"]
|===
| NeoDash | Aura dashboards

| Table | ✅
| Graph | ✅
| Bar chart | ✅
| Pie chart | ✅
| Line chart | ✅
| Map | Converted to graph
| Single value | ✅
| Raw JSON | ❌
| Parameter select | Only node and relationship properties
| Form | Only node and relationship properties
Copy link
Contributor

Choose a reason for hiding this comment

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

NeoDash reports of type form are skipped.

| iFrame | ❌
| Markdown | ✅

|===


== Summary
Copy link
Collaborator

Choose a reason for hiding this comment

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

can this be a list? or something more concise? it feels like a lot to digest


Data fields relevant to the import are displayed under **Summary**.

The latest version of both NeoDash Labs and NeoDash commercial are supported.
However, the import procedure can always attempt to import a dashboard specification, even if the version differs from those.

The summary includes the number of imported pages, cards, parameters and filters.
You can see how many cards and filters were migrated, converted or skipped.

Cards and filters tagged as migrated have a type that is supported by Aura dashboards and they can be fully migrated.
If they are converted, Aura dashboards converts them to the closest supported similar type available, for example a NeoDash commercial map report is converted to an Aura dashboard graph visualization.
The import procedure skips any types it can neither migrate nor convert.

Note that not all settings from NeoDash reports have a counterpart in Aura dashboards.
Any such settings do not affect the import and are not preserved by the import procedure.


== Details

Expand the **Details** to inspect incidents reported during the import.

Entries include the location of the incident in the JSON specification, that is, the specific page and report, as well as a description what went wrong or is of note.


== Example
Copy link
Collaborator

Choose a reason for hiding this comment

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

i'm not sure how i feel about having an (non-ideal migration) example in the docs.
Should we just skip it? I know we discussed otherwise, but I don't see the added value if we can make the details section easier to comprehend

Copy link
Contributor Author

Choose a reason for hiding this comment

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

removed the example, and added a list to the details section. we should probably add some entries to this list


Here is an example NeoDash dashboard specification:

[source, json, indent=0]
----
{
"uuid": "bb8f1146-6ea1-4640-9e19-60723648c68f",
"title": "NeoDash filters",
"version": "3.1",
"settings": {
"pagenumber": 0,
"editable": true,
"fullscreenEnabled": false,
"parameters": {
"neodash_product_productname": "Chai",
"neodash_product_productname_display": "Chai",
"undefined": "",
"undefined_display": ""
},
"theme": "light"
},
"pages": [
{
"title": "Main Page",
"reports": [
{
"id": "69e42486-87b7-4c6f-b8a5-e7da8e739434",
"title": "Product name fiter",
"query": "MATCH (n:`Product`) \nWHERE toLower(toString(n.`productName`)) CONTAINS toLower($input) \nRETURN DISTINCT n.`productName` as value, n.`productName` as display ORDER BY size(toString(value)) ASC LIMIT 5",
"width": 4,
"height": 2,
"x": 0,
"y": 0,
"type": "select",
"selection": {},
"settings": {
"type": "Node Property",
"entityType": "Product",
"propertyType": "productName",
"propertyTypeDisplay": "productName",
"parameterName": "neodash_product_productname"
},
"schema": [],
"fields": [],
"settingsOpen": true,
"collapseTimeout": "auto"
},
{
"id": "16b245a0-6467-4cb8-9a34-6a8cf77487c5",
"title": "Free text",
"query": "RETURN true;",
"width": 4,
"height": 3,
"x": 8,
"y": 0,
"type": "select",
"selection": {},
"settings": {
"type": "Free Text",
"entityType": "\"The free text\"",
"parameterName": "neodash_\"the_free_text\""
},
"schema": [],
"fields": []
},
{
"id": "1a822a3c-d703-4c52-9532-68e9e6a0cd43",
"title": "Date param select",
"query": "RETURN true;",
"width": 4,
"height": 4,
"x": 12,
"y": 0,
"type": "select",
"selection": {},
"settings": {
"type": "Date Picker",
"entityType": "this_is_a_date",
"parameterName": "neodash_this_is_a_date"
},
"schema": [],
"fields": []
},
{
"id": "70b4b53b-1ed8-4759-8881-e85d4b412e2d",
"title": "Product name fiter",
"query": "MATCH (n:`undefined`) \nWHERE toLower(toString(n.`undefined`)) CONTAINS toLower($input) \nRETURN DISTINCT n.`undefined` as value, n.`undefined` as display ORDER BY size(toString(value)) ASC LIMIT 5",
"width": 4,
"height": 4,
"x": 4,
"y": 0,
"type": "select",
"selection": {},
"settings": {
"type": "Node Property"
},
"schema": [],
"fields": [],
"settingsOpen": true,
"collapseTimeout": "auto",
"advancedSettingsOpen": true
}
]
}
],
"parameters": {},
"extensions": {
"active": true,
"activeReducers": []
}
}
----

Upon import, the following **Summary** and **Details** are generated:

.Example import
image::dashboards/import/import-example.png[]

The import procedure was only able to import two of the four filters in the dashboard specification.
The details hint at the reason: the second and third report (index 1 and 2) have an unsupported parameter select type (`Free Text` and `Date Picker`).
The third **Details** entry reveals that the fourth report is missing an entity type, a property type and a parameter name.
However, the import can still successfully create a parameter for this parameter select report, while it cannot for the other two.
7 changes: 5 additions & 2 deletions modules/ROOT/pages/dashboards/managing-dashboards.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,18 @@ The number of dashboards you can create depends on your Aura tier:

== Creating a dashboard

If you have no dashboards, select either **Create from scratch** or **Create with AI**.
If you have no dashboards, select **Create dashboard** and either **Create from scratch** or **Import**.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

when will it be available? asking because i think i need to retake some screenshots :)

Copy link
Collaborator

Choose a reason for hiding this comment

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

it's planned for this DevCycle, so probably in the next 2-3 weeks.

Alternatively, select **Create with AI**.

.Create your first dashboard
image::dashboards/create-first-dashboard.png[]

If you want to create another dashboard: use **Create Dashboard** at the top right, and select either **Create from scratch** or **Create with AI**.
If you already have a dashboard and want to create another, use **Create Dashboard** at the top right, and select **Create from scratch**, **Import** or **Create with AI**.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same here, UI will change


**Create from scratch** takes you directly to a new and empty dashboard.

See xref:/dashboards/import.adoc[] to learn more about importing dashboards.

See xref::/dashboards/ai-dashboards.adoc[] for advice how to create a dashboard via prompt.


Expand Down