# workflows create

## Synopsis

```shell
omics workbench workflows create [WORKFLOW_FILE...]
  [--name=TEXT]
  [--version-name=TEXT]
  [--description=FILE|TEXT]
```

## Description

Create a new workflow in a namespace from the given `WORKFLOW_FILE`, and set any additional metadata.

## Examples

Create a workflow with a single file `main.wdl`. When the name or version name is not specified, workbench will use default values. The `name` will be derived directly from the workflow name in `main.wdl`. For example if the name of the workflow is `workflow HelloWorld { ... }`, then the name in Workbench will be `HelloWorld`

If you do not specify a version name the default version name is: `v1_0_0`

```shell
dnastck workbench workflows create main.wdl
```

You can customize the metadata of the workflow and override the default values

```shell
omics workbench workflows create --name "Hello World" --version-name 1.0 --entrypoint main.wdl
```

You can also add a description in markdown, uploading a file

```shell
omics workbench workflows create --name "Hello World" --description @description.md --entrypoint main.wdl
```

Or writing the contents of the description direclty

```shell
omics workbench workflows create --name "Hello World" --description '# Description \nA simple hello world' --entrypoint main.wdl
```

## Positional Arguments

### `WORKFLOW_FILE`

A WDL or supporting text file that you would like to upload as part of the workflow. You can specify multiple files at once. The first WDL file specified will become the entrypoint of the workflow.

The CLI transparently handles imports for you, inspecting each WDL and resolving/finding relative imports that are defined in the files. Because of this, it is typically sufficient to only specify the entrypoint of the workflow, since all other files will be discoverable from that

## Flags

### `--entrypoint`=`FILE`

**Note**: The `--entrypoint` flag is required and specifies the entrypoint for the workflow. Needs to be a path of a file in a context of the workflow, but once it is defined by `--entrypoint` you do not have to define it again.

### `--name`=`TEXT`

Specify a human-readable name for the workflow

### `--version-name`=`TEXT`

Specify a human-readable name for the first version of the workflow. The version-name will be used to derive the version ID which is how workbench references a given version at the API level.

### `--description`=`FILE|TEXT`

Specify a description written in markdown that will be rendered on the workflows overview page for the given workflow. This is a convenient way to provide specific information, outlines or references for your workflow

### `--organization`=`TEXT`

Specify the organization for the workflow.
