Filip Troníček 83e56d54d5
Add the Browser Terminal as an IDE (#17196)
* Add xterm as an IDE

* Move the IDE to our GCP registry 🎉

* Also resolve the source code commit for IDEs in `ide-service`

* Add feature flag

* Xterm => terminal

* Revert "Also resolve the source code commit for IDEs in `ide-service`"

This reverts commit 06aee00959c24469e6fae904394badd4660dd97b.

* always add `<iframe>` to the top of `<body>`

* Add the next non-jb IDE :)

* Add latest image

* Filter out IDEs on the backend (#17324)

* Address review comments

Never mutate `s.ideConfig` itself and make an in-memory copy of it to not use it every time.

* Pre-compute outside

* Stringify config instead of options
2023-04-24 19:42:45 +08:00

64 lines
1.5 KiB
Protocol Buffer

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
syntax = "proto3";
package ide_service_api;
option go_package = "github.com/gitpod-io/gitpod/ide-service/api";
option java_package = "io.gitpod.ideservice.api";
service IDEService {
rpc GetConfig(GetConfigRequest) returns (GetConfigResponse) {
option idempotency_level = IDEMPOTENT;
}
rpc ResolveWorkspaceConfig(ResolveWorkspaceConfigRequest) returns (ResolveWorkspaceConfigResponse) {
option idempotency_level = IDEMPOTENT;
}
}
message GetConfigRequest {
User user = 1;
}
message GetConfigResponse {
string content = 1;
}
// TODO: import type from other packages
// EnvironmentVariable describes an env var as key/value pair
message EnvironmentVariable {
string name = 1;
string value = 2;
}
enum WorkspaceType {
REGULAR = 0;
PREBUILD = 1;
}
message User {
string id = 1;
optional string email = 2;
}
message ResolveWorkspaceConfigRequest {
WorkspaceType type = 1;
string context = 2;
string ide_settings = 3;
string workspace_config = 4;
User user = 5;
}
message ResolveWorkspaceConfigResponse {
repeated EnvironmentVariable envvars = 1;
string supervisor_image = 2;
string web_image = 3;
repeated string ide_image_layers = 4;
// control whether to configure default IDE for a user
string referer_ide = 5;
string tasks = 6;
string ide_settings = 7;
}