tap-zoho-inventory
is a Singer tap for zoho-inventory.
Built with the Meltano Tap SDK for Singer Taps.
-
Developer TODO:
Update the below as needed to correctly describe the install procedure. For instance, if you do not have a PyPi repo, or if you want users to directly install from your git repo, you can modify this step as appropriate.
pipx install tap-zoho-inventory
- Zoho Inventory API Docs
- Its a fairly annoying API to work with given the OAuth2 authorization. However, once a
refresh_token
is acquired it is somewhat straight forward. 1. To get arefresh_token
(non-expiring token used to getaccess_tokens
) you need to create acode
. Visit: Zoho API Console and enter:ZohoInventory.FullAccess.all
for both "Scope" and "Scope Description". May as well up the time duration to 10 minutes. Run the follow command to getaccess_token
andrefresh_token
with the code (replace{{code}}
,{{redirect_uri}}
,{{client_id}}
,{{client_secret}}
with the values from the API Console)
curl --location 'https://accounts.zoho.com/oauth/v2/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'code={{code}}' \ --data-urlencode 'redirect_uri={{redirect_uri}}' \ --data-urlencode 'client_id={{client_id}}' \ --data-urlencode 'client_secret={{client_secret}}' \ --data-urlencode 'grant_type=authorization_code' \ --data-urlencode 'scope=ZohoInventory.FullAccess.all'
- Take the
refresh_token
and add runmeltano config tap-zoho-inventory set --interactive
. Set token values as needed (refresh_token
andaccess_token
).
- To view all the parameters for a
tap
runmeltano select <tap> --list --all
- To invoke the tap (don't push data to a
loader
), runmeltano invoke tap-zoho-inventory
and the data will be outputted to./output/out.jsonl
-
Developer TODO:
Provide a list of config options accepted by the tap.
A full list of supported settings and capabilities for this tap is available by running:
tap-zoho-inventory --about
This Singer tap will automatically import any environment variables within the working directory's
.env
if the --config=ENV
is provided, such that config values will be considered if a matching
environment variable is set either in the terminal context or in the .env
file.
-
Developer TODO:
If your tap requires special access on the source system, or any special authentication requirements, provide those here.
You can easily run tap-zoho-inventory
by itself or in a pipeline using Meltano.
tap-zoho-inventory --version
tap-zoho-inventory --help
tap-zoho-inventory --config CONFIG --discover > ./catalog.json
-
Developer TODO:
As a first step, scan the entire project for the text "TODO:
" and complete any recommended steps, deleting the "TODO" references once completed.
pipx install poetry
poetry install
Create tests within the tap_zoho_inventory/tests
subfolder and
then run:
poetry run pytest
You can also test the tap-zoho-inventory
CLI interface directly using poetry run
:
poetry run tap-zoho-inventory --help
Testing with Meltano
Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.
Your project comes with a custom meltano.yml
project file already created. Open the meltano.yml
and follow any "TODO" items listed in
the file.
Next, install Meltano (if you haven't already) and any needed plugins:
# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-zoho-inventory
meltano install
Now you can test and orchestrate using Meltano:
# Test invocation:
meltano invoke tap-zoho-inventory --version
# OR run a test `elt` pipeline:
meltano elt tap-zoho-inventory target-jsonl
See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.