* Add grant for canSubscribeMetrics. * Move can subscribe metrics to video grant. * generated protobuf * set CanSubscribeMetrics from permissions * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
33 lines
979 B
Go
33 lines
979 B
Go
package agent
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/livekit/protocol/auth"
|
|
"github.com/livekit/protocol/livekit"
|
|
)
|
|
|
|
func BuildAgentToken(apiKey, secret, roomName, participantIdentity, participantName, participantMetadata string, permissions *livekit.ParticipantPermission) (string, error) {
|
|
grant := &auth.VideoGrant{
|
|
RoomJoin: true,
|
|
Agent: true,
|
|
Room: roomName,
|
|
CanSubscribe: &permissions.CanSubscribe,
|
|
CanPublish: &permissions.CanPublish,
|
|
CanPublishData: &permissions.CanPublishData,
|
|
Hidden: permissions.Hidden,
|
|
CanUpdateOwnMetadata: &permissions.CanUpdateMetadata,
|
|
CanSubscribeMetrics: &permissions.CanSubscribeMetrics,
|
|
}
|
|
|
|
at := auth.NewAccessToken(apiKey, secret).
|
|
AddGrant(grant).
|
|
SetIdentity(participantIdentity).
|
|
SetName(participantName).
|
|
SetKind(livekit.ParticipantInfo_AGENT).
|
|
SetValidFor(1 * time.Hour).
|
|
SetMetadata(participantMetadata)
|
|
|
|
return at.ToJWT()
|
|
}
|