Files
code-server/packages/protocol/src/proto/command.proto
Asher 72bf4547d4 Getting the client to run (#12)
* Clean up workbench and integrate initialization data

* Uncomment Electron fill

* Run server & client together

* Clean up Electron fill & patch

* Bind fs methods

This makes them usable with the promise form:
`promisify(access)(...)`.

* Add space between tag and title to browser logger

* Add typescript dep to server and default __dirname for path

* Serve web files from server

* Adjust some dev options

* Rework workbench a bit to use a class and catch unexpected errors

* No mkdirs for now, fix util fill, use bash with exec

* More fills, make general client abstract

* More fills

* Fix cp.exec

* Fix require calls in fs fill being aliased

* Create data and storage dir

* Implement fs.watch

Using exec for now.

* Implement storage database fill

* Fix os export and homedir

* Add comment to use navigator.sendBeacon

* Fix fs callbacks (some args are optional)

* Make sure data directory exists when passing it back

* Update patch

* Target es5

* More fills

* Add APIs required for bootstrap-fork to function (#15)

* Add bootstrap-fork execution

* Add createConnection

* Bundle bootstrap-fork into cli

* Remove .node directory created from spdlog

* Fix npm start

* Remove unnecessary comment

* Add webpack-hot-middleware if CLI env is not set

* Add restarting to shared process

* Fix starting with yarn
2019-02-05 11:15:50 -06:00

108 lines
2.3 KiB
Protocol Buffer

syntax = "proto3";
// Executes a command.
// Ensure the id field is unique for each new session. If a client reuses the id of an existing
// session, the connection will be closed.
// If env is provided, the environment variables will be set.
// If tty_dimensions is included, we will spawn a tty for the command using the given dimensions.
message NewSessionMessage {
uint64 id = 1;
string command = 2;
repeated string args = 3;
map<string, string> env = 4;
string cwd = 5;
TTYDimensions tty_dimensions = 6;
bool is_fork = 7;
}
// Sent when starting a session failed.
message NewSessionFailureMessage {
uint64 id = 1;
enum Reason {
Prohibited = 0;
ResourceShortage = 1;
}
Reason reason = 2;
string message = 3;
}
// Sent when a session has completed
message SessionDoneMessage {
uint64 id = 1;
int64 exit_status = 2;
}
// Identifies a session with a PID.
message IdentifySessionMessage {
uint64 id = 1;
uint64 pid = 2;
}
// Writes data to a session.
message WriteToSessionMessage {
uint64 id = 1;
bytes data = 2;
}
// Resizes the TTY of the session identified by the id.
// The connection will be closed if a TTY was not requested when the session was created.
message ResizeSessionTTYMessage {
uint64 id = 1;
TTYDimensions tty_dimensions = 2;
}
// CloseSessionInputMessage closes the stdin of the session by the ID.
message CloseSessionInputMessage {
uint64 id = 1;
}
message ShutdownSessionMessage {
uint64 id = 1;
string signal = 2;
}
// SessionOutputMessage carries data read from the stdout or stderr of the session identified by the id.
message SessionOutputMessage {
uint64 id = 1;
enum FD {
Stdout = 0;
Stderr = 1;
}
FD fd = 2;
bytes data = 3;
}
message TTYDimensions {
uint32 height = 1;
uint32 width = 2;
}
// Initializes a new connection to a port or path
message NewConnectionMessage {
uint64 id = 1;
uint64 port = 2;
string path = 3;
}
// Sent when a connection has successfully established
message ConnectionEstablishedMessage {
uint64 id = 1;
}
// Sent when a connection fails
message NewConnectionFailureMessage {
uint64 id = 1;
string message = 2;
}
// Sent for connection output
message ConnectionOutputMessage {
uint64 id = 1;
bytes data = 2;
}
// Sent to close a connection
message ConnectionCloseMessage {
uint64 id = 1;
}