Skip to content

feat(federal-register): add the Federal Register documents resource - #68

Merged
vdavez merged 3 commits into
mainfrom
feat/federal-register
Sep 28, 2026
Merged

vdavez merged 3 commits into
mainfrom
feat/federal-register

Conversation

@makegov-mark

@makegov-mark makegov-mark Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds the Tango API's Federal Register resource (/api/federal_register/, API 5.3.0): rules, proposed rules, notices and presidential documents published since 1994.

  • list_federal_register_documents() with all seventeen API filters as explicit named parameters: search, document_number, type, agency, fr_agency, publication_date_after/_before, effective_on_after/_before, comments_close_on_after/_before, comments_open, cfr_title, cfr_part, significant, rin, executive_order_number, plus ordering.
  • get_federal_register_document(document_uuid) on the detail route, which takes the document's uuid. document_number alone is not unique, so lookups by number go through the list filter.
  • FederalRegisterDocument schema (44 fields, all optional) and FEDERAL_REGISTER_MINIMAL / FEDERAL_REGISTER_COMPREHENSIVE defaults, matching the API's own list and retrieve defaults.
  • full_text is shapeable on the detail method only and is left out of both defaults, since it can run to several MB.
  • create_webhook_alert docs now list federal_register as a query_type, and docs/WEBHOOKS.md lists alerts.federal_register.match.
  • API reference section, ShapeConfig table rows, and a CHANGELOG entry under Unreleased.

Other 5.3.0 additions

  • agency filter (organization subtree, | for OR) on list_budget_accounts(), list_exclusions() and list_itdashboard_investments().
  • The organization expand (agency_code, agency_name, department_code, department_name, office_code, office_name, organization_id) is accepted on budget accounts, exclusions, SBIR topics and SBIR solicitations, plus organization_id on budget accounts and exclusions. These come from regenerating tango/shapes/generated_overlay.py against the refreshed contract; the regeneration touched only those four resources. Default shapes are unchanged.
  • The list_itdashboard_investments() tier notes now match the API: agency_name and agency are available at every plan.

Contract refresh

The vendored contracts/filter_shape_contract.json is refreshed to API 5.3.0.
With the additions above, the SDK covers everything that refresh surfaced: conformance_baseline.json is unchanged from main, and shape_coverage_baseline.json only drops federal_register.

Testing

  • uv run pytest: 554 passed, 31 skipped (new tests/test_federal_register.py and tests/test_organization_scope.py).
  • ruff format --check, ruff check, mypy tango/: clean.
  • check_filter_shape_conformance.py: no errors. check_shape_coverage.py: no new drift.
  • Exercised the Federal Register list, detail and full_text shapes, the three agency filters, and the organization expand on all four resources against the live API.

🤖 Generated with Claude Code

vdavez and others added 3 commits September 28, 2026 07:31
`list_federal_register_documents` and `get_federal_register_document` cover `/api/federal_register/`, the rules, proposed rules, notices and presidential documents published since 1994, with all seventeen filters as named parameters and a 44-field `FederalRegisterDocument` schema.
The detail route takes the document's `uuid`, since `document_number` alone is not unique.
`full_text` is shapeable on the detail method only and stays out of both default shapes.
The vendored contract is refreshed to API 5.3.0; the unrelated drift that refresh surfaces (an `agency` filter on three resources and an `organization` expand on four) is baselined as tracked gaps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…5.3.0

`list_budget_accounts`, `list_exclusions` and `list_itdashboard_investments` take an `agency` argument for the API's organization-subtree `agency` filter.
The regenerated shape overlay accepts the `organization` expand on budget accounts, exclusions, SBIR topics and SBIR solicitations, and `organization_id` on budget accounts and exclusions.
Both baselines drop the gaps this closes, so the 5.3.0 contract is fully covered.
The IT Dashboard tier notes now say `agency_name` is available at every plan, matching the API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Inserting `agency` mid-signature shifted every later positional argument in `list_budget_accounts`, `list_exclusions` and `list_itdashboard_investments`, so an existing positional call would silently send a different filter.
Moving it to the end keeps every existing call's meaning unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vdavez
vdavez marked this pull request as ready for review September 28, 2026 13:03
@vdavez
vdavez merged commit dad1f4f into main Sep 28, 2026
11 checks passed
@makegov-mark makegov-mark Bot mentioned this pull request Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant