- Fix Dependabot issue #77
- Don't add related_object to field_dict if unqueryable #73
- Skip saving schema for non-discoverable streams since replication key field is not available for export #72
- Code Refactoring #68
- Makes a non-exportable field as unsupported in catalog file during discovery phase
- Updates the
DELETE_NOT_SUPPORTED
streams for AQuA Api calls - Handles non-200 and non-retryable exceptions
- Replaces
get_children
XML function with list iterator to make the tap compatible with python v3.9.6
- Adds missing integration tests #67
- Skip 'BillingPreviewRun' stream since 'Id' field is not available for export #64
- Increase artificial timeout to 12 hrs to accommodate larger AQuA full table requests. #62
- Catch ApiExceptions for unavailable streams. #60
- Mark all HTTP responses with a 500 status code as retryable. #59
- Support endpoints for Zuora data centers that were initialized after September 2020 #58
- Change datetimes in REST queries to explicitly use UTC #56
- Handle non-rectangular CSV files by getting a new stateful AQuA session on the next sync #54
- Delete AQuA API discovery exports when they are no longer needed, to reduce concurrency of jobs. #53
- Add exponential backoff to AQuA requests for 429 errors #53
- Fixed REST queries to use iso-8601 timestamp #50
- Syncs soft deleted records #48
- Remove
incremental_time
from aqua queries #34
- Add http request metrics
- TODO
- Add
time_extracted
to record messages commit
- Add timezone to ZOQL AQuA export queries #37
- Use T delimited date format for ZOQL AQuA export queries #35
- Detect non-rectangular CSV exports and error if found #33
- Log information about the details of an AQuA export to provide insight into
deleted
record behavior at a glance
- Updates the tuple access of the AQUA endpoint switch #31
- Update version of
requests
to2.20.0
in response to CVE 2018-18074
- Whether the Zuora instance is a sandbox or a European instance affects URL paths for AQUA #30
- When resuming sync from
file_ids
in the state, there's a chance that a file could be deleted. If this occurs, the tap will remove thefile_ids
state value and resume from the bookmark on the next run to ensure a full window of data #29
- (REST API) The tap will now reduce the query window in half in the event of a timeout until it cannot reduce it further (down to a single second) #28
- Adds retry to the requests Session object, in the event that a long-lasting TCP connection gets snapped by Zuora #27
- Fixes some bugs discovered where v1/export queries would fail selected certain fields #26
- Fixes a bug where a bad record with a null bookmark can wipe out the state #25
- (AQuA API) The tap will now retry immediately in the event of an export job's timeout
- State now tolerates a bookmark that is null, and will fall back to
start_date
in this case
- (AQuA API) Replace the job_id retry pattern with a query window reduction pattern when a single job takes longer than the timeout.
- Upgrade singer-python to 5.1.1
- Fixes a bug where the CSV reader can choke on CSV data containing null bytes #21
- Fixes bug where rest queries did not have a '.' between the name of a joined object and the field
- Bumps version of singer-python to 5.1.0
- Initial release to Stitch platform for production
- Adds ability for timed-out AQuA requests to continue to request the export in subsequent runs through the state
- Upgrade singer-python to 5.0.15
- Bumps version of singer-python to 5.0.14 to fix datetime strftime issues documented in #69
- Changes the discovery behavior to all any field to have a null value - not just "required" fields #17
- Fixes 'related-objects' to use metadata so tap knows which fields need to have a '.' added during the query
- Feature to use an object's
related-objects
data to add foreign keys to Zuora "Joined Objects" #12 - Bumps the version of singer-python to better support 2 digit date formatting #13
- Bumps the default timeout for Zuora Jobs from 60 minutes to 90 #14
- Fixes issue where non-discoverable stream threw an exception that caused the tap to crash #11
- Fixes bugs when trying to select deleted records from objects that do not support it and skips empty lines #10
- Adds and fixes some pylint #9
- Prevents errors when certain restricted objects attempt to query for deleted records #8
- Fixes a bug with AQuA queries being created incorrectly when deleted objects are desired #7
- Fixes a bug with accessing partner_id as the Client is being created #4
- Output the Zuora query to the log for visibility #5
- Adds Singer metadata to the Deleted field added for Zuora objects that support it #6
- Large rework of the Zuora Tap #3
- Rework the tap to support both the AQuA and REST API's.
- Allows the streaming of deleted Zuora data using the AQuA API.
- Adds support for Zuora Sandbox accounts and European accounts.