Documentation
¶
Index ¶
- Variables
- type APIKeyTokenVerifier
- type AccessToken
- func (t *AccessToken) AddGrant(grant *VideoGrant) *AccessTokendeprecated
- func (t *AccessToken) AddSIPGrant(grant *SIPGrant) *AccessTokendeprecated
- func (t *AccessToken) GetGrants() *ClaimGrants
- func (t *AccessToken) SetAgentGrant(grant *AgentGrant) *AccessToken
- func (t *AccessToken) SetAgents(agents ...*livekit.RoomAgentDispatch) *AccessToken
- func (t *AccessToken) SetAttributes(attrs map[string]string) *AccessToken
- func (t *AccessToken) SetIdentity(identity string) *AccessToken
- func (t *AccessToken) SetInferenceGrant(grant *InferenceGrant) *AccessToken
- func (t *AccessToken) SetKind(kind livekit.ParticipantInfo_Kind) *AccessToken
- func (t *AccessToken) SetMetadata(md string) *AccessToken
- func (t *AccessToken) SetName(name string) *AccessToken
- func (t *AccessToken) SetRoomConfig(config *livekit.RoomConfiguration) *AccessToken
- func (t *AccessToken) SetRoomPreset(preset string) *AccessToken
- func (t *AccessToken) SetSIPGrant(grant *SIPGrant) *AccessToken
- func (t *AccessToken) SetSha256(sha string) *AccessToken
- func (t *AccessToken) SetValidFor(duration time.Duration) *AccessToken
- func (t *AccessToken) SetVideoGrant(grant *VideoGrant) *AccessToken
- func (t *AccessToken) ToJWT() (string, error)
- type AgentGrant
- type ClaimGrants
- func (c *ClaimGrants) Clone() *ClaimGrants
- func (c *ClaimGrants) GetParticipantKind() livekit.ParticipantInfo_Kind
- func (c *ClaimGrants) GetRoomConfiguration() *livekit.RoomConfiguration
- func (c *ClaimGrants) MarshalLogObject(e zapcore.ObjectEncoder) error
- func (c *ClaimGrants) SetParticipantKind(kind livekit.ParticipantInfo_Kind)
- type FileBasedKeyProvider
- type InferenceGrant
- type KeyProvider
- type RoomConfiguration
- type SIPGrant
- type SimpleKeyProvider
- type TokenVerifier
- type VideoGrant
- func (v *VideoGrant) Clone() *VideoGrant
- func (v *VideoGrant) GetCanPublish() bool
- func (v *VideoGrant) GetCanPublishData() bool
- func (v *VideoGrant) GetCanPublishSource(source livekit.TrackSource) bool
- func (v *VideoGrant) GetCanPublishSources() []livekit.TrackSource
- func (v *VideoGrant) GetCanSubscribe() bool
- func (v *VideoGrant) GetCanSubscribeMetrics() bool
- func (v *VideoGrant) GetCanUpdateOwnMetadata() bool
- func (v *VideoGrant) MarshalLogObject(e zapcore.ObjectEncoder) error
- func (v *VideoGrant) MatchesPermission(permission *livekit.ParticipantPermission) bool
- func (v *VideoGrant) SetCanPublish(val bool)
- func (v *VideoGrant) SetCanPublishData(val bool)
- func (v *VideoGrant) SetCanPublishSources(sources []livekit.TrackSource)
- func (v *VideoGrant) SetCanSubscribe(val bool)
- func (v *VideoGrant) SetCanSubscribeMetrics(val bool)
- func (v *VideoGrant) SetCanUpdateOwnMetadata(val bool)
- func (v *VideoGrant) ToPermission() *livekit.ParticipantPermission
- func (v *VideoGrant) UpdateFromPermission(permission *livekit.ParticipantPermission)
Constants ¶
This section is empty.
Variables ¶
var (
ErrKeysMissing = errors.New("missing API key or secret key")
)
var ErrSensitiveCredentials = errors.New("room configuration should not contain sensitive credentials")
Functions ¶
This section is empty.
Types ¶
type APIKeyTokenVerifier ¶
type APIKeyTokenVerifier struct {
// contains filtered or unexported fields
}
func ParseAPIToken ¶
func ParseAPIToken(raw string) (*APIKeyTokenVerifier, error)
ParseAPIToken parses an encoded JWT token and
func (*APIKeyTokenVerifier) APIKey ¶
func (v *APIKeyTokenVerifier) APIKey() string
APIKey returns the API key this token was signed with
func (*APIKeyTokenVerifier) Identity ¶
func (v *APIKeyTokenVerifier) Identity() string
func (*APIKeyTokenVerifier) Verify ¶
func (v *APIKeyTokenVerifier) Verify(key interface{}) (*ClaimGrants, error)
type AccessToken ¶
type AccessToken struct {
// contains filtered or unexported fields
}
AccessToken produces token signed with API key and secret
func NewAccessToken ¶
func NewAccessToken(key string, secret string) *AccessToken
func (*AccessToken) AddGrant
deprecated
func (t *AccessToken) AddGrant(grant *VideoGrant) *AccessToken
Deprecated: use SetVideoGrant instead
func (*AccessToken) AddSIPGrant
deprecated
added in
v1.19.0
func (t *AccessToken) AddSIPGrant(grant *SIPGrant) *AccessToken
Deprecated: use SetSIPGrant instead
func (*AccessToken) GetGrants ¶ added in v1.27.0
func (t *AccessToken) GetGrants() *ClaimGrants
func (*AccessToken) SetAgentGrant ¶ added in v1.36.0
func (t *AccessToken) SetAgentGrant(grant *AgentGrant) *AccessToken
func (*AccessToken) SetAgents ¶ added in v1.27.0
func (t *AccessToken) SetAgents(agents ...*livekit.RoomAgentDispatch) *AccessToken
SetAgents is a shortcut for setting agents in room configuration
func (*AccessToken) SetAttributes ¶ added in v1.18.0
func (t *AccessToken) SetAttributes(attrs map[string]string) *AccessToken
func (*AccessToken) SetIdentity ¶
func (t *AccessToken) SetIdentity(identity string) *AccessToken
func (*AccessToken) SetInferenceGrant ¶ added in v1.40.0
func (t *AccessToken) SetInferenceGrant(grant *InferenceGrant) *AccessToken
func (*AccessToken) SetKind ¶ added in v1.9.4
func (t *AccessToken) SetKind(kind livekit.ParticipantInfo_Kind) *AccessToken
func (*AccessToken) SetMetadata ¶
func (t *AccessToken) SetMetadata(md string) *AccessToken
func (*AccessToken) SetName ¶ added in v0.11.5
func (t *AccessToken) SetName(name string) *AccessToken
func (*AccessToken) SetRoomConfig ¶ added in v1.27.0
func (t *AccessToken) SetRoomConfig(config *livekit.RoomConfiguration) *AccessToken
func (*AccessToken) SetRoomPreset ¶ added in v1.27.0
func (t *AccessToken) SetRoomPreset(preset string) *AccessToken
func (*AccessToken) SetSIPGrant ¶ added in v1.27.0
func (t *AccessToken) SetSIPGrant(grant *SIPGrant) *AccessToken
func (*AccessToken) SetSha256 ¶ added in v0.7.2
func (t *AccessToken) SetSha256(sha string) *AccessToken
func (*AccessToken) SetValidFor ¶
func (t *AccessToken) SetValidFor(duration time.Duration) *AccessToken
func (*AccessToken) SetVideoGrant ¶ added in v1.27.0
func (t *AccessToken) SetVideoGrant(grant *VideoGrant) *AccessToken
func (*AccessToken) ToJWT ¶
func (t *AccessToken) ToJWT() (string, error)
type AgentGrant ¶ added in v1.36.0
type AgentGrant struct { // Admin grants to create/update/delete Cloud Agents. Admin bool `json:"admin,omitempty"` }
func (*AgentGrant) Clone ¶ added in v1.36.0
func (s *AgentGrant) Clone() *AgentGrant
func (*AgentGrant) MarshalLogObject ¶ added in v1.36.0
func (s *AgentGrant) MarshalLogObject(e zapcore.ObjectEncoder) error
type ClaimGrants ¶
type ClaimGrants struct { Identity string `json:"identity,omitempty"` Name string `json:"name,omitempty"` Kind string `json:"kind,omitempty"` Video *VideoGrant `json:"video,omitempty"` SIP *SIPGrant `json:"sip,omitempty"` Agent *AgentGrant `json:"agent,omitempty"` Inference *InferenceGrant `json:"inference,omitempty"` // Room configuration to use if this participant initiates the room RoomConfig *RoomConfiguration `json:"roomConfig,omitempty"` // Cloud-only, config preset to use // when both room and roomPreset are set, parameters in room overrides the preset RoomPreset string `json:"roomPreset,omitempty"` // for verifying integrity of the message body Sha256 string `json:"sha256,omitempty"` Metadata string `json:"metadata,omitempty"` // Key/value attributes to attach to the participant Attributes map[string]string `json:"attributes,omitempty"` }
func (*ClaimGrants) Clone ¶ added in v0.13.3
func (c *ClaimGrants) Clone() *ClaimGrants
func (*ClaimGrants) GetParticipantKind ¶ added in v1.9.4
func (c *ClaimGrants) GetParticipantKind() livekit.ParticipantInfo_Kind
func (*ClaimGrants) GetRoomConfiguration ¶ added in v1.27.0
func (c *ClaimGrants) GetRoomConfiguration() *livekit.RoomConfiguration
func (*ClaimGrants) MarshalLogObject ¶ added in v1.30.0
func (c *ClaimGrants) MarshalLogObject(e zapcore.ObjectEncoder) error
func (*ClaimGrants) SetParticipantKind ¶ added in v1.9.4
func (c *ClaimGrants) SetParticipantKind(kind livekit.ParticipantInfo_Kind)
type FileBasedKeyProvider ¶
type FileBasedKeyProvider struct {
// contains filtered or unexported fields
}
func NewFileBasedKeyProviderFromMap ¶
func NewFileBasedKeyProviderFromMap(keys map[string]string) *FileBasedKeyProvider
func NewFileBasedKeyProviderFromReader ¶
func NewFileBasedKeyProviderFromReader(r io.Reader) (p *FileBasedKeyProvider, err error)
func (*FileBasedKeyProvider) GetSecret ¶
func (p *FileBasedKeyProvider) GetSecret(key string) string
func (*FileBasedKeyProvider) NumKeys ¶
func (p *FileBasedKeyProvider) NumKeys() int
type InferenceGrant ¶ added in v1.40.0
type InferenceGrant struct { // Admin grants to all inference features (LLM, STT, TTS) Perform bool `json:"perform,omitempty"` }
func (*InferenceGrant) Clone ¶ added in v1.40.0
func (s *InferenceGrant) Clone() *InferenceGrant
func (*InferenceGrant) MarshalLogObject ¶ added in v1.40.0
func (s *InferenceGrant) MarshalLogObject(e zapcore.ObjectEncoder) error
type KeyProvider ¶
type RoomConfiguration ¶ added in v1.27.0
type RoomConfiguration livekit.RoomConfiguration
func (*RoomConfiguration) CheckCredentials ¶ added in v1.39.1
func (c *RoomConfiguration) CheckCredentials() error
CheckCredentials checks if the room configuration contains sensitive credentials and returns an error if it does.
This is used to prevent sensitive credentials from being leaked to the client. It is not used to validate the credentials themselves, as that is done by the egress service.
func (*RoomConfiguration) Clone ¶ added in v1.27.0
func (c *RoomConfiguration) Clone() *RoomConfiguration
func (*RoomConfiguration) MarshalJSON ¶ added in v1.27.0
func (c *RoomConfiguration) MarshalJSON() ([]byte, error)
func (*RoomConfiguration) UnmarshalJSON ¶ added in v1.27.0
func (c *RoomConfiguration) UnmarshalJSON(data []byte) error
type SIPGrant ¶ added in v1.19.0
type SIPGrant struct { // Admin grants access to all SIP features. Admin bool `json:"admin,omitempty"` // Call allows making outbound SIP calls. Call bool `json:"call,omitempty"` }
func (*SIPGrant) MarshalLogObject ¶ added in v1.30.0
func (s *SIPGrant) MarshalLogObject(e zapcore.ObjectEncoder) error
type SimpleKeyProvider ¶ added in v0.13.0
type SimpleKeyProvider struct {
// contains filtered or unexported fields
}
func NewSimpleKeyProvider ¶ added in v0.13.0
func NewSimpleKeyProvider(apiKey, apiSecret string) *SimpleKeyProvider
func (*SimpleKeyProvider) GetSecret ¶ added in v0.13.0
func (p *SimpleKeyProvider) GetSecret(key string) string
func (*SimpleKeyProvider) NumKeys ¶ added in v0.13.0
func (p *SimpleKeyProvider) NumKeys() int
type TokenVerifier ¶
type TokenVerifier interface { Identity() string Verify(key interface{}) (*ClaimGrants, error) }
type VideoGrant ¶
type VideoGrant struct { // actions on rooms RoomCreate bool `json:"roomCreate,omitempty"` RoomList bool `json:"roomList,omitempty"` RoomRecord bool `json:"roomRecord,omitempty"` // actions on a particular room RoomAdmin bool `json:"roomAdmin,omitempty"` RoomJoin bool `json:"roomJoin,omitempty"` Room string `json:"room,omitempty"` // permissions within a room, if none of the permissions are set explicitly // it will be granted with all publish and subscribe permissions CanPublish *bool `json:"canPublish,omitempty"` CanSubscribe *bool `json:"canSubscribe,omitempty"` CanPublishData *bool `json:"canPublishData,omitempty"` // TrackSource types that a participant may publish. // When set, it supersedes CanPublish. Only sources explicitly set here can be published CanPublishSources []string `json:"canPublishSources,omitempty"` // keys keep track of each source // by default, a participant is not allowed to update its own metadata CanUpdateOwnMetadata *bool `json:"canUpdateOwnMetadata,omitempty"` // actions on ingresses IngressAdmin bool `json:"ingressAdmin,omitempty"` // applies to all ingress // participant is not visible to other participants Hidden bool `json:"hidden,omitempty"` // indicates to the room that current participant is a recorder Recorder bool `json:"recorder,omitempty"` // indicates that the holder can register as an Agent framework worker Agent bool `json:"agent,omitempty"` // if a participant can subscribe to metrics CanSubscribeMetrics *bool `json:"canSubscribeMetrics,omitempty"` // destination room which this participant can forward to DestinationRoom string `json:"destinationRoom,omitempty"` }
func (*VideoGrant) Clone ¶ added in v0.13.3
func (v *VideoGrant) Clone() *VideoGrant
func (*VideoGrant) GetCanPublish ¶ added in v0.12.0
func (v *VideoGrant) GetCanPublish() bool
func (*VideoGrant) GetCanPublishData ¶ added in v0.12.0
func (v *VideoGrant) GetCanPublishData() bool
func (*VideoGrant) GetCanPublishSource ¶ added in v1.4.0
func (v *VideoGrant) GetCanPublishSource(source livekit.TrackSource) bool
func (*VideoGrant) GetCanPublishSources ¶ added in v1.5.2
func (v *VideoGrant) GetCanPublishSources() []livekit.TrackSource
func (*VideoGrant) GetCanSubscribe ¶ added in v0.12.0
func (v *VideoGrant) GetCanSubscribe() bool
func (*VideoGrant) GetCanSubscribeMetrics ¶ added in v1.20.1
func (v *VideoGrant) GetCanSubscribeMetrics() bool
func (*VideoGrant) GetCanUpdateOwnMetadata ¶ added in v1.4.0
func (v *VideoGrant) GetCanUpdateOwnMetadata() bool
func (*VideoGrant) MarshalLogObject ¶ added in v1.30.0
func (v *VideoGrant) MarshalLogObject(e zapcore.ObjectEncoder) error
func (*VideoGrant) MatchesPermission ¶ added in v1.5.2
func (v *VideoGrant) MatchesPermission(permission *livekit.ParticipantPermission) bool
func (*VideoGrant) SetCanPublish ¶ added in v0.7.3
func (v *VideoGrant) SetCanPublish(val bool)
func (*VideoGrant) SetCanPublishData ¶ added in v0.7.3
func (v *VideoGrant) SetCanPublishData(val bool)
func (*VideoGrant) SetCanPublishSources ¶ added in v1.4.0
func (v *VideoGrant) SetCanPublishSources(sources []livekit.TrackSource)
func (*VideoGrant) SetCanSubscribe ¶ added in v0.7.3
func (v *VideoGrant) SetCanSubscribe(val bool)
func (*VideoGrant) SetCanSubscribeMetrics ¶ added in v1.20.1
func (v *VideoGrant) SetCanSubscribeMetrics(val bool)
func (*VideoGrant) SetCanUpdateOwnMetadata ¶ added in v1.4.0
func (v *VideoGrant) SetCanUpdateOwnMetadata(val bool)
func (*VideoGrant) ToPermission ¶ added in v0.12.0
func (v *VideoGrant) ToPermission() *livekit.ParticipantPermission
func (*VideoGrant) UpdateFromPermission ¶ added in v1.5.2
func (v *VideoGrant) UpdateFromPermission(permission *livekit.ParticipantPermission)