Overview of package components

Get to know the types of components that can be used in the Skedulo packages.

Skedulo packages bundle up related custom functionality and content into a single deployment to your organization.

This functionality includes web extensions, mobile extensions, and Skedulo functions.

Skedulo functions are a mechanism for writing customer-specific backend logic.

A package can consist of a group of web extensions, a group of mobile extensions, a group of functions, or a collection of any of these components.

The main purpose is grouping together a collection of customized features and functionality so that they can be deployed simultaneously to an organization.

Files used in packages are written in Typescript, which is the recommended language for these projects. You can use Javascript if you prefer, however, this is not recommended.

Understand the package components

sked.proj.json

Skedulo packages usually include multiple components that each have their own folder with a sked.proj.json file.

The contents of this file varies slightly depending on the type of component (ie, function, web-page, mobile-page)

For example, when you create a new Skedulo function to the package this generates a folder inside the package folder with the same name you have given to the function, for example newFunction.

The function component folder includes the files required to create a Skedulo function within the package.

This folder contains the sked.proj.json file for the function, which looks like this:

{
  "type":"function",
  "runtime":"nodejs12.x",
  "name":"newFunction",
  "description":"A new Skedulo Function"
}

The main package component configuration file is the sked.pkg.json file.

sked.pkg.json

To understand the contents of the package, open the folder on your local machine that hosts the package and open the sked.pkg.json file to view the configuration.

When you create the new package, the only file that is generated in the folder you have identified is a sked.pkg.json file.

This file lists all of the package components that are to be built and deployed to the organization as a single bundle for installation.

In an empty package, the sked.pkg.json file has no components listed:

{
  "version":"1",
  "name":"NewPackage",
  "summary":"New Package",
  "components":{}
}

As you add package components (functions, web extensions, mobile web extensions, and so on), these files are listed as "components:{}" in the sked.pkg.json file.

When you add a package component, such as the newFunction Skedulo function mentioned above, the package’s sked.pkg.json file automatically updates to include the function in the list of components:

{
  "version":"1",
  "name":"NewPackage",
  "summary":"New Package",
  "components":{
    "functions":{
      "items":[
        "newFunction"
      ]
    }
  }
}

Components added using the Packages SDK will automatically be added to the sked.pkg.json file.

You can also manually add project folders for deployment as part of the package by adding the folder to the package project and updating the sked.pkg.json file with the project name as one of the components.