notebooks/workspaces/frontend
Charles Thao fa5fb5a7cc
feat: Render Loading if Namespaces are fetching (#604)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-19 18:11:37 +00:00
..
.husky feat: enhance husky pre-commit hook to conditionally run lint checks for frontend changes (#549) 2025-08-27 13:18:21 +00:00
.vscode feat(ws): add fallback mechanism to broken images (#448) 2025-06-27 13:46:17 +00:00
__mocks__ feat(ws): initial commit for frontend (#19) 2024-06-28 00:48:41 +00:00
config feat: integrate the frontend shared libraries (#552) 2025-09-04 19:13:12 +00:00
eslint-local-rules chore(ws): show ESLint errors from local rules on IDE (#439) 2025-06-25 10:52:16 +00:00
manifests/kustomize feat(ws): add manifests for frontend (#487) 2025-08-21 17:34:06 +00:00
scripts feat(ws): automate generation of types and HTTP client layer from Swagger definitions (#496) 2025-08-05 12:28:53 +00:00
src feat: Render Loading if Namespaces are fetching (#604) 2025-09-19 18:11:37 +00:00
.dockerignore feat(ws): containerize frontend component (#394) 2025-07-24 19:41:01 +00:00
.env feat: integrate the frontend shared libraries (#552) 2025-09-04 19:13:12 +00:00
.env.cypress.mock feat: integrate the frontend shared libraries (#552) 2025-09-04 19:13:12 +00:00
.env.development feat: integrate the frontend shared libraries (#552) 2025-09-04 19:13:12 +00:00
.env.production feat: add environment configuration files for frontend (#536) 2025-08-26 14:37:20 +00:00
.eslintignore chore(ws): Setup eslint and jest configurations (#141) 2024-12-03 15:21:59 +00:00
.eslintrc.js chore(ws): enforce component specific imports (#475) 2025-07-21 19:26:58 +00:00
.gitignore chore: Organize .gitignore for frontend (#577) 2025-09-10 13:38:37 +00:00
.prettierignore feat(ws): Notebooks 2.0 // Frontend // Workspaces table // Live mockup (#140) 2024-12-03 13:47:58 +00:00
.prettierrc feat(ws): Notebooks 2.0 // Frontend // Workspaces table // Live mockup (#140) 2024-12-03 13:47:58 +00:00
Dockerfile feat(ws): containerize frontend component (#394) 2025-07-24 19:41:01 +00:00
Makefile feat(ws): frontend Makefile to support deploy (#534) 2025-09-04 19:04:12 +00:00
OWNERS chore: add OWNERS files with reviewers and labels (#450) 2025-06-26 21:42:17 +00:00
README.md feat: add environment configuration files for frontend (#536) 2025-08-26 14:37:20 +00:00
babel.config.js feat: add environment configuration files for frontend (#536) 2025-08-26 14:37:20 +00:00
jest.config.js feat: integrate the frontend shared libraries (#552) 2025-09-04 19:13:12 +00:00
nginx.conf feat(ws): containerize frontend component (#394) 2025-07-24 19:41:01 +00:00
package-lock.json chore(ws): Upgrade vulnerable packages (#602) 2025-09-18 15:05:35 +00:00
package.json chore: Upgrade vulnerable packages (#578) 2025-09-10 13:39:37 +00:00
tsconfig.json feat: add environment configuration files for frontend (#536) 2025-08-26 14:37:20 +00:00

README.md

Kubeflow Workspaces Frontend

The Kubeflow Workspaces Frontend is the web user interface used to monitor and manage Kubeflow Workspaces as part of Kubeflow Notebooks 2.0.

⚠️ Warning ⚠️

The Kubeflow Workspaces Frontend is a work in progress and is NOT currently ready for use. We greatly appreciate any contributions.

Dev Setup

Requirements

This project requires the following tools to be installed on your system:

  • NodeJS and NPM
    • Node recommended version -> 20.17.0
    • NPM recommended version -> 10.8.2

Development

  1. Clone the repository:

    git clone https://github.com/kubeflow/notebooks.git
    
  2. Checkout the Notebooks 2.0 development branch:

    git checkout notebooks-v2
    
  3. Navigate to the frontend directory and install the project dependencies.

    cd workspaces/frontend && npm install
    

Build the Project

npm run build

Serve the UI Locally

This is the default setup for running the UI locally. Make sure you build the project using the instructions above prior to running the command below.

npm run start:dev

The command above starts the UI with mocked data by default, so you can run the application without requiring a connection to the backend. This behavior can be customized in the .env.development file by setting the MOCK_API_ENABLED environment variable to false.

Testing

Run all tests:

npm run test

Linting

Check for linting issues:

npm run test:lint

Automatically fix linting issues:

npm run test:fix

API Types & Client Generation

The TypeScript types and the HTTP client layer for interacting with the backend APIs are automatically generated from the backend's swagger.json file. This ensures the frontend remains aligned with the backend API contract at all times.

Generated Code Location

All generated files live in the src/generated directory.

⚠️ Do not manually edit any files in this folder.

Updating the Generated Code

To update the generated code, first update the swagger.version file in the scripts directory to the desired commit hash of the backend's swagger.json file.

Then run the following command to update the generated code:

npm run generate:api

Finally, make any necessary adaptations based on the changes in the generated code.