# Understanding project deployment with environments
WHO CAN USE THIS FEATURE?
This guide is applicable to accounts with the Environments feature enabled. Environments is available for direct and Embedded users. Learn more about Environments for Embedded customers.
Video guide: Build, test, and deploy with Environments
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 the Development (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 Development, moved to Test when they're "code complete," and then moved to Production 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
- The deployment privilege enabled in the environment containing the project.
- The deployment privilege enabled in the environment you plan to deploy the project to.
For example: You plan to deploy your HRBot project from Development to Test. To do this, you must have access to the HRBot project in Development, and the deployment privilege must be enabled in both the Development and Test environments.
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 deployment updates affect the target environment
The system makes deployment updates in the target environment based on the project’s status:
If the project doesn't exist in the target environment, all recipes and assets deploy as new.
If the project exists in the target environment, the system overwrites existing recipes and assets and adds new recipes and assets. However, if you move a recipe or asset to a different folder in the source environment, the target environment does not recognize this as an update. Instead, a new instance of the recipe or asset is created in a new folder within the target environment, keeping the original instance in its previous folder. This results in two copies of the recipe or asset in the target environment, one in the original folder and one in the new folder.
The system does not delete recipes or assets removed from the source environment. For example, if you delete a Slack connection in Development and deploy to Test, the Slack connection remains 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.
After the download is complete, you can upload the package to a version control system or import it to another Workato instance.
# Viewing deployment details
You can view deployment details in a project's Deployments tab.
DEPLOYMENT PERMISSIONS
Only users with deployment permissions can see this tab. Project deployment logs are only available in the Development environment.
Deployments tab
To see what was deployed, click an entry in the history list of past deployments. This action opens a new page displaying the deployment details.
View deployment details
In addition to the deployment activity log, all deployments are included in your account's Activity audit log (Operations hub > Audit).
# Resources
Last updated: 11/5/2024, 6:04:00 PM