1.35 Release Notes

1.35 Release Notes

Deprecated Features

Standalone Apps have been deprecated in this release and will be removed entirely in a future release. All existing standalone Apps should be converted to Service Event Handlers as soon as possible. No new standalone Apps should be created.

Server Enhancements

VAIL

Export (both CLI and UI)

  • Export excludes “sub-artifacts” of a resource instance that have been generated. The impacted resources are:
    • Types – excludes any generated properties from exported definition.
    • Services – excludes any generated procedures from the service interface.

This change has been applied to 1.34.21. This version (or later) must be used when exporting code for import into 1.35. Failing to do this may lead to compilation errors on import.

Services

  • The names used for various generated artifacts have changed in attempt to simplify them and make them easier to read/understand. In most cases this change should be transparent; however, in cases where the generated name is referenced directly (e.g. when referencing a generated procedure), it may result in compilation errors when regenerating. The impacted artifacts are:
    • Service State Types – the new format is <serviceName>.[Global|Partitioned]State (unless the service is not in a package, then we use <serviceName>_[Global|Partitioned]State).
    • Event Type Schema Types – the new format is <serviceName>.<eventTypeName> (unless the service is not in a package, then we use <serviceName>_<eventTypeName>).
    • Per-task Service Procedures – the new format is <taskName>State_<eventTypeName>.
    • Service Visual Event Handlers – the new format is <serviceName>.<eventTypeName>.
    • Service VAIL Event Handlers – the new format is <serviceName>.<eventTypeName> (unless the service is not in a package, then we use <serviceName>_<eventTypeName>).
  • Inbound Service Event Handlers must be triggered by the Inbound Event Type they implement. This was previously flagged as a warning in 1.34.
  • Services may now define Internal Event Handlers which are triggered by TypeTopic, and Source events rather than Service Events. Internal Event Handlers are not part of the Service Interface.
  • Services may define Private Inbound Event Types which can only be published to from within the Service. Private Event Types are not part of the Service Interface.
  • The Design Modeler can be used to define Service Routes which tell the system to automatically send the events emitted by Outbound Event Type to the event handler for an Inbound Event Type.
  • Service Procedures allow a stateless access modifier. This is used to declare Procedures in a Stateful Service which do not interact with the Service’s state in any way.

Apps

Standalone Apps are fully deprecated in release 1.35 and should be migrated to Services ASAP. They will be removed completely in a future release.

  • The names used for various generated artifacts have changed in attempt to simplify them and make them easier to read/understand. In most cases this change should be transparent; however, in cases where the generated name is referenced directly (e.g. when referencing a generated procedure), it may result in compilation errors when regenerating. The impacted artifacts are (note that the service name referenced here is that of the “App” Service):
    • Service State Types – the new format is <serviceName>.[Global|Partitioned]State (unless the service is not in a package, then we use <serviceName>_[Global|Partitioned]State).
    • Event Type Schema Types – the new format is <serviceName>.<eventTypeName> (unless the service is not in a package, then we use <serviceName>_<eventTypeName>).
    • Per-task Service Procedures – the new format is <taskName>State_<eventTypeName>.
    • Service Visual Event Handlers – the new format is <serviceName>.<eventTypeName>.
    • Service VAIL Event Handlers – the new format is <serviceName>.<eventTypeName> (unless the service is not in a package, then we use <serviceName>_<eventTypeName>).

Visual Service Event Handlers

  • Visual Event Handlers now display all the compilation errors for all tasks with errors rather than just the first caught error.
  • The PublishToEventType Activity Pattern has been renamed PublishToService and now supports an optional Processed By clause.
  • The Join activity pattern includes a join order configuration property so that the Join order can be set dynamically.
  • The LoopWhile activity pattern now correctly handles cases with a Filter under the whileTrue branch. If the filter results in a false condition, the loop will start the next iteration rather than terminating immediately.
  • The AccumulateState activity pattern now defines a default accumulator: state = event. This will update the service state to hold the most recent event.
  • The ComputeStatistics activity pattern has been enhanced to compute statistics on multiple event properties.
  • A new EstablishCollaboration activity pattern allows an App to either: continue processing in the context of a new or existing collaboration or prevent multiple active collaborations for a single entity.

