138 Commits

Author SHA1 Message Date
CSantosM
eacd629006 Adds room response options
Introduces response options for room-related API calls, allowing clients to specify which fields to include and which properties to expand.

This change provides more control over the data returned by the API,
reducing payload size and improving performance.
It also fixes an issue where the frontend was not able to request only the fields needed for specific components.
2026-02-09 13:16:58 +01:00
CSantosM
1c85eaa364 Refactors types location for backend models
Moves shared type definitions from backend models to the `typings` package.

This change centralizes type definitions, improving code maintainability
and consistency across the project. It removes duplicated type
definitions in backend and uses shared types from `typings` package
instead.
2026-02-09 13:16:58 +01:00
CSantosM
af6b5cab28 backend: Applies permission filtering to room data
Implements permission-based filtering to restrict access to sensitive room information.

This ensures that only authorized users can view specific fields based on their assigned permissions.
2026-02-09 13:16:58 +01:00
CSantosM
733665b49b backend: rename permission options for clarity and consistency in room API 2026-02-09 13:16:58 +01:00
CSantosM
80ce1a3efd backend: Improves data fetching efficiency
Refactors repository methods to accept an array of fields
instead of a comma-separated string, optimizing data retrieval
and reducing unnecessary string manipulation. Also, modifies
services and validators to use array of fields instead of strings.
2026-02-09 13:16:58 +01:00
CSantosM
d4a87f8a45 Enables response control via headers
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.
2026-02-09 13:16:58 +01:00
CSantosM
ecef2844a0 Adds filtering and expansion to room/recording APIs
Introduces filtering capabilities for room and recording list endpoints.

This allows users to query rooms and recordings based on various criteria such as name, status, and other relevant properties.
It also implements expansion support for room properties, enabling retrieval of full object details instead of stubs.

