Skip to content

Sync to Tango API v4.6.9: budget surface, singleton GETs, drop fabricated IDV summary (v0.2.0)#5

Open
makegov-mark[bot] wants to merge 1 commit into
mainfrom
feat/api-sync-v0.2.0
Open

Sync to Tango API v4.6.9: budget surface, singleton GETs, drop fabricated IDV summary (v0.2.0)#5
makegov-mark[bot] wants to merge 1 commit into
mainfrom
feat/api-sync-v0.2.0

Conversation

@makegov-mark
Copy link
Copy Markdown

@makegov-mark makegov-mark Bot commented May 28, 2026

Summary

Syncs the Go SDK to Tango API v4.6.9. Coverage was 78/117 ops; this closes the agreed-on additive gap and removes a fabricated endpoint. Version bump 0.1.0 → 0.2.0.

Part of a four-SDK sync — paired with tango-rust #3, following tango-python #31 and tango-node #9. Pre-1.0, so breaking changes ship without a deprecation cycle.

Phase 1 — Bug fix (breaking)

  • Removed GetIDVSummary and ListIDVSummaryAwards — they called /api/idvs/{id}/summary/ and /summary/awards/, which have never existed in the API. Deleted methods + tests + doc entries. Real IDV sub-paths (awards/, idvs/, lcats/, transactions/) retained. (idv_subresources.go)

Phase 2 — Additive surfaces

  • Budget accounts (headline new surface): ListBudgetAccounts, GetBudgetAccount, GetBudgetAccountQuarters, GetBudgetAccountRecipients — new budget.go + shape constant.
  • Singleton detail GETs + contract sub-routes: GetContract, GetContractSubawards, GetContractTransactions, GetForecast, GetGrant, GetNotice, GetOpportunity, GetSubaward.
  • GetEntityBudgetFlows(uei).
  • grantId filter on grants list; cage filter on entities list (verified absent, added distinct from any existing field).

Phase 3 — Housekeeping

  • Version 0.2.0 (version.go); ## [Unreleased] CHANGELOG block; ## 0.2 ROADMAP section; docs/API_REFERENCE.md updates; corrected a stale go-version comment in test.yml (go.mod is already go 1.23).

Deferred (by decision)

accounts/usage (internal), G2X events/news/company-rag, canonical webhook-subscriptions CRUD, PUT/PATCH webhook aliases.

Known follow-up (not fixed here)

  • Department.code decode bug: OpenAPI types it as integer (IntegerField(primary_key=True)), but the SDK decodes department code as a string, so /api/departments/{code}/ will mis-decode. /api/agencies/{code}/ is fine (CharField). Needs a typed-field fix + smoke test in a follow-up.
  • golangci config drift (pre-existing, not from this PR): repo .golangci.yml is v1-schema; a locally-installed golangci-lint v2.x rejects it. CI uses a pinned version so it passes; a .golangci.yml v2 migration is an independent follow-up.

Test plan

  • go build ./... clean
  • go test ./... pass (92.6% cover)
  • go vet ./... clean; gofmt clean
  • golangci-lint (v1-schema config) exit 0

🤖 Generated with Claude Code

~ Mark

Add the budget surface (/api/budget/accounts/ list/retrieve/quarters/
recipients), singleton detail GETs (Contract/Opportunity/Notice/Forecast/
Grant/Subaward), contract sub-routes (subawards/transactions), entity
budget-flows, and GrantID + Cage filters. Remove the fabricated
GetIDVSummary / ListIDVSummaryAwards methods (paths never existed
upstream; breaking but free pre-1.0).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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