teleport/lib/events/slice.proto
Sasha Klizhentas 71c15e5835 Add support for NFS-friendly log protocol.
* Session events are delivered in continuous
batches in a guaranteed order with every event
and print event ordered from session start.

* Each auth server writes to a separate folder
on disk to make sure that no two processes write
to the same file at a time.

* When retrieving sessions, auth servers fetch
and merge results recorded by each auth server.

* Migrations and compatibility modes are in place
for older clients not aware of the new format,
but compatibility mode is not NFS friendly.

* On disk migrations are launched automatically
during auth server upgrades.
2018-01-04 18:54:37 -08:00

41 lines
1.3 KiB
Protocol Buffer

syntax = "proto3";
package events;
import "github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/google/api/annotations.proto";
import "google/protobuf/empty.proto";
// SessionSlice is a slice of submitted chunks
message SessionSlice {
// Namespace is a session namespace
string Namespace = 1;
// SessionID is a session ID associated with this chunk
string SessionID = 2;
// Chunks is a list of submitted session chunks
repeated SessionChunk Chunks = 3;
// Version specifies session slice version
int64 Version = 4;
}
// SessionChunk is a chunk to be posted in the context of the session
message SessionChunk {
// Time is the occurence of this event
int64 Time = 2;
// Data is captured data, contains event fields in case of event, session data otherwise
bytes Data = 3;
// EventType is event type
string EventType = 4;
// EventIndex is the event global index
int64 EventIndex = 5;
// Index is the autoincremented chunk index
int64 ChunkIndex = 6;
// Offset is an offset from the previous chunk in bytes
int64 Offset = 7;
// Delay is a delay from the previous event in milliseconds
int64 Delay = 8;
}
service AuditLog {
rpc SubmitSessionSlice(stream SessionSlice) returns (google.protobuf.Empty) {
}
}