File: gateway.proto

package info (click to toggle)
singularity-container 4.1.5%2Bds4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 43,876 kB
  • sloc: asm: 14,840; sh: 3,190; ansic: 1,751; awk: 414; makefile: 413; python: 99
file content (332 lines) | stat: -rw-r--r-- 8,429 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
syntax = "proto3";

package moby.buildkit.v1.frontend;

import "github.com/gogo/googleapis/google/rpc/status.proto";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "github.com/moby/buildkit/api/types/worker.proto";
import "github.com/moby/buildkit/solver/pb/ops.proto";
import "github.com/moby/buildkit/sourcepolicy/pb/policy.proto";
import "github.com/moby/buildkit/util/apicaps/pb/caps.proto";
import "github.com/tonistiigi/fsutil/types/stat.proto";

option (gogoproto.sizer_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.unmarshaler_all) = true;

service LLBBridge {
	// apicaps:CapResolveImage
	rpc ResolveImageConfig(ResolveImageConfigRequest) returns (ResolveImageConfigResponse);
	// apicaps:CapSourceMetaResolver
	rpc ResolveSourceMeta(ResolveSourceMetaRequest) returns (ResolveSourceMetaResponse);
	// apicaps:CapSolveBase
	rpc Solve(SolveRequest) returns (SolveResponse);
	// apicaps:CapReadFile
	rpc ReadFile(ReadFileRequest) returns (ReadFileResponse);
	// apicaps:CapReadDir
	rpc ReadDir(ReadDirRequest) returns (ReadDirResponse);
	// apicaps:CapStatFile
	rpc StatFile(StatFileRequest) returns (StatFileResponse);
	// apicaps:CapGatewayEvaluate
	rpc Evaluate(EvaluateRequest) returns (EvaluateResponse);
	rpc Ping(PingRequest) returns (PongResponse);
	rpc Return(ReturnRequest) returns (ReturnResponse);
	// apicaps:CapFrontendInputs
	rpc Inputs(InputsRequest) returns (InputsResponse);

	rpc NewContainer(NewContainerRequest) returns (NewContainerResponse);
	rpc ReleaseContainer(ReleaseContainerRequest) returns (ReleaseContainerResponse);
	rpc ExecProcess(stream ExecMessage) returns (stream ExecMessage);

	// apicaps:CapGatewayWarnings
	rpc Warn(WarnRequest) returns (WarnResponse);
}

message Result {
	oneof result {
		// Deprecated non-array refs.
		string refDeprecated = 1;
		RefMapDeprecated refsDeprecated = 2;

		Ref ref = 3;
		RefMap refs = 4;
	}
	map<string, bytes> metadata = 10;
	// 11 was used during development and is reserved for old attestation format
	map<string, Attestations> attestations = 12;
}

message RefMapDeprecated {
	map<string, string> refs = 1;
}

message Ref {
	string id = 1;
	pb.Definition def = 2;
}

message RefMap {
	map<string, Ref> refs = 1;
}

message Attestations {
	repeated Attestation attestation = 1;
}

message Attestation {
	AttestationKind kind = 1;
	map<string, bytes> metadata = 2;

	Ref ref = 3;
	string path = 4;
	string inTotoPredicateType = 5;
	repeated InTotoSubject inTotoSubjects = 6;
}

enum AttestationKind {
	option (gogoproto.goproto_enum_prefix) = false;
	InToto = 0 [(gogoproto.enumvalue_customname) = "AttestationKindInToto"];
	Bundle = 1 [(gogoproto.enumvalue_customname) = "AttestationKindBundle"];
}

message InTotoSubject {
	InTotoSubjectKind kind = 1;

	repeated string digest = 2 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
	string name = 3;
}

enum InTotoSubjectKind {
	option (gogoproto.goproto_enum_prefix) = false;
	Self = 0 [(gogoproto.enumvalue_customname) = "InTotoSubjectKindSelf"];
	Raw = 1 [(gogoproto.enumvalue_customname) = "InTotoSubjectKindRaw"];
}

message ReturnRequest {
	Result result = 1;
	google.rpc.Status error = 2;
}

message ReturnResponse {
}

message InputsRequest {
}

message InputsResponse {
	map<string, pb.Definition> Definitions = 1;
}

message ResolveImageConfigRequest {
	string Ref = 1;
	pb.Platform Platform = 2;
	string ResolveMode = 3;
	string LogName = 4;
	int32 ResolverType = 5;
	string SessionID = 6;
	string StoreID = 7;
	repeated moby.buildkit.v1.sourcepolicy.Policy SourcePolicies = 8;
}

message ResolveImageConfigResponse {
	string Digest = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
	bytes Config = 2;
	string Ref = 3;
}

message ResolveSourceMetaRequest {
	pb.SourceOp Source = 1;
	pb.Platform Platform = 2;
	string LogName = 3;
	string ResolveMode = 4;
	repeated moby.buildkit.v1.sourcepolicy.Policy SourcePolicies = 8;
}

