1
0
mirror of synced 2026-01-05 12:05:28 -05:00
Commit Graph

99 Commits

Author SHA1 Message Date
Subodh Kant Chaturvedi
1ab08e5be2 upgrade debezium version for postgres to 1.9.2 (#13368)
* upgrade debezium version for postgres to 1.9.2

* fix test+build

* fix build

* address review comments

* update link to docs

* fix test
2022-06-15 16:17:36 +05:30
Lake Mossman
73034c64da Sweep old scheduler code (#13400)
* sweep all scheduler application code and new-scheduler conditional logic

* remove airbyte-scheduler from deployments and docs

* format

* remove 'v2' from github actions

* add back scheduler in delete deployment command

* remove scheduler parameters from helm chart values

* add back job cleaner + test and add comment

* remove now-unused env vars from code and docs

* format

* remove feature flags from web backend connection handler as it is no longer needed

* remove feature flags from config api as it is now longer needed

* remove feature flags input from config api test

* format + shorter url

* remove scheduler parameters from helm chart readme
2022-06-06 10:49:17 -07:00
Davin Chia
e9a94396e5 Fat Jar: Rename Dir Part 3 (#13480)
## What
Part 3 of https://github.com/airbytehq/airbyte/pull/13122.
Follow up to #13478  .

Explanation for what is happening:

Identically named subprojects have the following issues:

* publishing as is leads to classpath confusion when the jars with the same names are placed in the Java distribution. This leads to NoClassDefFound errors on runtime.
* deconflicting the jar names without changing directory names leads to dependency errors as the OSS jar pom files are generated using project dependencies (suggesting a dependency a sibling subproject in the same repo) that use subprojects group and name as a reference. This means the generated jars look for Jars that do not exists (as their names have been changed) and cannot compile.
* the workaround to changing a subproject's name involves resetting the subproject's name in the settings.gradle and depending on the new name in each build.gradle. This increases configuration burden and decreases the ease of reading, since one will have to check the settings.gradle to know what the right subproject name is. See https://github.com/gradle/gradle/issues/847 for more info.
* given that Gradle itself doesn't have support for identically named subprojects (see the linked issue), the simplest solution is to not allow duplicated directories. I've only renamed conflicting directories here to keep things simple. I will create a follow up issues to enforce non-identical subproject names in our builds.

## How
Rename airbyte-scheduler:models to airbyte-scheduler:scheduler-models.
Rename airbyte-scheduler:persistence to airbyte-scheduler:scheduler-persistence.
2022-06-06 03:13:36 +08:00
Davin Chia
eb99f47746 Fat Jar: Rename Dir Part 2 (#13478)
## What
Part 2 of https://github.com/airbytehq/airbyte/pull/13122.

Follow up to #13476 .

Explanation for what is happening:

Identically named subprojects have the following issues:

* publishing as is leads to classpath confusion when the jars with the same names are placed in the Java distribution. This leads to NoClassDefFound errors on runtime.
* deconflicting the jar names without changing directory names leads to dependency errors as the OSS jar pom files are generated using project dependencies (suggesting a dependency a sibling subproject in the same repo) that use subprojects group and name as a reference. This means the generated jars look for Jars that do not exists (as their names have been changed) and cannot compile.
* the workaround to changing a subproject's name involves resetting the subproject's name in the settings.gradle and depending on the new name in each build.gradle. This increases configuration burden and decreases the ease of reading, since one will have to check the settings.gradle to know what the right subproject name is. See https://github.com/gradle/gradle/issues/847 for more info.
* given that Gradle itself doesn't have support for identically named subprojects (see the linked issue), the simplest solution is to not allow duplicated directories. I've only renamed conflicting directories here to keep things simple. I will create a follow up issues to enforce non-identical subproject names in our builds.

* Rename airbyte-config:models to airbyte-config:config-models.
* Rename airbyte-config:persistence to airbyte-config:config-persistence.
2022-06-06 02:21:54 +08:00
Davin Chia
83a89aa843 Fat Jar: Rename Dir Part 1 (#13476)
Part 1 of #13122.

Rename airbyte-db:lib to airbyte-db:db-lib.
Rename airbyte-metrics:lib to airbyte-metrics:metrics-lib
Rename airbyte-protocol:models to airbyte-protocol:protocol-models.

Explanation for what is happening:

Identically named subprojects have the following issues:
- publishing as is leads to classpath confusion when the jars with the same names are placed in the Java distribution. This leads to NoClassDefFound errors on runtime.
- deconflicting the jar names without changing directory names leads to dependency errors as the OSS jar pom files are generated using project dependencies (suggesting a dependency a sibling subproject in the same repo) that use subprojects group and name as a reference. This means the generated jars look for Jars that do not exists (as their names have been changed) and cannot compile.
- the workaround to changing a subproject's name involves resetting the subproject's name in the settings.gradle and depending on the new name in each build.gradle. This increases configuration burden and decreases the ease of reading, since one will have to check the settings.gradle to know what the right subproject name is. See Projects with same name lead to unintended conflict resolution gradle/gradle#847 for more info.
- given that Gradle itself doesn't have support for identically named subprojects (see the linked issue), the simplest solution is to not allow duplicated directories. I've only renamed conflicting directories here to keep things simple. I will create a follow up issues to enforce non-identical subproject names in our builds.
2022-06-06 00:35:43 +08:00
Sherif A. Nada
49810f8c13 sweep airbyte-integrations/bases/airbyte-protocol (#12598) 2022-05-05 13:51:16 -07:00
Sherif A. Nada
cc46255190 cull base-python and base-python-test (#12596) 2022-05-05 13:48:15 -07:00
Denys Krytskyi
905807591b Modify OSS Airbyte and Cloud Airbyte to use Catalogs - 809 (#12610)
This PR provides 'version catalog' plugin, Where catalog is defined by using declared dependency list in 'build.gradle'.
In this pr all dependencies were transferred to 'libs' using 'dependencyResolutionManagement -> versionCatalogs -> libs'
2022-05-06 02:23:01 +08:00
LiRen Tu
0c909ded6a Switch json libraries to jitpack (#12531)
* Switch json-avro-converter to jitpack

* Switch jsongenerator to jitpack

* Fix default config

* Fix one more default config use case

* Fix jitpack dependency

* Move jitpack repo to root build.gradle
2022-05-03 17:45:57 -07:00
Augustin
582baf3b68 gradle: create a separate sub build for all connectors (#11833) 2022-04-08 10:35:37 -07:00
Davin Chia
6dc87eeaa2 Publish the right image name. (#10458) 2022-02-19 02:01:49 +08:00
Davin Chia
f927dc501d Set up initial metrics reporter. (#10408)
Part 1 of https://docs.google.com/document/d/11pEUsHyKUhh4CtV3aReau3SUG-ncEvy6ROJRVln6YB4/edit?usp=sharing.

This is the initial set up of the reporter. Will add actual metrics in the follow up PR.

Since the reporter is primarily for Cloud use and limited to DD to begin with, we are keeping it outside the regular Airbyte docker and Kube deploys for now.

Add ReadMes to better define various modules.
2022-02-18 16:19:02 +08:00
LiRen Tu
b269b9fb1e 🎉 Source e2e test: support custom catalog (#9720)
* Add continuous feed mode to source e2e-test

* Update connector catalog doc

* Fix sonar qube issues

* Add cloud variant

* Format code

* Add testing source connector to seed
2022-01-23 21:09:03 -08:00
Augustin
34c9366f2b 🐙 Bootstrap octavia-cli project (#9070) 2022-01-05 21:19:40 +01:00
Marcos Marx
de56d4713c Publish PR 9029: clickhouse normalization (#9072)
* add normalization-clickhouse docker build step

* bump normalization version

* small changes gradle

* fix settings gradle

* fix eof file

* correct clickhouse normalization

* Refactor jinja template for scd (#9278)

* merge chris code and regenerate sql files

Co-authored-by: James Zhao <james.zhao@sinoreps.com>
Co-authored-by: Edward Gao <edward.gao@airbyte.io>
Co-authored-by: Christophe Duong <christophe.duong@gmail.com>
2022-01-04 23:28:14 -03:00
Charles
2c7f239182 airbyte-e2e-testing => airbyte-webapp-e2e-tests (#8892)
* move webapp tests module
2021-12-20 13:16:08 +03:00
Jared Rhizor
20c488948e add container orchestrator in feature flag (#8015)
* it's working

* clean up process factory

* fix and add tests

* clarify airbyte_default

* fix build

* fix kube acceptance test (maybe)

* oops

* fix output prop issue

* fix output propagation regression

* fix kube singleton problem

* sync passing on kube but getting wrong exit code of 7

* misc

* fix port usage

* remove host port that causes conflicts

* eliminate envconfigs static usage

* this took way too long to figure out

* get rid of annoying ==== this is new log messages

* finally successfully completing syncs

* stop using magic strings and clean up logging

* misc minor cleanups

* fmt

* misc

* correct

* misc fixes

* rename + misc

* better logs

* logging fix 1

* logging fix 1 -- fixed

* finally get logging working nicely

* add comment for simplification

* fmt

* misc

* fmt

* break into separate class

* remove comment

* remove flaky multi-node testing

* try to fix connector build

* remove separate node check

* switch to new configs type

* fix regression from logging config changes

* only log path one time

* remove misleading setting terminology

* fix connector build

* fix earlier merge conflict

* fix runtime kubernetes bug

* fix connector build (again)

* greatly simplify logging config by forcing the container-orchestrator to use default (non-job) logging

* add secret insertion for orchestrator on kube

* fix k8s ports

* add four ports

* fix logging test regression

* temporarily disable kube tests to check logging

* improve comments

* make Docker run more secure by limiting env vars transferred

* re-enable kubernetes tests

* fix conflict

* fix docker launching

* revert temporal hacks

* match master

* fix typo

* remove completed todo

* fix conflict

* increase memory requirement to something reasonable

* Update airbyte-container-orchestrator/Dockerfile

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

* Update airbyte-container-orchestrator/Dockerfile

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

* see if this stabilitizes tests

* address review comments

* bump new container version

* revert temporary addition

* change port back to 9000

* make re-initialization actually a no-op

* add feature flag

* fix version from merging earlier

* fix dockerfile

* fix connector build

* fix

* bump node version

* fix dockerfile

Co-authored-by: Davin Chia <davinchia@gmail.com>
2021-12-17 16:51:17 -08:00
Davin Chia
a7061dde3f Create separate Airbyte Bootloader Application. (#8547)
Part 1 of #8303.

Essentially, create a separate application that will run all set up operations for Airbyte, including database migrations and metadata setup.

Part 2 will be removing these operations from the server, modifying start up conditions to look for migration versions (#8302). I'll then release a minor version.

This sequencing felt the most natural to me, since it allows for the new code to exist in master without any breaking changes. It also preserves the ServerApp class for comparison.
2021-12-07 22:21:40 +08:00
Charles
5e4178e5b1 remove legacy migration code (#8499) 2021-12-03 15:45:03 -08:00
Charles
f40e5363c4 restore airbyte-cli (#7935) 2021-11-12 19:54:27 -08:00
Charles
9b31f7caa6 remove airbyte cli from build (#7924) 2021-11-12 11:26:09 -08:00
Benoit Moriceau
9d05b1c477 Faux Major Version Bump (#7876) 2021-11-11 13:40:09 -08:00
Benoit Moriceau
73a9131526 Revert "Custom auto-setup temporal docker image (#7681)" (#7835)
This reverts commit e20d98fe0a.
2021-11-10 15:09:24 -08:00
Benoit Moriceau
e20d98fe0a Custom auto-setup temporal docker image (#7681)
This is a custom auto-setup script for the temporal environment. Unfortunately there is no other way properly update the DB without copy pasting parts of the temporal auto-setup script. Ideally temporal would provide a dedicated container for it DB but it is not the case right now.
2021-11-10 14:32:36 -08:00
Lake Mossman
09fce77107 REDO: Generate seed connector specs on build (#7613)
* add specs module with logic to fetch specs on build

* format + build and add gradle dependency for new script

* check seed file for existing specs + refactor

* add tests + a bit more refactoring

* run gw format

* update yaml config persistence to merge specs into definitions

* add comment

* add dep

* add tests for GcsBucketSpecFetcher

* get rid of static block + format

* DRY up parse call

* add GCS details to comment

* formatting + fix test

* update comment

* do not format seed specs files

* change signature of run to allow cloud to reuse this script

* run gw format

* revert commits that change signature of run

* fix comment typo

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

* rename enum to be distinct from the enum in cloud

* add missing dependencies between modules

* add readme for seed connector spec generator

* reword

* reference readme in comment

* ignore 'spec' field in newFields logic

* rearrange dependencies so that CONNECTORS_BASE build does not depend on SeedConnectorSpecGenerator

* run format

* add some more helpful info to the GCS fetch failure message

* add more info

* get rid of unnecessary static block

* Fix publishing docs (#7589)

* Fix publishing docs

* Reorder steps and add a comment about rebuilding the platform

* Update README.md

Co-authored-by: Lake Mossman <lake@airbyte.io>

* add dependency and rebuild

* update PR template with seed connector generation steps

* revert formatting changes to PR template

* Update build.gradle

* Remove unnecessary dep

Co-authored-by: Davin Chia <davinchia@gmail.com>
Co-authored-by: Christophe Duong <christophe.duong@gmail.com>
2021-11-04 17:06:16 -07:00
LiRen Tu
c9c41dcd08 🎉 Destination S3 & GCS: support additional properties (#7288)
* Log json schema

* Use patched json avro converter

* Rename schema

* Update unit test cases

* Fix ab ap field schema conversion

* Rename files

* Add unit test cases

* Fix dependency for databricks

* Bump versions

* Update documentations

* Update gcs doc

* Set additional properties field name

* Revert s3 and gcs version

* Specify extra props fields

* Refactor json avro conversion doc

* Update connector doc

* Fix databricks spec typo

* Bump connector versions in seed
2021-11-03 11:37:24 -07:00
lmossman
b94ee00fd8 Revert "Generate seed connector specs on build (#7501)"
This reverts commit a534bb2a8f.
2021-11-03 08:46:43 -07:00
Lake Mossman
a534bb2a8f Generate seed connector specs on build (#7501)
* add specs module with logic to fetch specs on build

* format + build and add gradle dependency for new script

* check seed file for existing specs + refactor

* add tests + a bit more refactoring

* run gw format

* update yaml config persistence to merge specs into definitions

* add comment

* delete secrets migration to be consistent with master

* add dep

* add tests for GcsBucketSpecFetcher

* get rid of static block + format

* DRY up parse call

* add GCS details to comment

* formatting + fix test

* update comment

* do not format seed specs files

* change signature of run to allow cloud to reuse this script

* run gw format

* revert commits that change signature of run

* fix comment typo

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

* rename enum to be distinct from the enum in cloud

* add missing dependencies between modules

* add readme for seed connector spec generator

* reword

* reference readme in comment

* ignore 'spec' field in newFields logic

Co-authored-by: Davin Chia <davinchia@gmail.com>
2021-11-02 22:03:50 -07:00
Charles
58902f3df8 add cli commons to factor out common parsing code (#7301) 2021-10-29 18:44:22 -07:00
Jared Rhizor
a0206183e0 remove secrets migration code (#7437) 2021-10-28 10:40:56 -07:00
Charles
84b69d953e remove python from platform build (#7302) 2021-10-23 15:36:34 -07:00
Jared Rhizor
41db058eb2 loosen definition of object specs in SecretsHelper (#6654)
* address missing secretshelper case

* fix test

* migration changes

* fix build

* format

* switch secrets migration to platform-only build
2021-10-18 17:47:18 -07:00
Charles
f194f354c7 move basic normalization to connectors_base build (#7068) 2021-10-15 17:26:08 -07:00
Christophe Duong
c4620559d7 🎉 Refactor Normalization docker images and upgrade to use dbt 0.21.0 (#6959)
* Split normalization docker images for some connectors with specifics dependencies

* Regenerate (#7003)
2021-10-14 20:29:16 +02:00
Baz
e5abaeccef 🎉 Base-normalization: Implement normalization for MSSQL-destination (#6079)
See the attached PR (https://github.com/airbytehq/airbyte/pull/6079)
2021-10-07 18:46:27 +03:00
Davin Chia
5a3353dcf5 Bootstrap initial custom metrics library (#6529)
Wrapper around Prometheus lib to interface with Datadog.

We use prometheus because:
- Future-proofing as it's uses the general open metrics format.
- Prometheus makes it's metrics available to a scraper to it lends itself better to the OSS set up.
- Datadog automatically converts promethues metrics into dd metrics so we don't lose much.
2021-10-05 21:51:34 +08:00
Jenny Brown
eb04c1aec1 Secrets Migration utility (#6489)
* Created skeleton of a migration utility module.
* Secrets migration hello world functional
* Added dependencies for secrets migration
* Create Secrets store migration utility and related tests.
* Make secrets migration work in kube
* Make pod for secrets migration give right health result to kube
2021-09-29 11:33:38 -05:00
Sherif A. Nada
a31b9a9fc9 add oauth to connector_base dependencies (#6064) 2021-09-14 11:56:39 -07:00
Sherif A. Nada
fc159d8a30 add instancewide variables setter endpoints (#5940)
Co-authored-by: Christophe Duong <christophe.duong@gmail.com>
2021-09-09 14:02:06 -07:00
Davin Chia
37943d2e02 Add missing transitive dependencies causing connector build to fail. (#5944) 2021-09-09 20:24:42 +08:00
Jared Rhizor
c7d8055731 split scheduler and worker (#5737)
* docker-compose split of scheduler and worker

* fix heartbeat location bug + add support for kubernetes

* use two workers in integration tests

* capture logs in AirbyteTestContainer

* add waiting

* rename to make it easier to review

* rename module

* fix remaining conflicts

* allow configuring max workers of each type and document usage

* fix build

* remove comment

* add worker resource requiremetns

* try to fix for connector build

* fix regression in biuld

* add env comments for SUBMITTER_NUM_THREADS

* Update airbyte-workers/src/main/java/io/airbyte/workers/WorkerApp.java

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

* Update airbyte-workers/src/main/java/io/airbyte/workers/temporal/TemporalPool.java

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

* merge temporalpool into workerapp

* output docker system info

* move check to before

* remove unnecessary parts of the patch

* could this be the problem? i thought i added this

* show disk usage

* add print statements

* add pruning

* fix prune option

* use force

Co-authored-by: Davin Chia <davinchia@gmail.com>
2021-09-08 11:27:32 -07:00
Eugene
f32b14e536 🎉 Destination Bigquery: added gcs upload option (#5614)
destination-bigquery: added GCS uploading type
2021-09-08 15:21:38 +03:00
Marcos Marx
589d535a61 🎉 Oracle normalization (#5562)
* oracle normalization

* correct dbt_project function for oracle

* unit tests

* run format

* correct ephemeral tests

* add gradle dependency for oracle destination

* run int tests

* add oracle in settings.gradle for normalization run[

* use default airbyte columns

* format

* test all destinatoin ephemeral

* correct unit test

* correct unit test

* destination docs update

* correct mypy

* integration test all dest

* refactor oracle function

* merge master

* run all destinations

* flake8 escape regex

* surrogate key function

* correct few minor comments

* refactor scd sql function

* refactor scd function

* revert test

* refactor minor details

* revert tests

* revert ephemeral test

* revert unit test table_registry

* revert airbyte_protocol format

* format

* bump normalization version in worker

* minor chnages

* minor chages

* correct json_column for other destinations

* gradlew format

* revert tests

* remove comments

* add Oracle destination explicit in safe_cast_str

* add quote_in_parenthesis inside if clause

* gradlew format
2021-09-07 16:39:17 -03:00
Christophe Duong
9643f3de61 Start airbyte-oauth module (#5812) 2021-09-06 10:44:06 +02:00
LiRen Tu
b9e1997d2f Split airbyte-db and move db dev commands to gradle (#5616)
# Summary

- A follow-up PR for #5543.
- This PR separates the `airbyte-db` project to two modules:
  - `lib` is the original `airbyte-db`.
  - `jooq` is for jOOQ code generation.
- This is necessary because the jOOQ generator requires a custom database implementation that can run Flyway migration. So the code generator logic needs to depend on the compilation of the original `airbyte-db` project.

# Commits
* Separate db to lib and jooq modules
* Update dependencies
* Add jobs db migrator test
* Fix compose build
* Add migration dev center
* Add schema dump task
* Update airbyte-db/lib/README.md
  * Co-authored-by: Davin Chia <davinchia@gmail.com>
* Update readme
* Remove bom dependency
* Update readme
* Use jooq code in db config persistence
* Remove AirbyteConfigsTable

Co-authored-by: Davin Chia <davinchia@gmail.com>
2021-08-26 10:44:09 -07:00
Christophe Duong
9038b5e98f Fix normalization integration tests in CI (#4910) 2021-07-27 10:48:36 +02:00
Charles
c966fd7b33 fix acceptance tests deps (#4939) 2021-07-23 10:41:12 -07:00
Davin Chia
5f7d36efa6 🐛 Add missing dependencies for acceptance tests to run. (#4808) 2021-07-19 12:24:07 +08:00
Charles
76adc25820 Split Platform and Connector Builds (#4514) 2021-07-15 10:49:15 -07:00
Subodh Kant Chaturvedi
4863ea1a93 introduce common abstraction for CDC via debezium (#4580)
* wip

* add file

* final structure

* few more updates

* undo unwanted changes

* add abstract test + more refinement

* remove CDC metadata to debezium

* rename class + add missing property

* move debezium to bases + upgrade debezium version + review comments

* downgrade version + minor fixes

* reset to minutes

* fix build

* address review comments

* should return Optional

* use common abstraction for CDC via debezium for mysql (#4604)

* use new cdc abstraction for mysql

* undo wanted change

* pull in latest changes

* use renamed class + move constants to MySqlSource

* bring in latest changes from cdc abstraction

* format

* bring in latest changes

* pull in latest changes

* use common abstraction for CDC via debezium for postgres (#4607)

* use cdc abstraction for postgres

* add files

* ready

* use renamed class + move constants to PostgresSource

* bring in the latest changes

* bring in latest changes

* pull in latest changes
2021-07-12 22:39:38 +05:30