1
0
mirror of synced 2025-12-21 11:01:41 -05:00
Commit Graph

851 Commits

Author SHA1 Message Date
Davin Chia
1b0cf66bd3 Clean up Docker volume after running Docker Acceptance Test. (#4603) 2021-07-07 22:19:59 +08:00
Davin Chia
e2074a4dc1 Logging to GCS. (#4501)
Add the ability to log to GCS.
2021-07-07 21:06:25 +08:00
Marcos Marx
6201100e72 Add entrypoint and bump version for remaining connectors. (#4539)
See the PR descriptions for all the connectors published.
2021-07-07 17:37:22 +08:00
oleh.zorenko
84ba3e79b3 🎉 Native GitHub connector (#4174)
* GitHub source initial version

All streams are in `full_refresh` mode only.

* Run format command

* Add handling for 404 error in Teams stream

* Update creds naming for github

* Update acceptance tests

* Update check_connection()

* Code review fixes

Remove `/integration_tests/catalog.json` file.
Use `Collaborators` class in `check_connection()` function.
Remove excessive data from GithubStream class.

* Remove unused import

* Implement requested changes

* Add incremental streams

* Remove `supports_incremental`

* Update docs

* Implement requested changes

* Implement requested changes

* Implement requested changes

* Bump connector version
2021-07-06 17:06:34 +03:00
Yevhenii
94f1d217b8 🎉 Native Gitlab connector (#4027)
* Create Airbyte-Native connector for Gitlab

Co-authored-by: ykurochkin <y.kurochkin@zazmic.com>
2021-07-06 15:25:01 +03:00
Davin Chia
c83b134d1a Stablise Python Builds. (#4558)
See the PR description or issue 4559 for context.
2021-07-06 13:53:17 +08:00
vovavovavovavova
08b32d18ed 🎉 New Source: SurveyMonkey (#4097)
* add base files

* upd base

* save

* save sample files

* save & todo resolve state

* save the stage

* save the stage

* pre-gradle save

* fix catalogs

* merge && format

* normal stream slices

* apply requested changes

* requested_changes

* postfix

* update comment

* expand question stream add page_id

* upd typing once + rm missed inactual todo

* upd: caching with temp file

* upd requirements (requested)

* latest requested fixes

* posttext fix retn tempfile

* apply changes && comment

* newly requested changes

* return back spec -> changes to be set in new issue

* merge && usage comment

* add unit_test for get_updated_state function

* add simple date test

* parametrized (?) unittest

* upd comment on record_mode usage

* replace config with custom var

* pytest mark parametrized use

* rm unneeded var

* upd tests (requested)

* merge && upd texts

* add env airbyte_entrypoint
2021-07-05 19:35:46 +03:00
Vadym
9531c4d4ec 🎉 New source: airbyte-native twilio connector (#4070)
* Add Twilio CDK source

* Implement all streams full refresh support.

* Complete all streams and configs.

* Apply code format

* Fix streams data response.
Update streams which should not be incremental.
Fix configs.

* Fix incremental streams.
Fix configs.

* Fix acceptance tests config.

* Fix stream schemas.

* Fix messages stream schema.

* Catalogs fixed

* Update setup requirements.

* Add standard CI creds

* Update build.gradle and sample config files to remove unused references

* Updated sample config files json format

* Update streams.py

* Update incremental streams cursor_field formatting

* Update streams and test config

* Add no_empty_streams_no_usage_records_catalog.json

* Update streams code style.
Add twilio.md docs.
Other PR style fixes.

* Update twilio.md docs.

* Odd docstring removed.

* Uncomment tests.

* Add Docker AIRBYTE_ENTRYPOINT
2021-07-03 20:59:38 +03:00
Marcos Marx
68f78d59ad Add AIRBYTE_ENTRYPOINT for Kubernetes support (#4469). 2021-07-03 22:05:32 +08:00
Sherif A. Nada
5989d19733 Disable gradle cache when publishing connectors (#4507) 2021-07-02 13:35:40 -07:00
Sherif A. Nada
9079cbdf78 Publish PR (#4121) (#4495)
Co-authored-by: Rodrigo Parra <rodpar07@gmail.com>
2021-07-02 13:34:57 -07:00
Charles
335f5edef8 copy seed configurations from config/init to server (#4417)
Co-authored-by: subodh <subodh1810@gmail.com>
2021-06-30 10:38:19 -07:00
Davin Chia
2113828560 Load local docker images into KIND. (#4426)
We were previously running the Kube acceptance test on images pulled from Dockerhub and not images built as part of the acceptance tests build.

This PR fixes that by explicitly loading the images into KIND. This happened because KIND does not have access local docker agent.

We stopped publishing dev images in PR:4425 so there are other updates for tests that were previously using these images.

Since we are no longer publishing dev images - I also went through and removed all the images on DockerHub - I'm pretty confident this is actually, finally, using locally built docker images.
2021-06-30 15:51:14 +08:00
Davin Chia
52bd5c96f0 🎉 Add Minio support to Kube. (#4365)
Implement logging to and reading from Minio. Use the same S3 client for this.

Configure Airbyte Kube Prod and Staging to use Minio by default, so Airbyte Kube is a standalone deployment.

Also update documentation to reflect this.
2021-06-30 09:42:50 +08:00
Subodh Kant Chaturvedi
887752822c 🎉 introduce automatic migration at the startup of server for docker environment (#3980)
* introduce automatic migration at the startup of server

* handle versions with non-zero patch

* it works!!!

* add dummy data

* cleanup orphan configs

* add more assertions

* format + add comments

* move migration acceptance test to acceptance test directory

* add automatic migration test to the build

* address review comments

* missed out on these

* format

* add more assertions

* format

* fix test

* format

* use default port for temporal

* move seed to server + introduce atomice replacement for config

* make tests better

* remove unwanted changes

* move atomic replacement logic behind persistence + pass path to latest seeds

* format

* update seeds

* review comments

* update seeds

* merge latest seeds with configs

* fix bug around latest seed

* update seed

* update seed

* seeds should be populated by separate container

* address review comment + change latest definition url

* update seeds

* format

* update seed references

* update seed

* update seed

* update seed

* update seed references

* update seed references + add Migration Acceptance Test

* update seed container in kube + disable automatic migration for kube + update docs

* update docs

* address review comments from Michel

* update doc

* temporary commmit to see if build becomes green

* delete seeds from airbyte config + undo temp commit
2021-06-29 23:50:00 +05:30
Davin Chia
25f68b518b Only run a subset of Acceptance Tests for Kube. (#4397)
Only run Discover and 2 Syncs for Kube since these are already run as part of Docker acceptance tests. There is little value in rerunning; these also take a long time since it can take a while for Kube pods to spin up.
2021-06-29 17:16:45 +08:00
Sherif A. Nada
767f40b82e Publish Pubsub (#4354) 2021-06-25 11:48:30 -07:00
Yaroslav Dudar
2ccb1c2de0 🎉 New source: AWS CloudTrail (#4122)
AWS CloudTrail connector initial release
2021-06-25 11:10:07 +03:00
LiRen Tu
825d4be21a Update release script (#4327) 2021-06-24 18:05:53 -07:00
Sherif A. Nada
aa4df858fd Release Community PR 4288 (#4331) 2021-06-24 16:12:55 -07:00
Christophe Duong
75a1dda07e 🎉 New BigQuery destination with Structured/Repeated Records (#4176) 2021-06-23 16:19:36 +02:00
Davin Chia
e60f5369e0 🎉 Kube Logs support stored and reading from S3. (#4053)
Use Log4j2 appender to support routing logs to S3.

Create LogClient to support reading from S3.

Some clean up of the Log4j2 xml variables.

Several dependency changes to be more explicit when configuring jackson.
2021-06-19 12:15:15 +08:00
Jared Rhizor
883166a6c2 use ec2 runner for kube acceptance tests (#4058)
* use ec2 runner for kube acceptance tests

* add missing newline

* log outputs

* add user and home env vars

* log more

* use root user

* fix ec2 runner

* remaining debugging

* try overwrite forcing

* fail fast

* get kubectl location

* even more

* just look for it

* see if it's a symlink

* symlink

* make sure it's started

* try with overrides

* Revert "try with overrides"

This reverts commit 123e3c033e.

* clean up

* describe pods

* display exception when getting address in use error

* retry installing socat

* try inet4 address specifically

* switch order of install

* use unique ports for each

* try to detect locations with home and user set

* STOPTTTTTTTTTTT

* fix typo

* move socat back up one more

* add update
2021-06-17 22:48:52 -07:00
Jared Rhizor
ef853153a5 kube zombie handling (#4137)
* working except for too much logging and bad success case

* succeeds on passing case

* completes successfully

* just doesn't kill the main

* working zombie killing

* cleanup

* more cleanup

* use correct path

* fmt

* cleanups, bugfixes, integration tests

* run worker integration tests as part of ci

* delete tester class

* fix hanging checkpoint container problem

* fix name of command

* replace todo with clarifying comment
2021-06-17 17:51:58 -07:00
vovavovavovavova
286f30f9ed CDK: tool for auto-generating schemas from the stream output (#3948)
* tool for creating schemas from configured_catalog within genson stripping `required`

* gen from all output (add_schema for all)

* all except extra_strategies

* apply extra strategies

* merge && small upd

* upd docstring
2021-06-16 14:16:32 +03:00
Harshith Mullapudi
bad2fb14e3 🎉 New source: Google Ads API (#3842)
* New source: Google Ads API

Co-authored-by: Sherif Nada <snadalive@gmail.com>
2021-06-14 16:16:32 +08:00
Dmytro
512b9f3e63 Rewrite scaffoldTemplateTask test to work with new docker generator (#4039) 2021-06-10 23:33:22 +03:00
irynakruk
446ec0407f 🎉 New Source: Snowflake DB (#3844) 2021-06-10 12:52:47 -07:00
Davin Chia
b04c080c95 Kube Queueing POC (#3464)
* Use CDK to generate source that can be configured to emit a certain number of records and always works.

* Checkpoint: socat works from inside the docker container.

* Override the entry point.

* Clean up and add ReadMe.

* Clean up socat.

* Checkpoint: connect to Kube cluster and list all the pods.

* Checkpoint: Sync worker pod is able to send output to the destination pod.

* Checkpoint: Sync worker creates Dest pod if none existed previously. It also waits for the pod to be ready before doing anything else. Sync worker will also remove the pod on termination.

* update readme

* Checkpoint: Dest pod does nott restart after finishing. Comment out delete command in Sync worker.

* working towards named pipes

* named pipes working

* update readme

* WIP named pipe / socat sidecar kube port forwarding (#3518)

* nearly working sources

* update

* stdin example

* move all kube testing yamls into the airbyte-workers directories. sort the airbyte-workers resource folder; place all the poc yamls together.

* Format.

* Put back the original KubeProcessBuilderFactory.

* Fix slight errors.

* Checkpoint: Worker pod knows its own IP. Successfully starts and writes to Dest pod after refactor.

* remove unused file and update readme

* Dest pod loops back into worker pod. However, the right messages do not seem to be passing in.

* Switch back to worker ip.

* SWEET VICTORY!.

* wrap kube pod in process (#3540)

also clean up kubernetes deploys.

* More clean up. (#3586)

The first 6 points of #3464.

The only interesting thing about this PR is the kube pod shutdown. For whatever reason, the OkHttpPool isn't respecting the evictAll call and 1 idle thread remains. So instead of shutting down immediately, the worker pod shuts down after 5 mins when the idle thread id reaped. There isn't an easy way to modify the pool's idle reap configuration now. I do not think this issue is blocking since it's relatively benign, so I vote we create a ticket and come back to this once we do an e2e test.

* Implements redirecting standard error as well. (#3623)

* Clean up before next implementation.

* kube process launching (#3790)

* processes must handle file mounting

* remove comment

* default to base entrypoint

* use process builder factory / select stdin / use a pool of ports

* fix up

* add super hacky copying example

* Checkpoint: Works end to end!

* Checkpoint: Use API to make sure init container is ready instead of blind sleep. Propagate exception in DefaultCheckConnectionWorker.

* Refactor KubePodProcess. Checked to make sure everything still works.

* Format.

* Clean up code. Begin putting this into variables and breaking up long constructor function.

* Add comments to explain what is happening.

* fix normalization test

* increase timeout for initcontainer

Co-authored-by: Davin Chia <davinchia@gmail.com>

* facepalm moment

* clean up kube poc pr (#3834)

* clean up

* remove source-always-works

* create separate commons-docker

* fix test

* enable kube e2e tests (#3866)

* enable kube e2e tests

* use more generally accepted env definition

* use new runners

* use its own runner and install minikube differently

* update name

* use kubectl alias

* use link instead of alias that doesn't propagate

* start minikube

* use driver=none

* go back to using action

* mess with versions

* revert runner

* install socat

* print logs after run

* also try re-runnining tasks

* always wait for file transfer

* use ports

* increase wait timeout for kube

* use different localhost ips and bump normalization to include an entrypoint

* proposed fix

* all working locally

* revert temporary changes

* revert normalization image change that's happening in a separate pr

* readability

* final comment

* Working Kube Cancel. (#3983)

* Port over the basic changes.

* Add logic to return proper exit code in the event of termination. Add comments to explain why.

* revert envs change and merge master to fix kube acceptance tests (#4012)

* use older env format

* fix build

Co-authored-by: jrhizor <me@jaredrhizor.com>
Co-authored-by: Jared Rhizor <jared@dataline.io>
2021-06-09 18:12:39 -07:00
Jared Rhizor
b4793b2510 add AIRBYTE_ENTRYPOINT for kubernetes support (#3973)
* add AIRBYTE_ENTRYPOINT for kubernetes support

* bump versions

* bump version in seed

* Update generic template

* keep scaffold sources at 0.1.0

* add missing newline

* handle python base versions correctly

* re-bump mysql and postgres sources

* re-bump snowflake destination

* add skip tests option

* switch to running tests

* reverse conditional to make it safer

* fix publish to include the test running

* fix iterable version

* fix file generation

Co-authored-by: Sherif A. Nada <snadalive@gmail.com>
2021-06-09 13:01:45 -07:00
vovavovavovavova
07b09a9a12 🎉 Posthog: New Source (#3768)
Co-authored-by: Eugene Kulak <kulak.eugene@gmail.com>
2021-06-08 16:55:05 -07:00
Daniel Dubinin
1a147e472a Source MSSQL: Enabled SSL connections (#3893)
* Source MSSQL: Enabled SSL connections
2021-06-08 15:05:15 +03:00
Oleksandr
01dc7bbde9 🎉 Add Airbyte-native shopify connector (replaces Singer-based) (#3787)
* first commit

* Delete source copy.py

File doesn't need

* IAdded Incremental Refresh + stream_slice for Refunds, Transactions

* small changes to source.py

* fixed Incremental Refresh

* Fixed acceptence-tests

* Edited no-refunds-catalog for acceptence-tests

* changed the state

* Commit for Review

* removed spaces

* added parameter to orders stream to read all the records by default

* added parameter to abandoned_checkouts stream to read all the records by default

* minor fix

* minor fix

* changed authentication method from basic http > header based auth, removed usage of api_key

* reformated source.py

* improved source.py, removed dependencies block from build.gradle

* removed unneeded dependencies + formated source.py

* changed Shopify in source_definitions.yaml from singer-based to cdk version, changed years in the documents

* added source_definition for source-shopify cdk json file

* Delete airbyte-config/init/bin/main/config/STANDARD_SOURCE_DEFINITION directory

* Add files via upload

* added secret credentials for source-shopify

* Delete 9da77001-af33-4bcd-be46-6252bf9342b9.json

* re-added source_definition file

* Delete airbyte-config/init/bin/main/config/STANDARD_SOURCE_DEFINITION directory

* re-added source definition

* Delete airbyte-config/init/bin/main/config/STANDARD_SOURCE_DEFINITION directory

* edit source definitions

* source definition change: removed icon block

* ...

* changed source_definition.json

* changed source_definition.json

* Added ability to specify the start_date of data replica.

* changed docker version to 0.1.1 - bumped version on image, aedited request_params for metafields

* changed docker version to 0.1.1 - bumped version on image, aedited request_params for metafields

* changed docker version to 0.1.1 - bumped version on image, aedited request_params for metafields

* changed collects to full_refresh by default

* changed collects to full_refresh by default

* Delete airbyte-config/.settings directory

* Delete .classpath

* Delete .project

* Delete .project

* Delete .classpath

* Delete airbyte-config/init/.settings directory

* Delete airbyte-config/init/bin directory

* Delete airbyte-config/models/.settings directory

* Delete airbyte-config/models/bin directory

* Delete .classpath

* Delete .project

* Delete airbyte-config/persistence/.settings directory

* Delete airbyte-config/persistence/bin directory

* Delete .classpath

* Delete .project

* changed python to python3 in README.md

* small changes to code source.py, bump the version, edited .gitignore

* edited spec.json with pattern for start_date

Co-authored-by: Oleksandr Bazarnov <oleksandr.bazarnov@globallogic.com>
2021-06-08 12:46:35 +03:00
Yevhenii
a90e5f0eca 🎉 New Source: Amplitude (#3664)
* New Amplitude Source: Full Refresh and Incremental Sync

* update api.py, add CHANGELOG.md file

* bump version

Co-authored-by: ykurochkin <y.kurochkin@zazmic.com>
2021-06-08 10:36:31 +03:00
Vadym
e699f39740 🎉 New Source: Harvest (#3709)
* Add harvest source.
Add Clients, Contacts, Company, Invoices, InvoiceMessages, InvoicePayments streams full_refresh support.

* Add all Harvest source streams.
Add config and schema files for all the streams.

* Complete streams implementation.
Add config and schemas.

* Fix expenses stream calls.
Fix ExpensesBase request_params method.
Add source docs and definitions.

* Update harvest.md docs.

* Comment source_definitions.yaml harvest definition.

* Delete Harvest standard source definitions.

* Add Harvest creds to commands.

* Update Harvest build.gradle.

* Add extra report streams schemas.
Update config files.
Update incremental streams mixin.

* Fix HarvestStreamWithPaginationSliced stream_slices method for incremental stream support

* Remove source-acceptance-test test requirement

* * Fix schema.
* Update streams
* Update docs

* Update billable_rates and cost_rates to full_refresh only

* Fix HarvestStreamIncrementalMixin request_params method

* Fix BillableRates and CostRates streams initialization

* Refactor streams.py code common usages.
Update HarvestTokenAuthenticator class definition.

* Add streams docstring.
Fix sub streams slicing.
Update spec and schemas.
Update md docs.

* Update report streams to be support incremental sync.
Update report schemas.

* Removed Uninvoiced and ProjectBudget incremental sync support.
Fix configs and configured catalog.

* Fix streams cursor value.
Update IncrementalReportsBase request_params.
Update schemas and config.

* Add harvest source definitions.
2021-06-07 15:11:30 +03:00
LiRen Tu
c13b9883e8 🎉 New destination: S3 (#3672)
* Update README icon links

* Update airbyte-specification doc

* Extend base connector

* Remove redundant region

* Separate warning from info

* Implement s3 destination

* Run format

* Clarify logging message

* Rename variables and functions

* Update documentation

* Rename and annotate interface

* Inject formatter factory

* Remove part size

* Fix spec field names and add unit tests

* Add unit tests for csv output formatter

* Format code

* Complete acceptance test and fix bugs

* Fix uuid

* Remove generator template files

They belong to another PR.

* Add unhappy test case

* Checkin airbyte state message

* Adjust stream transfer manager parameters

* Use underscore in filename

* Create csv sheet generator to handle data processing

* Format code

* Add partition id to filename

* Rename date format variable
2021-06-03 09:40:51 -07:00
Gabriel Rebessi
eade88efa7 New Source: Okta (#3563)
* Add source-okta

* Add PR suggestions

* Remove typo

* Remove unused file

* hard code page size

* add missing fields to catalog.json

* Add missing fields to catalog

* Add docs to Okta

* Add credential for okta

* Update docs/integrations/README.md

* Fix linting

* fix dependency conflict

* Fix integration tests

* update ci_credentials

Co-authored-by: Sherif A. Nada <snadalive@gmail.com>
2021-06-02 14:03:00 -03:00
Christophe Duong
bb4dcb1987 🎉 Remove hash when it is not necessary from normalization outputs (#3704)
* Refactor `generate_new_table_name` using a table name registry class instead

* update normalization docs

* Enable MyPy

* Regenerate output files

* Closes https://github.com/airbytehq/airbyte/issues/2389

* Bumpversion normalization
2021-06-01 17:07:22 +02:00
Phlair
9360ed0da9 🎉 File source: Add support for Azure blob storage (#3660)
Co-authored-by: Davin Chia <davinchia@gmail.com>
2021-06-01 10:42:13 +08:00
Davin Chia
54fd943980 Write azure storage credentials to source-file directory. (#3770) 2021-06-01 10:30:37 +08:00
oleh.zorenko
5aa03643cf Update source-exchange-rates connector (#3566) 2021-05-26 21:59:42 +03:00
oleh.zorenko
c8711abbd6 🎉 New Source: Asana (#3510)
* Asana source

* Fix creds for CI.

* Update connection status in acceptance test config

Change status from `exception` to `failed`.

* Implement change request.

Remove few files from /integration_tests folder.
Use `stream_slices` and/or `request_params` functions instear of `read_records` function

* Update sample_config.json file.

* Update airbyte-integrations/connectors/source-asana/CHANGELOG.md

Co-authored-by: Sherif A. Nada <snadalive@gmail.com>

* Update `stream_slices` using.

Create reneric `read_stream` function in AsanaStream class and move there logic from `stream_slices` function.

* Rename functions.

rename `read_stream` to `read_slices_from_records`.

* Changes about publishing.

Add asana source to `source_definitions.yaml`.
Add `asana.svg`.
Create connector related file in `STANDARD_SOURCE_DEFINITION` folder.

Co-authored-by: Sherif A. Nada <snadalive@gmail.com>
2021-05-25 18:55:46 +03:00
Christophe Duong
8862fba1bb 🎉 Avoid dbt runtime exception "maximum recursion depth exceeded" in ephemeral materialization
* Create new test_ephemeral and refactor with test_normalization

* Add notes in docs

* Refactor common normalization tests into DbtIntegrationTest

* Bumpversion of normalization image
2021-05-21 18:07:20 +02:00
Artem Astapenko
5e0a91430f Fix e2e tests (#3508) 2021-05-21 21:38:15 +07:00
Yevhenii
3647c3cf1d 🎉 New Source: Recharge (#3466)
* Recharge Connector: Full Refresh add Incremental syncs, Acceptance tests, docs

Co-authored-by: ykurochkin <y.kurochkin@zazmic.com>
2021-05-20 14:45:52 +03:00
Eugene Kulak
d2eb5c0564 🎉 New Source: Klaviyo (#3463)
* Klaviyo source

* add test creds

* format and docs

* remove accidentally committed files

* fix build

* format

* restore page size

* add creds to CI

* update configured_catalog.json

* register in default sources

* fix spec

* Update airbyte-integrations/connectors/source-klaviyo/source_klaviyo/source.py

Co-authored-by: Sherif A. Nada <snadalive@gmail.com>

* address comments from @sherifnada

* dump spec and enable spec test

* fix acceptance-test-config.yml

* fix configured_catalog.json

* fix configured_catalog.json

Co-authored-by: Eugene Kulak <kulak.eugene@gmail.com>
Co-authored-by: Sherif A. Nada <snadalive@gmail.com>
2021-05-19 18:36:09 -04:00
masonwheeler
a67c769980 MS SQL Server Destination implementation
Fixes issue #613.

Normalization is not yet enabled.  This will have to be added at a later point.
2021-05-17 09:54:52 -06:00
Yevhenii
d44fc16e65 Source Stripe: Add Acceptance Tests to Stripe Connector (#3367)
* Add Acceptance Tests to Stripe Connector

* move configured_catalog.json to sample_files

* bump version

Co-authored-by: ykurochkin <y.kurochkin@zazmic.com>
2021-05-13 18:40:24 +03:00
vitaliizazmic
735b0783dc 🎉 New Source: google search console
* Google search console source #2257 - new source

* Google search console source #2257 - reformat

* Google search console source #2257 - adding gcc to docker container

* Google search console source #2257 - remove unused files, update acceptance test configs, change tap repo to airbyte

* Google search console source #2257 - updating acceptance tests configs

* Google search console source #2257 - updating acceptance cursor_paths

* Google search console source #2257 - temporary disable tests

* Google search console source #2257 - disable performance_report_date stream

* Google search console source #2257 - disable performance_report_date stream (update docs)

* Google search console source #2257 - disable performance_report_date stream for tests

* Google search console source #2257 - updating singer tap fork
2021-05-10 09:59:44 +03:00
Sherif A. Nada
36b9b48a2e Migrate CDK sources to new Pypi package & structure (#3303) 2021-05-09 17:22:41 -07:00