Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🎉 Source Salesforce: add optional parameters to filter properties within streams #1

Closed
wants to merge 68 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
4a290fa
[#9554 PR] Postgres/Mssql Source: Increase version (#9753)
DoNotPanicUA Jan 25, 2022
8f46b37
add getConfigWithMetadata method to ConfigPersistence (#9795)
lmossman Jan 25, 2022
d0b226b
Address review comments for mock source (#9773)
tuliren Jan 25, 2022
894a072
Bump Airbyte version from 0.35.9-alpha to 0.35.10-alpha (#9800)
octavia-squidington-iii Jan 25, 2022
805c8d9
add FailureReason and AttemptFailureSummary schema (#9527)
pmossman Jan 25, 2022
b40b303
🎉Source HubSpot: Adds form_submission and property_history streams (#…
tinomerl Jan 26, 2022
f78ede0
reintroduce window in days, log warning when sampling occurs (#9480)
eliziario Jan 26, 2022
a6a7ee5
Add data types documentation (#9767)
edgao Jan 26, 2022
dda6902
feat: add publish-external command to slash commands to publish exter…
harshithmullapudi Jan 26, 2022
4b148db
Bmoric/deployment signal (#9799)
benmoriceau Jan 26, 2022
09a202d
add platform project automation github workflow (#9821)
pmossman Jan 26, 2022
16a16ec
fix double with: (#9823)
pmossman Jan 26, 2022
5a8fdc6
Platform project automation (#9825)
pmossman Jan 26, 2022
eafaadf
GitHub Source: add fields for auto merge in pull_request stream (#9…
bleonard Jan 26, 2022
ac32b8e
use project-beta-automations action
pmossman Jan 26, 2022
5bce24c
🎉Source-redshift: added an optional field for schema\s selection (#9721)
etsybaev Jan 26, 2022
9efa44f
Source Github: correct spec + bump connector version (#9580)
marcosmarxm Jan 26, 2022
4d48e77
🎉 Source BigCommerce: add Products Stream (#9516)
guidoturtu Jan 26, 2022
1c6b1fb
Bump Airbyte version from 0.35.10-alpha to 0.35.11-alpha (#9820)
octavia-squidington-iii Jan 26, 2022
4bed602
try adding custom fields
pmossman Jan 26, 2022
1f139da
Update platform-project-automation.yml
pmossman Jan 26, 2022
147d0bb
Update platform-project-automation.yml
pmossman Jan 26, 2022
d08afa8
Update platform-project-automation.yml
pmossman Jan 26, 2022
86b506f
Update platform-project-automation.yml
pmossman Jan 26, 2022
40194c6
:bug: Source Slack schema and retry function (#9575)
marcosmarxm Jan 26, 2022
d7052a4
docs: fix channel name (#9830)
marcosmarxm Jan 27, 2022
e4661fb
Remove regex check from Java source acceptance test (#9829)
tuliren Jan 27, 2022
1c421a9
Source Hubspot: Fix getting submissions for all forms (#9555)
gergelylendvai Jan 27, 2022
e53e290
replace '\\n' -> '\n' (#9793)
grubberr Jan 27, 2022
360e438
Mark web backend APIs as non-public (#9813)
timroes Jan 27, 2022
2a015a8
SAT: Introduce new way to compare records based on PK #9718 (#9768)
keu Jan 27, 2022
2ac3274
Heartbeat for long running activity (#9852)
benmoriceau Jan 27, 2022
ccfe63a
:tada: Destination snowflake - update fields in specifications (#9184)
igrankova Jan 28, 2022
4262d26
Fix reset (#9801)
benmoriceau Jan 28, 2022
2e772e1
add heartbeating when setting up the TemporalAttemptExecution (#9854)
jrhizor Jan 28, 2022
720deaf
Bump Airbyte version from 0.35.11-alpha to 0.35.12-alpha (#9857)
octavia-squidington-iii Jan 28, 2022
cb69017
Source Salesforce: finish the sync with success if rate limit is reac…
augan-rymkhan Jan 28, 2022
f3fa7ad
Documentation: fix typo in configuring Airbyte (SECRET_PERSISTENCE) (…
alafanechere Jan 28, 2022
87a3055
Tweak dbt configuration parameters to reasonable values (#9846)
ChristopheDuong Jan 28, 2022
af38f95
:tada: destination pubsub - update fields in specifications (#9183)
igrankova Jan 28, 2022
8bde528
:tada: destination oracle - update fields in specifications (#9177)
igrankova Jan 28, 2022
a3b44ec
Documentation: using custom connectors (#9833)
alafanechere Jan 28, 2022
c8ee3f8
SAT: check for not allowed keywords `allOf`, `not` in connectors sche…
grubberr Jan 28, 2022
c51608a
add new platform-project-start-sprint workflow skeleton
pmossman Jan 28, 2022
537da16
configure temporal workflow execution ttl (#9838)
jrhizor Jan 28, 2022
57c8185
:tada: Destination oracle-strict-encrypt - update title description (…
midavadim Jan 28, 2022
2f41810
Verify source redshift schema selection in tests (#9862)
tuliren Jan 28, 2022
d70417a
Wrap the `hook-weight` value between double quotes (#9881)
mohamagdy Jan 28, 2022
5391880
🎉 Source and Destination Snowflake: Add jdbc_url_params support for o…
noahkawasakigoogle Jan 28, 2022
d566369
🐛 SAT: Fix test_oneof_usage fail #9860 (#9861)
keu Jan 28, 2022
028d0e2
Add logs (#9882)
benmoriceau Jan 28, 2022
c9b529c
Add the Graveyarded HTTP Request back to docs (#9451)
avaidyanatha Jan 29, 2022
479f0d7
[MVP] Integrate sentry to all java-based connectors (#9745)
alexandertsukanov Jan 30, 2022
a094142
Format code (#9892)
tuliren Jan 30, 2022
c873898
Fix datamodel_code_generator exception in connector build (#9894)
tuliren Jan 30, 2022
8f22595
Allow updating workspace names (#9686)
timroes Jan 31, 2022
0b1b75b
🐛 Source Delighted: output only records in which cursor field is grea…
Zirochkaa Jan 31, 2022
65c37e4
update doc with list of new config tables (#9511)
subodh1810 Jan 31, 2022
27b5ba3
:tada: Source Looker: Migrate to native CDK (#9609)
antixar Jan 31, 2022
94d74bb
Add Streamr destination document (#9155)
thanhlmm Jan 31, 2022
5fd3292
Add Jenkins source from Faros AI to connector catalog (#7837)
cjwooo Jan 31, 2022
c554322
Include DO one-click deployment option (#9803) (#9914)
harshithmullapudi Jan 31, 2022
a8135dd
Revert "Add Jenkins source from Faros AI to connector catalog (#7837)…
harshithmullapudi Jan 31, 2022
df332c7
Revert "Add Streamr destination document (#9155)" (#9918)
harshithmullapudi Jan 31, 2022
fcd0614
Change branch name (#9910)
ChristopheDuong Jan 31, 2022
abf383f
Update fields in source-connectors specifications: postgres (#9807)
grubberr Jan 31, 2022
fd6c312
Bump Airbyte version from 0.35.12-alpha to 0.35.13-alpha (#9911)
octavia-squidington-iii Jan 31, 2022
1096a5a
remove unused github workflow
pmossman Jan 31, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.35.9-alpha
current_version = 0.35.13-alpha
commit = False
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-[a-z]+)?
Expand Down
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


### SHARED ###
VERSION=0.35.9-alpha
VERSION=0.35.13-alpha

# When using the airbyte-db via default docker image
CONFIG_ROOT=/data
Expand Down
1 change: 0 additions & 1 deletion .env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,3 @@ SYNC_JOB_MAX_TIMEOUT_DAYS=3

# Sentry
SENTRY_DSN=""

34 changes: 34 additions & 0 deletions .github/workflows/platform-project-automation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# See https://github.com/marketplace/actions/project-beta-automations for guidance

name: Platform Project Automation
on:
issues:
types: [labeled]

env:
GH_PROJECT_TOKEN: ${{ secrets.PARKER_PAT_FOR_PLATFORM_PROJECT_AUTOMATION }}
ORG: airbytehq
PROJECT_ID: 6 # https://github.com/orgs/airbytehq/projects/6/views/8
FIELD_STATUS: Status
STATUS_TODO: Todo
FIELD_DATE_ADDED: Date Added

jobs:
add-area-platform-issues-to-platform-project:
runs-on: ubuntu-latest
name: Add area/platform issue to Platform Project
steps:
- name: Set current date env var
id: set_date
run: echo ::set-output name=CURRENT_DATE::$(date +'%Y-%m-%dT%H:%M:%S%z')

- name: Add issue to project if labelled with area/platform
uses: leonsteinhaeuser/project-beta-automations@v1.1.0
if: contains(github.event.issue.labels.*.name, 'area/platform')
with:
gh_token: ${{ env.GH_PROJECT_TOKEN }}
organization: ${{ env.ORG }}
project_id: ${{ env.PROJECT_ID }}
resource_node_id: ${{ github.event.issue.node_id }}
operation_mode: custom_field
custom_field_values: '[{\"name\": \"Status\",\"type\": \"single_select\",\"value\": \"${{ env.STATUS_TODO }}\"},{\"name\": \"${{ env.FIELD_DATE_ADDED }}\",\"type\": \"date\",\"value\": \"${{ steps.set_date.outputs.CURRENT_DATE }}\"}]'
113 changes: 113 additions & 0 deletions .github/workflows/publish-external-command.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Publish External Connector Image
on:
workflow_dispatch:
inputs:
connector:
description: "Airbyte Connector image"
required: true
version:
description: "Airbyte Connector version"
required: true
comment-id:
description: "The comment-id of the slash command. Used to update the comment with the status."
required: false

jobs:
## Gradle Build
# In case of self-hosted EC2 errors, remove this block.
start-publish-image-runner:
name: Start Build EC2 Runner
runs-on: ubuntu-latest
outputs:
label: ${{ steps.start-ec2-runner.outputs.label }}
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
steps:
- name: Checkout Airbyte
uses: actions/checkout@v2
with:
repository: ${{github.event.pull_request.head.repo.full_name}} # always use the branch's repository
- name: Start AWS Runner
id: start-ec2-runner
uses: ./.github/actions/start-aws-runner
with:
aws-access-key-id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
github-token: ${{ secrets.SELF_RUNNER_GITHUB_ACCESS_TOKEN }}
# 80 gb disk
ec2-image-id: ami-0d648081937c75a73
publish-image:
needs: start-publish-image-runner
runs-on: ${{ needs.start-publish-image-runner.outputs.label }}
environment: more-secrets
steps:
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@master
with:
service_account_key: ${{ secrets.SPEC_CACHE_SERVICE_ACCOUNT_KEY }}
export_default_credentials: true
- name: Link comment to workflow run
if: github.event.inputs.comment-id
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ github.event.inputs.comment-id }}
body: |
> :clock2: ${{github.event.inputs.connector}} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
- name: Checkout Airbyte
uses: actions/checkout@v2
with:
repository: ${{github.event.pull_request.head.repo.full_name}} # always use the branch's repository
- run: |
echo "$SPEC_CACHE_SERVICE_ACCOUNT_KEY" > spec_cache_key_file.json && docker login -u airbytebot -p ${DOCKER_PASSWORD}
./tools/integrations/manage.sh publish_external ${{ github.event.inputs.connector }} ${{ github.event.inputs.version }}
name: publish ${{ github.event.inputs.connector }}
id: publish
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
# Oracle expects this variable to be set. Although usually present, this is not set by default on Github virtual runners.
TZ: UTC
- name: Add Success Comment
if: github.event.inputs.comment-id && success()
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ github.event.inputs.comment-id }}
body: |
> :white_check_mark: ${{github.event.inputs.connector}} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
- name: Add Failure Comment
if: github.event.inputs.comment-id && !success()
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ github.event.inputs.comment-id }}
body: |
> :x: ${{github.event.inputs.connector}} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
- name: Slack Notification - Failure
if: failure()
uses: rtCamp/action-slack-notify@master
env:
SLACK_WEBHOOK: ${{ secrets.BUILD_SLACK_WEBHOOK }}
SLACK_USERNAME: Buildozer
SLACK_ICON: https://avatars.slack-edge.com/temp/2020-09-01/1342729352468_209b10acd6ff13a649a1.jpg
SLACK_COLOR: DC143C
SLACK_TITLE: "Failed to publish connector ${{ github.event.inputs.connector }} from branch ${{ github.ref }}"
SLACK_FOOTER: ""
# In case of self-hosted EC2 errors, remove this block.
stop-publish-image-runner:
name: Stop Build EC2 Runner
needs:
- start-publish-image-runner # required to get output from the start-runner job
- publish-image # required to wait when the main job is done
runs-on: ubuntu-latest
if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: Stop EC2 runner
uses: machulav/ec2-github-runner@v2
with:
mode: stop
github-token: ${{ secrets.SELF_RUNNER_GITHUB_ACCESS_TOKEN }}
label: ${{ needs.start-publish-image-runner.outputs.label }}
ec2-instance-id: ${{ needs.start-publish-image-runner.outputs.ec2-instance-id }}
1 change: 1 addition & 0 deletions .github/workflows/slash-commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
test
test-performance
publish
publish-external
publish-cdk
gke-kube-test
run-specific-test
Expand Down
10 changes: 9 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,17 @@ repos:
rev: 21.11b1
hooks:
- id: black
args: ["--line-length=140"]
- repo: https://github.com/timothycrosley/isort
rev: 5.10.1
hooks:
- id: isort
args: ["--dont-follow-links", "--jobs=-1"]
args:
[
"--settings-path=tools/python/.isort.cfg",
"--dont-follow-links",
"--jobs=-1",
]
additional_dependencies: ["colorama"]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.5.0
Expand All @@ -34,12 +40,14 @@ repos:
rev: v0.0.1a2.post1
hooks:
- id: pyproject-flake8
args: ["--config=tools/python/.flake8"]
additional_dependencies: ["mccabe"]
alias: flake8
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.910-1
hooks:
- id: mypy
args: ["--config-file=tools/python/.mypy.ini"]
exclude: |
(?x)^.*(
octavia-cli/unit_tests/|
Expand Down
38 changes: 37 additions & 1 deletion airbyte-api/src/main/openapi/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ info:
* All backwards incompatible changes will happen in major version bumps. We will not make backwards incompatible changes in minor version bumps. Examples of non-breaking changes (includes but not limited to...):
* Adding fields to request or response bodies.
* Adding new HTTP endpoints.
* All `web_backend` APIs are not considered public APIs and are not guaranteeing backwards compatibility.

version: "1.0.0"
title: Airbyte Configuration API
Expand Down Expand Up @@ -53,7 +54,9 @@ tags:
- name: db_migration
description: Database migration related resources.
- name: web_backend
description: Connection between sources and destinations.
description: |
Endpoints for the Airbyte web application. Those APIs should not be called outside the web application implementation and are not
guaranteeing any backwards compatibility.
- name: health
description: Healthchecks
- name: deployment
Expand Down Expand Up @@ -182,6 +185,29 @@ paths:
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/update_name:
post:
tags:
- workspace
summary: Update workspace name
operationId: updateWorkspaceName
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceUpdateName"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/tag_feedback_status_as_done:
post:
tags:
Expand Down Expand Up @@ -1969,6 +1995,16 @@ components:
type: boolean
feedbackDone:
type: boolean
WorkspaceUpdateName:
type: object
required:
- workspaceId
- name
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
WorkspaceUpdate:
type: object
required:
Expand Down
4 changes: 2 additions & 2 deletions airbyte-bootloader/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ ENV APPLICATION airbyte-bootloader

WORKDIR /app

ADD bin/${APPLICATION}-0.35.9-alpha.tar /app
ADD bin/${APPLICATION}-0.35.13-alpha.tar /app

ENTRYPOINT ["/bin/bash", "-c", "${APPLICATION}-0.35.9-alpha/bin/${APPLICATION}"]
ENTRYPOINT ["/bin/bash", "-c", "${APPLICATION}-0.35.13-alpha/bin/${APPLICATION}"]
2 changes: 2 additions & 0 deletions airbyte-bootloader/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ dependencies {
implementation project(':airbyte-db:lib')
implementation project(":airbyte-json-validation")
implementation project(':airbyte-scheduler:persistence')
implementation project(':airbyte-scheduler:models')

implementation 'io.temporal:temporal-sdk:1.6.0'
implementation "org.flywaydb:flyway-core:7.14.0"

testImplementation "org.testcontainers:postgresql:1.15.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
package io.airbyte.bootloader;

import com.google.common.annotations.VisibleForTesting;
import io.airbyte.commons.features.EnvVariableFeatureFlags;
import io.airbyte.commons.features.FeatureFlags;
import io.airbyte.commons.resources.MoreResources;
import io.airbyte.commons.version.AirbyteVersion;
import io.airbyte.config.Configs;
Expand All @@ -19,9 +21,14 @@
import io.airbyte.db.instance.configs.ConfigsDatabaseMigrator;
import io.airbyte.db.instance.jobs.JobsDatabaseInstance;
import io.airbyte.db.instance.jobs.JobsDatabaseMigrator;
import io.airbyte.scheduler.models.Job;
import io.airbyte.scheduler.models.JobStatus;
import io.airbyte.scheduler.persistence.DefaultJobPersistence;
import io.airbyte.scheduler.persistence.JobPersistence;
import io.airbyte.validation.json.JsonValidationException;
import io.temporal.client.WorkflowClient;
import io.temporal.serviceclient.WorkflowServiceStubs;
import io.temporal.serviceclient.WorkflowServiceStubsOptions;
import java.io.IOException;
import java.util.Optional;
import java.util.UUID;
Expand All @@ -47,10 +54,12 @@ public class BootloaderApp {

private final Configs configs;
private Runnable postLoadExecution;
private FeatureFlags featureFlags;

@VisibleForTesting
public BootloaderApp(Configs configs) {
public BootloaderApp(Configs configs, FeatureFlags featureFlags) {
this.configs = configs;
this.featureFlags = featureFlags;
}

/**
Expand All @@ -61,9 +70,10 @@ public BootloaderApp(Configs configs) {
* @param configs
* @param postLoadExecution
*/
public BootloaderApp(Configs configs, Runnable postLoadExecution) {
public BootloaderApp(Configs configs, Runnable postLoadExecution, FeatureFlags featureFlags) {
this.configs = configs;
this.postLoadExecution = postLoadExecution;
this.featureFlags = featureFlags;
}

public BootloaderApp() {
Expand All @@ -80,6 +90,7 @@ public BootloaderApp() {
e.printStackTrace();
}
};
featureFlags = new EnvVariableFeatureFlags();
}

public void load() throws Exception {
Expand Down Expand Up @@ -207,4 +218,16 @@ private static void runFlywayMigration(final Configs configs, final Database con
}
}

private static void cleanupZombies(final JobPersistence jobPersistence) throws IOException {
final Configs configs = new EnvConfigs();
WorkflowClient wfClient =
WorkflowClient.newInstance(WorkflowServiceStubs.newInstance(
WorkflowServiceStubsOptions.newBuilder().setTarget(configs.getTemporalHost()).build()));
for (final Job zombieJob : jobPersistence.listJobsWithStatus(JobStatus.RUNNING)) {
LOGGER.info("Kill zombie job {} for connection {}", zombieJob.getId(), zombieJob.getScope());
wfClient.newUntypedWorkflowStub("sync_" + zombieJob.getId())
.terminate("Zombie");
}
}

}
Loading