OpenTalk Controller Community Edition version history
controller v0.19.1
(found in OpenTalk v24.11.0)
Changelog
🐛 Bug fixes
📦 Dependencies
- Update rust crate gix-path to 0.10.10 (fixing RUSTSEC-2024-0367) (!1122)
controller v0.19.0
Changelog
🚀 New features
- Add part-number for chunk upload (!1086)
- Serve a OpenAPI Swagger page under
/swagger
(#759, !828) - Add subcommand for exporting the OpenAPI specification to stdout or a file (#759, !828)
🐛 Bug fixes
- Prevent recorder start in breakout rooms (#838, !1094)
- Clippy v1.80.0 lints (!1073)
- Interior mutability issue as reported by clippy (!1073)
- (jobs) Fix storage sync bug where a low amount of assets resulted in a job failure (#842, !1114)
- (ci) Ignore frontend api yaml file based on name (!1120)
- (ci) Update markdown linter to allow code blocks (!1113)
- (ci) Detect only .rs files instead of anything ending on rs (!1118)
📚 Documentation
📦 Dependencies
- Update rust crate clap to v4.5.14 (!1092)
- Update rust crate derive_more to v1 (!1087)
- Update rust crate diesel-async to 0.5 (!631)
- Update rust crate serde to v1.0.207 (!1101)
- Update rust crate serde_json to v1.0.124 (!1102)
- Update rust crate tokio-cron-scheduler to 0.11 (!1095)
🔨 Refactor
- Use
BTree{Map,Set}
in module features for more stable (de-)serialization (!828) - Move GET
/rooms/{room_id}/invites
response to separate struct (!828) - Create RecurrencePattern and RecurrenceRule newtypes (!828)
✨ Style
- Use consistent module file layout (!911)
controller v0.18.0
(found in OpenTalk v24.10.0)
Changelog
🚀 New features
- Use avatar url if the JWT
picture
claim is set (#824)
🐛 Bug fixes
- Override streaming_targets on PATCH
/events/{event_id}
(#829)
📚 Docs
- Add documentation for HTTP request handling (#826)
- Add documentation for OIDC auth (#826)
- Document the JWT
picture
field (#824)
🔨 Dependencies
- Update opentelemetry implementation
- Update opentelemetry-rs
- Update rust crate anstream to v0.6.15
- Update rust crate aws-sdk-s3 to v1.42.0
- Update rust crate bytes to v1.7.1
- Update rust crate clap to v4.5.13
- Update rust crate email_address to v0.2.9
- Update rust crate env_logger to v0.11.5
- Update rust crate lapin to v2.5.0
- Update rust crate rustls to v0.23.12
- Update rust crate rustls-pemfile to v2.1.3
- Update rust crate rustls-pki-types to v1.8.0
- Update rust crate serde_json to v1.0.122
- Update rust crate syn to v2.0.72
- Update rust crate sysinfo to v0.31.2
- Update rust crate tabled to 0.16
- Update rust crate tokio to v1.39.2
- Update rust crate vergen to v9
controller v0.17.0
(found in OpenTalk v24.9.0)
Changelog
🚀 New features
- Syncronize ACL changes via rabbitmq between controllers (!997)
- Add configuration for terdoc report generation service (#1035)
- Check openapi specification with stoplight spectral (!1032)
- Add axum compatibility for the ApiError (#808)
- Allow recorder to join breakout rooms (#804)
🐛 Bug fixes
- Delete room assets on event deletion (!977)
- Clean up force mute state when meeting is closed (#812)
- Specify usage of the serde feature for the opentalk-types dependency (#1049)
⚙ Miscellaneous
- Update rust crate async-trait to v0.1.81
- Update rust crate aws-sdk-s3 to v1.41.0
- Update rust crate bytes to v1.6.1
- Update rust crate clap to v4.5.9
- Update rust crate email_address to v0.2.5
- Update rust crate lapin to v2.4.0
- Update rust crate log to v0.4.22
- Update rust crate moka to v0.12.8
- Update rust crate phonenumber to v0.3.6
- Update rust crate redis-args to 0.15
- Update rust crate serde to v1.0.204
- Update rust crate serde_json to v1.0.120
- Update rust crate serde_with to v3.9.0
- Update rust crate snafu to v0.8.4
- Update rust crate syn to v2.0.71
- Update rust crate sysinfo to v0.30.13
- Update rust crate tokio to v1.38.1
- Update rust crate uuid to v1.10.0
- Update rust crate vergen to v8.3.2
📚 Docs
🔨 Refactor
- Introduce enum for quota types (!1026)
controller v0.16.1
(found in OpenTalk v24.8.1)
Changelog
🐛 Bug fixes
- Properly delete room assets on event deletion (!977)
controller v0.16.0
(found in OpenTalk v24.8.0)
Changelog
🚀 New features
- Allow connecting to janus via websocket_url (#786)
- Add room and room-creator info to the join success message (#779)
- Add job to sync account states (#776)
- Extend DELETE rooms & events endpoints, remove
DELETE /internal/rooms/{room_id}
endpoint (#762) - Force disable microphones of participants (#711)
- Allow lowering of multiple raised hands with a single command (#790)
- Add shared folder option to
PATCH /v1/events/{event_id}
(#784) - Add streaming target option to
PATCH /v1/events/{event_id}
(#784) - Extend moderator mute so that backend can mute all participants (#798)
- Add job for deleting disabled users (#777)
- Include room-id in ticket token (!1000)
- Do not use rabbitmq for exchange when no redis is configured (!1001)
🐛 Bug fixes
- Also check the current directory for .git files or folders (!948)
- Move event_loops field out of janus connection configuration enum (#791)
- Handle undefined values in volatile storage (#789)
- Set joined time when joining (#797)
- Enable serde derives for
serde
feature instead ofclient
(#799) - Show correct package version and optimization level (!946)
- Fix speaker detection by assuming the unmute is allowed if no unmute allowlist is present and by updating the speaker state when already initialized (#801)
- Update poll error documentation (#781)
Ci
- Add lint script for detecting modules that should use mod.rs files
- Call
cargo-deny
with--deny unmatched-skip
(#803)
Docs
- Describe required Keycloak settings for enabling user search (#729)
Refactor
- Add OneOrManyVec and OneOrManyBTreeSet types
⚙ Miscellaneous
- Use opentalk-keycloak-admin from crates.io
- Fix clippy lints for rustc 1.79.0
Dependencies
- Update alpine docker tag to v3.20
- Update curve25519-dalek to fix RUSTSEC-2024-0344
- Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.79.0
- Update postgres docker tag to v16
- Update rabbitmq docker tag to v3.13
- Update redis docker tag to v7
- Update rust crate actix to v0.13.5
- Update rust crate actix-http to v3.8.0
- Update rust crate actix-rt to v2.10.0
- Update rust crate actix-web to v4.8.0
- Update rust crate actix-web-httpauth to v0.8.2
- Update rust crate aws-sdk-s3 to v1.38.0
- Update rust crate bigdecimal to v0.4.5
- Update rust crate cidr to v0.2.3
- Update rust crate clap to v4.5.8
- Update rust crate derive_more to v0.99.18
- Update rust crate either to v1.13.0
- Update rust crate proc-macro2 to v1.0.86
- Update rust crate rustc-hash to v2
- Update rust crate serde_json to v1.0.119
- Update rust crate serde_with to v3.8.2
- Update rust crate strum to v0.26.3
- Update rust crate syn to v2.0.68
- Update rust crate url to v2.5.2
- Update rust crate uuid to v1.9.1
controller v0.15.0
(found in OpenTalk v24.7.1, v24.7.0)
Changelog
🚀 New features
- controller: Allow resetting individual participant's raised hands (#764)
- mail-worker-protocol: add streaming targets (#650)
- assets: Save assets in a predefined name format (#763)
- controller: keep signaling open when sending user from room to waiting room (#740)
- Include
show_meeting_details
in POST, PATCH and GET Event (#769) - Send error in case of insufficient permissions (!890)
- Add job to synchronize database assets and storage files (#665)
- Add job to cleanup orphaned rooms (#727)
- Add 'disabled_since' flag to users & filter disabled users (#775)
- Add in memory alternative to redis (!895)
🐛 Bug fixes
- media: fix speaker detection by updating the speaker state when already initialized (#801)
- mail-worker-protocol: Enable serde derives for
serde
feature instead ofclient
(#799) - dep: Update curve25519-dalek to fix RUSTSEC-2024-0344
- Update rust crate proc-macro2 to v1.0.83
- Update rust crate nix to 0.29
- Update rust crate actix-http to v3.7.0
- Update rust crate proc-macro2 to v1.0.84
- Update rust crate proc-macro2 to v1.0.85
- Update rust crate etcd-client to 0.13
- Update rust crate tracing-actix-web to v0.7.11
- Add notification mail to internal room deletion (#720)
- Inconsistent features
- Update rust crate tokio-cron-scheduler to v0.10.2
- Cleanup closed poll list (!895)
📚 Docs
- Add manual for deleting a user from the database (#774)
- Document configuration changes regarding redis
controller v0.14.0
(found in OpenTalk v24.6.1, v24.6.0)
Changelog
🚀 New features
- recording: make
record
andstream
functionality configurable by module features (#760) - controller: Allow polls with multiple choices (#746)
- Add a distributed JobExecutor system (#422, #424, #425)
🐛 Bug fixes
- database: Make events.room unique to create one to one relation (#724)
- Add missing and underspecified asset information
- controller: only notify once about enabled/disabled waiting room (#757)
⚙ Miscellaneous
- Update mail-worker-protocol metadata for publishing to crates.io (#728)
- Use lapin-pool from crates.io
Refactor
- Remove dependency from mail-worker-protocol to db-storage and keycloak-admin (#754)
Ci
- Enforce conventional commits
controller v0.13.0
(found in OpenTalk v24.5.0)
Changelog
Added
- controller: Add a websocket-based asset upload interface (currently used for recordings) (#614)
- controller: Add the ability to show meeting details for a room to all participants (#723)
- controller:
reason
field inopentalk-types::signaling::control::Left
(#741)
Changed
- controller: upgrade debian image in ci & container creation to bookworm (#742)
- controller: improve output structure when an error is encountered (#748)
Fixed
- controller: display names longer than 100 bytes are rejected (#744)
controller v0.12.1
(found in OpenTalk v24.4.1)
Changelog
Fixed
controller v0.12.0
(found in OpenTalk v24.4.0)
Changelog
Fixed
Added
- controller: Add signaling messages to send participants to the waiting room (#709)
- controller: Add the
change_display_name
command to change the display name of a guest or phone user (#721)
controller v0.11.0
(found in OpenTalk v24.3.0)
Changelog
Fixed
- types: don't serialize fields in media state if their value would be
null
(#716)
Added
- controller: set & enforce maximum storage via
max_storage
quota (#651) - controller: add the option to specify the role of email users when they are invited to an event (#661)
- controller: Add API endpoint to query assets associated with a user (#670)
controller v0.10.0
(found in OpenTalk v24.2.0)
Changelog
Added
- controller: add streaming and shared folder information to POST /v1/events (#652)
- controller: update user related cache entry after calling
PATCH /users/me
(#660) - controller: send update mails for changes to streaming targets and shared folder (#653)
Fixed
- controller: improve error message if signaling protocol header is not valid or missing.
controller v0.9.1
(found in OpenTalk v24.1.1)
Changelog
Fixed
- set is_speaking to false on participant mute (#663)
controller v0.9.0
(found in OpenTalk v24.1.0)
Changelog
Added
- controller: add endpoints for storing room-related streaming targets (#601)
- mail-worker-protocol: create event update mail tasks when an event instance gets updated (#504)
- controller: add status filter to event invites endpoint (#610)
- controller: add reply to hand raise and hand lower (#624)
Changed
- db-storage: add migration to remove
UTIL=XXX
fromrecurrence_pattern
field inevents
(#616) - controller/janus-media: let clents communicate their speaking state instead using the detection by janus (#538)
Fixed
- controller: fixed a bug where the configured
default_directives
in thelogging
section could not overwrite the controllers default values (#582) - controller: fixed a bug where event instance ID parsing was failing for the
patch
event instance endpoint (#631) - fix(deps): RUSTSEC-2024-0003 by updating
h2
to0.3.24
(#645)
controller v0.7.1
(found in OpenTalk v1.7.1, v1.7.0)
Changelog
Added
- mail-worker-protocol: added
adhoc_retention_seconds
field toEvents
(#591) - controller: added
external_id_user_attribute_name
setting used for searching Keycloak users (#609)
Fixed
- kustos: Do not exit load policy task if it fails once (!615)
- chore: ignore RUSTSEC-2023-0071 (!621)
- chore: update zerocopy to 0.7.31 (!622)
Changed
- controller: increase user search limit to 20 from 5 (#596)
- controller: don't send e-mail notification to creators of ad-hoc meetings (#606)
controller v0.7.0
(found in OpenTalk v1.6.2, v1.6.1, v1.6.0)
controller v0.6.3
(found in OpenTalk v1.5.4)
Changelog
Added
- controller: add the option to specify the role of registered users when they are invited to an event (#507)
Changed
- controller: handle email addresses in a case-insensitive way (#550)
controller v0.6.2
(found in OpenTalk v1.5.3, v1.5.2, v1.5.1)
Changelog
Fixed
- Add missing release section in CHANGELOG.md
controller v0.6.1
Changelog
Fixed
- RUSTEC-2023-0052
controller v0.6.0
(found in OpenTalk v1.5.0)
Changelog
Added
- controller: add the capability to disable specific features in the config file or via a tariff (#394)
- controller: add the possibility to disable the
call-in
feature via config or tariff (#395) - controller: add a settings option to prohibit the user from changing the display name (#415)
- controller: expose enabled features to the frontend (and make them module-specific) (#471)
- jobs: add subcommand to execute maintenance jobs from the comnand-line interface (#486)
Changed
- controller: changed the error messages for invalid configurations to be verbose and include the full path to the missing/invalid field (#465)
Fixed
- controller: fixed a bug where a response from the REST API was missing CORS information when an invalid access token was provided (#436)
- controller: fixed some issues related to the timer ready state reported to the frontend (#411
- controller: fixed a bug where a debrief without enough participants led to an error (#429)
- controller: for static tenant setting, no longer filters users by tenant when searching them by email (#469)
- controller: fixed a bug where the V27 migration could not be applied when legal-votes without an associated room exist (#494)
controller v0.5.0
(found in OpenTalk v1.4.0)
Changelog
Added
- controller: add tariff status and handle downgraded tariff (#408)
- controller: extend
JoinSuccess
signaling message'sEvent
withEventId
field (#399) - controller: add event information to
JoinSuccess
signaling message (#266) - controller: add the
shared-folder
module, allowing users to create and connect a nextcloud share in their conferences (#381)
Changed
- logging:
RUST_LOG
environment variable entries override settings from configuration file (#69) - controller: don't send mail notifications on deletion of past events (#407)
- controller:
x_grp
defaults to empty if not provided (#414) - controller: respect operating system CA certificates for all outgoing tls connections (#382)
- controller: fix signaling for rooms without events (406)
- db-storage/mail-worker-protocol: added
revision
field toevents
to track the number of changes - cli: Update
fix-cli
subcommand, now also fixes access to events and legal-votes (#387)
Fixed
- controller: Avoid sending unnecessary close frames. (#356)
- janus-media: discard unhandled ack messages, log them on debug level only (#252)
- cli: fix a bug where the
fix-acl
command was not working when too many permissions were added (403) - signaling: Consider the
enable_phone_mapping
config value when trying to match the phone number to a opentalk user
controller v0.4.0
(found in OpenTalk v1.3.3, v1.3.2, v1.3.1, v1.3.0)
Changelog
Added
- controller: cache access-token check results for a maximum of 5mins, reducing load on both keycloak and postgres (#359)
- janus-media: add
event_loops
options to specify how many event-loop the janus instance runs on. Used to send hints to janus on which event-loop to create a new webrtc-session (handle). - controller: add debriefing and kicking multiple users at once (#350)
- controller: always allow one moderator to join a room regardless of participant limit (#352)
- chat: add private chat history (#327)
- controller: kick users when the owner deletes the room (#328)
Changed
- naming: replace initial project code name
k3k
byopentalk
in code, executable names and environment variables (#279) - controller: respect operating system CA certificates for all outgoing tls connections (#382)
Fixed
- controller/db-storage: Email invites now get deleted, when converted to user invites. (#320)
- controller-settings: Fixed a panic when trying to parse config values for
tenants
andtariffs
, when their assignment was set tostatic
- controller: Avoid sending unnecessary close frames. (#356)
Moved
- types: Move
Namespaced
totypes::signaling::NamespacedCommand
- types: Move
NamespacedOutgoing
totypes::signaling::NamespacedEvent
controller v0.3.1
(found in OpenTalk v1.2.1)
Changelog
Fixed
(backport):
controller-settings: Fixed a panic when trying to parse config values fortenants
andtariffs
, when their assignment was set tostatic
controller v0.3.0
(found in OpenTalk v1.2.0)
Changelog
Added
- controller/db-storage: add initial tariff support. Requires JWT claims to include a
tariff_id
. - controller: invite verify response contains a
password_required
flag (#329) - controller: add
participant_limit
quota to restrict the maximum amount of participants in a room (#332) - controller: add
enabled_modules
(#334),tariff
as part ofJoinSuccess
message, API endpoints forusers/me/tariff
androoms/{room_id}/tariff
(#331) - controller: add
time_limit
quota to restrict the duration of a meeting (#333) - controller/settings: remove
http.cors
section as CORS is now statically configured to allow any origin - controller/settings: add
tenants
andtariffs
sections, which allow configuring how users are assigned to each tenant/tariff. - legal-vote: add option to set protocol timezone (#338)
- janus-media: add
resubscribe
message to allow clients to restart the webrtc session of a subscription.
Changed
- controller: authenticated users can join meetings without a password (#335)
- janus-media: use lapin-pool internally to recover from RabbitMQ connection failures (#343)
- lapin-pool: consider connection status when picking connections for new channels & reap disconnected connections (#343)
- controller: Traces are now exported directly via OTLP. The setting was renamed from
jaeger_agent_endpoint
tootlp_tracing_endpoint
(#301).
controller v0.2.1
(found in OpenTalk v1.1.2, v1.1.1)
Changelog
Added
(backport):
janus-media: addresubscribe
message to allow clients to restart the webrtc session of a subscription.
controller v0.2.0
(found in OpenTalk v1.1.0)
Changelog
Added
- controller: enable accepted participants to skip waiting room when joining or returning from a breakout room (#303)
- controller: announce available modules in
join_success
message (#308)
Changed
- timer: add the
kind
field to distinguish between astopwatch
andcountdown
more clearly (#316) - timer: add the
style
field to thestart
&started
messages and let clients tag a timer with a custom style (#316) - controller: add support for multi tenancy #286
- timer: distribute timer handling over all participant runners, allowing timers to finish if the moderator has left (#210)
controller v0.1.0
(found in OpenTalk v1.0.0)
Changelog
Added
- add license information
- controller: allow overriding some build-time environment variables (#137)
- chat: add
last_seen_timestamp
fields #242 - legal-vote: add option to automatically create a PDF asset when a vote has ended (#259)
- legal-vote: add new
live_roll_call
vote kind which sends out live updates while the vote is running (#285) - controller: add config to grant all participants the presenter role by default (#318)
Fixed
- protocol: fixed the
createAuthorIfNotExistsFor
API call that always returned the same author id due to a typo in the query - janus-media: fixed a permission check for screen-share media session updates
- protocol: fixed a bug where joining participants got write access by default (#306)
- protocol: fixed a bug where the etherpad pad was deleted when any user left the room (#319)
- signaling: fixed a bug which caused rooms to never be destroyed if a participant was joining from the waiting-room (#321)
Changed
- controller: use derive and attribute macros for conversion to/from redis values (#283)
- protocol: read/write access level information is now sent to every participant #299
- chat/ee-chat: merged ee-chat into chat (#265)
- legal-vote: votes are now token-based, allowing for
pseudonymous
votings where only the tokens, not the participants are published (#271) - updated dependencies