Documentation
¶
Index ¶
- Constants
- Variables
- func Receive(r *http.Request, provider auth.KeyProvider) ([]byte, error)
- func ReceiveWebhookEvent(r *http.Request, provider auth.KeyProvider) (*livekit.WebhookEvent, error)
- type DefaultNotifier
- func (n *DefaultNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
- func (n *DefaultNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
- func (n *DefaultNotifier) SetFilter(params FilterParams)
- func (n *DefaultNotifier) SetKeys(apiKey, apiSecret string)
- func (n *DefaultNotifier) Stop(force bool)
- type FilterParams
- type HTTPClientParams
- type NotifyOption
- type NotifyParams
- type QueuedNotifier
- type ResourceURLNotifier
- func (r *ResourceURLNotifier) Process(ctx context.Context, queuedAt time.Time, event *livekit.WebhookEvent, ...)
- func (r *ResourceURLNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
- func (r *ResourceURLNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
- func (r *ResourceURLNotifier) SetFilter(params FilterParams)
- func (r *ResourceURLNotifier) SetKeys(apiKey, apiSecret string)
- func (r *ResourceURLNotifier) Stop(force bool)
- type ResourceURLNotifierConfig
- type ResourceURLNotifierParams
- type URLNotifier
- func (n *URLNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
- func (n *URLNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
- func (n *URLNotifier) SetFilter(params FilterParams)
- func (n *URLNotifier) SetKeys(apiKey, apiSecret string)
- func (n *URLNotifier) Stop(force bool)
- type URLNotifierConfig
- type URLNotifierParams
- type WebHookConfig
Constants ¶
const ( EventRoomStarted = "room_started" EventRoomFinished = "room_finished" EventParticipantJoined = "participant_joined" EventParticipantLeft = "participant_left" EventTrackPublished = "track_published" EventTrackUnpublished = "track_unpublished" EventEgressStarted = "egress_started" EventEgressUpdated = "egress_updated" EventEgressEnded = "egress_ended" EventIngressStarted = "ingress_started" EventIngressEnded = "ingress_ended" )
Variables ¶
var ( ErrNoAuthHeader = errors.New("authorization header could not be found") ErrSecretNotFound = errors.New("API secret could not be found") ErrInvalidChecksum = errors.New("could not verify authenticity of message") )
var DefaultResourceURLNotifierConfig = ResourceURLNotifierConfig{ MaxAge: 10 * time.Second, MaxDepth: 200, }
var DefaultURLNotifierConfig = URLNotifierConfig{
NumWorkers: 10,
QueueSize: 100,
}
var DefaultWebHookConfig = WebHookConfig{ URLNotifier: DefaultURLNotifierConfig, ResourceURLNotifier: DefaultResourceURLNotifierConfig, }
Functions ¶
func Receive ¶
Receive reads and verifies incoming webhook is signed with key/secret pair closes body after reading
func ReceiveWebhookEvent ¶ added in v0.13.0
func ReceiveWebhookEvent(r *http.Request, provider auth.KeyProvider) (*livekit.WebhookEvent, error)
ReceiveWebhookEvent reads and verifies incoming webhook, and returns a parsed WebhookEvent
Types ¶
type DefaultNotifier ¶ added in v1.5.4
type DefaultNotifier struct {
// contains filtered or unexported fields
}
func (*DefaultNotifier) QueueNotify ¶ added in v1.5.4
func (n *DefaultNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
func (*DefaultNotifier) RegisterProcessedHook ¶ added in v1.34.0
func (n *DefaultNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
func (*DefaultNotifier) SetFilter ¶ added in v1.35.0
func (n *DefaultNotifier) SetFilter(params FilterParams)
func (*DefaultNotifier) SetKeys ¶ added in v1.35.0
func (n *DefaultNotifier) SetKeys(apiKey, apiSecret string)
func (*DefaultNotifier) Stop ¶ added in v1.5.4
func (n *DefaultNotifier) Stop(force bool)
type FilterParams ¶ added in v1.35.0
type HTTPClientParams ¶ added in v1.19.2
type NotifyOption ¶ added in v1.37.0
type NotifyOption func(*NotifyParams)
func WithExtraWebhooks ¶ added in v1.37.0
func WithExtraWebhooks(wh []*livekit.WebhookConfig) NotifyOption
func WithSecret ¶ added in v1.37.0
func WithSecret(secret string) NotifyOption
type NotifyParams ¶ added in v1.37.0
type NotifyParams struct { ExtraWebhooks []*livekit.WebhookConfig Secret string }
type QueuedNotifier ¶ added in v1.5.4
type QueuedNotifier interface { RegisterProcessedHook(f func(ctx context.Context, whi *livekit.WebhookInfo)) SetKeys(apiKey, apiSecret string) SetFilter(params FilterParams) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error Stop(force bool) }
func NewDefaultNotifier ¶ added in v1.5.4
func NewDefaultNotifier(config WebHookConfig, kp auth.KeyProvider) (QueuedNotifier, error)
type ResourceURLNotifier ¶ added in v1.35.0
type ResourceURLNotifier struct {
// contains filtered or unexported fields
}
ResourceURLNotifier is a QueuedNotifier that sends a POST request to a Webhook URL. It queues up events per resource (could be egress, ingress, room, participant, track, etc.) to avoid blocking events of one resource blocking another resource's event(s). It will retry on failure, and will drop events if notification fall too far behind, either in age or queue depth.
func NewResourceURLNotifier ¶ added in v1.35.0
func NewResourceURLNotifier(params ResourceURLNotifierParams) *ResourceURLNotifier
func (*ResourceURLNotifier) Process ¶ added in v1.35.0
func (r *ResourceURLNotifier) Process(ctx context.Context, queuedAt time.Time, event *livekit.WebhookEvent, params *ResourceURLNotifierParams)
poster interface
func (*ResourceURLNotifier) QueueNotify ¶ added in v1.35.0
func (r *ResourceURLNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
func (*ResourceURLNotifier) RegisterProcessedHook ¶ added in v1.35.0
func (r *ResourceURLNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
func (*ResourceURLNotifier) SetFilter ¶ added in v1.35.0
func (r *ResourceURLNotifier) SetFilter(params FilterParams)
func (*ResourceURLNotifier) SetKeys ¶ added in v1.35.0
func (r *ResourceURLNotifier) SetKeys(apiKey, apiSecret string)
func (*ResourceURLNotifier) Stop ¶ added in v1.35.0
func (r *ResourceURLNotifier) Stop(force bool)
type ResourceURLNotifierConfig ¶ added in v1.35.0
type ResourceURLNotifierParams ¶ added in v1.35.0
type ResourceURLNotifierParams struct { HTTPClientParams Logger logger.Logger Timeout time.Duration Config ResourceURLNotifierConfig URL string APIKey string APISecret string FieldsHook func(whi *livekit.WebhookInfo) FilterParams }
type URLNotifier ¶ added in v1.5.4
type URLNotifier struct {
// contains filtered or unexported fields
}
URLNotifier is a QueuedNotifier that sends a POST request to a Webhook URL. It will retry on failure, and will drop events if notification fall too far behind
func NewURLNotifier ¶ added in v1.5.4
func NewURLNotifier(params URLNotifierParams) *URLNotifier
func (*URLNotifier) QueueNotify ¶ added in v1.5.4
func (n *URLNotifier) QueueNotify(ctx context.Context, event *livekit.WebhookEvent, opts ...NotifyOption) error
func (*URLNotifier) RegisterProcessedHook ¶ added in v1.34.0
func (n *URLNotifier) RegisterProcessedHook(hook func(ctx context.Context, whi *livekit.WebhookInfo))
func (*URLNotifier) SetFilter ¶ added in v1.35.0
func (n *URLNotifier) SetFilter(params FilterParams)
func (*URLNotifier) SetKeys ¶ added in v1.5.4
func (n *URLNotifier) SetKeys(apiKey, apiSecret string)
func (*URLNotifier) Stop ¶ added in v1.5.4
func (n *URLNotifier) Stop(force bool)
type URLNotifierConfig ¶ added in v1.35.0
type URLNotifierParams ¶ added in v1.5.4
type URLNotifierParams struct { HTTPClientParams Logger logger.Logger Config URLNotifierConfig URL string APIKey string APISecret string FieldsHook func(whi *livekit.WebhookInfo) FilterParams }
type WebHookConfig ¶ added in v1.35.0
type WebHookConfig struct { URLs []string `yaml:"urls,omitempty"` APIKey string `yaml:"api_key,omitempty"` URLNotifier URLNotifierConfig `yaml:"url_notifier,omitempty"` ResourceURLNotifier ResourceURLNotifierConfig `yaml:"resource_url_notifier,omitempty"` }