fixed apiconfig

This commit is contained in:
Kofo Okesola 2025-07-09 01:46:58 +01:00
parent 451d408c24
commit ef980f0cb5
6 changed files with 659 additions and 149 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.DS_Store
.idea

View File

@ -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"`

92
apiconfig/util.go Normal file
View File

@ -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
}
}

169
apiconfig/util_test.go Normal file
View File

@ -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)
})
}
}

View File

@ -573,13 +573,16 @@ type WorkflowConfig struct {
unknownFields protoimpl.UnknownFields
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"`
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,
},

View File

@ -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<string, Action> actions = 5;
map<string, Conditional> conditionals = 6;
map<string, Response> 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<string, MCPArgConfig> args = 3;
string result = 4;
string start = 5;
bool enabled = 6;
}
message MCPArgConfig {
string name = 1;
string type =2;
}
message Action {