1.34 Release Notes

1.34 Release Notes

Server Enhancements


  • VAIL scalar types:
    • The system now correctly interprets these as case-sensitive.
    • To avoid the potential for collisions, it is illegal to create a user-defined Type with the same name as one of the Scalar types.
    • The Scalar types Map and Value have been added.
      • Can only be used when defining a “schema” type property.
      • Support data replication (see Replicated Services).
  • New system procedures:
  • Strict typing enforced for Stateful Service properties.
    • It is no longer legal to assign a value of the wrong type to stateful service property. Doing so will result in a compile time error. The most common example of this is assignment of Concurrent.Map() to a property of type Object. In this case the property must be typed as Map.
  • The EXECUTE statement has been augmented to support specification of a partitioning key.
  • The PUBLISH statement has been augmented to support propagation of the “root” event id.


  • Stateful Services may now be replicated.
    • Prevents loss of data due to Vantiq server failures.
    • Only properties of type Map or Value will be replicated.
  • Service state properties now have a default value based on their type.
  • It is now illegal to directly invoke the service state initializers (initializeGlobalState and initializePartitionedState).
  • Multi-partition procedures may now be invoked directly (based on their visibility).
  • Service event handlers (whether implemented as rules or collaborationtypes) may now invoke private procedures of their service.
  • Publishing directly to an Outbound Service Event Type from within the same Service is supported using the syntax:
    PUBLISH event TO SERVICE EVENT "<serviceName>/<outboundEventTypeName>"

Apps and Collaborations

  • The App Builder now supports all the functionality of the Collaboration Builder. This adds the following activity patterns to the App Builder: AssignChatNotifyTrackRecommendLoopWhileGetCollaborationCollaborationStatusInterpret, and ProcessIntent, The Collaboration Builder is now considered deprecated.
  • Collaborations are primarily updated and managed as part of the Service State rather than database updates which provides significant performance improvements.
  • App Components may now include Collaboration functionality.
  • The ComputeStatistics and AccumulateState activity patterns produce reset events which emit the value of the state right before it is reset
  • The AccumulateState activity pattern allows users to configure which State property will be updated. This allows multiple AccumulateState tasks to update the same Service State property
  • The EventStream activity pattern now supports Delete events, and the option BOTH was renamed to UPSERT.
  • Any App tasks that are children of a SaveToType, PublishToSource, or PublishToTopic task will now only be triggered by their parent. If such an event is triggered outside the App, the App will not process the event at the intermediate task.

Event Generators

  • Event Generators now support ranges for GeoJSON events.
  • Event Generators no longer require the “step” option for a Ranges. If no step is provided, a step will be calculated to spread the range over the number of iterations for the event.



  • Public Catalogs are now available. Instead of providing credentials to every namespace that will connect to a given Catalog, those credentials may be provided to a system or organization administrator. They can create a Public Catalog in their system or organization namespace, which can then be used by any namespace inside their system or organization.
  • Change logs may be provided when updating published resources. These will be shown to subscribers when they update, giving them a brief overview of the changes.
  • Catalogs may be given custom names using the VAIL procedure Broker.createCatalog(<custom name>).
  • Assemblies can be created from a zipped export. This can be done by uploading the zip as a Document then using the createEntry operation or the VAIL procedure Broker.createAssembly(<catalog name>, <assembly name>, <document name>). Note that some publish validations cannot be performed in this case, so a successful creation does not mean that the Assembly and its resources can be successfully installed.
  • Catalog nodes and tokens will try to repair themselves, and will clean themselves up when no longer needed. To repair connections you will need to either connect to the catalog again (for issues connecting to the catalog), or unsubscribe and resubscribe to the event or service that is having connection issues.

UI Enhancements


  • Overall styling of Modelo has changed with new fonts and colors. The Navigation Bar in particular reflects the new styling changes. See the IDE User’s Guide for details.
  • The App Builder graphs have been improved to display links between tasks using Bezier curves and task category icons have been added to task nodes.
  • The Catalogs pane has a new Updates tab which lists any updates available for installed Assemblies or subscribed Services. Each list item shows the description of the updates if the publisher provided them.
  • Greatly reduced the number of ‘toast’ (temporary) notifications displayed at the upper-right of the IDE.
  • Support for creating Public Catalogs in system and organization Namespaces.
  • The VAIL editor supports a new shortcut for displaying variables in scope. See the IDE Shortcut Keys section for a list of all shortcut keys used in Modelo.
  • Expanded the use of the Resource Explorer UI across the IDE. The Resource Explorer dialog is usually accessed whenever the user is expected to select a resource (Procedure, Source, etc.) and is displayed by clicking a button with a magnifying glass icon. The Resource Explorer dialog also allows subscription or installation of Catalog-based resources, if Catalog connections have been created for the Namespace.
  • When creating a new Type the default value for “Role” is now “Schema” instead of “Standard”.
  • Added the Hide Toolbars IDE Setting to hide the toolbars of some panes (e.g. App Builder, VAIL Editor) to save vertical space. If enabled, the pane’s title-bar contains the Show/Hide Toolbar button to show and hide the toolbar dynamically.
  • The Topics pane now supports the definition of the “Group” property.

Service Builder

  • The Service Builder now supports “bottom up” development. This includes:
    • Creating Inbound and Outbound Event Types from the Implement Tab
    • Automatically repairing the Procedure Interface when the Procedure implementation is changed either in the Service Builder or in a standalone Procedure pane
    • Executing Private Procedures from the browser in order to test them
  • View the current value for each Global or Partitioned State property from the State tab of the Service Builder
  • Visual Event Handlers now allow multiple EventStreams. This allows a single Event Handler to Merge/Join events from multiple Inbound Service Event Types

Client Builder

  • There is now a new layout widget to support scrolling: ScrolledLayout
  • You can now create DataStreams dynamically at runtime.
  • The “Insert Code Fragments” droplist in the Client Builder’s JavaScript editor has been enhanced to assist with creating references to Widgets, DataStreams and Global Functions.
  • Scrolling is now supported inside the pages of a TabbedLayout through new properties on the FixedLayout called “horizontalOverflow” and “verticalOverflow”.
  • The visibility of TabbedLayout pages can now be controlled at runtime using the getPageVisibility and setPageVisibility methods.
  • The old “code fragment wizard” feature in the VAIL editors has been removed and replaced with the ability to create and save your own useful “VAIL Code Fragments”. (This is analogous to the same feature in the JavaScript editors.)
  • As a convenience, the parameters for various dialogs (infoDialog, errorDialog, confirmCustom, confirmCustomEx, terminateWithDialog) now accept localization key strings directly in addition to literal strings.
  • The DynamicMapViewer now supports an “On Click” event.
  • Readonly properties have been added to the FixedLayout widget to get “true” and “scaled” image sizes at runtime. (scaledImageHeight, scaledImageWidth, trueImageHeight, trueImageWidth)
  • The new “dataValue” property now allows you to set the current value of a NumberViewer directly.
  • In previous releases a Page could be given a default “response topic” to which the “default submit” operation would publish the response object (See here.) This has been enhanced so that in addition to topics you can now send resource events to a Service or Source instead; see the Page property sheet in the Client Builder.
  • Previously the dataArray property of the DataTable was read-only – it is now writable and you can use it to completely replace the current contents of the table.


  • You now specify a namespace when running an RTC client by adding “?targetNS=NS_Name” parameter to the URL. This also works when launching Modelo.
Posted: August 5, 2022 at 3:02 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