Create an app to use it in CORVA.AI
Apps generator for corva.ai.
- NodeJs >= 16.14.0 (https://nodejs.org/en/download/)
``sh`
npm i -g @corva/create-app
corva-create-app provides a user-friendly CLI wizard to create an app.
`sh
Usage: create-corva-app [options] [command]
Options:
-h, --help display help for command
Commands:
create [options] [project-directory] Create a new app
zip [options]
release [options]
rerun [options]
attach [options]
help [command] display help for command
`
To create a new app use create command.
`sh
Usage: create-corva-app create
Create a new app
Arguments:
project-directory Project directory to work with (default: "Current working dir")
Options:
--developerName [string] Enter the Developer Name (default: "O&G Company")
--developerIdentifier [string] Enter the Developer Identifier (default: "oandgc")
--appType Choose the App Type (choices: "ui", "scheduler", "stream", "task")
--schedulerType Choose the scheduler type (choices: "1", "2", "4")
--cronString [string] Provide CRON string for the scheduler (default: "/5 *")
--depthMilestone [number] Provide depth milestone for the scheduler (default: 1)
--logType Choose the log type (choices: "time", "depth")
--appName [string] Enter the App Name (default: "Corva Dev Center App")
--description [string] Enter description (default: "This is the description of my app. You can do great things with it!")
--summary [string] Enter summary (default: "More information about this app goes here")
--category [string] Enter category (default: "")
--website [string] Enter website (default: "https://www.oandgexample.com/my-app/")
--segments Choose segments (choices: "drilling", "completion")
--runtime Choose runtime (choices: "ui", "nodejs16.x", "python3.8", "python3.9")
-p, --packageManager Please select the desired package manager (choices: "yarn", "npm")
-t, --useTypescript [boolean] Would you like to use TypesScript? (default: false)
--silent [boolean] Only log result of the operation (default: false)
--no-dependencies-install Skip installing dependencies
--no-git-init Skip initializing git repository
`
#### Create a UI application
`sh`
create-corva-app test --appName "Test" --segments "drilling" --category "wellDesign" --appKey "some-company.test.ui" --appType "ui" --runtime "ui"
#### Create a NodeJs TypeScript application
`sh`
create-corva-app test --appName "Test" --segments "drilling" --category "wellDesign" --appKey "some-company.test.scheduler" --appType "scheduler" --runtime "nodejs12.x" -t
#### Create a Python application
`sh`
create-corva-app test --appName "Test" --segments "drilling" --category "analytics" --appKey "some-company.test.stream" --appType "stream" --runtime "python3.8"
To create a zip that contains app ready to be deployed to Corva use zip command.
`sh
Usage: create-corva-app zip [options]
Bundle app
Arguments:
project-directory Project directory to work with
patterns Additional patterns to zip (default: [])
Options:
--bump-version
--ignored-files [ignoredFiles...] Patterns to skip zip
--silent [boolean] Only log result of the operation (default: false)
`
By default next files will be included.
For frontend apps:
- manifest.jsonpackage.json
- yarn.lock
- .npmrc
- config-overrides.js
- src
- all files under tsconfig.json
-
For apps that written in node:
- manifest.jsonpackage.json
- package-lock.json
- either or yarn.lockconfig
- all files under folder*.js
- all files under src and lib folders (if typescript is not used)tsconfig.json
- , tsconfig.build.json (if typescript is used)*.ts
- all files under src and lib folders (if typescript is used)
For apps that written in python:
- manifest.jsonrequirements.txt
- *.py
- all files
If you want to zip some files that are not included pass that as patterns arguments.--ignored-files
To skip some files from zipping please use option.
#### Create a zip file from the content of test-app folder & put zip file in it.
`sh`
create-corva-app zip test-app
#### Create a zip file & automatically bump version
`sh`
create-corva-app zip test-app --bump-version=patch
#### Create a zip file from the content of test-app folder with custom content (globs>) are supported)
`sh`
create-corva-app zip test-app some/missing/file1 some/other/missing/file2 all/files/*.glob
To push app to Corva use release command.
`sh
Usage: create-corva-app release [options]
Release app
Arguments:
project-directory Project directory to work with
patterns Additional patterns to zip (default: [])
Options:
--bump-version
--ignored-files [string...] Patterns to skip zip (default: [])
--env [string] Environment to use (choices: "qa", "staging", "production", default: "qa")
--api-key [string] Pre generated API key for authorization during app upload
--app-key [string] Explicitly set appKey that CLI is going to use. Otherwise it will be taken from manifest.json file. [works only for Front-End apps currently]
--notes [string] Add custom notes to published app
--label [string] Put a label on the release (choices: "DEV", "BETA", "PROD")
--remove-on-fail [boolean] Remove release if it fails during deployment (default: false)
--silent [boolean] Only log result of the operation (default: false)
--remove-on-success App package (.zip) will not be deleted after upload (default: true)
--remove-existing [boolean] If package.json version is already taken - remove the previously published package and upload a new one (default: false)
--author [string] Author name for the audit
`
#### Make a release with ask for version
`sh`
create-corva-app release test-app
#### Make a release without version increase
`sh`
create-corva-app release test-app --bump-version=skip
#### Make a release with increased version
`sh`
create-corva-app release test-app --bump-version=patch
#### Make a release with custom version
`sh`
create-corva-app release test-app --bump-version=4.2.0
#### Make a release with author option(by default it will use your GitHub username)
`sh``
create-corva-app release test-app --author=MyName