Skip to content

Package VoltScript Extensions

Note

VoltScript runtime does not yet support ARM processors.

Note

VoltScript Extensions can be scaffolded in VoltScript Interface Designer. You can also generate code skeletons and API documentation from VSID.

VoltScript Extensions are written in C/C++, which makes them platform, architecture, and processor-specific. In addition, dependencies may vary depending on what's automatically included in a specific platform. As a result, the VoltScript Build Manager code expects a zip file containing zips per platform/architecture/processor including all dependencies required.

The top-level zip file should be named VSENAME.zip. This should contain zips with VSENAME + "-" + platform code. The valid options for VoltScript are currently:

  • linux-x64
  • win64

Tip

Linux filenames are case-sensitive, so recommendation for the Linux zip file is to use lower-case.

Warning

ZipVSE cannot extract tar files, so use .zip files for all operating systems.

Example

JsonVSE

  • JsonVSE.zip
    • JsonVSE-win64.zip
      • JsonVSE.dll
    • jsonvse-linux-x64.zip
      • jsonvse.so

WebVSE

  • WebVSE.zip
    • WebVSE-win64.zip
      • WebVSE.dll
      • libcurl-x64.dll
    • webvse-linux-x64.zip
      • libwebvse.so

Tip

When naming VoltScript Extensions and zip files, bear in mind the following logic in VoltScript dependency management:

  • Using module in atlas.json:
    • Download the zip using library and module.
    • Extract it and look for a zip called -win64.zip or -linux-x64.zip.
    • To update seti.ini, if there is only one file in the zip, use that. Otherwise, look for a file including the label for the JSON object in atlas.json.

Documentation for VoltScript Build Manager consumers

See information under references.

Publishing

Include in your documentation a JSON object for the repository consumers will need to add into their atlas.json.

Note

Always use an ID that will be unique for this URL, because consumers will need to add a corresponding entry with the same ID in their environment-wide atlas-settings.json.

GitHub

If you are publishing to GitHub or GitHub Enterprise, the type should be "github". The URL format varies depending on the environment:

  • For github.com, the URL will be "https://api.github.com/repos/" + OWNER_NAME.
  • For GitHub Enterprise Server, the URL will be "http(s)://HOSTNAME/api/v3/repos/" + OWNER_NAME.

Example:

{
  "id": "hcl-github",
  "type": "github",
  "url": "https://api.github.com/repos/HCL-TECH-SOFTWARE"
}

Generic Web Server

For a generic web server or Domino database, the type should be "webserver". The URL will be appended with "/LIBRARY/VERSION/MODULE".

{
  "id": "my-nsf",
  "type": "webserver",
  "url": "https://my-webserver.com/VoltScriptRepository.nsf"
}

Tip

If you want to use Domino as a repository, you have two options:

  1. Create folders on the Domino server in /data/domino folder.
  2. Use an NSF and either:
    • Open the Package Explorer view and add folders under the WebContent directory and drag your files in.
    • Add as File Resources. This is the less recommended approach, because the File Resource name needs to include forward slashes to simulate a folder structure.

WebContent directory

Volt MX Marketplace

VoltScript Extensions, which will typically not be open sourced, are hosted on Volt MX Marketplace. The completed zip can be uploaded to Volt MX Marketplace for approval.

After upload, you will be prompted to complete the submission form:

  • the category should be "VoltScript Extensions".
  • it should target the latest Volt MX Foundry.
  • recommended practice is to make the name the VoltScript Extension name + " VoltScript Extensions".
  • upload an image 400 x 300 pixels, typically we have used a screenshot of a snippet of implementation code.
  • add links to documentation and API docs. Documentation will include the JSON consumers need to add.
  • in the checkboxes lower down, ensure it targets Foundry and not Iris. This ensures it does not appear as a component in Iris.
  • submit.

After approval, you will be able to access the download. Hovering on the "Download" button gives a URL. The JSON you provide for the user should be:

*VSENAME* {
    "library": "FIRST_FIVE_DIGITS",
    "version": "1.0.0",
    "module": "NEXT_FIVE_DIGITS/LAST_FIVE_DIGITS",
    "repository": "volt-mx-marketplace"
}

If in doubt, compare with the page on the Volt MX Marketplace for an existing HCL VoltScript Extension and the JSON in our documentation.