Skip to content

Apache Pinot Controller UI – Migration from Create React App to Vite #17803

@Akanksha-kedia

Description

@Akanksha-kedia

Modernize the Apache Pinot Controller UI build system by migrating from Create React App (CRA) to Vite, enabling faster development builds, improved dependency handling, and long‑term ecosystem support.

This project migrates the Apache Pinot Controller UI from the deprecated Create React App (CRA) toolchain to Vite, a modern frontend build system designed for speed and scalability. The migration reduces build times, improves local development experience, removes legacy Webpack dependencies, and aligns the UI with current frontend best practices.

The UI continues to support React 16, Material‑UI v4, and existing application behavior, while replacing the build, dev, and preview workflows with Vite equivalents. This change is internal to the frontend build process and does not impact backend APIs or Pinot runtime behavior.

The migration from Create React App (CRA) to Vite was driven by unavoidable Node.js and ESLint ecosystem changes that exposed critical dependency and security issues in the legacy CRA/Webpack toolchain. Upgrading to modern Node.js (v22+)—required by ESLint 9.x—triggered cascading dependency conflicts, including blocked and deprecated transitive dependencies such as inflight@1.0.6, which is flagged by enterprise security policies. Vite eliminates the legacy Webpack-based dependency graph responsible for these issues, significantly reduces transitive dependencies, improves build performance, and provides a sustainable, modern, and secure frontend build system aligned with current open‑source standards.

─┬ file-entry-cache@6.0.1
└─┬ flat-cache@3.2.0
└─┬ rimraf@3.0.2
└─┬ glob@7.2.3
└── inflight@1.0.6
If you dig into package-lock.json, you can see that this is because vite is using the @typescript-eslint package, which require an outdated version of eslint, which in turn use an outdated version of file-entry-cache, which use an outdated version of flat-cache, which use an outdated version of rimraf, which use an outdated version of glob, which use inflight@1.0.6.

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode restructuring without changing behavioruiUI related issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions