Do you want a workspace management server for your cloud development environment such as Eclipse Che, but also require a custom dashboard? Do you want to integrate user features, such as the creation of workspaces into your existing web presence? Then read on. Eclipse Che actually provides the essential features of cloud workspace management via a headless API. In this article we introduce “Che Zero”, an example application, which provides workspace management with Eclipse Che with a lean and customizable user interface.
Eclipse Che is an open source workspace management server for hosting development workspaces running in the cloud. These workspaces can then be accessed with selectable “editors”, typically browser-based IDEs such as Eclipse Theia. Eclipse Che supports relevant features, such as creating workspaces based on workspace definitions and managing the user’s access to them. Furthermore, Che provides the user with a very comprehensive UI, called dashboard, that allows you to trigger these features and configure parameters, such as the workspace runtime, the underlying resources and the IDE to be used.
The Eclipse Che dashboard is actually great if your users are software developers who need the capability to fully configure their environment. However, there are more restricted scenarios, in which the full dashboard might be overwhelming and actually unnecessary. A good example is getting new users set up for a particular project. In this use case, it’s likely you do not want to force the user to configure their workspace, since it is already known what they will need. For this very common use case, Eclipse Che, has a solution on board, you can actually create URLs, which directly start a new workspace based on a predefined configuration (as shown below).
A Custom Dashboard for Eclipse Che
However, you might even want something completely different. As an example you might need to embed the Che workspace management into your own web presence and adapt the workflow for the developer. The good news is that Eclipse Che has a modular architecture, the dashboard works against an independent REST API. Therefore, you can add your own custom UI to control the workspace management in Eclipse Che.
The custom UI controlling Che can literally be anything you want that can talk to a REST API. Usually this would be a web application. Implementing a custom UI allows you to define the look and feel, but also the feature set you want to present to your users. As an example, you can make the workspace configuration options much simpler in case you have a context where this makes sense.
To demonstrate how to implement a custom dashboard for Eclipse Che, we have created a small open source example application called “Che Zero”. As the name implies, it has a very reduced feature set compared to regular Che. In the screenshot below, you can see the start screen that shows all workspaces of a user and allows you to create a new one by entering a name and selecting the type with a drop down. This will then directly forward the user to the running workspace, i.e. the online IDE configured for it.
Once you have created workspaces and returned to the Che zero dashboard, you can see all your workspaces and their state. You can open, start, stop and delete them. All these features result in REST calls to the Eclipse Che API, so the Che Zero dashboard code base is very minimal.
Eclipse Che provides its workspace management features via a REST API. Therefore, it is possible to replace the default Che dashboard with a custom dashboard, integrate Che with your specific workflow with restricted workspace types and even to embed the workspace management into an existing web application. Che Zero is a very simple example that demonstrates how to build such a custom UI for Che. Che Zero is not an official project or product and it will never be. It is therefore not polished to perfect quality. However, we have published it open source, so you can use it as an example to look at in case you want to implement something similar. You find the sources here on GitHub.
We hope you find Che Zero useful as an example. In case you are in the process of designing or implementing your own cloud-based tool chain and/or the infrastructure for it, please feel free to get in contact with us. EclipseSource is focused on consulting and support around cloud-based tools. We are technology agnostic, so we can help you evaluate whether Eclipse Che, Che with a custom dashboard or other solutions such as Gitpod or Github Codespaces are the right path for you. Furthermore, we can support the design and implementation of your tools, whether they are based on VS Code, Eclipse Theia, Eclipse or anything else. Please have a look at our services for tool development, for web-based tools in particular and get in contact with us!