Skip to content
No description, website, or topics provided.
Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
tap_toggl
tests
.gitignore
CHANGELOG.md
LICENSE
MANIFEST.in
Makefile
README.md
setup.cfg
setup.py

README.md

tap-toggl

Tap for Toggl.

Requirements

  • pip3
  • python 3.5+
  • mkvirtualenv

Installation

In the directory:

$ mkvirtualenv -p python3 tap-toggl
$ pip3 install -e .

Usage

Create config file

This config is to authenticate into toggl. You can request an API token in your settings on the Toggl website.

The detailed_report_trailing_days determines the window of how many trailing days to pull the time_entries resource.

{
  "api_token": "*****",
  "detailed_report_trailing_days": 1
}

Discovery mode

This command returns a JSON that describes the schema of each table.

$ tap-toggl --config config.json --discover

To save this to catalog.json:

$ tap-toggl --config config.json --discover > catalog.json

Field selection

You can tell the tap to extract specific fields by editing catalog.json to make selections. Note the top-level selected attribute, as well as the selected attribute nested under each property.

{
  "selected": "true",
  "properties": {
    "likes_getting_petted": {
      "selected": "true",
      "inclusion": "available",
      "type": [
        "null",
        "boolean"
      ]
    },
    "name": {
      "selected": "true",
      "maxLength": 255,
      "inclusion": "available",
      "type": [
        "null",
        "string"
      ]
    },
    "id": {
      "selected": "true",
      "minimum": -2147483648,
      "inclusion": "automatic",
      "maximum": 2147483647,
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "type": "object"
}

Sync Mode

With an annotated catalog.json, the tap can be invoked in sync mode:

$ tap-toggl --config 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.

Replication Methods and State File

Incremental

The streams that are incremental are:

  • workspaces
  • clients
  • groups
  • projects
  • tasks
  • users
  • workspace_users
  • time entries*

Time entries uses a lookback window set by the config's "detailed_report_trailing_days" to pull data, then uses replication key updated as the bookmark.

Full Table

The only stream that is full table is tags.

Tests

$ make test

Copyright © 2018 Stitch

You can’t perform that action at this time.