There is a new suite of statistical and analytics based activity patterns. Each of these are built on top of the Apache Commons Math Library. Each of these activity patterns allow users to apply analytics to one or many properties of incoming events.

  • Analytics: Computes the mean, median, count, min, max, standard deviation, geometric mean, variance, skewness, and kurtosis. The Analytics activity pattern also supports dimensional analysis.
  • DBScan: Applies a density-based clustering algorithm to determine if there are one or many clusters.
  • KMeansCluster: Applies a K-Means Clustering algorithm to find the specified number of clusters in the data.
  • Linear Regression Applies linear regression to the data and generates a prediction procedure to predict future data points.
  • Polynomial Fitter Applies a polynomial fit algorithm to the data and generates a prediction procedure to predict future data points. This pattern also generates procedures to calculate the derivative and integral at specific points.

Assemblies

  • Documents may now be visible resources within Assemblies.
  • Installed resources are not editable by consumers.

Sources

  • Sources and Topics have a new Unwind Arrays option. If set to true, events that are arrays will be automatically unwound into separate events, one for each array entry.
  • The examples for using Azure Event Hubs with Kafka have been updated with additional recommended settings.

Miscellaneous

  • Application namespaces (also known as Namespace Admin namespaces) have a new UserAdmin profile available. That profile can create users, but cannot change any development resources.
  • User invitation emails can now be customized. See here for more details.
  • Catalogs can now repair connections. See here for more details
  • Org admins can now access namespaces in their organization without explicit permissions. See here for more details.
  • Org admins can now setup resources to be automatically installed into newly created namespaces. See here for more details.
  • Users can create personal tokens that are limited to a single namespace. See here for more details.
  • SELECT resource operation supports REST POST binding via /select sub-URI.

UI Enhancements

Modelo

  • To make it easier to resolve VCS conflicts the set of “open folders” is no longer saved when you “Sync Project to VCS”
  • In “Find Records”, when querying for Boolean properties there is now a droplist that lets you specify that you want to see all the records with “true” or “false” as well as “Any” (which means ‘don’t care’) and “None” (when the property was not specified and is neither true nor false).
  • In “Add Records” when inserting a new record the droplist will let you specify “true” and “false” as well as “None” (which means ‘don’t set the property at all’).
  • When importing a Project you may now set “Select Import Type” to “Project from URL (zip)”. This allows you to enter a URL which refers to the Project zip file.
  • In Modelo’s “IDE Settings” in the “Editors” section there is a checkbox called “Indent with Spaces” which controls whether JavaScript and VAIL editors will implement indents with an actual “tab” character (the default) or equivalent space characters.
  • There are various places in Modelo where you can add a multiline “Description” field. These fields now support basic Markdown formatting:
    • Project Description
    • App and App Component Descriptions
    • Service Builder Descriptions
    • Assembly Descriptions
  • Dialogs that allow you to enter a GeoJSON object now support the “Polygon” type.
  • The Storage Manager is used to access databases other than the default MongoDB.
    • To create a new Storage Manager, use Administer>Advanced>Storage Managers then click the New button.
    • Once a Storage Manager has been created, it can then be used when defining a new standard Type definition. Data stored in that Type will use the database defined by the selected Storage Manager.
  • When Visual Event Handlers are used in the Service Builder, the Save Changes button will display a small, red circle to indicate that the Event Handler will be rebuilt when saved. If the red circle does not appear on the Save Changes button, this indicates only cosmetic changes have been made to the Event Handler.
  • The icon selection dialog for the Icon widget in the Client Builder now has a Filter by Name feature.
  • The ZingChart widgets in the Client Builder now have a Chart Config Override property under the Specific category. The value is a JSON object. If this property is configured, this JSON object is used to initialize ZingChart which will override all other default and widget properties defined by the widget. Refer to ZingChart documentation for legal properties.
  • IDE Settings has a new property, Show Namespace Org Filter. Enabling this property displays a menu in the Change Namespace dialog which allows the Namespace list to be filtered to show only those in the current Organization.

Design Modeler

  • The Design Modeler is a new visual IDE tool for building Vantiq systems. It allows the user to easily connect Services and Clients, which are the building blocks of a Vantiq system.
  • New Design Models are created using Add>Design Model and clicking the New Design Model button. The Design Modeler uses Design Templates to help the developer design Vantiq systems that are scalable and use best practices. The New Design Model dialog shows a diagrammatic representation and an explanation of each of the templates.

System Modeler

  • The System Modeler now generates Design Models (see above) rather than Vantiq Projects. It still uses Event Storming concepts to document business requirements.
  • Once the Event Storming session is complete, use the Generate button to produce a new Design Model. Design Models generated from System Models contain a Requirements checklist of all the Event Storming notes so the developer is reminded to implement all the business requirements within the Design Model.

