Releases: fishjam-dev/fishjam
Releases · fishjam-dev/fishjam
v0.6.3
v0.6.2
Features
- Log level may now be configured using the
FJ_LOG_LEVEL
env variable - Room IDs may now contain underscores as well as alphanumeric characters and hyphens
Full Changelog: v0.6.1...v0.6.2
v0.6.1
v0.6.0
v0.5.0
Features
- Added Jellyfish version and commit to healthcheck endpoint
- Added Recording Component for creating meeting recordings
- Added ResourceManager that will remove raw recordings after timeout
- Added
Room.State
module and peer disconnected timeout, which removes peers after a predefined inactivity period - Added peer websocket url to PeerDetailsResponse, simplifying connecting a peer to Jellyfish
- Added
PeerAdded
andPeerDeleted
notifications, useful e.g. when a peer is removed due to a timeout - Restricted user-assigned room's id to alphanumeric [BREAKING]
- Allow for passing hostname to
JF_WEBRTC_TURN_LISTEN_IP
- useful for deployment on fly.io
Bugfixes
- Fixed ex-aws requests
- Extended timeout for AWS S3 requests
- Don't normalize AWS S3 paths
- Ensure that EPMD starts when starting the Jellyfish
v0.4.2
v0.4.1
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
v0.3.0
Features:
- added
persistent
andtargetWindowDuration
options for HLS component - added VOD HLS (a.k.a HLS recordings) - allows to play out HLS stream recorded with
persistent
set totrue
- added support for uploading HLS recordings to S3
- added manual subscription mode for HLS - from now, you can manually instruct HLS component when it should start recording tracks from a given peer or component
- added File component, which allows for publishing tracks from a file
- added ability to assign custom room ID
- added (LL)HLS benchmarks
- added WebRTC benchmarks
- added new ingress/egress traffic metrics for WebRTC and HTTP
- removed metrics per second [BREAKING] - user is expected to calculate those metrics on their own
- removed total ingress/egress traffic metrics [BREAKING] - user is expected to calculate those metrics on their own
- added new webhooks -
PeerConnected
,PeerDisconnected
,HlsUploaded
,HlsUploadCrashed
- added DNS strategy for clustering
- revisited logs - now only Jellyfish logs should be printed
- renamed ComponentMetadata to ComponentProperties in REST API [BREAKING] - requests that add components will result in responses containing
properties
field instead ofmetadata
field. - creating component will now always return configuration options this component was creatd with instead of an empty object [BREAKING]
- added
JF_SSL_KEY_PATH
andJF_SSL_CERT_PATH
- renamed
JF_OUTPUT_BASE_PATH
toJF_RESOURCES_BASE_PATH
and changed the default from jellyfish_output to jellyfish_resources [BREAKING] JF_DIST_NODE_NAME
defaults to hostname from nowJF_DIST_MODE
defaults to sname from now [BREAKING]- new versions of Elixir (0.3.0) and Python (0.2.0) Server SDKs
Bugfixes:
- fixed
PeerDisconnected
notification - it might have not been fired e.g. when non-empty room was deleted. NowPeerDisconnected
is guaranteed to be fired every time peer is removed, peer crashes, non-empty room is removed or non-empty room crashes. - tests fixes and stability improvements
- fixed URL to Jellydashboard
- prevent from unauthorized access to system files via REST API
- fixed Prometheus metrics resolution - Prometheus metrics are now updated as soon as an event occurs instead of every X seconds