Files
richard-churchman 5f6bbe45f7 A major refactoring of the software to make model IDs less volatile between Import, Export, and Peek (comparison) of the model configuration environment. As part of the extensive refactor, most tables have been updated to include a GUID field, which is consistent across Import, irrespective of the IDs remaining volatile. The consistent GUID allows for the separation of production (i.e., Case, Transaction, and Counter data), Redis cache data and quasi-production data(i.e, Lists, Suppressions, and Dictionaries) from the configuration environment. Significant rework of Controllers, Repositories and POCOs to support GUID as an access path rather than ID.
Major bug fixes relating to the Redis implementation in Reprocessing and Search Key Cache were identified and fixed as part of the rekeying development.

Included functionality to stop the Exhaustive training.  Fixed the Unsupervised learning functionality in Exhaustive Training.  Embedded the Mock Data CSV data into a class to make it compatible with Docker without needing to modify the Dockerfile (i.e, build).  Included a new table that stores training data to enhance support capabilities for Exhaustive.

Reintroduced and validated the Multitenancy functionality.

Postgres is now fully deprecated in place of Redis for cache, and all implementations of the Interfaces for Postgres have been removed.  No migrations exist to support this deprecation, and Postgres as a cache is now wholly unsupported.  Removed the Indexing background thread,  as Redis does not require it, given that it is a key-value pair database.

Created a RedisCommandFlag Environment Variable to support Fire and Forget write to Redis in Invocation.

Implemented functionality to Export, Peek and Download configuration environments using a secure, encrypted scheme.  Created a permission to access the functionality via the user interface.  Extensive database-based logging is included to provide for a comprehensive audit.  Created functionality to Import the encrypted Export file inside a database transaction to ensure consistency.

As Docker is now the primary deployment model, log4net instantiation has been moved to an approach that primarily uses programmatic instantiation of the ConsoleLogger and RollingFileAppender given Environment Variables. Implemented functionality to support remote \ mounted Log4Net XML Serialisation files for more advanced log4net configurations.

Reintroduced access to counters via the user interface and created a permission.

Took the opportunity to implement ReSharper linter suggestions.

Disabled the Lock button across the whole application, with that functionality being reserved for future use. It is intended that locking happens programmatically on the basis of dependencies in future commits.

Fixed several significant end-use bugs which became apparent during testing of the refactored code relating to case management and visualisations.  Fixed certain other minor bugs that came up during testing.

Brought documentation up to date for this commit.

Brought the Docker Compose file up to date for this commit.

Removed Redundant Environment Variables for this commit.

Made the README file less verbose and unnecessary.
2025-08-13 19:01:08 +03:00

6.5 KiB

layout, title, nav_order, parent, grand_parent
layout title nav_order parent grand_parent
default Embed SQL and Generate Grid in Datasource 4 Visualisations Configuration

🚀Speed up implementation with hands-on, face-to-face training from the developer.

Embed SQL and Generate Grid in Datasource

Datasource's are the tiles inside the Visualisation which are in their core SQL statements executed against the database and returned for presentation as either a grid or some form of chart, map or tokenized HTML iteration.

As introduced beforehand, the following SQL is to be executed:

select * from "ExampleCaseVolumeEntry"
where "ActivationRuleName" LIKE @Name

The tokenization will be performed on the basis of the Visualisation Registry Parameter created, and will be matched on the basis of the name.

To create a datasource, start by navigating to Administration >> Visualisations >> Visualisations Datasources:

Image

To create a new Datasource for the Visualisation Registry Wrapper, click on the node for the Visualisation Registry, in this case Demonstration:

Image

The Visualisation Registry Datasource accepts the following parameters:

Value Description Example
Priority The order of presentation of the datasource tile. Priority
Column Span Given the number of columns specified in the Visualisation Registry, the number of those columns that should be taken up by this datasource tile. 3
Row Span Given rows are unbounded, with the height of the rows specified in the Visualization Registry, the number of rows that the tile should overlay. 3
SQL The SQL to be executed against the database with parameters added with teh symbol. select * from "ExampleCaseVolumeEntry"where "ActivationRuleName" LIKE @Name
Include Grid A value to signal that a grid is to be displayed containing the full dataset returned by the SQL. True
Include Display A value to signal that a Kendo or HTML visualisation should be invoked using the columns returned by the SQL. True
Include Display: Display Type A value indicating how to render the Display Text. Chart Javascript refers to Kendo Chart configuration, Map Javascript refers to Kendo Map configuration and HTML refers to HTML to be tokenized and returned for each record returned by the SQL. Chart Javascript
Include Display: Display Text Either JSON like Javascript to be parsed as an object for the initialisation of a Kendo Chart or a Kendo Map, or, HTML to be tokenized for each record returned by the SQL. As below for clarity.
({
    legend: {
        position: "bottom"
    },
    series: [{
        type: "pie",
        field: "Frequency",
        categoryField: "ActivationRuleName"
    }],
    seriesColors: ["#03a9f4", "#ff9800", "#fad84a", "#4caf50"],
    tooltip: {
        visible: true,
        template: "${ category } - ${ value }%"
    }
})

For SQL invocation and grid display only, complete the page as follows:

Image

Click Add to create a version of the Visualisation Registry Datasource:

Image

On the creation the SQL is tested to ensure it is valid and the return columns parsed to establish the datatype. In the event that an error is returned including the response from the database to direct correction of the SQL, for example:

Image

Given the use of parameter queries and the validation of SQL on creation of a datasource, the prospect of errors during execution are minimised (although execution performance is available with each datasource execution being logged).

Navigate to the Visualisation Registry through the Visualisation Directory to recall:

Image

Noting the default parameter value for Name, as Email, click on Run to execute the datasource, whereby SQL will be tokenized for with the parameter value provided:

Image

Notice the SQL response presented as a grid taking up 100% of the height and width in the tile. If a display were specified too, the grid would appear at the bottom half of the tile, instead taking up 50% of the height, but still 100% of the width. The functionality to have both grids and charts in the same container is to allow for reuse of the SQL and present a charts raw data alongside the chart.