By default, info boxes will be laid out in a way that minimizes the height of the tallest column. While this does reserve as much space as possible for the component under them, it also makes their placement less predictable.
If you require full control, you can now use the BreakOn<n>Columns special columns, to manually insert column breaks.
SELECT
'Task description' AS Title,
'Box 1' AS Plaintext;
SELECT
1 AS BreakOn2Columns,
1 AS BreakOn3Columns,
1 AS BreakOn4Columns;
SELECT
'Comment' AS Title,
'Box 2' AS Plaintext;
SELECT
1 AS BreakOn4Columns;
SELECT
'Company' AS Title,
'Box 3' AS Plaintext;
SELECT
1 BreakOn3Columns,
1 BreakOn4Columns;
SELECT
'Country' AS Title,
'Box 4' AS Plaintext;
The Node Graph component has received some design touch-ups, and new features.
The new flowchart component mode introduces box shapes suited for flowcharts.
Node groups can be used as visual aid to group nodes together. Users can't use the mouse to resize node groups, but you can use the "node group link" link type to enable editing of them.
Connections can now be customized with independently positioned labels. Instead of a straight arrow from one node to another, the connection can be routed from the start node to the label, and then from the label to the end node, offering more control over the visual layout. Use the columns LabelX and LabelY to position labels.
By setting CanDrag on the connection itself, you can allow users to drag the labels just as they can drag nodes.
You can now color connections, and a few new dash and dot styles have been introduced.
The columns NodeColor and IconColor have been replaced by a single Color column. This should simplify the API, as you were only allowed to specify at most one of the columns.
The new aspectRatio
property on charts can be used to make them wider, or narrower. Shown below are ratio 2 and 0.75.
You can now hide individual labels on a chart axis. This is more useful than emitting '' as label, as the label will then still be readable in the data point's tooltip.
The Radio Cards control now comes in three sizes, with Small and Medium being new in this version.
The Calendar component includes a Show Description toggle in its UI, which lets users expand or collapse appointment details.
You can now configure the calendar to hide this toggle, which is useful when calendar items don't include descriptions.
We have increased the types of entities that are logged, and the amount of data that is logged.
This release introduces an early version of the Performance Center, a tool designed to help identify current performance issues and analyze trends to predict future problems. It replaces the previous Slow menu items menu item in the Admin group.
This is an initial version, and we encourage all feedback.
You can use SoftadminApi.PerformanceLog to do your own performance reports or ad-hoc queries.
Raw web service publishing has left beta status this version.
The new web services can now send and receive files/binary data.
You can now configure logging of requests received by the new raw web service publishing mode.
Credentials for web service calls must be handled securely to prevent exposure, even if the database is compromised. To achieve this, credentials can be encrypted in the database, fetched on-demand from Azure Key Vault, or injected as application configuration during startup. However, this means that the database can't access them directly.
Previously, the Web Service Call component could only use credentials for standard authentication. If the target web service required custom headers or credentials in the request body, there was no secure way to handle that.
We have now introduced a way to inject credentials into headers, and for raw mode also into the body of a message.
IF @Action = 'GetRawData'
BEGIN
-- Inject credential into a custom header
SELECT
'X-Custom-Api-Key' AS HttpHeaderName,
'{G:0FDB557D-020F-1B9D-4933-0A8CABD37AA6.SuperSecretApiKey.Secret}' AS HttpHeaderValue
-- Inject credential into the message body
SELECT JSON_OBJECT(
'keystring': 'the key is {G:0FDB557D-020F-1B9D-4933-0A8CABD37AA6.SuperSecretApiKey.Secret}'
) AS TextContent
END
By default, a service bus listener will receive all message properties in the #MessageExtraProperties
temp table. However, not all data types a message can use are supported by SQL Server, and string values may be longer than can fit inside sql_variant.
You can now configure listeners to whitelist the keys the listener needs and ignore all other extra properties.
Previously, validations were limited to inclusive ranges, like "0 or greater." This worked fine for integers, where "greater than 0" could be rewritten as "1 or greater," but it restricted decimal validations. Now, you can define both inclusive and exclusive numeric validations.
The SoftadminApi.LoginLog table contains comprehensive, but short lived information about recent logins, including IP address and browser. Since it is short lived, there is no way to differentiate a user who hasn't logged in for a month from one who hasn't logged in for a year.
From this version, the SoftadminApi.User table has been extended with the LastSuccessfulLogin timestamp.
Previously, if you used custom buttons in NewEdit then whichever button had NULL
as its button ID became the default. Now, you can instead choose to use the IsDefaultButton column, and assign a non-NULL ID to each button.
Additionally, the new IsCancelButton column deprecates the more obscure CidStepsBack column for designating cancel buttons.