mirror of
https://github.com/gravitational/teleport
synced 2024-10-19 00:33:50 +00:00
add usage events for eice discover (#32617)
This commit is contained in:
parent
ca27ce9166
commit
33cfd9dc5f
File diff suppressed because it is too large
Load diff
|
@ -137,6 +137,8 @@ enum DiscoverResource {
|
|||
DISCOVER_RESOURCE_DOC_DATABASE_DYNAMIC_REGISTRATION = 36;
|
||||
|
||||
DISCOVER_RESOURCE_SAML_APPLICATION = 37;
|
||||
|
||||
DISCOVER_RESOURCE_EC2_INSTANCE = 38;
|
||||
}
|
||||
|
||||
// DiscoverResourceMetadata contains common metadata identifying resource type being added.
|
||||
|
@ -301,6 +303,27 @@ message UIDiscoverAutoDiscoveredResourcesEvent {
|
|||
int64 resources_count = 4;
|
||||
}
|
||||
|
||||
// UIDiscoverEC2InstanceSelectionEvent is emitted when the user is finished with the step that asks the user to select an EC2 Instance to enroll.
|
||||
message UIDiscoverEC2InstanceSelectionEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverDeployEICEEvent is emitted when the user deploys an EC2 Instance Connect Endpoint.
|
||||
message UIDiscoverDeployEICEEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverCreateNodeEvent is emitted when the node is created in Teleport.
|
||||
message UIDiscoverCreateNodeEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverDatabaseConfigureIAMPolicyEvent is emitted when a user is finished with the step that configures IAM policy for an RDS database.
|
||||
message UIDiscoverDatabaseConfigureIAMPolicyEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
|
@ -602,6 +625,9 @@ message UsageEventOneOf {
|
|||
AccessListMemberUpdate access_list_member_update = 44;
|
||||
AccessListMemberDelete access_list_member_delete = 45;
|
||||
AccessListGrantsToUser access_list_grants_to_user = 46;
|
||||
UIDiscoverEC2InstanceSelectionEvent ui_discover_ec2_instance_selection = 47;
|
||||
UIDiscoverDeployEICEEvent ui_discover_deploy_eice = 48;
|
||||
UIDiscoverCreateNodeEvent ui_discover_create_node = 49;
|
||||
}
|
||||
reserved 2; //UIOnboardGetStartedClickEvent
|
||||
reserved "ui_onboard_get_started_click";
|
||||
|
|
File diff suppressed because it is too large
Load diff
142
gen/proto/js/prehog/v1alpha/teleport_pb.d.ts
generated
vendored
142
gen/proto/js/prehog/v1alpha/teleport_pb.d.ts
generated
vendored
|
@ -958,6 +958,120 @@ export namespace UIDiscoverAutoDiscoveredResourcesEvent {
|
|||
}
|
||||
}
|
||||
|
||||
export class UIDiscoverEC2InstanceSelectionEvent extends jspb.Message {
|
||||
|
||||
hasMetadata(): boolean;
|
||||
clearMetadata(): void;
|
||||
getMetadata(): DiscoverMetadata | undefined;
|
||||
setMetadata(value?: DiscoverMetadata): UIDiscoverEC2InstanceSelectionEvent;
|
||||
|
||||
|
||||
hasResource(): boolean;
|
||||
clearResource(): void;
|
||||
getResource(): DiscoverResourceMetadata | undefined;
|
||||
setResource(value?: DiscoverResourceMetadata): UIDiscoverEC2InstanceSelectionEvent;
|
||||
|
||||
|
||||
hasStatus(): boolean;
|
||||
clearStatus(): void;
|
||||
getStatus(): DiscoverStepStatus | undefined;
|
||||
setStatus(value?: DiscoverStepStatus): UIDiscoverEC2InstanceSelectionEvent;
|
||||
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): UIDiscoverEC2InstanceSelectionEvent.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: UIDiscoverEC2InstanceSelectionEvent): UIDiscoverEC2InstanceSelectionEvent.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: UIDiscoverEC2InstanceSelectionEvent, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): UIDiscoverEC2InstanceSelectionEvent;
|
||||
static deserializeBinaryFromReader(message: UIDiscoverEC2InstanceSelectionEvent, reader: jspb.BinaryReader): UIDiscoverEC2InstanceSelectionEvent;
|
||||
}
|
||||
|
||||
export namespace UIDiscoverEC2InstanceSelectionEvent {
|
||||
export type AsObject = {
|
||||
metadata?: DiscoverMetadata.AsObject,
|
||||
resource?: DiscoverResourceMetadata.AsObject,
|
||||
status?: DiscoverStepStatus.AsObject,
|
||||
}
|
||||
}
|
||||
|
||||
export class UIDiscoverDeployEICEEvent extends jspb.Message {
|
||||
|
||||
hasMetadata(): boolean;
|
||||
clearMetadata(): void;
|
||||
getMetadata(): DiscoverMetadata | undefined;
|
||||
setMetadata(value?: DiscoverMetadata): UIDiscoverDeployEICEEvent;
|
||||
|
||||
|
||||
hasResource(): boolean;
|
||||
clearResource(): void;
|
||||
getResource(): DiscoverResourceMetadata | undefined;
|
||||
setResource(value?: DiscoverResourceMetadata): UIDiscoverDeployEICEEvent;
|
||||
|
||||
|
||||
hasStatus(): boolean;
|
||||
clearStatus(): void;
|
||||
getStatus(): DiscoverStepStatus | undefined;
|
||||
setStatus(value?: DiscoverStepStatus): UIDiscoverDeployEICEEvent;
|
||||
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): UIDiscoverDeployEICEEvent.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: UIDiscoverDeployEICEEvent): UIDiscoverDeployEICEEvent.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: UIDiscoverDeployEICEEvent, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): UIDiscoverDeployEICEEvent;
|
||||
static deserializeBinaryFromReader(message: UIDiscoverDeployEICEEvent, reader: jspb.BinaryReader): UIDiscoverDeployEICEEvent;
|
||||
}
|
||||
|
||||
export namespace UIDiscoverDeployEICEEvent {
|
||||
export type AsObject = {
|
||||
metadata?: DiscoverMetadata.AsObject,
|
||||
resource?: DiscoverResourceMetadata.AsObject,
|
||||
status?: DiscoverStepStatus.AsObject,
|
||||
}
|
||||
}
|
||||
|
||||
export class UIDiscoverCreateNodeEvent extends jspb.Message {
|
||||
|
||||
hasMetadata(): boolean;
|
||||
clearMetadata(): void;
|
||||
getMetadata(): DiscoverMetadata | undefined;
|
||||
setMetadata(value?: DiscoverMetadata): UIDiscoverCreateNodeEvent;
|
||||
|
||||
|
||||
hasResource(): boolean;
|
||||
clearResource(): void;
|
||||
getResource(): DiscoverResourceMetadata | undefined;
|
||||
setResource(value?: DiscoverResourceMetadata): UIDiscoverCreateNodeEvent;
|
||||
|
||||
|
||||
hasStatus(): boolean;
|
||||
clearStatus(): void;
|
||||
getStatus(): DiscoverStepStatus | undefined;
|
||||
setStatus(value?: DiscoverStepStatus): UIDiscoverCreateNodeEvent;
|
||||
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): UIDiscoverCreateNodeEvent.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: UIDiscoverCreateNodeEvent): UIDiscoverCreateNodeEvent.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: UIDiscoverCreateNodeEvent, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): UIDiscoverCreateNodeEvent;
|
||||
static deserializeBinaryFromReader(message: UIDiscoverCreateNodeEvent, reader: jspb.BinaryReader): UIDiscoverCreateNodeEvent;
|
||||
}
|
||||
|
||||
export namespace UIDiscoverCreateNodeEvent {
|
||||
export type AsObject = {
|
||||
metadata?: DiscoverMetadata.AsObject,
|
||||
resource?: DiscoverResourceMetadata.AsObject,
|
||||
status?: DiscoverStepStatus.AsObject,
|
||||
}
|
||||
}
|
||||
|
||||
export class UIDiscoverDatabaseConfigureIAMPolicyEvent extends jspb.Message {
|
||||
|
||||
hasMetadata(): boolean;
|
||||
|
@ -2415,6 +2529,24 @@ export class SubmitEventRequest extends jspb.Message {
|
|||
setAccessListGrantsToUser(value?: AccessListGrantsToUserEvent): SubmitEventRequest;
|
||||
|
||||
|
||||
hasUiDiscoverEc2InstanceSelection(): boolean;
|
||||
clearUiDiscoverEc2InstanceSelection(): void;
|
||||
getUiDiscoverEc2InstanceSelection(): UIDiscoverEC2InstanceSelectionEvent | undefined;
|
||||
setUiDiscoverEc2InstanceSelection(value?: UIDiscoverEC2InstanceSelectionEvent): SubmitEventRequest;
|
||||
|
||||
|
||||
hasUiDiscoverDeployEice(): boolean;
|
||||
clearUiDiscoverDeployEice(): void;
|
||||
getUiDiscoverDeployEice(): UIDiscoverDeployEICEEvent | undefined;
|
||||
setUiDiscoverDeployEice(value?: UIDiscoverDeployEICEEvent): SubmitEventRequest;
|
||||
|
||||
|
||||
hasUiDiscoverCreateNode(): boolean;
|
||||
clearUiDiscoverCreateNode(): void;
|
||||
getUiDiscoverCreateNode(): UIDiscoverCreateNodeEvent | undefined;
|
||||
setUiDiscoverCreateNode(value?: UIDiscoverCreateNodeEvent): SubmitEventRequest;
|
||||
|
||||
|
||||
getEventCase(): SubmitEventRequest.EventCase;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
|
@ -2492,6 +2624,9 @@ export namespace SubmitEventRequest {
|
|||
accessListMemberUpdate?: AccessListMemberUpdateEvent.AsObject,
|
||||
accessListMemberDelete?: AccessListMemberDeleteEvent.AsObject,
|
||||
accessListGrantsToUser?: AccessListGrantsToUserEvent.AsObject,
|
||||
uiDiscoverEc2InstanceSelection?: UIDiscoverEC2InstanceSelectionEvent.AsObject,
|
||||
uiDiscoverDeployEice?: UIDiscoverDeployEICEEvent.AsObject,
|
||||
uiDiscoverCreateNode?: UIDiscoverCreateNodeEvent.AsObject,
|
||||
}
|
||||
|
||||
export enum EventCase {
|
||||
|
@ -2619,6 +2754,12 @@ export namespace SubmitEventRequest {
|
|||
|
||||
ACCESS_LIST_GRANTS_TO_USER = 64,
|
||||
|
||||
UI_DISCOVER_EC2_INSTANCE_SELECTION = 65,
|
||||
|
||||
UI_DISCOVER_DEPLOY_EICE = 66,
|
||||
|
||||
UI_DISCOVER_CREATE_NODE = 67,
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2764,6 +2905,7 @@ export enum DiscoverResource {
|
|||
DISCOVER_RESOURCE_DOC_DATABASE_HIGH_AVAILABILITY = 35,
|
||||
DISCOVER_RESOURCE_DOC_DATABASE_DYNAMIC_REGISTRATION = 36,
|
||||
DISCOVER_RESOURCE_SAML_APPLICATION = 37,
|
||||
DISCOVER_RESOURCE_EC2_INSTANCE = 38,
|
||||
}
|
||||
|
||||
export enum DiscoverStatus {
|
||||
|
|
990
gen/proto/js/prehog/v1alpha/teleport_pb.js
generated
990
gen/proto/js/prehog/v1alpha/teleport_pb.js
generated
File diff suppressed because it is too large
Load diff
|
@ -1038,6 +1038,39 @@ func ConvertUsageEvent(event *usageeventsv1.UsageEventOneOf, userMD UserMetadata
|
|||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
case *usageeventsv1.UsageEventOneOf_UiDiscoverEc2InstanceSelection:
|
||||
ret := &UIDiscoverEC2InstanceSelectionEvent{
|
||||
Metadata: discoverMetadataToPrehog(e.UiDiscoverEc2InstanceSelection.Metadata, userMD),
|
||||
Resource: discoverResourceToPrehog(e.UiDiscoverEc2InstanceSelection.Resource),
|
||||
Status: discoverStatusToPrehog(e.UiDiscoverEc2InstanceSelection.Status),
|
||||
}
|
||||
if err := ret.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
case *usageeventsv1.UsageEventOneOf_UiDiscoverDeployEice:
|
||||
ret := &UIDiscoverAutoDiscoveredResourcesEvent{
|
||||
Metadata: discoverMetadataToPrehog(e.UiDiscoverDeployEice.Metadata, userMD),
|
||||
Resource: discoverResourceToPrehog(e.UiDiscoverDeployEice.Resource),
|
||||
Status: discoverStatusToPrehog(e.UiDiscoverDeployEice.Status),
|
||||
}
|
||||
if err := ret.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
case *usageeventsv1.UsageEventOneOf_UiDiscoverCreateNode:
|
||||
ret := &UIDiscoverAutoDiscoveredResourcesEvent{
|
||||
Metadata: discoverMetadataToPrehog(e.UiDiscoverCreateNode.Metadata, userMD),
|
||||
Resource: discoverResourceToPrehog(e.UiDiscoverCreateNode.Resource),
|
||||
Status: discoverStatusToPrehog(e.UiDiscoverCreateNode.Status),
|
||||
}
|
||||
if err := ret.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
case *usageeventsv1.UsageEventOneOf_UiDiscoverDatabaseConfigureIamPolicyEvent:
|
||||
ret := &UIDiscoverDatabaseConfigureIAMPolicyEvent{
|
||||
|
|
|
@ -352,6 +352,72 @@ func (u *UIDiscoverAutoDiscoveredResourcesEvent) Anonymize(a utils.Anonymizer) p
|
|||
}
|
||||
}
|
||||
|
||||
// UIDiscoverEC2InstanceSelectionEvent is emitted when the user is finished with the step that asks the user to select an EC2 Instance to enroll.
|
||||
type UIDiscoverEC2InstanceSelectionEvent prehogv1a.UIDiscoverEC2InstanceSelectionEvent
|
||||
|
||||
func (u *UIDiscoverEC2InstanceSelectionEvent) CheckAndSetDefaults() error {
|
||||
return trace.Wrap(validateDiscoverBaseEventFields(u.Metadata, u.Resource, u.Status))
|
||||
}
|
||||
|
||||
func (u *UIDiscoverEC2InstanceSelectionEvent) Anonymize(a utils.Anonymizer) prehogv1a.SubmitEventRequest {
|
||||
return prehogv1a.SubmitEventRequest{
|
||||
Event: &prehogv1a.SubmitEventRequest_UiDiscoverEc2InstanceSelection{
|
||||
UiDiscoverEc2InstanceSelection: &prehogv1a.UIDiscoverEC2InstanceSelectionEvent{
|
||||
Metadata: &prehogv1a.DiscoverMetadata{
|
||||
Id: u.Metadata.Id,
|
||||
UserName: a.AnonymizeString(u.Metadata.UserName),
|
||||
},
|
||||
Resource: u.Resource,
|
||||
Status: u.Status,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UIDiscoverDeployEICEEvent is emitted when the user deploys an EC2 Instance Connect Endpoint.
|
||||
type UIDiscoverDeployEICEEvent prehogv1a.UIDiscoverDeployEICEEvent
|
||||
|
||||
func (u *UIDiscoverDeployEICEEvent) CheckAndSetDefaults() error {
|
||||
return trace.Wrap(validateDiscoverBaseEventFields(u.Metadata, u.Resource, u.Status))
|
||||
}
|
||||
|
||||
func (u *UIDiscoverDeployEICEEvent) Anonymize(a utils.Anonymizer) prehogv1a.SubmitEventRequest {
|
||||
return prehogv1a.SubmitEventRequest{
|
||||
Event: &prehogv1a.SubmitEventRequest_UiDiscoverDeployEice{
|
||||
UiDiscoverDeployEice: &prehogv1a.UIDiscoverDeployEICEEvent{
|
||||
Metadata: &prehogv1a.DiscoverMetadata{
|
||||
Id: u.Metadata.Id,
|
||||
UserName: a.AnonymizeString(u.Metadata.UserName),
|
||||
},
|
||||
Resource: u.Resource,
|
||||
Status: u.Status,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UIDiscoverCreateNodeEvent is emitted when the node is created in Teleport.
|
||||
type UIDiscoverCreateNodeEvent prehogv1a.UIDiscoverDeployEICEEvent
|
||||
|
||||
func (u *UIDiscoverCreateNodeEvent) CheckAndSetDefaults() error {
|
||||
return trace.Wrap(validateDiscoverBaseEventFields(u.Metadata, u.Resource, u.Status))
|
||||
}
|
||||
|
||||
func (u *UIDiscoverCreateNodeEvent) Anonymize(a utils.Anonymizer) prehogv1a.SubmitEventRequest {
|
||||
return prehogv1a.SubmitEventRequest{
|
||||
Event: &prehogv1a.SubmitEventRequest_UiDiscoverCreateNode{
|
||||
UiDiscoverCreateNode: &prehogv1a.UIDiscoverCreateNodeEvent{
|
||||
Metadata: &prehogv1a.DiscoverMetadata{
|
||||
Id: u.Metadata.Id,
|
||||
UserName: a.AnonymizeString(u.Metadata.UserName),
|
||||
},
|
||||
Resource: u.Resource,
|
||||
Status: u.Status,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UIDiscoverDatabaseConfigureIAMPolicyEvent is emitted when a user configured IAM for RDS database
|
||||
// and proceeded to the next step.
|
||||
type UIDiscoverDatabaseConfigureIAMPolicyEvent prehogv1a.UIDiscoverDatabaseConfigureIAMPolicyEvent
|
||||
|
|
|
@ -55,6 +55,9 @@ const (
|
|||
uiDiscoverDesktopActiveDirectoryToolsInstallEvent = "tp.ui.discover.desktop.activeDirectory.tools.install"
|
||||
uiDiscoverDesktopActiveDirectoryConfigureEvent = "tp.ui.discover.desktop.activeDirectory.configure"
|
||||
uiDiscoverAutoDiscoveredResourcesEvent = "tp.ui.discover.autoDiscoveredResources"
|
||||
uiDiscoverEC2InstanceSelectionEvent = "tp.ui.discover.selectedEC2Instance"
|
||||
uiDiscoverDeployEICEEvent = "tp.ui.discover.deployEICE"
|
||||
uiDiscoverCreateNodeEvent = "tp.ui.discover.createNode"
|
||||
uiDiscoverPrincipalsConfigureEvent = "tp.ui.discover.principals.configure"
|
||||
uiDiscoverTestConnectionEvent = "tp.ui.discover.testConnection"
|
||||
uiDiscoverCompletedEvent = "tp.ui.discover.completed"
|
||||
|
@ -288,6 +291,9 @@ func ConvertUserEventRequestToUsageEvent(req CreateUserEventRequest) (*usageeven
|
|||
uiDiscoverAutoDiscoveredResourcesEvent,
|
||||
uiDiscoverPrincipalsConfigureEvent,
|
||||
uiDiscoverTestConnectionEvent,
|
||||
uiDiscoverEC2InstanceSelectionEvent,
|
||||
uiDiscoverDeployEICEEvent,
|
||||
uiDiscoverCreateNodeEvent,
|
||||
uiDiscoverCompletedEvent:
|
||||
|
||||
var discoverEvent DiscoverEventData
|
||||
|
|
|
@ -190,6 +190,33 @@ func (d *DiscoverEventData) ToUsageEvent(eventName string) (*usageeventsv1.Usage
|
|||
},
|
||||
}}, nil
|
||||
|
||||
case uiDiscoverEC2InstanceSelectionEvent:
|
||||
return &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverEc2InstanceSelection{
|
||||
UiDiscoverEc2InstanceSelection: &usageeventsv1.UIDiscoverEC2InstanceSelectionEvent{
|
||||
Metadata: metadata,
|
||||
Resource: resource,
|
||||
Status: status,
|
||||
},
|
||||
}}, nil
|
||||
|
||||
case uiDiscoverDeployEICEEvent:
|
||||
return &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverDeployEice{
|
||||
UiDiscoverDeployEice: &usageeventsv1.UIDiscoverDeployEICEEvent{
|
||||
Metadata: metadata,
|
||||
Resource: resource,
|
||||
Status: status,
|
||||
},
|
||||
}}, nil
|
||||
|
||||
case uiDiscoverCreateNodeEvent:
|
||||
return &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverCreateNode{
|
||||
UiDiscoverCreateNode: &usageeventsv1.UIDiscoverCreateNodeEvent{
|
||||
Metadata: metadata,
|
||||
Resource: resource,
|
||||
Status: status,
|
||||
},
|
||||
}}, nil
|
||||
|
||||
case uiDiscoverDatabaseConfigureIAMPolicyEvent:
|
||||
return &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverDatabaseConfigureIamPolicyEvent{
|
||||
UiDiscoverDatabaseConfigureIamPolicyEvent: &usageeventsv1.UIDiscoverDatabaseConfigureIAMPolicyEvent{
|
||||
|
|
|
@ -332,6 +332,8 @@ enum DiscoverResource {
|
|||
DISCOVER_RESOURCE_DOC_DATABASE_DYNAMIC_REGISTRATION = 36;
|
||||
|
||||
DISCOVER_RESOURCE_SAML_APPLICATION = 37;
|
||||
|
||||
DISCOVER_RESOURCE_EC2_INSTANCE = 38;
|
||||
}
|
||||
|
||||
// DiscoverResourceMetadata contains common metadata identifying resource type being added.
|
||||
|
@ -476,6 +478,27 @@ message UIDiscoverAutoDiscoveredResourcesEvent {
|
|||
int64 resources_count = 4;
|
||||
}
|
||||
|
||||
// UIDiscoverEC2InstanceSelectionEvent is emitted when the user is finished with the step that asks the user to select an EC2 Instance to enroll.
|
||||
message UIDiscoverEC2InstanceSelectionEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverDeployEICEEvent is emitted when the user deploys an EC2 Instance Connect Endpoint.
|
||||
message UIDiscoverDeployEICEEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverCreateNodeEvent is emitted when the node is created in Teleport.
|
||||
message UIDiscoverCreateNodeEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
DiscoverResourceMetadata resource = 2;
|
||||
DiscoverStepStatus status = 3;
|
||||
}
|
||||
|
||||
// UIDiscoverDatabaseConfigureIAMPolicyEvent is emitted when a user is finished with the step that configures IAM policy for an RDS database.
|
||||
message UIDiscoverDatabaseConfigureIAMPolicyEvent {
|
||||
DiscoverMetadata metadata = 1;
|
||||
|
@ -1028,6 +1051,9 @@ message SubmitEventRequest {
|
|||
AccessListMemberUpdateEvent access_list_member_update = 62;
|
||||
AccessListMemberDeleteEvent access_list_member_delete = 63;
|
||||
AccessListGrantsToUserEvent access_list_grants_to_user = 64;
|
||||
UIDiscoverEC2InstanceSelectionEvent ui_discover_ec2_instance_selection = 65;
|
||||
UIDiscoverDeployEICEEvent ui_discover_deploy_eice = 66;
|
||||
UIDiscoverCreateNodeEvent ui_discover_create_node = 67;
|
||||
}
|
||||
|
||||
reserved 8; // UIOnboardGetStartedClickEvent
|
||||
|
|
|
@ -82,7 +82,7 @@ export const SERVERS: ResourceSpec[] = [
|
|||
keywords:
|
||||
baseServerKeywords + 'ec2 instance connect endpoint aws amazon eice',
|
||||
icon: 'Aws',
|
||||
event: null, // TODO rudream (ADD EVENTS FOR EICE FLOW)
|
||||
event: DiscoverEventResource.Ec2Instance,
|
||||
nodeMeta: { location: ServerLocation.Aws },
|
||||
},
|
||||
];
|
||||
|
|
|
@ -27,6 +27,10 @@ import {
|
|||
SecurityGroup,
|
||||
integrationService,
|
||||
} from 'teleport/services/integrations';
|
||||
import {
|
||||
DiscoverEvent,
|
||||
DiscoverEventStatus,
|
||||
} from 'teleport/services/userEvent';
|
||||
import { NodeMeta, useDiscover } from 'teleport/Discover/useDiscover';
|
||||
import {
|
||||
ActionButtons,
|
||||
|
@ -78,7 +82,8 @@ export function CreateEc2Ice() {
|
|||
const { attempt: deployEc2IceAttempt, setAttempt: setDeployEc2IceAttempt } =
|
||||
useAttempt('');
|
||||
|
||||
const { emitErrorEvent, agentMeta, prevStep, nextStep } = useDiscover();
|
||||
const { emitErrorEvent, agentMeta, prevStep, nextStep, emitEvent } =
|
||||
useDiscover();
|
||||
|
||||
async function fetchSecurityGroups() {
|
||||
const integration = (agentMeta as NodeMeta).integration;
|
||||
|
@ -122,13 +127,22 @@ export function CreateEc2Ice() {
|
|||
}
|
||||
);
|
||||
// Capture event for deploying EICE.
|
||||
// emitEvent(null); TODO rudream (ADD EVENTS FOR EICE FLOW)
|
||||
emitEvent(
|
||||
{ stepStatus: DiscoverEventStatus.Success },
|
||||
{
|
||||
eventName: DiscoverEvent.EC2DeployEICE,
|
||||
}
|
||||
);
|
||||
} catch (err) {
|
||||
const errMsg = getErrMessage(err);
|
||||
setShowCreatingDialog(false);
|
||||
setDeployEc2IceAttempt({ status: 'failed', statusText: errMsg });
|
||||
emitErrorEvent(
|
||||
`ec2 instance connect endpoint deploying failed: ${errMsg}`
|
||||
// Capture error event for failing to deploy EICE.
|
||||
emitEvent(
|
||||
{ stepStatus: DiscoverEventStatus.Error, stepStatusError: errMsg },
|
||||
{
|
||||
eventName: DiscoverEvent.EC2DeployEICE,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,10 @@ import NodeService from 'teleport/services/nodes';
|
|||
import { TextIcon } from 'teleport/Discover/Shared';
|
||||
import { NodeMeta, useDiscover } from 'teleport/Discover/useDiscover';
|
||||
import { usePoll } from 'teleport/Discover/Shared/usePoll';
|
||||
import {
|
||||
DiscoverEvent,
|
||||
DiscoverEventStatus,
|
||||
} from 'teleport/services/userEvent';
|
||||
|
||||
export function CreateEc2IceDialog({
|
||||
nextStep,
|
||||
|
@ -55,7 +59,8 @@ export function CreateEc2IceDialog({
|
|||
existingEice?.state !== 'create-complete'
|
||||
);
|
||||
|
||||
const { emitErrorEvent, updateAgentMeta, agentMeta } = useDiscover();
|
||||
const { emitErrorEvent, updateAgentMeta, agentMeta, emitEvent } =
|
||||
useDiscover();
|
||||
const typedAgentMeta = agentMeta as NodeMeta;
|
||||
|
||||
const nodeService = new NodeService();
|
||||
|
@ -156,6 +161,14 @@ export function CreateEc2IceDialog({
|
|||
resourceName: node.id,
|
||||
});
|
||||
setCreateNodeAttempt({ status: 'success' });
|
||||
|
||||
// Capture event for creating the Node.
|
||||
emitEvent(
|
||||
{ stepStatus: DiscoverEventStatus.Success },
|
||||
{
|
||||
eventName: DiscoverEvent.CreateNode,
|
||||
}
|
||||
);
|
||||
} catch (err) {
|
||||
const errMsg = getErrMessage(err);
|
||||
setCreateNodeAttempt({ status: 'failed', statusText: errMsg });
|
||||
|
|
|
@ -31,6 +31,11 @@ import {
|
|||
import { AwsRegionSelector } from 'teleport/Discover/Shared/AwsRegionSelector';
|
||||
import NodeService, { Node } from 'teleport/services/nodes';
|
||||
|
||||
import {
|
||||
DiscoverEvent,
|
||||
DiscoverEventStatus,
|
||||
} from 'teleport/services/userEvent';
|
||||
|
||||
import { ActionButtons, Header } from '../../Shared';
|
||||
|
||||
import { CreateEc2IceDialog } from '../CreateEc2Ice/CreateEc2IceDialog';
|
||||
|
@ -57,7 +62,7 @@ const emptyTableData: TableData = {
|
|||
};
|
||||
|
||||
export function EnrollEc2Instance() {
|
||||
const { agentMeta, emitErrorEvent, nextStep, updateAgentMeta } =
|
||||
const { agentMeta, emitErrorEvent, nextStep, updateAgentMeta, emitEvent } =
|
||||
useDiscover();
|
||||
const nodeService = new NodeService();
|
||||
|
||||
|
@ -214,6 +219,13 @@ export function EnrollEc2Instance() {
|
|||
// it's create-complete and then create the node.
|
||||
if (createCompleteEice || createInProgressEice) {
|
||||
setExistingEice(createCompleteEice || createInProgressEice);
|
||||
// Since the EICE had already been deployed before the flow, emit an event for EC2DeployEICE as `Skipped`.
|
||||
emitEvent(
|
||||
{ stepStatus: DiscoverEventStatus.Skipped },
|
||||
{
|
||||
eventName: DiscoverEvent.EC2DeployEICE,
|
||||
}
|
||||
);
|
||||
updateAgentMeta({
|
||||
...(agentMeta as NodeMeta),
|
||||
node: selectedInstance,
|
||||
|
|
|
@ -59,12 +59,13 @@ export const ServerResource: ResourceViewConfig<ResourceSpec> = {
|
|||
{
|
||||
title: 'Enroll EC2 Instance',
|
||||
component: EnrollEc2Instance,
|
||||
// eventName: null, TODO rudream (ADD EVENTS FOR EICE FLOW)
|
||||
eventName: DiscoverEvent.EC2InstanceSelection,
|
||||
},
|
||||
{
|
||||
title: 'Create EC2 Instance Connect Endpoint',
|
||||
component: CreateEc2Ice,
|
||||
// eventName: null, TODO rudream (ADD EVENTS FOR EICE FLOW)
|
||||
eventName: DiscoverEvent.CreateNode,
|
||||
manuallyEmitSuccessEvent: true,
|
||||
},
|
||||
];
|
||||
} else {
|
||||
|
|
|
@ -81,6 +81,9 @@ export enum DiscoverEvent {
|
|||
DesktopActiveDirectoryToolsInstall = 'tp.ui.discover.desktop.activeDirectory.tools.install',
|
||||
DesktopActiveDirectoryConfigure = 'tp.ui.discover.desktop.activeDirectory.configure',
|
||||
AutoDiscoveredResources = 'tp.ui.discover.autoDiscoveredResources',
|
||||
EC2InstanceSelection = 'tp.ui.discover.selectedEC2Instance',
|
||||
EC2DeployEICE = 'tp.ui.discover.deployEICE',
|
||||
CreateNode = 'tp.ui.discover.createNode',
|
||||
PrincipalsConfigure = 'tp.ui.discover.principals.configure',
|
||||
TestConnection = 'tp.ui.discover.testConnection',
|
||||
Completed = 'tp.ui.discover.completed',
|
||||
|
@ -132,6 +135,8 @@ export enum DiscoverEventResource {
|
|||
ApplicationTcp = 'DISCOVER_RESOURCE_APPLICATION_TCP',
|
||||
WindowsDesktop = 'DISCOVER_RESOURCE_WINDOWS_DESKTOP',
|
||||
|
||||
Ec2Instance = 'DISCOVER_RESOURCE_EC2_INSTANCE',
|
||||
|
||||
SamlApplication = 'DISCOVER_RESOURCE_SAML_APPLICATION',
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue