Skip to main content

Rust-first data quality monitoring middleware for FastAPI

Project description

Jin

SaaS-Grade Observability & Reconciliation for FastAPI Data Products

Jin is a Rust-first, drop-in reconciliation engine that actively monitors internal data quality natively inside your FastAPI applications. Designed for engineers and tailored for Product Owners (POs).

The Killer App: Deep-Nested Reconciliation

Traditional data quality reconciliation requires tedious, custom data pipeline scripts that flatten complex JSON structures. Jin solves this instantly.

With our fast, persistent Rust core, Jin automatically traverses deeply nested Pydantic responses (e.g., catalog.categories[].products[].stats.revenue), and accurately reconciles those metrics against flat reference/CSV files provided by your business teams.

No custom validation scripts. No pipeline bloat. Just point Jin to your endpoint, map the grain in the UI, and let the engine do the work.

Features

  • Zero-Friction Integration: 30-second install via pip or uv. Drop a single middleware into your FastAPI app and go.
  • PO Wizard Setup: The Jin Dashboard helps non-technical Product Owners map JSON paths, define metric tolerances, and upload CSV ground truth.
  • Field Aliasing (Coming Soon): Shield business users from JSON paths by mapping catalog.categories[].products[].sku to simple aliases like "Product SKU".
  • Executive Reporting: One-click generation of beautifully formatted, executive-ready Markdown and CSV Data Quality reports.
  • Built-in Incident Workflow: Track "Match" or "Mismatch" issues with full lifecycle support (Assign, Snooze, Resolve, Suppress).

Start Here

1. Install (Pre-compiled wheels ensure a blazingly fast install):

uv add jin-monitor
# or
pip install jin-monitor

2. Add the middleware to your app:

from fastapi import FastAPI
from jin import JinMiddleware

app = FastAPI()
app.add_middleware(
    JinMiddleware, 
    db_path="./jin.duckdb",
    global_threshold=10.0
)

3. Launch your app and open the Data Quality Dashboard:

http://127.0.0.1:8000/jin

Windows note: run with a single server worker (--workers 1). DuckDB file locking on Windows is stricter, and multi-worker setups can cause intermittent UI/backend connectivity issues.

Documentation

Read the short docs in this order to become a Jin power user:

  1. Why Jin (Vision)
  2. Getting Started
  3. Configuration Guide
  4. Data Shape Guide
  5. Incident Workflow
  6. CLI Operations

Local pre-push sandbox smoke

For an end-to-end local sanity check (FastAPI + Jin mount + config + baseline upload + reconciliation), run:

./scripts/prepush_sandbox_smoke.sh

To enforce this automatically before every git push on your machine:

./scripts/install_pre_push_hook.sh

Full OS matrix (GitHub Actions)

To validate Linux + macOS + Windows in a real OS matrix without opening a PR, push the commit you want to test to branch ci-test. That triggers .github/workflows/os-smoke.yml.

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

jin_monitor-1.3.3.tar.gz (679.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jin_monitor-1.3.3-cp39-abi3-win_amd64.whl (10.4 MB view details)

Uploaded CPython 3.9+Windows x86-64

jin_monitor-1.3.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

jin_monitor-1.3.3-cp39-abi3-macosx_11_0_arm64.whl (11.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

jin_monitor-1.3.3-cp39-abi3-macosx_10_12_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file jin_monitor-1.3.3.tar.gz.

File metadata

  • Download URL: jin_monitor-1.3.3.tar.gz
  • Upload date:
  • Size: 679.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jin_monitor-1.3.3.tar.gz
Algorithm Hash digest
SHA256 4e08886fb8fd305e67b7e3e962ef229d0b57d596ef40aac4acdeb9f22f73878d
MD5 0e3d0fba6f20b3c51686c942f1dbe1fb
BLAKE2b-256 95e8f486195a2b5638fa27ba04cc2f0058a1f9e9d2ee7b3fb664232cd9442b23

See more details on using hashes here.

Provenance

The following attestation bundles were made for jin_monitor-1.3.3.tar.gz:

Publisher: publish.yml on amit-devb/jin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jin_monitor-1.3.3-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: jin_monitor-1.3.3-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 10.4 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jin_monitor-1.3.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8f67471396e384c53a5fe3bd6241dc77d2ee25a011b2e3e8211ca89133652ea6
MD5 44cdea4c516a5d0910ddfaf6f26513c4
BLAKE2b-256 be849665264ad4c2cbff4541123c6877e104422de20acd45985f14a86160b735

See more details on using hashes here.

Provenance

The following attestation bundles were made for jin_monitor-1.3.3-cp39-abi3-win_amd64.whl:

Publisher: publish.yml on amit-devb/jin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jin_monitor-1.3.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jin_monitor-1.3.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a159ff80029de1da1d23ee5b75823a881c6972189d73683ba1a850440c179a8
MD5 c0d595947d2b7822dc47457124cb9343
BLAKE2b-256 ad9eb67b3c53a094a5656a396563529f916866b2533aad63942cd803120ad1d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for jin_monitor-1.3.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on amit-devb/jin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jin_monitor-1.3.3-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jin_monitor-1.3.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d31a4afc9232f47dea96b76100665cbd59772adbc42035ff9b5fb45dc30e9bfd
MD5 912c444afff9e456923bfb7582dc2c7c
BLAKE2b-256 d3a27b4d74d4274694408ead324f21370aaeb5003b0ec1b7df52cc0f463437fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for jin_monitor-1.3.3-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on amit-devb/jin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jin_monitor-1.3.3-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jin_monitor-1.3.3-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9dbbd38c99a20374439ded427f00c536224fe8964c3adf53f7f920c232b379b6
MD5 7464b20077d34e3d5da789aff482fcf8
BLAKE2b-256 a115c4e8c44a2ca02c85f1d2bccc3e48256bc5062b24697cecfbc91003b0fbdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for jin_monitor-1.3.3-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish.yml on amit-devb/jin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page