v0.4.0
IMPORTANT This version might require clearing or updating env vars when running from source on macOS. See docs for more.
Features:
- added peer websocket close reason - now, server closes peer websocket with a reason e.g. "Internal server error", "Peer removed" or "Room stopped"
- added support for path in JF_HOST env var
- added framerate option in the File component - defaults to 30 FPS
- added healthcheck endpoint - GET /health - requires authorization and returns: status, uptime and information about distribution (enabled/disabled, node status, number of nodes in a cluster).
- added published tracks and their metadata to the REST API e.g. GET /room will return a list of rooms with their components and peers, where each component and each peer will also list all of its published tracks
- added new server notifications:
PeerMetadataUpdated
,TrackAdded
,TrackRemoved
,TrackMetadataUpdated
- added peerless room purge option - after predefined amount of time, if a room is empty, it will be automatically closed. This behaviour is disabled by default. See here.
- added SIP component
- added basic structured logging that can be enabled with
JF_STRUCTURED_LOGGING
- added python RTSP -> HLS example
Bugfixes:
- fixed duplicated
peer_disconnected
notification - fixed prometheus metrics not being reset - now, after room is removed, its metrics are set to 0 - dopytać o interwał
- fixed starting logs not being displayed when JF couldn't run in a distributed mode - now, even if JF crashes because of distribution-related problems, config logs will be displayed (i.e. JF version, WebRTC config, distribution config)
- fixed removing component, which crashed from JF state (thanks to @gfodor)
- fixed removing component, which finisehd its work from JF state
- fixed authorization not required for /hls and /recording endpoints [BREAKING]
- fixed authorization information in OpenAPI spec - previously, all endpoints were marked as requiring authorization, even if they didn't actually need it