The Dashboard frontend initializes its Shoot store by requesting
/api/namespaces/{namespace}/shoots. The backend returns all matching cached
Shoots as one JSON document, and the frontend calls response.json() before
passing the complete list to the store.
Reflector pagination only bounds Kubernetes API → Dashboard backend responses.
It does not protect the Dashboard backend → browser path. On sufficiently large
landscapes, serializing or parsing the complete Shoot list can exceed the
JavaScript engine's maximum string length or cause excessive transient memory
usage.
Introduce bounded or streaming initialization between the backend and frontend.
The implementation must preserve a consistent initial snapshot, avoid exposing
partial state, and reconcile socket events occurring while the initial pages are
being fetched.
The Dashboard frontend initializes its Shoot store by requesting
/api/namespaces/{namespace}/shoots. The backend returns all matching cachedShoots as one JSON document, and the frontend calls
response.json()beforepassing the complete list to the store.
Reflector pagination only bounds Kubernetes API → Dashboard backend responses.
It does not protect the Dashboard backend → browser path. On sufficiently large
landscapes, serializing or parsing the complete Shoot list can exceed the
JavaScript engine's maximum string length or cause excessive transient memory
usage.
Introduce bounded or streaming initialization between the backend and frontend.
The implementation must preserve a consistent initial snapshot, avoid exposing
partial state, and reconcile socket events occurring while the initial pages are
being fetched.