You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The recommendations (and related history-state) tables now carry a nullable cloud_account_id column for per-account attribution (spec specs/multi-account-execution/data-model.md, "Existing Table Modifications"). The filtering logic for account_ids query params and the backward-compatibility semantics for legacy NULL rows are implemented but undocumented — neither in code comments at the handler/store layer nor in an ADR.
This is a documentation-only gap, but a load-bearing one: a future maintainer modifying the filter logic could easily break one of the four implicit cases below without a test or comment to flag it.
Gap
The
recommendations(and related history-state) tables now carry a nullablecloud_account_idcolumn for per-account attribution (specspecs/multi-account-execution/data-model.md, "Existing Table Modifications"). The filtering logic foraccount_idsquery params and the backward-compatibility semantics for legacy NULL rows are implemented but undocumented — neither in code comments at the handler/store layer nor in an ADR.This is a documentation-only gap, but a load-bearing one: a future maintainer modifying the filter logic could easily break one of the four implicit cases below without a test or comment to flag it.
Spec sections:
specs/multi-account-execution/acceptance.mdD-1, D-3, D-4;specs/multi-account-execution/data-model.md"Existing Table Modifications".Acceptance criteria
Document the four filter cases inline (handler comment + store-layer comment) with the contract:
account_idsparamcloud_account_idrowAdd table-driven tests in
internal/api/handler_recommendations_test.gocovering each row above.Add the same documentation table to
internal/config/store_postgres.gonear theListRecommendationsfilter logic.Validate
account_idsformat at handler boundary: each entry must be a valid UUID; reject the whole request with 400 if any entry is malformed.Out of scope
References
specs/multi-account-execution/acceptance.mdscenarios D-1, D-3, D-4;specs/multi-account-execution/data-model.mdinternal/api/handler_recommendations.go(account_ids filter parse)internal/config/store_postgres.go(ListRecommendations filter logic)