- Add OpenAPI components for creating and responding to AI assistant requests.
- Implement AI assistant service for managing live captions capability.
- Create routes and controllers for AI assistant operations (create and cancel).
- Introduce request validation middleware for AI assistant requests.
- Update Redis helper to manage AI assistant locks.
- Integrate AI assistant cleanup in webhook service.
- Enhance LiveKit service to manage agent dispatch for AI assistants.
- Update token service to remove unnecessary parameters related to captions.
- Add typings for AI assistant requests and responses.
- Updated the MeetRoom interface to replace anonymous access configuration with a unified access configuration.
- Refactored RoomService to handle access configuration for both anonymous and registered users.
- Modified tests to reflect changes in access configuration structure.
- Updated frontend components to use the new access configuration for meeting URLs and permissions.
- Ensured backward compatibility by adjusting API endpoints and request/response types.
- Added support for `fields` and `extraFields` parameters in `deleteMeetRoom` and `bulkDeleteMeetRooms` methods to allow clients to specify which fields to include in the response.
- Updated the `RoomService` to handle field filtering logic when deleting rooms, ensuring only requested fields are returned in the response.
- Enhanced integration tests to verify that the API correctly filters responses based on `fields` and `extraFields` query parameters and headers during room deletion operations.
- Created new test cases to validate the behavior when some rooms fail to delete due to active meetings, ensuring the response includes the correct fields.
- Refactored existing tests to accommodate the new field filtering functionality and ensure comprehensive coverage.
Updates the room API to use `extraFields` instead of `expand` for including additional data in responses.
This change improves clarity and consistency in the API design.
It also simplifies the filtering logic by explicitly differentiating between
base fields (controlled by `fields`) and extra fields (controlled by `extraFields`).
The changes include:
- Renaming the query parameter and header
- Updating the validation schemas
- Adjusting the filtering logic in the controller and service layers
- Updating the frontend components and services
Adds functionality to control the room creation and retrieval responses
using the `X-Fields` and `X-Expand` headers.
- `X-Fields` allows clients to specify which fields to include in the
response, optimizing bandwidth usage.
- `X-Expand` allows clients to request the full data of expandable
properties, such as `config`, avoiding subsequent GET requests.
This change introduces new request validators, service methods, and
helper functions to handle the header logic and process the room objects accordingly.
Implements expandable properties for room responses to reduce payload size.
Introduces an `expand` query parameter to control which complex properties, like `config`, are included in the response. By default, these properties are replaced with a stub containing a HATEOAS link to fetch the full data.
This change optimizes network bandwidth and improves API performance by preventing unnecessary data transfer, especially when clients only need a subset of room details.
Adds configuration options for recording encoding, including presets and advanced settings, allowing users to customize video and audio quality.
This enhancement introduces new schemas for recording encoding presets and advanced options, enabling users to select from predefined encoding profiles or fine-tune specific video and audio parameters.
A conversion helper is implemented to translate between the internal encoding configurations and the format required by the LiveKit SDK.
backend: Adds recording encoding configuration options
Allows users to specify custom audio and video encoding settings for recordings, overriding room defaults.
This enhancement provides greater flexibility in controlling recording quality and file size. It introduces new schema definitions for encoding options and validates these configurations through Zod schemas.
Enforces complete video/audio encoding options
Requires both video and audio configurations with all their properties
when using advanced encoding options for recordings. This change ensures
complete encoding setups and prevents potential recording failures due to
missing encoding parameters. It also corrects a typo of keyframeInterval.
Add video depth option to recording encoding settings
Enables users to override the default recording layout for a room
when starting a recording. This allows customization of the recording
appearance on a per-recording basis, instead of being tied solely to the
room's configuration.
Adds an internal API endpoint to retrieve the captions configuration,
allowing the frontend to determine whether captions are enabled.
The configuration is read from the MEET_CAPTIONS_ENABLED environment variable.
This commit refactors the recording API endpoints from the internal API to the public API.
This change allows users to start and stop recordings using API keys, enabling more secure and flexible access control for recording functionality. It also centralizes recording-related logic in the public API, simplifying the codebase and improving maintainability.
Adds support for live captions in meet rooms.
This includes schema definitions, API configurations,
and LiveKit integration for dispatching captions agents.
Captions are disabled by default and can be enabled per room.
Adds the 'layout' property to recording information.
This allows tracking the layout used during a recording, enhancing recording metadata.
Updates recording schema and adds layout information to API responses.
Enables configuration of recording layouts.
Specifies the recording layout in the room configuration.
Now supports different layouts, such as grid, speaker, and single-speaker.
Updated zod validation schemas
Updated integration tests
- Updated user login request body to define username and password directly instead of referencing an external schema.
- Removed obsolete recording token request schema.
- Added new request body for updating room anonymous access configuration.
- Deleted outdated room guests request body.
- Enhanced room member request body documentation for clarity on custom permissions.
- Introduced new request body for updating room roles configuration.
- Added error response schema for user ID already exists.
- Created success response schema for retrieving authenticated user info.
- Modified success response for retrieving multiple users to use userId instead of username.
- Updated success response for room members to reflect changes in memberId and access URLs.
- Adjusted success response for room details to include roles instead of guests.
- Created success response for updating room anonymous access configuration.
- Created success response for updating room roles configuration.
- Revised meet-user schema to use userId instead of username and simplified role representation.
- Deleted obsolete user-credentials schema.
- Introduced meet-room-anonymous-config schema for anonymous access configuration.
- Removed obsolete meet-room-guests schema.
- Updated meet-room-member schema to clarify memberId and name usage.
- Revised meet-room schema to replace guests with roles and added anonymous access configuration.
- Updated OpenAPI paths to reflect changes in user and room management endpoints.
Enhances room management by preventing modifications to rooms with active meetings.
Adds validation to backend to prevent updates to room configuration during an active meeting.
Improves frontend user experience by disabling the room editing option and adding a guard to redirect users away from the edit page.
frontend: add End-to-End Encryption (E2EE)
- Updated meeting lobby and room wizard components to handle E2EE settings.
- Added E2EE configuration options in the room wizard and lobby services.
- Implemented validation for E2EE key input in participant forms.
- Enhanced UI to reflect E2EE restrictions on recording and streaming.
- Added animations for E2EE warning and info sections.
backend: Added E2EE configuration and middleware
backend: Added e2ee configuration property to openapi
Enables E2EE functionality
Configures the application to support end-to-end encryption (E2EE).
Copies the necessary worker script to the assets folder.
Passes the E2EE key to the meeting component.
Adds a script to remove node_modules and dist folder.
frontend: Add E2EE UI tests and configuration options
webcomponent: Ensure cleanup of test environment after moderation tests
frontend: Update E2EE description and restrictions
webcomponent: Enhance E2EE UI tests by adding participant interactions and verifying visibility with correct keys
backend: Updated start recording example response