Skip to content

Commit 31e898b

Browse files
nielsdejongalfredorubin96dependabot[bot]BennuFireJonanOribe
authored
2.4 Release (#688)
* Made API keys hidden (password fields) in the query translator module * Added new report action type for tables: multiselect checkboxes (#664) * Work in progress on table checkboxes * Fix handling external updates of parameter values in parameter selector * Improved handling of multiselector parameters for tables with checkboxes * Removed console log statement. Fix invalid behaviour * Updated comments * Added multiselect value limit * Clean up action rule create modal * Added docs on multiple selection with table rows and report actions * Fix handling external updates of parameter values in parameter selector (#663) * Fix handling external updates of parameter values in parameter selector * Removed console log statement. Fix invalid behaviour * Updated comments * Feature/new dashboard load UI (#657) * Added sidebar prototype * Return of the sidebar * Add database selector to sidebar * Iterating on the dashboard sidebar interface * Fixed usage of hardcoded color * Updated dashboard loading mechanism, iterating * Updated dashboard loading mechanism, iterating * Updated file structure for dashboard sidebar * Improved modal/menu handling for dashboard load * Import/export dashboards * New dashboard sharing interface * Removed old save/load modal * Finalized v1 of the new multi-dashboard UI * removing useless imports * Removed old isLoaded in state of dashboard load screen. Updated warning buttons --------- Co-authored-by: Alfred Rubin <[email protected]> * Bump @babel/traverse from 7.21.4 to 7.23.2 in /gallery (#670) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.4 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Harold Agudelo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @babel/traverse from 7.20.13 to 7.23.2 (#669) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.13 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Harold Agudelo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niels de Jong <[email protected]> * Bump postcss from 8.4.23 to 8.4.31 in /gallery (#656) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.4.23...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Harold Agudelo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niels de Jong <[email protected]> * Bump postcss from 8.4.21 to 8.4.31 (#655) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.4.21...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Harold Agudelo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niels de Jong <[email protected]> * Text hard to read on dark theme (#668) * Hiding columns in Table does not work #374 * Revert "Hiding columns in Table does not work #374" This reverts commit dc36d84. * Text hard to read on Dark Theme #667 * Fixed code style --------- Co-authored-by: Niels de Jong <[email protected]> * Hotfix for wrong default parameter replacement in markdown * Add back arrow on connection modal (#675) * fix: add back arrow on connection modal * WIP on improved back arrow for connection modal * Fixed dismissable connection modal based on connected state and standalone mode --------- Co-authored-by: Niels de Jong <[email protected]> * VULCAN-126/Override default message (#683) * Override default message * Refactored code * refactored code * Added docs --------- Co-authored-by: Monish <[email protected]> * Fix/hiding columns in table (#685) * fixed the issues with not being able to close columns in table chart * reverted back to orignal testpass --------- Co-authored-by: aleksandarneo4j <[email protected]> * Fix parameters values (#641) Co-authored-by: Niels de Jong <[email protected]> * Updated dashboard format to 2.4. Double resolution for horizontal and vertical card placement. Fixed several small usability issues (#682) * Updated dashboard format to 2.4. Double resolution for horizontal and vertical card placement. Fixed several small usability issues * Handling for dashboards in standalone mode * cleaning code followign SonarCloud code smells * changed migration function to reduce duplication, tested on twitter example dashboard * changed how we fetch the latest version of the code * changed migration function to reduce duplication, to test for applicationThunks --------- Co-authored-by: Alfred Rubin <[email protected]> * Feature/gantt chart (#684) * Added forms skeleton * Completed form skeleton * WIP on forms interface * Form framework (data entry, running, success, error) added * Added comments * Adding fields specification interface * UI for specifying individual parameter in a form * changing Dockerfile to enable args during build * fixing typo on argument in dockerfile * reverting dockerfile to older version * Rendering parameters inside the form component * Added docs for forms. Improved stability on form * Fixed warnings in console * Finished IT test for forms report * Added package * added new field to disable a parameter selector (in this way it works only with actions) * Gantt Chart Visualization * Fixed issue where parameter values were not updated on external changes * Fixed styling on freetext spinner * Workaround for clipping menu selectors in Needle * fix(rule based styling): js doing is magic with parseFloat (some strings were casted to floats event if they were just strings starting with 0 * Added save button to form create UI * removing console logs * Fix for needle dropdowns not showing on modals * Sortable list for form parameters * Improving the drag 'n drop * Iterating on form interface * Final version of forms * Disabling test * Gantt chart with live data * Improved robustness of form / parameter select component * Improve Gantt chart customizability. Added report action for Gantt charts * Added wait-logic for form submission, so that all fields are debounced and set correctly * Added multiline support for freetext parameter selector * Added support for drilled-down parameters used in the forms component * Fixed issues with parameter selector/forms, improve usability * Added default advanced settings to form * hanging if orders to prevent wrong casting to number for certain edge cases (EX: string with numbers and E : 00E1304) * adding more options to gantt chart and adding variable calendar type * Prototype of Frappe Gantt implementation * Improved version of frappe gantt * work in progress on new gantt chart * Clean up code structure * Clean up and documenting Gantt chart * Gantt chart stability & arrow directions * Handling task dependency directions in Gantt chart * Improved styling * More optimization & style fixes. * Added docs for Gantt Chart * Added rule-based styling and actions to Gantt chart * Finalized Gantt chart docs, examples, and fallback date parsing * removing code smells * trying to plug quarter date format and cleaning code * cleaning code accordingly to SonarCloud * Fixed UI not populating correctly for rule-based styling and actions * Gantt - fixed default width/height for bars. Visible labels. Handling quarters * Updated label positions * Fixed inspect modal for Gantt chart, fixed arrow spacing between tasks * Fixed linting issues --------- Co-authored-by: Niels de Jong <[email protected]> Co-authored-by: Alfred Rubin <[email protected]> * adding in advanced config for the graph viz more graph layout config … (#690) * adding in advanced config for the graph viz more graph layout config options * added doc about the new advanced setting --------- Co-authored-by: aleksandarneo4j <[email protected]> * Adding form widget as a new extension (#568) * Added forms skeleton * Completed form skeleton * WIP on forms interface * Form framework (data entry, running, success, error) added * Added comments * Adding fields specification interface * UI for specifying individual parameter in a form * changing Dockerfile to enable args during build * fixing typo on argument in dockerfile * reverting dockerfile to older version * Rendering parameters inside the form component * Added docs for forms. Improved stability on form * Fixed warnings in console * Finished IT test for forms report * added new field to disable a parameter selector (in this way it works only with actions) * Fixed issue where parameter values were not updated on external changes * Fixed styling on freetext spinner * Workaround for clipping menu selectors in Needle * fix(rule based styling): js doing is magic with parseFloat (some strings were casted to floats event if they were just strings starting with 0 * Added save button to form create UI * removing console logs * Fix for needle dropdowns not showing on modals * Sortable list for form parameters * Improving the drag 'n drop * Iterating on form interface * Final version of forms * Disabling test * Improved robustness of form / parameter select component * Updated docs, added clear form button * removing code smells * cleaning code followign SonarCloud code smells * cleaning code followign SonarCloud code smells * removing code smells * Intelligent parameters clearing in forms --------- Co-authored-by: Alfred Rubin <[email protected]> * Model Examples and LLM improvements (#600) * now when changing database in a card the query will retrigger correctly * adding schema sampling with apoc.meta.data and changing system prompt * cleaning code and adding examples management * starting working on plugging examples to the model * examples plugged to state and to the modelClient to add the example prompy * fixed examples in modelCLient because the there was a missing edge case * added Q&A form for AI training * Updated styling, added validation * validation on q&a form (to talk with Marius about UX and styling) * watching smells on sonarqube * Question Answer form updated with tailwind and needle styling * WIP creating edit Q&A modal * working on examples modal * WIP trying to get index prop to pass for ExampleEditorModal to work properly * fix * WIP * latest * plugging modelExamples table to the state and changing folder structure * Issue with addModelExample action call * working on model examples and fixing prompt behaviour * Paginated table implemented. Needs styling. * pagination done * Added cypher code editor. No line numbers right now - would be useful. Also no label for cypher editor * Added loading button when saving, error message if cypher editor is empty upon submission, removed legacy code * latest * ready for review * changing prompt * Updated. Fixed editing. Ready for Review * fixing code smells * WIP * WIP ExampleDisplayTable2 * styling and pagination needed * table done with styling, pagination * deleted old table * code smell 2/7 check * check smells * Checking smells * moving component inside const * Table ready for review * Added initial pageSize * Fixed instructions on 'tweak model' screen * Fixed instructions on 'tweak model' screen * Got rid of show number of queries per page * checking code smells * removing useless row from task definition * changing folder names and changin from lazy import to normal on in ExtensionConfig * removing code smells * removing code smells * removing code smells * Fixed double dependency on react-table * refactoring code according to Sonarcube code smelles and fixed play button on card vie w to rerun the chatCompletion * Improved names * Usability improvements for LLM extension * Updating docs * Added docs for custom LLM examples --------- Co-authored-by: Alfred Rubin <[email protected]> Co-authored-by: jacobbleakley-neo4j <[email protected]> Co-authored-by: Niels de Jong <[email protected]> * Added release notes for 2.4 + bonus feature (keyboard shortcut to run query from the editor) (#694) * Release notes for 2.4 * Updated release notes. Added quick feature to run reports with keyboard shortcuts * Finalized release notes * Hotfix for not clearing disabled parameters in forms * Finalized release notes * Removed old gantt chart dependency * Bump docs version to 2.4 * Fixed issue with CodeMirror editor not capturing keys in Cypress test * Hotfix for automigrated tree layouts * Hotfixes for Sonarqube issues * minor fix in the forms where it wasn't getting the correct value in the settings --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Alfred Rubin <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Harold Agudelo <[email protected]> Co-authored-by: Jon Ander Oribe <[email protected]> Co-authored-by: Antônio Hugo <[email protected]> Co-authored-by: Monish <[email protected]> Co-authored-by: Aleksandar <[email protected]> Co-authored-by: aleksandarneo4j <[email protected]> Co-authored-by: alfredorubin96 <[email protected]> Co-authored-by: jacobbleakley-neo4j <[email protected]>
1 parent ae87c21 commit 31e898b

File tree

158 files changed

+7338
-1569
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+7338
-1569
lines changed

changelog.md

+33
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
## NeoDash 2.4.0
2+
NeoDash 2.4 is out! 🎂 This release packs a ton of new features, as well as improvements to the existing visualizations.
3+
4+
Key new features:
5+
- A new sidebar with support for managing, save and load multiple dashboards directly from the UI.
6+
[#657](https://github.com/neo4j-labs/neodash/pull/657)
7+
- Added **Forms** as a new extension. Forms let you combine multiple parameter selectors in one card and have users edit/submit data to Neo4j. [#568](https://github.com/neo4j-labs/neodash/pull/568)
8+
- Added a new advanced visualization type: Gantt charts. [#684](https://github.com/neo4j-labs/neodash/pull/684)
9+
- Doubled the grid resolution for dashboards, giving you more freedom to arrange visualizations. [#682](https://github.com/neo4j-labs/neodash/pull/682)
10+
- Several improvements for the natural language queries extension - including customizable prompting, and faster schema retrieval. [#600](https://github.com/neo4j-labs/neodash/pull/600)
11+
12+
Other improvements:
13+
- Support for multiselect checkboxes as a report action for tables. [#688](https://github.com/neo4j-labs/neodash/pull/688/commits)
14+
- Added keyboard shortcuts (CMD/CTRL+Enter) for running Cypher queries from the editor. [#694](https://github.com/neo4j-labs/neodash/pull/694/)
15+
- Added new experimental graph layouts (trees in various directions), with customizable level distance. [#690](https://github.com/neo4j-labs/neodash/pull/690)
16+
- Increased customizability for the Pie chart's styling. [#638](https://github.com/neo4j-labs/neodash/pull/638/)
17+
- Fixed issues with parameter selector: Better handling of integer / long parameters and processing external updates. [#641](https://github.com/neo4j-labs/neodash/pull/641/)
18+
- Improvements on text readability for the experimental dark mode. [#668](https://github.com/neo4j-labs/neodash/pull/668/)
19+
- UX improvements on database connection interface. [#675](https://github.com/neo4j-labs/neodash/pull/675/)
20+
- Added option to provide a custom message when no data is returned by a report. [#683](https://github.com/neo4j-labs/neodash/pull/683/)
21+
- Fixed issue where column names were not hidden correctly. [#685](https://github.com/neo4j-labs/neodash/pull/685/commits)
22+
23+
Thanks to all the contributors for this release:
24+
[alfredorubin96](https://github.com/alfredorubin96),
25+
[AleSim94](https://github.com/AleSim94),
26+
[BennuFire](https://github.com/BennuFire),
27+
[jacobbleakley-neo4j](https://github.com/jacobbleakley-neo4j),
28+
[hugorplobo](https://github.com/hugorplobo),
29+
[brahmprakashMishra](https://github.com/brahmprakashMishra),
30+
[m-o-n-i-s-h](https://github.com/m-o-n-i-s-h),
31+
[JonanOribe](https://github.com/JonanOribe),
32+
[nielsdejong](https://github.com/nielsdejong)
33+
134
## NeoDash 2.3.5
235
This is a bugfix / stability release directly following 2.3.4.
336

cypress/e2e/start_page.cy.js

+35-10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
loadDashboardURL,
99
sankeyChartCypherQuery,
1010
gaugeChartCypherQuery,
11+
formCypherQuery,
1112
} from '../fixtures/cypher_queries';
1213

1314
const WAITING_TIME = 20000;
@@ -86,7 +87,7 @@ describe('NeoDash E2E Tests', () => {
8687
cy.get('main .react-grid-item:eq(2) .MuiDataGrid-columnHeaders', { timeout: WAITING_TIME })
8788
.should('contain', 'title')
8889
.and('contain', 'released')
89-
.and('not.contain', '__id');
90+
.and('contain', '__id');
9091
cy.get('main .react-grid-item:eq(2) .MuiDataGrid-virtualScroller .MuiDataGrid-row').should('have.length', 5);
9192
cy.get('main .react-grid-item:eq(2) .MuiDataGrid-footerContainer').should('contain', '1–5 of 8');
9293
cy.get('main .react-grid-item:eq(2) .MuiDataGrid-footerContainer button[aria-label="Go to next page"]').click();
@@ -244,13 +245,28 @@ describe('NeoDash E2E Tests', () => {
244245
cy.get('main .react-grid-item:eq(2) .MuiCardContent-root h1', { timeout: 45000 }).should('have.text', 'Hello');
245246
});
246247

247-
// it('creates a radar report', () => {
248-
// // TODO - create a test for radar.
249-
// })
248+
it.skip('creates a form report', () => {
249+
enableFormsExtension();
250+
checkInitialState();
251+
createReportOfType('Form', formCypherQuery, true, false);
252+
cy.get('main .react-grid-item:eq(2) .form-add-parameter').click();
253+
cy.wait(200);
254+
cy.get('#autocomplete-label-type').type('Movie');
255+
cy.get('#autocomplete-label-type-option-0').click();
256+
cy.wait(200);
257+
cy.get('#autocomplete-property').type('title');
258+
cy.get('#autocomplete-property-option-0').click();
250259

251-
// it('creates a sankey report', () => {
252-
// // TODO - create a test for sankey charts.
253-
// })
260+
cy.get('.ndl-dialog-close').click();
261+
262+
cy.get('main .react-grid-item:eq(2) button[aria-label="run"]').scrollIntoView().should('be.visible').click();
263+
cy.wait(500);
264+
cy.get('#autocomplete').type('The Matrix');
265+
cy.get('#autocomplete-option-0').click();
266+
cy.get('#form-submit').click();
267+
cy.wait(500);
268+
cy.get('.form-submitted-message').should('have.text', 'Form Submitted.Reset Form');
269+
});
254270

255271
// Test load stress-test dashboard from file
256272
// TODO - this test is flaky, especially in GitHub actions environment.
@@ -285,6 +301,14 @@ function enableAdvancedVisualizations() {
285301
cy.wait(200);
286302
}
287303

304+
function enableFormsExtension() {
305+
cy.get('main button[aria-label="Extensions').should('be.visible').click();
306+
cy.get('#checkbox-forms').scrollIntoView();
307+
cy.get('#checkbox-forms').should('be.visible').click();
308+
cy.get('.ndl-dialog-close').scrollIntoView().should('be.visible').click();
309+
cy.wait(200);
310+
}
311+
288312
function selectReportOfType(type) {
289313
cy.get('main .react-grid-item button[aria-label="add report"]').should('be.visible').click();
290314
cy.get('main .react-grid-item')
@@ -298,7 +322,7 @@ function selectReportOfType(type) {
298322
cy.wait(100);
299323
}
300324

301-
function createReportOfType(type, query, fast = false) {
325+
function createReportOfType(type, query, fast = false, run = true) {
302326
selectReportOfType(type);
303327
if (fast) {
304328
cy.get('main .react-grid-item:eq(2) .ReactCodeMirror').type(query, { delay: 1, parseSpecialCharSequences: false });
@@ -308,8 +332,9 @@ function createReportOfType(type, query, fast = false) {
308332
cy.wait(400);
309333

310334
cy.get('main .react-grid-item:eq(2)').contains('Advanced settings').click();
311-
312-
cy.get('main .react-grid-item:eq(2) button[aria-label="run"]').click();
335+
if (run) {
336+
cy.get('main .react-grid-item:eq(2) button[aria-label="run"]').click();
337+
}
313338
}
314339

315340
function checkInitialState() {

cypress/fixtures/cypher_queries.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ An external workflow picks up this directory, embeds it into the Neo4j docs, and
66
```
77
https://neo4j.com/labs/neodash/{version}
88
```
9-
For example: https://neo4j.com/labs/neodash/2.3
9+
For example: https://neo4j.com/labs/neodash/2.4
1010

1111
## Local Build
1212
To compile and view the documentation locally, navigate to this (`./docs`) folder and run:

docs/antora.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name: neodash
2-
version: 2.3
2+
version: 2.4
33
title: NeoDash
44
start_page: ROOT:index.adoc
55
nav:
66
- modules/ROOT/nav.adoc
77

88
asciidoc:
99
attributes:
10-
docs-version: 2.3
10+
docs-version: 2.4
1111
page-product: NeoDash
1212
page-type: NeoDash Manual
1313
page-canonical-root: /labs
879 KB
Loading
171 KB
Loading

docs/modules/ROOT/images/forms.png

51.3 KB
Loading
59.5 KB
Loading
121 KB
Loading

docs/modules/ROOT/images/gantt.png

43.6 KB
Loading
68.4 KB
Loading
Loading
98.2 KB
Loading

docs/modules/ROOT/nav.adoc

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@
1616
*** xref:user-guide/reports/treemap.adoc[Treemap]
1717
*** xref:user-guide/reports/radar.adoc[Radar Chart]
1818
*** xref:user-guide/reports/sankey.adoc[Sankey Chart]
19+
*** xref:user-guide/reports/gantt.adoc[Gantt Chart]
1920
*** xref:user-guide/reports/map.adoc[Map]
2021
*** xref:user-guide/reports/single-value.adoc[Single Value]
2122
*** xref:user-guide/reports/gauge-chart.adoc[Gauge Chart]
2223
*** xref:user-guide/reports/raw-json.adoc[Raw JSON]
2324
*** xref:user-guide/reports/parameter-select.adoc[Parameter Select]
25+
*** xref:user-guide/reports/form.adoc[Form]
2426
*** xref:user-guide/reports/iframe.adoc[iFrame]
2527
*** xref:user-guide/reports/markdown.adoc[Markdown]
2628
** xref:user-guide/publishing.adoc[Publishing]
@@ -29,7 +31,8 @@
2931
*** xref:user-guide/extensions/advanced-visualizations.adoc[Advanced Visualizations]
3032
*** xref:user-guide/extensions/rule-based-styling.adoc[Rule-Based Styling]
3133
*** xref:user-guide/extensions/report-actions.adoc[Report Actions]
32-
*** xref:user-guide/extensions/natural-language-queries.adoc[Natural Language Queries]
34+
*** xref:user-guide/extensions/natural-language-queries.adoc[Text2Cypher - Natural Language Queries]
35+
*** xref:user-guide/extensions/forms.adoc[Forms]
3336
** xref:user-guide/faq.adoc[FAQ]
3437
* xref:developer-guide/index.adoc[Developer Guide]
3538
** xref:developer-guide/build-and-run.adoc[Build & Run]

docs/modules/ROOT/pages/developer-guide/deploy-a-build.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Depending on the webserver type and version, this could be different directory.
3737
As an example - to copy the files to an nginx webserver using `scp`:
3838

3939
```bash
40-
scp neodash-2.3.5 username@host:/usr/share/nginx/html
40+
scp neodash-2.4.0 username@host:/usr/share/nginx/html
4141
```
4242

4343
NeoDash should now be visible by visiting your (sub)domain in the browser.

docs/modules/ROOT/pages/developer-guide/state-management.adoc

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ structure:
1111
{
1212
"dashboard": {
1313
"title": "My Dashboard Name",
14-
"version": "2.3",
14+
"version": "2.4",
1515
"settings": {
1616
"pagenumber": 0,
1717
"editable": true,
@@ -56,7 +56,7 @@ dashboard. Take the following simple dashboard as an example.
5656
{
5757
"dashboard": {
5858
"title": "A Simple Dashboard",
59-
"version": "2.3",
59+
"version": "2.4",
6060
"settings": {
6161
"pagenumber": 0,
6262
"editable": true,

docs/modules/ROOT/pages/user-guide/extensions/advanced-visualizations.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ The following visualizations are part of this extension:
88

99
- A link:../../reports/sankey[Sankey Chart] to visualize flows.
1010
- Three charts to plot hierarchical data (link:../../reports/sunburst[Sunburst], link:../../reports/circle-packing[Circle Packing], link:../../reports/treemap[Treemap])
11-
- A link:../../reports/gauge-chart[Gauge Chart] to show percentages
11+
- A link:../../reports/gauge-chart[Gauge Chart] to show percentages.
1212
- An link:../../reports/choropleth[Choropleth] to visualize numeric, country-data.
1313
- An link:../../reports/areamap[Area Map] to show an interactive world map, annotated with numeric country / region values.
14+
- A link:../../reports/gantt[Gantt] chart to visualize dependencies between tasks.
1415
- A link:../../reports/radar[Radar Chart] to create a radial view of multiple categoric values.
1516
1617
image::advanced-visualizations.png[Advanced Visualizations]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
= Forms
2+
3+
The 'forms' extension lets you combine different parameter selectors to update / modify your graph data.
4+
Update queries are predefined by the dashboard builder, and the user is limited to specifying the parameters for the query only.
5+
6+
See link:../../reports/form[Form] on how to create, configure, and use forms.
7+
8+
> Keep in mind that data-altering forms require your Neo4j user to have **write-access** to the graph. Make sure you give access to a select group of power-users only.
9+
10+
11+
12+
13+
image::forms.png[Forms]

docs/modules/ROOT/pages/user-guide/extensions/index.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ The currently available extensions in NeoDash are:
1717
- link:advanced-visualizations[Advanced Visualizations]
1818
- link:rule-based-styling[Rule-based Styling]
1919
- link:report-actions[Report Actions]
20-
- link:natural-language-queries[Natural Language Queries]
20+
- link:natural-language-queries[Text2Cypher - Natural Language Queries]
21+
- link:forms[Forms]
2122
2223
== Types of Extensions
2324

docs/modules/ROOT/pages/user-guide/extensions/natural-language-queries.adoc

+21-9
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
1-
= Natural Language Query Generation in NeoDash!
1+
= Text2Cypher - Natural Language Queries
22
Use natural language to generate Cypher queries in NeoDash. Connect to an LLM through an API, and let NeoDash use your database schema + the report types to generate queries automatically.
33

4-
== Natural Language Queries
5-
Natural Language Queries feature allows users to interact with NeoDash using natural language to generate Cypher queries for querying Neo4j graph databases.
4+
== How it works
5+
This extension feature allows users to interact with NeoDash using natural language to generate Cypher queries for querying Neo4j graph databases.
66
This integration leverages Language Models (LLMs) to interpret user inputs and generate Cypher queries based on the provided schema definition.
77

88
== Configuration
99
To enable Natural Language Queries in NeoDash, follow these configuration steps:
1010

1111
1. Open NeoDash and navigate to the "Extensions" section in the left sidebar.
12-
2. Locate the "Natural Language Queries" extension and click on it to activate it.
13-
3. Once activated, a new button will appear in the sidebar(see image below). Click on the button to open the configuration window.
12+
2. Locate the "Text2Cypher" extension and click on it to activate it.
13+
3. Once activated, a new button will appear on top of the screen, with a red exclamation mark (⚠️). Click this button.
1414
4. In the configuration window, you will be prompted to provide the necessary information to connect to the Language Model (LLM). Enter the model provider, API key, deployment url if needed by the model provider, and select the desired model to use.
1515
5. After providing the required information, click on the "Start Querying" button to finalize the configuration.
1616

17-
image::extensionbutton.png[Extension Button enables Natural Language Queries button in the sidebar]
18-
1917
image::llmconfiguration.png[Configuration settings for the Natural Language Queries extension]
2018

2119
== Usage
22-
Once the Natural Language Queries extension is configured, you can start using it in your NeoDash reports. Here's how:
20+
Once the extension is configured, you can start using it in your NeoDash reports. Here's how:
2321

2422
1. Open the Report settings for the desired report.
2523
2. In the report settings, you will find a toggle switch located above the editor. This switch allows you to toggle between Cypher and English languages.
@@ -33,7 +31,21 @@ This allows you to review and modify the generated Cypher query before execution
3331

3432
image::englisheditor.png[Example of the English editor in NeoDash]
3533

36-
=== Here is how it works behind the scenes:
34+
== Improving Accuracy with Custom Prompting
35+
To boost the accuracy of the language model, you can provide your own example queries to be fed into the prompt.
36+
Specifying queries specific to your data model & use-cases can significantly improve the quality of Text2Cypher translations.
37+
38+
To access the model examples screen, open up the settings for the extensions.
39+
After specifying the provider and model, click the "Tweak Prompts" button on the bottom-left of the window.
40+
This leads you to the example interface:
41+
42+
image::llm-examples.png[Custom Examples for your prompt]
43+
44+
In this interface, you can specify one or more examples that are sent to the language model.
45+
An example consists of both a Cypher query, and a natural language equivalent of that query.
46+
You can create as many examples as you want, but keeping them close to your user queries will yield best results.
47+
48+
== Underlying Functionality
3749
* Retrieve the Schema: The system prompts at the beginning of the interaction to retrieve the database schema. This ensures that the generated queries adhere to the provided schema and available relationship types and properties.
3850

3951
* Prompting in English: Once the schema is retrieved, you can start prompting your queries in plain English. NeoDash, powered by the LLM, will interpret your English query and generate the corresponding Cypher query based on the provided schema.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
= Form
2+
3+
A form is a special type of report that lets users run predefined, parameterized queries.
4+
A single form can consist of:
5+
6+
- Zero or more link:../parameter-select[parameter selectors].
7+
- A button that triggers submitting the form.
8+
9+
When creating a form, you write the Cypher query that is called when the submit button is clicked.
10+
This query can then use the parameters specified as input. The image below provides an example of a form. On the left, the settings used to define the form, on the right, the final form as visible to the user.
11+
12+
image::createform.png[Complex Form]
13+
14+
15+
== Examples
16+
17+
=== Simple Button
18+
19+
A form without parameters is a button that runs a specified query.
20+
One or more buttons can be used to perform simple operations in the graph.
21+
Below is an example of a simple button form. On submitting, the following query is executed:
22+
23+
[source,cypher]
24+
----
25+
MERGE (c:Counter)
26+
SET c.count = c.count+1
27+
----
28+
29+
image::formbutton.png[Button Form]
30+
31+
=== A Parameter and a Button
32+
To create a form with dynamic input, use both a parameter and a button.
33+
Below is an example of a form that deletes nodes from the graph. On submit, the following query is executed:
34+
35+
[source,cypher]
36+
----
37+
MATCH (p:Person)
38+
WHERE p.name = $neodash_person_name
39+
DETACH DELETE p
40+
----
41+
42+
image::formsimple.png[Simple Form]
43+
44+
=== Parameters Only
45+
46+
By hiding the submit button, a form can also be used as a space-efficient way to embed multiple parameter selectors.
47+
Disable `Has Submit Button` in the report's advanced settings, and add two or more parameter selectors to the form.
48+
49+
image::formselector.png[Parameter-only Form]
50+
51+
52+
== Advanced Settings
53+
54+
[width="100%",cols="19%,17%,26%,38%",options="header",]
55+
|===
56+
|Name |Type |Default Value |Description
57+
58+
|Form Button Text |text |Submit |Text displayed on the button that submits the form.
59+
60+
|Reset Button Text | text |Reset Form |Text displayed on the button that resets the form to data entry mode.
61+
62+
|Confirmation Message | multiline text |Form submitted. |Text displayed to the user after the form is submitted successfully.
63+
64+
|Clear parameters after submit |on/off |on | Clears all dashboard parameters in the form after submitting.
65+
66+
|Has Submit Button |on/off |on | When enabled, lets the user submit the form with a button. Disabling turns the form into parameters-only mode.
67+
68+
|Has Reset Button |on/off |on |When enabled, lets the user reset the form to enter more data.
69+
70+
|Has Submit Message |on/off |on |When enabled, the user to a seperate screen after submitting the form. Else, always stay in data-entry mode.
71+
72+
|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting.
73+
74+
75+
|===

0 commit comments

Comments
 (0)