{"id":48150205,"url":"https://github.com/amit-devb/jin","last_synced_at":"2026-04-24T06:05:04.865Z","repository":{"id":348661599,"uuid":"1179548604","full_name":"amit-devb/jin","owner":"amit-devb","description":"Fast, lightweight data quality monitoring for FastAPI, built in Rust","archived":false,"fork":false,"pushed_at":"2026-04-14T05:54:25.000Z","size":1594,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-14T06:19:38.047Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://amit-devb.github.io/jin/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amit-devb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-12T06:12:08.000Z","updated_at":"2026-04-14T05:54:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"51d74bc2-34df-43a1-a252-7466e5fa8828","html_url":"https://github.com/amit-devb/jin","commit_stats":null,"previous_names":["amit-devb/jin"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/amit-devb/jin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amit-devb%2Fjin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amit-devb%2Fjin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amit-devb%2Fjin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amit-devb%2Fjin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amit-devb","download_url":"https://codeload.github.com/amit-devb/jin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amit-devb%2Fjin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31964951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T17:10:16.215Z","updated_at":"2026-04-24T06:05:04.858Z","avatar_url":"https://github.com/amit-devb.png","language":"Python","readme":"# Jin\n\n**SaaS-Grade Observability \u0026 Reconciliation for FastAPI Data Products**\n\nJin 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).\n\n## The Killer App: Deep-Nested Reconciliation\n\nTraditional data quality reconciliation requires tedious, custom data pipeline scripts that flatten complex JSON structures. Jin solves this instantly.\n\nWith 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.\n\nNo 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.\n\n## Features\n\n- **Zero-Friction Integration**: 30-second install via `pip` or `uv`. Drop a single middleware into your FastAPI app and go.\n- **PO Wizard Setup**: The Jin Dashboard helps non-technical Product Owners map JSON paths, define metric tolerances, and upload CSV ground truth.\n- **Field Aliasing** *(Coming Soon)*: Shield business users from JSON paths by mapping `catalog.categories[].products[].sku` to simple aliases like \"Product SKU\".\n- **Executive Reporting**: One-click generation of beautifully formatted, executive-ready Markdown and CSV Data Quality reports.\n- **Built-in Incident Workflow**: Track \"Match\" or \"Mismatch\" issues with full lifecycle support (Assign, Snooze, Resolve, Suppress).\n\n## Start Here\n\n**1. Install (Pre-compiled wheels ensure a blazingly fast install):**\n\n```bash\nuv add jin-monitor\n# or\npip install jin-monitor\n```\n\n**2. Add the middleware to your app:**\n\n```python\nfrom fastapi import FastAPI\nfrom jin import JinMiddleware\n\napp = FastAPI()\napp.add_middleware(\n    JinMiddleware, \n    db_path=\"./jin.duckdb\", \n    global_threshold=10.0\n)\n```\n\n**3. Launch your app and open the Data Quality Dashboard:**\n\n```text\nhttp://127.0.0.1:8000/jin\n```\n\n## Documentation\n\nRead the short docs in this order to become a Jin power user:\n\n1. [Why Jin (Vision)](docs/vision.md)\n2. [Getting Started](docs/getting-started.md)\n3. [Configuration Guide](docs/configuration.md)\n4. [Data Shape Guide](docs/data-contract.md)\n5. [Incident Workflow](docs/incidents.md)\n6. [CLI Operations](docs/operations-guide.md)\n\n## Local pre-push sandbox smoke\n\nFor an end-to-end local sanity check (FastAPI + Jin mount + config + baseline upload + reconciliation),\nrun:\n\n```bash\n./scripts/prepush_sandbox_smoke.sh\n```\n\nTo enforce this automatically before every `git push` on your machine:\n\n```bash\n./scripts/install_pre_push_hook.sh\n```\n\n### Full OS matrix (GitHub Actions)\n\nTo validate Linux + macOS + Windows in a real OS matrix without opening a PR, push the commit you want to test to branch `ci-test`.\nThat triggers `.github/workflows/os-smoke.yml`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famit-devb%2Fjin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famit-devb%2Fjin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famit-devb%2Fjin/lists"}