Skip to main content

tap-jsonfile

Singer tap that reads JSON files from local filesystem or S3-compatible storage (including MinIO).

Built with the Meltano Singer SDK.

Features

  • Glob patterns to match files across directories (data/**/*.json)
  • S3 and MinIO support via fsspec / s3fs
  • Automatic schema inference by sampling the first N files
  • JSON, JSON arrays, and JSONL formats detected automatically
  • Incremental sync: tracks file content hashes in Singer state, skips unchanged files on subsequent runs
  • Adds _sdc_source_file to every record for lineage

Configuration

Setting Required Default Description
paths Yes — List of glob patterns for JSON files (local or s3://…)
stream_name No records Name of the output Singer stream
samples No 20 Number of files to sample for schema inference

S3 / MinIO credentials

Set these environment variables (standard AWS naming, also accepts S3_* prefix):

Variable Description
AWS_ACCESS_KEY_ID Access key (or S3_ACCESS_KEY_ID)
AWS_SECRET_ACCESS_KEY Secret key (or S3_SECRET_ACCESS_KEY)
AWS_ENDPOINT_URL Custom endpoint for MinIO (or S3_ENDPOINT_URL)

Usage

Standalone

# Local files
tap-jsonfile --config '{"paths": ["data/**/*.json"]}' > output.jsonl

# S3 / MinIO (credentials via env vars)
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_ENDPOINT_URL=https://minio.example.com
tap-jsonfile --config '{"paths": ["s3://bucket/prefix/**/*.json"]}'

Incremental sync

Pass state from a previous run to skip unchanged files:

tap-jsonfile --config config.json > output.jsonl 2>/dev/null

# Extract state for next run
grep '"type":"STATE"' output.jsonl | tail -1 | python3 -c \
  "import sys,json; print(json.dumps(json.loads(sys.stdin.read())['value']))" > state.json

# Next run skips files whose content hash hasn't changed
tap-jsonfile --config config.json --state state.json

With Meltano

uv tool install meltano
meltano install
meltano run tap-jsonfile target-jsonl

See meltano.yml for the default configuration (paths: ["data/**/*.json"]).

Development

Prerequisites: Python 3.10+, uv

uv sync
uv run pytest          # 41 tests
uv run tap-jsonfile --about

Metadata

Release files for tap-jsonfile 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tap-jsonfile 0.1.2
File Size Uploaded Provenance
tap_jsonfile-0.1.2.tar.gz 193.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tap-jsonfile 0.1.2
File Interpreter ABI Platform
tap_jsonfile-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 205.9 kB

Release files / tap_jsonfile-0.1.2.tar.gz

Download URL tap_jsonfile-0.1.2.tar.gz
Size 193.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c0dcc1ec3451b357b15a21a3af5b6c9c54af3447b6e85feced63ec7fc25a4917
BLAKE2b-256 checksum
How to use checksums
763e170b455614a496e452101f1c744922ba7a47de892163e7afa29c64c2f839
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release files / tap_jsonfile-0.1.2-py3-none-any.whl

Download URL tap_jsonfile-0.1.2-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d89f482a00d3a743feb6c36b8e80701b535fd76ad6a0c3b0a6ae2d3c1af817ef
BLAKE2b-256 checksum
How to use checksums
4676bf6a7f0d3bf5bf1007d3304c6a12c4837625710be49cea0fb0097a5514be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Security for tap-jsonfile 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tap_jsonfile-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page