eclipse-theia / eclipse-theia/theia-cloud

Allow stable Session Naming for ephemeral sessions

Open
#378 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
99
Forks
49
Avg merge
2h 33m
Merged PRs (30d)
1

Description

### Is your feature request related to a problem? Please describe.

Right now, the Session/Workspace name is set-able when creating non-ephemeral sessions.
The following code shows how to create a session with predictable name:
```JS
const launchRequest = {
serviceUrl: config.serviceUrl,
appId: config.appId,
user: email!,
appDefinition: appDefinition,
workspaceName: 'we-can-set-every-value-here',
```
but this parameter is ignored for ephemeral sessions. The session's name would be `we-can-set-every-value-here-session`.

This allows to create two sessions with the same name, both resolving to the same workspace, and, thus, restarting and reconnecting the user to the workspace. This is **good** and actually very useful functionality.

Still, it seems like unintended functionality to allow such behavior on non-ephermal sessions but not on ephemeral ones. Maybe, this mechanisms allows to bring the system in a unpredicted state by choosing weird names?

### Describe the solution you'd like

We want a controllable way to set the session name (regardless of persistency). The session names are currently calculated in regard to the `user` and the `appDefinition`, giving us no flexibility to add dynamic data fetched via the landing page to it (exerciseId).

In our use case it is required to (re)identify a running session and have the user connect to it. This could be solved with either setting the name ourselves or being able to predict the names in a stable and extensible way.

### Describe alternatives you've considered

It would also be able to define some flags/options during session/workspace creation to later identify it with.

### Cluster provider

_No response_

### Additional information

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

No file or test is named. Start by tracing session/workspace creation and the logic that calculates names from the user and appDefinition, comparing ephemeral and non-ephemeral paths. Done means a stable, controllable naming or identification mechanism works for both persistence modes and prevents unintended collisions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.