capture custom role creation in prehog (#21123)

* add e2e role creation events

* add role name

* reset proto

* cleartext default role names

* constant
This commit is contained in:
Michelle Bergquist
2023-02-09 19:23:29 +00:00
committed by GitHub
parent 511dc199d8
commit 8dfa07559b
13 changed files with 3006 additions and 262 deletions
File diff suppressed because it is too large Load Diff
@@ -233,6 +233,18 @@ message UIDiscoverCompletedEvent {
DiscoverStepStatus status = 3;
}
// UICreateNewRoleClickEvent is an event that can be triggered during custom role creation
message UICreateNewRoleClickEvent {}
// UICreateNewRoleSaveClickEvent is an event that can be triggered during custom role creation
message UICreateNewRoleSaveClickEvent {}
// UICreateNewRoleCancelClickEvent is an event that can be triggered during custom role creation
message UICreateNewRoleCancelClickEvent {}
// UICreateNewRoleViewDocumentationClickEvent is an event that can be triggered during custom role creation
message UICreateNewRoleViewDocumentationClickEvent {}
// UsageEventOneOf is a message that can accept a oneof of any supported
// external usage event.
message UsageEventOneOf {
@@ -258,6 +270,10 @@ message UsageEventOneOf {
UIDiscoverPrincipalsConfigureEvent ui_discover_principals_configure_event = 20;
UIDiscoverTestConnectionEvent ui_discover_test_connection_event = 21;
UIDiscoverCompletedEvent ui_discover_completed_event = 22;
UICreateNewRoleClickEvent ui_create_new_role_click = 23;
UICreateNewRoleSaveClickEvent ui_create_new_role_save_click = 24;
UICreateNewRoleCancelClickEvent ui_create_new_role_cancel_click = 25;
UICreateNewRoleViewDocumentationClickEvent ui_create_new_role_view_documentation_click = 26;
}
reserved 2; //UIOnboardGetStartedClickEvent
reserved "ui_onboard_get_started_click";
+2
View File
@@ -596,6 +596,8 @@ const (
PresetAuditorRoleName = "auditor"
)
var PresetRoles = []string{PresetEditorRoleName, PresetAccessRoleName, PresetAuditorRoleName}
// MinClientVersion is the minimum client version required by the server.
var MinClientVersion string
+574 -123
View File
@@ -1910,6 +1910,256 @@ func (x *UIDiscoverCompletedEvent) GetStatus() *DiscoverStepStatus {
return nil
}
// RoleCreateEvent is emitted when user creates a custom role.
type RoleCreateEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// anonymized
UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
// anonymized
RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"`
}
func (x *RoleCreateEvent) Reset() {
*x = RoleCreateEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RoleCreateEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RoleCreateEvent) ProtoMessage() {}
func (x *RoleCreateEvent) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29]
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 RoleCreateEvent.ProtoReflect.Descriptor instead.
func (*RoleCreateEvent) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{29}
}
func (x *RoleCreateEvent) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
func (x *RoleCreateEvent) GetRoleName() string {
if x != nil {
return x.RoleName
}
return ""
}
type UICreateNewRoleClickEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// anonymized
UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
}
func (x *UICreateNewRoleClickEvent) Reset() {
*x = UICreateNewRoleClickEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UICreateNewRoleClickEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UICreateNewRoleClickEvent) ProtoMessage() {}
func (x *UICreateNewRoleClickEvent) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30]
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 UICreateNewRoleClickEvent.ProtoReflect.Descriptor instead.
func (*UICreateNewRoleClickEvent) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{30}
}
func (x *UICreateNewRoleClickEvent) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
type UICreateNewRoleSaveClickEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// anonymized
UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
}
func (x *UICreateNewRoleSaveClickEvent) Reset() {
*x = UICreateNewRoleSaveClickEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UICreateNewRoleSaveClickEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UICreateNewRoleSaveClickEvent) ProtoMessage() {}
func (x *UICreateNewRoleSaveClickEvent) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31]
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 UICreateNewRoleSaveClickEvent.ProtoReflect.Descriptor instead.
func (*UICreateNewRoleSaveClickEvent) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{31}
}
func (x *UICreateNewRoleSaveClickEvent) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
type UICreateNewRoleCancelClickEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// anonymized
UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
}
func (x *UICreateNewRoleCancelClickEvent) Reset() {
*x = UICreateNewRoleCancelClickEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UICreateNewRoleCancelClickEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UICreateNewRoleCancelClickEvent) ProtoMessage() {}
func (x *UICreateNewRoleCancelClickEvent) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32]
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 UICreateNewRoleCancelClickEvent.ProtoReflect.Descriptor instead.
func (*UICreateNewRoleCancelClickEvent) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{32}
}
func (x *UICreateNewRoleCancelClickEvent) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
type UICreateNewRoleViewDocumentationClickEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// anonymized
UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
}
func (x *UICreateNewRoleViewDocumentationClickEvent) Reset() {
*x = UICreateNewRoleViewDocumentationClickEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UICreateNewRoleViewDocumentationClickEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UICreateNewRoleViewDocumentationClickEvent) ProtoMessage() {}
func (x *UICreateNewRoleViewDocumentationClickEvent) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[33]
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 UICreateNewRoleViewDocumentationClickEvent.ProtoReflect.Descriptor instead.
func (*UICreateNewRoleViewDocumentationClickEvent) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{33}
}
func (x *UICreateNewRoleViewDocumentationClickEvent) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
type SubmitEventRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1948,13 +2198,18 @@ type SubmitEventRequest struct {
// *SubmitEventRequest_UiDiscoverPrincipalsConfigureEvent
// *SubmitEventRequest_UiDiscoverTestConnectionEvent
// *SubmitEventRequest_UiDiscoverCompletedEvent
// *SubmitEventRequest_RoleCreate
// *SubmitEventRequest_UiCreateNewRoleClick
// *SubmitEventRequest_UiCreateNewRoleSaveClick
// *SubmitEventRequest_UiCreateNewRoleCancelClick
// *SubmitEventRequest_UiCreateNewRoleViewDocumentationClick
Event isSubmitEventRequest_Event `protobuf_oneof:"event"`
}
func (x *SubmitEventRequest) Reset() {
*x = SubmitEventRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1967,7 +2222,7 @@ func (x *SubmitEventRequest) String() string {
func (*SubmitEventRequest) ProtoMessage() {}
func (x *SubmitEventRequest) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1980,7 +2235,7 @@ func (x *SubmitEventRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SubmitEventRequest.ProtoReflect.Descriptor instead.
func (*SubmitEventRequest) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{29}
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{34}
}
func (x *SubmitEventRequest) GetClusterName() string {
@@ -2193,6 +2448,41 @@ func (x *SubmitEventRequest) GetUiDiscoverCompletedEvent() *UIDiscoverCompletedE
return nil
}
func (x *SubmitEventRequest) GetRoleCreate() *RoleCreateEvent {
if x, ok := x.GetEvent().(*SubmitEventRequest_RoleCreate); ok {
return x.RoleCreate
}
return nil
}
func (x *SubmitEventRequest) GetUiCreateNewRoleClick() *UICreateNewRoleClickEvent {
if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleClick); ok {
return x.UiCreateNewRoleClick
}
return nil
}
func (x *SubmitEventRequest) GetUiCreateNewRoleSaveClick() *UICreateNewRoleSaveClickEvent {
if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleSaveClick); ok {
return x.UiCreateNewRoleSaveClick
}
return nil
}
func (x *SubmitEventRequest) GetUiCreateNewRoleCancelClick() *UICreateNewRoleCancelClickEvent {
if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleCancelClick); ok {
return x.UiCreateNewRoleCancelClick
}
return nil
}
func (x *SubmitEventRequest) GetUiCreateNewRoleViewDocumentationClick() *UICreateNewRoleViewDocumentationClickEvent {
if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick); ok {
return x.UiCreateNewRoleViewDocumentationClick
}
return nil
}
type isSubmitEventRequest_Event interface {
isSubmitEventRequest_Event()
}
@@ -2310,6 +2600,26 @@ type SubmitEventRequest_UiDiscoverCompletedEvent struct {
UiDiscoverCompletedEvent *UIDiscoverCompletedEvent `protobuf:"bytes,30,opt,name=ui_discover_completed_event,json=uiDiscoverCompletedEvent,proto3,oneof"`
}
type SubmitEventRequest_RoleCreate struct {
RoleCreate *RoleCreateEvent `protobuf:"bytes,31,opt,name=role_create,json=roleCreate,proto3,oneof"`
}
type SubmitEventRequest_UiCreateNewRoleClick struct {
UiCreateNewRoleClick *UICreateNewRoleClickEvent `protobuf:"bytes,32,opt,name=ui_create_new_role_click,json=uiCreateNewRoleClick,proto3,oneof"`
}
type SubmitEventRequest_UiCreateNewRoleSaveClick struct {
UiCreateNewRoleSaveClick *UICreateNewRoleSaveClickEvent `protobuf:"bytes,33,opt,name=ui_create_new_role_save_click,json=uiCreateNewRoleSaveClick,proto3,oneof"`
}
type SubmitEventRequest_UiCreateNewRoleCancelClick struct {
UiCreateNewRoleCancelClick *UICreateNewRoleCancelClickEvent `protobuf:"bytes,34,opt,name=ui_create_new_role_cancel_click,json=uiCreateNewRoleCancelClick,proto3,oneof"`
}
type SubmitEventRequest_UiCreateNewRoleViewDocumentationClick struct {
UiCreateNewRoleViewDocumentationClick *UICreateNewRoleViewDocumentationClickEvent `protobuf:"bytes,35,opt,name=ui_create_new_role_view_documentation_click,json=uiCreateNewRoleViewDocumentationClick,proto3,oneof"`
}
func (*SubmitEventRequest_UserLogin) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_SsoCreate) isSubmitEventRequest_Event() {}
@@ -2366,6 +2676,16 @@ func (*SubmitEventRequest_UiDiscoverTestConnectionEvent) isSubmitEventRequest_Ev
func (*SubmitEventRequest_UiDiscoverCompletedEvent) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_RoleCreate) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_UiCreateNewRoleClick) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_UiCreateNewRoleSaveClick) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_UiCreateNewRoleCancelClick) isSubmitEventRequest_Event() {}
func (*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick) isSubmitEventRequest_Event() {}
type SubmitEventResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -2375,7 +2695,7 @@ type SubmitEventResponse struct {
func (x *SubmitEventResponse) Reset() {
*x = SubmitEventResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2388,7 +2708,7 @@ func (x *SubmitEventResponse) String() string {
func (*SubmitEventResponse) ProtoMessage() {}
func (x *SubmitEventResponse) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2401,7 +2721,7 @@ func (x *SubmitEventResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SubmitEventResponse.ProtoReflect.Descriptor instead.
func (*SubmitEventResponse) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{30}
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{35}
}
type HelloTeleportRequest struct {
@@ -2413,7 +2733,7 @@ type HelloTeleportRequest struct {
func (x *HelloTeleportRequest) Reset() {
*x = HelloTeleportRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2426,7 +2746,7 @@ func (x *HelloTeleportRequest) String() string {
func (*HelloTeleportRequest) ProtoMessage() {}
func (x *HelloTeleportRequest) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2439,7 +2759,7 @@ func (x *HelloTeleportRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use HelloTeleportRequest.ProtoReflect.Descriptor instead.
func (*HelloTeleportRequest) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{31}
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{36}
}
type HelloTeleportResponse struct {
@@ -2451,7 +2771,7 @@ type HelloTeleportResponse struct {
func (x *HelloTeleportResponse) Reset() {
*x = HelloTeleportResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2464,7 +2784,7 @@ func (x *HelloTeleportResponse) String() string {
func (*HelloTeleportResponse) ProtoMessage() {}
func (x *HelloTeleportResponse) ProtoReflect() protoreflect.Message {
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32]
mi := &file_prehog_v1alpha_teleport_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2477,7 +2797,7 @@ func (x *HelloTeleportResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use HelloTeleportResponse.ProtoReflect.Descriptor instead.
func (*HelloTeleportResponse) Descriptor() ([]byte, []int) {
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{32}
return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{37}
}
var File_prehog_v1alpha_teleport_proto protoreflect.FileDescriptor
@@ -2754,7 +3074,28 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{
0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
0x61, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x70, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xec, 0x1a, 0x0a,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4b, 0x0a, 0x0f,
0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09,
0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x19, 0x55, 0x49, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63,
0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e,
0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x1d, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
0x65, 0x22, 0x3e, 0x0a, 0x1f, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77,
0x52, 0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
0x65, 0x22, 0x49, 0x0a, 0x2a, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77,
0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9a, 0x1f, 0x0a,
0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74,
@@ -2966,94 +3307,129 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{
0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x44, 0x69, 0x73, 0x63,
0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x48, 0x00, 0x52, 0x18, 0x75, 0x69, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72,
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x07,
0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x1c, 0x75,
0x69, 0x5f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74,
0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x53,
0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70,
0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x65,
0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x2a, 0xaa, 0x06, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x49, 0x53, 0x43,
0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e,
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44,
0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4b,
0x55, 0x42, 0x45, 0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x44,
0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52,
0x45, 0x53, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x03,
0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53,
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d,
0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44,
0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52,
0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45,
0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f,
0x53, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56,
0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41,
0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x44,
0x53, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f,
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53,
0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a,
0x22, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52,
0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48,
0x54, 0x54, 0x50, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45,
0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49,
0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x09, 0x12, 0x25, 0x0a, 0x21,
0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43,
0x45, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x4b, 0x54, 0x4f,
0x50, 0x10, 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f,
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53,
0x45, 0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x44, 0x53, 0x10,
0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45,
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f,
0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x53, 0x48, 0x49, 0x46,
0x54, 0x10, 0x0c, 0x12, 0x34, 0x0a, 0x30, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f,
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53,
0x45, 0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4c, 0x46,
0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44,
0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x53, 0x5f, 0x53, 0x45,
0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x44,
0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52,
0x45, 0x53, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43,
0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41,
0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x47, 0x43, 0x50,
0x10, 0x10, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52,
0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45,
0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x11,
0x2a, 0xa3, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f,
0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52,
0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10,
0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54,
0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19,
0x0a, 0x15, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f,
0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70,
0x6f, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e,
0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a,
0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24,
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42,
0x0a, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x1f, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61,
0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x75, 0x69, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x20,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31,
0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65,
0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48,
0x00, 0x52, 0x14, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f,
0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x12, 0x70, 0x0a, 0x1d, 0x75, 0x69, 0x5f, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x61,
0x76, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31,
0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70,
0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a,
0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76,
0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f,
0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x53,
0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52,
0x18, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65,
0x53, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x12, 0x76, 0x0a, 0x1f, 0x75, 0x69, 0x5f,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f,
0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x22, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52,
0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63,
0x6b, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x75, 0x69, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x6f,
0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63,
0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67,
0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75,
0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x25, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x42, 0x07, 0x0a, 0x05,
0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x1c, 0x75, 0x69, 0x5f,
0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72,
0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x75, 0x62,
0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x65, 0x6c, 0x6c,
0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x2a, 0xaa, 0x06, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56,
0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x53,
0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x49, 0x53, 0x43, 0x4f,
0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4b, 0x55, 0x42,
0x45, 0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44,
0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53,
0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x30,
0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55,
0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53,
0x51, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x04,
0x12, 0x32, 0x0a, 0x2e, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53,
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d,
0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54,
0x45, 0x44, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52,
0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41,
0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x44, 0x53, 0x10,
0x06, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45,
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f,
0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x44,
0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x54, 0x54,
0x50, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f,
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41,
0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x09, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49,
0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x4b, 0x54, 0x4f, 0x50, 0x10,
0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45,
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f,
0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x0b, 0x12,
0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f,
0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f,
0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x53, 0x48, 0x49, 0x46, 0x54, 0x10,
0x0c, 0x12, 0x34, 0x0a, 0x30, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45,
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f,
0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48,
0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f,
0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54,
0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x53, 0x5f, 0x53, 0x45, 0x4c, 0x46,
0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53,
0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44,
0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53,
0x5f, 0x47, 0x43, 0x50, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56,
0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41,
0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x10,
0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53,
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x53,
0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x11, 0x2a, 0xa3,
0x01, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54,
0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53,
0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12,
0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54,
0x55, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15,
0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f,
0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54,
0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x12, 0x58, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x12, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31,
0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0d, 0x48,
0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x70,
0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65,
0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67,
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74,
0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72,
0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3069,7 +3445,7 @@ func file_prehog_v1alpha_teleport_proto_rawDescGZIP() []byte {
}
var file_prehog_v1alpha_teleport_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_prehog_v1alpha_teleport_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
var file_prehog_v1alpha_teleport_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
var file_prehog_v1alpha_teleport_proto_goTypes = []interface{}{
(DiscoverResource)(0), // 0: prehog.v1alpha.DiscoverResource
(DiscoverStatus)(0), // 1: prehog.v1alpha.DiscoverStatus
@@ -3102,15 +3478,20 @@ var file_prehog_v1alpha_teleport_proto_goTypes = []interface{}{
(*UIDiscoverPrincipalsConfigureEvent)(nil), // 28: prehog.v1alpha.UIDiscoverPrincipalsConfigureEvent
(*UIDiscoverTestConnectionEvent)(nil), // 29: prehog.v1alpha.UIDiscoverTestConnectionEvent
(*UIDiscoverCompletedEvent)(nil), // 30: prehog.v1alpha.UIDiscoverCompletedEvent
(*SubmitEventRequest)(nil), // 31: prehog.v1alpha.SubmitEventRequest
(*SubmitEventResponse)(nil), // 32: prehog.v1alpha.SubmitEventResponse
(*HelloTeleportRequest)(nil), // 33: prehog.v1alpha.HelloTeleportRequest
(*HelloTeleportResponse)(nil), // 34: prehog.v1alpha.HelloTeleportResponse
(*durationpb.Duration)(nil), // 35: google.protobuf.Duration
(*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp
(*RoleCreateEvent)(nil), // 31: prehog.v1alpha.RoleCreateEvent
(*UICreateNewRoleClickEvent)(nil), // 32: prehog.v1alpha.UICreateNewRoleClickEvent
(*UICreateNewRoleSaveClickEvent)(nil), // 33: prehog.v1alpha.UICreateNewRoleSaveClickEvent
(*UICreateNewRoleCancelClickEvent)(nil), // 34: prehog.v1alpha.UICreateNewRoleCancelClickEvent
(*UICreateNewRoleViewDocumentationClickEvent)(nil), // 35: prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent
(*SubmitEventRequest)(nil), // 36: prehog.v1alpha.SubmitEventRequest
(*SubmitEventResponse)(nil), // 37: prehog.v1alpha.SubmitEventResponse
(*HelloTeleportRequest)(nil), // 38: prehog.v1alpha.HelloTeleportRequest
(*HelloTeleportResponse)(nil), // 39: prehog.v1alpha.HelloTeleportResponse
(*durationpb.Duration)(nil), // 40: google.protobuf.Duration
(*timestamppb.Timestamp)(nil), // 41: google.protobuf.Timestamp
}
var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{
35, // 0: prehog.v1alpha.UserCertificateIssuedEvent.ttl:type_name -> google.protobuf.Duration
40, // 0: prehog.v1alpha.UserCertificateIssuedEvent.ttl:type_name -> google.protobuf.Duration
0, // 1: prehog.v1alpha.DiscoverResourceMetadata.resource:type_name -> prehog.v1alpha.DiscoverResource
1, // 2: prehog.v1alpha.DiscoverStepStatus.status:type_name -> prehog.v1alpha.DiscoverStatus
16, // 3: prehog.v1alpha.UIDiscoverStartedEvent.metadata:type_name -> prehog.v1alpha.DiscoverMetadata
@@ -3148,7 +3529,7 @@ var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{
16, // 35: prehog.v1alpha.UIDiscoverCompletedEvent.metadata:type_name -> prehog.v1alpha.DiscoverMetadata
17, // 36: prehog.v1alpha.UIDiscoverCompletedEvent.resource:type_name -> prehog.v1alpha.DiscoverResourceMetadata
18, // 37: prehog.v1alpha.UIDiscoverCompletedEvent.status:type_name -> prehog.v1alpha.DiscoverStepStatus
36, // 38: prehog.v1alpha.SubmitEventRequest.timestamp:type_name -> google.protobuf.Timestamp
41, // 38: prehog.v1alpha.SubmitEventRequest.timestamp:type_name -> google.protobuf.Timestamp
2, // 39: prehog.v1alpha.SubmitEventRequest.user_login:type_name -> prehog.v1alpha.UserLoginEvent
3, // 40: prehog.v1alpha.SubmitEventRequest.sso_create:type_name -> prehog.v1alpha.SSOCreateEvent
4, // 41: prehog.v1alpha.SubmitEventRequest.resource_create:type_name -> prehog.v1alpha.ResourceCreateEvent
@@ -3176,15 +3557,20 @@ var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{
28, // 63: prehog.v1alpha.SubmitEventRequest.ui_discover_principals_configure_event:type_name -> prehog.v1alpha.UIDiscoverPrincipalsConfigureEvent
29, // 64: prehog.v1alpha.SubmitEventRequest.ui_discover_test_connection_event:type_name -> prehog.v1alpha.UIDiscoverTestConnectionEvent
30, // 65: prehog.v1alpha.SubmitEventRequest.ui_discover_completed_event:type_name -> prehog.v1alpha.UIDiscoverCompletedEvent
31, // 66: prehog.v1alpha.TeleportReportingService.SubmitEvent:input_type -> prehog.v1alpha.SubmitEventRequest
33, // 67: prehog.v1alpha.TeleportReportingService.HelloTeleport:input_type -> prehog.v1alpha.HelloTeleportRequest
32, // 68: prehog.v1alpha.TeleportReportingService.SubmitEvent:output_type -> prehog.v1alpha.SubmitEventResponse
34, // 69: prehog.v1alpha.TeleportReportingService.HelloTeleport:output_type -> prehog.v1alpha.HelloTeleportResponse
68, // [68:70] is the sub-list for method output_type
66, // [66:68] is the sub-list for method input_type
66, // [66:66] is the sub-list for extension type_name
66, // [66:66] is the sub-list for extension extendee
0, // [0:66] is the sub-list for field type_name
31, // 66: prehog.v1alpha.SubmitEventRequest.role_create:type_name -> prehog.v1alpha.RoleCreateEvent
32, // 67: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_click:type_name -> prehog.v1alpha.UICreateNewRoleClickEvent
33, // 68: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_save_click:type_name -> prehog.v1alpha.UICreateNewRoleSaveClickEvent
34, // 69: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_cancel_click:type_name -> prehog.v1alpha.UICreateNewRoleCancelClickEvent
35, // 70: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_view_documentation_click:type_name -> prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent
36, // 71: prehog.v1alpha.TeleportReportingService.SubmitEvent:input_type -> prehog.v1alpha.SubmitEventRequest
38, // 72: prehog.v1alpha.TeleportReportingService.HelloTeleport:input_type -> prehog.v1alpha.HelloTeleportRequest
37, // 73: prehog.v1alpha.TeleportReportingService.SubmitEvent:output_type -> prehog.v1alpha.SubmitEventResponse
39, // 74: prehog.v1alpha.TeleportReportingService.HelloTeleport:output_type -> prehog.v1alpha.HelloTeleportResponse
73, // [73:75] is the sub-list for method output_type
71, // [71:73] is the sub-list for method input_type
71, // [71:71] is the sub-list for extension type_name
71, // [71:71] is the sub-list for extension extendee
0, // [0:71] is the sub-list for field type_name
}
func init() { file_prehog_v1alpha_teleport_proto_init() }
@@ -3542,7 +3928,7 @@ func file_prehog_v1alpha_teleport_proto_init() {
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitEventRequest); i {
switch v := v.(*RoleCreateEvent); i {
case 0:
return &v.state
case 1:
@@ -3554,7 +3940,7 @@ func file_prehog_v1alpha_teleport_proto_init() {
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitEventResponse); i {
switch v := v.(*UICreateNewRoleClickEvent); i {
case 0:
return &v.state
case 1:
@@ -3566,7 +3952,7 @@ func file_prehog_v1alpha_teleport_proto_init() {
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HelloTeleportRequest); i {
switch v := v.(*UICreateNewRoleSaveClickEvent); i {
case 0:
return &v.state
case 1:
@@ -3578,6 +3964,66 @@ func file_prehog_v1alpha_teleport_proto_init() {
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UICreateNewRoleCancelClickEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UICreateNewRoleViewDocumentationClickEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitEventRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitEventResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HelloTeleportRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HelloTeleportResponse); i {
case 0:
return &v.state
@@ -3590,7 +4036,7 @@ func file_prehog_v1alpha_teleport_proto_init() {
}
}
}
file_prehog_v1alpha_teleport_proto_msgTypes[29].OneofWrappers = []interface{}{
file_prehog_v1alpha_teleport_proto_msgTypes[34].OneofWrappers = []interface{}{
(*SubmitEventRequest_UserLogin)(nil),
(*SubmitEventRequest_SsoCreate)(nil),
(*SubmitEventRequest_ResourceCreate)(nil),
@@ -3618,6 +4064,11 @@ func file_prehog_v1alpha_teleport_proto_init() {
(*SubmitEventRequest_UiDiscoverPrincipalsConfigureEvent)(nil),
(*SubmitEventRequest_UiDiscoverTestConnectionEvent)(nil),
(*SubmitEventRequest_UiDiscoverCompletedEvent)(nil),
(*SubmitEventRequest_RoleCreate)(nil),
(*SubmitEventRequest_UiCreateNewRoleClick)(nil),
(*SubmitEventRequest_UiCreateNewRoleSaveClick)(nil),
(*SubmitEventRequest_UiCreateNewRoleCancelClick)(nil),
(*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -3625,7 +4076,7 @@ func file_prehog_v1alpha_teleport_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_prehog_v1alpha_teleport_proto_rawDesc,
NumEnums: 2,
NumMessages: 33,
NumMessages: 38,
NumExtensions: 0,
NumServices: 1,
},
+154
View File
@@ -873,6 +873,115 @@ export namespace UIDiscoverCompletedEvent {
}
}
export class RoleCreateEvent extends jspb.Message {
getUserName(): string;
setUserName(value: string): RoleCreateEvent;
getRoleName(): string;
setRoleName(value: string): RoleCreateEvent;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): RoleCreateEvent.AsObject;
static toObject(includeInstance: boolean, msg: RoleCreateEvent): RoleCreateEvent.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: RoleCreateEvent, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): RoleCreateEvent;
static deserializeBinaryFromReader(message: RoleCreateEvent, reader: jspb.BinaryReader): RoleCreateEvent;
}
export namespace RoleCreateEvent {
export type AsObject = {
userName: string,
roleName: string,
}
}
export class UICreateNewRoleClickEvent extends jspb.Message {
getUserName(): string;
setUserName(value: string): UICreateNewRoleClickEvent;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UICreateNewRoleClickEvent.AsObject;
static toObject(includeInstance: boolean, msg: UICreateNewRoleClickEvent): UICreateNewRoleClickEvent.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: UICreateNewRoleClickEvent, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): UICreateNewRoleClickEvent;
static deserializeBinaryFromReader(message: UICreateNewRoleClickEvent, reader: jspb.BinaryReader): UICreateNewRoleClickEvent;
}
export namespace UICreateNewRoleClickEvent {
export type AsObject = {
userName: string,
}
}
export class UICreateNewRoleSaveClickEvent extends jspb.Message {
getUserName(): string;
setUserName(value: string): UICreateNewRoleSaveClickEvent;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UICreateNewRoleSaveClickEvent.AsObject;
static toObject(includeInstance: boolean, msg: UICreateNewRoleSaveClickEvent): UICreateNewRoleSaveClickEvent.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: UICreateNewRoleSaveClickEvent, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): UICreateNewRoleSaveClickEvent;
static deserializeBinaryFromReader(message: UICreateNewRoleSaveClickEvent, reader: jspb.BinaryReader): UICreateNewRoleSaveClickEvent;
}
export namespace UICreateNewRoleSaveClickEvent {
export type AsObject = {
userName: string,
}
}
export class UICreateNewRoleCancelClickEvent extends jspb.Message {
getUserName(): string;
setUserName(value: string): UICreateNewRoleCancelClickEvent;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UICreateNewRoleCancelClickEvent.AsObject;
static toObject(includeInstance: boolean, msg: UICreateNewRoleCancelClickEvent): UICreateNewRoleCancelClickEvent.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: UICreateNewRoleCancelClickEvent, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): UICreateNewRoleCancelClickEvent;
static deserializeBinaryFromReader(message: UICreateNewRoleCancelClickEvent, reader: jspb.BinaryReader): UICreateNewRoleCancelClickEvent;
}
export namespace UICreateNewRoleCancelClickEvent {
export type AsObject = {
userName: string,
}
}
export class UICreateNewRoleViewDocumentationClickEvent extends jspb.Message {
getUserName(): string;
setUserName(value: string): UICreateNewRoleViewDocumentationClickEvent;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UICreateNewRoleViewDocumentationClickEvent.AsObject;
static toObject(includeInstance: boolean, msg: UICreateNewRoleViewDocumentationClickEvent): UICreateNewRoleViewDocumentationClickEvent.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: UICreateNewRoleViewDocumentationClickEvent, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): UICreateNewRoleViewDocumentationClickEvent;
static deserializeBinaryFromReader(message: UICreateNewRoleViewDocumentationClickEvent, reader: jspb.BinaryReader): UICreateNewRoleViewDocumentationClickEvent;
}
export namespace UICreateNewRoleViewDocumentationClickEvent {
export type AsObject = {
userName: string,
}
}
export class SubmitEventRequest extends jspb.Message {
getClusterName(): string;
setClusterName(value: string): SubmitEventRequest;
@@ -1046,6 +1155,36 @@ export class SubmitEventRequest extends jspb.Message {
setUiDiscoverCompletedEvent(value?: UIDiscoverCompletedEvent): SubmitEventRequest;
hasRoleCreate(): boolean;
clearRoleCreate(): void;
getRoleCreate(): RoleCreateEvent | undefined;
setRoleCreate(value?: RoleCreateEvent): SubmitEventRequest;
hasUiCreateNewRoleClick(): boolean;
clearUiCreateNewRoleClick(): void;
getUiCreateNewRoleClick(): UICreateNewRoleClickEvent | undefined;
setUiCreateNewRoleClick(value?: UICreateNewRoleClickEvent): SubmitEventRequest;
hasUiCreateNewRoleSaveClick(): boolean;
clearUiCreateNewRoleSaveClick(): void;
getUiCreateNewRoleSaveClick(): UICreateNewRoleSaveClickEvent | undefined;
setUiCreateNewRoleSaveClick(value?: UICreateNewRoleSaveClickEvent): SubmitEventRequest;
hasUiCreateNewRoleCancelClick(): boolean;
clearUiCreateNewRoleCancelClick(): void;
getUiCreateNewRoleCancelClick(): UICreateNewRoleCancelClickEvent | undefined;
setUiCreateNewRoleCancelClick(value?: UICreateNewRoleCancelClickEvent): SubmitEventRequest;
hasUiCreateNewRoleViewDocumentationClick(): boolean;
clearUiCreateNewRoleViewDocumentationClick(): void;
getUiCreateNewRoleViewDocumentationClick(): UICreateNewRoleViewDocumentationClickEvent | undefined;
setUiCreateNewRoleViewDocumentationClick(value?: UICreateNewRoleViewDocumentationClickEvent): SubmitEventRequest;
getEventCase(): SubmitEventRequest.EventCase;
serializeBinary(): Uint8Array;
@@ -1089,6 +1228,11 @@ export namespace SubmitEventRequest {
uiDiscoverPrincipalsConfigureEvent?: UIDiscoverPrincipalsConfigureEvent.AsObject,
uiDiscoverTestConnectionEvent?: UIDiscoverTestConnectionEvent.AsObject,
uiDiscoverCompletedEvent?: UIDiscoverCompletedEvent.AsObject,
roleCreate?: RoleCreateEvent.AsObject,
uiCreateNewRoleClick?: UICreateNewRoleClickEvent.AsObject,
uiCreateNewRoleSaveClick?: UICreateNewRoleSaveClickEvent.AsObject,
uiCreateNewRoleCancelClick?: UICreateNewRoleCancelClickEvent.AsObject,
uiCreateNewRoleViewDocumentationClick?: UICreateNewRoleViewDocumentationClickEvent.AsObject,
}
export enum EventCase {
@@ -1148,6 +1292,16 @@ export namespace SubmitEventRequest {
UI_DISCOVER_COMPLETED_EVENT = 30,
ROLE_CREATE = 31,
UI_CREATE_NEW_ROLE_CLICK = 32,
UI_CREATE_NEW_ROLE_SAVE_CLICK = 33,
UI_CREATE_NEW_ROLE_CANCEL_CLICK = 34,
UI_CREATE_NEW_ROLE_VIEW_DOCUMENTATION_CLICK = 35,
}
}
File diff suppressed because it is too large Load Diff
+5
View File
@@ -104,6 +104,11 @@ func (u *UsageLogger) reportAuditEvent(ctx context.Context, event apievents.Audi
return trace.Wrap(u.report(&services.UsageSSOCreate{
ConnectorType: types.KindSAMLConnector,
}))
case *apievents.RoleCreate:
return trace.Wrap(u.report(&services.UsageRoleCreate{
UserName: e.User,
RoleName: e.ResourceMetadata.Name,
}))
}
return nil
+89
View File
@@ -27,8 +27,10 @@ import (
"github.com/gravitational/trace"
"github.com/jonboulle/clockwork"
"github.com/sirupsen/logrus"
"golang.org/x/exp/slices"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/gravitational/teleport"
usageevents "github.com/gravitational/teleport/api/gen/proto/go/usageevents/v1"
"github.com/gravitational/teleport/api/types"
prehogv1 "github.com/gravitational/teleport/gen/proto/go/prehog/v1alpha"
@@ -262,6 +264,77 @@ func (u *UsageUIRecoveryCodesPrintClick) Anonymize(a utils.Anonymizer) prehogv1.
}
}
// UsageRoleCreate is an event emitted when a custom role is created.
type UsageRoleCreate prehogv1.RoleCreateEvent
func (u *UsageRoleCreate) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest {
role := u.RoleName
if !slices.Contains(teleport.PresetRoles, u.RoleName) {
role = a.AnonymizeString(u.RoleName)
}
return prehogv1.SubmitEventRequest{
Event: &prehogv1.SubmitEventRequest_RoleCreate{
RoleCreate: &prehogv1.RoleCreateEvent{
UserName: a.AnonymizeString(u.UserName),
RoleName: role,
},
},
}
}
// UsageUICreateNewRoleClickEvent is a UI event sent when a user prints recovery codes.
type UsageUICreateNewRoleClickEvent prehogv1.UICreateNewRoleClickEvent
func (u *UsageUICreateNewRoleClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest {
return prehogv1.SubmitEventRequest{
Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleClick{
UiCreateNewRoleClick: &prehogv1.UICreateNewRoleClickEvent{
UserName: a.AnonymizeString(u.UserName),
},
},
}
}
// UsageUICreateNewRoleSaveClickEvent is a UI event sent when a user prints recovery codes.
type UsageUICreateNewRoleSaveClickEvent prehogv1.UICreateNewRoleSaveClickEvent
func (u *UsageUICreateNewRoleSaveClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest {
return prehogv1.SubmitEventRequest{
Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleSaveClick{
UiCreateNewRoleSaveClick: &prehogv1.UICreateNewRoleSaveClickEvent{
UserName: a.AnonymizeString(u.UserName),
},
},
}
}
// UsageUICreateNewRoleCancelClickEvent is a UI event sent when a user prints recovery codes.
type UsageUICreateNewRoleCancelClickEvent prehogv1.UICreateNewRoleCancelClickEvent
func (u *UsageUICreateNewRoleCancelClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest {
return prehogv1.SubmitEventRequest{
Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleCancelClick{
UiCreateNewRoleCancelClick: &prehogv1.UICreateNewRoleCancelClickEvent{
UserName: a.AnonymizeString(u.UserName),
},
},
}
}
// UsageUICreateNewRoleViewDocumentationClickEvent is a UI event sent when a user prints recovery codes.
type UsageUICreateNewRoleViewDocumentationClickEvent prehogv1.UICreateNewRoleViewDocumentationClickEvent
func (u *UsageUICreateNewRoleViewDocumentationClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest {
return prehogv1.SubmitEventRequest{
Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleViewDocumentationClick{
UiCreateNewRoleViewDocumentationClick: &prehogv1.UICreateNewRoleViewDocumentationClickEvent{
UserName: a.AnonymizeString(u.UserName),
},
},
}
}
// UsageCertificateIssued is an event emitted when a certificate has been
// issued, used to track the duration and restriction.
type UsageCertificateIssued prehogv1.UserCertificateIssuedEvent
@@ -331,6 +404,22 @@ func ConvertUsageEvent(event *usageevents.UsageEventOneOf, identityUsername stri
return &UsageUIRecoveryCodesPrintClick{
UserName: e.UiRecoveryCodesPrintClick.Username,
}, nil
case *usageevents.UsageEventOneOf_UiCreateNewRoleClick:
return &UsageUICreateNewRoleClickEvent{
UserName: identityUsername,
}, nil
case *usageevents.UsageEventOneOf_UiCreateNewRoleSaveClick:
return &UsageUICreateNewRoleSaveClickEvent{
UserName: identityUsername,
}, nil
case *usageevents.UsageEventOneOf_UiCreateNewRoleCancelClick:
return &UsageUICreateNewRoleCancelClickEvent{
UserName: identityUsername,
}, nil
case *usageevents.UsageEventOneOf_UiCreateNewRoleViewDocumentationClick:
return &UsageUICreateNewRoleViewDocumentationClickEvent{
UserName: identityUsername,
}, nil
case *usageevents.UsageEventOneOf_UiDiscoverStartedEvent:
ret := &UsageUIDiscoverStartedEvent{
Metadata: discoverMetadataToPrehog(e.UiDiscoverStartedEvent.Metadata, identityUsername),
+39 -11
View File
@@ -29,18 +29,22 @@ import (
"github.com/gravitational/teleport/lib/httplib"
)
// these constants are 1:1 with user events found in the webapps codebase
// packages/teleport/src/services/userEvent/UserEvents/userEvents.ts
// these constants are 1:1 with user events found in the web directory
// web/packages/teleport/src/services/userEvent/types.ts
const (
bannerClickEvent = "tp.ui.banner.click"
setCredentialSubmitEvent = "tp.ui.onboard.setCredential.submit"
registerChallengeSubmitEvent = "tp.ui.onboard.registerChallenge.submit"
addFirstResourceClickEvent = "tp.ui.onboard.addFirstResource.click"
addFirstResourceLaterClickEvent = "tp.ui.onboard.addFirstResourceLater.click"
recoveryCodesContinueClickEvent = "tp.ui.recoveryCodesContinue.click"
recoveryCodesCopyClickEvent = "tp.ui.recoveryCodesCopy.click"
recoveryCodesPrintClickEvent = "tp.ui.recoveryCodesPrint.click"
completeGoToDashboardClickEvent = "tp.ui.onboard.completeGoToDashboard.click"
bannerClickEvent = "tp.ui.banner.click"
setCredentialSubmitEvent = "tp.ui.onboard.setCredential.submit"
registerChallengeSubmitEvent = "tp.ui.onboard.registerChallenge.submit"
addFirstResourceClickEvent = "tp.ui.onboard.addFirstResource.click"
addFirstResourceLaterClickEvent = "tp.ui.onboard.addFirstResourceLater.click"
completeGoToDashboardClickEvent = "tp.ui.onboard.completeGoToDashboard.click"
recoveryCodesContinueClickEvent = "tp.ui.recoveryCodesContinue.click"
recoveryCodesCopyClickEvent = "tp.ui.recoveryCodesCopy.click"
recoveryCodesPrintClickEvent = "tp.ui.recoveryCodesPrint.click"
createNewRoleClickEvent = "tp.ui.createNewRole.click"
createNewRoleSaveClickEvent = "tp.ui.createNewRoleSave.click"
createNewRoleCancelClickEvent = "tp.ui.createNewRoleCancel.click"
createNewRoleViewDocumentationClickEvent = "tp.ui.createNewRoleViewDocumentation.click"
uiDiscoverStartedEvent = "tp.ui.discover.started"
uiDiscoverResourceSelectionEvent = "tp.ui.discover.resourceSelection"
@@ -251,6 +255,30 @@ func convertUserEventRequestToUsageEvent(req createUserEventRequest) (*v1.UsageE
}
return event, nil
case createNewRoleClickEvent:
return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleClick{
UiCreateNewRoleClick: &v1.UICreateNewRoleClickEvent{},
}},
nil
case createNewRoleSaveClickEvent:
return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleSaveClick{
UiCreateNewRoleSaveClick: &v1.UICreateNewRoleSaveClickEvent{},
}},
nil
case createNewRoleCancelClickEvent:
return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleCancelClick{
UiCreateNewRoleCancelClick: &v1.UICreateNewRoleCancelClickEvent{},
}},
nil
case createNewRoleViewDocumentationClickEvent:
return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleViewDocumentationClick{
UiCreateNewRoleViewDocumentationClick: &v1.UICreateNewRoleViewDocumentationClickEvent{},
}},
nil
}
return nil, trace.BadParameter("invalid event %s", req.Event)
+32
View File
@@ -272,6 +272,31 @@ message UIDiscoverCompletedEvent {
DiscoverStepStatus status = 3;
}
// RoleCreateEvent is emitted when user creates a custom role.
message RoleCreateEvent {
// anonymized
string user_name = 1;
// anonymized
string role_name = 2;
}
message UICreateNewRoleClickEvent {
//anonymized
string user_name = 1;
}
message UICreateNewRoleSaveClickEvent {
//anonymized
string user_name = 1;
}
message UICreateNewRoleCancelClickEvent {
//anonymized
string user_name = 1;
}
message UICreateNewRoleViewDocumentationClickEvent {
//anonymized
string user_name = 1;
}
message SubmitEventRequest {
// anonymized
string cluster_name = 1;
@@ -318,6 +343,13 @@ message SubmitEventRequest {
UIDiscoverPrincipalsConfigureEvent ui_discover_principals_configure_event = 28;
UIDiscoverTestConnectionEvent ui_discover_test_connection_event = 29;
UIDiscoverCompletedEvent ui_discover_completed_event = 30;
RoleCreateEvent role_create = 31;
UICreateNewRoleClickEvent ui_create_new_role_click = 32;
UICreateNewRoleSaveClickEvent ui_create_new_role_save_click = 33;
UICreateNewRoleCancelClickEvent ui_create_new_role_cancel_click = 34;
UICreateNewRoleViewDocumentationClickEvent ui_create_new_role_view_documentation_click = 35;
}
reserved 8; // UIOnboardGetStartedClickEvent
reserved "ui_onboard_get_started_click";
+13 -6
View File
@@ -16,7 +16,7 @@ limitations under the License.
import React from 'react';
import { Indicator, Flex, Box, ButtonPrimary, Text, Alert, Link } from 'design';
import { Alert, Box, ButtonPrimary, Flex, Indicator, Link, Text } from 'design';
import {
FeatureBox,
@@ -26,10 +26,12 @@ import {
import ResourceEditor from 'teleport/components/ResourceEditor';
import useResources from 'teleport/components/useResources';
import useTeleport from 'teleport/useTeleport';
import { CaptureEvent, userEventService } from 'teleport/services/userEvent';
import RoleList from './RoleList';
import DeleteRole from './DeleteRole';
import useRoles, { State } from './useRoles';
import templates from './templates';
export default function Container() {
@@ -50,15 +52,19 @@ export function Roles(props: State) {
return save(name, content, isNew);
}
const handleCreate = () => {
resources.create('role');
userEventService.captureUserEvent({
event: CaptureEvent.CreateNewRoleClickEvent,
});
};
return (
<FeatureBox>
<FeatureHeader alignItems="center">
<FeatureHeaderTitle>Roles</FeatureHeaderTitle>
<ButtonPrimary
ml="auto"
width="240px"
onClick={() => resources.create('role')}
>
<ButtonPrimary ml="auto" width="240px" onClick={handleCreate}>
CREATE NEW ROLE
</ButtonPrimary>
</FeatureHeader>
@@ -115,6 +121,7 @@ export function Roles(props: State) {
onSave={handleSave}
onClose={resources.disregard}
directions={<Directions />}
kind={resources.item.kind}
/>
)}
{resources.status === 'removing' && (
@@ -18,18 +18,20 @@ import React from 'react';
import PropTypes from 'prop-types';
import Dialog, { DialogHeader, DialogTitle } from 'design/Dialog';
import {
Box,
ButtonOutlined,
ButtonPrimary,
ButtonSecondary,
ButtonOutlined,
Flex,
Text,
Box,
LabelInput,
Text,
} from 'design';
import TextEditor from 'shared/components/TextEditor';
import * as Alerts from 'design/Alert';
import { useAttempt, useState } from 'shared/hooks';
import { CaptureEvent, userEventService } from 'teleport/services/userEvent';
export default function ResourceEditor(props) {
const {
title,
@@ -39,13 +41,35 @@ export default function ResourceEditor(props) {
docsURL = null,
onClose,
isNew,
kind = '',
} = props;
const { attempt, attemptActions, content, isDirty, setContent } =
useEditor(text);
const roleResource = kind === 'role';
const onSave = () => {
attemptActions.do(() => props.onSave(content)).then(() => onClose());
attemptActions
.do(() => props.onSave(content))
.then(() => {
if (roleResource) {
userEventService.captureUserEvent({
event: CaptureEvent.CreateNewRoleSaveClickEvent,
});
}
onClose();
});
};
const handleClose = () => {
if (roleResource) {
userEventService.captureUserEvent({
event: CaptureEvent.CreateNewRoleCancelClickEvent,
});
}
onClose();
};
const isSaveDisabled = attempt.isProcessing || (!isDirty && !isNew);
@@ -78,7 +102,10 @@ export default function ResourceEditor(props) {
<ButtonPrimary disabled={isSaveDisabled} onClick={onSave} mr="3">
Save changes
</ButtonPrimary>
<ButtonSecondary disabled={attempt.isProcessing} onClick={onClose}>
<ButtonSecondary
disabled={attempt.isProcessing}
onClick={handleClose}
>
CANCEL
</ButtonSecondary>
</Box>
@@ -108,6 +135,14 @@ export default function ResourceEditor(props) {
target="_blank"
width="100%"
rel="noreferrer"
onClick={() => {
if (roleResource) {
userEventService.captureUserEvent({
event:
CaptureEvent.CreateNewRoleViewDocumentationClickEvent,
});
}
}}
>
VIEW DOCUMENTATION
</ButtonOutlined>
@@ -128,6 +163,7 @@ ResourceEditor.propTypes = {
onClose: PropTypes.func.isRequired,
isNew: PropTypes.bool.isRequired,
directions: PropTypes.element,
kind: PropTypes.string,
};
const dialogCss = () => `
@@ -19,6 +19,10 @@ export enum CaptureEvent {
BannerClickEvent = 'tp.ui.banner.click',
OnboardAddFirstResourceClickEvent = 'tp.ui.onboard.addFirstResource.click',
OnboardAddFirstResourceLaterClickEvent = 'tp.ui.onboard.addFirstResourceLater.click',
CreateNewRoleClickEvent = 'tp.ui.createNewRole.click',
CreateNewRoleSaveClickEvent = 'tp.ui.createNewRoleSave.click',
CreateNewRoleCancelClickEvent = 'tp.ui.createNewRoleCancel.click',
CreateNewRoleViewDocumentationClickEvent = 'tp.ui.createNewRoleViewDocumentation.click',
// PreUserEvent types
// these events are unauthenticated,