Danish Raza
02/05/2023, 3:53 PMSUB_BUILD=PLATFORM ./gradlew build
and then make docker up again.
This is such a productivity killer. i must be missing something. I already try to build only server ./gradlew :airbyte-server:build
also tried --continuous
flag so gradle keep building. But i must stop docker and start again to see it in effect. i guess i understand why docker needs to be restart so it can pick up new jar. but how to do API development in more easy/better way. Can someone please assist? I am trying to debug and create new API/methods. Thank you very much for your help in advance.Kacper Adler
02/06/2023, 1:50 PMNone
where I need empty list []
Ryan (Airbyte)
02/10/2023, 8:51 PMprasanth kuna
02/13/2023, 5:41 PMprasanth kuna
02/13/2023, 5:42 PMTmac Han
02/14/2023, 3:18 AMAkash Ghadge
02/14/2023, 9:01 AMBranson Buchanan
02/14/2023, 5:41 PMKayden Tang
02/15/2023, 6:24 PMMike Burns
02/15/2023, 10:07 PMairbyte-config/init/src/main/resources/seed/source_definitions.yaml
as documented here. I removed all local containers and volumes and started fresh with docker compose up
but my connector doesn't appear under "Settings > Sources". I tried running ./gradlew :airbyte-config:init:processResources
to add it manually but it fails, presumedly because it's looking for my custom connector Docker image in a GCP-hosted repository instead of my local images (see attached image). Is this expected/configurable?
2. I was able to install via the UI, but hit another snag after setting up the source when it attempted to fetch the source schema (see second screenshot). Running Airbyte in dev mode (as I mentioned here) resolved this, but I wouldn't think it would be necessary.
Thanks!Brian Lai (Airbyte)
02/16/2023, 4:25 AMairbyte-cdk:0.29.0
. This release contains a number of breaking changes that are intended to improve the overall usability of the language by reorganizing certain concepts, renaming, reducing some field duplication, and removal of fields that are seldom used. The Airbyte team has already worked to migrate all existing connectors in the Airbyte repository to support the changes to the language. However, connectors that are currently in-progress or that have not been merged as of Wednesday 2/15 will have to be adjusted to accommodate the new changes.
Here are a list of the major changes to components that might affect your manifests:
• We have renamed $options
to $parameters
• We have changed the notation for referencing other components to the JSON schema notation ($ref: "#/definitions/requester"
)
• We have deprecated the SimpleRetriever’s stream_slicer
in favor of two individual concepts.
• Stream’s will define an incremental_sync
field which is responsible for defining how we would support incremental syncs using a cursor field. DatetimeStreamSlicer
has been renamed to DatetimeBasedCursor
and can be used for this field.
• Retriever’s will now define a partition_router
field. We have renamed the remaining slicers to be called SubstreamPartitionRouter
and ListPartitionRouter
, both of which can be used here as they already have been.
• We’ve deprecated the CartesianProductStreamSlicer because partition_router
can accept a list of values and will generate that same cartesian product
• DefaultPaginator no longer has a url_base
field. Moving forward, paginators will derive the url_base
from the HttpRequester. There are some unique cases for connectors that implement a custom Retriever, which I can go into more detail if necessary.
• primary_key
and name
no longer need to be defined on Retrievers or Requesters. They will be derived from the stream’s definition
• Stream’s no longer define a stream_cursor_field
and will derive it from the incremental_sync
. checkpoint_interval
has also been deprecated
• DpathExtractor field_pointer
has been renamed field_path
• We no longer allow for using RequestOption
with inject_into
set to path. We now have a dedicated RequestPath
component moving forward.
In addition, a change was released a couple of weeks ago where we are now validating manifests against the declarative_component_schema.yaml which is a handwritten schema maintained by our team. You can use that file as a reference document as you write or update manifests.
Thank you being contributors and early access users of the low-code framework and please feel free to reach out to the Airbyte team if you run into issues migrating your in flight connectors and we will try to help ease the process or point you towards sample connectors for your use case.Alexander Schmidt
02/16/2023, 4:57 PMHenri Blancke
02/21/2023, 3:36 PMv0.40.32
we noticed that all keys in the airbyte record data passed to our destination now comes in as strings. For example for zendesk_support schedules
, pre v0.40.32
we see schedules come from record.data
as (notice that id, start and end time are all ints):
{'id': 1260800006989, 'name': 'M-F 9-5pm PT', 'time_zone': 'US', 'created_at': '2021-04-22T00:32:27Z', 'updated_at': '2022-12-31T01:06:17Z', 'intervals': [{'start_time': 1800, 'end_time': 2460}, {'start_time': 3240, 'end_time': 3900}, ...]}
now they come in as strings:
{'id': '1260800006989', 'name': 'M-F 9-5pm PT', 'time_zone': 'US', 'created_at': '2021-04-22T00:32:27Z', 'updated_at': '2022-12-31T01:06:17Z', 'intervals': [{'start_time': '1800', 'end_time': '2460'}, {'start_time': '3240', 'end_time': '3900'}, ...]}
It is causing issues in our destination. Is that the expected behavior now? Thanks for the help 🙏Mark Nuttall-Smith
02/23/2023, 8:46 AMwrite_discover_catalog_result
endpoint requires a configurationHash
that I don't know how to create. (The docs for `write_discover_catalog_result` also say "Should only called from worker", so I assume I'm doing something wrong).
Can anybody give me some pointers how to either generate the source config hash, or if there is a better way to update the source definition?
(ps. I know this is not strictly a CDK question, and more about the usage of the API, but I hoped I might get a better answer from this channel 🙏)Josh Jeffries
02/24/2023, 3:12 PMJosh Jeffries
02/26/2023, 5:56 PM{
"url": "<https://api.jobadder.com/v2/users>",
"parameters": {
"updatedAt": [
">2000-01-05T00:00:00Z"
],
"include": [
"inactive, deleted"
]
},
"body": null,
"headers": {
"User-Agent": "python-requests/2.28.2",
"Accept-Encoding": "gzip, deflate",
"Accept": "*/*",
"Connection": "keep-alive",
"Authorization": "Bearer 86f6f5d182afa48305d9ea85a439d1b9"
},
"http_method": "GET"
}
the updatedAt and the include are specified request parameters, on the next page the request looks like
{
"url": "<https://eu2api.jobadder.com/v2/users>",
"parameters": {
"updatedAt": [
">2000-01-05T00:00:00Z",
">2000-01-05T00:00:00Z"
],
"include": [
"Inactive",
"Deleted",
"inactive, deleted"
],
"offset": [
"100"
]
},
"body": null,
"headers": {
"User-Agent": "python-requests/2.28.2",
"Accept-Encoding": "gzip, deflate",
"Accept": "*/*",
"Connection": "keep-alive",
"Authorization": "Bearer 86f6f5d182afa48305d9ea85a439d1b9"
},
"http_method": "GET"
}
and again on the next one its
{
"url": "<https://eu2api.jobadder.com/v2/users>",
"parameters": {
"updatedAt": [
">2000-01-05T00:00:00Z",
">2000-01-05T00:00:00Z",
">2000-01-05T00:00:00Z"
],
"include": [
"Inactive",
"Deleted",
"Inactive",
"Deleted",
"inactive, deleted"
],
"offset": [
"200"
]
},
"body": null,
"headers": {
"User-Agent": "python-requests/2.28.2",
"Accept-Encoding": "gzip, deflate",
"Accept": "*/*",
"Connection": "keep-alive",
"Authorization": "Bearer 86f6f5d182afa48305d9ea85a439d1b9"
},
"http_method": "GET"
}
also related it doesn't seem to be passing through the page_size eitherMassy Bourennani
02/28/2023, 3:07 PMairbyte_emitted_at
set for every record ?Alex Stenlake
03/01/2023, 5:07 AMKirsten Hipolito
03/01/2023, 9:23 AMM. Farahmand
03/02/2023, 7:31 AMBruno Milagre
03/02/2023, 10:07 AMBart Veenstra
03/02/2023, 1:20 PMgradle test
, but that option is not ideal, as I don’t wish to escape my IDE 😄Bart Veenstra
03/02/2023, 1:20 PMBart Veenstra
03/03/2023, 12:48 PMBruno Milagre
03/03/2023, 1:30 PMEmma Forman Ling
03/06/2023, 6:54 PMAdham Suliman
03/07/2023, 7:43 PMrequest_body_data
. This is great for a full refresh, but again, I’d like to build an incremental build. Does anyone know of a dynamic way to insert data into response_body_data
?
In the image attached, I show the configuration that works. I’ve attempted to execute the line before last (commented out) which has a dynamic variable, but I can’t get the timestamp to render. Instead, I see no data passed on to the request whereas I can see the entire query when using line 81.Tony Xiao
03/08/2023, 12:14 PMDanish Raza
03/08/2023, 6:42 PM