Events: Add outbound detail protobufs, request status code, and update event encrypt filter. (#1569)
* feat (events): Add status code to audit events * feat (events): Add the resp proto msg to every audit event * chore (events): Update eventlogger dep This latest version will redact any map and/or map field which isn't explicitly classified via a Taggable interface * feat (events): Begin to add tagging to response proto msgs
This commit is contained in:
23 files changed
+914
-129
No files matched your search
@@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
pbs "github.com/hashicorp/boundary/internal/gen/controller/api/services"
|
||||
"github.com/hashicorp/boundary/internal/observability/event"
|
||||
authtokenpb "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authtokens"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
@@ -20,13 +21,21 @@ const (
|
||||
statusField = "status"
|
||||
)
|
||||
|
||||
func OutgoingInterceptor(_ context.Context, w http.ResponseWriter, m proto.Message) error {
|
||||
func OutgoingInterceptor(ctx context.Context, w http.ResponseWriter, m proto.Message) error {
|
||||
const op = "handlers.OutgoingInterceptor"
|
||||
m = m.ProtoReflect().Interface()
|
||||
if !m.ProtoReflect().IsValid() {
|
||||
// This would be the case if it's a nil pointer
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
return nil
|
||||
}
|
||||
|
||||
// add the outgoing resp proto. See: common.flushGatedEvents is where the
|
||||
// event.Response.StatusCode is added.
|
||||
if err := event.WriteAudit(ctx, op, event.WithResponse(&event.Response{Details: m})); err != nil {
|
||||
return fmt.Errorf("%s: unable to write audit event: %w", op, err)
|
||||
}
|
||||
|
||||
switch m := m.(type) {
|
||||
case *pbs.AuthenticateResponse:
|
||||
if m.GetAttributes() == nil || m.GetAttributes().GetFields() == nil {
|
||||
|
||||
Reference in new issue
Block a user