{"id":19622176,"url":"https://github.com/commercetools/connect-application-kit","last_synced_at":"2025-07-22T08:32:43.232Z","repository":{"id":65016034,"uuid":"519175799","full_name":"commercetools/connect-application-kit","owner":"commercetools","description":"Tools and components for developing Connect Applications 🛠","archived":false,"fork":false,"pushed_at":"2025-05-06T07:55:42.000Z","size":1815,"stargazers_count":11,"open_issues_count":5,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-18T05:09:17.505Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/commercetools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-07-29T10:36:37.000Z","updated_at":"2025-05-06T07:55:45.000Z","dependencies_parsed_at":"2023-02-12T23:01:35.397Z","dependency_job_id":"b331454d-004a-483f-b1d9-9f348258bfa7","html_url":"https://github.com/commercetools/connect-application-kit","commit_stats":{"total_commits":104,"total_committers":10,"mean_commits":10.4,"dds":0.5192307692307692,"last_synced_commit":"3f535639cebdfbd4f796c10fd886453aa0616bcc"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/commercetools/connect-application-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercetools%2Fconnect-application-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercetools%2Fconnect-application-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercetools%2Fconnect-application-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercetools%2Fconnect-application-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commercetools","download_url":"https://codeload.github.com/commercetools/connect-application-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercetools%2Fconnect-application-kit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266456245,"owners_count":23931383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T11:26:27.564Z","updated_at":"2025-07-22T08:32:43.179Z","avatar_url":"https://github.com/commercetools.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://commercetools.com/\"\u003e\n    \u003cimg alt=\"commercetools logo\" src=\"https://unpkg.com/@commercetools-frontend/assets/logos/commercetools_primary-logo_horizontal_RGB.png\"\u003e\n  \u003c/a\u003e\u003c/br\u003e\n  \u003ch2 align=\"center\"\u003ecommercetools Connect Application Kit [BETA]\u003c/h2\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ci\u003e✨ Monorepository with tools and components for developing connect applications 🛠\u003c/i\u003e\n\u003c/p\u003e\n\n\u003e Connect starter kit and tools are marked as beta and subject to change. Use with caution.\n\n\n\n## Template Features\n- **Typescript \u0026 Javascript**: languages supported\n- **Express**: Web server framework\n- **commercetools sdk**: Embedded sdk library for commercetools specific implementation\n- **Buildpack support**: Tooling to build production-ready container images from source code without a Dockerfile\n- **Local development utilities**: Basic yarn tools to build, start , test, lint \u0026 prettify code\n- **Structured logging library**: JSON formatted logger with log levels \n- **Tests**: Basic tests setup for application\n\n## Getting started\n\nIf you are developing a connect application, you can start by installing one of our [templates](./application-templates) using the `create-connect-app` CLI.\n\n```bash\n$ npm install --global @commercetools-connect/create-connect-app\n$ create-connect-app first-connect-application --template [typescript | javascript]\n\n# or\n\n$ npx @commercetools-connect/create-connect-app@latest first-connect-application --template [typescript | javascript]\n```\n\n# Developing connect applications\n\nBefore starting the development, we advise the developers to create a `.env` file in order to help them in local development.\n\nFor that, we also have a template file `.env.example` with the required environement variables for the project to run successfuly. To make it work, rename the file from `.env.example` to `.env`. Remember to fill the variables with your values.\n\n### Install the dependencies (uses yarn workspaces):\n\n```bash\n$ yarn\n```\n\n### To run the tests:\n\n```bash\n$ yarn test\n\n# or\n$ yarn test:watch\n```\n\n### Build the application\n\n```bash\n$ yarn build\n\n# or\n$ yarn build:watch\n```\n\n### Run the application locally\n\n```bash\n$ yarn start\n\n# or\n$ yarn start:dev\n```\n\n# Connect Certification\n\nIn order to deploy your connect application on commercetools provided infrastructure, it needs to reviewed by certification team. This can be requested by creating a listing using \u003ca href=\"https://docs.commercetools.com\"\u003econnect APIs \u003c/a\u003e \u003cem\u003e(not yet released)\u003c/em\u003e\n\nA default starter pack has a directory structure as shown below, repository should be a mono repo setup where you can choose to have more than one application in a single connector if needed\n\n```\n├── \u003cdocs\u003e\n│   └── readme.md\n├── \u003capp1\u003e\n│   ├── src\n│   ├── tests\n│   └── package.json\n├── \u003capp2\u003e\n│   ├── src\n│   ├── tests\n│   └── package.json\n└── connect.yaml\n\n```\n\nYou can choose to remove/add applications based on needs with similar repository structure.\n\nConnect deployment details needs to be specified in `connect.yaml` which is required information needed for certificaiton of the application\n\nBuildpack is used to build artifacts to deploy , use `npm start` or `Procfile` to define the \u003ca href=\"https://github.com/GoogleCloudPlatform/buildpacks#default-entrypoint-behavior\"\u003edefault entry point\u003c/a\u003e\n\n# Deployment config\n\nConnect supports 3 types of application which needs to set as `applicationType` in the config file\n1. `service` - Standalone application which can do a specific task triggered by any HTTP method (can be used for \u003ca href=\"https://docs.commercetools.com/api/projects/api-extensions\"\u003eAPI extensions\u003c/a\u003e or as a webhook to other systems). HTTP url will be generated and exposed as result of the deployment.\n2. `event` - Event topics \u0026 related consumer services to be able to receive events and perform any task asynchronously (can be used for \u003ca href=\"https://docs.commercetools.com/api/projects/subscriptions\"\u003eSubscriptions\u003c/a\u003e). A topic will be generated and exposed as result of the deployment\n3. `job` - Task which needs to be performed at regular basis with defined intervals, these tasks can be scheduled using \u003ca href=\"https://en.wikipedia.org/wiki/Cron\"\u003ecron\u003c/a\u003e expression\n\n\nA sample deployment config looks like this, refer below for more detailed information on each property\n\n```yaml\ndeployAs:\n  - name: app1\n    applicationType: service\n    endpoint: /app1\n    scripts:\n      postDeploy: npm install \u0026\u0026 npm run build \u0026\u0026 npm run connector:post-deploy\n      preUndeploy: npm install \u0026\u0026 npm run build \u0026\u0026 npm run connector:pre-undeploy\n    configuration:\n      standardConfiguration:\n        - key: ENVIRONMENT_VARIABLE_1\n          description: description variable 1\n      securedConfiguration:\n        - key: ENVIRONMENT_VARIABLE_2\n          description: description variable 2\n        - key: ENVIRONMENT_VARIABLE_3\n          description: description variable 3\n  - name: app2\n    applicationType: job\n    endpoint: /app2\n    properties:\n      schedule: \"0 0 * * *\"\n    configuration:\n      standardConfiguration:\n        - key: ENVIRONMENT_VARIABLE_1\n          description: description variable 1\n        - key: ENVIRONMENT_VARIABLE_2\n          description: description variable 2\n  - name: app3\n    applicationType: event\n    endpoint: /app3\n    configuration:\n      securedConfiguration:\n        - key: ENVIRONMENT_VARIABLE_1\n          description: description variable 1\n        - key: ENVIRONMENT_VARIABLE_2\n          description: description variable 2\n        - key: ENVIRONMENT_VARIABLE_3\n          description: description variable 3\n  - name: app4\n    applicationType: merchant-center-custom-application\n    endpoint: /app4\n    configuration:\n      standardConfiguration:\n        - key: ENVIRONMENT_VARIABLE_1\n          description: description variable 1\n      securedConfiguration:\n        - key: ENVIRONMENT_VARIABLE_2\n          description: description variable 2\n        - key: ENVIRONMENT_VARIABLE_3\n          description: description variable 3\n```\n\n- Multiple applications of same type can be setup\n- A schedule property is additional mandatory information needed to be able to schedule the job\n- Event type of application needs to be defined together with a service type of application with mandatory subscriber information to process the received event\n\n## Property definition\n- `name` - Folder name of respective application component from the root of monorepo which will be used as identifier of the application. Deployment output url, topic \u0026 schedule can be fetched based on this reference\n- `applicationType` - Type of deployment . Can be one of `service`, `event`, `job` and `merchant-center-custom-application`\n- `endpoint` - Point of entry for respective application component\n- `scripts.postDeploy` - Post-deploy script to execute after the connector deployment process\n- `scripts.preUndeploy` - Pre-undeploy script to execute before the connector undeployment process\n- `configuration` - Definiton of all environment variables needed by the application, customer will be responsible to provide value for these variables when choosen to deploy. You need to choose between `standardConfiguration` and `securedConfiguration`. `standardConfiguration` for customer provided values to be saved as plain text , `securedConfiguration` for customer provided values to be secured and stored in encrypted format. configurations can be marked `required` depending on application implementation and also provided a `default` value if needed\n- `schedule` - Schedule expression for job applications, it need to be input of type \u003ca href=\"https://en.wikipedia.org/wiki/Cron\"\u003ecron\u003c/a\u003e expression","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommercetools%2Fconnect-application-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommercetools%2Fconnect-application-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommercetools%2Fconnect-application-kit/lists"}