@@ -257,6 +257,8 @@ func (b *databaseBackend) pathRoleDelete(ctx context.Context, req *logical.Reque
257257 return nil , err
258258 }
259259 b .dbEvent (ctx , "role-delete" , req .Path , name , true )
260+ recordDatabaseObservation (ctx , b , req , "" , ObservationTypeDatabaseRoleDelete ,
261+ AdditionalDatabaseMetadata {key : "role_name" , value : name })
260262 return nil , nil
261263}
262264
@@ -298,11 +300,14 @@ func (b *databaseBackend) pathStaticRoleDelete(ctx context.Context, req *logical
298300 }
299301
300302 b .dbEvent (ctx , "static-role-delete" , req .Path , name , true )
303+ recordDatabaseObservation (ctx , b , req , "" , ObservationTypeDatabaseStaticRoleDelete ,
304+ AdditionalDatabaseMetadata {key : "role_name" , value : name })
301305 return nil , merr .ErrorOrNil ()
302306}
303307
304308func (b * databaseBackend ) pathStaticRoleRead (ctx context.Context , req * logical.Request , d * framework.FieldData ) (* logical.Response , error ) {
305- role , err := b .StaticRole (ctx , req .Storage , d .Get ("name" ).(string ))
309+ roleName := d .Get ("name" ).(string )
310+ role , err := b .StaticRole (ctx , req .Storage , roleName )
306311 if err != nil {
307312 return nil , err
308313 }
@@ -344,13 +349,17 @@ func (b *databaseBackend) pathStaticRoleRead(ctx context.Context, req *logical.R
344349 data ["rotation_statements" ] = []string {}
345350 }
346351
352+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseStaticRoleRead ,
353+ AdditionalDatabaseMetadata {key : "role_name" , value : roleName })
354+
347355 return & logical.Response {
348356 Data : data ,
349357 }, nil
350358}
351359
352360func (b * databaseBackend ) pathRoleRead (ctx context.Context , req * logical.Request , d * framework.FieldData ) (* logical.Response , error ) {
353- role , err := b .Role (ctx , req .Storage , d .Get ("name" ).(string ))
361+ roleName := d .Get ("name" ).(string )
362+ role , err := b .Role (ctx , req .Storage , roleName )
354363 if err != nil {
355364 return nil , err
356365 }
@@ -384,6 +393,9 @@ func (b *databaseBackend) pathRoleRead(ctx context.Context, req *logical.Request
384393 data ["renew_statements" ] = []string {}
385394 }
386395
396+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseRoleRead ,
397+ AdditionalDatabaseMetadata {key : "role_name" , value : roleName })
398+
387399 return & logical.Response {
388400 Data : data ,
389401 }, nil
@@ -427,6 +439,7 @@ func (b *databaseBackend) pathRoleCreateUpdate(ctx context.Context, req *logical
427439 createOperation := (req .Operation == logical .CreateOperation )
428440
429441 // DB Attributes
442+ var credentialType string
430443 {
431444 if dbNameRaw , ok := data .GetOk ("db_name" ); ok {
432445 role .DBName = dbNameRaw .(string )
@@ -438,7 +451,7 @@ func (b *databaseBackend) pathRoleCreateUpdate(ctx context.Context, req *logical
438451 }
439452
440453 if credentialTypeRaw , ok := data .GetOk ("credential_type" ); ok {
441- credentialType : = credentialTypeRaw .(string )
454+ credentialType = credentialTypeRaw .(string )
442455 if err := role .setCredentialType (credentialType ); err != nil {
443456 return logical .ErrorResponse (err .Error ()), nil
444457 }
@@ -515,6 +528,21 @@ func (b *databaseBackend) pathRoleCreateUpdate(ctx context.Context, req *logical
515528 }
516529
517530 b .dbEvent (ctx , fmt .Sprintf ("role-%s" , req .Operation ), req .Path , name , true )
531+
532+ if createOperation {
533+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseRoleCreate ,
534+ AdditionalDatabaseMetadata {key : "role_name" , value : name },
535+ AdditionalDatabaseMetadata {key : "credential_type" , value : credentialType },
536+ AdditionalDatabaseMetadata {key : "default_ttl" , value : role .DefaultTTL },
537+ AdditionalDatabaseMetadata {key : "max_ttl" , value : role .MaxTTL })
538+ } else {
539+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseRoleUpdate ,
540+ AdditionalDatabaseMetadata {key : "role_name" , value : name },
541+ AdditionalDatabaseMetadata {key : "credential_type" , value : credentialType },
542+ AdditionalDatabaseMetadata {key : "default_ttl" , value : role .DefaultTTL },
543+ AdditionalDatabaseMetadata {key : "max_ttl" , value : role .MaxTTL })
544+ }
545+
518546 return nil , nil
519547}
520548
@@ -636,8 +664,9 @@ func (b *databaseBackend) pathStaticRoleCreateUpdate(ctx context.Context, req *l
636664 role .Statements .Rotation = data .Get ("rotation_statements" ).([]string )
637665 }
638666
667+ var credentialType string
639668 if credentialTypeRaw , ok := data .GetOk ("credential_type" ); ok {
640- credentialType : = credentialTypeRaw .(string )
669+ credentialType = credentialTypeRaw .(string )
641670 if err := role .setCredentialType (credentialType ); err != nil {
642671 return logical .ErrorResponse (err .Error ()), nil
643672 }
@@ -799,6 +828,20 @@ func (b *databaseBackend) pathStaticRoleCreateUpdate(ctx context.Context, req *l
799828 }
800829 b .dbEvent (ctx , fmt .Sprintf ("static-role-%s" , req .Operation ), req .Path , name , true )
801830
831+ if req .Operation == logical .CreateOperation {
832+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseStaticRoleCreate ,
833+ AdditionalDatabaseMetadata {key : "role_name" , value : name },
834+ AdditionalDatabaseMetadata {key : "credential_type" , value : credentialType },
835+ AdditionalDatabaseMetadata {key : "default_ttl" , value : role .DefaultTTL },
836+ AdditionalDatabaseMetadata {key : "max_ttl" , value : role .MaxTTL })
837+ } else {
838+ recordDatabaseObservation (ctx , b , req , role .DBName , ObservationTypeDatabaseStaticRoleUpdate ,
839+ AdditionalDatabaseMetadata {key : "role_name" , value : name },
840+ AdditionalDatabaseMetadata {key : "credential_type" , value : credentialType },
841+ AdditionalDatabaseMetadata {key : "default_ttl" , value : role .DefaultTTL },
842+ AdditionalDatabaseMetadata {key : "max_ttl" , value : role .MaxTTL })
843+ }
844+
802845 if len (response .Warnings ) == 0 {
803846 return nil , nil
804847 }
0 commit comments