Service Builder

  • Opening any Procedure, App, or Rule that is part of a Service will open the resource in the context of the Service rather than a standalone pane.
  • EventStreams for Inbound Service Event Handlers are not editable. This is because they must be configured to trigger off the Inbound Event Type the Event Handler implements.
  • Generate state managing procedures (Get, Update, Reset) for the property by clicking a new button next to the state property name in the State tab.
  • Generate a Lookup only or Update and Lookup Cache Service by using a new option in the Add New Service popup.
  • Task Contexts (blue bounded boxes) represent coarse-grained guidelines for Service Event Handlers generated by the Design Model. Clicking on each task context filters the activity pattern palette by only showing relevant patterns.

Client Builder

  • When editing JavaScript in the Client Builder there is a droplist called “Insert Code Fragment” which can be used to insert various helpful fragments of code. There are 3 new types of fragments which can now be inserted:
    • Data Streams – Insert code to access the Data Stream objects
    • Service Procedures – Insert code to invoke Procedures defined on a Service
    • Service Events – Insert code to publish to an inbound Service Event defined on a Service
  • The Data Table ‘On Format Cell Background’ event has been deprecated in favor of the more comprehensive ‘On Render Cell’ event.
  • For each column within a Data Table you can now set a CSS class which will be applied to each ‘<td>’ element inside the column.
  • There is a new Widget called StaticMarkdown which can be used to format and display a fragment of Markdown text
  • All Widgets now support the “minimumHeight” and “minimumWidth” properties. If set, they allow you to increase the minimum size that layout management would normally use.
  • You may now open a Page inside a ScrolledLayout widget; this makes it act like a popup Page but it will be nested within another Page. See openNestedPage and closeNestedPage.
  • Client Components may now be instantiated at runtime and added to a WidgetContainer using the addComponentChild method.
  • Component names in the Client Builder palette no longer include full package names (although you can see the full name by hovering the mouse over it).
  • Client Components now allow you to set a Data Stream as a “configuration property”. This makes it possible to override the Client Component’s default DataStream with one of your own at runtime. (See ‘Data Streams’ in the Client Components User’s Guide.)
  • When setting custom colors with the “color picker” you can now set the opacity as well as the color values. (There is an extra slider that lets you control the amount of translucency.) Colors which are “solid” (with an opacity of 1) are shown using the normal #RRGGBB coding – colors with any other opacity setting will use the “rgba(r,g,b,a)” format.
  • The Drop Shadow Color is now settable in a Theme. For those widgets that support it can now be given one of 4 settings:
    • None (no drop shadow)
    • Theme (It has a drop shadow using the color from the Theme)
    • #rrggbb (An explicit color, either set by the color picker or selected from a list)
    • “Use Background Color” (for backwards compatibility)
  • In the Client Builder when a Page is in “Browser” layout mode you now “drag” the page around to scroll it rather than using the scrollbars.
  • RadioButtons now have a new Boolean property “isHorizontal” which can be set to “true” to make the radio buttons layout left-to-right rather than top-to-bottom .
  • When creating a “Timed Query” Data Stream in the Client Builder the “max records to return” will now be set to 100 by default.
  • In Vantiq mobile apps there is now support for scanning for data from Bluetooth Low Energy (BLE) devices. See client.startBLEScan() and client.stopBLEScan()
  • You can now get the name of the current client with client.getName()
  • When running under the Client Launcher the client.logout() method will logout the current user.
  • ZingChart-based widgets (BarChartColumnChart and LineChart) now support a way to listen for ZingChart internal events by setting the “bindEvents” property.
  • A Client can now force a location update from the Vantiq mobile apps with client.sendLocation.

Miscellaneous

  • The Active Resource Control Center allows you to see all activatable resources in a namespace and easily change their activation status. When in an org namespace, you can do the same for all namespaces in that org. See here for more details.
  • Organization Admins may use the Active Resource Control center to update the activation for any resource in any namespace within the Organization, regardless of whether the user is explicitly invited to each namespace.
  • A placeholder root node has been added to App Components. This allows App Components to effectively have multiple root tasks.
  • Users can create personal tokens, which act under the identity of the creator instead of a generated user. See here for more details.
Posted: January 27, 2023 at 4:13 pm
Replies: 0
Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.
© Vantiq 2024 All rights reserved  •  Vantiq Corporation’s Privacy Policy and Cookie Policy