@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
558 lines • 11.8 kB
TypeScript
import type { IApp, IFramework, IGitProvider, IProject, IUser, IWorkspace } from "../entities";
import type { GitProviderType, ResourceQuotaSize } from "./SystemTypes";
/**
* Các giá trị đầu vào của CLI
*/
export type InputOptions = {
/**
* For testing purpose
* - Flags: `--debug`
*/
isDebugging?: boolean;
/**
* Follow the output logs until the command is finished.
* - Flags: `--tail`
*/
isTail?: boolean;
/**
* Tracking information
*/
statistics?: {
author?: string;
startTime?: Date;
endTime?: Date;
};
/**
* Continuous integration (CI) flag
* - Flag: `--ci`, `--no-ci`
* @default false
*/
ci?: boolean;
/**
* Define if the command was executed on local machine or server machine
* - Flags: `--local`
*/
isLocal?: boolean;
/**
* Version string
* - Flags: `--version`, `-v`
*/
version?: string;
/**
* Ownership
*/
author?: IUser;
username?: string;
userId?: string;
workspace?: IWorkspace;
workspaceId?: string;
/**
* User input organization. Used in:
* - Container registry commands
* - Git provider commands
*/
org?: string;
/**
* User input username
* - Flags: `--user`
*/
user?: string;
/**
* User input password
* - Flags: `--pass`
*/
pass?: string;
/**
* User input email
* - Flags: `--email`
*/
email?: string;
/**
* User input server
* - Flags: `--server`
*/
server?: string;
/**
* Auth input name
* - Flags: `--auth`
*/
auth?: string;
/**
* User input name
* - Flags: `--name`
*/
name?: string;
/**
* {App} slug
* - Flags: `--slug`
*/
slug?: string;
/**
* Flag: `-i`, `--input`
*/
input?: string;
/**
*
*/
data?: string;
/**
* User access token
* Flag: `--token`
*/
token?: string;
/**
* User refresh token
*/
refreshToken?: string;
/**
* API access token
* - Flag: `--api-key`, `--api-token`
*/
apiToken?: string;
/**
* Flag: `--key`, `--token`
*/
key?: string;
/**
* Flag: `--val`, `--value`
*/
value?: string;
/**
* Flag: `-f`, `--file`
*/
filePath?: string;
/**
* - Flags: `--path`
*
*/
path?: string;
/**
* - Flags: `--url`
*
*/
url?: string;
/**
* - Flags: `--host`
*
*/
host?: string;
/**
* Location where the CLI command point to.
* - Flags: `--dir`, `--targetDir`
*/
targetDirectory?: string;
/**
* Git repo URL
* @example https://github.com/digitopvn/diginext
*/
repoURL?: string;
/**
* Git repo SSH url
* @example git@github.com:digitopvn/diginext.git
*/
repoSSH?: string;
/**
* Git repo slug
*/
repoSlug?: string;
/**
*
*/
SOCKET_ROOM?: string;
/**
* Framework
*/
framework?: IFramework;
/**
* Version of the framework
*/
frameworkVersion?: string;
/**
* - Flags: `--force`, `--overwrite`
* @default false
*/
overwrite?: boolean;
/**
* DX command's action level 1
*/
action?: string;
/**
* DX command's action level 2
*/
secondAction?: string;
/**
* DX command's action level 3
*/
thirdAction?: string;
/**
* DX command's action level 4
*/
fourAction?: string;
/**
* DX command's action level 5
*/
fifthAction?: string;
/**
* Specify environment code:
* - One of: `dev, prod, staging,...`
* - Flags: `--env`
* @default "dev"
*/
env?: "dev" | "prod" | "staging" | string;
/**
* List of deploy environment codes
* @default ["dev"]
*/
envs?: ("dev" | "prod" | "staging" | string)[];
/**
* - Flags: `--dev`
* @type {Boolean}
* @default true
*/
isDev?: boolean;
/**
* - Flags: `--staging`
* @type {Boolean}
* @default false
*/
isStaging?: boolean;
/**
* - Flags: `--prod`
* @type {Boolean}
* @default false
*/
isProd?: boolean;
production?: boolean;
/**
* - Flags: `--canary`
* @type {Boolean}
* @default false
*/
isCanary?: boolean;
/**
* Should compress the files
*/
optimize?: boolean;
/**
* - Flags: `--ssl`, `--no-ssl`
* @type {Boolean}
* @default true
*/
ssl?: boolean;
/**
* - Flags: `--healthz` (default "/"), `--no-healthz`, `--healthz=/custom/path`
* @default "/"
*/
healthz?: string | null;
/**
* Should skip creating new directory while creating project
* @default false
*/
skipCreatingDirectory?: boolean;
/**
* @default false
* Should show input options while executing the command [for DEBUGGING]
*/
shouldShowInputOptions?: boolean;
/**
* - Flags: `--help`, `-h`
* @type {Boolean}
* @default false
*/
shouldShowHelp?: boolean;
/**
* - Flags: `--version`, `-v`
* @type {Boolean}
* @default false
*/
shouldShowVersion?: boolean;
/**
* - Flags: `--update`, `-U`
* Should update CLI version before running the command
* @type {Boolean}
* @default false
*/
shouldUpdateCli?: boolean;
/**
* @deprecated
* ### This is required now!
* ---
* Enable GIT when create new or initialize app
* @default true
*/
shouldUseGit?: boolean;
/**
* @type {Boolean}
* @default false
*/
shouldCompress?: boolean;
/**
* @type {Boolean}
* @default false
*/
shouldGenerate?: boolean;
/**
* - Flags: `--template`
* @type {Boolean}
* @default false
*/
shouldUseTemplate?: boolean;
/**
* - Flags: `--merge`
* @type {Boolean}
* @default false
*/
shouldMerge?: boolean;
/**
* - Flags: `--inherit`
* @type {Boolean}
* @default true
*/
shouldInherit?: boolean;
/**
* @deprecated
*/
shouldUpdatePipeline?: boolean;
/**
* Should install NPM packages locally after creating new project
* @default true
*/
shouldInstallPackage?: boolean;
/**
* - Flags: `--close`
* @default true
*/
shouldClose?: boolean;
/**
* [Use when deploying an app] Force upload local DOTENV file to deployed environment.
* - Flags: `--upload-env`
* @default false
*/
shouldUploadDotenv?: boolean;
/**
* [Use when deploying an app] Should enable CDN for this app
* - Flags: `--cdn`
* @default false
*/
shouldEnableCDN?: boolean;
/**
* Should create something
* - Flags: `--create`
* @example
* - Create "imagePullSecrets" in a namespace
* @default false
*/
shouldCreate?: boolean;
/**
* Should apply something
* - Flags: `--apply`
*/
shouldApply?: boolean;
/**
* Should roll out release (skip `prerelease` environment)
* - Flags: `--rollout`
* @default false
*/
shouldRollOut?: boolean;
/**
* ! Should deploy app from a fresh namespace
* - Flags: `--fresh`
* ## [WARNING]
* - **With this flag enabled, the server will wipe out all current deployments within the target namespace, then deploy your app completely from scratch!**
* - Use at your own risk, make sure you understand what you're doing, double check the namespace before deploying to avoid accidently take down other apps.
*/
shouldUseFreshDeploy?: boolean;
/**
* Content of the deployment yaml (Namespace, Ingress, Service, Deploy,...)
*/
deployYaml?: string;
/**
* - Flags: `--port`
* @type {Number}
*/
port?: number;
/**
* - Flags: `--replicas`
* @type {Number}
*/
replicas?: number;
/**
* Project
*/
project?: IProject;
/**
* ID of the {Project}
* - [WARN] This is NOT a {PROJECT_ID} of Google Cloud platform!
*/
projectId?: string;
/**
* {Project} slug
* - Flags: `--projectSlug`
*/
projectSlug?: string;
/**
* {Project} name
* - Flags: `--projectName`
*/
projectName?: string;
/**
* Kubernetes namespace
* - Flags: `--namespace`
*/
namespace?: string;
/**
* Application's domain
* - Flags: `--domain`
* @example "myapp.example.com"
*/
domain?: boolean | string;
/**
* @type {Boolean}
* @default false
*/
printSuccess?: boolean;
/**
* Git repository access policy, default is PRIVATE.
* - Flags: `--public`
*
* @type {Boolean}
* @default false
*/
isPublic?: boolean;
/**
* - Flags: `--redirect`
*
* @type {Boolean}
* @default false
*/
redirect?: boolean;
/**
* Build directory
*/
buildDir?: string;
/**
* Build tag
*/
buildTag?: string;
/**
* Build image
*/
buildImage?: string;
/**
* - Flags: `--image`
*/
imageURL?: string;
/**
*
*/
buildId?: string;
/**
* - Flags: `--size`
*
* @default "1x"
*/
size?: ResourceQuotaSize;
/**
* Specify an {App} instance
*/
app?: IApp;
/**
* ID of an {App} instance
*/
appId?: string;
/**
* Slug of an {App} instance
* - Flags: `--appSlug`
*/
appSlug?: string;
/**
* Cluster's slug. For deploy to specific cluster.
* - Flags: `--cluster`
*/
cluster?: string | boolean;
/**
* [GOOGLE CLOUD] Specify a zone of your cluster
*/
zone?: string;
/**
* [GOOGLE CLOUD] Specify a region of your cluster
*/
region?: string;
/**
* Cloud provider
* - Flag: `--provider`, `--pro`
* @type {"gcloud" | "digitalocean" | "custom"}
* @default "custom"
*/
provider?: string;
/**
* Container Registry's slug
* - Flag: `-r`, `--registry`
*/
registry?: string | boolean;
/**
* Git provider
* - Flag: `--git`
*/
git?: IGitProvider;
/**
* Git provider type
* - Flag: `--gp`, `--git-provider`
* @example "github", "bitbucket"
*/
gitProvider?: GitProviderType;
/**
* A slug of git workspace
* - Flag: `--org`, `--git-org`
*/
gitOrg?: string;
/**
* Specify a git branch
* - Flags: `--branch`, `--git-branch`
*/
gitBranch?: string;
/**
* `PROJECT_ID` trên provider (GCP hoặc DO)
*/
providerProject?: string;
/**
* Flag: `-o`, `--output`
* @default "string"
* @example "string" | "json" | "yaml"
*/
output?: string;
/**
* Output directory location.
* @default "string"
* @example "/path/to/output/"
*/
outputDir?: any;
/**
* Output file name.
* @default "string"
* @example "output.txt"
*/
outputName?: any;
/**
* Output path (include directory path + file name).
* @default "string"
* @example "/path/to/output.file"
*/
outputPath?: any;
/**
* @deprecated
*/
stagingDomains?: string[];
/**
* @deprecated
*/
prodDomains?: string[];
/**
* Used in request build/deployment
* - Flag: `-m`, `--message`
* @example "v1.0.0"
*/
message?: string;
};
export default InputOptions;
//# sourceMappingURL=InputOptions.d.ts.map