From ef980f0cb5c75e0bd5425a7875d30ddf58cda434 Mon Sep 17 00:00:00 2001 From: Kofo Okesola Date: Wed, 9 Jul 2025 01:46:58 +0100 Subject: [PATCH] fixed apiconfig --- .gitignore | 1 + apiconfig/apiconfig.go | 11 +- apiconfig/util.go | 92 ++++++++ apiconfig/util_test.go | 169 ++++++++++++++ proto/workflow.pb.go | 514 +++++++++++++++++++++++++++++------------ proto/workflow.proto | 21 +- 6 files changed, 659 insertions(+), 149 deletions(-) create mode 100644 apiconfig/util.go create mode 100644 apiconfig/util_test.go diff --git a/.gitignore b/.gitignore index 4befed3..08302ef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store .idea + diff --git a/apiconfig/apiconfig.go b/apiconfig/apiconfig.go index 9618e98..09d5885 100644 --- a/apiconfig/apiconfig.go +++ b/apiconfig/apiconfig.go @@ -11,14 +11,18 @@ const ( type APIConfig struct { ID string `json:"id" yaml:"id"` - ListenPath string `json:"listenPath" yaml:"listenPath"` - Method string `json:"method" yaml:"method"` - Request RequestConfig `json:"request" yaml:"request"` Actions map[string]Action `json:"actions" yaml:"actions"` Conditionals map[string]Conditional `json:"conditionals" yaml:"conditionals"` Responses map[string]ResponseConfig `json:"responses" yaml:"responses"` HttpConfig HttpConfig `json:"http" yaml:"http"` McpTool MCPToolConfig `json:"mcpTool" yaml:"mcpTool"` + + // Deprecated: use HttpConfig.Listenpath + ListenPath string `json:"listenPath" yaml:"listenPath"` + // Deprecated: use HttpConfig.Method + Method string `json:"method" yaml:"method"` + // Deprecated: use HttpConfig + Request RequestConfig `json:"request" yaml:"request"` } type HttpConfig struct { @@ -33,6 +37,7 @@ type McpConfig struct { } type MCPToolConfig struct { + Enabled bool `json:"enabled" yaml:"enabled"` Name string `json:"name" yaml:"name"` Description string `json:"description" yaml:"description"` Args map[string]ArgType `json:"args" yaml:"args"` diff --git a/apiconfig/util.go b/apiconfig/util.go new file mode 100644 index 0000000..e1f27f0 --- /dev/null +++ b/apiconfig/util.go @@ -0,0 +1,92 @@ +package apiconfig + +import "git.servflow.io/servflow/definitions/proto" + +func ProtoConfigToAPIConfig(configs []*proto.WorkflowConfig) []*APIConfig { + cfgs := make([]*APIConfig, 0) + for i := range configs { + protoConfig := configs[i] + if protoConfig == nil || protoConfig.Id == "" || protoConfig.Status == proto.Status_INACTIVE { + continue + } + a := APIConfig{ + ID: protoConfig.Id, + ListenPath: protoConfig.ListenPath, + Method: protoConfig.Method, + Request: RequestConfig{ + Next: protoConfig.Request.Next, + }, + Actions: map[string]Action{}, + Conditionals: map[string]Conditional{}, + Responses: map[string]ResponseConfig{}, + McpTool: MCPToolConfig{ + Enabled: protoConfig.Mcp.Enabled, + Name: protoConfig.Mcp.Name, + Result: protoConfig.Mcp.Result, + Description: protoConfig.Mcp.Description, + Start: protoConfig.Mcp.Start, + Args: make(map[string]ArgType), + }, + HttpConfig: HttpConfig{ + Next: protoConfig.Request.Next, + ListenPath: protoConfig.Request.ListenPath, + Method: protoConfig.Request.Method, + }, + } + + for k := range protoConfig.Mcp.Args { + a.McpTool.Args[k] = ArgType{ + Name: protoConfig.Mcp.Args[k].Name, + Type: protoConfig.Mcp.Args[k].Type, + } + } + + for key := range protoConfig.Actions { + act := protoConfig.Actions[key] + a.Actions[key] = Action{ + Type: act.Type, + Config: act.Config, + Next: act.Next, + Fail: act.Fail, + } + } + + for key := range protoConfig.Conditionals { + cond := protoConfig.Conditionals[key] + a.Conditionals[key] = Conditional{ + ValidPath: cond.ValidPath, + InvalidPath: cond.InvalidPath, + Expression: cond.Expression, + } + } + + for key := range protoConfig.Responses { + resp := protoConfig.Responses[key] + a.Responses[key] = ResponseConfig{ + Code: int(resp.GetCode()), + Type: resp.Type, + Template: string(resp.Template), + } + } + + a.Normalize() + cfgs = append(cfgs, &a) + } + + return cfgs +} + +func (a *APIConfig) Normalize() { + if a.HttpConfig.Method == "" { + a.HttpConfig.Method = a.Method + } + if a.HttpConfig.Next == "" { + a.HttpConfig.Next = a.Request.Next + } + if a.HttpConfig.ListenPath == "" { + a.HttpConfig.ListenPath = a.ListenPath + } + if len(a.HttpConfig.CORSAllowedOrigins) < 1 { + a.HttpConfig.CORSAllowedOrigins = a.Request.CORSAllowedOrigins + } +} diff --git a/apiconfig/util_test.go b/apiconfig/util_test.go new file mode 100644 index 0000000..4b860f8 --- /dev/null +++ b/apiconfig/util_test.go @@ -0,0 +1,169 @@ +package apiconfig + +import ( + "encoding/json" + "git.servflow.io/servflow/definitions/proto" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "testing" +) + +func TestProtoConfigToAPIConfig(t *testing.T) { + tests := []struct { + name string + input []*proto.WorkflowConfig + validate func(t *testing.T, result []*APIConfig) + }{ + { + name: "empty input slice", + input: []*proto.WorkflowConfig{}, + validate: func(t *testing.T, result []*APIConfig) { + assert.Empty(t, result) + }, + }, + { + name: "nil config should be skipped", + input: []*proto.WorkflowConfig{ + nil, + }, + validate: func(t *testing.T, result []*APIConfig) { + assert.Empty(t, result) + }, + }, + { + name: "inactive config should be skipped", + input: []*proto.WorkflowConfig{ + { + Id: "test-id", + Status: proto.Status_INACTIVE, + }, + }, + validate: func(t *testing.T, result []*APIConfig) { + assert.Empty(t, result) + }, + }, + { + name: "empty ID should be skipped", + input: []*proto.WorkflowConfig{ + { + Status: proto.Status_ACTIVE, + }, + }, + validate: func(t *testing.T, result []*APIConfig) { + assert.Empty(t, result) + }, + }, + { + name: "valid config should be converted", + input: []*proto.WorkflowConfig{ + { + Id: "test-id", + Status: proto.Status_ACTIVE, + ListenPath: "/test", + Method: "POST", + Request: &proto.Request{ + Next: "next-action", + ListenPath: "/test", + Method: "GET", + }, + Actions: map[string]*proto.Action{ + "action1": { + Type: "http", + Config: json.RawMessage(`{"url": "http://example.com"}`), + Next: "action2", + Fail: "error", + }, + }, + Mcp: &proto.MCPConfig{ + Enabled: true, + Name: "test-tool", + Args: map[string]*proto.MCPArgConfig{ + "arg1": { + Name: "arg1", + Type: "string", + }, + }, + Description: "test description", + Start: "start", + Result: "result", + }, + Conditionals: map[string]*proto.Conditional{ + "cond1": { + ValidPath: "valid", + InvalidPath: "invalid", + Expression: "response.code == 200", + }, + }, + Responses: map[string]*proto.Response{ + "success": { + Code: 200, + Type: "json", + Template: []byte(`{"status": "ok"}`), + }, + }, + }, + }, + validate: func(t *testing.T, result []*APIConfig) { + require.Len(t, result, 1) + cfg := result[0] + + // Verify basic fields + assert.Equal(t, "test-id", cfg.ID) + assert.Equal(t, "/test", cfg.ListenPath) + assert.Equal(t, "POST", cfg.Method) + + // Verify request config + assert.Equal(t, "next-action", cfg.Request.Next) + + // Verify actions + require.Contains(t, cfg.Actions, "action1") + action := cfg.Actions["action1"] + assert.Equal(t, "http", action.Type) + assert.JSONEq(t, `{"url": "http://example.com"}`, string(action.Config)) + assert.Equal(t, "action2", action.Next) + assert.Equal(t, "error", action.Fail) + + // Verify conditionals + require.Contains(t, cfg.Conditionals, "cond1") + cond := cfg.Conditionals["cond1"] + assert.Equal(t, "valid", cond.ValidPath) + assert.Equal(t, "invalid", cond.InvalidPath) + assert.Equal(t, "response.code == 200", cond.Expression) + + // Verify responses + require.Contains(t, cfg.Responses, "success") + resp := cfg.Responses["success"] + assert.Equal(t, 200, resp.Code) + assert.Equal(t, "json", resp.Type) + assert.Equal(t, `{"status": "ok"}`, resp.Template) + + assert.Equal(t, MCPToolConfig{ + Enabled: true, + Name: "test-tool", + Args: map[string]ArgType{ + "arg1": { + Name: "arg1", + Type: "string", + }, + }, + Description: "test description", + Start: "start", + Result: "result", + }, cfg.McpTool) + + assert.Equal(t, HttpConfig{ + Next: "next-action", + ListenPath: "/test", + Method: "GET", + }, cfg.HttpConfig) + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := ProtoConfigToAPIConfig(tt.input) + tt.validate(t, result) + }) + } +} diff --git a/proto/workflow.pb.go b/proto/workflow.pb.go index 5bcdf3a..f402db5 100644 --- a/proto/workflow.pb.go +++ b/proto/workflow.pb.go @@ -572,14 +572,17 @@ type WorkflowConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ListenPath string `protobuf:"bytes,2,opt,name=listen_path,json=listenPath,proto3" json:"listen_path,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Deprecated: Marked as deprecated in workflow.proto. + ListenPath string `protobuf:"bytes,2,opt,name=listen_path,json=listenPath,proto3" json:"listen_path,omitempty"` + // Deprecated: Marked as deprecated in workflow.proto. Method string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"` Request *Request `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"` Actions map[string]*Action `protobuf:"bytes,5,rep,name=actions,proto3" json:"actions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Conditionals map[string]*Conditional `protobuf:"bytes,6,rep,name=conditionals,proto3" json:"conditionals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Responses map[string]*Response `protobuf:"bytes,7,rep,name=responses,proto3" json:"responses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Status Status `protobuf:"varint,8,opt,name=status,proto3,enum=proto.Status" json:"status,omitempty"` + Mcp *MCPConfig `protobuf:"bytes,9,opt,name=mcp,proto3" json:"mcp,omitempty"` } func (x *WorkflowConfig) Reset() { @@ -621,6 +624,7 @@ func (x *WorkflowConfig) GetId() string { return "" } +// Deprecated: Marked as deprecated in workflow.proto. func (x *WorkflowConfig) GetListenPath() string { if x != nil { return x.ListenPath @@ -628,6 +632,7 @@ func (x *WorkflowConfig) GetListenPath() string { return "" } +// Deprecated: Marked as deprecated in workflow.proto. func (x *WorkflowConfig) GetMethod() string { if x != nil { return x.Method @@ -670,12 +675,21 @@ func (x *WorkflowConfig) GetStatus() Status { return Status_ACTIVE } +func (x *WorkflowConfig) GetMcp() *MCPConfig { + if x != nil { + return x.Mcp + } + return nil +} + type Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Next string `protobuf:"bytes,1,opt,name=next,proto3" json:"next,omitempty"` + Next string `protobuf:"bytes,1,opt,name=next,proto3" json:"next,omitempty"` + ListenPath string `protobuf:"bytes,2,opt,name=listen_path,json=listenPath,proto3" json:"listen_path,omitempty"` + Method string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"` } func (x *Request) Reset() { @@ -717,6 +731,162 @@ func (x *Request) GetNext() string { return "" } +func (x *Request) GetListenPath() string { + if x != nil { + return x.ListenPath + } + return "" +} + +func (x *Request) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +type MCPConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Args map[string]*MCPArgConfig `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Result string `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"` + Start string `protobuf:"bytes,5,opt,name=start,proto3" json:"start,omitempty"` + Enabled bool `protobuf:"varint,6,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *MCPConfig) Reset() { + *x = MCPConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MCPConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MCPConfig) ProtoMessage() {} + +func (x *MCPConfig) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[12] + 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 MCPConfig.ProtoReflect.Descriptor instead. +func (*MCPConfig) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{12} +} + +func (x *MCPConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MCPConfig) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *MCPConfig) GetArgs() map[string]*MCPArgConfig { + if x != nil { + return x.Args + } + return nil +} + +func (x *MCPConfig) GetResult() string { + if x != nil { + return x.Result + } + return "" +} + +func (x *MCPConfig) GetStart() string { + if x != nil { + return x.Start + } + return "" +} + +func (x *MCPConfig) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type MCPArgConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *MCPArgConfig) Reset() { + *x = MCPArgConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MCPArgConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MCPArgConfig) ProtoMessage() {} + +func (x *MCPArgConfig) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[13] + 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 MCPArgConfig.ProtoReflect.Descriptor instead. +func (*MCPArgConfig) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{13} +} + +func (x *MCPArgConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MCPArgConfig) GetType() string { + if x != nil { + return x.Type + } + return "" +} + type Action struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -731,7 +901,7 @@ type Action struct { func (x *Action) Reset() { *x = Action{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -744,7 +914,7 @@ func (x *Action) String() string { func (*Action) ProtoMessage() {} func (x *Action) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -757,7 +927,7 @@ func (x *Action) ProtoReflect() protoreflect.Message { // Deprecated: Use Action.ProtoReflect.Descriptor instead. func (*Action) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{12} + return file_workflow_proto_rawDescGZIP(), []int{14} } func (x *Action) GetType() string { @@ -801,7 +971,7 @@ type Conditional struct { func (x *Conditional) Reset() { *x = Conditional{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -814,7 +984,7 @@ func (x *Conditional) String() string { func (*Conditional) ProtoMessage() {} func (x *Conditional) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -827,7 +997,7 @@ func (x *Conditional) ProtoReflect() protoreflect.Message { // Deprecated: Use Conditional.ProtoReflect.Descriptor instead. func (*Conditional) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{13} + return file_workflow_proto_rawDescGZIP(), []int{15} } func (x *Conditional) GetExpression() string { @@ -864,7 +1034,7 @@ type Response struct { func (x *Response) Reset() { *x = Response{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -877,7 +1047,7 @@ func (x *Response) String() string { func (*Response) ProtoMessage() {} func (x *Response) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -890,7 +1060,7 @@ func (x *Response) ProtoReflect() protoreflect.Message { // Deprecated: Use Response.ProtoReflect.Descriptor instead. func (*Response) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{14} + return file_workflow_proto_rawDescGZIP(), []int{16} } func (x *Response) GetTemplate() []byte { @@ -927,7 +1097,7 @@ type DatabaseConfig struct { func (x *DatabaseConfig) Reset() { *x = DatabaseConfig{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -940,7 +1110,7 @@ func (x *DatabaseConfig) String() string { func (*DatabaseConfig) ProtoMessage() {} func (x *DatabaseConfig) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -953,7 +1123,7 @@ func (x *DatabaseConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use DatabaseConfig.ProtoReflect.Descriptor instead. func (*DatabaseConfig) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{15} + return file_workflow_proto_rawDescGZIP(), []int{17} } func (x *DatabaseConfig) GetId() string { @@ -1030,103 +1200,129 @@ var file_workflow_proto_rawDesc = []byte{ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0xe8, 0x04, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x94, 0x05, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x07, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x1a, 0x49, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, - 0x11, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, - 0x22, 0x5c, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, - 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x61, 0x69, 0x6c, 0x22, 0x6f, - 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x22, - 0x4e, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, - 0x4c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x22, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, - 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, - 0x01, 0x32, 0xab, 0x03, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x23, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x1d, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x12, + 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x03, 0x6d, 0x63, + 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x43, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x03, 0x6d, 0x63, 0x70, 0x1a, 0x49, + 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x11, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, + 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, + 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x87, 0x02, 0x0a, 0x09, 0x4d, 0x43, 0x50, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x61, 0x72, 0x67, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x43, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x1a, 0x4c, 0x0a, 0x09, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x43, 0x50, 0x41, 0x72, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x36, 0x0a, 0x0c, 0x4d, 0x43, 0x50, 0x41, 0x72, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x66, 0x61, 0x69, 0x6c, 0x22, 0x6f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x22, 0x4e, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x2a, 0x22, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, + 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x32, 0xab, 0x03, 0x0a, 0x0f, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x6f, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x1f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x69, 0x6f, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x66, 0x6c, + 0x6f, 0x77, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1142,7 +1338,7 @@ func file_workflow_proto_rawDescGZIP() []byte { } var file_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_workflow_proto_goTypes = []any{ (Status)(0), // 0: proto.Status (*RegisterRequests)(nil), // 1: proto.RegisterRequests @@ -1157,40 +1353,46 @@ var file_workflow_proto_goTypes = []any{ (*GetAllWorkflowConfigsResponse)(nil), // 10: proto.GetAllWorkflowConfigsResponse (*WorkflowConfig)(nil), // 11: proto.WorkflowConfig (*Request)(nil), // 12: proto.Request - (*Action)(nil), // 13: proto.Action - (*Conditional)(nil), // 14: proto.Conditional - (*Response)(nil), // 15: proto.Response - (*DatabaseConfig)(nil), // 16: proto.DatabaseConfig - nil, // 17: proto.WorkflowConfig.ActionsEntry - nil, // 18: proto.WorkflowConfig.ConditionalsEntry - nil, // 19: proto.WorkflowConfig.ResponsesEntry + (*MCPConfig)(nil), // 13: proto.MCPConfig + (*MCPArgConfig)(nil), // 14: proto.MCPArgConfig + (*Action)(nil), // 15: proto.Action + (*Conditional)(nil), // 16: proto.Conditional + (*Response)(nil), // 17: proto.Response + (*DatabaseConfig)(nil), // 18: proto.DatabaseConfig + nil, // 19: proto.WorkflowConfig.ActionsEntry + nil, // 20: proto.WorkflowConfig.ConditionalsEntry + nil, // 21: proto.WorkflowConfig.ResponsesEntry + nil, // 22: proto.MCPConfig.ArgsEntry } var file_workflow_proto_depIdxs = []int32{ - 16, // 0: proto.GetAllDatabasesResponse.databases:type_name -> proto.DatabaseConfig + 18, // 0: proto.GetAllDatabasesResponse.databases:type_name -> proto.DatabaseConfig 11, // 1: proto.GetAllWorkflowConfigsResponse.configs:type_name -> proto.WorkflowConfig 12, // 2: proto.WorkflowConfig.request:type_name -> proto.Request - 17, // 3: proto.WorkflowConfig.actions:type_name -> proto.WorkflowConfig.ActionsEntry - 18, // 4: proto.WorkflowConfig.conditionals:type_name -> proto.WorkflowConfig.ConditionalsEntry - 19, // 5: proto.WorkflowConfig.responses:type_name -> proto.WorkflowConfig.ResponsesEntry + 19, // 3: proto.WorkflowConfig.actions:type_name -> proto.WorkflowConfig.ActionsEntry + 20, // 4: proto.WorkflowConfig.conditionals:type_name -> proto.WorkflowConfig.ConditionalsEntry + 21, // 5: proto.WorkflowConfig.responses:type_name -> proto.WorkflowConfig.ResponsesEntry 0, // 6: proto.WorkflowConfig.status:type_name -> proto.Status - 13, // 7: proto.WorkflowConfig.ActionsEntry.value:type_name -> proto.Action - 14, // 8: proto.WorkflowConfig.ConditionalsEntry.value:type_name -> proto.Conditional - 15, // 9: proto.WorkflowConfig.ResponsesEntry.value:type_name -> proto.Response - 9, // 10: proto.WorkflowService.GetAllWorkflowConfigs:input_type -> proto.GetAllWorkflowConfigsRequest - 7, // 11: proto.WorkflowService.GetAllDatabases:input_type -> proto.GetAllDatabasesRequest - 5, // 12: proto.WorkflowService.GetSecret:input_type -> proto.GetSecretRequest - 3, // 13: proto.WorkflowService.GetAvailableQuotas:input_type -> proto.GetAvailableQuotaRequest - 1, // 14: proto.WorkflowService.UpdateMetric:input_type -> proto.RegisterRequests - 10, // 15: proto.WorkflowService.GetAllWorkflowConfigs:output_type -> proto.GetAllWorkflowConfigsResponse - 8, // 16: proto.WorkflowService.GetAllDatabases:output_type -> proto.GetAllDatabasesResponse - 6, // 17: proto.WorkflowService.GetSecret:output_type -> proto.GetSecretResponse - 4, // 18: proto.WorkflowService.GetAvailableQuotas:output_type -> proto.QuotaInformation - 2, // 19: proto.WorkflowService.UpdateMetric:output_type -> proto.RegisterRequestsResponse - 15, // [15:20] is the sub-list for method output_type - 10, // [10:15] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 13, // 7: proto.WorkflowConfig.mcp:type_name -> proto.MCPConfig + 22, // 8: proto.MCPConfig.args:type_name -> proto.MCPConfig.ArgsEntry + 15, // 9: proto.WorkflowConfig.ActionsEntry.value:type_name -> proto.Action + 16, // 10: proto.WorkflowConfig.ConditionalsEntry.value:type_name -> proto.Conditional + 17, // 11: proto.WorkflowConfig.ResponsesEntry.value:type_name -> proto.Response + 14, // 12: proto.MCPConfig.ArgsEntry.value:type_name -> proto.MCPArgConfig + 9, // 13: proto.WorkflowService.GetAllWorkflowConfigs:input_type -> proto.GetAllWorkflowConfigsRequest + 7, // 14: proto.WorkflowService.GetAllDatabases:input_type -> proto.GetAllDatabasesRequest + 5, // 15: proto.WorkflowService.GetSecret:input_type -> proto.GetSecretRequest + 3, // 16: proto.WorkflowService.GetAvailableQuotas:input_type -> proto.GetAvailableQuotaRequest + 1, // 17: proto.WorkflowService.UpdateMetric:input_type -> proto.RegisterRequests + 10, // 18: proto.WorkflowService.GetAllWorkflowConfigs:output_type -> proto.GetAllWorkflowConfigsResponse + 8, // 19: proto.WorkflowService.GetAllDatabases:output_type -> proto.GetAllDatabasesResponse + 6, // 20: proto.WorkflowService.GetSecret:output_type -> proto.GetSecretResponse + 4, // 21: proto.WorkflowService.GetAvailableQuotas:output_type -> proto.QuotaInformation + 2, // 22: proto.WorkflowService.UpdateMetric:output_type -> proto.RegisterRequestsResponse + 18, // [18:23] is the sub-list for method output_type + 13, // [13:18] 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_workflow_proto_init() } @@ -1344,7 +1546,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*Action); i { + switch v := v.(*MCPConfig); i { case 0: return &v.state case 1: @@ -1356,7 +1558,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*Conditional); i { + switch v := v.(*MCPArgConfig); i { case 0: return &v.state case 1: @@ -1368,7 +1570,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*Response); i { + switch v := v.(*Action); i { case 0: return &v.state case 1: @@ -1380,6 +1582,30 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[15].Exporter = func(v any, i int) any { + switch v := v.(*Conditional); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[16].Exporter = func(v any, i int) any { + switch v := v.(*Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*DatabaseConfig); i { case 0: return &v.state @@ -1398,7 +1624,7 @@ func file_workflow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_proto_rawDesc, NumEnums: 1, - NumMessages: 19, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/workflow.proto b/proto/workflow.proto index 20c7da9..a532273 100644 --- a/proto/workflow.proto +++ b/proto/workflow.proto @@ -58,13 +58,14 @@ message GetAllWorkflowConfigsResponse { message WorkflowConfig { string id = 1; - string listen_path = 2; - string method = 3; + string listen_path = 2 [deprecated = true]; + string method = 3 [deprecated = true]; Request request = 4; map actions = 5; map conditionals = 6; map responses = 7; Status status = 8; + MCPConfig mcp = 9; } enum Status { @@ -74,6 +75,22 @@ enum Status { message Request { string next = 1; + string listen_path = 2; + string method = 3; +} + +message MCPConfig { + string name = 1; + string description = 2; + map args = 3; + string result = 4; + string start = 5; + bool enabled = 6; +} + +message MCPArgConfig { + string name = 1; + string type =2; } message Action {