The changes include:
- Defines data models for room and recording filter requests.
- Updates Zod schemas for robust input validation.
- Implements logic for collapsing and expanding room properties, improving API response structure and efficiency.
2026-02-09 13:16:58 +01:00
juancarmore
336a6751c2 backend: remove allowUserCreation field from authentication config Mongoose schema 2026-02-09 10:04:00 +01:00
juancarmore
70ca7a0fa9 backend: remove currentParticipantIdentity from room member schema and refactor RoomMemberService to use meberId as participant identity when joining a meeting. Update related tests 2026-02-09 10:03:06 +01:00
juancarmore
ae4217a4d4 backend: remove allowUserCreation from AuthenticationConfig and update related logic 2026-02-06 13:42:48 +01:00
CSantosM
85e4a5b8a6 Adds expandable properties to room responses
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.
2026-02-05 13:52:24 +01:00
juancarmore
335ab30a48 test: add integration tests for Room Members API 2026-02-05 12:22:10 +01:00
juancarmore
18426e2111 test: update webhook config references and improve request helpers
- Renamed `getWebbhookConfig` and `updateWebbhookConfig` to `getWebhookConfig` and `updateWebhookConfig` respectively for consistency.
- Updated integration tests to reflect the new function names.
- Refactored request helper methods to use `getFullPath` for API endpoint construction.
- Removed unnecessary parameters in `stopRecording` calls across various tests.
- Cleaned up test scenarios by removing redundant room deletion logic.
- Ensured proper handling of recording states in tests to avoid race conditions.
2026-02-05 12:19:46 +01:00
juancarmore
27a6064b61 backend: refactor room member token creation to use MeetRoomMemberTokenOptions interface 2026-02-05 12:19:46 +01:00
juancarmore
07ac5b91c9 Merge remote-tracking branch 'origin/main' into feat/room-members-users 2026-02-03 13:16:40 +01:00
cruizba
b08bb10f63 backend: fix URL path extraction to remove basePath prefix 2026-02-03 01:56:58 +01:00
cruizba
4e634dac54 Move LiveKit Webhook route to app level 2026-02-02 19:58:38 +01:00
cruizba
b0c7dcbc9a Introduce base path configuration and update related services 2026-02-02 19:47:18 +01:00
juancarmore
3df0c54004 backend: add 'iat' timestamp to token metadata and update related validation logic 2026-02-02 17:18:37 +01:00
CSantosM
accb35c7e1 Adds recording encoding options to room config and start recording
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
2026-02-02 17:00:01 +01:00
juancarmore
73e7a1ece7 backend: enhance room member token validation to check for updated permissions 2026-02-02 14:14:40 +01:00
juancarmore
70d51e21a6 backend: add timestamps for permissions updates in room member and room schemas 2026-02-02 14:14:29 +01:00
juancarmore
268a6f9709 backend: add error handling for disabled anonymous access in room member service 2026-02-02 13:14:19 +01:00
juancarmore
21f4563202 test: add integration tests for user management API 2026-02-02 12:41:30 +01:00
juancarmore
c561cf9bcd test: enhance change password and user profile tests with new scenarios and validations 2026-01-30 17:27:21 +01:00
juancarmore
68477d8ad3 backend: enhance access and refresh token management with new metadata structure and validation 2026-01-30 10:19:53 +01:00
juancarmore
1e1d66ae11 test: add security tests for room members API 2026-01-29 13:26:10 +01:00
CSantosM
1add921ce0 backend: Allows overriding recording layout
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.
2026-01-28 18:14:29 +01:00
CSantosM
4ac182c244 backend: Update captions agent name and improve environment checks in TokenService 2026-01-28 16:25:43 +01:00
juancarmore
11f7ac1401 backend: streamline recording access authorization and improve room filtering logic 2026-01-28 16:06:46 +01:00
juancarmore
1188255210 backend: enhance room member token handling for external member IDs and validate secrets 2026-01-28 16:04:59 +01:00
juancarmore
2e7cbeb96a backend: persist effective permissions in room member documents instead of compute them on retrieval. Update permissions of all room members when updating room roles permissions 2026-01-28 16:03:31 +01:00
CSantosM
43f7ff5001 backend: Exposes captions config via internal API
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.
2026-01-28 15:21:00 +01:00
CSantosM
30bd4b5a41 Enable captions by default in room configurations and related tests 2026-01-28 14:50:32 +01:00
juancarmore
89e7d5db88 test: enhance room API security tests with user role validations 2026-01-26 18:25:15 +01:00
juancarmore
e0e2fc2a44 backend: update token and role validator to allow access to change-password and me endpoints when password change is required 2026-01-26 18:23:02 +01:00
juancarmore
fb4e7a022c backend: update login schema and controller to use userId instead of username 2026-01-26 18:22:23 +01:00
juancarmore
e580843b3a backend: reorder middlewares in room and meeting routes 2026-01-23 19:14:34 +01:00
juancarmore
84a0b2ac6e backend: streamline room and recording middlewares, enhance permission checks and error handling 2026-01-23 19:13:51 +01:00
juancarmore
7c4b5c6724 backend: streamline recording access validation and error handling for ZIP downloads and bulk delete 2026-01-23 19:10:56 +01:00
CSantosM
215b11e93f Moves recording API to public endpoint
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.
2026-01-23 17:32:18 +01:00
CSantosM
9ae27bf32a backend: Adds live captions functionality to rooms
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.
2026-01-22 18:24:50 +01:00
juancarmore
de0674d82c backend: implement user role update functionality 2026-01-22 11:38:40 +01:00
juancarmore
7d7f66edf3 backend: prevent admins to delete their own account or root admin user account 2026-01-22 10:55:03 +01:00
juancarmore
2bc1d02620 backend: enhance error handling and validation in room and recording access middleware 2026-01-21 19:57:09 +01:00
juancarmore
35498a5854 backend: enhance permission checks and error handling in room and recording services 2026-01-21 19:57:09 +01:00
juancarmore
086e325551 backend: enhance getMeetRoom method to include permission checks for sensitive properties 2026-01-21 19:57:09 +01:00
juancarmore
136a422fb6 backend: refactor downloadRecordingsZip to simplify recording ID handling 2026-01-21 19:57:09 +01:00
juancarmore
086f60d60a backend: enhance deleteMany method to allow non-failure on empty results in RoomMemberRepository 2026-01-21 19:57:09 +01:00
juancarmore
8d255bd051 backend: enforce required oauthProviders in AuthenticationConfig and update related schemas 2026-01-21 19:57:09 +01:00