`tap-totango` is a Singer tap for the Totango API, built with the Meltano Singer SDK.
Project description
tap-totango
tap-totango
is a Singer tap for the Totango API. It extracts data from the Search API accounts, users, and events endpoints.
Built with the Meltano Tap SDK for Singer Taps.
Installation
Install from PyPi:
pipx install tap-totango
Install from BitBucket:
pipx install git+https://bitbucket.org/indiciumtech/tap-totango.git@main
Configuration
Accepted Config Options
A full list of supported settings and capabilities in a reasonably readable form for this tap is available by running:
tap-totango --about --format=json
Each endpoint from the Totango Search API requires some parameters with the same name for the query, such as terms
, count
, and offset
. In these cases, we provide settings namespaced by the stream name (e.g. accounts_terms
, users_offset
, etc.).
settings_group_validation: # An array of arrays listing the minimal valid group of settings required to use the connector
- - api_url
- auth_token
- events_terms
- events_count
- events_offset
- accounts_terms
- accounts_fields
- users_terms
- users_fields
settings:
- name: api_url
description: |
The url for the API services.
https://api.totango.com is for US services, whereas https://api-eu1.totango.com is for EU services.
documentation: https://support.totango.com/hc/en-us/articles/360048132792-Search-API-events-
kind: string
value: https://api.totango.com
- name: auth_token
description: |
The token to authenticate against the API service.
documentation: https://support.totango.com/hc/en-us/articles/203036939-Personal-Access-Token-and-Service-ID
kind: password
- name: events_terms
description: |
An array containing filter conditions to use for the events stream search.
documentation: https://support.totango.com/hc/en-us/articles/360048132792-Search-API-events-
kind: array
value: []
- name: events_count
description: |
The maximum number of accounts to return in the events result set.
The max. value for count is `1000`.
documentation: https://support.totango.com/hc/en-us/articles/360048132792-Search-API-events-
kind: integer
value: 1000
- name: events_offset
description: |
Page number (0 is the 1st-page).
documentation: https://support.totango.com/hc/en-us/articles/360048132792-Search-API-events-
kind: integer
value: 0
- name: account_id
description: |
Filter the events stream results for a specific account.
documentation: https://support.totango.com/hc/en-us/articles/360048132792-Search-API-events-
kind: string
- name: accounts_terms
description: |
An array containing filter conditions to use for the accounts stream search.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: array
value: []
- name: accounts_fields
description: |
List of fields to return as results.
Note that the account name and account-id are always returned as well.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: array
value: []
- name: accounts_count
description: |
The maximum number of accounts to return in the accounts result set.
The max. value for count is 1000.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: integer
value: 1000
- name: accounts_offset
description: |
Record number (0 states "start at record 0").
The record size can be defined using the count parameter (and limited to 1000).
Tip: To page through results, ask for 1000 records (count: 1000). If you receive 1000 records, assume there’s more, in which case you want to pull the next 1000 records (offset: 1000…then 2000…etc.). Repeat paging until the number of records returned is less than 1000.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: integer
value: 0
- name: accounts_sort_by
description: |
Field name to sort the accounts stream results set by.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: string
value: "display_name"
- name: accounts_sort_order
description: |
Order to sort the accounts stream results set by.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: string
value: "ASC"
- name: users_terms
description: |
An array containing filter conditions to use for the users stream search.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: array
value: []
- name: users_fields
description: |
List of fields to return as results.
Note that the account name and account-id are always returned as well.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: array
value: []
- name: users_count
description: |
The maximum number of accounts to return in the users result set.
The max. value for count is 1000.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: integer
value: 1000
- name: users_offset
description: |
Record number (0 states "start at record 0").
The record size can be defined using the count parameter (and limited to 1000).
Tip: To page through results, ask for 1000 records (count: 1000). If you receive 1000 records, assume there’s more, in which case you want to pull the next 1000 records (offset: 1000…then 2000…etc.). Repeat paging until the number of records returned is less than 1000.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: integer
value: 0
- name: users_sort_by
description: |
Field name to sort the users stream results set by.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: string
value: "display_name"
- name: users_sort_order
description: |
Order to sort the users stream results set by.
documentation: https://support.totango.com/hc/en-us/articles/204174135-Search-API-accounts-and-users-
kind: string
value: "ASC"
Configure using environment variables
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.
Source Authentication and Authorization
You should create a Totango API personal access token and provide it as the auth_token
setting for the tap.
We recommend passing it as an environment variable. For instance, when using the tap with Meltano you should add the following line to your .env
file:
export TAP_TOTANGO_AUTH_TOKEN=< YOUR_PERSONAL_ACCESS_TOKEN >
Usage
You can easily run tap-totango
by itself or in a pipeline using Meltano.
Executing the Tap Directly
tap-totango --version
tap-totango --help
tap-totango --config CONFIG --discover > ./catalog.json
Developer Resources
Follow these instructions to contribute to this project.
Initialize your Development Environment
pipx install poetry
poetry install
Create and Run Tests
Create tests within the tests
subfolder and
then run:
poetry run pytest
You can also test the tap-totango
CLI interface directly using poetry run
:
poetry run tap-totango --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.
Next, install Meltano (if you haven't already) and any needed plugins:
# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-totango
meltano install
Now you can test and orchestrate using Meltano:
# Test invocation:
meltano invoke tap-totango --version
# OR run a test `elt` pipeline:
meltano elt tap-totango target-jsonl
SDK Dev Guide
See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.
Acknowledgements
Edson Nogueira thanks all members of the Meltaners group @ Indicium Tech, namely Cesar Rubim, Lucas Marques, Guilherme Tavares e Igor Benincá, for the professional guidance.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tap_totango-0.5.0.tar.gz
.
File metadata
- Download URL: tap_totango-0.5.0.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/5.19.0-42-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fd18e02042858260dfdda8c76044fea52006196bf233bdc17da30df64be56f0 |
|
MD5 | db45ab8d644c06e020e8ed39c42f6d40 |
|
BLAKE2b-256 | 53cf77ae5eb9d79b11d6dbc704de09f5bde45238be5861cdf72ee3e9a35e9508 |
File details
Details for the file tap_totango-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: tap_totango-0.5.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/5.19.0-42-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 153d98d63d8c44d8f863caea660b3a727aa4006ee6bae7a6c8f206e12c6b1373 |
|
MD5 | 6f049c71e43b8906f33bf528a608e2b8 |
|
BLAKE2b-256 | 8ab43db81d884bb59ae1f5af603dc2268d9f99f2c6a637ce0c563ff55c3ee3f4 |