tap-jotform


Nametap-jotform JSON
Version 0.5.8 PyPI version JSON
download
home_pagehttps://github.com/edgarrmondragon/tap-jotform
SummarySinger tap for Jotform, built with the Meltano SDK for Singer Taps.
upload_time2024-11-11 23:22:45
maintainerEdgar Ramírez-Mondragón
docs_urlNone
authorEdgar Ramírez-Mondragón
requires_python>=3.9
licenseApache-2.0
keywords elt jotform
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# tap-jotform

<div>
  <a href="https://results.pre-commit.ci/latest/github/edgarrmondragon/tap-jotform/main">
    <img alt="pre-commit.ci status" src="https://results.pre-commit.ci/badge/github/edgarrmondragon/tap-jotform/main.svg"/>
  </a>
  <a href="https://github.com/edgarrmondragon/tap-jotform/blob/main/LICENSE">
    <img alt="License" src="https://img.shields.io/github/license/edgarrmondragon/tap-jotform"/>
  </a>
  <a href="https://pypi.org/p/tap-jotform">
    <img alt="License" src="https://img.shields.io/pypi/pyversions/tap-jotform"/>
  </a>
</div>

Singer Tap for Jotform. Built with the [Meltano Singer SDK](https://sdk.meltano.com).

</div>

## Capabilities

* `catalog`
* `state`
* `discover`
* `about`
* `stream-maps`
* `schema-flattening`

## Settings

| Setting             | Required | Default | Description |
|:--------------------|:--------:|:-------:|:------------|
| api_key             | True     | None    | Authentication key. See https://api.jotform.com/docs/#authentication |
| api_url             | False    | https://api.jotform.com | API Base URL |
| user_agent          | False    | tap-jotform/0.0.1 | User-Agent header |
| start_date          | False    | None    | Start date for data collection |
| requests_cache | False    | None    | Cache configuration for HTTP requests |
| stream_maps         | False    | None    | Config object for stream maps capability. For more information check out [Stream Maps](https://sdk.meltano.com/en/latest/stream_maps.html). |
| stream_map_config   | False    | None    | User-defined config values to be used within map expressions. |
| flattening_enabled  | False    | None    | 'True' to enable schema flattening and automatically expand nested properties. |
| flattening_max_depth| False    | None    | The max depth to flatten schemas. |

A full list of supported settings and capabilities is available by running: `tap-jotform --about`

## Streams

| Stream name | API endpoint      | API docs                                       | Notes |
| :---------- | :---------------- | :--------------------------------------------- | :---- |
| forms       | /user/forms       | https://api.jotform.com/docs/#user-forms       | Replication for this stream is opt-in. See instructions [below](#configuring-incremental-replication). |
| questions   | /form/{form_id}/questions | https://api.jotform.com/docs/#form-id-questions | |
| submissions | /user/submissions | https://api.jotform.com/docs/#user-submissions | Replication for this stream is opt-in. See instructions [below](#configuring-incremental-replication).  |
| reports     | /user/reports     | https://api.jotform.com/docs/#user-reports | |
| user_history | /user/history    | https://api.jotform.com/docs/#user-history | |


### Configuring incremental replication

By default, the `forms` and `submissions` stream are synced with `FULL_TABLE` replication. Incremental replication can be enabled by setting the replication metadata in the stream's entry in the catalog file:

* `replication_method`: set to`INCREMENTAL`
* `replication_key` set to `created_at` or `updated_at`. The former will omit updated submissions, while the latter will omit new submissions.

For example, to enable incremental replication for the `submissions` stream:

```json
{
  "streams": [
    {
      "tap_stream_id": "submissions",
      "stream": "submissions",
      "replication_method": "INCREMENTAL",
      "replication_key": "updated_at",
    }
  ]
}
```

### Source Authentication and Authorization

To generate an API key, follow the instructions in https://api.jotform.com/docs/#gettingstarted.

## Usage

You can easily run `tap-jotform` by itself or in a pipeline using [Meltano](https://meltano.com/).

### Executing the Tap Directly

```bash
tap-jotform --version
tap-jotform --help
tap-jotform --config CONFIG --discover > ./catalog.json
```

## Developer Resources

### Initialize your Development Environment

```bash
pipx install poetry
poetry install
```

### Create and Run Tests

Create tests within the `tap_jotform/tests` subfolder and
  then run:

```bash
poetry run pytest
```

You can also test the `tap-jotform` CLI interface directly using `poetry run`:

```bash
poetry run tap-jotform --help
```

### Testing with [Meltano](https://www.meltano.com)

_**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:

```bash
# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-jotform
meltano install
```

Now you can test and orchestrate using Meltano:

```bash
# Test invocation:
meltano invoke tap-jotform --version
# OR run a test `elt` pipeline:
meltano elt tap-jotform target-jsonl
```

### SDK Dev Guide

See the [dev guide](https://sdk.meltano.com/en/latest/dev_guide.html) for more instructions on how to use the SDK to
develop your own taps and targets.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/edgarrmondragon/tap-jotform",
    "name": "tap-jotform",
    "maintainer": "Edgar Ram\u00edrez-Mondrag\u00f3n",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "edgarrm358@gmail.com",
    "keywords": "ELT, Jotform",
    "author": "Edgar Ram\u00edrez-Mondrag\u00f3n",
    "author_email": "edgarrm358@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b9/45/50df2723ba95c5642f09b878343d587c256a0e752aeccec57670d8ead070/tap_jotform-0.5.8.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# tap-jotform\n\n<div>\n  <a href=\"https://results.pre-commit.ci/latest/github/edgarrmondragon/tap-jotform/main\">\n    <img alt=\"pre-commit.ci status\" src=\"https://results.pre-commit.ci/badge/github/edgarrmondragon/tap-jotform/main.svg\"/>\n  </a>\n  <a href=\"https://github.com/edgarrmondragon/tap-jotform/blob/main/LICENSE\">\n    <img alt=\"License\" src=\"https://img.shields.io/github/license/edgarrmondragon/tap-jotform\"/>\n  </a>\n  <a href=\"https://pypi.org/p/tap-jotform\">\n    <img alt=\"License\" src=\"https://img.shields.io/pypi/pyversions/tap-jotform\"/>\n  </a>\n</div>\n\nSinger Tap for Jotform. Built with the [Meltano Singer SDK](https://sdk.meltano.com).\n\n</div>\n\n## Capabilities\n\n* `catalog`\n* `state`\n* `discover`\n* `about`\n* `stream-maps`\n* `schema-flattening`\n\n## Settings\n\n| Setting             | Required | Default | Description |\n|:--------------------|:--------:|:-------:|:------------|\n| api_key             | True     | None    | Authentication key. See https://api.jotform.com/docs/#authentication |\n| api_url             | False    | https://api.jotform.com | API Base URL |\n| user_agent          | False    | tap-jotform/0.0.1 | User-Agent header |\n| start_date          | False    | None    | Start date for data collection |\n| requests_cache | False    | None    | Cache configuration for HTTP requests |\n| stream_maps         | False    | None    | Config object for stream maps capability. For more information check out [Stream Maps](https://sdk.meltano.com/en/latest/stream_maps.html). |\n| stream_map_config   | False    | None    | User-defined config values to be used within map expressions. |\n| flattening_enabled  | False    | None    | 'True' to enable schema flattening and automatically expand nested properties. |\n| flattening_max_depth| False    | None    | The max depth to flatten schemas. |\n\nA full list of supported settings and capabilities is available by running: `tap-jotform --about`\n\n## Streams\n\n| Stream name | API endpoint      | API docs                                       | Notes |\n| :---------- | :---------------- | :--------------------------------------------- | :---- |\n| forms       | /user/forms       | https://api.jotform.com/docs/#user-forms       | Replication for this stream is opt-in. See instructions [below](#configuring-incremental-replication). |\n| questions   | /form/{form_id}/questions | https://api.jotform.com/docs/#form-id-questions | |\n| submissions | /user/submissions | https://api.jotform.com/docs/#user-submissions | Replication for this stream is opt-in. See instructions [below](#configuring-incremental-replication).  |\n| reports     | /user/reports     | https://api.jotform.com/docs/#user-reports | |\n| user_history | /user/history    | https://api.jotform.com/docs/#user-history | |\n\n\n### Configuring incremental replication\n\nBy default, the `forms` and `submissions` stream are synced with `FULL_TABLE` replication. Incremental replication can be enabled by setting the replication metadata in the stream's entry in the catalog file:\n\n* `replication_method`: set to`INCREMENTAL`\n* `replication_key` set to `created_at` or `updated_at`. The former will omit updated submissions, while the latter will omit new submissions.\n\nFor example, to enable incremental replication for the `submissions` stream:\n\n```json\n{\n  \"streams\": [\n    {\n      \"tap_stream_id\": \"submissions\",\n      \"stream\": \"submissions\",\n      \"replication_method\": \"INCREMENTAL\",\n      \"replication_key\": \"updated_at\",\n    }\n  ]\n}\n```\n\n### Source Authentication and Authorization\n\nTo generate an API key, follow the instructions in https://api.jotform.com/docs/#gettingstarted.\n\n## Usage\n\nYou can easily run `tap-jotform` by itself or in a pipeline using [Meltano](https://meltano.com/).\n\n### Executing the Tap Directly\n\n```bash\ntap-jotform --version\ntap-jotform --help\ntap-jotform --config CONFIG --discover > ./catalog.json\n```\n\n## Developer Resources\n\n### Initialize your Development Environment\n\n```bash\npipx install poetry\npoetry install\n```\n\n### Create and Run Tests\n\nCreate tests within the `tap_jotform/tests` subfolder and\n  then run:\n\n```bash\npoetry run pytest\n```\n\nYou can also test the `tap-jotform` CLI interface directly using `poetry run`:\n\n```bash\npoetry run tap-jotform --help\n```\n\n### Testing with [Meltano](https://www.meltano.com)\n\n_**Note:** This tap will work in any Singer environment and does not require Meltano.\nExamples here are for convenience and to streamline end-to-end orchestration scenarios._\n\nYour project comes with a custom `meltano.yml` project file already created. Open the `meltano.yml` and follow any _\"TODO\"_ items listed in\nthe file.\n\nNext, install Meltano (if you haven't already) and any needed plugins:\n\n```bash\n# Install meltano\npipx install meltano\n# Initialize meltano within this directory\ncd tap-jotform\nmeltano install\n```\n\nNow you can test and orchestrate using Meltano:\n\n```bash\n# Test invocation:\nmeltano invoke tap-jotform --version\n# OR run a test `elt` pipeline:\nmeltano elt tap-jotform target-jsonl\n```\n\n### SDK Dev Guide\n\nSee the [dev guide](https://sdk.meltano.com/en/latest/dev_guide.html) for more instructions on how to use the SDK to\ndevelop your own taps and targets.\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Singer tap for Jotform, built with the Meltano SDK for Singer Taps.",
    "version": "0.5.8",
    "project_urls": {
        "Documentation": "https://github.com/edgarrmondragon/tap-jotform/#readme",
        "Homepage": "https://github.com/edgarrmondragon/tap-jotform",
        "Repository": "https://github.com/edgarrmondragon/tap-jotform"
    },
    "split_keywords": [
        "elt",
        " jotform"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c143d2c7563c089ade73b5ccc6a41cc74c1d4bdd241843c639b2485c6fa83358",
                "md5": "b385bb9afc8d347a61802b92be334e16",
                "sha256": "e77808f0ac166109756fac8ed9bbc05a1a5bff4bc48bb9880be08dbe2a1ac50d"
            },
            "downloads": -1,
            "filename": "tap_jotform-0.5.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b385bb9afc8d347a61802b92be334e16",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 13132,
            "upload_time": "2024-11-11T23:22:43",
            "upload_time_iso_8601": "2024-11-11T23:22:43.430258Z",
            "url": "https://files.pythonhosted.org/packages/c1/43/d2c7563c089ade73b5ccc6a41cc74c1d4bdd241843c639b2485c6fa83358/tap_jotform-0.5.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b94550df2723ba95c5642f09b878343d587c256a0e752aeccec57670d8ead070",
                "md5": "f427ef835fc655f5f610d6e0f4a61d35",
                "sha256": "7f3b2c58de52705a30767acf77ef37fdbe68eb3f4716f26137a85c2e4e1d139a"
            },
            "downloads": -1,
            "filename": "tap_jotform-0.5.8.tar.gz",
            "has_sig": false,
            "md5_digest": "f427ef835fc655f5f610d6e0f4a61d35",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 13008,
            "upload_time": "2024-11-11T23:22:45",
            "upload_time_iso_8601": "2024-11-11T23:22:45.280443Z",
            "url": "https://files.pythonhosted.org/packages/b9/45/50df2723ba95c5642f09b878343d587c256a0e752aeccec57670d8ead070/tap_jotform-0.5.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-11 23:22:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "edgarrmondragon",
    "github_project": "tap-jotform",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "tap-jotform"
}
        
Elapsed time: 1.27393s