Skip to content

Commit 970d4dc

Browse files
Structured logging of grants (#930)
* Structured logging of grants * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c87b1af commit 970d4dc

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

auth/grants.go

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ import (
1818
"maps"
1919
"strings"
2020

21+
"go.uber.org/zap/zapcore"
2122
"golang.org/x/exp/slices"
2223
"google.golang.org/protobuf/encoding/protojson"
2324

2425
"github.com/livekit/protocol/livekit"
26+
"github.com/livekit/protocol/logger"
2527
"github.com/livekit/protocol/utils"
2628
)
2729

@@ -93,6 +95,20 @@ func (c *ClaimGrants) Clone() *ClaimGrants {
9395
return &clone
9496
}
9597

98+
func (c *ClaimGrants) MarshalLogObject(e zapcore.ObjectEncoder) error {
99+
if c == nil {
100+
return nil
101+
}
102+
103+
e.AddString("Identity", c.Identity)
104+
e.AddString("Kind", c.Kind)
105+
e.AddObject("Video", c.Video)
106+
e.AddObject("SIP", c.SIP)
107+
e.AddObject("RoomConfig", logger.Proto((*livekit.RoomConfiguration)(c.RoomConfig)))
108+
e.AddString("RoomPreset", c.RoomPreset)
109+
return nil
110+
}
111+
96112
// -------------------------------------------------------------
97113

98114
type VideoGrant struct {
@@ -323,6 +339,43 @@ func (v *VideoGrant) Clone() *VideoGrant {
323339
return &clone
324340
}
325341

342+
func (v *VideoGrant) MarshalLogObject(e zapcore.ObjectEncoder) error {
343+
if v == nil {
344+
return nil
345+
}
346+
347+
logBoolPtr := func(prop string, val *bool) {
348+
if val == nil {
349+
e.AddString(prop, "not-set")
350+
} else {
351+
e.AddBool(prop, *val)
352+
}
353+
}
354+
355+
logBoolPtr("RoomCreate", &v.RoomCreate)
356+
logBoolPtr("RoomList", &v.RoomList)
357+
logBoolPtr("RoomRecord", &v.RoomRecord)
358+
359+
logBoolPtr("RoomAdmin", &v.RoomAdmin)
360+
logBoolPtr("RoomJoin", &v.RoomJoin)
361+
e.AddString("Room", v.Room)
362+
363+
logBoolPtr("CanPublish", v.CanPublish)
364+
logBoolPtr("CanSubscribe", v.CanSubscribe)
365+
logBoolPtr("CanPublishData", v.CanPublishData)
366+
e.AddArray("CanPublishSources", logger.StringSlice(v.CanPublishSources))
367+
logBoolPtr("CanUpdateOwnMetadata", v.CanUpdateOwnMetadata)
368+
369+
logBoolPtr("IngressAdmin", &v.IngressAdmin)
370+
371+
logBoolPtr("Hidden", &v.Hidden)
372+
logBoolPtr("Recorder", &v.Recorder)
373+
logBoolPtr("Agent", &v.Agent)
374+
375+
logBoolPtr("CanSubscribeMetrics", v.CanSubscribeMetrics)
376+
return nil
377+
}
378+
326379
// ----------------------------------------------------------------
327380

328381
type SIPGrant struct {
@@ -343,6 +396,16 @@ func (s *SIPGrant) Clone() *SIPGrant {
343396
return &clone
344397
}
345398

399+
func (s *SIPGrant) MarshalLogObject(e zapcore.ObjectEncoder) error {
400+
if s == nil {
401+
return nil
402+
}
403+
404+
e.AddBool("Admin", s.Admin)
405+
e.AddBool("Call", s.Call)
406+
return nil
407+
}
408+
346409
// ------------------------------------------------------------------
347410

348411
func sourceToString(source livekit.TrackSource) string {

0 commit comments

Comments
 (0)