diff --git a/capten/agent/pkg/agent/get_capten_plugins.go b/capten/agent/pkg/agent/get_capten_plugins.go new file mode 100644 index 00000000..420838f7 --- /dev/null +++ b/capten/agent/pkg/agent/get_capten_plugins.go @@ -0,0 +1,42 @@ +package agent + +import ( + "context" + + "github.com/kube-tarian/kad/capten/agent/pkg/pb/captenpluginspb" +) + +func (a *Agent) GetCaptenPlugins(ctx context.Context, request *captenpluginspb.GetCaptenPluginsRequest) ( + *captenpluginspb.GetCaptenPluginsResponse, error) { + a.log.Infof("Get Capten Plugins %s request recieved") + + res, err := a.as.GetAllApps() + if err != nil { + return &captenpluginspb.GetCaptenPluginsResponse{ + Status: captenpluginspb.StatusCode_INTERNAL_ERROR, + StatusMessage: "failed to fetch pluginss", + }, nil + } + + plugins := make([]*captenpluginspb.CaptenPlugin, 0) + for _, r := range res { + appConfig := r.GetConfig() + if len(appConfig.PluginName) == 0 { + continue + } + + plugins = append(plugins, &captenpluginspb.CaptenPlugin{ + PluginName: r.GetConfig().GetPluginName(), + PluginDescription: r.GetConfig().GetPluginDescription(), + LaunchIcon: r.GetConfig().GetIcon(), + LaunchURL: r.GetConfig().GetLaunchURL(), + InstallStatus: r.GetConfig().GetInstallStatus(), + RuntimeStatus: r.GetConfig().GetRuntimeStatus(), + }) + } + + a.log.Infof("Fetched %d capten plugins", len(plugins)) + return &captenpluginspb.GetCaptenPluginsResponse{Status: captenpluginspb.StatusCode_OK, + StatusMessage: "successfully fetched plugin", + Plugins: plugins}, nil +} diff --git a/capten/agent/pkg/pb/agentpb/agent.pb.go b/capten/agent/pkg/pb/agentpb/agent.pb.go index 8765283c..4a271ded 100644 --- a/capten/agent/pkg/pb/agentpb/agent.pb.go +++ b/capten/agent/pkg/pb/agentpb/agent.pb.go @@ -1772,6 +1772,8 @@ type AppConfig struct { RuntimeStatus string `protobuf:"bytes,16,opt,name=runtimeStatus,proto3" json:"runtimeStatus,omitempty"` DefualtApp bool `protobuf:"varint,17,opt,name=defualtApp,proto3" json:"defualtApp,omitempty"` LastUpdateTime string `protobuf:"bytes,18,opt,name=lastUpdateTime,proto3" json:"lastUpdateTime,omitempty"` + PluginName string `protobuf:"bytes,19,opt,name=pluginName,proto3" json:"pluginName,omitempty"` + PluginDescription string `protobuf:"bytes,20,opt,name=pluginDescription,proto3" json:"pluginDescription,omitempty"` } func (x *AppConfig) Reset() { @@ -1932,6 +1934,20 @@ func (x *AppConfig) GetLastUpdateTime() string { return "" } +func (x *AppConfig) GetPluginName() string { + if x != nil { + return x.PluginName + } + return "" +} + +func (x *AppConfig) GetPluginDescription() string { + if x != nil { + return x.PluginDescription + } + return "" +} + type AppValues struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2503,7 +2519,7 @@ var file_agent_proto_rawDesc = []byte{ 0x31, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xe5, 0x04, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x73, 0x22, 0xb3, 0x05, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, @@ -2541,132 +2557,137 @@ var file_agent_proto_rawDesc = []byte{ 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x75, 0x61, 0x6c, 0x74, 0x41, 0x70, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, - 0x63, 0x68, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, - 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x55, 0x49, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x11, 0x55, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, - 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x30, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x67, 0x0a, 0x12, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xd5, + 0x01, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, + 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, + 0x68, 0x55, 0x52, 0x4c, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x11, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x61, + 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, + 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x52, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, + 0x67, 0x0a, 0x12, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x17, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x16, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, - 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6c, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x4e, 0x0a, 0x0a, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, - 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52, 0x41, 0x4c, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, 0xdb, 0x08, 0x0a, - 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, - 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, - 0x12, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, - 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, - 0x4f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, - 0x53, 0x4f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x4e, 0x0a, 0x0a, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52, 0x41, 0x4c, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4e, + 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, 0xdb, 0x08, 0x0a, 0x05, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x2e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x12, 0x17, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x62, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, - 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, + 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, + 0x70, 0x70, 0x53, 0x53, 0x4f, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, - 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, - 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x6e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x47, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, + 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x6e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/capten/agent/pkg/pb/captenpluginspb/capten_plugins.pb.go b/capten/agent/pkg/pb/captenpluginspb/capten_plugins.pb.go index 5ea9a31c..260ad3b1 100644 --- a/capten/agent/pkg/pb/captenpluginspb/capten_plugins.pb.go +++ b/capten/agent/pkg/pb/captenpluginspb/capten_plugins.pb.go @@ -2112,6 +2112,194 @@ func (x *GetTektonProjectsResponse) GetProjects() []*TektonProject { return nil } +type CaptenPlugin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PluginName string `protobuf:"bytes,1,opt,name=pluginName,proto3" json:"pluginName,omitempty"` + PluginDescription string `protobuf:"bytes,2,opt,name=pluginDescription,proto3" json:"pluginDescription,omitempty"` + LaunchURL string `protobuf:"bytes,3,opt,name=launchURL,proto3" json:"launchURL,omitempty"` + LaunchIcon []byte `protobuf:"bytes,4,opt,name=launchIcon,proto3" json:"launchIcon,omitempty"` + InstallStatus string `protobuf:"bytes,5,opt,name=installStatus,proto3" json:"installStatus,omitempty"` + RuntimeStatus string `protobuf:"bytes,6,opt,name=runtimeStatus,proto3" json:"runtimeStatus,omitempty"` +} + +func (x *CaptenPlugin) Reset() { + *x = CaptenPlugin{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptenPlugin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptenPlugin) ProtoMessage() {} + +func (x *CaptenPlugin) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[36] + 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 CaptenPlugin.ProtoReflect.Descriptor instead. +func (*CaptenPlugin) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{36} +} + +func (x *CaptenPlugin) GetPluginName() string { + if x != nil { + return x.PluginName + } + return "" +} + +func (x *CaptenPlugin) GetPluginDescription() string { + if x != nil { + return x.PluginDescription + } + return "" +} + +func (x *CaptenPlugin) GetLaunchURL() string { + if x != nil { + return x.LaunchURL + } + return "" +} + +func (x *CaptenPlugin) GetLaunchIcon() []byte { + if x != nil { + return x.LaunchIcon + } + return nil +} + +func (x *CaptenPlugin) GetInstallStatus() string { + if x != nil { + return x.InstallStatus + } + return "" +} + +func (x *CaptenPlugin) GetRuntimeStatus() string { + if x != nil { + return x.RuntimeStatus + } + return "" +} + +type GetCaptenPluginsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetCaptenPluginsRequest) Reset() { + *x = GetCaptenPluginsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCaptenPluginsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCaptenPluginsRequest) ProtoMessage() {} + +func (x *GetCaptenPluginsRequest) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[37] + 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 GetCaptenPluginsRequest.ProtoReflect.Descriptor instead. +func (*GetCaptenPluginsRequest) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{37} +} + +type GetCaptenPluginsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=captenpluginspb.StatusCode" json:"status,omitempty"` + StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"` + Plugins []*CaptenPlugin `protobuf:"bytes,3,rep,name=plugins,proto3" json:"plugins,omitempty"` +} + +func (x *GetCaptenPluginsResponse) Reset() { + *x = GetCaptenPluginsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCaptenPluginsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCaptenPluginsResponse) ProtoMessage() {} + +func (x *GetCaptenPluginsResponse) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[38] + 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 GetCaptenPluginsResponse.ProtoReflect.Descriptor instead. +func (*GetCaptenPluginsResponse) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{38} +} + +func (x *GetCaptenPluginsResponse) GetStatus() StatusCode { + if x != nil { + return x.Status + } + return StatusCode_OK +} + +func (x *GetCaptenPluginsResponse) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *GetCaptenPluginsResponse) GetPlugins() []*CaptenPlugin { + if x != nil { + return x.Plugins + } + return nil +} + var File_capten_plugins_proto protoreflect.FileDescriptor var file_capten_plugins_proto_rawDesc = []byte{ @@ -2391,13 +2579,47 @@ var file_capten_plugins_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x6b, 0x74, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2a, 0x4d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, - 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, - 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, - 0xc7, 0x0e, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x73, 0x12, 0x60, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, + 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2a, 0x4d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, + 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x10, 0x03, 0x32, 0xb2, 0x0f, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x61, + 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x61, + 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x65, + 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x61, 0x70, @@ -2530,7 +2752,7 @@ func file_capten_plugins_proto_rawDescGZIP() []byte { } var file_capten_plugins_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_capten_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_capten_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_capten_plugins_proto_goTypes = []interface{}{ (StatusCode)(0), // 0: captenpluginspb.StatusCode (*AddGitProjectRequest)(nil), // 1: captenpluginspb.AddGitProjectRequest @@ -2569,9 +2791,12 @@ var file_capten_plugins_proto_goTypes = []interface{}{ (*TektonProject)(nil), // 34: captenpluginspb.TektonProject (*GetTektonProjectsRequest)(nil), // 35: captenpluginspb.GetTektonProjectsRequest (*GetTektonProjectsResponse)(nil), // 36: captenpluginspb.GetTektonProjectsResponse - nil, // 37: captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry - nil, // 38: captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry - nil, // 39: captenpluginspb.CloudProvider.CloudAttributesEntry + (*CaptenPlugin)(nil), // 37: captenpluginspb.CaptenPlugin + (*GetCaptenPluginsRequest)(nil), // 38: captenpluginspb.GetCaptenPluginsRequest + (*GetCaptenPluginsResponse)(nil), // 39: captenpluginspb.GetCaptenPluginsResponse + nil, // 40: captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry + nil, // 41: captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry + nil, // 42: captenpluginspb.CloudProvider.CloudAttributesEntry } var file_capten_plugins_proto_depIdxs = []int32{ 0, // 0: captenpluginspb.AddGitProjectResponse.status:type_name -> captenpluginspb.StatusCode @@ -2581,12 +2806,12 @@ var file_capten_plugins_proto_depIdxs = []int32{ 0, // 4: captenpluginspb.GetGitProjectsResponse.status:type_name -> captenpluginspb.StatusCode 8, // 5: captenpluginspb.GetGitProjectsForLabelsResponse.projects:type_name -> captenpluginspb.GitProject 0, // 6: captenpluginspb.GetGitProjectsForLabelsResponse.status:type_name -> captenpluginspb.StatusCode - 37, // 7: captenpluginspb.AddCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry + 40, // 7: captenpluginspb.AddCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry 0, // 8: captenpluginspb.AddCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode - 38, // 9: captenpluginspb.UpdateCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry + 41, // 9: captenpluginspb.UpdateCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry 0, // 10: captenpluginspb.UpdateCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode 0, // 11: captenpluginspb.DeleteCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode - 39, // 12: captenpluginspb.CloudProvider.cloudAttributes:type_name -> captenpluginspb.CloudProvider.CloudAttributesEntry + 42, // 12: captenpluginspb.CloudProvider.cloudAttributes:type_name -> captenpluginspb.CloudProvider.CloudAttributesEntry 19, // 13: captenpluginspb.GetCloudProvidersResponse.cloudProviders:type_name -> captenpluginspb.CloudProvider 0, // 14: captenpluginspb.GetCloudProvidersResponse.status:type_name -> captenpluginspb.StatusCode 19, // 15: captenpluginspb.GetCloudProvidersForLabelsResponse.cloudProviders:type_name -> captenpluginspb.CloudProvider @@ -2599,43 +2824,47 @@ var file_capten_plugins_proto_depIdxs = []int32{ 0, // 22: captenpluginspb.UnRegisterTektonProjectResponse.status:type_name -> captenpluginspb.StatusCode 0, // 23: captenpluginspb.GetTektonProjectsResponse.status:type_name -> captenpluginspb.StatusCode 34, // 24: captenpluginspb.GetTektonProjectsResponse.projects:type_name -> captenpluginspb.TektonProject - 1, // 25: captenpluginspb.capten_plugins.AddGitProject:input_type -> captenpluginspb.AddGitProjectRequest - 3, // 26: captenpluginspb.capten_plugins.UpdateGitProject:input_type -> captenpluginspb.UpdateGitProjectRequest - 5, // 27: captenpluginspb.capten_plugins.DeleteGitProject:input_type -> captenpluginspb.DeleteGitProjectRequest - 7, // 28: captenpluginspb.capten_plugins.GetGitProjects:input_type -> captenpluginspb.GetGitProjectsRequest - 10, // 29: captenpluginspb.capten_plugins.GetGitProjectsForLabels:input_type -> captenpluginspb.GetGitProjectsForLabelsRequest - 12, // 30: captenpluginspb.capten_plugins.AddCloudProvider:input_type -> captenpluginspb.AddCloudProviderRequest - 14, // 31: captenpluginspb.capten_plugins.UpdateCloudProvider:input_type -> captenpluginspb.UpdateCloudProviderRequest - 16, // 32: captenpluginspb.capten_plugins.DeleteCloudProvider:input_type -> captenpluginspb.DeleteCloudProviderRequest - 18, // 33: captenpluginspb.capten_plugins.GetCloudProviders:input_type -> captenpluginspb.GetCloudProvidersRequest - 21, // 34: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:input_type -> captenpluginspb.GetCloudProvidersForLabelsRequest - 23, // 35: captenpluginspb.capten_plugins.RegisterArgoCDProject:input_type -> captenpluginspb.RegisterArgoCDProjectRequest - 25, // 36: captenpluginspb.capten_plugins.GetArgoCDProjects:input_type -> captenpluginspb.GetArgoCDProjectsRequest - 27, // 37: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:input_type -> captenpluginspb.UnRegisterArgoCDProjectRequest - 30, // 38: captenpluginspb.capten_plugins.RegisterTektonProject:input_type -> captenpluginspb.RegisterTektonProjectRequest - 35, // 39: captenpluginspb.capten_plugins.GetTektonProjects:input_type -> captenpluginspb.GetTektonProjectsRequest - 32, // 40: captenpluginspb.capten_plugins.UnRegisterTektonProject:input_type -> captenpluginspb.UnRegisterTektonProjectRequest - 2, // 41: captenpluginspb.capten_plugins.AddGitProject:output_type -> captenpluginspb.AddGitProjectResponse - 4, // 42: captenpluginspb.capten_plugins.UpdateGitProject:output_type -> captenpluginspb.UpdateGitProjectResponse - 6, // 43: captenpluginspb.capten_plugins.DeleteGitProject:output_type -> captenpluginspb.DeleteGitProjectResponse - 9, // 44: captenpluginspb.capten_plugins.GetGitProjects:output_type -> captenpluginspb.GetGitProjectsResponse - 11, // 45: captenpluginspb.capten_plugins.GetGitProjectsForLabels:output_type -> captenpluginspb.GetGitProjectsForLabelsResponse - 13, // 46: captenpluginspb.capten_plugins.AddCloudProvider:output_type -> captenpluginspb.AddCloudProviderResponse - 15, // 47: captenpluginspb.capten_plugins.UpdateCloudProvider:output_type -> captenpluginspb.UpdateCloudProviderResponse - 17, // 48: captenpluginspb.capten_plugins.DeleteCloudProvider:output_type -> captenpluginspb.DeleteCloudProviderResponse - 20, // 49: captenpluginspb.capten_plugins.GetCloudProviders:output_type -> captenpluginspb.GetCloudProvidersResponse - 22, // 50: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:output_type -> captenpluginspb.GetCloudProvidersForLabelsResponse - 24, // 51: captenpluginspb.capten_plugins.RegisterArgoCDProject:output_type -> captenpluginspb.RegisterArgoCDProjectResponse - 26, // 52: captenpluginspb.capten_plugins.GetArgoCDProjects:output_type -> captenpluginspb.GetArgoCDProjectsResponse - 28, // 53: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:output_type -> captenpluginspb.UnRegisterArgoCDProjectResponse - 31, // 54: captenpluginspb.capten_plugins.RegisterTektonProject:output_type -> captenpluginspb.RegisterTektonProjectResponse - 36, // 55: captenpluginspb.capten_plugins.GetTektonProjects:output_type -> captenpluginspb.GetTektonProjectsResponse - 33, // 56: captenpluginspb.capten_plugins.UnRegisterTektonProject:output_type -> captenpluginspb.UnRegisterTektonProjectResponse - 41, // [41:57] is the sub-list for method output_type - 25, // [25:41] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 0, // 25: captenpluginspb.GetCaptenPluginsResponse.status:type_name -> captenpluginspb.StatusCode + 37, // 26: captenpluginspb.GetCaptenPluginsResponse.plugins:type_name -> captenpluginspb.CaptenPlugin + 38, // 27: captenpluginspb.capten_plugins.GetCaptenPlugins:input_type -> captenpluginspb.GetCaptenPluginsRequest + 1, // 28: captenpluginspb.capten_plugins.AddGitProject:input_type -> captenpluginspb.AddGitProjectRequest + 3, // 29: captenpluginspb.capten_plugins.UpdateGitProject:input_type -> captenpluginspb.UpdateGitProjectRequest + 5, // 30: captenpluginspb.capten_plugins.DeleteGitProject:input_type -> captenpluginspb.DeleteGitProjectRequest + 7, // 31: captenpluginspb.capten_plugins.GetGitProjects:input_type -> captenpluginspb.GetGitProjectsRequest + 10, // 32: captenpluginspb.capten_plugins.GetGitProjectsForLabels:input_type -> captenpluginspb.GetGitProjectsForLabelsRequest + 12, // 33: captenpluginspb.capten_plugins.AddCloudProvider:input_type -> captenpluginspb.AddCloudProviderRequest + 14, // 34: captenpluginspb.capten_plugins.UpdateCloudProvider:input_type -> captenpluginspb.UpdateCloudProviderRequest + 16, // 35: captenpluginspb.capten_plugins.DeleteCloudProvider:input_type -> captenpluginspb.DeleteCloudProviderRequest + 18, // 36: captenpluginspb.capten_plugins.GetCloudProviders:input_type -> captenpluginspb.GetCloudProvidersRequest + 21, // 37: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:input_type -> captenpluginspb.GetCloudProvidersForLabelsRequest + 23, // 38: captenpluginspb.capten_plugins.RegisterArgoCDProject:input_type -> captenpluginspb.RegisterArgoCDProjectRequest + 25, // 39: captenpluginspb.capten_plugins.GetArgoCDProjects:input_type -> captenpluginspb.GetArgoCDProjectsRequest + 27, // 40: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:input_type -> captenpluginspb.UnRegisterArgoCDProjectRequest + 30, // 41: captenpluginspb.capten_plugins.RegisterTektonProject:input_type -> captenpluginspb.RegisterTektonProjectRequest + 35, // 42: captenpluginspb.capten_plugins.GetTektonProjects:input_type -> captenpluginspb.GetTektonProjectsRequest + 32, // 43: captenpluginspb.capten_plugins.UnRegisterTektonProject:input_type -> captenpluginspb.UnRegisterTektonProjectRequest + 39, // 44: captenpluginspb.capten_plugins.GetCaptenPlugins:output_type -> captenpluginspb.GetCaptenPluginsResponse + 2, // 45: captenpluginspb.capten_plugins.AddGitProject:output_type -> captenpluginspb.AddGitProjectResponse + 4, // 46: captenpluginspb.capten_plugins.UpdateGitProject:output_type -> captenpluginspb.UpdateGitProjectResponse + 6, // 47: captenpluginspb.capten_plugins.DeleteGitProject:output_type -> captenpluginspb.DeleteGitProjectResponse + 9, // 48: captenpluginspb.capten_plugins.GetGitProjects:output_type -> captenpluginspb.GetGitProjectsResponse + 11, // 49: captenpluginspb.capten_plugins.GetGitProjectsForLabels:output_type -> captenpluginspb.GetGitProjectsForLabelsResponse + 13, // 50: captenpluginspb.capten_plugins.AddCloudProvider:output_type -> captenpluginspb.AddCloudProviderResponse + 15, // 51: captenpluginspb.capten_plugins.UpdateCloudProvider:output_type -> captenpluginspb.UpdateCloudProviderResponse + 17, // 52: captenpluginspb.capten_plugins.DeleteCloudProvider:output_type -> captenpluginspb.DeleteCloudProviderResponse + 20, // 53: captenpluginspb.capten_plugins.GetCloudProviders:output_type -> captenpluginspb.GetCloudProvidersResponse + 22, // 54: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:output_type -> captenpluginspb.GetCloudProvidersForLabelsResponse + 24, // 55: captenpluginspb.capten_plugins.RegisterArgoCDProject:output_type -> captenpluginspb.RegisterArgoCDProjectResponse + 26, // 56: captenpluginspb.capten_plugins.GetArgoCDProjects:output_type -> captenpluginspb.GetArgoCDProjectsResponse + 28, // 57: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:output_type -> captenpluginspb.UnRegisterArgoCDProjectResponse + 31, // 58: captenpluginspb.capten_plugins.RegisterTektonProject:output_type -> captenpluginspb.RegisterTektonProjectResponse + 36, // 59: captenpluginspb.capten_plugins.GetTektonProjects:output_type -> captenpluginspb.GetTektonProjectsResponse + 33, // 60: captenpluginspb.capten_plugins.UnRegisterTektonProject:output_type -> captenpluginspb.UnRegisterTektonProjectResponse + 44, // [44:61] is the sub-list for method output_type + 27, // [27:44] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_capten_plugins_proto_init() } @@ -3076,6 +3305,42 @@ func file_capten_plugins_proto_init() { return nil } } + file_capten_plugins_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptenPlugin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_capten_plugins_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptenPluginsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_capten_plugins_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptenPluginsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3083,7 +3348,7 @@ func file_capten_plugins_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_capten_plugins_proto_rawDesc, NumEnums: 1, - NumMessages: 39, + NumMessages: 42, NumExtensions: 0, NumServices: 1, }, diff --git a/capten/agent/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go b/capten/agent/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go index 005af4d4..5e8de8ca 100644 --- a/capten/agent/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go +++ b/capten/agent/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go @@ -19,6 +19,7 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( + CaptenPlugins_GetCaptenPlugins_FullMethodName = "/captenpluginspb.capten_plugins/GetCaptenPlugins" CaptenPlugins_AddGitProject_FullMethodName = "/captenpluginspb.capten_plugins/AddGitProject" CaptenPlugins_UpdateGitProject_FullMethodName = "/captenpluginspb.capten_plugins/UpdateGitProject" CaptenPlugins_DeleteGitProject_FullMethodName = "/captenpluginspb.capten_plugins/DeleteGitProject" @@ -41,6 +42,7 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type CaptenPluginsClient interface { + GetCaptenPlugins(ctx context.Context, in *GetCaptenPluginsRequest, opts ...grpc.CallOption) (*GetCaptenPluginsResponse, error) AddGitProject(ctx context.Context, in *AddGitProjectRequest, opts ...grpc.CallOption) (*AddGitProjectResponse, error) UpdateGitProject(ctx context.Context, in *UpdateGitProjectRequest, opts ...grpc.CallOption) (*UpdateGitProjectResponse, error) DeleteGitProject(ctx context.Context, in *DeleteGitProjectRequest, opts ...grpc.CallOption) (*DeleteGitProjectResponse, error) @@ -67,6 +69,15 @@ func NewCaptenPluginsClient(cc grpc.ClientConnInterface) CaptenPluginsClient { return &captenPluginsClient{cc} } +func (c *captenPluginsClient) GetCaptenPlugins(ctx context.Context, in *GetCaptenPluginsRequest, opts ...grpc.CallOption) (*GetCaptenPluginsResponse, error) { + out := new(GetCaptenPluginsResponse) + err := c.cc.Invoke(ctx, CaptenPlugins_GetCaptenPlugins_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *captenPluginsClient) AddGitProject(ctx context.Context, in *AddGitProjectRequest, opts ...grpc.CallOption) (*AddGitProjectResponse, error) { out := new(AddGitProjectResponse) err := c.cc.Invoke(ctx, CaptenPlugins_AddGitProject_FullMethodName, in, out, opts...) @@ -215,6 +226,7 @@ func (c *captenPluginsClient) UnRegisterTektonProject(ctx context.Context, in *U // All implementations must embed UnimplementedCaptenPluginsServer // for forward compatibility type CaptenPluginsServer interface { + GetCaptenPlugins(context.Context, *GetCaptenPluginsRequest) (*GetCaptenPluginsResponse, error) AddGitProject(context.Context, *AddGitProjectRequest) (*AddGitProjectResponse, error) UpdateGitProject(context.Context, *UpdateGitProjectRequest) (*UpdateGitProjectResponse, error) DeleteGitProject(context.Context, *DeleteGitProjectRequest) (*DeleteGitProjectResponse, error) @@ -238,6 +250,9 @@ type CaptenPluginsServer interface { type UnimplementedCaptenPluginsServer struct { } +func (UnimplementedCaptenPluginsServer) GetCaptenPlugins(context.Context, *GetCaptenPluginsRequest) (*GetCaptenPluginsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCaptenPlugins not implemented") +} func (UnimplementedCaptenPluginsServer) AddGitProject(context.Context, *AddGitProjectRequest) (*AddGitProjectResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddGitProject not implemented") } @@ -299,6 +314,24 @@ func RegisterCaptenPluginsServer(s grpc.ServiceRegistrar, srv CaptenPluginsServe s.RegisterService(&CaptenPlugins_ServiceDesc, srv) } +func _CaptenPlugins_GetCaptenPlugins_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCaptenPluginsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CaptenPluginsServer).GetCaptenPlugins(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CaptenPlugins_GetCaptenPlugins_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CaptenPluginsServer).GetCaptenPlugins(ctx, req.(*GetCaptenPluginsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CaptenPlugins_AddGitProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddGitProjectRequest) if err := dec(in); err != nil { @@ -594,6 +627,10 @@ var CaptenPlugins_ServiceDesc = grpc.ServiceDesc{ ServiceName: "captenpluginspb.capten_plugins", HandlerType: (*CaptenPluginsServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetCaptenPlugins", + Handler: _CaptenPlugins_GetCaptenPlugins_Handler, + }, { MethodName: "AddGitProject", Handler: _CaptenPlugins_AddGitProject_Handler, diff --git a/charts/server/Chart.yaml b/charts/server/Chart.yaml index 3779390c..64483e8b 100644 --- a/charts/server/Chart.yaml +++ b/charts/server/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.23 +version: 0.1.24 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "1.23.0" +appVersion: "1.24.0" diff --git a/charts/server/templates/deployment.yaml b/charts/server/templates/deployment.yaml index 58342d57..7097c85d 100644 --- a/charts/server/templates/deployment.yaml +++ b/charts/server/templates/deployment.yaml @@ -61,14 +61,6 @@ spec: value: "{{ .Values.astra.entityName }}" - name: ASTRA_CRED_IDENTIFIER value: "{{ .Values.astra.credIdentifier }}" - - name: CASSANDRA_ADDRESSES - value: "{{ .Values.cassandra.dbAddresses }}" - - name: CASSANDRA_SERVICE_USERNAME - value: "{{ .Values.cassandra.dbUserName }}" - - name: CASSANDRA_ENTITY_NAME - value: "{{ .Values.cassandra.entityName }}" - - name: CASSANDRA_DB_NAME - value: "{{ .Values.cassandra.dbName }}" - name: ORY_ENTITY_NAME value: {{ .Values.ory.entityName }} - name: ORY_CRED_IDENTIFIER diff --git a/charts/server/values.yaml b/charts/server/values.yaml index 6431e631..3d91ccca 100644 --- a/charts/server/values.yaml +++ b/charts/server/values.yaml @@ -14,12 +14,6 @@ vault: role: vault-role-capten-server policyNames: "vault-policy-certs-admin,vault-policy-service-cred-read,vault-policy-generic-cred-admin" -cassandra: - dbAddresses: cassandra.cassandra.svc.cluster.local - dbUserName: admin - entityName: cassandra - dbName: capten-server - iam: address: iam:9091 @@ -61,10 +55,12 @@ serviceAccount: podAnnotations: {} -podSecurityContext: {} +podSecurityContext: + {} # fsGroup: 2000 -securityContext: {} +securityContext: + {} # capabilities: # drop: # - ALL @@ -80,7 +76,8 @@ service: ingress: enabled: false className: "" - annotations: {} + annotations: + {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" hosts: @@ -93,7 +90,8 @@ ingress: # hosts: # - chart-example.local -resources: {} +resources: + {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following diff --git a/proto/agent.proto b/proto/agent.proto index 8e9ed31b..e3ea20c2 100644 --- a/proto/agent.proto +++ b/proto/agent.proto @@ -203,6 +203,8 @@ message AppConfig { string runtimeStatus = 16; bool defualtApp = 17; string lastUpdateTime = 18; + string pluginName = 19; + string pluginDescription = 20; } message AppValues { diff --git a/proto/capten_plugins.proto b/proto/capten_plugins.proto index f9ca7494..9763b657 100644 --- a/proto/capten_plugins.proto +++ b/proto/capten_plugins.proto @@ -228,7 +228,9 @@ message CaptenPlugin { string pluginName = 1; string pluginDescription = 2; string launchURL = 3; - string launchIcon = 4; + bytes launchIcon = 4; + string installStatus = 5; + string runtimeStatus = 6; } message GetCaptenPluginsRequest { diff --git a/server/data/store-apps/conf/argo-cd-v1.0.0.yaml b/server/data/store-apps/conf/argo-cd-v1.0.0.yaml index 8e2f46ec..77b265f8 100644 --- a/server/data/store-apps/conf/argo-cd-v1.0.0.yaml +++ b/server/data/store-apps/conf/argo-cd-v1.0.0.yaml @@ -9,6 +9,8 @@ ReleaseName: "argo-cd" Icon: "argo-cd.svg" Version: "1.0.0" CreateNamespace: true +PluginName: ArgoCD +PluginDescription: "Configure ArgoCD projects and resources" LaunchURL: https://argo.{{.DomainName}} LaunchUIDescription: "Intelops ArgoCD" LaunchUIIcon: "argo-cd.svg" diff --git a/server/data/store-apps/conf/crossplane-v1.0.0.yaml b/server/data/store-apps/conf/crossplane-v1.0.0.yaml index dac1303c..e3659dda 100644 --- a/server/data/store-apps/conf/crossplane-v1.0.0.yaml +++ b/server/data/store-apps/conf/crossplane-v1.0.0.yaml @@ -8,5 +8,7 @@ Namespace: "crossplane-system" ReleaseName: "crossplane" Version: "1.0.0" CreateNamespace: true +PluginName: "Crossplane" +PluginDescription: "Configure Infra with Crossplane" OverrideValues: DomainName: "{{.DomainName}}" diff --git a/server/data/store-apps/conf/tekton-v0.1.1.yaml b/server/data/store-apps/conf/tekton-v0.1.1.yaml index 85e08a00..998ad6f2 100644 --- a/server/data/store-apps/conf/tekton-v0.1.1.yaml +++ b/server/data/store-apps/conf/tekton-v0.1.1.yaml @@ -7,4 +7,6 @@ RepoURL: "https://kube-tarian.github.io/helmrepo-supporting-tools" Namespace: "tekton" ReleaseName: "tekton" Version: "0.1.1" -CreateNamespace: true \ No newline at end of file +PluginName: "Tekton" +PluginDescription: "Configure Build pipeline with Tekton" +CreateNamespace: true diff --git a/server/pkg/api/get_capten_plugins.go b/server/pkg/api/get_capten_plugins.go new file mode 100644 index 00000000..a2dba8f2 --- /dev/null +++ b/server/pkg/api/get_capten_plugins.go @@ -0,0 +1,40 @@ +package api + +import ( + "context" + + "github.com/kube-tarian/kad/server/pkg/pb/captenpluginspb" +) + +func (s *Server) GetCaptenPlugins(ctx context.Context, request *captenpluginspb.GetCaptenPluginsRequest) ( + *captenpluginspb.GetCaptenPluginsResponse, error) { + orgId, clusterId, err := validateOrgClusterWithArgs(ctx) + if err != nil { + s.log.Infof("request validation failed", err) + return &captenpluginspb.GetCaptenPluginsResponse{ + Status: captenpluginspb.StatusCode_INVALID_ARGUMENT, + StatusMessage: "request validation failed", + }, nil + } + s.log.Infof("Get Capten Plugins %s request for cluster %s recieved, [org: %s]", + clusterId, orgId) + + a, err := s.agentHandeler.GetAgent(orgId, clusterId) + if err != nil { + s.log.Error("failed to connect to agent", err) + return &captenpluginspb.GetCaptenPluginsResponse{Status: captenpluginspb.StatusCode_INTERNAL_ERROR, + StatusMessage: "failed to connect to agent"}, nil + } + + resp, err := a.GetCaptenPluginsClient().GetCaptenPlugins(ctx, &captenpluginspb.GetCaptenPluginsRequest{}) + if err != nil { + s.log.Error("failed to get cluster capten plugins from agent", err) + return &captenpluginspb.GetCaptenPluginsResponse{Status: captenpluginspb.StatusCode_INTERNAL_ERROR, + StatusMessage: "failed to get cluster application from agent"}, nil + } + + s.log.Infof("Fetched %d capten plugins from the cluster %s, [org: %s]", len(resp.Plugins), clusterId, orgId) + return &captenpluginspb.GetCaptenPluginsResponse{Status: captenpluginspb.StatusCode_OK, + StatusMessage: "successfully fetched the data from agent", + Plugins: resp.Plugins}, nil +} diff --git a/server/pkg/cassandra-client/client.go b/server/pkg/cassandra-client/client.go deleted file mode 100644 index 42d31d4a..00000000 --- a/server/pkg/cassandra-client/client.go +++ /dev/null @@ -1,89 +0,0 @@ -package cassandraclient - -import ( - "context" - "fmt" - "os" - "time" - - "github.com/gocql/gocql" - "github.com/kelseyhightower/envconfig" - "github.com/kube-tarian/kad/server/pkg/credential" - "github.com/pkg/errors" -) - -type Config struct { - DBAddrs []string `envconfig:"CASSANDRA_ADDRESSES" required:"true"` - ServiceUsername string `envconfig:"CASSANDRA_SERVICE_USERNAME" required:"true"` - EntityName string `envconfig:"CASSANDRA_ENTITY_NAME" required:"true"` - Keyspace string `envconfig:"CASSANDRA_DB_NAME" required:"true"` - ClusterTimeout int `envconfig:"CLUSTER_TIMEOUT_IN_SEC" default:"20"` - ClusterConnectTimeout int `envconfig:"CLUSTER_CONNECT_TIMEOUT_IN_SEC" default:"20"` - ClusterConistency uint16 `envconfig:"CLUSTER_CONSISTENCY" default:"6"` - MaxRetryCount int `envconfig:"MAX_RETRY_COUNT" default:"3"` - MaxConnectionCount int `envconfig:"MAX_CLUSTER_CONNECTION_COUNT" default:"5"` - EnableCassandraTrace bool `envconfig:"ENABLE_CASSANDRA_TRACE" default:"false"` -} - -type Client struct { - cluster *gocql.ClusterConfig - session *gocql.Session - conf *Config -} - -func NewClient() (*Client, error) { - conf := &Config{} - if err := envconfig.Process("", conf); err != nil { - return nil, fmt.Errorf("cassandra config read faile, %v", err) - } - if len(conf.DBAddrs) == 0 { - return nil, errors.New("cassandra DB addresses are empty") - } - - cluster := gocql.NewCluster(conf.DBAddrs...) - cluster.Consistency = gocql.Consistency(conf.ClusterConistency) - cluster.Timeout = time.Duration(conf.ClusterTimeout) * time.Second - cluster.ConnectTimeout = time.Duration(conf.ClusterConnectTimeout) * time.Second - cluster.Keyspace = conf.Keyspace - cluster.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: conf.MaxRetryCount} - cluster.NumConns = conf.MaxConnectionCount - - serviceCredential, err := credential.GetServiceUserCredential(context.Background(), - conf.EntityName, conf.ServiceUsername) - if err != nil { - return nil, err - } - - cluster.Authenticator = gocql.PasswordAuthenticator{ - Username: serviceCredential.UserName, - Password: serviceCredential.Password, - } - - session, err := cluster.CreateSession() - if err != nil { - return nil, fmt.Errorf("error connecting to the DB") - } - - if conf.EnableCassandraTrace { - session.SetTrace(gocql.NewTraceWriter(session, os.Stdout)) - } - store := &Client{ - cluster: cluster, - session: session, - conf: conf, - } - store.session.SetConsistency(gocql.Consistency(conf.ClusterConistency)) - return store, nil -} - -func (c *Client) Session() *gocql.Session { - return c.session -} - -func (c *Client) Keyspace() string { - return c.conf.Keyspace -} - -func (c *Client) Close() { - c.session.Close() -} diff --git a/server/pkg/pb/agentpb/agent.pb.go b/server/pkg/pb/agentpb/agent.pb.go index 8765283c..4a271ded 100644 --- a/server/pkg/pb/agentpb/agent.pb.go +++ b/server/pkg/pb/agentpb/agent.pb.go @@ -1772,6 +1772,8 @@ type AppConfig struct { RuntimeStatus string `protobuf:"bytes,16,opt,name=runtimeStatus,proto3" json:"runtimeStatus,omitempty"` DefualtApp bool `protobuf:"varint,17,opt,name=defualtApp,proto3" json:"defualtApp,omitempty"` LastUpdateTime string `protobuf:"bytes,18,opt,name=lastUpdateTime,proto3" json:"lastUpdateTime,omitempty"` + PluginName string `protobuf:"bytes,19,opt,name=pluginName,proto3" json:"pluginName,omitempty"` + PluginDescription string `protobuf:"bytes,20,opt,name=pluginDescription,proto3" json:"pluginDescription,omitempty"` } func (x *AppConfig) Reset() { @@ -1932,6 +1934,20 @@ func (x *AppConfig) GetLastUpdateTime() string { return "" } +func (x *AppConfig) GetPluginName() string { + if x != nil { + return x.PluginName + } + return "" +} + +func (x *AppConfig) GetPluginDescription() string { + if x != nil { + return x.PluginDescription + } + return "" +} + type AppValues struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2503,7 +2519,7 @@ var file_agent_proto_rawDesc = []byte{ 0x31, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xe5, 0x04, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x73, 0x22, 0xb3, 0x05, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, @@ -2541,132 +2557,137 @@ var file_agent_proto_rawDesc = []byte{ 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x75, 0x61, 0x6c, 0x74, 0x41, 0x70, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, - 0x63, 0x68, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, - 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x55, 0x49, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x11, 0x55, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, - 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x30, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x67, 0x0a, 0x12, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xd5, + 0x01, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, + 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, + 0x68, 0x55, 0x52, 0x4c, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x49, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x11, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x61, + 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x09, 0x61, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, + 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x52, 0x09, 0x61, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, + 0x67, 0x0a, 0x12, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x17, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x16, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, - 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6c, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x4e, 0x0a, 0x0a, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, - 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52, 0x41, 0x4c, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, 0xdb, 0x08, 0x0a, - 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, - 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, - 0x12, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, - 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, - 0x4f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, - 0x53, 0x4f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x4e, 0x0a, 0x0a, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52, 0x41, 0x4c, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4e, + 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, 0xdb, 0x08, 0x0a, 0x05, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x2e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x12, 0x17, + 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x62, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, - 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, + 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, + 0x70, 0x70, 0x53, 0x53, 0x4f, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x53, 0x53, 0x4f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, - 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, - 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x6e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x47, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, + 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x6e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x55, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x41, 0x70, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/server/pkg/pb/captenpluginspb/capten_plugins.pb.go b/server/pkg/pb/captenpluginspb/capten_plugins.pb.go index 5ea9a31c..260ad3b1 100644 --- a/server/pkg/pb/captenpluginspb/capten_plugins.pb.go +++ b/server/pkg/pb/captenpluginspb/capten_plugins.pb.go @@ -2112,6 +2112,194 @@ func (x *GetTektonProjectsResponse) GetProjects() []*TektonProject { return nil } +type CaptenPlugin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PluginName string `protobuf:"bytes,1,opt,name=pluginName,proto3" json:"pluginName,omitempty"` + PluginDescription string `protobuf:"bytes,2,opt,name=pluginDescription,proto3" json:"pluginDescription,omitempty"` + LaunchURL string `protobuf:"bytes,3,opt,name=launchURL,proto3" json:"launchURL,omitempty"` + LaunchIcon []byte `protobuf:"bytes,4,opt,name=launchIcon,proto3" json:"launchIcon,omitempty"` + InstallStatus string `protobuf:"bytes,5,opt,name=installStatus,proto3" json:"installStatus,omitempty"` + RuntimeStatus string `protobuf:"bytes,6,opt,name=runtimeStatus,proto3" json:"runtimeStatus,omitempty"` +} + +func (x *CaptenPlugin) Reset() { + *x = CaptenPlugin{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptenPlugin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptenPlugin) ProtoMessage() {} + +func (x *CaptenPlugin) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[36] + 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 CaptenPlugin.ProtoReflect.Descriptor instead. +func (*CaptenPlugin) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{36} +} + +func (x *CaptenPlugin) GetPluginName() string { + if x != nil { + return x.PluginName + } + return "" +} + +func (x *CaptenPlugin) GetPluginDescription() string { + if x != nil { + return x.PluginDescription + } + return "" +} + +func (x *CaptenPlugin) GetLaunchURL() string { + if x != nil { + return x.LaunchURL + } + return "" +} + +func (x *CaptenPlugin) GetLaunchIcon() []byte { + if x != nil { + return x.LaunchIcon + } + return nil +} + +func (x *CaptenPlugin) GetInstallStatus() string { + if x != nil { + return x.InstallStatus + } + return "" +} + +func (x *CaptenPlugin) GetRuntimeStatus() string { + if x != nil { + return x.RuntimeStatus + } + return "" +} + +type GetCaptenPluginsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetCaptenPluginsRequest) Reset() { + *x = GetCaptenPluginsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCaptenPluginsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCaptenPluginsRequest) ProtoMessage() {} + +func (x *GetCaptenPluginsRequest) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[37] + 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 GetCaptenPluginsRequest.ProtoReflect.Descriptor instead. +func (*GetCaptenPluginsRequest) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{37} +} + +type GetCaptenPluginsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=captenpluginspb.StatusCode" json:"status,omitempty"` + StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"` + Plugins []*CaptenPlugin `protobuf:"bytes,3,rep,name=plugins,proto3" json:"plugins,omitempty"` +} + +func (x *GetCaptenPluginsResponse) Reset() { + *x = GetCaptenPluginsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_capten_plugins_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCaptenPluginsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCaptenPluginsResponse) ProtoMessage() {} + +func (x *GetCaptenPluginsResponse) ProtoReflect() protoreflect.Message { + mi := &file_capten_plugins_proto_msgTypes[38] + 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 GetCaptenPluginsResponse.ProtoReflect.Descriptor instead. +func (*GetCaptenPluginsResponse) Descriptor() ([]byte, []int) { + return file_capten_plugins_proto_rawDescGZIP(), []int{38} +} + +func (x *GetCaptenPluginsResponse) GetStatus() StatusCode { + if x != nil { + return x.Status + } + return StatusCode_OK +} + +func (x *GetCaptenPluginsResponse) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *GetCaptenPluginsResponse) GetPlugins() []*CaptenPlugin { + if x != nil { + return x.Plugins + } + return nil +} + var File_capten_plugins_proto protoreflect.FileDescriptor var file_capten_plugins_proto_rawDesc = []byte{ @@ -2391,13 +2579,47 @@ var file_capten_plugins_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x6b, 0x74, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2a, 0x4d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, - 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, - 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x32, - 0xc7, 0x0e, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x73, 0x12, 0x60, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, + 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2a, 0x4d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, + 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x10, 0x03, 0x32, 0xb2, 0x0f, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x61, + 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x61, + 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x65, + 0x6e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x61, 0x70, @@ -2530,7 +2752,7 @@ func file_capten_plugins_proto_rawDescGZIP() []byte { } var file_capten_plugins_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_capten_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_capten_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_capten_plugins_proto_goTypes = []interface{}{ (StatusCode)(0), // 0: captenpluginspb.StatusCode (*AddGitProjectRequest)(nil), // 1: captenpluginspb.AddGitProjectRequest @@ -2569,9 +2791,12 @@ var file_capten_plugins_proto_goTypes = []interface{}{ (*TektonProject)(nil), // 34: captenpluginspb.TektonProject (*GetTektonProjectsRequest)(nil), // 35: captenpluginspb.GetTektonProjectsRequest (*GetTektonProjectsResponse)(nil), // 36: captenpluginspb.GetTektonProjectsResponse - nil, // 37: captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry - nil, // 38: captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry - nil, // 39: captenpluginspb.CloudProvider.CloudAttributesEntry + (*CaptenPlugin)(nil), // 37: captenpluginspb.CaptenPlugin + (*GetCaptenPluginsRequest)(nil), // 38: captenpluginspb.GetCaptenPluginsRequest + (*GetCaptenPluginsResponse)(nil), // 39: captenpluginspb.GetCaptenPluginsResponse + nil, // 40: captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry + nil, // 41: captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry + nil, // 42: captenpluginspb.CloudProvider.CloudAttributesEntry } var file_capten_plugins_proto_depIdxs = []int32{ 0, // 0: captenpluginspb.AddGitProjectResponse.status:type_name -> captenpluginspb.StatusCode @@ -2581,12 +2806,12 @@ var file_capten_plugins_proto_depIdxs = []int32{ 0, // 4: captenpluginspb.GetGitProjectsResponse.status:type_name -> captenpluginspb.StatusCode 8, // 5: captenpluginspb.GetGitProjectsForLabelsResponse.projects:type_name -> captenpluginspb.GitProject 0, // 6: captenpluginspb.GetGitProjectsForLabelsResponse.status:type_name -> captenpluginspb.StatusCode - 37, // 7: captenpluginspb.AddCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry + 40, // 7: captenpluginspb.AddCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.AddCloudProviderRequest.CloudAttributesEntry 0, // 8: captenpluginspb.AddCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode - 38, // 9: captenpluginspb.UpdateCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry + 41, // 9: captenpluginspb.UpdateCloudProviderRequest.cloudAttributes:type_name -> captenpluginspb.UpdateCloudProviderRequest.CloudAttributesEntry 0, // 10: captenpluginspb.UpdateCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode 0, // 11: captenpluginspb.DeleteCloudProviderResponse.status:type_name -> captenpluginspb.StatusCode - 39, // 12: captenpluginspb.CloudProvider.cloudAttributes:type_name -> captenpluginspb.CloudProvider.CloudAttributesEntry + 42, // 12: captenpluginspb.CloudProvider.cloudAttributes:type_name -> captenpluginspb.CloudProvider.CloudAttributesEntry 19, // 13: captenpluginspb.GetCloudProvidersResponse.cloudProviders:type_name -> captenpluginspb.CloudProvider 0, // 14: captenpluginspb.GetCloudProvidersResponse.status:type_name -> captenpluginspb.StatusCode 19, // 15: captenpluginspb.GetCloudProvidersForLabelsResponse.cloudProviders:type_name -> captenpluginspb.CloudProvider @@ -2599,43 +2824,47 @@ var file_capten_plugins_proto_depIdxs = []int32{ 0, // 22: captenpluginspb.UnRegisterTektonProjectResponse.status:type_name -> captenpluginspb.StatusCode 0, // 23: captenpluginspb.GetTektonProjectsResponse.status:type_name -> captenpluginspb.StatusCode 34, // 24: captenpluginspb.GetTektonProjectsResponse.projects:type_name -> captenpluginspb.TektonProject - 1, // 25: captenpluginspb.capten_plugins.AddGitProject:input_type -> captenpluginspb.AddGitProjectRequest - 3, // 26: captenpluginspb.capten_plugins.UpdateGitProject:input_type -> captenpluginspb.UpdateGitProjectRequest - 5, // 27: captenpluginspb.capten_plugins.DeleteGitProject:input_type -> captenpluginspb.DeleteGitProjectRequest - 7, // 28: captenpluginspb.capten_plugins.GetGitProjects:input_type -> captenpluginspb.GetGitProjectsRequest - 10, // 29: captenpluginspb.capten_plugins.GetGitProjectsForLabels:input_type -> captenpluginspb.GetGitProjectsForLabelsRequest - 12, // 30: captenpluginspb.capten_plugins.AddCloudProvider:input_type -> captenpluginspb.AddCloudProviderRequest - 14, // 31: captenpluginspb.capten_plugins.UpdateCloudProvider:input_type -> captenpluginspb.UpdateCloudProviderRequest - 16, // 32: captenpluginspb.capten_plugins.DeleteCloudProvider:input_type -> captenpluginspb.DeleteCloudProviderRequest - 18, // 33: captenpluginspb.capten_plugins.GetCloudProviders:input_type -> captenpluginspb.GetCloudProvidersRequest - 21, // 34: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:input_type -> captenpluginspb.GetCloudProvidersForLabelsRequest - 23, // 35: captenpluginspb.capten_plugins.RegisterArgoCDProject:input_type -> captenpluginspb.RegisterArgoCDProjectRequest - 25, // 36: captenpluginspb.capten_plugins.GetArgoCDProjects:input_type -> captenpluginspb.GetArgoCDProjectsRequest - 27, // 37: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:input_type -> captenpluginspb.UnRegisterArgoCDProjectRequest - 30, // 38: captenpluginspb.capten_plugins.RegisterTektonProject:input_type -> captenpluginspb.RegisterTektonProjectRequest - 35, // 39: captenpluginspb.capten_plugins.GetTektonProjects:input_type -> captenpluginspb.GetTektonProjectsRequest - 32, // 40: captenpluginspb.capten_plugins.UnRegisterTektonProject:input_type -> captenpluginspb.UnRegisterTektonProjectRequest - 2, // 41: captenpluginspb.capten_plugins.AddGitProject:output_type -> captenpluginspb.AddGitProjectResponse - 4, // 42: captenpluginspb.capten_plugins.UpdateGitProject:output_type -> captenpluginspb.UpdateGitProjectResponse - 6, // 43: captenpluginspb.capten_plugins.DeleteGitProject:output_type -> captenpluginspb.DeleteGitProjectResponse - 9, // 44: captenpluginspb.capten_plugins.GetGitProjects:output_type -> captenpluginspb.GetGitProjectsResponse - 11, // 45: captenpluginspb.capten_plugins.GetGitProjectsForLabels:output_type -> captenpluginspb.GetGitProjectsForLabelsResponse - 13, // 46: captenpluginspb.capten_plugins.AddCloudProvider:output_type -> captenpluginspb.AddCloudProviderResponse - 15, // 47: captenpluginspb.capten_plugins.UpdateCloudProvider:output_type -> captenpluginspb.UpdateCloudProviderResponse - 17, // 48: captenpluginspb.capten_plugins.DeleteCloudProvider:output_type -> captenpluginspb.DeleteCloudProviderResponse - 20, // 49: captenpluginspb.capten_plugins.GetCloudProviders:output_type -> captenpluginspb.GetCloudProvidersResponse - 22, // 50: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:output_type -> captenpluginspb.GetCloudProvidersForLabelsResponse - 24, // 51: captenpluginspb.capten_plugins.RegisterArgoCDProject:output_type -> captenpluginspb.RegisterArgoCDProjectResponse - 26, // 52: captenpluginspb.capten_plugins.GetArgoCDProjects:output_type -> captenpluginspb.GetArgoCDProjectsResponse - 28, // 53: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:output_type -> captenpluginspb.UnRegisterArgoCDProjectResponse - 31, // 54: captenpluginspb.capten_plugins.RegisterTektonProject:output_type -> captenpluginspb.RegisterTektonProjectResponse - 36, // 55: captenpluginspb.capten_plugins.GetTektonProjects:output_type -> captenpluginspb.GetTektonProjectsResponse - 33, // 56: captenpluginspb.capten_plugins.UnRegisterTektonProject:output_type -> captenpluginspb.UnRegisterTektonProjectResponse - 41, // [41:57] is the sub-list for method output_type - 25, // [25:41] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 0, // 25: captenpluginspb.GetCaptenPluginsResponse.status:type_name -> captenpluginspb.StatusCode + 37, // 26: captenpluginspb.GetCaptenPluginsResponse.plugins:type_name -> captenpluginspb.CaptenPlugin + 38, // 27: captenpluginspb.capten_plugins.GetCaptenPlugins:input_type -> captenpluginspb.GetCaptenPluginsRequest + 1, // 28: captenpluginspb.capten_plugins.AddGitProject:input_type -> captenpluginspb.AddGitProjectRequest + 3, // 29: captenpluginspb.capten_plugins.UpdateGitProject:input_type -> captenpluginspb.UpdateGitProjectRequest + 5, // 30: captenpluginspb.capten_plugins.DeleteGitProject:input_type -> captenpluginspb.DeleteGitProjectRequest + 7, // 31: captenpluginspb.capten_plugins.GetGitProjects:input_type -> captenpluginspb.GetGitProjectsRequest + 10, // 32: captenpluginspb.capten_plugins.GetGitProjectsForLabels:input_type -> captenpluginspb.GetGitProjectsForLabelsRequest + 12, // 33: captenpluginspb.capten_plugins.AddCloudProvider:input_type -> captenpluginspb.AddCloudProviderRequest + 14, // 34: captenpluginspb.capten_plugins.UpdateCloudProvider:input_type -> captenpluginspb.UpdateCloudProviderRequest + 16, // 35: captenpluginspb.capten_plugins.DeleteCloudProvider:input_type -> captenpluginspb.DeleteCloudProviderRequest + 18, // 36: captenpluginspb.capten_plugins.GetCloudProviders:input_type -> captenpluginspb.GetCloudProvidersRequest + 21, // 37: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:input_type -> captenpluginspb.GetCloudProvidersForLabelsRequest + 23, // 38: captenpluginspb.capten_plugins.RegisterArgoCDProject:input_type -> captenpluginspb.RegisterArgoCDProjectRequest + 25, // 39: captenpluginspb.capten_plugins.GetArgoCDProjects:input_type -> captenpluginspb.GetArgoCDProjectsRequest + 27, // 40: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:input_type -> captenpluginspb.UnRegisterArgoCDProjectRequest + 30, // 41: captenpluginspb.capten_plugins.RegisterTektonProject:input_type -> captenpluginspb.RegisterTektonProjectRequest + 35, // 42: captenpluginspb.capten_plugins.GetTektonProjects:input_type -> captenpluginspb.GetTektonProjectsRequest + 32, // 43: captenpluginspb.capten_plugins.UnRegisterTektonProject:input_type -> captenpluginspb.UnRegisterTektonProjectRequest + 39, // 44: captenpluginspb.capten_plugins.GetCaptenPlugins:output_type -> captenpluginspb.GetCaptenPluginsResponse + 2, // 45: captenpluginspb.capten_plugins.AddGitProject:output_type -> captenpluginspb.AddGitProjectResponse + 4, // 46: captenpluginspb.capten_plugins.UpdateGitProject:output_type -> captenpluginspb.UpdateGitProjectResponse + 6, // 47: captenpluginspb.capten_plugins.DeleteGitProject:output_type -> captenpluginspb.DeleteGitProjectResponse + 9, // 48: captenpluginspb.capten_plugins.GetGitProjects:output_type -> captenpluginspb.GetGitProjectsResponse + 11, // 49: captenpluginspb.capten_plugins.GetGitProjectsForLabels:output_type -> captenpluginspb.GetGitProjectsForLabelsResponse + 13, // 50: captenpluginspb.capten_plugins.AddCloudProvider:output_type -> captenpluginspb.AddCloudProviderResponse + 15, // 51: captenpluginspb.capten_plugins.UpdateCloudProvider:output_type -> captenpluginspb.UpdateCloudProviderResponse + 17, // 52: captenpluginspb.capten_plugins.DeleteCloudProvider:output_type -> captenpluginspb.DeleteCloudProviderResponse + 20, // 53: captenpluginspb.capten_plugins.GetCloudProviders:output_type -> captenpluginspb.GetCloudProvidersResponse + 22, // 54: captenpluginspb.capten_plugins.GetCloudProvidersForLabel:output_type -> captenpluginspb.GetCloudProvidersForLabelsResponse + 24, // 55: captenpluginspb.capten_plugins.RegisterArgoCDProject:output_type -> captenpluginspb.RegisterArgoCDProjectResponse + 26, // 56: captenpluginspb.capten_plugins.GetArgoCDProjects:output_type -> captenpluginspb.GetArgoCDProjectsResponse + 28, // 57: captenpluginspb.capten_plugins.UnRegisterArgoCDProject:output_type -> captenpluginspb.UnRegisterArgoCDProjectResponse + 31, // 58: captenpluginspb.capten_plugins.RegisterTektonProject:output_type -> captenpluginspb.RegisterTektonProjectResponse + 36, // 59: captenpluginspb.capten_plugins.GetTektonProjects:output_type -> captenpluginspb.GetTektonProjectsResponse + 33, // 60: captenpluginspb.capten_plugins.UnRegisterTektonProject:output_type -> captenpluginspb.UnRegisterTektonProjectResponse + 44, // [44:61] is the sub-list for method output_type + 27, // [27:44] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_capten_plugins_proto_init() } @@ -3076,6 +3305,42 @@ func file_capten_plugins_proto_init() { return nil } } + file_capten_plugins_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptenPlugin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_capten_plugins_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptenPluginsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_capten_plugins_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptenPluginsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3083,7 +3348,7 @@ func file_capten_plugins_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_capten_plugins_proto_rawDesc, NumEnums: 1, - NumMessages: 39, + NumMessages: 42, NumExtensions: 0, NumServices: 1, }, diff --git a/server/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go b/server/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go index 005af4d4..5e8de8ca 100644 --- a/server/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go +++ b/server/pkg/pb/captenpluginspb/capten_plugins_grpc.pb.go @@ -19,6 +19,7 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( + CaptenPlugins_GetCaptenPlugins_FullMethodName = "/captenpluginspb.capten_plugins/GetCaptenPlugins" CaptenPlugins_AddGitProject_FullMethodName = "/captenpluginspb.capten_plugins/AddGitProject" CaptenPlugins_UpdateGitProject_FullMethodName = "/captenpluginspb.capten_plugins/UpdateGitProject" CaptenPlugins_DeleteGitProject_FullMethodName = "/captenpluginspb.capten_plugins/DeleteGitProject" @@ -41,6 +42,7 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type CaptenPluginsClient interface { + GetCaptenPlugins(ctx context.Context, in *GetCaptenPluginsRequest, opts ...grpc.CallOption) (*GetCaptenPluginsResponse, error) AddGitProject(ctx context.Context, in *AddGitProjectRequest, opts ...grpc.CallOption) (*AddGitProjectResponse, error) UpdateGitProject(ctx context.Context, in *UpdateGitProjectRequest, opts ...grpc.CallOption) (*UpdateGitProjectResponse, error) DeleteGitProject(ctx context.Context, in *DeleteGitProjectRequest, opts ...grpc.CallOption) (*DeleteGitProjectResponse, error) @@ -67,6 +69,15 @@ func NewCaptenPluginsClient(cc grpc.ClientConnInterface) CaptenPluginsClient { return &captenPluginsClient{cc} } +func (c *captenPluginsClient) GetCaptenPlugins(ctx context.Context, in *GetCaptenPluginsRequest, opts ...grpc.CallOption) (*GetCaptenPluginsResponse, error) { + out := new(GetCaptenPluginsResponse) + err := c.cc.Invoke(ctx, CaptenPlugins_GetCaptenPlugins_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *captenPluginsClient) AddGitProject(ctx context.Context, in *AddGitProjectRequest, opts ...grpc.CallOption) (*AddGitProjectResponse, error) { out := new(AddGitProjectResponse) err := c.cc.Invoke(ctx, CaptenPlugins_AddGitProject_FullMethodName, in, out, opts...) @@ -215,6 +226,7 @@ func (c *captenPluginsClient) UnRegisterTektonProject(ctx context.Context, in *U // All implementations must embed UnimplementedCaptenPluginsServer // for forward compatibility type CaptenPluginsServer interface { + GetCaptenPlugins(context.Context, *GetCaptenPluginsRequest) (*GetCaptenPluginsResponse, error) AddGitProject(context.Context, *AddGitProjectRequest) (*AddGitProjectResponse, error) UpdateGitProject(context.Context, *UpdateGitProjectRequest) (*UpdateGitProjectResponse, error) DeleteGitProject(context.Context, *DeleteGitProjectRequest) (*DeleteGitProjectResponse, error) @@ -238,6 +250,9 @@ type CaptenPluginsServer interface { type UnimplementedCaptenPluginsServer struct { } +func (UnimplementedCaptenPluginsServer) GetCaptenPlugins(context.Context, *GetCaptenPluginsRequest) (*GetCaptenPluginsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCaptenPlugins not implemented") +} func (UnimplementedCaptenPluginsServer) AddGitProject(context.Context, *AddGitProjectRequest) (*AddGitProjectResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddGitProject not implemented") } @@ -299,6 +314,24 @@ func RegisterCaptenPluginsServer(s grpc.ServiceRegistrar, srv CaptenPluginsServe s.RegisterService(&CaptenPlugins_ServiceDesc, srv) } +func _CaptenPlugins_GetCaptenPlugins_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCaptenPluginsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CaptenPluginsServer).GetCaptenPlugins(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CaptenPlugins_GetCaptenPlugins_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CaptenPluginsServer).GetCaptenPlugins(ctx, req.(*GetCaptenPluginsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CaptenPlugins_AddGitProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddGitProjectRequest) if err := dec(in); err != nil { @@ -594,6 +627,10 @@ var CaptenPlugins_ServiceDesc = grpc.ServiceDesc{ ServiceName: "captenpluginspb.capten_plugins", HandlerType: (*CaptenPluginsServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetCaptenPlugins", + Handler: _CaptenPlugins_GetCaptenPlugins_Handler, + }, { MethodName: "AddGitProject", Handler: _CaptenPlugins_AddGitProject_Handler, diff --git a/server/pkg/store-apps/sync_store_apps.go b/server/pkg/store-apps/sync_store_apps.go index acaf7917..ab33226d 100644 --- a/server/pkg/store-apps/sync_store_apps.go +++ b/server/pkg/store-apps/sync_store_apps.go @@ -45,10 +45,11 @@ type AppConfig struct { PrivilegedNamespace bool `yaml:"PrivilegedNamespace"` TemplateValues map[string]interface{} `yaml:"TemplateValues"` Icon string `yaml:"Icon"` + PluginName string `yaml:"PluginName"` + PluginDescription string `yaml:"PluginDescription"` } func SyncStoreApps(log logging.Logger, appStore store.ServerStore) error { - cfg := &Config{} if err := envconfig.Process("", cfg); err != nil { return err @@ -98,6 +99,8 @@ func SyncStoreApps(log logging.Logger, appStore store.ServerStore) error { PrivilegedNamespace: appConfig.PrivilegedNamespace, LaunchURL: appConfig.LaunchURL, LaunchUIDescription: appConfig.LaunchUIDescription, + PluginName: appConfig.PluginName, + PluginDescription: appConfig.PluginDescription, } if len(appConfig.LaunchUIIcon) != 0 { diff --git a/server/pkg/store/astra/app_store.go b/server/pkg/store/astra/app_store.go index e4d465c6..33ad00fa 100644 --- a/server/pkg/store/astra/app_store.go +++ b/server/pkg/store/astra/app_store.go @@ -12,11 +12,11 @@ import ( ) const ( - createAppConfigQuery string = "INSERT INTO %s.store_app_config (name, chart_name, repo_name,release_name, repo_url, namespace, version, create_namespace, privileged_namespace, launch_ui_url, launch_ui_redirect_url, category, icon, description, launch_ui_values, override_values, template_values, created_time, id) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', %t, %t, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%v', '%s' );" - updateAppConfigQuery string = "UPDATE %s.store_app_config SET chart_name = '%s', repo_name = '%s', repo_url = '%s', namespace = '%s', create_namespace = %t, privileged_namespace = %t, launch_ui_url = '%s', launch_ui_redirect_url = '%s', category = '%s', icon = '%s', description = '%s', launch_ui_values = '%s', override_values = '%s', template_values = '%s', last_updated_time='%v' WHERE name = '%s' AND version = '%s';" + createAppConfigQuery string = "INSERT INTO %s.store_app_config (name, chart_name, repo_name,release_name, repo_url, namespace, version, create_namespace, privileged_namespace, launch_ui_url, launch_ui_redirect_url, category, icon, description, launch_ui_values, override_values, template_values, created_time, id, plugin_name, plugin_description) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', %t, %t, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%v', '%s', '%v', '%s' );" + updateAppConfigQuery string = "UPDATE %s.store_app_config SET chart_name = '%s', repo_name = '%s', repo_url = '%s', namespace = '%s', create_namespace = %t, privileged_namespace = %t, launch_ui_url = '%s', launch_ui_redirect_url = '%s', category = '%s', icon = '%s', description = '%s', launch_ui_values = '%s', override_values = '%s', template_values = '%s', last_updated_time='%v', plugin_name = '%s', plugin_description = '%s' WHERE name = '%s' AND version = '%s';" deleteAppConfigQuery string = "DELETE FROM %s.store_app_config WHERE name='%s' AND version='%s';" - getAppConfigQuery string = "SELECT name,chart_name,repo_name,repo_url,namespace,version,create_namespace,privileged_namespace,launch_ui_url,launch_ui_redirect_url,category,icon,description,launch_ui_values,override_values, template_values, release_name FROM %s.store_app_config WHERE name='%s' AND version='%s';" - getAllAppConfigsQuery string = "SELECT name,chart_name,repo_name,repo_url,namespace,version,create_namespace,privileged_namespace,launch_ui_url,launch_ui_redirect_url,category,icon,description,launch_ui_values,override_values, template_values, release_name FROM %s.store_app_config;" + getAppConfigQuery string = "SELECT name,chart_name,repo_name,repo_url,namespace,version,create_namespace,privileged_namespace,launch_ui_url,launch_ui_redirect_url,category,icon,description,launch_ui_values,override_values, template_values, release_name, plugin_name, plugin_description FROM %s.store_app_config WHERE name='%s' AND version='%s';" + getAllAppConfigsQuery string = "SELECT name,chart_name,repo_name,repo_url,namespace,version,create_namespace,privileged_namespace,launch_ui_url,launch_ui_redirect_url,category,icon,description,launch_ui_values,override_values, template_values, release_name, plugin_name, plugin_description FROM %s.store_app_config;" appConfigExistanceCheckQuery string = "SELECT name, version FROM %s.store_app_config WHERE name='%s' AND version ='%s';" ) @@ -30,12 +30,19 @@ func (a *AstraServerStore) AddOrUpdateStoreApp(config *types.StoreAppConfig) err if appExists { query = &pb.Query{ Cql: fmt.Sprintf(updateAppConfigQuery, - a.keyspace, config.ChartName, config.RepoName, config.RepoURL, config.Namespace, config.CreateNamespace, config.PrivilegedNamespace, config.LaunchURL, config.LaunchUIDescription, config.Category, config.Icon, config.Description, config.LaunchUIValues, config.OverrideValues, config.TemplateValues, time.Now().Format(time.RFC3339), config.AppName, config.Version), + a.keyspace, config.ChartName, config.RepoName, config.RepoURL, config.Namespace, config.CreateNamespace, + config.PrivilegedNamespace, config.LaunchURL, config.LaunchUIDescription, config.Category, config.Icon, + config.Description, config.LaunchUIValues, config.OverrideValues, config.TemplateValues, + time.Now().Format(time.RFC3339), config.PluginName, config.PluginDescription, config.AppName, config.Version), } } else { query = &pb.Query{ Cql: fmt.Sprintf(createAppConfigQuery, - a.keyspace, config.AppName, config.ChartName, config.RepoName, config.ReleaseName, config.RepoURL, config.Namespace, config.Version, config.CreateNamespace, config.PrivilegedNamespace, config.LaunchURL, config.LaunchUIDescription, config.Category, config.Icon, config.Description, config.LaunchUIValues, config.OverrideValues, config.TemplateValues, time.Now().Format(time.RFC3339), uuid.New().String()), + a.keyspace, config.AppName, config.ChartName, config.RepoName, config.ReleaseName, config.RepoURL, + config.Namespace, config.Version, config.CreateNamespace, config.PrivilegedNamespace, config.LaunchURL, + config.LaunchUIDescription, config.Category, config.Icon, config.Description, config.LaunchUIValues, + config.OverrideValues, config.TemplateValues, time.Now().Format(time.RFC3339), uuid.New().String(), config.PluginName, + config.PluginDescription), } } @@ -179,11 +186,20 @@ func toAppConfig(row *pb.Row) (*types.AppConfig, error) { } cqlTemplateValues, err := client.ToString(row.Values[15]) if err != nil { - return nil, fmt.Errorf("failed to get override values: %w", err) + return nil, fmt.Errorf("failed to get template values: %w", err) } cqlReleaseNameValues, err := client.ToString(row.Values[16]) if err != nil { - return nil, fmt.Errorf("failed to get override values: %w", err) + return nil, fmt.Errorf("failed to get release name values: %w", err) + } + + cqlPluginName, err := client.ToString(row.Values[17]) + if err != nil { + return nil, fmt.Errorf("failed to get plugin values: %w", err) + } + cqlPluginDescription, err := client.ToString(row.Values[18]) + if err != nil { + return nil, fmt.Errorf("failed to get plugin description values: %w", err) } var cqlLaunchUiValuesByte []byte @@ -219,6 +235,8 @@ func toAppConfig(row *pb.Row) (*types.AppConfig, error) { OverrideValues: cqlOverrideValuesByte, TemplateValues: cqlTemplateValuesByte, ReleaseName: cqlReleaseNameValues, + PluginName: cqlPluginName, + PluginDescription: cqlPluginDescription, } return config, nil } diff --git a/server/pkg/store/astra/store.go b/server/pkg/store/astra/store.go index 18a35fb6..b2d20de3 100644 --- a/server/pkg/store/astra/store.go +++ b/server/pkg/store/astra/store.go @@ -31,6 +31,7 @@ func (a *AstraServerStore) initClient() error { func (a *AstraServerStore) InitializeDb() error { initDbQueries := []string{ fmt.Sprintf(createClusterEndpointTableQuery, a.keyspace), + fmt.Sprintf("DROP TABLE %s.store_app_config;", a.keyspace), fmt.Sprintf(createAppConfigTableQuery, a.keyspace), fmt.Sprintf(createCacheAgentAppLaunchesTableQuery, a.keyspace), } diff --git a/server/pkg/store/astra/type.go b/server/pkg/store/astra/type.go index 28bc0525..d6cfa2e8 100644 --- a/server/pkg/store/astra/type.go +++ b/server/pkg/store/astra/type.go @@ -7,7 +7,7 @@ import ( const ( createKeyspaceQuery = "CREATE KEYSPACE IF NOT EXISTS %s WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1};" createClusterEndpointTableQuery = "CREATE TABLE IF NOT EXISTS %s.capten_clusters (cluster_id uuid, org_id uuid, cluster_name text, endpoint text, PRIMARY KEY (org_id, cluster_id));" - createAppConfigTableQuery = "CREATE TABLE IF NOT EXISTS %s.store_app_config(id TEXT, created_time timestamp, last_updated_time timestamp, last_updated_user TEXT, name TEXT, chart_name TEXT, repo_name TEXT, release_name TEXT, repo_url TEXT, namespace TEXT, version TEXT, create_namespace BOOLEAN, privileged_namespace BOOLEAN, launch_ui_url TEXT, launch_ui_redirect_url TEXT, category TEXT, icon TEXT, description TEXT, launch_ui_values TEXT, override_values TEXT, template_values TEXT, PRIMARY KEY (name, version));" + createAppConfigTableQuery = "CREATE TABLE IF NOT EXISTS %s.store_app_config(id TEXT, created_time timestamp, last_updated_time timestamp, last_updated_user TEXT, name TEXT, chart_name TEXT, repo_name TEXT, release_name TEXT, repo_url TEXT, namespace TEXT, version TEXT, create_namespace BOOLEAN, privileged_namespace BOOLEAN, launch_ui_url TEXT, launch_ui_redirect_url TEXT, category TEXT, icon TEXT, description TEXT, launch_ui_values TEXT, override_values TEXT, template_values TEXT, plugin_name TEXT, plugin_description TEXT, PRIMARY KEY (name, version));" createCacheAgentAppLaunchesTableQuery = `CREATE TABLE IF NOT EXISTS %s.app_launches (cluster_id uuid, org_id uuid, release_name text, description text, category text, icon blob, launch_url text, launch_ui_description text, PRIMARY KEY ((org_id, cluster_id), release_name));` diff --git a/server/pkg/types/type.go b/server/pkg/types/type.go index 008dfe4c..7c4df0c8 100644 --- a/server/pkg/types/type.go +++ b/server/pkg/types/type.go @@ -41,6 +41,8 @@ type StoreAppConfig struct { OverrideValues string `json:"overrideValues,omitempty"` LaunchUIValues string `json:"launchUIValues,omitempty"` TemplateValues string `json:"templateValues,omitempty"` + PluginName string `yaml:"PluginName"` + PluginDescription string `yaml:"PluginDescription"` } type AppConfig struct { @@ -62,6 +64,8 @@ type AppConfig struct { PrivilegedNamespace bool `yaml:"PrivilegedNamespace"` TemplateValues []byte `yaml:"TemplateValues"` Icon string `yaml:"Icon"` + PluginName string `yaml:"PluginName"` + PluginDescription string `yaml:"PluginDescription"` } type AppInstallRequest struct {