@elaraai/edk
TypeScript icon, indicating that this package has built-in type declarations

3.9.3 • Public • Published

EDK

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

Installation

The EDK package can be installed with npm:

npm install -g @elaraai/edk

Usage

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]

Options:
  -V, --version                  output the version number
  -h, --help                     display help for command

Commands:
  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) {
         //...
     }
}
 
run()

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: [
        User({
            email: 'admin@domain.com'
            name: 'Admin',
            password: Environment('ADMIN_PASSWORD'),
            is_disabled: false,
            is_admin: true
        })
    ],
    env: [
        EnvironmentVariable({ name: 'ADMIN_PASSWORD' }) 
    ]
})

Documentation

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

License

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

Release Notes

[2022-05-21]

@elaraai/edk v3.9.2

Fixed

  • Added resiliency around failure cases with the Rest API Datasources

[2022-05-20]

@elaraai/edk v3.9.1

Added

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

[2022-05-19]

General

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

@elaraai/edk v3.9.0

Added

  • 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

  • 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

[2022-04-06]

@elaraai/edk v3.8.3-3

Added

  • 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.

Changed

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

Fixed

  • Improve status output for Optimization

[2021-11-18]

@elaraai/edk v2.3.1

Added

  • 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.

Fixed

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

Changed

  • Seperate Visual into root of schema object.

[Version 1]

Initial public release.

Readme

Keywords

none

Package Sidebar

Install

npm i @elaraai/edk

Weekly Downloads

0

Version

3.9.3

License

SEE LICENSE IN LICENSE.txt

Unpacked Size

7.53 MB

Total Files

93

Last publish

Collaborators

  • elaraai