Emit new update events when resources are updated (#33753)

Auth connectors, users, and roles have all recently had their APIs
extended to support create and update but were still only emitting
create events. This adds new update events and update metadata
and emits them instead of the create events.
This commit is contained in:
rosstimothy
2023-10-27 14:21:09 +00:00
committed by GitHub
parent b5696c059e
commit 04b1598c91
19 changed files with 3711 additions and 1057 deletions
@@ -1231,7 +1231,7 @@ message ResourceMetadata {
string TTL = 4 [(gogoproto.jsontag) = "ttl,omitempty"];
}
// UserCreate is emitted when the user is created or updated (upsert).
// UserCreate is emitted when the user is created or upserted.
message UserCreate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
@@ -1261,6 +1261,36 @@ message UserCreate {
string Connector = 5 [(gogoproto.jsontag) = "connector"];
}
// UserUpdate is emitted when the user is updated.
message UserUpdate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// User is a common user event metadata
UserMetadata User = 2 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// ResourceMetadata is a common resource event metadata
ResourceMetadata Resource = 3 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// Roles is a list of roles for the user.
repeated string Roles = 4 [(gogoproto.jsontag) = "roles"];
// Connector is the connector used to create the user.
string Connector = 5 [(gogoproto.jsontag) = "connector"];
}
// UserDelete is emitted when a user gets deleted
message UserDelete {
// Metadata is a common event metadata
@@ -1874,6 +1904,30 @@ message RoleCreate {
];
}
// RoleUpdate is emitted when a role is updated.
message RoleUpdate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// ResourceMetadata is a common resource event metadata
ResourceMetadata Resource = 2 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// User is a common user event metadata
UserMetadata User = 3 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
}
// RoleDelete is emitted when a role is deleted
message RoleDelete {
// Metadata is a common event metadata
@@ -2005,7 +2059,7 @@ message TrustedClusterTokenCreate {
];
}
// GithubConnectorCreate fires when a Github connector is created/updated.
// GithubConnectorCreate fires when a Github connector is created.
message GithubConnectorCreate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
@@ -2029,6 +2083,30 @@ message GithubConnectorCreate {
];
}
// GithubConnectorUpdate fires when a Github connector is updated.
message GithubConnectorUpdate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// ResourceMetadata is a common resource event metadata
ResourceMetadata Resource = 2 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// User is a common user event metadata
UserMetadata User = 3 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
}
// GithubConnectorDelete fires when a Github connector is deleted.
message GithubConnectorDelete {
// Metadata is a common event metadata
@@ -2053,7 +2131,7 @@ message GithubConnectorDelete {
];
}
// OIDCConnectorCreate fires when OIDC connector is created/updated.
// OIDCConnectorCreate fires when OIDC connector is created.
message OIDCConnectorCreate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
@@ -2077,6 +2155,30 @@ message OIDCConnectorCreate {
];
}
// OIDCConnectorUpdate fires when OIDC connector is updated.
message OIDCConnectorUpdate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// ResourceMetadata is a common resource event metadata
ResourceMetadata Resource = 2 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// User is a common user event metadata
UserMetadata User = 3 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
}
// OIDCConnectorDelete fires when OIDC connector is deleted.
message OIDCConnectorDelete {
// Metadata is a common event metadata
@@ -2125,6 +2227,30 @@ message SAMLConnectorCreate {
];
}
// SAMLConnectorUpdate fires when SAML connector is updated.
message SAMLConnectorUpdate {
// Metadata is a common event metadata
Metadata Metadata = 1 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// ResourceMetadata is a common resource event metadata
ResourceMetadata Resource = 2 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
// User is a common user event metadata
UserMetadata User = 3 [
(gogoproto.nullable) = false,
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
}
// SAMLConnectorDelete fires when SAML connector is deleted.
message SAMLConnectorDelete {
// Metadata is a common event metadata
@@ -3531,6 +3657,11 @@ message OneOf {
events.AccessListMemberDeleteAllForAccessList AccessListMemberDeleteAllForAccessList = 133;
events.AuditQueryRun AuditQueryRun = 134;
events.SecurityReportRun SecurityReportRun = 135;
events.GithubConnectorUpdate GithubConnectorUpdate = 136;
events.OIDCConnectorUpdate OIDCConnectorUpdate = 137;
events.SAMLConnectorUpdate SAMLConnectorUpdate = 138;
events.RoleUpdate RoleUpdate = 139;
events.UserUpdate UserUpdate = 140;
}
}
File diff suppressed because it is too large Load Diff
+20
View File
@@ -47,6 +47,10 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_UserCreate{
UserCreate: e,
}
case *UserUpdate:
out.Event = &OneOf_UserUpdate{
UserUpdate: e,
}
case *UserDelete:
out.Event = &OneOf_UserDelete{
UserDelete: e,
@@ -139,6 +143,10 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_RoleCreate{
RoleCreate: e,
}
case *RoleUpdate:
out.Event = &OneOf_RoleUpdate{
RoleUpdate: e,
}
case *RoleDelete:
out.Event = &OneOf_RoleDelete{
RoleDelete: e,
@@ -167,6 +175,10 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_GithubConnectorCreate{
GithubConnectorCreate: e,
}
case *GithubConnectorUpdate:
out.Event = &OneOf_GithubConnectorUpdate{
GithubConnectorUpdate: e,
}
case *GithubConnectorDelete:
out.Event = &OneOf_GithubConnectorDelete{
GithubConnectorDelete: e,
@@ -175,6 +187,10 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_OIDCConnectorCreate{
OIDCConnectorCreate: e,
}
case *OIDCConnectorUpdate:
out.Event = &OneOf_OIDCConnectorUpdate{
OIDCConnectorUpdate: e,
}
case *OIDCConnectorDelete:
out.Event = &OneOf_OIDCConnectorDelete{
OIDCConnectorDelete: e,
@@ -183,6 +199,10 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_SAMLConnectorCreate{
SAMLConnectorCreate: e,
}
case *SAMLConnectorUpdate:
out.Event = &OneOf_SAMLConnectorUpdate{
SAMLConnectorUpdate: e,
}
case *SAMLConnectorDelete:
out.Event = &OneOf_SAMLConnectorDelete{
SAMLConnectorDelete: e,
+3 -7
View File
@@ -59,14 +59,10 @@ func (a *Server) UpdateRole(ctx context.Context, role types.Role) (types.Role, e
return nil, trace.Wrap(err)
}
// TODO(tross): add a RoleUpdate type, RoleUpdatedEvent/Code for metadata
// and convert this to use them instead of a create event. As is this matches
// existing behavior since all updates to a role were done vie upsert which
// only ever emits a create event.
if err := a.emitter.EmitAuditEvent(a.closeCtx, &apievents.RoleCreate{
if err := a.emitter.EmitAuditEvent(a.closeCtx, &apievents.RoleUpdate{
Metadata: apievents.Metadata{
Type: events.RoleCreatedEvent,
Code: events.RoleCreatedCode,
Type: events.RoleUpdatedEvent,
Code: events.RoleUpdatedCode,
},
UserMetadata: authz.ClientUserMetadata(ctx),
ResourceMetadata: apievents.ResourceMetadata{
+12 -4
View File
@@ -45,17 +45,25 @@ func TestUpsertDeleteRoleEventsEmitted(t *testing.T) {
require.NoError(t, err)
// Creating a role should emit a RoleCreatedEvent.
role, err = p.a.CreateRole(ctx, role)
require.NoError(t, err)
require.Equal(t, p.mockEmitter.LastEvent().GetType(), events.RoleCreatedEvent)
require.Equal(t, p.mockEmitter.LastEvent().(*apievents.RoleCreate).Name, role.GetName())
p.mockEmitter.Reset()
// Upserting a role should emit a RoleCreatedEvent.
role, err = p.a.UpsertRole(ctx, role)
require.NoError(t, err)
require.Equal(t, p.mockEmitter.LastEvent().GetType(), events.RoleCreatedEvent)
require.Equal(t, p.mockEmitter.LastEvent().(*apievents.RoleCreate).Name, role.GetName())
p.mockEmitter.Reset()
// Updating a role should emit a RoleCreatedEvent.
role, err = p.a.UpsertRole(ctx, role)
// Updating a role should emit a RoleUpdatedEvent.
role.SetLogins(types.Allow, []string{"llama"})
role, err = p.a.UpdateRole(ctx, role)
require.NoError(t, err)
require.Equal(t, p.mockEmitter.LastEvent().GetType(), events.RoleCreatedEvent)
require.Equal(t, p.mockEmitter.LastEvent().(*apievents.RoleCreate).Name, role.GetName())
require.Equal(t, p.mockEmitter.LastEvent().GetType(), events.RoleUpdatedEvent)
require.Equal(t, p.mockEmitter.LastEvent().(*apievents.RoleUpdate).Name, role.GetName())
p.mockEmitter.Reset()
// Deleting a role should emit a RoleDeletedEvent.
+7 -7
View File
@@ -805,7 +805,7 @@ func TestCreateAndUpdateUserEventsEmitted(t *testing.T) {
_, err = s.a.UpdateUser(ctx, user)
require.NoError(t, err)
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.UserUpdatedEvent)
require.Equal(t, s.mockEmitter.LastEvent().(*apievents.UserCreate).User, teleport.UserSystem)
require.Equal(t, s.mockEmitter.LastEvent().(*apievents.UserUpdate).User, teleport.UserSystem)
}
func TestTrustedClusterCRUDEventEmitted(t *testing.T) {
@@ -882,8 +882,8 @@ func TestGithubConnectorCRUDEventsEmitted(t *testing.T) {
github.SetDisplay("llama")
github, err = s.a.updateGithubConnector(ctx, github)
require.NoError(t, err)
require.IsType(t, &apievents.GithubConnectorCreate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.GithubConnectorCreatedEvent)
require.IsType(t, &apievents.GithubConnectorUpdate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.GithubConnectorUpdatedEvent)
s.mockEmitter.Reset()
// test github upsert event
@@ -930,8 +930,8 @@ func TestOIDCConnectorCRUDEventsEmitted(t *testing.T) {
oidc.SetDisplay("llama")
oidc, err = s.a.UpdateOIDCConnector(ctx, oidc)
require.NoError(t, err)
require.IsType(t, &apievents.OIDCConnectorCreate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.OIDCConnectorCreatedEvent)
require.IsType(t, &apievents.OIDCConnectorUpdate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.OIDCConnectorUpdatedEvent)
s.mockEmitter.Reset()
// test oidc upsert event
@@ -1002,8 +1002,8 @@ func TestSAMLConnectorCRUDEventsEmitted(t *testing.T) {
saml.SetDisplay("llama")
saml, err = s.a.UpdateSAMLConnector(ctx, saml)
require.NoError(t, err)
require.IsType(t, &apievents.SAMLConnectorCreate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.SAMLConnectorCreatedEvent)
require.IsType(t, &apievents.SAMLConnectorUpdate{}, s.mockEmitter.LastEvent())
require.Equal(t, s.mockEmitter.LastEvent().GetType(), events.SAMLConnectorUpdatedEvent)
s.mockEmitter.Reset()
// test saml upsert event
+1 -1
View File
@@ -3411,7 +3411,7 @@ func (a *ServerWithRoles) UpdateUser(ctx context.Context, user types.User) (type
return nil, trace.Wrap(err)
}
updated, err := a.authServer.UpdateUserWithContext(ctx, user)
updated, err := a.authServer.UpdateUser(ctx, user)
return updated, trace.Wrap(err)
}
+3 -7
View File
@@ -209,14 +209,10 @@ func (a *Server) updateGithubConnector(ctx context.Context, connector types.Gith
return nil, trace.Wrap(err)
}
// TODO(tross): add a GithubConnectorUpdate type, GithubConnectorUpdatedEvent/Code for metadata
// and convert this to use them instead of a create event. As is this matches
// existing behavior since all updates to a connector were done via upsert which
// only ever emits a create event.
if err := a.emitter.EmitAuditEvent(ctx, &apievents.GithubConnectorCreate{
if err := a.emitter.EmitAuditEvent(ctx, &apievents.GithubConnectorUpdate{
Metadata: apievents.Metadata{
Type: events.GithubConnectorCreatedEvent,
Code: events.GithubConnectorCreatedCode,
Type: events.GithubConnectorUpdatedEvent,
Code: events.GithubConnectorUpdatedCode,
},
UserMetadata: authz.ClientUserMetadata(ctx),
ResourceMetadata: apievents.ResourceMetadata{
+3 -3
View File
@@ -63,10 +63,10 @@ func (a *Server) UpdateOIDCConnector(ctx context.Context, connector types.OIDCCo
if err != nil {
return nil, trace.Wrap(err)
}
if err := a.emitter.EmitAuditEvent(ctx, &apievents.OIDCConnectorCreate{
if err := a.emitter.EmitAuditEvent(ctx, &apievents.OIDCConnectorUpdate{
Metadata: apievents.Metadata{
Type: events.OIDCConnectorCreatedEvent,
Code: events.OIDCConnectorCreatedCode,
Type: events.OIDCConnectorUpdatedEvent,
Code: events.OIDCConnectorUpdatedCode,
},
UserMetadata: authz.ClientUserMetadata(ctx),
ResourceMetadata: apievents.ResourceMetadata{
+4 -4
View File
@@ -40,7 +40,7 @@ var ErrSAMLRequiresEnterprise = trace.AccessDenied("SAML is only available in Te
// SAMLService are the methods that the auth server delegates to a plugin for
// implementing the SAML connector. These are the core functions of SAML
// authentication - the connector CRUD operations and Get methods are
// implemeneted in auth.Server and provide no connector-specific logic.
// implemented in auth.Server and provide no connector-specific logic.
type SAMLService interface {
// CreateSAMLAuthRequest creates SAML AuthnRequest
CreateSAMLAuthRequest(ctx context.Context, req types.SAMLAuthRequest) (*types.SAMLAuthRequest, error)
@@ -87,10 +87,10 @@ func (a *Server) UpdateSAMLConnector(ctx context.Context, connector types.SAMLCo
if err != nil {
return nil, trace.Wrap(err)
}
if err := a.emitter.EmitAuditEvent(ctx, &apievents.SAMLConnectorCreate{
if err := a.emitter.EmitAuditEvent(ctx, &apievents.SAMLConnectorUpdate{
Metadata: apievents.Metadata{
Type: events.SAMLConnectorCreatedEvent,
Code: events.SAMLConnectorCreatedCode,
Type: events.SAMLConnectorUpdatedEvent,
Code: events.SAMLConnectorUpdatedCode,
},
UserMetadata: authz.ClientUserMetadata(ctx),
ResourceMetadata: apievents.ResourceMetadata{
+3 -9
View File
@@ -80,12 +80,6 @@ func (s *Server) CreateUser(ctx context.Context, user types.User) (types.User, e
// UpdateUser updates an existing user in a backend.
func (s *Server) UpdateUser(ctx context.Context, user types.User) (types.User, error) {
updated, err := s.UpdateUserWithContext(ctx, user)
return updated, trace.Wrap(err)
}
// UpdateUserWithContext updates an existing user in a backend.
func (s *Server) UpdateUserWithContext(ctx context.Context, user types.User) (types.User, error) {
prevUser, err := s.GetUser(ctx, user.GetName(), false)
var omitEditorEvent bool
if err != nil {
@@ -106,7 +100,7 @@ func (s *Server) UpdateUserWithContext(ctx context.Context, user types.User) (ty
connectorName = updated.GetCreatedBy().Connector.ID
}
if err := s.emitter.EmitAuditEvent(ctx, &apievents.UserCreate{
if err := s.emitter.EmitAuditEvent(ctx, &apievents.UserUpdate{
Metadata: apievents.Metadata{
Type: events.UserUpdatedEvent,
Code: events.UserUpdateCode,
@@ -199,7 +193,7 @@ func (s *Server) CompareAndSwapUser(ctx context.Context, new, existing types.Use
connectorName = new.GetCreatedBy().Connector.ID
}
if err := s.emitter.EmitAuditEvent(ctx, &apievents.UserCreate{
if err := s.emitter.EmitAuditEvent(ctx, &apievents.UserUpdate{
Metadata: apievents.Metadata{
Type: events.UserUpdatedEvent,
Code: events.UserUpdateCode,
@@ -220,7 +214,7 @@ func (s *Server) CompareAndSwapUser(ctx context.Context, new, existing types.Use
return nil
}
// DeleteUser deletes an existng user in a backend by username.
// DeleteUser deletes an existing user in a backend by username.
func (s *Server) DeleteUser(ctx context.Context, user string) error {
prevUser, err := s.GetUser(ctx, user, false)
var omitEditorEvent bool
+14 -6
View File
@@ -342,8 +342,10 @@ const (
// TCPVersion is the version of TCP (4 or 6).
TCPVersion = "version"
// RoleCreatedEvent fires when role is created/updated.
// RoleCreatedEvent fires when role is created or upserted.
RoleCreatedEvent = "role.created"
// RoleUpdatedEvent fires when role is updated.
RoleUpdatedEvent = "role.updated"
// RoleDeletedEvent fires when role is deleted.
RoleDeletedEvent = "role.deleted"
@@ -360,24 +362,30 @@ const (
// also known as Join Token. See [types.ProvisionToken].
ProvisionTokenCreateEvent = "join_token.create"
// GithubConnectorCreatedEvent fires when a Github connector is created/updated.
// GithubConnectorCreatedEvent fires when a Github connector is created.
GithubConnectorCreatedEvent = "github.created"
// GithubConnectorUpdatedEvent fires when a Github connector is updated.
GithubConnectorUpdatedEvent = "github.updated"
// GithubConnectorDeletedEvent fires when a Github connector is deleted.
GithubConnectorDeletedEvent = "github.deleted"
// OIDCConnectorCreatedEvent fires when OIDC connector is created/updated.
// OIDCConnectorCreatedEvent fires when OIDC connector is created.
OIDCConnectorCreatedEvent = "oidc.created"
// OIDCConnectorUpdatedEvent fires when OIDC connector is updated.
OIDCConnectorUpdatedEvent = "oidc.updated"
// OIDCConnectorDeletedEvent fires when OIDC connector is deleted.
OIDCConnectorDeletedEvent = "oidc.deleted"
// SAMLConnectorCreatedEvent fires when SAML connector is created/updated.
// SAMLConnectorCreatedEvent fires when SAML connector is created.
SAMLConnectorCreatedEvent = "saml.created"
// SAMLConnectorUpdatedEvent fires when SAML connector is updated.
SAMLConnectorUpdatedEvent = "saml.updated"
// SAMLConnectorDeletedEvent fires when SAML connector is deleted.
SAMLConnectorDeletedEvent = "saml.deleted"
// SessionRejected fires when a user's attempt to create an authenticated
// SessionRejectedEvent fires when a user's attempt to create an authenticated
// session has been rejected due to exceeding a session control limit.
SessionRejectedEvent = "session.rejected"
// SessionConnect is emitted when any ssh connection is made
// SessionConnectEvent is emitted when any ssh connection is made
SessionConnectEvent = "session.connect"
// AppCreateEvent is emitted when an application resource is created.
+8
View File
@@ -371,21 +371,29 @@ const (
GithubConnectorCreatedCode = "T8000I"
// GithubConnectorDeletedCode is the Github connector deleted event code.
GithubConnectorDeletedCode = "T8001I"
// GithubConnectorUpdatedCode is the Github connector updated event code.
GithubConnectorUpdatedCode = "T80002I"
// OIDCConnectorCreatedCode is the OIDC connector created event code.
OIDCConnectorCreatedCode = "T8100I"
// OIDCConnectorDeletedCode is the OIDC connector deleted event code.
OIDCConnectorDeletedCode = "T8101I"
// OIDCConnectorUpdatedCode is the OIDC connector updated event code.
OIDCConnectorUpdatedCode = "T8102I"
// SAMLConnectorCreatedCode is the SAML connector created event code.
SAMLConnectorCreatedCode = "T8200I"
// SAMLConnectorDeletedCode is the SAML connector deleted event code.
SAMLConnectorDeletedCode = "T8201I"
// SAMLConnectorUpdatedCode is the SAML connector updated event code.
SAMLConnectorUpdatedCode = "T8202I"
// RoleCreatedCode is the role created event code.
RoleCreatedCode = "T9000I"
// RoleDeletedCode is the role deleted event code.
RoleDeletedCode = "T9001I"
// RoleUpdatedCode is the role created event code.
RoleUpdatedCode = "T9002I"
// BotJoinCode is the 'bot.join' event code.
BotJoinCode = "TJ001I"
+9 -3
View File
@@ -74,9 +74,7 @@ func FromEventFields(fields EventFields) (events.AuditEvent, error) {
case UserCreateEvent:
e = &events.UserCreate{}
case UserUpdatedEvent:
// note: user.update is a custom code applied on top of the same data as the user.create event
// and they are thus functionally identical. There exists no direct gRPC version of user.update.
e = &events.UserCreate{}
e = &events.UserUpdate{}
case UserPasswordChangeEvent:
e = &events.UserPasswordChange{}
case AccessRequestCreateEvent:
@@ -121,6 +119,8 @@ func FromEventFields(fields EventFields) (events.AuditEvent, error) {
e = &events.SessionNetwork{}
case RoleCreatedEvent:
e = &events.RoleCreate{}
case RoleUpdatedEvent:
e = &events.RoleUpdate{}
case RoleDeletedEvent:
e = &events.RoleDelete{}
case TrustedClusterCreateEvent:
@@ -135,14 +135,20 @@ func FromEventFields(fields EventFields) (events.AuditEvent, error) {
e = &events.ProvisionTokenCreate{}
case GithubConnectorCreatedEvent:
e = &events.GithubConnectorCreate{}
case GithubConnectorUpdatedEvent:
e = &events.GithubConnectorUpdate{}
case GithubConnectorDeletedEvent:
e = &events.GithubConnectorDelete{}
case OIDCConnectorCreatedEvent:
e = &events.OIDCConnectorCreate{}
case OIDCConnectorUpdatedEvent:
e = &events.OIDCConnectorUpdate{}
case OIDCConnectorDeletedEvent:
e = &events.OIDCConnectorDelete{}
case SAMLConnectorCreatedEvent:
e = &events.SAMLConnectorCreate{}
case SAMLConnectorUpdatedEvent:
e = &events.SAMLConnectorUpdate{}
case SAMLConnectorDeletedEvent:
e = &events.SAMLConnectorDelete{}
case SessionRejectedEvent:
@@ -32,13 +32,17 @@ const EventIconMap: Record<EventCode, any> = {
[eventCodes.PROVISION_TOKEN_CREATED]: Icons.Info,
[eventCodes.GITHUB_CONNECTOR_CREATED]: Icons.Info,
[eventCodes.GITHUB_CONNECTOR_DELETED]: Icons.Info,
[eventCodes.GITHUB_CONNECTOR_UPDATED]: Icons.Info,
[eventCodes.OIDC_CONNECTOR_CREATED]: Icons.Info,
[eventCodes.OIDC_CONNECTOR_DELETED]: Icons.Info,
[eventCodes.OIDC_CONNECTOR_UPDATED]: Icons.Info,
[eventCodes.SAML_CONNECTOR_CREATED]: Icons.Info,
[eventCodes.SAML_CONNECTOR_CREATED]: Icons.Info,
[eventCodes.SAML_CONNECTOR_DELETED]: Icons.Info,
[eventCodes.SAML_CONNECTOR_UPDATED]: Icons.Info,
[eventCodes.ROLE_CREATED]: Icons.Info,
[eventCodes.ROLE_DELETED]: Icons.Info,
[eventCodes.ROLE_UPDATED]: Icons.Info,
[eventCodes.SCP_DOWNLOAD_FAILURE]: Icons.Download,
[eventCodes.SCP_DOWNLOAD]: Icons.Download,
[eventCodes.SCP_UPLOAD_FAILURE]: Icons.Upload,
@@ -437,12 +437,12 @@ exports[`list of all events 1`] = `
</strong>
-
<strong>
218
224
</strong>
of
<strong>
218
224
</strong>
</div>
<button
@@ -8428,6 +8428,276 @@ exports[`list of all events 1`] = `
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
SAML Connector Updated
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] updated SAML connector [new_saml_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:29:14Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
SAML Connector Deleted
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] deleted SAML connector [new_saml_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:29:14Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
SAML Connector Created
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] created SAML connector [new_saml_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:29:14Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
OIDC Auth Connector Updated
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] updated OIDC connector [new_oidc_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:29:14Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
OIDC Auth Connector Deleted
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] deleted OIDC connector [new_oidc_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:29:14Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
@@ -8482,6 +8752,60 @@ exports[`list of all events 1`] = `
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c17"
>
<span
class="c18 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
GITHUB Auth Connector Updated
</div>
</td>
<td
style="word-break: break-word;"
>
User [unimplemented] updated GitHub connector [new_github_connector]
</td>
<td
style="min-width: 120px;"
>
2020-06-05T19:28:28Z
</td>
<td
align="right"
>
<button
class="c19"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
@@ -8571,7 +8895,7 @@ exports[`list of all events 1`] = `
<td
style="word-break: break-word;"
>
User [unimplemented] created GitHub connector [new_github_connector] has been created
User [unimplemented] created GitHub connector [new_github_connector]
</td>
<td
style="min-width: 120px;"
@@ -12440,12 +12764,12 @@ exports[`loaded audit log screen 1`] = `
</strong>
-
<strong>
5
8
</strong>
of
<strong>
5
8
</strong>
</div>
</div>
@@ -12567,6 +12891,168 @@ exports[`loaded audit log screen 1`] = `
</tr>
</thead>
<tbody>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c21"
>
<span
class="c22 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
User Role Deleted
</div>
</td>
<td
style="word-break: break-word;"
>
User [moe] deleted a role [editor]
</td>
<td
style="min-width: 120px;"
>
2023-10-26T22:10:50.076Z
</td>
<td
align="right"
>
<button
class="c23"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c21"
>
<span
class="c22 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
User Role Updated
</div>
</td>
<td
style="word-break: break-word;"
>
User [larry] updated a role [editor]
</td>
<td
style="min-width: 120px;"
>
2023-10-26T22:09:23.29Z
</td>
<td
align="right"
>
<button
class="c23"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
>
<div
class="c21"
>
<span
class="c22 icon icon-info"
>
<svg
fill="currentColor"
height="20"
viewBox="0 0 24 24"
width="20"
>
<path
d="M11.625 8.8125C12.1428 8.8125 12.5625 8.39277 12.5625 7.875C12.5625 7.35723 12.1428 6.9375 11.625 6.9375C11.1072 6.9375 10.6875 7.35723 10.6875 7.875C10.6875 8.39277 11.1072 8.8125 11.625 8.8125Z"
/>
<path
d="M10.5 11.25C10.5 10.8358 10.8358 10.5 11.25 10.5C11.6478 10.5 12.0294 10.658 12.3107 10.9393C12.592 11.2206 12.75 11.6022 12.75 12V15.75C13.1642 15.75 13.5 16.0858 13.5 16.5C13.5 16.9142 13.1642 17.25 12.75 17.25C12.3522 17.25 11.9706 17.092 11.6893 16.8107C11.408 16.5294 11.25 16.1478 11.25 15.75V12C10.8358 12 10.5 11.6642 10.5 11.25Z"
/>
<path
clip-rule="evenodd"
d="M12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25ZM3.75 12C3.75 7.44365 7.44365 3.75 12 3.75C16.5563 3.75 20.25 7.44365 20.25 12C20.25 16.5563 16.5563 20.25 12 20.25C7.44365 20.25 3.75 16.5563 3.75 12Z"
fill-rule="evenodd"
/>
</svg>
</span>
User Role Created
</div>
</td>
<td
style="word-break: break-word;"
>
User [system] created a role [editor]
</td>
<td
style="min-width: 120px;"
>
2023-10-26T16:08:43.426Z
</td>
<td
align="right"
>
<button
class="c23"
kind="border"
width="87px"
>
Details
</button>
</td>
</tr>
<tr>
<td
style="vertical-align: inherit;"
@@ -265,6 +265,14 @@ export const events = [
uid: '26f12a67-d593-40df-b3d3-965faee60143',
user: 'unimplemented',
},
{
code: 'T8002I',
event: 'github.updated',
name: 'new_github_connector',
time: '2020-06-05T19:28:28Z',
uid: '26f12a67-d593-40df-b3d3-965faee60143',
user: 'unimplemented',
},
{
code: 'T8100I',
event: 'oidc.created',
@@ -273,6 +281,46 @@ export const events = [
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T8101I',
event: 'oidc.deleted',
name: 'new_oidc_connector',
time: '2020-06-05T19:29:14Z',
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T8102I',
event: 'oidc.updated',
name: 'new_oidc_connector',
time: '2020-06-05T19:29:14Z',
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T8200I',
event: 'saml.created',
name: 'new_saml_connector',
time: '2020-06-05T19:29:14Z',
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T8201I',
event: 'saml.deleted',
name: 'new_saml_connector',
time: '2020-06-05T19:29:14Z',
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T8202I',
event: 'saml.updated',
name: 'new_saml_connector',
time: '2020-06-05T19:29:14Z',
uid: '6208b4b9-0077-41aa-967a-f173b6bcc0d3',
user: 'unimplemented',
},
{
code: 'T1002I',
connector: 'local',
@@ -3283,5 +3331,39 @@ export const eventsSample = [
data: '{"some": "json"}',
time: '2019-04-22T19:39:26.676Z',
},
{
cluster_name: 'dev',
code: 'T9000I',
ei: 0,
event: 'role.created',
expires: '0001-01-01T00:00:00Z',
name: 'editor',
time: '2023-10-26T16:08:43.426Z',
uid: '897e4a84-df4f-4eee-b10e-7d080c128b77',
user: 'system',
},
{
cluster_name: 'dev',
code: 'T9002I',
ei: 0,
event: 'role.updated',
expires: '0001-01-01T00:00:00Z',
name: 'editor',
time: '2023-10-26T22:09:23.29Z',
uid: '715e10a6-23df-4a92-ba44-b51cb6e9650c',
user: 'larry',
},
{
cluster_name: 'dev',
code: 'T9001I',
ei: 0,
event: 'role.deleted',
expires: '0001-01-01T00:00:00Z',
name: 'editor',
time: '2023-10-26T22:10:50.076Z',
uid: '0cb8a020-46ee-4938-833a-69bc03a7a831',
user: 'moe',
},
// Do not add new events to this array, add it to `events` list.
].map(makeEvent);
@@ -185,7 +185,7 @@ export const formatters: Formatters = {
type: 'github.created',
desc: 'GITHUB Auth Connector Created',
format: ({ user, name }) =>
`User [${user}] created GitHub connector [${name}] has been created`,
`User [${user}] created GitHub connector [${name}]`,
},
[eventCodes.GITHUB_CONNECTOR_DELETED]: {
type: 'github.deleted',
@@ -193,6 +193,12 @@ export const formatters: Formatters = {
format: ({ user, name }) =>
`User [${user}] deleted GitHub connector [${name}]`,
},
[eventCodes.GITHUB_CONNECTOR_UPDATED]: {
type: 'github.updated',
desc: 'GITHUB Auth Connector Updated',
format: ({ user, name }) =>
`User [${user}] updated GitHub connector [${name}]`,
},
[eventCodes.OIDC_CONNECTOR_CREATED]: {
type: 'oidc.created',
desc: 'OIDC Auth Connector Created',
@@ -205,6 +211,12 @@ export const formatters: Formatters = {
format: ({ user, name }) =>
`User [${user}] deleted OIDC connector [${name}]`,
},
[eventCodes.OIDC_CONNECTOR_UPDATED]: {
type: 'oidc.updated',
desc: 'OIDC Auth Connector Updated',
format: ({ user, name }) =>
`User [${user}] updated OIDC connector [${name}]`,
},
[eventCodes.PORTFORWARD]: {
type: 'port',
desc: 'Port Forwarding Started',
@@ -228,6 +240,12 @@ export const formatters: Formatters = {
format: ({ user, name }) =>
`User [${user}] deleted SAML connector [${name}]`,
},
[eventCodes.SAML_CONNECTOR_UPDATED]: {
type: 'saml.updated',
desc: 'SAML Connector Updated',
format: ({ user, name }) =>
`User [${user}] updated SAML connector [${name}]`,
},
[eventCodes.SCP_DOWNLOAD]: {
type: 'scp',
desc: 'SCP Download',
@@ -731,6 +749,11 @@ export const formatters: Formatters = {
desc: 'User Role Deleted',
format: ({ user, name }) => `User [${user}] deleted a role [${name}]`,
},
[eventCodes.ROLE_UPDATED]: {
type: 'role.updated',
desc: 'User Role Updated',
format: ({ user, name }) => `User [${user}] updated a role [${name}]`,
},
[eventCodes.TRUSTED_CLUSTER_TOKEN_CREATED]: {
type: 'trusted_cluster_token.create',
desc: 'Trusted Cluster Token Created',
@@ -120,6 +120,7 @@ export const eventCodes = {
EXEC: 'T3002I',
GITHUB_CONNECTOR_CREATED: 'T8000I',
GITHUB_CONNECTOR_DELETED: 'T8001I',
GITHUB_CONNECTOR_UPDATED: 'T8002I',
KUBE_REQUEST: 'T3009I',
KUBE_CREATED: 'T3010I',
KUBE_UPDATED: 'T3011I',
@@ -130,6 +131,7 @@ export const eventCodes = {
MFA_DEVICE_DELETE: 'T1007I',
OIDC_CONNECTOR_CREATED: 'T8100I',
OIDC_CONNECTOR_DELETED: 'T8101I',
OIDC_CONNECTOR_UPDATED: 'T8102I',
PORTFORWARD_FAILURE: 'T3003E',
PORTFORWARD: 'T3003I',
RECOVERY_TOKEN_CREATED: 'T6001I',
@@ -140,8 +142,10 @@ export const eventCodes = {
RESET_PASSWORD_TOKEN_CREATED: 'T6000I',
ROLE_CREATED: 'T9000I',
ROLE_DELETED: 'T9001I',
ROLE_UPDATED: 'T9002I',
SAML_CONNECTOR_CREATED: 'T8200I',
SAML_CONNECTOR_DELETED: 'T8201I',
SAML_CONNECTOR_UPDATED: 'T8202I',
SCP_DOWNLOAD_FAILURE: 'T3004E',
SCP_DOWNLOAD: 'T3004I',
SCP_UPLOAD_FAILURE: 'T3005E',
@@ -337,12 +341,18 @@ export type RawEvents = {
[eventCodes.GITHUB_CONNECTOR_DELETED]: RawEventConnector<
typeof eventCodes.GITHUB_CONNECTOR_DELETED
>;
[eventCodes.GITHUB_CONNECTOR_UPDATED]: RawEventConnector<
typeof eventCodes.GITHUB_CONNECTOR_UPDATED
>;
[eventCodes.OIDC_CONNECTOR_CREATED]: RawEventConnector<
typeof eventCodes.OIDC_CONNECTOR_CREATED
>;
[eventCodes.OIDC_CONNECTOR_DELETED]: RawEventConnector<
typeof eventCodes.OIDC_CONNECTOR_DELETED
>;
[eventCodes.OIDC_CONNECTOR_UPDATED]: RawEventConnector<
typeof eventCodes.OIDC_CONNECTOR_UPDATED
>;
[eventCodes.PORTFORWARD]: RawEvent<typeof eventCodes.PORTFORWARD>;
[eventCodes.PORTFORWARD_FAILURE]: RawEvent<
typeof eventCodes.PORTFORWARD_FAILURE,
@@ -356,6 +366,9 @@ export type RawEvents = {
[eventCodes.SAML_CONNECTOR_DELETED]: RawEventConnector<
typeof eventCodes.SAML_CONNECTOR_DELETED
>;
[eventCodes.SAML_CONNECTOR_UPDATED]: RawEventConnector<
typeof eventCodes.SAML_CONNECTOR_UPDATED
>;
[eventCodes.SCP_DOWNLOAD]: RawEvent<
typeof eventCodes.SCP_DOWNLOAD,
{
@@ -617,6 +630,7 @@ export type RawEvents = {
>;
[eventCodes.ROLE_CREATED]: RawEvent<typeof eventCodes.ROLE_CREATED, HasName>;
[eventCodes.ROLE_DELETED]: RawEvent<typeof eventCodes.ROLE_DELETED, HasName>;
[eventCodes.ROLE_UPDATED]: RawEvent<typeof eventCodes.ROLE_UPDATED, HasName>;
[eventCodes.TRUSTED_CLUSTER_TOKEN_CREATED]: RawEvent<
typeof eventCodes.TRUSTED_CLUSTER_TOKEN_CREATED
>;