message ResolveSourceMetaResponse {
	pb.SourceOp Source = 1;
	ResolveSourceImageResponse Image = 2;
}

message ResolveSourceImageResponse {
	string Digest = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
	bytes Config = 2;
}

message SolveRequest {
	pb.Definition Definition = 1;
	string Frontend = 2;
	map<string, string> FrontendOpt = 3;
	// 4 was removed in BuildKit v0.11.0.
	bool allowResultReturn = 5;
	bool allowResultArrayRef = 6;

	// apicaps.CapSolveInlineReturn deprecated
	bool Final = 10;
	bytes ExporterAttr = 11;
	// CacheImports was added in BuildKit v0.4.0.
	// apicaps:CapImportCaches
	repeated CacheOptionsEntry CacheImports = 12;

	// apicaps:CapFrontendInputs
	map<string, pb.Definition> FrontendInputs = 13;

	bool Evaluate = 14;

	repeated moby.buildkit.v1.sourcepolicy.Policy SourcePolicies = 15;
}

// CacheOptionsEntry corresponds to the control.CacheOptionsEntry
message CacheOptionsEntry {
	string Type = 1;
	map<string, string> Attrs = 2;
}

message SolveResponse {
	// deprecated
	string ref = 1; // can be used by readfile request
	// deprecated
	// bytes ExporterAttr = 2;

	// these fields are returned when allowMapReturn was set
	Result result = 3;
}

message ReadFileRequest {
	string Ref = 1;
	string FilePath = 2;
	FileRange Range = 3;
}

message FileRange {
	int64 Offset = 1;
	int64 Length = 2;
}

message ReadFileResponse {
	bytes Data = 1;
}

message ReadDirRequest {
	string Ref = 1;
	string DirPath = 2;
	string IncludePattern = 3;
}

message ReadDirResponse {
	repeated fsutil.types.Stat entries = 1;
}

message StatFileRequest {
	string Ref = 1;
	string Path = 2;
}

message StatFileResponse {
	fsutil.types.Stat stat = 1;
}

message EvaluateRequest {
	string Ref = 1;
}

message EvaluateResponse {
}

message PingRequest{
}
message PongResponse{
	repeated moby.buildkit.v1.apicaps.APICap FrontendAPICaps = 1 [(gogoproto.nullable) = false];
	repeated moby.buildkit.v1.apicaps.APICap LLBCaps = 2 [(gogoproto.nullable) = false];
	repeated moby.buildkit.v1.types.WorkerRecord Workers = 3;
}

message WarnRequest {
	string digest = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
	int64 level = 2;
	bytes short = 3;
	repeated bytes detail = 4;
	string url = 5;
	pb.SourceInfo info = 6;
	repeated pb.Range ranges = 7;
}

message WarnResponse{}

message NewContainerRequest {
	string ContainerID = 1;
	// For mount input values we can use random identifiers passed with ref
	repeated pb.Mount Mounts = 2;
	pb.NetMode Network = 3;
	pb.Platform platform = 4;
	pb.WorkerConstraints constraints = 5;
	repeated pb.HostIP extraHosts = 6;
	string hostname = 7;
}

message NewContainerResponse{}

message ReleaseContainerRequest {
	string ContainerID = 1;
}

message ReleaseContainerResponse{}

message ExecMessage {
	string ProcessID = 1;
	oneof Input {
		// InitMessage sent from client to server will start a new process in a
		// container
		InitMessage Init = 2;
		// FdMessage used from client to server for input (stdin) and
		// from server to client for output (stdout, stderr)
		FdMessage File = 3;
		// ResizeMessage used from client to server for terminal resize events
		ResizeMessage Resize = 4;
		// StartedMessage sent from server to client after InitMessage to
		// indicate the process has started.
		StartedMessage Started = 5;
		// ExitMessage sent from server to client will contain the exit code
		// when the process ends.
		ExitMessage Exit = 6;
		// DoneMessage from server to client will be the last message for any
		// process.  Note that FdMessage might be sent after ExitMessage.
		DoneMessage Done = 7;
		// SignalMessage is used from client to server to send signal events
		SignalMessage Signal = 8;
	}
}

message InitMessage{
	string ContainerID = 1;
	pb.Meta Meta = 2;
	repeated uint32 Fds = 3;
	bool Tty = 4;
	pb.SecurityMode Security = 5;
	repeated pb.SecretEnv secretenv = 6;
}

message ExitMessage {
	uint32 Code = 1;
	google.rpc.Status Error = 2;
}

message StartedMessage{}

message DoneMessage{}

message FdMessage{
	uint32 Fd = 1; // what fd the data was from
	bool EOF = 2;  // true if eof was reached
	bytes Data = 3;
}

message ResizeMessage{
	uint32 Rows = 1;
	uint32 Cols = 2;
}

message SignalMessage {
	// we only send name (ie HUP, INT) because the int values
	// are platform dependent.
	string Name = 1;
}