Install and set up Skedulo Packages SDK
System requirements
- Mac: macOS 10.14 (Mojave) or later
- Windows: Windows 7 or later
- Linux: The SDK is built using the Applmage extension, which supports all common Linux distributions.
SDK installation requirements
- Open SSL
- NVM
- Yarn
v1.22
or later
Note
As part of AWS’s deprecation schedule for Node.js v12 support in their SDKs and Lambda feature, Skedulo Packages and Connected Functions now only support v14, v16, and v18. We recommend using v18 to minimise the risk associated with future deprecations.
The new SDK can be downloaded from the Skedulo web app following the instructions below. We recommend upgrading existing packages to run on v18 as soon as possible to avoid any impact on your Skedulo system.
Set up Node.js
The Skedulo SDK requires the correct version of Node.js to be used throughout the development process as follows:
-
During local development, the SDK validates that Node Version Manager (NVM) is installed on your computer and then validates that the
runtimeVersion
property is set in your package (see the sections that follow for details on how to add this property). -
When the package is loaded, the SDK will detect what runtime version the package is set at and spawn a new process with that Node.js version to compile and run the package on your computer.
-
The build process (starting after the package source is uploaded) uses a Docker image with the Node.js version set on your package. The Node.js version being used is printed out in the build log so that you can verify it.
-
When a package that contains connected functions is installed, the connected functions will be installed at the Node.js version specified in the
runtimeVersion
property at the function level.
Follow the instructions below to ensure that the correct version of Node.js is being used.
Set up Node Version Manager (NVM)
You need to install Node Version Manager and use it to install Node.js versions as needed. NVM allows you to use multiple Node.js versions.
-
If you’re using macOS with homebrew:
brew install nvm
If you’re using Linux, WSL or another *nix OS, or don’t have homebrew installed follow the instructions from NVM provided here.
Install Node.js
-
When NVM is installed, install Node.js v18 and switch to it by running:
nvm install 18
nvm use 18
When finished using the SDK, you can switch to other versions of Node.js as required. Ensure you switch back to Node.js 18 before using the SDK.
Download the SDK
- In the web application, open Settings -> Developer tools -> Web extensions.
- Click Download Packages SDK in the upper-right corner to download and install the Packages SDK. This is a
.zip
file that contains the SDK installer for your operating system.
Note
If you are using macOS, you may see a warning that the SDK cannot be opened because it is from an unidentified developer. To resolve this, locate the SDK installer in your downloads folder, right-click or Ctrl+click, then select Open. You will then be prompted to confirm that you want to open the installer. Click Open to continue.-
You will see the following message when the SDK is downloaded and ready for set up:
“Welcome to Skedulo’s Packages platform. You need to setup self-signed SSL certificates to continue. Click here for instructions on how to do this.”
SDK setup
The SDK comes with an in-built set of instructions to help you set up the SDK for your local environment.
When complete, all three requirements (OpenSSL, Yarn, and NVM) will be marked as complete and you can proceed to the next stage.
-
Click the here link in the welcome text to open the SDK setup instructions.
-
Make sure the correct versions of Node.js and Yarn are installed. If you’re unsure which version of Node.js you have, run
node --version
from your terminal. -
Set up the self-signed SSL certificates.
For for the SDK to work, you will need a self-signed SSL certificate for your system.
a. Click on the blue highlighted text link “here” in the welcome text of the homepage.
b. This page provides you with tailored instructions on how to create locally signed SSL certificates and set them up.
-
When installation is complete, the SDK installer instructs you to enable developer mode in the Skedulo web application. Return to the web app and toggle the Developer Mode switch to Enabled.
Enable developer mode
To begin developing a package or standalone web extension, you will have to enable developer mode.
Prerequisite
You must have installed and set up the SDK and it must be running. This is detailed in the SDK Setup procedure above.
-
In the Skedulo web application, click your user Profile -> Settings -> Extensions.
-
In the Extensions section, click the Developer Mode
Enabled
toggle button at the upper-right. -
When developer mode is turned on, the web app will connect to the SDK and display the development options.
If it does not connect, check that your SSL certificates are set up correctly.
The following screen message appears:
“Welcome to Skedulo’s Packages platform. To begin, select one of the following options.”
Specify the Node.js version in new packages
For any package being created or upgraded to use a more recent version of Node.js, do the following:
- In the package metadata file at the package level (sked.pkg.json), add the following property:
runtimeVersion
and the version to use.
Specify the Node.js version in packages with connected functions
For packages being upgraded to Node.js v18 that contain a connected function, do the following:
- Ensure that the value of the runtime property in the package-level metadata file is the same as that being used in the corresponding property in sked.proj.json at the connected function level.
- Update the yarn commands for the function in package.json to support legacy open-ssl by adding the following:
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && webpack --watch --mode=development",
"compile": "export NODE_OPTIONS=--openssl-legacy-provider && webpack --mode=production"
For an example of how this is done in practice, see the sample in the connected function template from the SDK.
Feedback
Was this page helpful?