Skip to content

Package VoltScript Libraries

Note

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

VoltScript Libraries are published as individual files. You will need to share:

  • the main .vss file.
  • the atlas.json file.
  • any custom .vss files not specified as dependencies in the atlas.json.

Downstream dependencies

You don't need to publish downstream dependencies. VoltScript Libraries or VoltScript Extensions included in your atlas.json as dependencies from other external repositories will automatically be downloaded, providing they're accessible.

Documentation for VoltScript Build Manager consumers

Dependencies

Include in your documentation a JSON object for each .vss file, comprising the library, version, and .vss filename. For example:

"dependencies": [
  {
    "library": "voltscript-testing",
    "version": "1.0.1",
    "module": "VoltScriptTesting.vss"
  }
]

If publishing to GitHub, the library will be the GitHub repository name. If publishing to a generic web server, the library will be a directory with a subdirectory for each version.

Note

You don't need to include an entry for atlas.json, that will be picked up automatically.

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.