1568 Commits

Author SHA1 Message Date
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
f61fa6183c frontend: move room member related services to dedicated model directory. Implement RoomMemberService for managing room members API 2026-02-07 00:00:45 +01:00
juancarmore
ded3c37ab2 frontend: add users management component, service and routes 2026-02-06 13:57:20 +01:00
juancarmore
14c64fdd75 frontend: move room recordings component to recordings model 2026-02-06 13:56:27 +01:00
juancarmore
eb5144291a frontend: remove unused About component from console pages 2026-02-06 13:54:48 +01:00
juancarmore
6c3d87c8bf fix(frontend): update app to match backend API changes and restore build
Refactored frontend code to align with recent backend API updates.
Adjusted endpoints, data models, and related logic to ensure successful compilation
2026-02-06 13:53: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
b78744b8b6 ci: update Room Management API tests to include Room Members 2026-02-05 12:27:31 +01:00
juancarmore
335ab30a48 test: add integration tests for Room Members API 2026-02-05 12:22:10 +01:00
juancarmore
f01ec31c1b test: update room member token response validation and permissions handling 2026-02-05 12:21:37 +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
b3ab245dff Centralize Prettier configuration to enforce consistent formatting across all subprojects 2026-02-05 12:19:46 +01:00
CSantosM
8af5759e4d typings: Add comments in recording.model 2026-02-04 17:41:53 +01:00
juancarmore
07ac5b91c9 Merge remote-tracking branch 'origin/main' into feat/room-members-users 2026-02-03 13:16:40 +01:00
juancarmore
6e225fe265 test: add integration tests for room member creation and validation 2026-02-03 11:36:07 +01:00
cruizba
b08bb10f63 backend: fix URL path extraction to remove basePath prefix 2026-02-03 01:56:58 +01:00
cruizba
177648e6d5 tests: Use getFullPath for constructing recording URLs in assertions 2026-02-02 21:09:34 +01:00
cruizba
b059b88be4 fix tests: Update API path construction with new path 2026-02-02 20:51:03 +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
d252784a39 test: add tests for room member token invalidation scenarios 2026-02-02 17:18:57 +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
ba7600bfc5 test: Fix default captions config enabled state to false 2026-02-02 17:01:41 +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
54c2c79ccb test: streamline authentication request helpers and update related tests 2026-01-30 17:26:44 +01:00
juancarmore
cdbb30fc2a test: add comprehensive token validation tests for access and room member tokens 2026-01-30 13:04:24 +01:00
juancarmore
993681395c test: enhance authentication API tests with user role validations and token management 2026-01-30 10:21:32 +01:00
juancarmore
ad3e0b81e5 test: update authentication methods to return access and refresh tokens 2026-01-30 10:21:08 +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
2fe720c90b test: Remove moderatorToken from start and stop recording tests 2026-01-28 18:07:00 +01:00
juancarmore
6a350b07a5 test: enhance analytics, API key, global config, meeting, and user API security tests with user role and permissions validations 2026-01-28 18:04:11 +01:00
CSantosM
3f91e281b3 frontend: Controls captions button based on admin config
Updates the captions button to respect the global admin configuration.

The button now displays a disabled state and tooltip when captions are disabled globally, preventing users from toggling them.

The UI is updated to show disabled state and a specific subtitle off icon,
reflecting whether captions are enabled at the system level.
2026-01-28 16:27:30 +01:00
CSantosM
4ac182c244 backend: Update captions agent name and improve environment checks in TokenService 2026-01-28 16:25:43 +01:00
juancarmore
0a5852d89a test: enhance recording API security tests with user role and permissions validations 2026-01-28 16:12:04 +01:00