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
- Added Foundry-related functionality to the VoltScript Build Management extension for Visual Studio code. For more information, see Use VS Code Extension Build Development Features.
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 thecontext
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 orfalse
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
andAllMeta
(short for "all metadata") arguments toKeepScope.GetViewEntries()
andKeepScope.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()
andKeepScope.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 toMEMORY
orBUFFER
to activate this mode. This can be useful for building a long string or logging. The final string can be returned by settingStream.Position
to 0 and callingStream.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
- Added documentation around writing code for Foundry. For more information, see Understanding VoltScript in Volt MX Foundry and Use with VoltMX Foundry.
Early Access v1
- First release of the early access version of VoltScript.