* 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
108 lines
2.3 KiB
Protocol Buffer
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;
|
|
}
|