diff --git a/api/api.go b/api/api.go index bc86710708c..f5615c207f9 100644 --- a/api/api.go +++ b/api/api.go @@ -781,7 +781,7 @@ func (self *ApiServer) SetServerMonitoringState( } func (self *ApiServer) GetClientMonitoringState( - ctx context.Context, in *empty.Empty) ( + ctx context.Context, in *flows_proto.GetClientMonitoringStateRequest) ( *flows_proto.ClientEventTable, error) { defer Instrument("GetClientMonitoringState")() @@ -794,7 +794,14 @@ func (self *ApiServer) GetClientMonitoringState( "User is not allowed to read monitoring artifacts (%v).", permissions)) } - result := services.ClientEventManager().GetClientMonitoringState() + manager := services.ClientEventManager() + result := manager.GetClientMonitoringState() + if in.ClientId != "" { + message := manager.GetClientUpdateEventTableMessage(self.config, + in.ClientId) + result.ClientMessage = message + } + return result, err } diff --git a/api/mock/api_mock.go b/api/mock/api_mock.go index 7f7ad80e67f..650b4a314f8 100644 --- a/api/mock/api_mock.go +++ b/api/mock/api_mock.go @@ -302,7 +302,7 @@ func (mr *MockAPIClientMockRecorder) GetClientMetadata(arg0, arg1 interface{}, a } // GetClientMonitoringState mocks base method. -func (m *MockAPIClient) GetClientMonitoringState(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*proto2.ClientEventTable, error) { +func (m *MockAPIClient) GetClientMonitoringState(arg0 context.Context, arg1 *proto2.GetClientMonitoringStateRequest, arg2 ...grpc.CallOption) (*proto2.ClientEventTable, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} for _, a := range arg2 { diff --git a/api/proto/api.pb.go b/api/proto/api.pb.go index f88ae387bff..5ae9e09cc96 100644 --- a/api/proto/api.pb.go +++ b/api/proto/api.pb.go @@ -636,7 +636,7 @@ var file_api_proto_rawDesc = []byte{ 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x32, 0xb6, 0x2c, 0x0a, 0x03, 0x41, 0x50, + 0x28, 0x0c, 0x52, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x32, 0xc7, 0x2c, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x12, 0x52, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, @@ -871,131 +871,132 @@ var file_api_proto_rawDesc = []byte{ 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x78, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9c, 0x01, 0x0a, 0x19, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x5a, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1a, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x78, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9c, 0x01, 0x0a, 0x19, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, + 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, + 0x5a, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x1c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, + 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x5f, 0x0a, 0x0b, 0x4e, + 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x65, + 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x0e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0f, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x65, 0x77, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, + 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, + 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, - 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x1c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x5f, 0x0a, 0x0b, 0x4e, 0x65, - 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x65, 0x77, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x0e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, - 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0f, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x65, 0x77, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x63, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, - 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, - 0x6c, 0x6c, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, - 0x65, 0x6c, 0x6c, 0x12, 0x6c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x01, - 0x2a, 0x12, 0x6f, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, - 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, - 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x65, 0x6c, 0x6c, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x6c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, + 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, + 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, + 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, - 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, - 0x12, 0x3c, 0x0a, 0x0c, 0x56, 0x46, 0x53, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x46, 0x69, 0x6c, 0x65, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, - 0x46, 0x53, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x00, 0x12, 0x38, - 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, - 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x0a, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x73, 0x68, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x72, 0x69, 0x74, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, + 0x2a, 0x12, 0x3c, 0x0a, 0x0c, 0x56, 0x46, 0x53, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x46, 0x69, 0x6c, + 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x46, 0x53, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x00, 0x12, + 0x38, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, + 0x73, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x0a, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x73, + 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, + 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, + 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, + 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1012,69 +1013,70 @@ func file_api_proto_rawDescGZIP() []byte { var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_api_proto_goTypes = []interface{}{ - (*StartFlowResponse)(nil), // 0: proto.StartFlowResponse - (*Approval)(nil), // 1: proto.Approval - (*ApprovalList)(nil), // 2: proto.ApprovalList - (*VFSRefreshDirectoryRequest)(nil), // 3: proto.VFSRefreshDirectoryRequest - (*VFSFileBuffer)(nil), // 4: proto.VFSFileBuffer - (*NotificationRequest)(nil), // 5: proto.NotificationRequest - (*EventRequest)(nil), // 6: proto.EventRequest - (*EventResponse)(nil), // 7: proto.EventResponse - (*PushEventRequest)(nil), // 8: proto.PushEventRequest - (*Hunt)(nil), // 9: proto.Hunt - (*ListHuntsRequest)(nil), // 10: proto.ListHuntsRequest - (*GetHuntRequest)(nil), // 11: proto.GetHuntRequest - (*GetTableRequest)(nil), // 12: proto.GetTableRequest - (*GetHuntResultsRequest)(nil), // 13: proto.GetHuntResultsRequest - (*LabelClientsRequest)(nil), // 14: proto.LabelClientsRequest - (*SearchClientsRequest)(nil), // 15: proto.SearchClientsRequest - (*GetClientRequest)(nil), // 16: proto.GetClientRequest - (*ClientMetadata)(nil), // 17: proto.ClientMetadata - (*ApiFlowRequest)(nil), // 18: proto.ApiFlowRequest - (*empty.Empty)(nil), // 19: google.protobuf.Empty - (*SetGUIOptionsRequest)(nil), // 20: proto.SetGUIOptionsRequest - (*Favorite)(nil), // 21: proto.Favorite - (*VFSListRequest)(nil), // 22: proto.VFSListRequest - (*VFSStatDownloadRequest)(nil), // 23: proto.VFSStatDownloadRequest - (*proto.ArtifactCollectorArgs)(nil), // 24: proto.ArtifactCollectorArgs - (*GetArtifactsRequest)(nil), // 25: proto.GetArtifactsRequest - (*GetArtifactRequest)(nil), // 26: proto.GetArtifactRequest - (*SetArtifactRequest)(nil), // 27: proto.SetArtifactRequest - (*proto1.Tool)(nil), // 28: proto.Tool - (*GetReportRequest)(nil), // 29: proto.GetReportRequest - (*proto.ClientEventTable)(nil), // 30: proto.ClientEventTable - (*ListAvailableEventResultsRequest)(nil), // 31: proto.ListAvailableEventResultsRequest - (*CreateDownloadRequest)(nil), // 32: proto.CreateDownloadRequest - (*NotebookCellRequest)(nil), // 33: proto.NotebookCellRequest - (*NotebookMetadata)(nil), // 34: proto.NotebookMetadata - (*NotebookExportRequest)(nil), // 35: proto.NotebookExportRequest - (*NotebookFileUploadRequest)(nil), // 36: proto.NotebookFileUploadRequest - (*proto2.VQLCollectorArgs)(nil), // 37: proto.VQLCollectorArgs - (*proto2.VQLResponse)(nil), // 38: proto.VQLResponse - (*ListHuntsResponse)(nil), // 39: proto.ListHuntsResponse - (*GetTableResponse)(nil), // 40: proto.GetTableResponse - (*APIResponse)(nil), // 41: proto.APIResponse - (*SearchClientsResponse)(nil), // 42: proto.SearchClientsResponse - (*ApiClient)(nil), // 43: proto.ApiClient - (*ApiFlowResponse)(nil), // 44: proto.ApiFlowResponse - (*ApiGrrUser)(nil), // 45: proto.ApiGrrUser - (*Users)(nil), // 46: proto.Users - (*Favorites)(nil), // 47: proto.Favorites - (*VFSListResponse)(nil), // 48: proto.VFSListResponse - (*proto.ArtifactCollectorResponse)(nil), // 49: proto.ArtifactCollectorResponse - (*proto.VFSDownloadInfo)(nil), // 50: proto.VFSDownloadInfo - (*FlowDetails)(nil), // 51: proto.FlowDetails - (*ApiFlowRequestDetails)(nil), // 52: proto.ApiFlowRequestDetails - (*KeywordCompletions)(nil), // 53: proto.KeywordCompletions - (*proto1.ArtifactDescriptors)(nil), // 54: proto.ArtifactDescriptors - (*GetArtifactResponse)(nil), // 55: proto.GetArtifactResponse - (*LoadArtifactPackResponse)(nil), // 56: proto.LoadArtifactPackResponse - (*GetReportResponse)(nil), // 57: proto.GetReportResponse - (*ListAvailableEventResultsResponse)(nil), // 58: proto.ListAvailableEventResultsResponse - (*CreateDownloadResponse)(nil), // 59: proto.CreateDownloadResponse - (*Notebooks)(nil), // 60: proto.Notebooks - (*NotebookCell)(nil), // 61: proto.NotebookCell - (*NotebookFileUploadResponse)(nil), // 62: proto.NotebookFileUploadResponse + (*StartFlowResponse)(nil), // 0: proto.StartFlowResponse + (*Approval)(nil), // 1: proto.Approval + (*ApprovalList)(nil), // 2: proto.ApprovalList + (*VFSRefreshDirectoryRequest)(nil), // 3: proto.VFSRefreshDirectoryRequest + (*VFSFileBuffer)(nil), // 4: proto.VFSFileBuffer + (*NotificationRequest)(nil), // 5: proto.NotificationRequest + (*EventRequest)(nil), // 6: proto.EventRequest + (*EventResponse)(nil), // 7: proto.EventResponse + (*PushEventRequest)(nil), // 8: proto.PushEventRequest + (*Hunt)(nil), // 9: proto.Hunt + (*ListHuntsRequest)(nil), // 10: proto.ListHuntsRequest + (*GetHuntRequest)(nil), // 11: proto.GetHuntRequest + (*GetTableRequest)(nil), // 12: proto.GetTableRequest + (*GetHuntResultsRequest)(nil), // 13: proto.GetHuntResultsRequest + (*LabelClientsRequest)(nil), // 14: proto.LabelClientsRequest + (*SearchClientsRequest)(nil), // 15: proto.SearchClientsRequest + (*GetClientRequest)(nil), // 16: proto.GetClientRequest + (*ClientMetadata)(nil), // 17: proto.ClientMetadata + (*ApiFlowRequest)(nil), // 18: proto.ApiFlowRequest + (*empty.Empty)(nil), // 19: google.protobuf.Empty + (*SetGUIOptionsRequest)(nil), // 20: proto.SetGUIOptionsRequest + (*Favorite)(nil), // 21: proto.Favorite + (*VFSListRequest)(nil), // 22: proto.VFSListRequest + (*VFSStatDownloadRequest)(nil), // 23: proto.VFSStatDownloadRequest + (*proto.ArtifactCollectorArgs)(nil), // 24: proto.ArtifactCollectorArgs + (*GetArtifactsRequest)(nil), // 25: proto.GetArtifactsRequest + (*GetArtifactRequest)(nil), // 26: proto.GetArtifactRequest + (*SetArtifactRequest)(nil), // 27: proto.SetArtifactRequest + (*proto1.Tool)(nil), // 28: proto.Tool + (*GetReportRequest)(nil), // 29: proto.GetReportRequest + (*proto.GetClientMonitoringStateRequest)(nil), // 30: proto.GetClientMonitoringStateRequest + (*proto.ClientEventTable)(nil), // 31: proto.ClientEventTable + (*ListAvailableEventResultsRequest)(nil), // 32: proto.ListAvailableEventResultsRequest + (*CreateDownloadRequest)(nil), // 33: proto.CreateDownloadRequest + (*NotebookCellRequest)(nil), // 34: proto.NotebookCellRequest + (*NotebookMetadata)(nil), // 35: proto.NotebookMetadata + (*NotebookExportRequest)(nil), // 36: proto.NotebookExportRequest + (*NotebookFileUploadRequest)(nil), // 37: proto.NotebookFileUploadRequest + (*proto2.VQLCollectorArgs)(nil), // 38: proto.VQLCollectorArgs + (*proto2.VQLResponse)(nil), // 39: proto.VQLResponse + (*ListHuntsResponse)(nil), // 40: proto.ListHuntsResponse + (*GetTableResponse)(nil), // 41: proto.GetTableResponse + (*APIResponse)(nil), // 42: proto.APIResponse + (*SearchClientsResponse)(nil), // 43: proto.SearchClientsResponse + (*ApiClient)(nil), // 44: proto.ApiClient + (*ApiFlowResponse)(nil), // 45: proto.ApiFlowResponse + (*ApiGrrUser)(nil), // 46: proto.ApiGrrUser + (*Users)(nil), // 47: proto.Users + (*Favorites)(nil), // 48: proto.Favorites + (*VFSListResponse)(nil), // 49: proto.VFSListResponse + (*proto.ArtifactCollectorResponse)(nil), // 50: proto.ArtifactCollectorResponse + (*proto.VFSDownloadInfo)(nil), // 51: proto.VFSDownloadInfo + (*FlowDetails)(nil), // 52: proto.FlowDetails + (*ApiFlowRequestDetails)(nil), // 53: proto.ApiFlowRequestDetails + (*KeywordCompletions)(nil), // 54: proto.KeywordCompletions + (*proto1.ArtifactDescriptors)(nil), // 55: proto.ArtifactDescriptors + (*GetArtifactResponse)(nil), // 56: proto.GetArtifactResponse + (*LoadArtifactPackResponse)(nil), // 57: proto.LoadArtifactPackResponse + (*GetReportResponse)(nil), // 58: proto.GetReportResponse + (*ListAvailableEventResultsResponse)(nil), // 59: proto.ListAvailableEventResultsResponse + (*CreateDownloadResponse)(nil), // 60: proto.CreateDownloadResponse + (*Notebooks)(nil), // 61: proto.Notebooks + (*NotebookCell)(nil), // 62: proto.NotebookCell + (*NotebookFileUploadResponse)(nil), // 63: proto.NotebookFileUploadResponse } var file_api_proto_depIdxs = []int32{ 1, // 0: proto.ApprovalList.items:type_name -> proto.Approval @@ -1115,78 +1117,78 @@ var file_api_proto_depIdxs = []int32{ 29, // 35: proto.API.GetReport:input_type -> proto.GetReportRequest 19, // 36: proto.API.GetServerMonitoringState:input_type -> google.protobuf.Empty 24, // 37: proto.API.SetServerMonitoringState:input_type -> proto.ArtifactCollectorArgs - 19, // 38: proto.API.GetClientMonitoringState:input_type -> google.protobuf.Empty - 30, // 39: proto.API.SetClientMonitoringState:input_type -> proto.ClientEventTable - 31, // 40: proto.API.ListAvailableEventResults:input_type -> proto.ListAvailableEventResultsRequest - 32, // 41: proto.API.CreateDownloadFile:input_type -> proto.CreateDownloadRequest - 33, // 42: proto.API.GetNotebooks:input_type -> proto.NotebookCellRequest - 34, // 43: proto.API.NewNotebook:input_type -> proto.NotebookMetadata - 34, // 44: proto.API.UpdateNotebook:input_type -> proto.NotebookMetadata - 33, // 45: proto.API.NewNotebookCell:input_type -> proto.NotebookCellRequest - 33, // 46: proto.API.GetNotebookCell:input_type -> proto.NotebookCellRequest - 33, // 47: proto.API.UpdateNotebookCell:input_type -> proto.NotebookCellRequest - 33, // 48: proto.API.CancelNotebookCell:input_type -> proto.NotebookCellRequest - 35, // 49: proto.API.CreateNotebookDownloadFile:input_type -> proto.NotebookExportRequest - 36, // 50: proto.API.UploadNotebookAttachment:input_type -> proto.NotebookFileUploadRequest - 35, // 51: proto.API.ExportNotebook:input_type -> proto.NotebookExportRequest + 30, // 38: proto.API.GetClientMonitoringState:input_type -> proto.GetClientMonitoringStateRequest + 31, // 39: proto.API.SetClientMonitoringState:input_type -> proto.ClientEventTable + 32, // 40: proto.API.ListAvailableEventResults:input_type -> proto.ListAvailableEventResultsRequest + 33, // 41: proto.API.CreateDownloadFile:input_type -> proto.CreateDownloadRequest + 34, // 42: proto.API.GetNotebooks:input_type -> proto.NotebookCellRequest + 35, // 43: proto.API.NewNotebook:input_type -> proto.NotebookMetadata + 35, // 44: proto.API.UpdateNotebook:input_type -> proto.NotebookMetadata + 34, // 45: proto.API.NewNotebookCell:input_type -> proto.NotebookCellRequest + 34, // 46: proto.API.GetNotebookCell:input_type -> proto.NotebookCellRequest + 34, // 47: proto.API.UpdateNotebookCell:input_type -> proto.NotebookCellRequest + 34, // 48: proto.API.CancelNotebookCell:input_type -> proto.NotebookCellRequest + 36, // 49: proto.API.CreateNotebookDownloadFile:input_type -> proto.NotebookExportRequest + 37, // 50: proto.API.UploadNotebookAttachment:input_type -> proto.NotebookFileUploadRequest + 36, // 51: proto.API.ExportNotebook:input_type -> proto.NotebookExportRequest 4, // 52: proto.API.VFSGetBuffer:input_type -> proto.VFSFileBuffer - 37, // 53: proto.API.Query:input_type -> proto.VQLCollectorArgs + 38, // 53: proto.API.Query:input_type -> proto.VQLCollectorArgs 6, // 54: proto.API.WatchEvent:input_type -> proto.EventRequest 8, // 55: proto.API.PushEvents:input_type -> proto.PushEventRequest - 38, // 56: proto.API.WriteEvent:input_type -> proto.VQLResponse + 39, // 56: proto.API.WriteEvent:input_type -> proto.VQLResponse 0, // 57: proto.API.CreateHunt:output_type -> proto.StartFlowResponse - 39, // 58: proto.API.ListHunts:output_type -> proto.ListHuntsResponse + 40, // 58: proto.API.ListHunts:output_type -> proto.ListHuntsResponse 9, // 59: proto.API.GetHunt:output_type -> proto.Hunt 19, // 60: proto.API.ModifyHunt:output_type -> google.protobuf.Empty - 40, // 61: proto.API.GetHuntFlows:output_type -> proto.GetTableResponse - 40, // 62: proto.API.GetHuntResults:output_type -> proto.GetTableResponse + 41, // 61: proto.API.GetHuntFlows:output_type -> proto.GetTableResponse + 41, // 62: proto.API.GetHuntResults:output_type -> proto.GetTableResponse 19, // 63: proto.API.NotifyClients:output_type -> google.protobuf.Empty - 41, // 64: proto.API.LabelClients:output_type -> proto.APIResponse - 42, // 65: proto.API.ListClients:output_type -> proto.SearchClientsResponse - 43, // 66: proto.API.GetClient:output_type -> proto.ApiClient + 42, // 64: proto.API.LabelClients:output_type -> proto.APIResponse + 43, // 65: proto.API.ListClients:output_type -> proto.SearchClientsResponse + 44, // 66: proto.API.GetClient:output_type -> proto.ApiClient 17, // 67: proto.API.GetClientMetadata:output_type -> proto.ClientMetadata 19, // 68: proto.API.SetClientMetadata:output_type -> google.protobuf.Empty - 44, // 69: proto.API.GetClientFlows:output_type -> proto.ApiFlowResponse - 45, // 70: proto.API.GetUserUITraits:output_type -> proto.ApiGrrUser + 45, // 69: proto.API.GetClientFlows:output_type -> proto.ApiFlowResponse + 46, // 70: proto.API.GetUserUITraits:output_type -> proto.ApiGrrUser 19, // 71: proto.API.SetGUIOptions:output_type -> google.protobuf.Empty - 46, // 72: proto.API.GetUsers:output_type -> proto.Users - 47, // 73: proto.API.GetUserFavorites:output_type -> proto.Favorites - 48, // 74: proto.API.VFSListDirectory:output_type -> proto.VFSListResponse - 49, // 75: proto.API.VFSRefreshDirectory:output_type -> proto.ArtifactCollectorResponse - 48, // 76: proto.API.VFSStatDirectory:output_type -> proto.VFSListResponse - 50, // 77: proto.API.VFSStatDownload:output_type -> proto.VFSDownloadInfo - 40, // 78: proto.API.GetTable:output_type -> proto.GetTableResponse - 49, // 79: proto.API.CollectArtifact:output_type -> proto.ArtifactCollectorResponse + 47, // 72: proto.API.GetUsers:output_type -> proto.Users + 48, // 73: proto.API.GetUserFavorites:output_type -> proto.Favorites + 49, // 74: proto.API.VFSListDirectory:output_type -> proto.VFSListResponse + 50, // 75: proto.API.VFSRefreshDirectory:output_type -> proto.ArtifactCollectorResponse + 49, // 76: proto.API.VFSStatDirectory:output_type -> proto.VFSListResponse + 51, // 77: proto.API.VFSStatDownload:output_type -> proto.VFSDownloadInfo + 41, // 78: proto.API.GetTable:output_type -> proto.GetTableResponse + 50, // 79: proto.API.CollectArtifact:output_type -> proto.ArtifactCollectorResponse 0, // 80: proto.API.CancelFlow:output_type -> proto.StartFlowResponse 0, // 81: proto.API.ArchiveFlow:output_type -> proto.StartFlowResponse - 51, // 82: proto.API.GetFlowDetails:output_type -> proto.FlowDetails - 52, // 83: proto.API.GetFlowRequests:output_type -> proto.ApiFlowRequestDetails - 53, // 84: proto.API.GetKeywordCompletions:output_type -> proto.KeywordCompletions - 54, // 85: proto.API.GetArtifacts:output_type -> proto.ArtifactDescriptors - 55, // 86: proto.API.GetArtifactFile:output_type -> proto.GetArtifactResponse - 41, // 87: proto.API.SetArtifactFile:output_type -> proto.APIResponse - 56, // 88: proto.API.LoadArtifactPack:output_type -> proto.LoadArtifactPackResponse + 52, // 82: proto.API.GetFlowDetails:output_type -> proto.FlowDetails + 53, // 83: proto.API.GetFlowRequests:output_type -> proto.ApiFlowRequestDetails + 54, // 84: proto.API.GetKeywordCompletions:output_type -> proto.KeywordCompletions + 55, // 85: proto.API.GetArtifacts:output_type -> proto.ArtifactDescriptors + 56, // 86: proto.API.GetArtifactFile:output_type -> proto.GetArtifactResponse + 42, // 87: proto.API.SetArtifactFile:output_type -> proto.APIResponse + 57, // 88: proto.API.LoadArtifactPack:output_type -> proto.LoadArtifactPackResponse 28, // 89: proto.API.GetToolInfo:output_type -> proto.Tool 28, // 90: proto.API.SetToolInfo:output_type -> proto.Tool - 57, // 91: proto.API.GetReport:output_type -> proto.GetReportResponse + 58, // 91: proto.API.GetReport:output_type -> proto.GetReportResponse 24, // 92: proto.API.GetServerMonitoringState:output_type -> proto.ArtifactCollectorArgs 24, // 93: proto.API.SetServerMonitoringState:output_type -> proto.ArtifactCollectorArgs - 30, // 94: proto.API.GetClientMonitoringState:output_type -> proto.ClientEventTable + 31, // 94: proto.API.GetClientMonitoringState:output_type -> proto.ClientEventTable 19, // 95: proto.API.SetClientMonitoringState:output_type -> google.protobuf.Empty - 58, // 96: proto.API.ListAvailableEventResults:output_type -> proto.ListAvailableEventResultsResponse - 59, // 97: proto.API.CreateDownloadFile:output_type -> proto.CreateDownloadResponse - 60, // 98: proto.API.GetNotebooks:output_type -> proto.Notebooks - 34, // 99: proto.API.NewNotebook:output_type -> proto.NotebookMetadata - 34, // 100: proto.API.UpdateNotebook:output_type -> proto.NotebookMetadata - 34, // 101: proto.API.NewNotebookCell:output_type -> proto.NotebookMetadata - 61, // 102: proto.API.GetNotebookCell:output_type -> proto.NotebookCell - 61, // 103: proto.API.UpdateNotebookCell:output_type -> proto.NotebookCell + 59, // 96: proto.API.ListAvailableEventResults:output_type -> proto.ListAvailableEventResultsResponse + 60, // 97: proto.API.CreateDownloadFile:output_type -> proto.CreateDownloadResponse + 61, // 98: proto.API.GetNotebooks:output_type -> proto.Notebooks + 35, // 99: proto.API.NewNotebook:output_type -> proto.NotebookMetadata + 35, // 100: proto.API.UpdateNotebook:output_type -> proto.NotebookMetadata + 35, // 101: proto.API.NewNotebookCell:output_type -> proto.NotebookMetadata + 62, // 102: proto.API.GetNotebookCell:output_type -> proto.NotebookCell + 62, // 103: proto.API.UpdateNotebookCell:output_type -> proto.NotebookCell 19, // 104: proto.API.CancelNotebookCell:output_type -> google.protobuf.Empty 19, // 105: proto.API.CreateNotebookDownloadFile:output_type -> google.protobuf.Empty - 62, // 106: proto.API.UploadNotebookAttachment:output_type -> proto.NotebookFileUploadResponse + 63, // 106: proto.API.UploadNotebookAttachment:output_type -> proto.NotebookFileUploadResponse 19, // 107: proto.API.ExportNotebook:output_type -> google.protobuf.Empty 4, // 108: proto.API.VFSGetBuffer:output_type -> proto.VFSFileBuffer - 38, // 109: proto.API.Query:output_type -> proto.VQLResponse + 39, // 109: proto.API.Query:output_type -> proto.VQLResponse 7, // 110: proto.API.WatchEvent:output_type -> proto.EventResponse 19, // 111: proto.API.PushEvents:output_type -> google.protobuf.Empty 19, // 112: proto.API.WriteEvent:output_type -> google.protobuf.Empty diff --git a/api/proto/api.pb.gw.go b/api/proto/api.pb.gw.go index c8d3d42236d..d154931a974 100644 --- a/api/proto/api.pb.gw.go +++ b/api/proto/api.pb.gw.go @@ -23,7 +23,7 @@ import ( "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" proto_3 "www.velocidex.com/golang/velociraptor/artifacts/proto" - proto_0 "www.velocidex.com/golang/velociraptor/flows/proto" + proto_2 "www.velocidex.com/golang/velociraptor/flows/proto" ) // Suppress "imported and not used" errors @@ -983,7 +983,7 @@ func local_request_API_GetTable_0(ctx context.Context, marshaler runtime.Marshal } func request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_2.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1000,7 +1000,7 @@ func request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marsha } func local_request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_2.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1437,7 +1437,7 @@ func local_request_API_GetServerMonitoringState_0(ctx context.Context, marshaler } func request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_2.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1454,7 +1454,7 @@ func request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runti } func local_request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_2.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1470,26 +1470,44 @@ func local_request_API_SetServerMonitoringState_0(ctx context.Context, marshaler } +var ( + filter_API_GetClientMonitoringState_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + func request_API_GetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty + var protoReq proto_2.GetClientMonitoringStateRequest var metadata runtime.ServerMetadata + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_API_GetClientMonitoringState_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.GetClientMonitoringState(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } func local_request_API_GetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty + var protoReq proto_2.GetClientMonitoringStateRequest var metadata runtime.ServerMetadata + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_API_GetClientMonitoringState_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.GetClientMonitoringState(ctx, &protoReq) return msg, metadata, err } func request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ClientEventTable + var protoReq proto_2.ClientEventTable var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1506,7 +1524,7 @@ func request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runti } func local_request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ClientEventTable + var protoReq proto_2.ClientEventTable var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) diff --git a/api/proto/api.proto b/api/proto/api.proto index 89f1a922f85..53e95591f48 100644 --- a/api/proto/api.proto +++ b/api/proto/api.proto @@ -353,7 +353,7 @@ service API { // Client Monitoring Artifacts - manage the Client Monitoring // Service. - rpc GetClientMonitoringState(google.protobuf.Empty) returns (ClientEventTable) { + rpc GetClientMonitoringState(GetClientMonitoringStateRequest) returns (ClientEventTable) { option (google.api.http) = { get: "/api/v1/GetClientMonitoringState", }; diff --git a/api/proto/api_grpc.pb.go b/api/proto/api_grpc.pb.go index cd0209a6fd4..3748bb14083 100644 --- a/api/proto/api_grpc.pb.go +++ b/api/proto/api_grpc.pb.go @@ -74,7 +74,7 @@ type APIClient interface { SetServerMonitoringState(ctx context.Context, in *proto.ArtifactCollectorArgs, opts ...grpc.CallOption) (*proto.ArtifactCollectorArgs, error) // Client Monitoring Artifacts - manage the Client Monitoring // Service. - GetClientMonitoringState(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*proto.ClientEventTable, error) + GetClientMonitoringState(ctx context.Context, in *proto.GetClientMonitoringStateRequest, opts ...grpc.CallOption) (*proto.ClientEventTable, error) // Client Monitoring Artifacts - manage the Client Monitoring // Service. SetClientMonitoringState(ctx context.Context, in *proto.ClientEventTable, opts ...grpc.CallOption) (*empty.Empty, error) @@ -445,7 +445,7 @@ func (c *aPIClient) SetServerMonitoringState(ctx context.Context, in *proto.Arti return out, nil } -func (c *aPIClient) GetClientMonitoringState(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*proto.ClientEventTable, error) { +func (c *aPIClient) GetClientMonitoringState(ctx context.Context, in *proto.GetClientMonitoringStateRequest, opts ...grpc.CallOption) (*proto.ClientEventTable, error) { out := new(proto.ClientEventTable) err := c.cc.Invoke(ctx, "/proto.API/GetClientMonitoringState", in, out, opts...) if err != nil { @@ -718,7 +718,7 @@ type APIServer interface { SetServerMonitoringState(context.Context, *proto.ArtifactCollectorArgs) (*proto.ArtifactCollectorArgs, error) // Client Monitoring Artifacts - manage the Client Monitoring // Service. - GetClientMonitoringState(context.Context, *empty.Empty) (*proto.ClientEventTable, error) + GetClientMonitoringState(context.Context, *proto.GetClientMonitoringStateRequest) (*proto.ClientEventTable, error) // Client Monitoring Artifacts - manage the Client Monitoring // Service. SetClientMonitoringState(context.Context, *proto.ClientEventTable) (*empty.Empty, error) @@ -864,7 +864,7 @@ func (UnimplementedAPIServer) GetServerMonitoringState(context.Context, *empty.E func (UnimplementedAPIServer) SetServerMonitoringState(context.Context, *proto.ArtifactCollectorArgs) (*proto.ArtifactCollectorArgs, error) { return nil, status.Errorf(codes.Unimplemented, "method SetServerMonitoringState not implemented") } -func (UnimplementedAPIServer) GetClientMonitoringState(context.Context, *empty.Empty) (*proto.ClientEventTable, error) { +func (UnimplementedAPIServer) GetClientMonitoringState(context.Context, *proto.GetClientMonitoringStateRequest) (*proto.ClientEventTable, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClientMonitoringState not implemented") } func (UnimplementedAPIServer) SetClientMonitoringState(context.Context, *proto.ClientEventTable) (*empty.Empty, error) { @@ -1601,7 +1601,7 @@ func _API_SetServerMonitoringState_Handler(srv interface{}, ctx context.Context, } func _API_GetClientMonitoringState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(empty.Empty) + in := new(proto.GetClientMonitoringStateRequest) if err := dec(in); err != nil { return nil, err } @@ -1613,7 +1613,7 @@ func _API_GetClientMonitoringState_Handler(srv interface{}, ctx context.Context, FullMethod: "/proto.API/GetClientMonitoringState", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(APIServer).GetClientMonitoringState(ctx, req.(*empty.Empty)) + return srv.(APIServer).GetClientMonitoringState(ctx, req.(*proto.GetClientMonitoringStateRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/api/server_monitoring.go b/api/server_monitoring.go index cdc3e3dd51e..d1eff392b77 100644 --- a/api/server_monitoring.go +++ b/api/server_monitoring.go @@ -21,6 +21,7 @@ func getServerMonitoringState(config_obj *config_proto.Config) ( result, ) _ = err // if an error we return an empty collector args. + return result, nil } diff --git a/file_store/test_utils/testsuite.go b/file_store/test_utils/testsuite.go index 97bb192600f..90a4c0fa39b 100644 --- a/file_store/test_utils/testsuite.go +++ b/file_store/test_utils/testsuite.go @@ -45,8 +45,8 @@ func (self *TestSuite) SetupTest() { require.NoError(self.T(), self.Sm.Start(journal.StartJournalService)) require.NoError(self.T(), self.Sm.Start(notifications.StartNotificationService)) require.NoError(self.T(), self.Sm.Start(inventory.StartInventoryService)) - require.NoError(self.T(), self.Sm.Start(repository.StartRepositoryManager)) require.NoError(self.T(), self.Sm.Start(launcher.StartLauncherService)) + require.NoError(self.T(), self.Sm.Start(repository.StartRepositoryManager)) require.NoError(self.T(), self.Sm.Start(labels.StartLabelService)) } diff --git a/flows/proto/artifact_collector.pb.go b/flows/proto/artifact_collector.pb.go index 80171862b06..094fed20f5c 100644 --- a/flows/proto/artifact_collector.pb.go +++ b/flows/proto/artifact_collector.pb.go @@ -749,6 +749,55 @@ func (x *LabelEvents) GetArtifacts() *ArtifactCollectorArgs { return nil } +type GetClientMonitoringStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Show the compiled monitoring table from the point of view of + // this client. + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` +} + +func (x *GetClientMonitoringStateRequest) Reset() { + *x = GetClientMonitoringStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_artifact_collector_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetClientMonitoringStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClientMonitoringStateRequest) ProtoMessage() {} + +func (x *GetClientMonitoringStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_artifact_collector_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClientMonitoringStateRequest.ProtoReflect.Descriptor instead. +func (*GetClientMonitoringStateRequest) Descriptor() ([]byte, []int) { + return file_artifact_collector_proto_rawDescGZIP(), []int{7} +} + +func (x *GetClientMonitoringStateRequest) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + // This is stored in the ArtifactCollector state. type ClientEventTable struct { state protoimpl.MessageState @@ -759,12 +808,14 @@ type ClientEventTable struct { // Artifacts to collect from ALL clients. Artifacts *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=artifacts,proto3" json:"artifacts,omitempty"` LabelEvents []*LabelEvents `protobuf:"bytes,3,rep,name=label_events,json=labelEvents,proto3" json:"label_events,omitempty"` + // populated for GetClientMonitoringState() + ClientMessage *proto1.VeloMessage `protobuf:"bytes,4,opt,name=client_message,json=clientMessage,proto3" json:"client_message,omitempty"` } func (x *ClientEventTable) Reset() { *x = ClientEventTable{} if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[7] + mi := &file_artifact_collector_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -777,7 +828,7 @@ func (x *ClientEventTable) String() string { func (*ClientEventTable) ProtoMessage() {} func (x *ClientEventTable) ProtoReflect() protoreflect.Message { - mi := &file_artifact_collector_proto_msgTypes[7] + mi := &file_artifact_collector_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -790,7 +841,7 @@ func (x *ClientEventTable) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientEventTable.ProtoReflect.Descriptor instead. func (*ClientEventTable) Descriptor() ([]byte, []int) { - return file_artifact_collector_proto_rawDescGZIP(), []int{7} + return file_artifact_collector_proto_rawDescGZIP(), []int{8} } func (x *ClientEventTable) GetVersion() uint64 { @@ -814,6 +865,13 @@ func (x *ClientEventTable) GetLabelEvents() []*LabelEvents { return nil } +func (x *ClientEventTable) GetClientMessage() *proto1.VeloMessage { + if x != nil { + return x.ClientMessage + } + return nil +} + type UploadedFileInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -827,7 +885,7 @@ type UploadedFileInfo struct { func (x *UploadedFileInfo) Reset() { *x = UploadedFileInfo{} if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[8] + mi := &file_artifact_collector_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -840,7 +898,7 @@ func (x *UploadedFileInfo) String() string { func (*UploadedFileInfo) ProtoMessage() {} func (x *UploadedFileInfo) ProtoReflect() protoreflect.Message { - mi := &file_artifact_collector_proto_msgTypes[8] + mi := &file_artifact_collector_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -853,7 +911,7 @@ func (x *UploadedFileInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadedFileInfo.ProtoReflect.Descriptor instead. func (*UploadedFileInfo) Descriptor() ([]byte, []int) { - return file_artifact_collector_proto_rawDescGZIP(), []int{8} + return file_artifact_collector_proto_rawDescGZIP(), []int{9} } func (x *UploadedFileInfo) GetName() string { @@ -1047,7 +1105,11 @@ var file_artifact_collector_proto_rawDesc = []byte{ 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, @@ -1057,16 +1119,20 @@ var file_artifact_collector_proto_rawDesc = []byte{ 0x74, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x55, 0x0a, 0x10, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x42, 0x33, 0x5a, 0x31, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, - 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x77, + 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, + 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1082,40 +1148,43 @@ func file_artifact_collector_proto_rawDescGZIP() []byte { } var file_artifact_collector_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_artifact_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_artifact_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_artifact_collector_proto_goTypes = []interface{}{ - (ArtifactCollectorContext_State)(0), // 0: proto.ArtifactCollectorContext.State - (*ArtifactParameters)(nil), // 1: proto.ArtifactParameters - (*ArtifactSpec)(nil), // 2: proto.ArtifactSpec - (*ArtifactCollectorArgs)(nil), // 3: proto.ArtifactCollectorArgs - (*ArtifactCollectorResponse)(nil), // 4: proto.ArtifactCollectorResponse - (*ArtifactUploadedFileInfo)(nil), // 5: proto.ArtifactUploadedFileInfo - (*ArtifactCollectorContext)(nil), // 6: proto.ArtifactCollectorContext - (*LabelEvents)(nil), // 7: proto.LabelEvents - (*ClientEventTable)(nil), // 8: proto.ClientEventTable - (*UploadedFileInfo)(nil), // 9: proto.UploadedFileInfo - (*proto.VQLEnv)(nil), // 10: proto.VQLEnv - (*proto.VQLCollectorArgs)(nil), // 11: proto.VQLCollectorArgs - (*proto1.LogMessage)(nil), // 12: proto.LogMessage + (ArtifactCollectorContext_State)(0), // 0: proto.ArtifactCollectorContext.State + (*ArtifactParameters)(nil), // 1: proto.ArtifactParameters + (*ArtifactSpec)(nil), // 2: proto.ArtifactSpec + (*ArtifactCollectorArgs)(nil), // 3: proto.ArtifactCollectorArgs + (*ArtifactCollectorResponse)(nil), // 4: proto.ArtifactCollectorResponse + (*ArtifactUploadedFileInfo)(nil), // 5: proto.ArtifactUploadedFileInfo + (*ArtifactCollectorContext)(nil), // 6: proto.ArtifactCollectorContext + (*LabelEvents)(nil), // 7: proto.LabelEvents + (*GetClientMonitoringStateRequest)(nil), // 8: proto.GetClientMonitoringStateRequest + (*ClientEventTable)(nil), // 9: proto.ClientEventTable + (*UploadedFileInfo)(nil), // 10: proto.UploadedFileInfo + (*proto.VQLEnv)(nil), // 11: proto.VQLEnv + (*proto.VQLCollectorArgs)(nil), // 12: proto.VQLCollectorArgs + (*proto1.LogMessage)(nil), // 13: proto.LogMessage + (*proto1.VeloMessage)(nil), // 14: proto.VeloMessage } var file_artifact_collector_proto_depIdxs = []int32{ - 10, // 0: proto.ArtifactParameters.env:type_name -> proto.VQLEnv + 11, // 0: proto.ArtifactParameters.env:type_name -> proto.VQLEnv 1, // 1: proto.ArtifactSpec.parameters:type_name -> proto.ArtifactParameters 2, // 2: proto.ArtifactCollectorArgs.specs:type_name -> proto.ArtifactSpec - 11, // 3: proto.ArtifactCollectorArgs.compiled_collector_args:type_name -> proto.VQLCollectorArgs + 12, // 3: proto.ArtifactCollectorArgs.compiled_collector_args:type_name -> proto.VQLCollectorArgs 3, // 4: proto.ArtifactCollectorResponse.request:type_name -> proto.ArtifactCollectorArgs 3, // 5: proto.ArtifactCollectorContext.request:type_name -> proto.ArtifactCollectorArgs 0, // 6: proto.ArtifactCollectorContext.state:type_name -> proto.ArtifactCollectorContext.State 5, // 7: proto.ArtifactCollectorContext.uploaded_files:type_name -> proto.ArtifactUploadedFileInfo - 12, // 8: proto.ArtifactCollectorContext.logs:type_name -> proto.LogMessage + 13, // 8: proto.ArtifactCollectorContext.logs:type_name -> proto.LogMessage 3, // 9: proto.LabelEvents.artifacts:type_name -> proto.ArtifactCollectorArgs 3, // 10: proto.ClientEventTable.artifacts:type_name -> proto.ArtifactCollectorArgs 7, // 11: proto.ClientEventTable.label_events:type_name -> proto.LabelEvents - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 14, // 12: proto.ClientEventTable.client_message:type_name -> proto.VeloMessage + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_artifact_collector_proto_init() } @@ -1209,7 +1278,7 @@ func file_artifact_collector_proto_init() { } } file_artifact_collector_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientEventTable); i { + switch v := v.(*GetClientMonitoringStateRequest); i { case 0: return &v.state case 1: @@ -1221,6 +1290,18 @@ func file_artifact_collector_proto_init() { } } file_artifact_collector_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientEventTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_artifact_collector_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadedFileInfo); i { case 0: return &v.state @@ -1239,7 +1320,7 @@ func file_artifact_collector_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_artifact_collector_proto_rawDesc, NumEnums: 1, - NumMessages: 9, + NumMessages: 10, NumExtensions: 0, NumServices: 0, }, diff --git a/flows/proto/artifact_collector.proto b/flows/proto/artifact_collector.proto index b7842d9494c..d3ede42e3f0 100644 --- a/flows/proto/artifact_collector.proto +++ b/flows/proto/artifact_collector.proto @@ -165,6 +165,13 @@ message LabelEvents { ArtifactCollectorArgs artifacts = 2; } + +message GetClientMonitoringStateRequest { + // Show the compiled monitoring table from the point of view of + // this client. + string client_id = 1; +} + // This is stored in the ArtifactCollector state. message ClientEventTable { uint64 version = 1; @@ -173,6 +180,9 @@ message ClientEventTable { ArtifactCollectorArgs artifacts = 2; repeated LabelEvents label_events = 3; + + // populated for GetClientMonitoringState() + VeloMessage client_message = 4; } diff --git a/go.mod b/go.mod index 137a0e9e221..2d233cc31e6 100644 --- a/go.mod +++ b/go.mod @@ -125,7 +125,7 @@ require ( www.velocidex.com/golang/go-prefetch v0.0.0-20200722101157-37e4751dd5ca www.velocidex.com/golang/oleparse v0.0.0-20190327031422-34195d413196 www.velocidex.com/golang/regparser v0.0.0-20190625082115-b02dc43c2500 - www.velocidex.com/golang/vfilter v0.0.0-20210817125225-079ba7b703b5 + www.velocidex.com/golang/vfilter v0.0.0-20210826152205-95ca08f5dfde www.velocidex.com/golang/vtypes v0.0.0-20210728123451-f085971da113 ) diff --git a/go.sum b/go.sum index 1fbfdffcd9c..96516a07165 100644 --- a/go.sum +++ b/go.sum @@ -967,8 +967,6 @@ www.velocidex.com/golang/evtx v0.0.2-0.20201104041743-4b6cdb206c95 h1:spruzMoRyh www.velocidex.com/golang/evtx v0.0.2-0.20201104041743-4b6cdb206c95/go.mod h1:+u26IeGeVIwL9j5V0I/UafWFaMV61pQNwXZK/VQksLQ= www.velocidex.com/golang/go-ese v0.0.0-20200111070159-4b7484475321 h1:0FELGb4G9dT2y6rrBL2B5nbEw2foiPXtEO7jHppQGe0= www.velocidex.com/golang/go-ese v0.0.0-20200111070159-4b7484475321/go.mod h1:d3PHzQhyhe+AO9RYBnDKZ40As15T+38zr++Dnv4ufuc= -www.velocidex.com/golang/go-ntfs v0.1.2-0.20201111050421-bbba6f6a13d3 h1:MkxoKsZRp15/y/cxD0WogLaty6NHsgwSsxVzYxWQUus= -www.velocidex.com/golang/go-ntfs v0.1.2-0.20201111050421-bbba6f6a13d3/go.mod h1:ep0kkFXbnXff4YS0Xpcp2CTzh4dZlPju305HKeH+jKo= www.velocidex.com/golang/go-ntfs v0.1.2-0.20210825024028-ae6991318d3e h1:YvM5ZAVfdh2u8U2cMISKSj3zyMLNScMGZ/qYSqHf6cE= www.velocidex.com/golang/go-ntfs v0.1.2-0.20210825024028-ae6991318d3e/go.mod h1:ep0kkFXbnXff4YS0Xpcp2CTzh4dZlPju305HKeH+jKo= www.velocidex.com/golang/go-pe v0.1.1-0.20191103232346-ac12e8190bb6/go.mod h1:vpdQNvh2GfQT5NNhtpyGirOSYGTy2IJheePUBpP/zHs= @@ -981,11 +979,7 @@ www.velocidex.com/golang/oleparse v0.0.0-20190327031422-34195d413196/go.mod h1:i www.velocidex.com/golang/regparser v0.0.0-20190625082115-b02dc43c2500 h1:XqZddiAbjPIsTZcEPbqqqABS/ZV5SB7j33eczNsqD60= www.velocidex.com/golang/regparser v0.0.0-20190625082115-b02dc43c2500/go.mod h1:DVzloLH8L+oF3zma1Jisaat5bGF+4VLggDcYlIp00ns= www.velocidex.com/golang/vfilter v0.0.0-20210515085940-25d96b94dafb/go.mod h1:KB724xBNYh4lgipyGwsvx0/5hXRqsKjmrMrkSjGESvU= -www.velocidex.com/golang/vfilter v0.0.0-20210727160300-eadf120417ae h1:vwvMEW+I6f5PxV+ZQ+Xp8nRorCRtoQ+VBKjjCRo+DzM= -www.velocidex.com/golang/vfilter v0.0.0-20210727160300-eadf120417ae/go.mod h1:KB724xBNYh4lgipyGwsvx0/5hXRqsKjmrMrkSjGESvU= -www.velocidex.com/golang/vfilter v0.0.0-20210817113157-82628c46ddc0 h1:AVcTqjonDcmd3H+wNXTW7IO7uChqkFL1rNeZmXfzN4I= -www.velocidex.com/golang/vfilter v0.0.0-20210817113157-82628c46ddc0/go.mod h1:KB724xBNYh4lgipyGwsvx0/5hXRqsKjmrMrkSjGESvU= -www.velocidex.com/golang/vfilter v0.0.0-20210817125225-079ba7b703b5 h1:jSaH3ywmYYugBJMGAHDsAyvw6Bms40/0GeCaOeNYWvU= -www.velocidex.com/golang/vfilter v0.0.0-20210817125225-079ba7b703b5/go.mod h1:KB724xBNYh4lgipyGwsvx0/5hXRqsKjmrMrkSjGESvU= +www.velocidex.com/golang/vfilter v0.0.0-20210826152205-95ca08f5dfde h1:MBGxqavpHupcWdnKYeWK+LriJ99yrquoPaxoVT94j8U= +www.velocidex.com/golang/vfilter v0.0.0-20210826152205-95ca08f5dfde/go.mod h1:KB724xBNYh4lgipyGwsvx0/5hXRqsKjmrMrkSjGESvU= www.velocidex.com/golang/vtypes v0.0.0-20210728123451-f085971da113 h1:IXya95AX2bUPIbgi4vEWeer6MoNdKC3nRRtxsulcAuQ= www.velocidex.com/golang/vtypes v0.0.0-20210728123451-f085971da113/go.mod h1:PIG8uSY330pJd620KPksZpTaAsX3sIMiiNJQihZph6c= diff --git a/gui/velociraptor/src/components/core/ace.js b/gui/velociraptor/src/components/core/ace.js index 8a01c5fe412..e740b5c1132 100644 --- a/gui/velociraptor/src/components/core/ace.js +++ b/gui/velociraptor/src/components/core/ace.js @@ -209,7 +209,7 @@ export default class VeloAce extends Component { // Merge the user's options into the options the component // specified. let options = this.getUserOptions(); - + let mode = this.props.mode || 'sql'; return ( <>