Repository navigation
Add a bulk filing catalog export with per-court revisions - #469
Open
nonprofittechy wants to merge 1 commit into
Open
nonprofittechy wants to merge 1 commit into
nonprofittechy wants to merge 1 commit into
Conversation
GET /jurisdictions/{j}/codes/filing_catalog lists every court with a
complete installed catalog and a revision hash. A client compares
revisions and fetches /filing_catalog/courts/{court_id} only for
courts that changed, instead of crawling the per-category list APIs.
Reads installed code tables only; makes no Tyler requests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
LITEFile builds a search index over every court → case category → case type → filing code path. Today it gets that by crawling the per-category and per-case-type list APIs, which takes a long time for a full jurisdiction. This adds a bulk export, so a client downloads only the courts whose codes changed.
API
GET /jurisdictions/{jurisdiction}/codes/filing_catalog{"version": 1, "jurisdiction": "illinois", "courts": [{"code": "adams", "name": "Adams County", "revision": "3f2a…"}]}GET /jurisdictions/{jurisdiction}/codes/filing_catalog/courts/{court_id}{"version": 1, "jurisdiction": "illinois", "court": {"code": "adams", "name": "Adams County", "revision": "3f2a…"}, "categories": [{"code": "…", "name": "…"}], "case_types": [{"code": "…", "name": "…", "case_category": "…", "initial": true}], "filing_types": [{"code": "…", "name": "…", "case_category": "…", "case_type": "…", "timing": "Initial"}]}If the court has no complete catalog, this returns a 404.
The rows come straight from the installed tables, with the same filters as the existing list endpoints:
CriminalCasecategories;iscourtuseonly='False';Initial,SubsequentorBoth.The
""vsnulldifference incase_category/case_typeis passed through unchanged. Clients need it to reproduce the existing specific-before-generic filing list fallback.Contract
revisionis an md5 of the court name plus the installed versions ofcasecategorycodes.zip,casetypecodes.zipandfilingcodes.zip. A client re-downloads a court only when its revision changes.installedversionto be accurate whilerefresh/replaceAllare running.Testing
FilingCatalogExportTest(Docker/Testcontainers):This is a starting point, so feel free to reshape it. The JSON shape and the revision rule above are the parts LITEFile depends on.
🤖 Generated with Claude Code