ordway-tap
This is a Singer tap that produces JSON-formatted data following the Singer spec.
This tap:
- Pulls raw data from OrdwayLabs
- Extracts the following resources:
- billing_runs
- billing_schedules
- charges
- chart_of_accounts
- contacts
- coupons
- credits
- customer_notes
- customers
- invoices
- orders
- payment_methods
- payment_runs
- payments
- plans
- products
- refunds
- revenue_rules
- revenue_schedules
- statements
- subscriptions
- usages
- webhooks
- Outputs the schema for each resource
- Incrementally pulls data based on the input state
Installation
Requirements
- Python 3.6+
- mkvirtualenv
- pip
Steps
Run following commands on terminal from the project directory
python3 -m venv ~/.virtualenvs/ordway-tap
source ~/.virtualenvs/ordway-tap/bin/activate
pip install -e .
To Run
$ source ~/.virtualenvs/ordway-tap/bin/activate
$ ordway-tap -c config.json --catalog catalog.json -s state.json
You can generate the catalog.json by following command:
$ ordway-tap -c config.json --discover > catalog.json
The sample config JSON is format is given below:
{
"api_credentials": {
"x_company": "Rocky",
"x_user_email": "me@example.com",
"x_user_token": "123usertoken",
"x_api_key": "123secret"
},
"start_date": "2019-12-01"
}
The start_date
indicates the data at which the tap should start syncing data when no bookmark exists in the state for that particular stream.
The following configuration keys are optional:
staging
- Whether or not to use the staging environment (staging.ordwaylabs.com)api_version
- Which Ordwaylabs API version to use (e.g. "v1")api_url
- An alternative URL to which the API requests will be made (e.g. "https://localhost:3000/v1/"). When specified, it will take precendence overstaging
andapi_version
.
The State JSON should be passed by user. The Tap will be printing the STATE message, the last state message should send when running next time.
Sample JSON:
{
"currently_syncing": "credits",
"bookmarks": {
"credits": {
"updated_date": "2020-11-14T05:59:48.842000Z"
}
}
}
Testing
- Install the dev extra requirements
pip install .[dev]
- Execute tox with the default environments:
py36
,py37
,py38
, andtype
(for static type checking via mypy)
tox
Additionally, you can generate a Coverage report by using the coverage
environment:
tox -e coverage
For more information on tox, please refer to its documentation.
Testing with singer-check-tap
singer-check-tap is a tool for testing whether or not a tap adheres to the Singer specification. For more information, please review its documentation.
- Install the singer-tools package
pip install singer-tools
- Execute singer-check-tap
singer-check-tap --tap ordway-tap --config config.json
In this mode, singer-check-tap will execute the tap itself, run it in discover mode to generate a catalog, perform a stateless run and a stateful run, and validate the tap's output.
If you need to test with a modified catalog, you can do so by piping the tap's output directly into singer-check-tap like so:
ordway-tap --config config.json --catalog catalog.json | singer-check-tap
Copyright © 2020 OrdwayLabs