You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you're writing your connector in Python or low-code CDK, use the generator to get the project started:
54
+
If you're writing your connector in Python or low-code CDK, use the generator to get the project
55
+
started:
50
56
51
57
```bash
52
58
cd airbyte-integrations/connector-templates/generator
53
59
./generate.sh
54
60
```
55
61
56
-
and choose the relevant template by using the arrow keys. This will generate a new connector in the `airbyte-integrations/connectors/<your-connector>` directory.
62
+
and choose the relevant template by using the arrow keys. This will generate a new connector in the
Search the generated directory for "TODO"s and follow them to implement your connector. For more detailed walkthroughs and instructions, follow the relevant tutorial:
65
+
Search the generated directory for "TODO"s and follow them to implement your connector. For more
66
+
detailed walkthroughs and instructions, follow the relevant tutorial:
59
67
60
-
-[Speedrun: Building a HTTP source with the CDK](tutorials/cdk-speedrun.md)
61
68
-[Building a HTTP source with the CDK](tutorials/custom-python-connector/0-getting-started.md)
62
69
-[Building a Java destination](tutorials/building-a-java-destination.md)
63
70
64
-
As you implement your connector, make sure to review the [Best Practices for Connector Development](best-practices.md) guide.
71
+
As you implement your connector, make sure to review the
72
+
[Best Practices for Connector Development](best-practices.md) guide.
65
73
66
74
## Updating an existing connector
67
75
68
-
The steps for updating an existing connector are the same as for building a new connector minus the need to use the autogenerator to create a new connector. Therefore the steps are:
76
+
The steps for updating an existing connector are the same as for building a new connector minus the
77
+
need to use the autogenerator to create a new connector. Therefore the steps are:
69
78
70
79
1. Iterate on the connector to make the needed changes
71
80
2. Run tests
72
81
3. Add any needed docs updates
73
-
4. Create a PR to get the connector published
82
+
4. Create a PR and get it reviewed and merged.
74
83
75
-
## Adding Typing and Deduplication to a connector
76
-
77
-
_Coming soon._
78
-
79
-
Typing and Deduplication is how Airbyte transforms the raw data which is transmitted during a sync into easy-to-use final tables for database and data warehouse destinations. For more information on how typing and deduplication works, see [this doc](/using-airbyte/core-concepts/typing-deduping).
84
+
The new version of the connector will automatically be published in Cloud and OSS registries when
85
+
the PR is merged.
80
86
81
87
## Publishing a connector
82
88
83
-
Once you've finished iterating on the changes to a connector as specified in its `README.md`, follow these instructions to ship the new version of the connector with Airbyte out of the box.
89
+
Once you've finished iterating on the changes to a connector as specified in its `README.md`, follow
90
+
these instructions to ship the new version of the connector with Airbyte out of the box.
84
91
85
-
1. Bump the docker image version in the [metadata.yaml](connector-metadata-file.md) of the connector.
92
+
1. Bump the docker image version in the [metadata.yaml](connector-metadata-file.md) of the
93
+
connector.
86
94
2. Submit a PR containing the changes you made.
87
-
3. One of Airbyte maintainers will review the change in the new version and make sure the tests are passing.
88
-
4. You our an Airbyte maintainer can merge the PR once it is approved and all the required CI checks are passing you.
89
-
5. Once the PR is merged the new connector version will be published to DockerHub and the connector should now be available for everyone who uses it. Thank you!
95
+
3. One of Airbyte maintainers will review the change in the new version and make sure the tests are
96
+
passing.
97
+
4. You our an Airbyte maintainer can merge the PR once it is approved and all the required CI checks
98
+
are passing you.
99
+
5. Once the PR is merged the new connector version will be published to DockerHub and the connector
100
+
should now be available for everyone who uses it. Thank you!
90
101
91
102
### Updating Connector Metadata
92
103
93
-
When a new (or updated version) of a connector is ready, our automations will check your branch for a few things:
104
+
When a new (or updated version) of a connector is ready, our automations will check your branch for
105
+
a few things:
94
106
95
107
- Does the connector have an icon?
96
108
- Does the connector have documentation and is it in the proper format?
@@ -99,26 +111,44 @@ When a new (or updated version) of a connector is ready, our automations will ch
99
111
100
112
If any of the above are failing, you won't be able to merge your PR or publish your connector.
101
113
102
-
Connector icons should be square SVGs and be located in [this directory](https://github.com/airbytehq/airbyte/tree/master/airbyte-config-oss/init-oss/src/main/resources/icons).
114
+
Connector icons should be square SVGs and be located in
Connector documentation and changelogs are markdown files living either [here for sources](https://github.com/airbytehq/airbyte/tree/master/docs/integrations/sources), or [here for destinations](https://github.com/airbytehq/airbyte/tree/master/docs/integrations/destinations).
117
+
Connector documentation and changelogs are markdown files living either
118
+
[here for sources](https://github.com/airbytehq/airbyte/tree/master/docs/integrations/sources), or
119
+
[here for destinations](https://github.com/airbytehq/airbyte/tree/master/docs/integrations/destinations).
105
120
106
121
## Using credentials in CI
107
122
108
-
In order to run integration tests in CI, you'll often need to inject credentials into CI. There are a few steps for doing this:
109
-
110
-
1.**Place the credentials into Google Secret Manager(GSM)**: Airbyte uses a project 'Google Secret Manager' service as the source of truth for all CI secrets. Place the credentials **exactly as they should be used by the connector** into a GSM secret [here](https://console.cloud.google.com/security/secret-manager?referrer=search&orgonly=true&project=dataline-integration-testing&supportedpurview=organizationId) i.e.: it should basically be a copy paste of the `config.json` passed into a connector via the `--config` flag. We use the following naming pattern: `SECRET_<capital source OR destination name>_CREDS` e.g: `SECRET_SOURCE-S3_CREDS` or `SECRET_DESTINATION-SNOWFLAKE_CREDS`.
123
+
In order to run integration tests in CI, you'll often need to inject credentials into CI. There are
124
+
a few steps for doing this:
125
+
126
+
1.**Place the credentials into Google Secret Manager(GSM)**: Airbyte uses a project 'Google Secret
127
+
Manager' service as the source of truth for all CI secrets. Place the credentials **exactly as
128
+
they should be used by the connector** into a GSM secret
i.e.: it should basically be a copy paste of the `config.json` passed into a connector via the
131
+
`--config` flag. We use the following naming pattern:
132
+
`SECRET_<capital source OR destination name>_CREDS` e.g: `SECRET_SOURCE-S3_CREDS` or
133
+
`SECRET_DESTINATION-SNOWFLAKE_CREDS`.
111
134
2.**Add the GSM secret's labels**:
112
-
-`connector` (required) -- unique connector's name or set of connectors' names with '\_' as delimiter i.e.: `connector=source-s3`, `connector=destination-snowflake`
113
-
-`filename` (optional) -- custom target secret file. Unfortunately Google doesn't use '.' into labels' values and so Airbyte CI scripts will add '.json' to the end automatically. By default secrets will be saved to `./secrets/config.json` i.e: `filename=config_auth` => `secrets/config_auth.json`
114
-
3.**Save a necessary JSON value**[Example](https://user-images.githubusercontent.com/11213273/146040653-4a76c371-a00e-41fe-8300-cbd411f10b2e.png).
135
+
-`connector` (required) -- unique connector's name or set of connectors' names with '\_' as
0 commit comments