mirror of
https://github.com/gravitational/teleport.git
synced 2026-09-24 16:17:11 +08:00
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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2875
-997
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
>;
|
||||
|
||||
Reference in New Issue
Block a user