@corva/create-app
Apps generator for corva.ai.
Prerequisites
Installation
npm i -g @corva/create-app
Usage
corva-create-app
provides a user-friendly CLI wizard to create an app.
Usage: create-corva-app [options] [command]
Options:
-h, --help display help for command
Commands:
create [options] [project-directory] Create a new app
zip [options] <project-directory> [patterns...] Bundle app
release [options] <project-directory> [patterns...] Release app
rerun [options] <project-directory> Rerun app
attach [options] <project-directory> Add app to live assets streams
help [command] display help for command
Create an app
To create a new app use create
command.
Usage: create-corva-app create <project-directory> [options]
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
Examples
Create a UI application
create-corva-app test --appName "Test" --segments "drilling" --category "wellDesign" --appKey "some-company.test.ui" --appType "ui" --runtime "ui"
Create a NodeJs TypeScript application
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
create-corva-app test --appName "Test" --segments "drilling" --category "analytics" --appKey "some-company.test.stream" --appType "stream" --runtime "python3.8"
Zip
To create a zip that contains app ready to be deployed to Corva use zip
command.
Usage: create-corva-app zip [options] <project-directory> [patterns...]
Bundle app
Arguments:
project-directory Project directory to work with
patterns Additional patterns to zip (default: [])
Options:
--bump-version <string> Bump version (choices: "major", "minor", "patch", "skip")
--ignored-files [ignoredFiles...] Patterns to skip zip
--silent [boolean] Only log result of the operation (default: false)
What is getting zipped?
By default next files will be included.
For frontend
apps:
manifest.json
package.json
yarn.lock
.npmrc
config-overrides.js
- all files under
src
tsconfig.json
For apps that written in node
:
manifest.json
package.json
- either
package-lock.json
or yarn.lock
- all files under
config
folder - all
*.js
files under src
and lib
folders (if typescript
is not used) tsconfig.json
, tsconfig.build.json
(if typescript
is used)- all
*.ts
files under src
and lib
folders (if typescript
is used)
For apps that written in python
:
manifest.json
requirements.txt
- all
*.py
files
If you want to zip some files that are not included pass that as patterns
arguments.
To skip some files from zipping please use --ignored-files
option.
Examples
Create a zip file from the content of test-app
folder & put zip file in it.
create-corva-app zip test-app
Create a zip file & automatically bump version
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)
create-corva-app zip test-app some/missing/file1 some/other/missing/file2 all/files/*.glob
Release
To push app to Corva use release
command.
Usage: create-corva-app release [options] <project-directory> [patterns...]
Release app
Arguments:
project-directory Project directory to work with
patterns Additional patterns to zip (default: [])
Options:
--bump-version <string> Bump version (choices: "major", "minor", "patch", "skip")
--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)
Examples
Make a release with ask for version
create-corva-app release test-app
Make a release without version increase
create-corva-app release test-app --bump-version=skip
Make a release with increased version
create-corva-app release test-app --bump-version=patch
Make a release with custom version
create-corva-app release test-app --bump-version=4.2.0