> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Manage Projects

> Use ZCLI commands to create, view, update, and delete projects, project deployments, and flowlogs from the command line.

Use the ZEDEDA CLI (ZCLI) to manage projects and their deployments from the command line. This article covers `zcli project` commands for projects, deployments, and flowlogs, with syntax and examples for each operation.

## Before You Start

* ZCLI is installed and authenticated against your enterprise. See [Get Started](https://zededa.mintlify.site/zcli-reference/get-started.md).
* You have the SysManager or SysAdmin role in your enterprise. See [Manage Roles](https://zededa.mintlify.site/new-ui/infrastructure-services/administration/manage-roles.md).
* For GUI-based project management, see [Create a Project](https://zededa.mintlify.site/new-ui/infrastructure-services/projects/create-a-project.md) and [Manage Projects](https://zededa.mintlify.site/new-ui/infrastructure-services/projects/manage-projects.md).

## Manage Projects

### Create a project

```text theme={"dark"}
zcli project create <name> [--title=<title>] [--description=<description>] [--policy-config=<type:config-path>...] [--enable-interface-ordering=<true|false>] [--project-type=<type>] [--tags=<key:value>...] [(--deployment-name=<dname> --deployment-tag=<dtag> [--app-inst-config=<app-inst-config>] [--net-inst-config=<net-inst-config>] [--vol-inst-config=<vol-inst-config>] [--dev-policy-config=<dev-policy-config>] [--deployment-title=<title>] [--edgeview-config=<edgeview-config>])]
```

If you omit `--title` or `--description`, ZCLI uses the project name for both.

| Flag | Description |
| - | - |
| `--policy-config=<type:config-path>` | Policy type and the path to a JSON file that defines the policy, separated by a colon. Supported types are `app`, `cloud`, `module`, `attestation`, `network`, `edgeview`, `localoperatorconsole`, and `pcr`. Repeat the flag to add more than one policy. To get starter JSON files, see [Copy Policy Configuration Templates](#copy-policy-configuration-templates). |
| `--tags=<key:value>` | User-defined tag, for example `--tags=SENSOR_NET:humidity`. Repeat for multiple tags. |
| `--project-type=deployment` | Creates a deployment project. Without this value, ZCLI creates a standard project and ignores the deployment options. When you set it, ZCLI ignores `--policy-config`. |
| `--deployment-name`, `--deployment-tag` | Name and tag of the project's first deployment. If you pass any deployment option, both flags are required. |
| `--app-inst-config`, `--net-inst-config`, `--vol-inst-config`, `--dev-policy-config`, `--edgeview-config` | Path to a JSON file that holds the application instance, virtual network, volume, node, or EdgeView policies for the deployment. |

Example of a standard project with an application policy:

```text theme={"dark"}
zcli project create MY_PROJECT --description=MY_FIRST_DESCRIPTION --policy-config=app:app_policy.json --tags=SENSOR_NET:humidity
```

Example of a deployment project:

```text theme={"dark"}
zcli project create MY_PROJECT --description=MY_FIRST_DESCRIPTION --enable-interface-ordering=true --project-type=deployment --deployment-name=MY_DEPLOYMENT --deployment-tag=MY_DEPLOYMENT_TAG --vol-inst-config=vol_inst_policy.json
```

### View a project

```text theme={"dark"}
zcli project show [[[<name> | --uuid=<uuid>] [--detail] [--edgeview]] | [[--name-pattern=<name-pattern>] [--summary] [--page-size=<page-size>] [--tags=<key:value>...]]]
```

Example:

```text theme={"dark"}
zcli project show MY_PROJECT --detail
```

Example response:

```text theme={"dark"}
Project Name: MY_PROJECT
Project ID: 6e26442f-2c7e-4590-bd80-ca33b7919984
Project Title: MY_PROJECT
Project Description: MY_FIRST_DESCRIPTION
Tags:
Flowlog Transmission: Disabled
App Interface Ordering: Enabled
State: Active
Nodes: 0
Attestation Policy: MY_PROJECT_DFSCPqSaCZkBCXk (Ready)
Attestation type: Accept
Version: 1
Created at: Sun Mar 30 2025 05:50:39 AM
Created By: user@zededa.com
Last Updated at: Sun Mar 30 2025 05:50:39 AM
Last Updated By: user@zededa.com
```

### Update a project

You can update a project's title, description, policy tags, interface ordering setting, and other options after creation.

```text theme={"dark"}
zcli project update <name> [--title=<title>] [--description=<description>] [--config=<key:value>...] [--policy-config=<type:config-path...>] [--tags=<key:value>...] [--enable-interface-ordering=<true|false>]
```

Use `--config=<key:value>` to set project-specific configuration properties for the edge nodes in the project, for example `--config=configInterval.Timer:60`. Repeat the flag to set more than one property. To remove a property and return it to its default, set its value to `default`.

Example:

```text theme={"dark"}
zcli project update MY_PROJECT --description=MY_SECOND_DESCRIPTION
```

### Delete a project

```text theme={"dark"}
zcli project delete <name> [-f]
```

Example:

```text theme={"dark"}
zcli project delete MY_PROJECT
```

The `-f` flag forces deletion without a confirmation prompt.

## Manage Project Deployments

### Create a project deployment

Add a deployment to an existing project. The deployment options are the same as the deployment options for `project create`.

```text theme={"dark"}
zcli project create-deployment <name> --deployment-name=<deployment-name> --deployment-tag=<deployment-tag> [--app-inst-config=<app-inst-config>] [--net-inst-config=<net-inst-config>] [--vol-inst-config=<vol-inst-config>] [--dev-policy-config=<dev-policy-config>] [--deployment-title=<title>] [--edgeview-config=<edgeview-config>]
```

Each `*-config` flag takes the path to a JSON file. If you omit `--deployment-title`, ZCLI uses the deployment name as the title.

Example:

```text theme={"dark"}
zcli project create-deployment MY_PROJECT --deployment-name=MY_DEPLOYMENT --deployment-tag=MY_DEPLOYMENT_TAG --app-inst-config=app_inst_policy.json
```

### View a project deployment

First, list the deployments for a project to retrieve the deployment ID. Pass the project name, not the deployment name.

```text theme={"dark"}
zcli project show-deployment <project-name>
```

Example:

```text theme={"dark"}
zcli project show-deployment MY_PROJECT
```

Example response:

```text theme={"dark"}
Deployment-ID                          Title          Description   Version
--------------------------------------  -------------  ------------  -------
219eb37e-6dfb-42d4-bd9d-e21554c1c2f2  MY_DEPLOYMENT3-v1  MY_DEPLOYMENT
```

Then pass the deployment ID to view its full details:

```text theme={"dark"}
zcli project show-deployment <project-name> [--deployment-id=<id>]
```

Example:

```text theme={"dark"}
zcli project show-deployment MY_PROJECT --deployment-id=219eb37e-6dfb-42d4-bd9d-e21554c1c2f2
```

Example response:

```text theme={"dark"}
Deployment name: MY_DEPLOYMENT-v1
Deployment id: 219eb37e-6dfb-42d4-bd9d-e21554c1c2f2
Edgeview Policy: test-edgeView-jh53-v1
Edgeview Allow: True, Max Expire(sec): 2592000, Max Instances: 3
Allow Change: True, Dev: True, App: True, Ext: False
JWT Info: url: zedcloud.gmwtus.zededa.net/api/v1/edge-view, sec: 18000, inst: 1, enc: False
```

### Update a project deployment

```text theme={"dark"}
zcli project update-deployment <project-name> --deployment-id=<id> [--app-inst-config=<config>] [--net-inst-config=<config>] [--vol-inst-config=<config>] [--dev-policy-config=<config>] [--deployment-tag=<tag>] [--deployment-title=<title>] [--edgeview-config=<config>]
```

Example:

```text theme={"dark"}
zcli project update-deployment MY_PROJECT --deployment-id=219eb37e-6dfb-42d4-bd9d-e21554c1c2f2
```

### Delete a project deployment

```text theme={"dark"}
zcli project delete-deployment <project-name> [--deployment-id=<id>] [-f]
```

Example:

```text theme={"dark"}
zcli project delete-deployment MY_PROJECT --deployment-id=219eb37e-6dfb-42d4-bd9d-e21554c1c2f2
```

Example response:

```text theme={"dark"}
Delete deployment 219eb37e-6dfb-42d4-bd9d-e21554c1c2f2? [Y/N]: Y
```

### Export a project deployment

```text theme={"dark"}
zcli project export-deployment <project-name> --deployment-id=<id>
```

Example:

```text theme={"dark"}
zcli project export-deployment MY_PROJECT --deployment-id=219eb37e-6dfb-42d4-bd9d-e21554c1c2f2
```

## Manage Flowlogs

Flowlogs collect metadata about application network flows for the virtual networks in a project. Collected attributes include source and destination IP addresses and ports, applied ACL rules, and packet and byte counters. Flowlogs are disabled by default.

### Enable project flowlogs

```text theme={"dark"}
zcli project enable-flowlog <project-name>
```

Example:

```text theme={"dark"}
zcli project enable-flowlog MY_PROJECT
```

### Disable project flowlogs

```text theme={"dark"}
zcli project disable-flowlog <project-name>
```

Example:

```text theme={"dark"}
zcli project disable-flowlog MY_PROJECT
```

## Copy Policy Configuration Templates

ZCLI includes template JSON files for project policies. Copy them to a local directory and edit them before you pass them to `--policy-config`.

```text theme={"dark"}
zcli project copy-policy-config-template [<path>]
```

ZCLI creates the directory in the current working directory. If you omit `<path>`, the directory is named `policy-config-templates`. If the directory already exists, ZCLI overwrites the template files in it. The templates are:

* `app-policy-config.json`.
* `edgeview-policy-config.json`.
* `network-inst-policy-config.json`.
* `azure-policy-config.json`.
* `attestation-policy-config.json`.
* `loc-policy-config.json`.
* `config-lock-policy-config.json`.

Example:

```text theme={"dark"}
zcli project copy-policy-config-template my-templates
```

## Next Steps

> [card] [Create a Project](https://zededa.mintlify.site/new-ui/infrastructure-services/projects/create-a-project.md)
>
> Set up a project using the Edge Intelligence Platform Console.

> [card] [Configure Project Policies](https://zededa.mintlify.site/new-ui/infrastructure-services/projects/configure-project-policies.md)
>
> Details on policy options.

> [card] [Manage Projects](https://zededa.mintlify.site/new-ui/infrastructure-services/projects/manage-projects.md)
>
> GUI-based project management.

> [card] [Overview](https://zededa.mintlify.site/zcli-reference/overview.md)
>
> All ZCLI command procedures, organized by resource type.
