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 totrue
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 toedk 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 withnullable
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 toApplicationColors
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 ofOptimization
. - Added
OptionsPipelinePlugin
to create a pipeline flatteningOption
,Value
andFunction
property values across defined scenarios. - Added
PredictionPlugin
to diagnose state and progress of Prediction.
Changed
- Remove
predict
predicate inProcess
,Resource
andAgent
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
andedk-io detect
. - Added version command to view currently installed version of
edk-io
andedk
. - Added
DistributionOperation
to generate grouped distributions in aPipeline
. - Added
OffsetOperation
to select expressions from sorted offset rows in aPipeline
. - Added explicit date configuration for
SingleEvent
andMultipleEvent
. - Added
RowPivotVisual
to visualise ordered structs in a dense pivot grid. - Added
RowRidgelineVisual
to visualise high resolution stacked ridgeline charts. - Added
z_overlap
toRowRidgelineVisual
andGroupRidgelineVisual
to control of z vertical cutoff. - Added key to GroupLineVisual to generate nested lines.
- Added
uri
schema toDataSource
for generalised specification of the following protocols:ftp://
sftp://
http://
https://
mssql://
file://
- Added
ScenarioFlattenPlugin
to transpose multipleScenario
rows into valueExpressions
perScenario
. - Added
TimeBoundsPlugin
to calculate the temporal range accross multiple Tables.
Fixed
- Improve UI and visual styling
- Improved
Layout
andAxis
definition and helper functions. - Improved
Layout
andAxis
definition and helper functions.
Changed
- Seperate
Visual
into root of schema object.
[Version 1]
Initial public release.