# Understanding Project Deployment With Environments
WHO CAN USE THIS FEATURE?
This guide is applicable to accounts with the Environments feature enabled.
With just a few clicks, you can easily deploy projects to different environments. For example: When a recipe is ready for testing, you can deploy it from DEV to the TEST environment.
In this guide, we'll cover:
# Deployment Basics
- How does deployment work?
- Who can perform deployments?
- What can be deployed?
- Where can I deploy projects?
- How are recipe dependencies handled?
- How are updates made in the target environment?
# How does deployment work?
In Workato, deployment is a process that pushes recipes and other assets from one environment to another environment as part of recipe lifecycle management (RDLC). Recipes are typically developed in DEV, moved to TEST when they're "code complete," and then moved to PROD after testing and approval.
When deploying a project, you can either deploy to an environment or download a ZIP file version as a package.
# Who can perform deployments?
To deploy a project to an environment, a collaborator needs:
- Access to the project to be deployed
- Access to the environment containing the project
- Access to the environment the project is being deployed to
For example: Let's say you want to deploy your HRBot project from DEV to TEST. To do this, you'd need access to the HRBot project in DEV and access to the TEST environment.
Note: If a collaborator only has access to one environment, they won't be able to deploy projects.
# What can be deployed?
Deployment occurs at the project level. While any type of asset can be deployed - such as recipes, connections, lookup tables, etc. - only assets from a single project can be deployed at a time.
# Where can I deploy projects?
Projects can only be deployed from the main (DEV) workspace. Refer to the Deploying projects to an environment guide for more info.
# How are recipe dependencies handled?
When a project is deployed to an environment, dependent relationships are deployed and maintained:
If the dependency exists in the target environment, the reference will be automatically resolved.
For example: A lookup table used by a recipe already exists in the target environment prior to deployment. In this case, the reference would be automatically resolved.
If the dependency doesn't exist in the target environment, then the reference must be resolved by you.
For example: A lookup table used by a recipe already doesn't exist in the target environment prior to deployment. In this case, you'd have to deploy the lookup table from the source environment to resolve the reference.
Note: When connections are deployed to an environment for the first time, you'll need to reconnect them. Recipes won't run until connections are re-established after the initial deployment.
# How are updates made in the target environment?
How updates are made to the target environment depends on a few things:
- If the project doesn't exist, all recipes and assets will be created and shown as New during deployment
- If the project does exist:
- Existing recipes and assets will be overwritten
- Assets that have moved will be moved to the new folder
- New recipes and assets will be created
Note: If a recipe or asset is deleted in the source environment, it will not be deleted from the target environment.
For example: If you delete a Slack connection in DEV and then deploy a project to TEST, the Slack connection will still exist in TEST.
# Deploying Projects
# Deploying To An Environment
Ready to start deploying projects to environments? Check out the Deploying a Project to an Environment guide for step-by-step instructions.
# Downloading A Project Package
Similar to exporting a package using RDLC, you can download a ZIP file package of a project. You can download the entire project or customize which recipes and other assets to include.
# Viewing Deployment Details
You can view deployment details in a project's Deployments tab. To see what was deployed, click the entry in the log.
In addition to the deployment activity log, all deployments are included in your account's Activity audit log (Dashboard > Audit).
Note: Project deployment logs are only available in the DEV environment.