// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 syntax = "proto3"; package plugin; option go_package = "plugin"; import "google/protobuf/empty.proto"; // GRPCStdio is a service that is automatically run by the plugin process // to stream any stdout/err data so that it can be mirrored on the plugin // host side. service GRPCStdio { // StreamStdio returns a stream that contains all the stdout/stderr. // This RPC endpoint must only be called ONCE. Once stdio data is consumed // it is not sent again. // // Callers should connect early to prevent blocking on the plugin process. rpc StreamStdio(google.protobuf.Empty) returns (stream StdioData); } // StdioData is a single chunk of stdout or stderr data that is streamed // from GRPCStdio. message StdioData { enum Channel { INVALID = 0; STDOUT = 1; STDERR = 2; } Channel channel = 1; bytes data = 2; }