Skip to content

Avoid unbounded Shoot list responses during frontend store initialization #3289

Description

@grolu

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions