Documentation
¶
Index ¶
- Variables
- type APIKeyTokenVerifier
- type AccessToken
- func (t *AccessToken) AddGrant(grant *VideoGrant) *AccessToken
- func (t *AccessToken) AddSIPGrant(grant *SIPGrant) *AccessToken
- func (t *AccessToken) SetAttributes(attrs map[string]string) *AccessToken
- func (t *AccessToken) SetIdentity(identity string) *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) SetSha256(sha string) *AccessToken
- func (t *AccessToken) SetValidFor(duration time.Duration) *AccessToken
- func (t *AccessToken) ToJWT() (string, error)
- type ClaimGrants
- type FileBasedKeyProvider
- type KeyProvider
- 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) GetCanUpdateOwnMetadata() bool
- 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) SetCanUpdateOwnMetadata(val bool)
- func (v *VideoGrant) ToPermission() *livekit.ParticipantPermission
- func (v *VideoGrant) UpdateFromPermission(permission *livekit.ParticipantPermission)
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrKeysMissing = errors.New("missing API key or secret key")
)
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 ¶
func (t *AccessToken) AddGrant(grant *VideoGrant) *AccessToken
func (*AccessToken) AddSIPGrant ¶ added in v1.19.0
func (t *AccessToken) AddSIPGrant(grant *SIPGrant) *AccessToken
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) 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) 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) ToJWT ¶
func (t *AccessToken) ToJWT() (string, error)
type ClaimGrants ¶
type ClaimGrants struct { Identity string `json:"-"` Name string `json:"name,omitempty"` Kind string `json:"kind,omitempty"` Video *VideoGrant `json:"video,omitempty"` SIP *SIPGrant `json:"sip,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) 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 KeyProvider ¶
type SIPGrant ¶ added in v1.19.0
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 // it is also set on all participants that are joining as Agent Agent bool `json:"agent,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) GetCanUpdateOwnMetadata ¶ added in v1.4.0
func (v *VideoGrant) GetCanUpdateOwnMetadata() bool
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) 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)
Click to show internal directories.
Click to hide internal directories.