- Re-read the Bulk API session token for each result file so downloads longer than the token refresh interval no longer fail with
InvalidSessionId#222
- Optimize discovery by using composite batch API #218
- Bump requests library to 2.33.0 #217
- Support OAuth refresh token rotation #216
- Bump singer-python to
6.8.0and update tests to use renamed state keyversions#210
- Bug fix for empty state key error in build_state function #209
- Update the build_state function to preserve state information other than bookmarks #207
- Update to new singer-python state functions and keep activate_versions separate from bookmarks in state #202
- Writes bookmarks of sync start time if no records are synced #198
- Fall back to string NAN/infinity for nan/inf float values #200
- Simplify
forced-replication-methodmetadata #194 - Add latest versions for dependencies #195
- Remove select_fields_by_default from required config keys [197] (#197)
- Bump dependency versions for twistlock compliance
- Update tests to fix circleci build = #187
- Add backoff for 406 Client Error #184
- Upgrade salesforce API version
52.0to61.0, details #184
- Fix
_can_pk_chunk_jobcondition, details: #176
- Fix the LightningUriEvent stream primary key #163
- Dependabot update #158
- Add Lookback Window advanced config option for incremental syncs #135
- Handle muliline critical error messages #137
- Fix interruptible full table bookmarking strategy for bulk API #138
- Add Date Windowing #140
- Increase request timeout to 5 minutes from 30 seconds to support certain objects that take a bit longer to return during discovery in some cases #126
- Added a condition to make sure batches are not empty list within a given job ID #124
- Forces
LightningUriEvent,UriEvent,LogoutEvent,ReportEventstreams to full table replication #123
- Captures
stateMessageattribute for PK-Chunked batches that fail to process and persists it through a modified exception #120
- Bumps Salesforce api from v41 to v52, this includes new streams and some permission changes on existing streams #116
- Add a 30 second timeout to all requests #114
- Makes timer thread a daemon thread so that when main thread exits it's ensured that the process exits #112
- Remove support for FieldHistoryArchive because we don't query for it properly #101
- Modifies error message for OPERATION_TOO_LARGE errors #98
- Modifies sync stream error message format #96
- added NetworkUserHistory to objects blacklist #86
- Add DataType to the set of QUERY_INCOMPATIBLE objects to sync #84
- Force LoginEvent to have a replication method of Full Table #80
- Extend bulk API PK chunking trigger to cover more error messages #76
- Mark
locationtype fields as unsupported with the Bulk API #75
- Check for bulk API permissions during discovery #70
- Mark
SiteDetailas query-incompatible #68
- Integer fields in BULK API responses with a value of
'0.0'will now be converted to'0'#67
- Improve error messaging when login fails #66
- Mark
Announcementas query-incompatible #64
- Mark json fields as
unsupportedinstead of throwing exception. If, in the future, we find streams with json fields that have records, we can consider supporting the json field type. commit
- Protect against empty strings for quota config fields commit
- Filter out *ChangeEvent tables from discovery as neither REST nor BULK can sync them #62
- Move the transformer outside of the record write-loop to quiet logging #61
- (Bulk Rest API) Sync the second half of the date range After a timeout occurs and the date window is halved #60
- (Bulk API) Removes failed jobs that don't exists in Salesforce from state when encountered #57
- (All APIs) Makes
BackgroundOperationResultsync full table, since it cannot be sorted byCreatedDate#58 - Update version of
requeststo2.20.0in response to CVE 2018-18074 #59
- Increases the
field_size_limiton the CSV reader to enable larger fields coming through without error #53
- Adds the suffix "FieldHistory" to those checked for when finding the parent object to fix the
OpportunityFieldHistorystream #52
- Fixes a few bugs with PK chunking including allowing a custom table to be chunked by its parent table #51
- Added a correct else condition to fix an error being raised during the PK Chunking query #50
- Updated the usage of singer-python's Transformer to reduce its scope #48
- Updated the JSON schema generated for Salesforce Date types to use
anyOfso when a bad date comes through we use the String instead #47
- Bug fix for metadata when resuming bulk sync jobs.
- Moved ContentFolderItem to query restricted objects list since the REST API requires specific IDs to query this object.
- Read replication-method, replication-key from metadata instead of Catalog. Publish key-properties as table-key-properties metadata instead of including on the Catalog.
- Fixes logging output when an HTTP error occurs
- Bumps singer-python dependency to help with formatting dates < 1000
- Fixes a bug with datetime conversion during the generation of the SF query string #40
- Fixes more bugs with exception handling where the REST API was not capturing the correct error #39
- Fixes a schema issue with 'location' fields that come back as JSON objects #36
- Fixes a bug where a
"version"in the state would not be preserved due to truthiness #37 - Fixes a bug in exception handling where rendering an exception as a string would cause an additional exception #38
- Fixes automatic property selection when select-fields-by-default is true #35
- Adds the
AttachedContentNoteandQuoteTemplateRichTextDataobjects to the list of query-incompatible Salesforce objects so they are excluded from discovery / catalogs #34
- Adds backoff for the
_make_requestfunction to prevent failures in certain cases #33
- Adds detection for certain SF Objects whose parents can be used as the parent during PK Chunking #32
- Fixes a logic bug in the build_state function
- Improves upon streaming bulk results by first writing the file to a tempfile and then consuming it #31
- Updates the retrieval of a bulk result set to be downloaded entirely instead of streaming #30
- Removes
multipleOfJSON Schema parameters for latitude / longitude fields that are part of an Address object
- Adds a check to make sure the start_date has time information associated with it
- Adds more robust parsing for select_fields_by_default
- Fixes a bug with running the tap when provided a Catalog containing streams without a replication key #27
- Bumps the dependency singer-python's version to 5.0.4
- Fixes a bug where bookmark state would not get set after resuming a PK Chunked Bulk Sync #24
- Adds additional logging and state management during a PK Chunked Bulk Sync
- Fixes a bad variable name
- Uses the correct datetime to string function for chunked bookmarks
- Adds a feature for resuming a PK-Chunked Bulk API job #22
- Fixes an issue where a Salesforce's field data containing NULL bytes would cause an error reading the CSV response #21
- Fixes an issue where the timed
login()thread could die and never call a new login #20
- Fixes a bug with with yield records when the Bulk job is successful #19
- Fixes a bug with a missing pk_chunking attribute
- Adds support for Bulk API jobs which time out to be retried with Salesforce's PK Chunking feature enabled
- Allows compound fields to be supported with the exception of "address" types
- Adds additional unsupported Bulk API Objects
- Support for time_extracted property on Singer messages
- Initial release