Skip to content

What's new

The section provides information on the latest features, improvements, and resolved issues related to VoltScript.

Early Access v2

New

VoltScript Runtime

  • Added --http-server <port> start option for access over HTTP. For more information, see Run HTTP server.
  • Added --debug-server <port> start option to run debugging listening on a specific port. Kindly note that debugging is provided as a preview. For more information, see Run from VS Code

VoltScript Language Server VS Code Extension

  • Added support for CreateUUID function.
  • Added debug server support.

VoltScript Build Management VS Code Extension

XMLVSE

  • XMLVSE is a new VSE for deserializing, manipulating, and serializing XML objects. Its interface is inspired by JsonVSE, and also supports a fluent programming model. See the XMLVSE API documentation for full details.

Improvements

VoltScript Extensions

  • Compiled all VoltScript extensions for RedHat Universal Base Image 8.8 Minimal (RHEL 8), thus reducing the compiler-level for glibc version.
  • Updated the atlas.json for VoltScript Collections and VoltScript JSON Converter Script Library Modules to use the relevant JsonVSE version.
  • VSE's that use libcurl, such as WebVSE, KeepVSE, CouchVSE, now support the RHEL location of CA certificates in addition to the Ubuntu location. This allows a user to open a HTTPS connection to most servers without manually setting the location of the CA certificates.
  • Updated libcurl to version 8.4.

ContextVSE

  • Now supports a JSON object as the context. Context.Context will extract the context property from the root level of the object if the incoming context is a JSON string and this property is present. No changes to non-JSON context.

CouchVSE

  • The version of libcurl can now be checked using the property CouchServer.LibCurlVersion, which is a string.

HashVSE

  • The version of OpenSSL can now be checked using the property HashUtilities.OpenSSLVersion, which is a string.

JsonVSE

  • Constructor now takes an optional boolean parameter true to return a JSON array. If no parameter or false is passed, the constructor returns a JSON object.
  • Methods for populating the JSON object are fluent, returning the current JSON object to allow calls to be chained.
  • Added JSONObject.HasField() to provide an easy way to check if an object has a certain field.
  • Added JsonParser.IsValidJSON() to check if a provided string is a valid JSON. This can be used to sanitize incoming data before attempting to parse it.
  • Added JsonObject.RemoveArrayEntry() to enable the removal of a specific index from an array.

    Note

    You cannot use JsonObject.RemoveChild() to remove an entry from an array.

  • Added JsonObject.ScalarValue that always returns doubles for numeric values.

KeepVSE

  • The version of libcurl can now be checked using the property KeepServer.LibCurlVersion, which is a string.
  • Added KeepProfileDocument to allow the creation, update, or deletion of a profile document.
  • Added KeepDocument.DownloadAttachment() to download and save an attachment to a local file path.
  • Added optional Mode and AllMeta (short for "all metadata") arguments to KeepScope.GetViewEntries() and KeepScope.GetViewEntriesByKey().
  • Added KeepServer.GetUserInfo() to fetch information about the current user.
  • Added KeepScope.BulkDelete() to delete multiple documents by UNID.
  • Added KeepScope.BulkCreate() to create multiple documents based on a provided JSON string.
  • Added KeepScope.FolderAddDocuments() and KeepScope.FolderRemoveDocuments() to organize documents in folders.
  • Added KeepScope.GetViewInfo() to fetch information about a specific design view.
  • KeepServer now checks the script context for a JWT token, parsing and adding it to its requests if it is present.

StreamVSE

  • A Stream can now be opened as an in-memory buffer only, without being attached to a file. Set the charset to MEMORY or BUFFER to activate this mode. This can be useful for building a long string or logging. The final string can be returned by setting Stream.Position to 0 and calling Stream.ReadText.
  • Fixed reading from a pipe on standard input.

WebVSE

  • The version of libcurl can now be checked using the property WebServer.LibCurlVersion, which is a string.

ZuluVSE

  • Date/time parsing now handles fractional seconds.

Others

Early Access v1

  • First release of the early access version of VoltScript.