/airbyte-connectors

Airbyte connectors (sources & destinations) + Airbyte CDK for JavaScript/TypeScript

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Airbyte Connectors

CI Release CodeQL

This repository contains Airbyte connectors used in Faros and Faros Community Edition platforms as well as Airbyte Connector Development Kit (CDK) for JavaScript/TypeScript.

See the READMEs inside destinations/ and sources/ subfolders for more information on each connector.

Component Code Installation Version
Airbyte CDK faros-airbyte-cdk npm i faros-airbyte-cdk npm package
Azure Active Directory Source sources/azureactivedirectory-source docker pull farosai/airbyte-azureactivedirectory-source
Azure Pipeline Source sources/azurepipeline-source docker pull farosai/airbyte-azurepipeline-source
Backlog Source sources/backlog-source docker pull farosai/airbyte-backlog-source
Bitbucket Source sources/bitbucket-source docker pull farosai/airbyte-bitbucket-source
Buildkite Source sources/buildkite-source docker pull farosai/airbyte-buildkite-source
Customer.IO Source sources/customer-io-source docker pull farosai/airbyte-customer-io-source
Datadog Source sources/datadog-source docker pull farosai/airbyte-datadog-source
Docker Source sources/docker-source docker pull farosai/airbyte-docker-source
Faros Destination destinations/airbyte-faros-destination npm i airbyte-faros-destination or docker pull farosai/airbyte-faros-destination npm package
FireHydrant Source sources/firehydrant-source docker pull farosai/airbyte-firehydrant-source
Google Calendar Source sources/googlecalendar-source docker pull farosai/airbyte-googlecalendar-source
Harness Source sources/harness-source docker pull farosai/airbyte-harness-source
Jenkins Source sources/jenkins-source docker pull farosai/airbyte-jenkins-source
Okta Source sources/okta-source docker pull farosai/airbyte-okta-source
OpsGenie Source sources/opsgenie-source docker pull farosai/airbyte-opsgenie-source
PagerDuty Source sources/pagerduty-source docker pull farosai/airbyte-pagerduty-source
Phabricator Source sources/phabricator-source docker pull farosai/airbyte-phabricator-source
ServiceNow Source sources/servicenow-source docker pull farosai/airbyte-servicenow-source
Shortcut Source sources/shortcut-source docker pull farosai/airbyte-shortcut-source
SquadCast Source sources/squadcast-source docker pull farosai/airbyte-squadcast-source
StatusPage Source sources/statuspage-source docker pull farosai/airbyte-statuspage-source
VictorOps Source sources/victorops-source docker pull farosai/airbyte-victorops-source

Development

  1. Install nvm
  2. Install Node.js nvm install 14 && nvm use 14
  3. Update npm to version 7.x by running npm install -g npm@7
  4. Install lerna by running npm install -g lerna
  5. Run npm run prepare to install dependencies for all projects (npm run clean to clean all)
  6. Run npm run build to build all projects (for a single project add scope, e.g npm run build -- --scope airbyte-faros-destination)
  7. Run npm run test to test all projects (for a single project add scope, e.g npm run test -- --scope airbyte-faros-destination)
  8. Run npm run lint to apply linter on all projects (for a single project add scope, e.g npm run lint -- --scope airbyte-faros-destination)

👉 Follow our guide on how to develop a new source here.

Other Useful Commands

  1. Audit fix npm audit fix
  2. Clean your project lerna run clean (sometimes you also wanna rm -rf ./node_modules)

Read more about lerna here.

Build Docker Images

In order to build a Docker image for a connector run the docker build command and set path argument. For example for Faros Destination connector run:

docker build . --build-arg path=destinations/airbyte-faros-destination -t airbyte-faros-destination

And then run it:

docker run airbyte-faros-destination

Releasing

We use GitHub Actions to automatically create a corresponding tag, publish the packages to NPM and push Docker images to Docker Hub.

  1. Run npm run bump from the root of the repository. You will be prompted with a list of version increments to choose from (patch, minor, major, etc). Choose the desired increment.
  2. Commit and push the changed files into a branch, then open a PR into the main branch.
  3. Once the PR is approved and merged, the release workflow is triggered.

Note: If a connector is updated without incrementing the version, the release workflow will NOT overwrite the existing package/image.