[![pipeline status](https://burl-gitlab.global.avidww.com/avid/incubator/toolkit-ui-npm-package/badges/master/pipeline.svg)](https://burl-gitlab.global.avidww.com/avid/incubator/toolkit-ui-npm-package/commits/master)
[![coverage report](https://burl-gitlab.global.avidww.com/avid/incubator/toolkit-ui-npm-package/badges/master/coverage.svg)](https://burl-gitlab.global.avidww.com/avid/incubator/toolkit-ui-npm-package/commits/master)

# MediaCentral CloudUX Apps Starter Kit

Starter kit for creating applications projects in MediaCentral

## Installation:
Using npm just type in your CLI:

**`npm install -g cloudux-starter-kit`**
## Using:

#### CLI:
In your **CLI** type:

- ```cloudux-starter-kit``` for direct setup menu.
- ```cloudux-starter-kit --help``` Do display help page. Installation can be executed by providing flags to your toolkit.
Type ``--help`` to see details.


Usage :
- `-C` new Core project
  - `-n` project name _(required)_
  - `-s` project path _(required)_
  - `-d` project description _(required)_
  - `-i` MediaCentral server host IP _(required)_
  - `-p` MediaCentral port _(optional)_
- `-R`  new React project
  - `-n` project name _(required)_
  - `-s` project path _(required)_
  - `-d` project description _(required)_
  - `-i` MediaCentral server host IP _(required)_
  - `-p` MediaCentral port _(optional)_
- `-B` Build project
  - `-p` project path _(required)_
  - `-n` project name (Should match project/src/project.json under identity.appName) _(required)_
  - `-z` app version should match project/src/project.config.json version field _(required)_
  - `-o` organization should match project/src/project.config.json organization field _(required)_
  - `-i` appID should match project/src/project.config.json appID field _(required)_
  - `-j` appSecret should match project/src/project.config.json appID field _(required)_
  - `-d` developerID should match project/src/project.config.json developerID field _(optional)_
  - `-x` https_proxy For docker build _(optional)_
- `-P` Publish project
  - `-p` path to a project root _(required)_
  - `-n` project name (Should match project/src/project.json under identity.appName) _(required)_
  - `-z` app version should match project/src/project.config.json version field _(required)_
  - `-o` organization should match project/src/project.config.json organization field _(required)_
  - `-k` privateKeyPath should match project/src/project.config.json privateKeyPath field _(required)_
  - `-i` appID should match project/src/project.config.json appID field _(required)_
  - `-j` appSecret should match project/src/project.config.json appID field _(required)_
  - `-d` developerID should match project/src/project.config.json developerID field _(optional)_
  - `-s` password to ssh private key _(optional)_
  - `-x` https_proxy For docker build _(optional)_
- `-S` Sign files
  - `-k` private key path _(required)_
  - `-p` private key password _(optional)_
  - `-m` path to manifest _(optional)_
  - `-f` path to files directory _(optional)_
  - `-i` developer id (assigned by Avid) _(optional)_
- `-I` Build DockerImage
  - `-p` project path _(required)_
  - `-n` project name (Should match project/src/project.json under identity.appName) _(required)_
  - `-z` app version should match project/src/project.config.json version field _(required)_
  - `-o` organization should match project/src/project.config.json organization field _(required)_
  - `-i` appID should match project/src/project.config.json appID field _(required)_
  - `-j` appSecret should match project/src/project.config.json appID field _(required)_
  - `-d` developerID should match project/src/project.config.json developerID field _(optional)_
  - `-x` https_proxy For docker build _(optional)_
#### API
```js
const kit = require('cloudux-starter-kit')
kit(options)
```
##### `kit({options})`
- `core` -- set core to **true** to create new core project
  - `projectName` -- project name  _(required)_
  - `projectPath` -- path to save project  _(required)_
  - `projectDescription` -- project description  _(required)_
  - `projectHostIp` -- MediaCentral server Ip  _(required)_
  - `projectPort` -- port to MediaCentral server _(optional)_
- `react` -- set react to **true** to create new react project
  - `projectName` -- project name  _(required)_
  - `projectPath` -- path to save project  _(required)_
  - `projectDescription` -- project description  _(required)_
  - `projectHostIp` -- MediaCentral server Ip  _(required)_
  - `projectPort` -- port to MediaCentral server _(optional)_
- `build` -- set build to **true** to build your project
  - `project` -- path to your project  _(required)_
  - `name` -- path to your project  _(required)_
  - `https_proxy` -- For docker build _(optional)_
  - `config` -- path to your project  _(required)_
    - `version` -- App version _(required)_
    - `appID` - your Application ID _(required)_
    - `appSecret` - your Application Secret _(required)_
    - `organization` -- Organization name _(required)_
    - `developerId` -- Organization name _(optional)_
- `publish` -- set publish to **true** to publish your project:
  - `project` -- path to a project config file _(required)_
  - `config` -- path to a project config file (optional if the config is project/src/project.config.json) _(required)_
  - `https_proxy` -- For docker build _(optional)_
    - `version` -- version of your app _(required)_
    - `organization` -- name of you organization _(required)_
    - `privateKeyPath` -- Path to your private key _(required)_
    - `appID` - your Application ID _(required)_
    - `appSecret` - your Application Secret _(required)_
    - `developerId` -- your developer ID (optional) _(optional)_
  - `name` -- project name (optional if the name is in a project/src/project.json file under identity.appName) _(required)_
  - `password` -- password to ssh private key _(optional)_
- `sign` -- set sign to *true** to sign your files
  - `key` -- private key path  _(required)_
  - `password` -- private key password _(optional)_
  - `manifest` -- path to manifest file _(optional)_
  - `file` -- path to files directory _(optional)_
  - `id` -- developer ID (assigned by Avid) _(optional)_
- `buildImage` -- set buildImage to **true** to build image of your project
  - `project` -- path to your project  _(required)_
  - `name` -- path to your project  _(required)_
  - `https_proxy` -- For docker build _(optional)_
  - `config` -- path to your project  _(required)_
    - `version` -- App version _(required)_
    - `appID` - your Application ID _(required)_
    - `appSecret` - your Application Secret _(required)_
    - `organization` -- Organization name _(required)_
    - `developerId` -- Organization name _(optional)_

**Check our CloudUX examples on [Avid-Technology Github](https://github.com/avid-technology)**

**Check our [Quick Start](https://developer.avid.com/cert/quickStart.html) for CloudUX**
