No Purchase Made

    TypeScript icon, indicating that this package has built-in type declarations

    3.9.3 • Public • Published


    The EDK (ELARA Development Kit) is a CLI, API, and development libraries to create, develop and deploy ELARA solutions.


    The EDK package can be installed with npm:

    npm install -g @elaraai/edk


    The EDK can be used either as the CLI, API or as the development libraries.

    CLI Usage

    Once the EDK is installed globally, the CLI can be invoked from the command line, for example to read the EDK help:

    $ edk --help
    Usage: edk [options] [command]
      -V, --version                  output the version number
      -h, --help                     display help for command
      init [options]                 initialise a new ELARA project
      add                            add an asset to the project
      remove [options] <asset>       remove an asset from the project
      links [options] <asset>        show the directly linked assets in a project
      list [options]                 list the assets in the project
      update [options]               update the assets in the project
      build [options]                build the schema from assets
      deploy [options] <deployment>  deploy the assets in a project
      help [command]                 display help for command

    API Usage

    The api modules may be imported and applied within Typescript projects:

    import * as edk from '@elaraai/edk'
    // create a simple application to create a project, add a datasource, build and deploy
    const project_dir = 'path_to_workspace'
    async function run() {
         // create a project
         let project_config = await edk.init({ 
             name: 'A project', 
             dir: project_dir 
         // add a deployment
         project_config = edk.addDeployment({
             dir: project_dir,
             server: 'https://server_url',
             name: 'test',
             config: project_config
         // add a datasource to the project
         project_config = edk.addRangeDataSource({
             name: "Datasource",
             dir: project_dir,
             def_dir: 'src/sources',
             config: project_config,
             start: 1.5,
             stop: 1000,
             step: 2.3
         // build the schema
         let build = edk.buildSchema({ 
             dir: project_dir, 
             config: project_config 
         if(build === false) {
         // deploy the schema
         let deploy = await edk.deploySchema({ 
             dir: project_dir, 
             config: project_config, 
             deployment: 'test' 
         if(deploy === false) {

    Library Usage

    The library modules may be imported and applied within EDK project assets:

    import { ApplicationPlugin, WeatherPlugin, HolidaysPlugin, Environment, EnvironmentVariable } from '@elaraai/edk/lib'
    export default ApplicationPlugin({
        name: 'Weather & Holidays',
        schemas: {
           Weather: WeatherPlugin(),
           Holidays: HolidaysPlugin(),
        users: [
                email: ''
                name: 'Admin',
                password: Environment('ADMIN_PASSWORD'),
                is_disabled: false,
                is_admin: true
        env: [
            EnvironmentVariable({ name: 'ADMIN_PASSWORD' }) 


    We provide the following detailed documentation:

    • EDK CLI: detailed CLI usage reference and examples
    • EDK API: programmatic api for the cli functionality
    • Solution development: building and end-to-end solution with the EDK


    The EDK is licensed under the EDK Licence version LICENSE-1.04, the full version of the EDK Licence is available here.

    Release Notes


    @elaraai/edk v3.9.2


    • Added resiliency around failure cases with the Rest API Datasources


    @elaraai/edk v3.9.1


    • Added failure key to RestApiRequest which will bet set to true when a request fails, to allow for smarter retry logic



    • Added minimum Node engine support to be 16.x
    • Upgraded Typescript to version 4.6

    @elaraai/edk v3.9.0


    • Added keep command to edk deploy <deployment> to allow the preservation of a specific service
    • Added caching layer for Rest API data sources
    • Added RowHTMLVisual for using HTML to access and represent data as a visual
    • Added Variant types for working with nullable types in schema


    • Changed ability to specifiy deployment url as either http/https or leave off entirely (defaults to HTTPS in that case)
    • [Breaking] Changed Rest API Datasource definition structure significantly to support caching more effeciently


    @elaraai/edk v3.8.3-3


    • Added GroupCombinedVisual to visualise a combination column and line chart on a shared numeric y axes.
    • Added VisualList to allow secondary charts to be shown on a page using drag and drop into existing PanelVisual objects
    • Added powered, ApplicationIcon and updates to ApplicationColors for customised styling of UI.
    • Added improved UI view download, filtering and sorting
    • Added Settable``Property for Structures to facilitate event based single-value properties.
    • Added OptimizationPlugin to diagnose state and progress of Optimization.
    • Added OptionsPipelinePlugin to create a pipeline flattening Option, Value and Function property values across defined scenarios.
    • Added PredictionPlugin to diagnose state and progress of Prediction.


    • Remove predict predicate in Process, Resource and Agent entities, to automate seperation of deterministic trajectories from probabilistic trajectories in simulation.


    • Improve status output for Optimization


    @elaraai/edk v2.3.1


    • Added edk add visual command to manage visual assets.
    • Added edk build speed improvements.
    • Added edk links command to view the relationships to a specificed project asset.
    • Added handling of uri schema to edk add datasource and edk-io detect.
    • Added version command to view currently installed version of edk-io and edk.
    • Added DistributionOperation to generate grouped distributions in a Pipeline.
    • Added OffsetOperation to select expressions from sorted offset rows in a Pipeline.
    • Added explicit date configuration for SingleEvent and MultipleEvent.
    • Added RowPivotVisual to visualise ordered structs in a dense pivot grid.
    • Added RowRidgelineVisual to visualise high resolution stacked ridgeline charts.
    • Added z_overlap to RowRidgelineVisual and GroupRidgelineVisual to control of z vertical cutoff.
    • Added key to GroupLineVisual to generate nested lines.
    • Added uri schema to DataSource for generalised specification of the following protocols:
      • ftp://
      • sftp://
      • http://
      • https://
      • mssql://
      • file://
    • Added ScenarioFlattenPlugin to transpose multiple Scenario rows into value Expressions per Scenario.
    • Added TimeBoundsPlugin to calculate the temporal range accross multiple Tables.


    • Improve UI and visual styling
    • Improved Layout and Axis definition and helper functions.
    • Improved Layout and Axis definition and helper functions.


    • Seperate Visual into root of schema object.

    [Version 1]

    Initial public release.




    npm i @elaraai/edk

    DownloadsWeekly Downloads






    Unpacked Size

    7.53 MB

    Total Files


    Last publish


    • elaraai