Create and deploy a project
After engineers configure TapData connections, tasks, and APIs, they can package those resources as a project, export the configuration, and deploy it to another environment. Deployment can run automatically through GitHub Actions or manually through file export and import.
This guide covers both automated deployment and manual import/export. If you plan to use GitHub and GitHub Actions, first complete Set up an automated deployment pipeline. If you only need manual import/export, follow this guide and see Appendix: Manually import configuration.
Example scenarioβ
This guide uses a common real-time data warehouse scenario. A team synchronizes data from an Oracle source database to a Doris warehouse. The team has already verified wide-table synchronization tasks and an external API in the development environment. The next step is to promote the same configuration to a testing or acceptance environment, and then to production.
The following workflow shows how to create a project, export configuration, deploy automatically, and publish manually when needed.
Use the same connection names across environments. Use names that contain only letters, numbers, and underscores, such as oracle_source. During automated deployment, TapData matches connection names to GitHub Secrets and Variables, then injects the real address, username, and password for the target environment.
Step 1: Create a project and select resourcesβ
Package the team's tasks and API as one project. The project becomes the unit that you export, review, deploy, and roll back.
-
Log in to the TapData console. In the left navigation pane, choose Advanced Settings > Project Management.
-
At the top of the left panel, click + to create a project. Enter a project name, such as
dw-pipeline. Use the same name as the GitHub tenant repository when possible. -
In the middle panel, switch between Migrate Task, Transformation Task, and API. Select
CRM_TO_DW,ORDER_TO_DW, andcustomer-api, then click Add selected > to move them to the selected list.
Dependent connections and Serving Indexes- Dependent connections: When you select tasks or APIs, TapData automatically includes dependent connections. In this example,
oracle_sourceanddoris_targetare included automatically. - Managing Serving Indexes: If your project includes data service APIs and you want the target environment to create the related MongoDB Serving Indexes, open the API's Serving Indexes page in the source environment. Load the indexes and select the indexes that TapData should manage. Only selected index declarations are exported with the project and applied during automated deployment. The target database account must have permission to create indexes. If it does not, a DBA must create them manually based on the deployment report.
- Dependent connections: When you select tasks or APIs, TapData automatically includes dependent connections. In this example,
-
Click Save.
Step 2: Connect the Git repositoryβ
If you do not want to integrate with GitHub, skip this step. In Step 3, choose file export and import the archive manually. If you use Git export, make sure the repository URL is writable and the personal access token has permission to write contents and create Pull Requests in the tenant repository.
Connect the TapData project to the GitHub tenant repository. After the connection is configured, exports can be pushed to the repository and opened as Pull Requests without downloading and uploading files manually.
-
In the upper-right corner, click Git Configuration.
-
In the dialog box, enter the GitHub tenant repository URL and personal access token.

-
Click Save.
Step 3: Export the configurationβ
Export the project configuration from the development environment and submit it to GitHub for later deployment.
-
On the Project Management page, click Export in the upper-right corner. In the export dialog box, select the project to export.
-
Select an Export type.

-
Git Export: Available after a Git repository is connected. TapData pushes the configuration files to GitHub and creates a Pull Request. Enter the following information:
Field Description Branch name The system generates a branch name that starts with feat_and includes a timestamp. You can edit the branch name.PR title A short summary of the change for review. PR description Optional. Describe why the change is needed and what it affects. -
File Export: Downloads the configuration as a compressed archive. Use this option when Git integration is not configured. For the import steps, see Appendix: Manually import configuration.
-
-
In the resource list, review the tasks and APIs to be exported. If the list is correct, click Confirm Export.
Credential masking and rerun behavior- Credential masking: Git export always masks sensitive credentials, including database passwords and connection strings, before writing files to the repository. During later deployments, GitHub Environment values inject the credentials. File export retains the complete configuration for offline manual migration.
- Rerun: Enable Rerun only when the target environment needs the task to run a full synchronization again, for example after adding source tables or changing primary keys. For routine changes, keep the default setting so tasks continue from the last checkpoint.
Exported file structure
Exported configuration is organized as a directory. Git export commits this directory to the repository. File export packages it as an archive.
{project-name}_tapdata_export/
βββ GroupInfo.json # Project metadata: project name, Git repository, and resource list
βββ Connection/ # Connection configuration, including dependencies of tasks and APIs
β βββ {id}_Connection_Config.json # Masked for Git export; file export might contain sensitive information
β βββ {id}_Connection_Metadata.json # Table metadata for the connection