Table of Contents:
- The Development Environment
- Deployment Types
- Deploying your Project to Production for the First Time
- The Production Environment
- Deploying Features after the First Time
Catalyst provides two work environments in the Catalyst web console for your applications:
- Development: The development environment enables you to create, configure, test, and host Catalyst features and components in a local sandbox. When your Catalyst application is still in the development phase, you can use the development environment to build it and perform iterative testing on it.
- Production: The production environment is the live mode that is accessible to the end users of your application. When you complete the development and testing of your Catalyst application and it is ready to be made live, you can easily deploy your application from the development to the production environment from the web console.
The deployment process migrates the data and configurations of one environment to the other. After your application has been deployed, you will be able to switch between the development and production environments in the Catalyst console easily.
Catalyst offers the development environment permanently, at no cost. You can work in the development environment of all your Catalyst applications and use most Catalyst features for free. However, the development environment comes with certain limitations in the features and components, that are specified in each component help page.
Once you have deployed your Catalyst application to the production environment, you will be billed for the API calls that you make in your live Catalyst application. You can learn more about this from the Billing help page.
This document explains the deployment process, as well as how to use Catalyst in both environments.
When you create a project in Catalyst, it is created in the development environment by default. All actions that you perform in Catalyst, such as creating a table, configuring an Event Listener, integrating your GitHub account, and hosting a mobile app are only reflected in the application's development environment.
The actions performed from the Catalyst CLI such as creating a function or deploying a web client are also only reflected in the development environment. Similarly, when you perform actions using the APIs, they will be reflected only in the development environment.
After you deploy your application to production, you can switch to the development environment any time to work on your application without affecting the live production mode. All feature creations, changes, deployments, testing that you perform in the development environment, and data that you create will not be reflected in your live application until you deploy them.
The development environment is provided as a sandbox where you can perform iterative testing and bug fixes on your application. You must therefore use this environment only during the development phase, and not use it permanently as an alternative to production. Catalyst will not be able to guarantee a permanent uptime for this environment.
As mentioned earlier, the development environment also comes with several storage, feature, and API limitations in various components. Certain components are unavailable in the development environment and can be accessed only from the production. These limitations are mentioned in each component help page.
The API limits in the development environment apply to all components and features of your project. Catalyst currently enables you to make upto 200k API calls for a single application in the developer environment. These limits will be applied to each application you create in a phased manner, based on your usage pattern. If you require a raise in the API limits for an application, you can contact Catalyst support at firstname.lastname@example.org with your request. We will evaluate your application and its usage pattern, and take up your request on a case-by-case basis. You must use the development environment keeping these limitations in mind.
When you host a web app in the development environment, the web app URL that is generated for the web app will be of the format: https://project_domain_name.development.zohocatalyst.com
The invocation URL of Basic I/O functions will be of the format: https://project_domain_name.development.zohocatalyst.com/baas/v1/project/project_ID/function/function_name/execute
Similarly, the invocation URL of Advanced I/O functions will be of the format: https://project_domain_name.development.zohocatalyst.com/server/function_name/
After you deploy your application to the production environment, the production URL endpoints for all of your Basic I/O and Advanced I/O functions, and the web client, will be generated.
There are two deployment types available in Catalyst:
- Development to Production
- Production to Development
When you are deploying your application for the first time in Catalyst, you can only deploy it from the development to the production environment. In the subsequent deployments, you can deploy features from development to production, or from production to development.
There are certain actions that you can perform in the production environment. These changes can be migrated to the development environment using the Production to Development deployment. You will learn about the features available in the production environment later on in this document.
As mentioned earlier, you can only deploy your application from the development to production environment during the first deployment.
You will also not be able to select the features to deploy during the first deployment. All features, components, and data available in your Catalyst application will be deployed automatically.
To deploy your project for the first time in Catalyst:
- Click the Deploy to Production button in the Catalyst web console.
This will redirect you to the Environment settings. You can also directly open Settings and click Environments under Project Settings.
You can select a different project from the dropdown list, if required.
- Click the Deployments tab and click Deploy.
- Click Yes, Proceed in the confirmation window.
If you have not set up your Payment method in Catalyst yet, you will receive a prompt to add your card in Catalyst.
Upon clicking Add Card, you will be redirected to the Catalyst Payments portal. You can configure your payment method there and provide the required information. Once you set up your payment, you can retry the deployment process.
The deployment process will now be initiated.
Once the deployment is completed, you will receive a notification alerting you of its success or failure. The deployment will also be listed in the Deployments section, along with details.
The commit message is auto-generated by Catalyst for the first deployment.
You can view the details of the deployment by opening it.
The production environment will now be available for your Catalyst application, and in your project in the console. A banner alerting you that you are using the Production environment will constantly be displayed on top.
You can switch between the development and production environments in the console by clicking the environment in the dropdown box on top. Clicking Manage Environments will redirect you to the Environment settings.
As mentioned earlier, the actions that you can perform in the production environment are restricted to avoid accidental modifications or deletions of data and features that could affect your live application.
In general, you will not be able to create a new resource or add new data in the production environment. For example, you cannot create a function or configure an Event Listener. However, certain actions can be performed.
The following features and actions are available in the production environment for each component:
- User Management: Inviting a new user
- Cache: Renaming, deleting, and creating a new Cache Item in the Default segment
- Push Notifications: Configuring iOS push notifications, testing Web and iOS push notifications from the console
- Zia: Testing Object Character Recognition and Object Recognition in the console
- ZCQL: Executing ZCQL test queries in the console
- Domain Mapping: Adding a new domain
- Device Management: Uploading an Android or iOS app
- Collaborators: Creating a collaborator, editing collaborator details
- Billing: Creating a budget, modifying payment details
The features and actions that are not available in the production environment will be disabled in the Catalyst console.
However, you can still view the features and data that were made available in Production during the last migration.
You can also view statistics and reports from Logs, Metrics, Crashes, Audit, and other components, and access code templates for Search integration, Zia, and Sign-In Method.
After you deploy your application to the production environment, the web app URL for the production environment will be created in the format: https://project_domain_name.zohocatalyst.com.
The invocation URL of Basic I/O functions will be of the format: https://project_domain_name.zohocatalyst.com/baas/v1/project/project_ID/function/function_name/execute
Similarly, the invocation URL of Advanced I/O functions will be of the format: https://project_domain_name.zohocatalyst.com/server/function_name/
You can disable the production environment any time, and instead only use the development environment of your Catalyst application. You can disable it if you no longer need to provide access to your live application.
To disable the production environment for your Catalyst application:
- Navigate to Settings and then Environments.
- Click Disable in the Production Environment box.
- Type "DISABLE" in the confirmation pop-up window and click Confirm.
The production environment will be disabled, and a confirmation will be displayed.
You can open the development environment to continue working on your project.
You can click Enable Again in this confirmation or from the Environments settings to enable production again. The last instance of the production environment will be available when you enable it again.
As mentioned earlier, after the first deployment you will be able to customize the deployment type, select the features and data to be migrated, and provide a commit message.
Once you select the features to be deployed, Catalyst will be able to process the diff generation. The diff generation analyzes and displays a report of differences in features between the source environment and the migrated environment.
When the diff is generated, Catalyst will show the count of the following activities for the features that you deploy:
- Added: Number of instances of the feature that were added since the last deployment
- Updated: Number of instances of the feature that were updated since the last deployment
- Deleted: Number of instances of the feature that were deleted since the last deployment
- Total Changes: Total number of changes made in the feature
To deploy features and data from one environment to the other in Catalyst:
- Navigate to Settings and then Environments.
- Click the Deployments tab and click Create Deployment.
- Enter a commit message and select the deployment type in the pop-up window, and click Create.
- Select the features to be deployed.
All features are selected by default. Unselect any features that you don't wish to deploy.
- Click Save and Next.
Catalyst will begin the diff generation.
- Once the diff is generated, verify the number of changes in each feature that will be deployed.
After you verify, click Begin Deployment to proceed. To cancel the deployment process, click Abort. To edit the features selected, click Back.
- A confirmation window will open to begin the deployment. Click Yes, Proceed.
The console will display the progress.
If the deployment is successful, the console will display a success message.
You will also receive a notification alert. You can click on View Details to view the summary of your deployment process.
You can access these details any time by opening the deployment from the Deployment section.
If you abort the process, the status will say "Aborted". You can resume the deployment process any time after you abort it.