Skip to content

Add IT Dashboard investments endpoints#17

Merged
vdavez merged 3 commits intomainfrom
feature/itdashboard-investments
Apr 8, 2026
Merged

Add IT Dashboard investments endpoints#17
vdavez merged 3 commits intomainfrom
feature/itdashboard-investments

Conversation

@vdavez
Copy link
Copy Markdown
Contributor

@vdavez vdavez commented Apr 8, 2026

Summary

  • Adds list_itdashboard_investments and get_itdashboard_investment for the /api/itdashboard/ resource (ITDashboardInvestment model, ShapeConfig.ITDASHBOARD_INVESTMENTS_MINIMAL / _COMPREHENSIVE, schema registration, conformance entry).
  • Filters mirror the API's tier-gated filterset with explicit named params and proper bool"true"/"false" and date/datetime → ISO serialization:
    • Free: search
    • Pro: agency_code, type_of_investment, updated_time_after/updated_time_before
    • Business+: agency_name, cio_rating, cio_rating_max, performance_risk
  • 4 unit tests + 14 integration tests with recorded cassettes (every filter, shape variants, pagination, funding(*) dict expansion, cio_evaluation(*) list-of-dict expansion).

Test plan

  • pytest tests/test_client.py tests/test_models.py tests/test_shapes.py — 215 unit tests pass
  • pytest tests/integration/test_itdashboard_integration.py — 14 cassette-replay tests pass in <1s
  • pytest tests/ full suite — 361 passed, 2 skipped (pre-existing)
  • Conformance check (scripts/check_filter_shape_conformance.py --manifest …/filter_shape_contract.json) — 0 errors
  • Cassettes verified to contain no API key headers (filtered by vcr_config)
  • Live recording pass against https://tango.makegov.com/api/itdashboard/ succeeded with a business+ key

Notes

  • Cassettes recorded with a business+ key. Re-recording with a lower-tier key would 403 on the gated filter tests; documented in the test module docstring.
  • The ../tango filter manifest does not yet enumerate itdashboard under resources, so the conformance script can't validate filter-param parity for itdashboard against the manifest. That's a tango-side regen, not an SDK fix.
  • The pre-existing uv.lock modification (a 0.4.3 → 0.4.4 version bump) was intentionally left out of this PR — it predates this work.

🤖 Generated with Claude Code

vdavez and others added 3 commits March 25, 2026 07:35
…ders

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds list_itdashboard_investments and get_itdashboard_investment for the
/api/itdashboard/ resource, including the ITDashboardInvestment model,
ShapeConfig defaults, schema registration, and conformance entries.

Filter coverage mirrors the API's tier-gated filterset (search;
agency_code/type_of_investment/updated_time range; agency_name/cio_rating/
cio_rating_max/performance_risk) with explicit named params and proper
bool/date serialization.

Tests:
- 4 unit tests covering default shape, filter forwarding, get-by-uii,
  and funding(*) / cio_evaluation(*) expansions
- 14 integration tests with recorded cassettes covering shape variants,
  pagination, every filter, and dict + list-of-dict expansions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vdavez vdavez merged commit 35f8d77 into main Apr 8, 2026
9 checks passed
@vdavez vdavez deleted the feature/itdashboard-investments branch April 8, 2026 16:41
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