Skip to content

config store theia extension#432

Merged
jfaltermeier merged 7 commits intoeclipse-theia:mainfrom
eclipsesource:lk/config-store-impl
Jul 23, 2025
Merged

config store theia extension#432
jfaltermeier merged 7 commits intoeclipse-theia:mainfrom
eclipsesource:lk/config-store-impl

Conversation

@xai
Copy link
Contributor

@xai xai commented Jun 27, 2025

  • Theia Extension (@eclipse-theiacloud/config-store): Server-side store maintaining key-value pairs with change notification support
  • REST API: POST /service/session/{sessionName}/config endpoint for authenticated configuration updates
  • Health Check: GET endpoint at /theia-cloud/config-store for monitoring
  • Example Extension: Demonstrates usage with get/set/unset commands

This requires eclipse-theia/theia-cloud-helm#94.

How to test

  1. Use the theia-cloud-activity-demo-theia image for applications, as this one contains the config-store extension.
  2. Adjust paths in the testing page to match your deployment
  3. Set config values using the testing page

lucas-koehler and others added 6 commits April 17, 2025 12:27
- Add config store with methods to get and set values
- Add POST endpoint to set new values from outside theia
- Add config change events and notification mechanism
- Fix retrieval of backend client in backend binding of ConfigStoreServer
- Add README
- Add publish workflow for config store extension

Example extension:
- Add clients listening to changes
- Add commands to test set/unset/get values
- Use the slimmed-down example app from the theia folder.
- This includes Theia Cloud's monitor and config store Theia extensions.
- Remove java and maven from the image because corresponding VS Code
  extensions are no longer installed.
- Fix warnings for ENV format
- Adapt method to return full Session object instead of just the spec
- Adapt tests
- Adapt session resource
- Mark unused method K8sUtil.findExistingSession as deprecated because it is redundant
Adds a REST endpoint to the service's session resource to set a
value in a session pod's config store. This is only allowed for
session pod's belonging to the authenticated user.

- Add new endpoint to SessionResource using Vertx Mutiny for HTTP calls
- Add utils to get cluster URLs to common SessionUtil
- Regenerate OpenAPI spec and client SDK
- Extend testing page to set config keys

TODO
- test in minikube
  - service fails to reach session pod. session pod's SERVICE ip is determined.
    but fails to connect with timeout.
- unit tests??
- Fix service routing: Change targetPort from 'web' to 'application' in templateService.yaml
- Fix JAX-RS endpoint registration: Remove conflicting @Blocking annotation from setConfigValue
- Fix JSON format: Send {"key": key, "value": value} instead of {key: value}

Signed-off-by: Olaf Lessenich <olessenich@eclipsesource.com>
* introduce dedicated internal service resource and name convention for
each session
* add creation, reservation, and cleanup logic for internal service in
session handlers
* add templateInternalService.yaml and use it in lazy and eager session
flows
* update SessionUtil and SessionResource to use the internal service for
cluster-internal requests
* update all label, owner reference, and cleanup routines to support
internal services
* add .env file for testing page setup
@jfaltermeier jfaltermeier merged commit ec43ca3 into eclipse-theia:main Jul 23, 2025
21 of 28 checks passed
@jfaltermeier jfaltermeier deleted the lk/config-store-impl branch July 23, 2025 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Config Store Theia extension to inject credentials and other config into session pods

3 participants