From 3c88dae80dcf3a1df3e0df338fb5ef7b081dcd82 Mon Sep 17 00:00:00 2001 From: maamoonhussain Date: Tue, 11 Feb 2025 03:00:40 +0000 Subject: [PATCH 1/3] chore: standardise on queryAll operation in Bulk API 2.0 --- tap_salesforce/salesforce/bulk2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tap_salesforce/salesforce/bulk2.py b/tap_salesforce/salesforce/bulk2.py index 330ec8e..0f7fd66 100644 --- a/tap_salesforce/salesforce/bulk2.py +++ b/tap_salesforce/salesforce/bulk2.py @@ -36,7 +36,7 @@ def _create_job(self, catalog_entry, state): query = self.sf._build_query_string(catalog_entry, start_date, order_by_clause=False) body = { - "operation": "query", + "operation": "queryAll", "query": query, } From fbdb07912c40e852ac1887beab0aadb75a8fd078 Mon Sep 17 00:00:00 2001 From: maamoonhussain Date: Tue, 11 Feb 2025 03:02:06 +0000 Subject: [PATCH 2/3] docs(README): clarify API types and queryAll operation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ebff2bf..37aa8b4 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ The `client_id` and `client_secret` keys are your OAuth Salesforce App secrets. The `start_date` is used by the tap as a bound on SOQL queries when searching for records. This should be an [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) formatted date-time, like "2018-01-08T00:00:00Z". For more details, see the [Singer best practices for dates](https://github.com/singer-io/getting-started/blob/master/BEST_PRACTICES.md#dates). -The `api_type` is used to switch the behavior of the tap between using Salesforce's "REST", "BULK" and "BULK 2.0" APIs. When new fields are discovered in Salesforce objects, the `select_fields_by_default` key describes whether or not the tap will select those fields by default. +The `api_type` is used to switch the behavior of the tap between using Salesforce's "REST", "BULK" and "BULK 2.0" APIs (each using the `queryAll` operation to include deleted and archived records). When new fields are discovered in Salesforce objects, the `select_fields_by_default` key describes whether or not the tap will select those fields by default. The `state_message_threshold` is used to throttle how often STATE messages are generated when the tap is using the "REST" API. This is a balance between not slowing down execution due to too many STATE messages produced and how many records must be fetched again if a tap fails unexpectedly. Defaults to 1000 (generate a STATE message every 1000 records). From f1cb1f74ce7766f77ddfc3cd94e5ddbab2201195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Tue, 11 Feb 2025 16:52:43 -0600 Subject: [PATCH 3/3] Bump version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d6c5031..c85cac0 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name="tap-salesforce", - version="1.8.0", + version="1.9.0", description="Singer.io tap for extracting data from the Salesforce API", author="Stitch", url="https://singer.io",