From 898ebe058c3c0233b7f8359eb244a321fba576f1 Mon Sep 17 00:00:00 2001 From: Paul Wells Date: Tue, 16 Dec 2025 23:02:45 -0800 Subject: [PATCH] clean up manual roomservice log redaction (#4165) * clean up manual roomservice log redaction * deps --- go.mod | 2 +- go.sum | 4 +- pkg/service/roomservice.go | 95 ++------------------------------------ 3 files changed, 7 insertions(+), 94 deletions(-) diff --git a/go.mod b/go.mod index 76371b486..8234cec2a 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jxskiss/base62 v1.1.0 github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 github.com/livekit/mediatransportutil v0.0.0-20251213100503-cc390ae365e9 - github.com/livekit/protocol v1.43.5-0.20251208162321-aa4dc2f24b2a + github.com/livekit/protocol v1.43.5-0.20251217065316-2f88c4e7a5b8 github.com/livekit/psrpc v0.7.1 github.com/mackerelio/go-osstat v0.2.6 github.com/magefile/mage v1.15.0 diff --git a/go.sum b/go.sum index 227dcdbed..08524717a 100644 --- a/go.sum +++ b/go.sum @@ -173,8 +173,8 @@ github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 h1:9x+U2HGLrSw5AT github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731/go.mod h1:Rs3MhFwutWhGwmY1VQsygw28z5bWcnEYmS1OG9OxjOQ= github.com/livekit/mediatransportutil v0.0.0-20251213100503-cc390ae365e9 h1:ciqzzn+oEex3mCa1n1GmlQrv+ZkGpgUbQPSG3PD0htM= github.com/livekit/mediatransportutil v0.0.0-20251213100503-cc390ae365e9/go.mod h1:mSNtYzSf6iY9xM3UX42VEI+STHvMgHmrYzEHPcdhB8A= -github.com/livekit/protocol v1.43.5-0.20251208162321-aa4dc2f24b2a h1:juIQhMi8GNCLI+26BWZJirytNjCHFh+7XDWsajG4spM= -github.com/livekit/protocol v1.43.5-0.20251208162321-aa4dc2f24b2a/go.mod h1:n00Ul4P6o2YILGhxw+O57B0h/bF3Je9PzRN36fElCmw= +github.com/livekit/protocol v1.43.5-0.20251217065316-2f88c4e7a5b8 h1:sZRqTrPQg4zifFLfKgmKp/jTBGCCLNsBL8jcm0Wt+zA= +github.com/livekit/protocol v1.43.5-0.20251217065316-2f88c4e7a5b8/go.mod h1:n00Ul4P6o2YILGhxw+O57B0h/bF3Je9PzRN36fElCmw= github.com/livekit/psrpc v0.7.1 h1:ms37az0QTD3UXIWuUC5D/SkmKOlRMVRsI261eBWu/Vw= github.com/livekit/psrpc v0.7.1/go.mod h1:bZ4iHFQptTkbPnB0LasvRNu/OBYXEu1NA6O5BMFo9kk= github.com/mackerelio/go-osstat v0.2.6 h1:gs4U8BZeS1tjrL08tt5VUliVvSWP26Ai2Ob8Lr7f2i0= diff --git a/pkg/service/roomservice.go b/pkg/service/roomservice.go index 20ea0efe7..4e93cb735 100644 --- a/pkg/service/roomservice.go +++ b/pkg/service/roomservice.go @@ -24,11 +24,9 @@ import ( "github.com/livekit/livekit-server/pkg/config" "github.com/livekit/livekit-server/pkg/routing" "github.com/livekit/livekit-server/pkg/rtc" - "github.com/livekit/protocol/egress" "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/logger" "github.com/livekit/protocol/rpc" - "github.com/livekit/protocol/utils" ) type RoomService struct { @@ -72,8 +70,7 @@ func NewRoomService( } func (s *RoomService) CreateRoom(ctx context.Context, req *livekit.CreateRoomRequest) (*livekit.Room, error) { - redactedReq := redactCreateRoomRequest(req) - RecordRequest(ctx, redactedReq) + RecordRequest(ctx, req) AppendLogFields(ctx, "room", req.Name, "request", logger.Proto(req)) if err := EnsureCreatePermission(ctx); err != nil { @@ -223,7 +220,7 @@ func (s *RoomService) MutePublishedTrack(ctx context.Context, req *livekit.MuteR } func (s *RoomService) UpdateParticipant(ctx context.Context, req *livekit.UpdateParticipantRequest) (*livekit.ParticipantInfo, error) { - RecordRequest(ctx, redactUpdateParticipantRequest(req)) + RecordRequest(ctx, req) AppendLogFields(ctx, "room", req.Room, "participant", req.Identity) @@ -276,7 +273,7 @@ func (s *RoomService) UpdateSubscriptions(ctx context.Context, req *livekit.Upda } func (s *RoomService) SendData(ctx context.Context, req *livekit.SendDataRequest) (*livekit.SendDataResponse, error) { - RecordRequest(ctx, redactSendDataRequest(req)) + RecordRequest(ctx, req) roomName := livekit.RoomName(req.Room) AppendLogFields(ctx, "room", roomName, "size", len(req.Data)) @@ -295,7 +292,7 @@ func (s *RoomService) SendData(ctx context.Context, req *livekit.SendDataRequest } func (s *RoomService) UpdateRoomMetadata(ctx context.Context, req *livekit.UpdateRoomMetadataRequest) (*livekit.Room, error) { - RecordRequest(ctx, redactUpdateRoomMetadataRequest(req)) + RecordRequest(ctx, req) AppendLogFields(ctx, "room", req.Room, "size", len(req.Metadata)) maxMetadataSize := int(s.limitConf.MaxMetadataSize) @@ -374,87 +371,3 @@ func (s *RoomService) PerformRpc(ctx context.Context, req *livekit.PerformRpcReq RecordResponse(ctx, res) return res, err } - -func redactCreateRoomRequest(req *livekit.CreateRoomRequest) *livekit.CreateRoomRequest { - if req.Egress == nil && req.Metadata == "" { - // nothing to redact - return req - } - - clone := utils.CloneProto(req) - - if clone.Egress != nil { - if clone.Egress.Room != nil { - egress.RedactEncodedOutputs(clone.Egress.Room) - } - if clone.Egress.Participant != nil { - egress.RedactAutoEncodedOutput(clone.Egress.Participant) - } - if clone.Egress.Tracks != nil { - egress.RedactUpload(clone.Egress.Tracks) - } - } - - // replace with size of metadata to provide visibility on request size - if clone.Metadata != "" { - clone.Metadata = fmt.Sprintf("__size: %d", len(clone.Metadata)) - } - - return clone -} - -func redactUpdateParticipantRequest(req *livekit.UpdateParticipantRequest) *livekit.UpdateParticipantRequest { - if req.Metadata == "" && len(req.Attributes) == 0 { - return req - } - - clone := utils.CloneProto(req) - - // replace with size of metadata/attributes to provide visibility on request size - if clone.Metadata != "" { - clone.Metadata = fmt.Sprintf("__size: %d", len(clone.Metadata)) - } - - if len(clone.Attributes) != 0 { - keysSize := 0 - valuesSize := 0 - for k, v := range clone.Attributes { - keysSize += len(k) - valuesSize += len(v) - } - - clone.Attributes = map[string]string{ - "__num_elements": fmt.Sprintf("%d", len(clone.Attributes)), - "__keys_size": fmt.Sprintf("%d", keysSize), - "__values_size": fmt.Sprintf("%d", valuesSize), - } - } - - return clone -} - -func redactSendDataRequest(req *livekit.SendDataRequest) *livekit.SendDataRequest { - if len(req.Data) == 0 { - return req - } - - clone := utils.CloneProto(req) - - // replace with size of data to provide visibility on request size - clone.Data = fmt.Appendf(nil, "__size: %d", len(clone.Data)) - - return clone -} - -func redactUpdateRoomMetadataRequest(req *livekit.UpdateRoomMetadataRequest) *livekit.UpdateRoomMetadataRequest { - if req.Metadata == "" { - return req - } - - clone := utils.CloneProto(req) - - // replace with size of metadata to provide visibility on request size - clone.Metadata = fmt.Sprintf("__size: %d", len(clone.Metadata)) - - return clone -}