# Connect overview Learn about the concepts and terminology of Connect. ## What is Connect Connect lets you add functionality to your Project without needing to buy and maintain dedicated hosting or runtime environments. Connect provides a runtime environment for running small applications, referred to as [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications). Connect applications can be developed by anyone, and they are deployed to your Project using the Connect API, [Merchant Center](https://docs.commercetools.com/merchant-center/connect.md), or [CLI](https://docs.commercetools.com/connect/cli.md). To follow the end-to-end process of creating, previewing, and deploying a Connector, see [Connect workflow](https://docs.commercetools.com/connect/connect-workflow.md). ## Who is Connect for Connect serves two personas: creators and clients. - Creators are the developers who design, build, publish, and maintain [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications) and public or private [Connectors](https://docs.commercetools.com/connect/overview.md#connectors) using JavaScript/TypeScript or Java. They typically work with the [Connect CLI](https://docs.commercetools.com/connect/cli.md) and the [ConnectorStaged](https://docs.commercetools.com/connect/connectors-staged.md) resource of the Connect API. - Clients are the commercetools customers who find, deploy, and configure published [Connectors](https://docs.commercetools.com/connect/overview.md#connectors) in their own Project. They do not manage any hosting or runtime environments. Clients typically work with the [Merchant Center](https://docs.commercetools.com/merchant-center/connect.md) or the [Connector](https://docs.commercetools.com/connect/connectors.md) and [Deployment](https://docs.commercetools.com/connect/deployments.md) resources of the Connect API. These roles describe tasks rather than people, so the same person or team can perform both. For example, when you build a Connector only for your own Projects, you take on both roles. You are the creator while you develop and publish it, and the client when you deploy it. The [Connect workflow](https://docs.commercetools.com/connect/connect-workflow.md) shows which tasks belong to each role. ## Key concepts of Connect The following sections explain the key concepts and terminology of Connect. ### Connect applications Connect applications are the applications that Connect hosts and runs. You can create Connect applications using [JavaScript/TypeScript or Java](https://docs.commercetools.com/connect/supported-runtimes.md). For more information, see [Developing Connect applications](https://docs.commercetools.com/connect/development.md). The source code of Connect applications is saved in a [GitHub repository](https://docs.commercetools.com/connect/overview.md#github-repository), and this repository is referenced by a [Connector](https://docs.commercetools.com/connect/overview.md#connectors). Connect applications can be of the following types: (a CSV formatted table follows. The first line are the column names.) Type,Description,Example use case Service,Perform actions using [API Extensions](https://docs.commercetools.com/api/projects/api-extensions.md) or webhooks.,Validate the contents of carts. Event,Receive events and perform actions asynchronously using [Subscriptions](https://docs.commercetools.com/api/projects/subscriptions.md).,Send order confirmation emails. Job,Perform scheduled tasks using cron expressions.,Run daily maintenance, updates, or syncs with external systems. merchant-center-custom-application,Extend the Merchant Center with [Custom Applications](https://docs.commercetools.com/merchant-center-customizations/overview.md).,Provide a frontend for modifying the emails sent by the event application. merchant-center-custom-view,Add custom functionality to a specific Merchant Center page using [Custom Views](https://docs.commercetools.com/merchant-center-customizations/overview.md).,Add custom functionality in the context of a specific page within a built-in Merchant Center application. Assets,Host static assets with CDN capabilities.,Host static assets used by the other applications. For more information on how each application type behaves when deployed, see [Deployment behavior and environments](https://docs.commercetools.com/connect/deployment-behavior-and-environments.md). ### GitHub repository The source code of Connect applications must be saved in a GitHub repository and have a [Git tag](https://docs.github.com/en/rest/git/tags) that refers to a specific release. The GitHub repository can be public or private. If the GitHub repository is private, you must grant read access to the [connect-mu](https://github.com/connect-mu) [machine user](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys#machine-users). The GitHub repository must have a specific structure, including a `connect.yaml` file in the root. `connect.yaml` contains the configuration details of the [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications), including defining environment variables used by the applications. You can view the example structure of a GitHub repository in the [Connect Application Starter in JavaScript](https://github.com/commercetools/connect-application-kit/tree/main/application-templates/javascript). ### Connectors Connectors prepare your [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications) for deployment. Connectors reference the [GitHub repository](https://docs.commercetools.com/connect/overview.md#github-repository) containing the source code of Connect applications, and include configuration details for defining environment variables. In the Connect API, Connectors have two representations: - [ConnectorStaged](https://docs.commercetools.com/connect/connectors-staged.md#connectorstaged): used to create, update, and preview Connectors before submitting them for publishing. - [Connector](https://docs.commercetools.com/connect/connectors.md#connector): a read-only model that represents a published and deployable Connector. In the Merchant Center, your Connectors are referred to as Organization Connectors. You prepare a Connector for deployment in three stages: 1. Create or update the Connector to reference your GitHub repository and Git tag. 2. Request a preview build to test the Connector. 3. Publish the Connector for private or public use. For a visual overview of these stages, see [Connect workflow](https://docs.commercetools.com/connect/connect-workflow.md). To follow the Connect API process, see [Get started with Connect](https://docs.commercetools.com/connect/getting-started.md). To follow the Merchant Center process, see the [Merchant Center Connect guide](https://docs.commercetools.com/merchant-center/connect.md). ### Validation pipeline When you request a preview build or publish a Connector, Connect checks the code quality and security of your [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications). Connect also validates the content of the `connect.yaml` file. These checks help ensure that Connect applications meet the required standards for running in a production environment. For a description of each pipeline step and how to check validation results, see [Validation pipeline](https://docs.commercetools.com/connect/validation-pipeline.md). ### Certification process If you are creating a Connector for private use only, then certification is not required. Certification is only required for Connectors that you want to make publicly available on the [Connect marketplace](https://docs.commercetools.com/merchant-center/connect.md). The certification process verifies the functionality, security, and stability of [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications). For more information about the certification process, see [Certification](https://docs.commercetools.com/connect/certification.md). ### Deployments [Deployments](https://docs.commercetools.com/connect/deployments.md) represent how clients integrate [Connect applications](https://docs.commercetools.com/connect/overview.md#connect-applications) into their Project. Deployments include a reference to a published [Connector](https://docs.commercetools.com/connect/overview.md#connectors), and the configuration needed for the Connect applications to work, such as values for environment variables. Connect handles provisioning the infrastructure and runtime environment for Deployments. Clients only need to use the Connect API to create the Deployment. If any of the values for application configuration change, then the client can [redeploy](https://docs.commercetools.com/connect/deployments.md#update-actions) the Deployment with new values. You can deploy Connectors using the [Connect API](https://docs.commercetools.com/connect/deployments.md), [Merchant Center](https://docs.commercetools.com/merchant-center/connect.md), or [CLI](https://docs.commercetools.com/connect/cli.md#deployment-management-commands). Connectors that use third-party services may require that you have a commercial contract with the service provider before deploying the Connector. ### Environments The [DeploymentType](https://docs.commercetools.com/urn?urn=ctp%3Aconnect%3Atype%3ADeploymentType) lets you control which type of environment your ConnectorStaged or Connector is deployed to. Connect provides three environments: `sandbox` for development and QA, `preview` for testing a ConnectorStaged during development, and `production` for deployment to non-trial Projects. For the behavior and requirements of each environment, see [Deployment behavior and environments](https://docs.commercetools.com/connect/deployment-behavior-and-environments.md#environments). ## Related pages - [Section overview page](https://docs.commercetools.com/connect.md) - [Next page: Connect workflow](https://docs.commercetools.com/connect/connect-workflow.md)