Skip to content

Experiments Portlet — swap the List to the server-side contract #37007

Description

@oidacra

Description

#36989 ships the list against GET /api/v1/experiments as it exists today, computing paging, sorting, filtering, status counts and site scoping client-side — an explicit, documented interim. This issue replaces that interim with the server-side contract from #36823, and is filed together with #36989 on purpose so the interim cannot quietly become permanent. It lands whenever #36823 does; nothing else waits on it.

The URL param contract was designed to be final from day one, so this swap changes where the params are applied, not what they are called.

Scope

Boundary check

Only two places should change: the data-access service and the store's load event handler. No component should need touching. If one does, #36989's service boundary was drawn wrong — flag it in review instead of patching around it.

Acceptance Criteria

  • The list issues one request per view change carrying the server-side params; no client-side slicing/sorting/filtering remains (interim utilities deleted).
  • URL behavior is byte-identical to before the swap: same params, same defaults-omitted rule, same deep-link restoration (the E2E deep-link spec from Experiments Portlet — E2E test suite (incl. flag-off regression of the old flow) #37006 passes unchanged).
  • Page column shows the enriched title/path; the interim lookup is deleted.
  • Status counts come from the API and reflect the whole filtered set.
  • Site scoping uses the siteId param; switching site refetches.
  • Diff touches only the data-access service, the store load handler, and deleted interim code.
  • Jest specs updated: load handler asserts outgoing params per state.

Priority

Medium — unblocks scale, not features.

Additional Context

Metadata

Metadata

Assignees

Type

Projects

Status
Current Sprint Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions