Skip to content

Remove cloud-shell from che-machine-exec - #392

Open
sbouchet wants to merge 1 commit into
eclipse-che:mainfrom
sbouchet:CRW-13290-remove-cloud-shell
Open

sbouchet wants to merge 1 commit into
eclipse-che:mainfrom
sbouchet:CRW-13290-remove-cloud-shell

Conversation

@sbouchet

@sbouchet sbouchet commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Removes the cloud-shell application from che-machine-exec. Cloud shell is an unused, dev-only terminal webapp that is not used in upstream che-machine-exec and is responsible for several security issues.

Changes:

  • Delete the cloud-shell/ directory
  • Drop the cloud_shell_builder stage and the --static entrypoint arg from the Dockerfile
  • Remove the --static / StaticPath flag and static-resource serving — cloud-shell was its only consumer (main.go, cfg/cfg.go)
  • Remove the cloud-shell endpoint, the node component, and the build-cloud-shell / start-cloud-shell commands from the devfile
  • Drop the /cloud-shell npm entry from dependabot
  • Drop the --static launch arg and the cloud-shell/node_modules dockerignore entry

The Cloud Shell references in exec/kubernetes_exec_manager.go are intentionally kept — they are comments describing a container-selection workaround (eclipse-che/che#15434), unrelated to the removed webapp.

What issues does this PR fix or reference?

https://issues.redhat.com/browse/CRW-13290

How to test this PR?

  • go build ./... passes
  • go test ./... passes
  • Image builds without the Node/yarn cloud-shell stage

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Removed Features
    • Removed the embedded Cloud Shell terminal and its public endpoint.
    • The application no longer serves static resources or redirects the root page to them.
    • Removed the Cloud Shell build and start commands from the development environment.

Cloud shell is an unused, dev-only terminal webapp that is not used in
upstream che-machine-exec and is responsible for several security issues.
This removes the cloud-shell application and all references to it:

- delete the cloud-shell/ directory
- drop the cloud_shell_builder stage and --static entrypoint arg from the
  Dockerfile
- remove the --static / StaticPath flag and static-resource serving, which
  cloud-shell was the only consumer of (main.go, cfg/cfg.go)
- remove the cloud-shell endpoint, the node component, and the
  build-cloud-shell / start-cloud-shell commands from the devfile
- drop the /cloud-shell npm entry from dependabot
- drop the --static launch arg and cloud-shell/node_modules dockerignore

CRW-13290

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Stephane Bouchet <sbouchet@redhat.com>
@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ce59d709-e3d2-442e-8bc9-2f6f8cf64ad1

📥 Commits

Reviewing files that changed from the base of the PR and between 56d430b and d209316.


⛔ Files ignored due to path filters (1)
  • cloud-shell/yarn.lock is excluded by !**/yarn.lock, !**/*.lock

📒 Files selected for processing (20)
  • .dockerignore
  • .github/dependabot.yml
  • .vscode/launch.json
  • build/dockerfiles/Dockerfile
  • cfg/cfg.go
  • cloud-shell/.gitignore
  • cloud-shell/.yarnrc.yml
  • cloud-shell/README.md
  • cloud-shell/index.html
  • cloud-shell/package.json
  • cloud-shell/src/const.ts
  • cloud-shell/src/index.ts
  • cloud-shell/src/json-rpc-connection.ts
  • cloud-shell/src/terminal-protocol.ts
  • cloud-shell/src/terminal.ts
  • cloud-shell/styles.css
  • cloud-shell/tsconfig.json
  • cloud-shell/webpack.config.js
  • devfile.yaml
  • main.go

💤 Files with no reviewable changes (18)
  • cloud-shell/.yarnrc.yml
  • cloud-shell/README.md
  • cloud-shell/styles.css
  • .github/dependabot.yml
  • cloud-shell/src/const.ts
  • cloud-shell/tsconfig.json
  • cloud-shell/src/terminal.ts
  • cloud-shell/src/json-rpc-connection.ts
  • cloud-shell/src/terminal-protocol.ts
  • cloud-shell/.gitignore
  • cloud-shell/src/index.ts
  • main.go
  • cloud-shell/webpack.config.js
  • cfg/cfg.go
  • devfile.yaml
  • .dockerignore
  • cloud-shell/index.html
  • cloud-shell/package.json

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.



📝 Walkthrough

Walkthrough

The change removes the Cloud Shell frontend and its build setup. It also removes the static-resource configuration and routes, plus the Docker and devfile integration that built, served, and exposed Cloud Shell.

Changes

Cloud Shell removal

Layer / File(s) Summary
Remove Cloud Shell frontend and build
cloud-shell/*, cloud-shell/src/*
The Cloud Shell page, terminal implementation, protocol definitions, package configuration, and frontend build files are deleted.
Remove static-resource serving
cfg/cfg.go, main.go, .vscode/launch.json
The static-resource configuration, /static route, and root redirect are removed. The debug launch configuration no longer passes a static path.
Remove build and development wiring
build/dockerfiles/Dockerfile, devfile.yaml, .dockerignore, .github/dependabot.yml
The Docker and devfile configurations no longer build, serve, or expose Cloud Shell. Cloud Shell-specific Docker ignore and Dependabot entries are removed.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other


Merge Risk: ⚪ Minimal · up to d2093

The Cloud Shell UI is removed, while the machine-execution API remains available. No actionable merge-blocking risk is established by the supplied evidence.

Architecture Summary

Architecture risk: 🔵 Low · up to d2093

The change affects 4 systems.

Changed systems: cloud-shell, cfg, devfile.yaml, main.go

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — cloud-shell (service) was modified; 13 changed files map to changed impact.
  • observed — cfg (service) was modified; 1 changed file maps to changed impact.
  • observed — devfile.yaml (service) was modified; 1 changed file maps to changed impact.
  • observed — main.go (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in cfg/cfg.go: The exported StaticPath configuration variable was removed from the package-level configuration block.
  • observed — Modified behavior in cfg/cfg.go: Initialization of the --static flag and its STATIC_RESOURCES_PATH environment-variable default was removed.
  • observed — Modified behavior in cfg/cfg.go: Print no longer logs the configured static-resource path.
  • observed — Modified behavior in cloud-shell/.gitignore: Deleted cloud-shell/.gitignore, which ignored dist, node_modules, and .yarn/* while exempting .yarn/releases, .yarn/plugins, .yarn/patches, .yarn/sdks, and .yarn/versions.

Pre-merge checks | Passed 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: removing cloud-shell and its related integration from che-machine-exec.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tolusha

tolusha commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

⚠️ Warning: IDE/tool configuration files detected

This PR contains changes to files in directories that are typically not intended to be committed:

  • .vscode/launch.json

Please verify these changes are intentional.

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.

2 participants