tap-zohosprints
is a Singer tap for ZohoSprints.
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-zohosprints
api_url: (Required) #Example (no trailing slash) https://sprintsapi.zoho.com/zsapi
oauth_url: (Required) #Example (no tailing slash) https://accounts.zoho.com/oauth/v2/token
client_id: (Required)
client_password: (Required)
refresh_token: (Required)
A full list of supported settings and capabilities for this tap is available by running:
tap-zohosprints --about
We need to get a client ID and Secret to setup our tap
- Goto https://api-console.zoho.com/ to create an API Client
- Click Add Client
- Create a "Self Client"
- Keep the client id and client secret handy for setting up the tap/target
- Generate a scoped code
- Click the Self client (in the api console)
- Generate Code tab
- Scope: ZohoSprints.teams.READ, ZohoSprints.projects.READ, ZohoSprints.epic.READ, ZohoSprints.sprints.READ, ZohoSprints.items.READ, ZohoSprints.projectsettings.READ, ZohoSprints.meetings.READ, ZohoSprints.timesheets.READ, ZohoSprints.release.READ, ZohoSprints.teamusers.READ, ZohoSprints.projectusers.READ
- Time Duration: 10 minutes or so
- Create, save this code for the refresh token step below
- Use your favorite tool to do adhoc HTTP Requests (I'm going to use PostMan for these steps)
- Create a post request to the URL: https://accounts.zoho.com/oauth/v2/token
- In the Body of the request you will need these x-www-form-urlencoded values
- code: (Generated from the Self Client)
- client_id: (Generated from the Self Client steps)
- client_secret: (Genereated from the Self Client steps)
- redirect_uri: https://localhost.com (This value doesn't matter for our use case but the api requires it)
- grant_type: authorization_code
- Copy the refresh_token that is generated for the tap
-
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-zohosprints
by itself or in a pipeline using Meltano.
tap-zohosprints --version
tap-zohosprints --help
tap-zohosprints --config CONFIG --discover > ./catalog.json
ZohoSprints api maps items to an object called Jobj, and {name}_prop
. Example here https://sprints.zoho.com/apidoc.html#Getitems. To help out with down stream parsing we decided to make a mapper that makes a record
object for streams that use the JObj idea.
For streams with JObj's used in the API, the objects are replaced with a record
object.
For more detailed information check out the property_unfurler()
function in client.py
pipx install poetry
poetry install
Create tests within the tap_zohosprints/tests
subfolder and
then run:
poetry run pytest
You can also test the tap-zohosprints
CLI interface directly using poetry run
:
poetry run tap-zohosprints --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-zohosprints
meltano install
Now you can test and orchestrate using Meltano:
# Test invocation:
meltano invoke tap-zohosprints --version
# OR run a test `elt` pipeline:
meltano elt tap-zohosprints target-jsonl
See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.