Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

transferwise/pipelinewise-tap-twilio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notice

To better serve Wise business and customer needs, the PipelineWise codebase needs to shrink. We have made the difficult decision that, going forward many components of PipelineWise will be removed or incorporated in the main repo. The last version before this decision is v0.64.1

We thank all in the open-source community, that over the past 6 years, have helped to make PipelineWise a robust product for heterogeneous replication of many many Terabytes, daily

pipelinewise-tap-twilio

PyPI version PyPI - Python Version License: MIT

Singer tap that extracts data from a Twilio API and produces JSON-formatted data following the Singer spec.

This is a PipelineWise compatible tap connector.

This tap:

Streams

Standard Endpoints:

accounts

addresses

dependent_phone_numbers

applications

available_phone_number_countries

available_phone_numbers_local

available_phone_numbers_mobile

available_phone_numbers_toll_free

incoming_phone_numbers

keys

calls

conferences

conference_participants

outgoing_caller_ids

recordings

transcriptions

queues

message_media

usage_records

usage_triggers

alerts

TaskRouter Endpoints:

workspaces

activities

events

tasks

task_channels

task_queues

cumulative_statistics

workers

channels

workflows

Programmable Chat Endpoints:

services

roles

chat_channels

members

chat_messages

users

Authentication

This tap authenticates to the Twilio API using Basic Auth.

To set up authentication simply include your Twilio account_sid and auth_token in the tap config.

Quick Start

  1. Install

      make venv
  2. Create your tap's config.json file. The api_key is available in the twilio Console UI (see Authentication above). The date_window_days is the integer number of days (between the from and to dates) for date-windowing through the date-filtered endpoints (default = 30). The start_date is the absolute beginning date from which incremental loading on the initial load will start.

        {
            "account_sid": "YOUR_ACCOUNT_SID",
            "auth_token": "YOUR_AUTH_TOKEN",
            "start_date": "2019-01-01T00:00:00Z",
            "user_agent": "tap-twilio <api_user_email@your_company.com>",
        }

    Optionally, also create a state.json file. currently_syncing is an optional attribute used for identifying the last object to be synced in case the job is interrupted mid-stream. The next run would begin where the last job left off.

    {
        "currently_syncing": "registers",
        "bookmarks": {
            "acounts": "2020-03-23T10:31:14.000000Z",
            "...": "2020-03-23T00:00:00.000000Z"
        }
    }
  3. Run the Tap in Discovery Mode This creates a catalog.json for selecting objects/fields to integrate:

    tap-twilio --config config.json --discover > catalog.json

    See the Singer docs on discovery mode here.

  4. Run the Tap in Sync Mode (with catalog)

    For Sync mode:

    > tap-twilio --config tap_config.json --catalog catalog.json

    Messages are written to standard output following the Singer specification. The resultant stream of JSON data can be consumed by a Singer target.

To run tests

Install python test dependencies in a virtual env and run tests

make venv test

To lint the code

Install python test dependencies in a virtual env and run linter

make venv pylint

Licence

GNU AFFERO GENERAL PUBLIC LICENSE