41 Commits

Author SHA1 Message Date
Carlos Santos
3d4f04feb1 Migrate to pnpm
chore: migrate project to pnpm and update workspace configuration

- Added pnpm workspace configuration in pnpm-workspace.yaml to manage packages.
- Updated prepare.sh script to use pnpm for installing and building packages.
- Modified testapp/package.json scripts to use pnpm instead of npm.
- Enhanced tsconfig.client.json and tsconfig.json with additional options and exclusions.
- Updated typings README.md to reflect the use of pnpm for installation and building.

streamline build process in prepare script and update dependency installation

Refactor code structure for improved readability and maintainability

refactor: optimize Dockerfile for better layer caching and dependency installation

refactor: migrate typings from '@lib/typings/ce' to '@openvidu-meet/typings'

- Updated imports across multiple components and services to use the new '@openvidu-meet/typings' package.
- Removed legacy typings references and adjusted paths in the frontend and webcomponent projects.
- Cleaned up the typings package structure and added build scripts for TypeScript.
- Removed the sync-types.sh script as it is no longer needed with the new structure.
- Updated README and package.json files to reflect the new package name and structure.
feat: add nodemon configuration for API documentation updates and enhance development scripts

feat: implement type checking in watch mode and update development scripts

feat: enhance development scripts with wait-for-typings and watch-typings utilities

fix: remove obsolete sync:backend script and enhance dev script with preserveWatchOutput option

feat: enhance development scripts with typings guard and improve watch behavior

Refactors build and dev scripts

Simplifies and consolidates build and development-related scripts for improved maintainability.

- Updates the build process to be more streamlined.
- Improves the development workflow by consolidating common tasks.
- Removes redundant scripts.

Replaces prepare script with meet script

Replaces the old `prepare.sh` script with a new `meet.sh` script to provide a more user-friendly and comprehensive interface for building and managing the project.

- Integrates command-line arguments for different build targets.
- Includes documentation generation for web components and REST APIs.
- Provides improved error handling and user feedback.
- Simplifies the build process with `pnpm`.

chore: update typescript version to 5.9.2 across multiple package.json files
refactor: replace constructor injection with inject function for AppDataService

feat: add commands to build webcomponent and run unit tests

meet.sh: add end-to-end testing support for webcomponent with optional Playwright browser installation

chore: update pnpm version to 10 and streamline test commands in workflows

meet.sh: rename build_webcomponent_only to build_webcomponent and streamline dependency installation

gitignore: add test-results directory to ignore list

meet.sh: rename build_webcomponent_only to build_webcomponent for consistency

Updated pnpm-lock.yml

refactor: streamline build scripts and enhance service start options in meet.sh

ci: update OpenVidu Meet actions to use meet-pnpm-migration version

refactor: update import paths for WebComponentCommand and WebComponentEvent to use shared typings

fix: add moduleNameMapper for typings path in jest configuration

fix: correct action version syntax for OpenVidu Meet setup in workflow

fix: update typings imports to use shared @openvidu-meet/typings package

fix: add skip-install and skip-typings options to meet.sh and update workflows

meet.sh: add development mode command and update start services options

fix: format code in meeting.component.ts and remove unused export in public-api.ts

added openvidu-components-angular to the local workspace and watch for changes in dev mode

fix: update Node.js action to v5 and streamline build steps in wc-unit-test.yaml

fix: remove pnpm install from build scripts in package.json

fix: update backend unit test workflow and add test unit command in meet.sh

fix: update unit test command in package.json to use pnpm exec

Updates import path for LiveKit permissions

Updates the import path for LiveKit permissions to align with the new typings package location, ensuring the test suite remains functional after the project's dependencies are migrated.

fix: remove redundant dependency installation and build steps in start_services function

fix: update Node.js setup action version and adjust OpenVidu actions for pnpm migration

fix: update tsconfig.json to exclude specific type declaration paths

fix: remove deprecated dependencies and update openapi-generate-html version

fix: update build messages and streamline start commands for production and CI modes

fix: update OpenVidu Meet and Testapp actions to use main branch and streamline pre-startup commands

Refactors type import for auth mode

Updates the import path for the authentication transport mode type.

This change ensures consistency across the application by using a centralized type definition.

Refactors backend integration tests

Streamlines the backend integration test workflow.

Consolidates test jobs for better organization and efficiency.
Leverages matrix testing for recordings API with different storage providers.
Improves AWS runner management for recording tests.
Adds artifact cleanup to prevent storage bloat.

Sets up Node.js and pnpm

Adds Node.js and pnpm setup steps to the integration test workflow.

This enables the use of pnpm for managing dependencies during integration tests.

Refactors test commands to use pnpm exec

Updates the test commands in package.json to use `pnpm exec`
for running Jest.

This ensures that the Jest CLI is executed within the pnpm
managed environment, resolving potential path and dependency
issues.

Refactors imports to use the new typings package

Updates imports to use the new `@openvidu-meet/typings` package.
Removes now-unnecessary module name mappings.

This change is part of the pnpm migration, ensuring correct
resolution of shared types.

Enhances backend integration tests and updates Node.js setup

Simplifies integration tests execution

Updates integration test scripts to streamline execution.

- Uses a single, parameterized script to run all backend integration tests.
- Removes redundant prefixes from test script names.

Refactors jest configuration to include moduleNameMapper for improved module resolution

Updates Jest integration test commands to use experimental VM modules and adjusts TypeScript root directory settings for better output structure

Ensures OpenVidu Meet logs are uploaded

Guarantees OpenVidu Meet logs are uploaded as artifacts, regardless of test outcome.

Moves log upload to ensure consistent capture, and does so for all test scenarios.

Commented backend integration tests

Fix build script to specify TypeScript configuration file

Refactor integration test command to use pnpm bin for jest execution

Update integration test commands to use relative paths for Jest execution

Revert "Commented backend integration tests"

This reverts commit 1da8cddb55e29036c2a816244f4bc8b665ede581.

Change log upload condition to trigger on failure for OpenVidu Meet logs

Add caching step for OpenVidu local deployment images in backend integration tests

Revert "Add caching step for OpenVidu local deployment images in backend integration tests"

This reverts commit bf4692d168c671100a88c09853a460ec5417979d.

Enhance AWS runner setup with storage provider matrix and update job names for clarity

Refactor AWS runner setup to separate jobs for S3, ABS, and GCS, enhancing clarity and maintainability

Update README.md to enhance structure and clarity, including detailed sections on prerequisites, getting started, development, and documentation.

Refactor Dockerfile and entrypoint script, remove deprecated image creation scripts, and enhance meet.sh with Docker build functionality and base href support

Update README.md to reflect changes in Docker image build commands using meet.sh

Update package.json to correct versioning and remove redundant entries

Added browser sync for live reloading

chore: update @typescript-eslint packages to version 8.46.1 in frontend and pnpm-lock.yaml

fix: correct argument skipping logic and ensure typings are built in install_dependencies function

Adapt project structure

backend: add TypeScript type annotations for Router instances in route files

fix: update path for nodemon configuration in dev:rest-api-docs script

fix: update paths in webcomponent documentation generation scripts

fix: update Dockerfile and entrypoint script for correct directory structure and improve error handling

fix: update .dockerignore and Dockerfile for improved directory handling and permissions; add backend type checker script

Added all tests files

Updates OpenVidu Meet action refs to main

Updates the OpenVidu Meet GitHub Action references
in the CI workflows to point to the `main` branch.

This ensures that the workflows use the latest version
of the action.
2025-10-15 17:42:04 +02:00
juancarmore
38093f0116 ci: streamline E2E test workflows and remove redundant logging in testapp 2025-09-22 18:12:32 +02:00
juancarmore
465a68295f Rename room config properties to remove redundant "config" suffix 2025-09-18 09:48:19 +02:00
Carlos Santos
75e2485a03 Updated package.json to use exact version numbers for dependencies 2025-09-15 11:55:56 +02:00
juancarmore
40742d22f8 Rename room preferences to room config 2025-09-10 00:22:11 +02:00
juancarmore
686af46102 Refactor webcomponent events to use camelCase and enums to use snake_case naming conventions 2025-09-09 20:01:48 +02:00
juancarmore
273bd9bb6e testapp: enhance deleteAllRooms function to force delete if any room has active meetings and/or recordings 2025-09-05 01:04:33 +02:00
juancarmore
5b2b26fef9 Rename moderatorRoomUrl and speakerRoomUrl to moderatorUrl and speakerUrl across the codebase 2025-08-22 12:22:59 +02:00
juancarmore
1161f1bb21 Rename publisher role to speaker across the application 2025-08-06 22:14:56 +02:00
juancarmore
adcd5d8e8d e2e: update room creation logic to use roomName instead of roomIdPrefix and use roomId as identifier for elements in room list 2025-08-05 17:41:42 +02:00
Carlos Santos
4d306bd402 ci: Enhanced logging 2025-07-28 12:45:16 +02:00
Carlos Santos
160cb3927d testapp: enhance logging and error handling across services and controllers 2025-07-24 18:49:31 +02:00
juancarmore
bf8cb4ba5f Update all package-lock.json files 2025-07-24 00:58:21 +02:00
juancarmore
076a38c9cf testapp: update environment variables and enhance config service for better clarity 2025-07-24 00:33:58 +02:00
juancarmore
a0e23cd4a7 Remove MEETING_ENDED event and always send LEFT event with proper reason 2025-07-19 20:00:07 +02:00
juancarmore
30af786b62 testapp: rename JOIN event to JOINED and add CLOSED event listener 2025-07-19 00:16:28 +02:00
Carlos Santos
b1efbbde49 testapp: update OpenVidu Meet URL and webcomponent source 2025-07-15 11:31:27 +02:00
Carlos Santos
a97480b3a1 testapp: Updated meet url and webcomponent src for pointing to local deployment 2025-07-15 10:44:01 +02:00
juancarmore
2b7466c6e3 testapp: add kick participant functionality and fix view recordings link
- Enhanced the web component to include a kick participant feature.
- Updated the UI to allow moderators to input participant identity for kicking.
- Modified the room controller to handle the new kick participant request.
- Refactored code for better readability and maintainability across various services and controllers.
- Updated the index.mustache and room.mustache templates to reflect changes in functionality.
2025-07-08 23:57:04 +02:00
juancarmore
e1bf07532c testapp: rename API_KEY to MEET_API_KEY for consistency in environment configuration 2025-07-02 20:31:24 +02:00
Carlos Santos
fbcb70dbc2
Add OpenVidu Meet Console implementation (#4)
* frontend: update icons for Rooms and Recordings in console navigation

* frontend: enhance overview component with user stats and improved layout

* frontend: implement theme service and design tokens for light/dark mode support

- Added ThemeService to manage theme preferences and system theme detection.
- Introduced design tokens for consistent styling across light and dark themes.
- Updated components to utilize the new navigation service for routing.
- Replaced SecurityPreferencesComponent with PreferencesComponent for settings.
- Enhanced UI with new styles and improved navigation structure.
- Added tests for ThemeService to ensure functionality.

* frontend: enhance overview component with title styling and icon integration

* frontend: remove unused Router import from overview component

* frontend: implement developers settings with API key and webhook configuration

* frontend: update styles and structure for console navigation and overview components

* frontend: simplify API key checks and integrate notification service for user feedback

* frontend: update openvidu-components-angular to version 3.3.0-dev2 and simplify Material Symbols stylesheet link

* frontend: adjust padding and gap for stat card and actions in overview component

* frontend: update import paths to use relative paths for better module resolution

* frontend: enhance sync-types.sh script with advanced options and detailed usage instructions

* typings: update TypeScript declaration files and improve sync-types.sh script for better clarity and functionality

* webcomponent: webcomponent typings are now moved to typings directory

* Revert "typings: update TypeScript declaration files and improve sync-types.sh script for better clarity and functionality"

This reverts commit 7da952bc44be20c3f74ffb82bf941b96b78ad019.

* typings: improve sync-types.sh script for clarity and consistency

* test: update error message for empty downloaded file check

* frontend: update outbound event message types in video room and web component manager services

* frontend: enhance styling for console component and adjust nav item border radius

* style: update comments in disabled class for clarity and consistency; refactor import paths in room-form component

* typings: update import paths in message.type.ts to include file extensions

* frontend: enhance rooms management interface with improved loading states, search functionality, and table features

* frontend: enhance loading state with improved UI and animations for room loading process

* frontend: enhance rooms table with auto-deletion feature and improve status display

* frontend: update import paths for services and add containsRoute method to NavigationService

* frontend: remove unused components and associated files from shared-meet-components

* frontend: add logo selector component and enhance preferences settings with access controls

* frontend: add SessionStorageService import to extract query params guard

* frontend: add margin-bottom utility class to overview container

* frontend: update description for creating a room in the overview component

* frontend: Added recording list component

* frontend: update padding in mat-sidenav entry to use spacing variable

* frontend: update text for delete room button to use lowercase

* frontend: enhance console navigation with tooltips and active item styling

* frontend: refactor styles in console navigation for consistency and improved theming

* frontend: add border to card header for improved visual separation

* frontend: created room list reusable component

* frontend: adjust vertical alignment of table cells in recording lists

* frontend: enhance room status and auto-deletion indicators with tooltips and improved styling

* frontend: enhance HTTP service methods to include status codes in responses

* frontend: fix duration formatting to use integer seconds instead of fixed-point

* frontend: refactor icon styles in status badge for consistency

* Add modular SCSS structure for design tokens, mixins, animations, and utility classes

- Introduced _animations.scss for keyframes and animation utility classes.
- Refactored _design-tokens.scss to import modular design system files for better maintainability.
- Created _mixins-components.scss for component-specific mixins like cards and buttons.
- Added _mixins-layout.scss for layout-related mixins and responsive design utilities.
- Established _mixins-responsive.scss for breakpoint mixins to facilitate responsive design.
- Introduced _tokens-core.scss for core design tokens including colors, spacing, and typography.
- Created _tokens-themes.scss for theme-specific design tokens for light and dark modes.
- Added _utilities.scss for reusable utility classes to streamline common styling patterns.

* frontend: Refactor styles for settings preferences component and enhance utility classes

- Simplified SCSS for preferences.component.scss by utilizing utility classes for layout and styling.
- Introduced new utility classes for Material components, including slide toggle and navigation list.
- Enhanced form section styling with consistent spacing and layout adjustments.
- Added responsive design patterns for toolbar and table components.
- Improved loading and empty state styles for better user experience.

* frontend: standardize page layout and loading states across components

* frontend: enhance status badge and action button styles for consistency

* ci: update unit test workflow to include typings setup

* test: update import path for WebComponentCommand to typings directory

* frontend: refactor dialog component structure and enhance styles for improved accessibility and responsiveness

* frontend: rename batchDelete methods to bulkDelete for consistency

* frontend: implement confirmation dialog for room deletion with improved error handling

* frontend: extract feature-specific API logic from HttpService into dedicated services

* frontend: extract common recording actions into RecordingManagerService

* frontend: refactor navigation handling for improved consistency

* backend: add endpoint to download multiple recordings in a zip file and refactor bulkDeleteRecordings to delete only recordings from the same room if recording token is provided

* openapi: add download endpoint for recordings and update bulk delete logic to enforce room constraints

* frontend: enhance recording media URL generation and add bulk delete and download functionalities

* frontend: rename 'batchDownload' to 'bulkDownload' for consistency and implement missing methods in RecordingsComponent

* frontend: Implement Room Creation Wizard with Step Indicator and Navigation

- Added StepIndicatorComponent for visual step tracking in the wizard.
- Created WizardNavComponent for navigation controls (Next, Previous, Cancel, Finish).
- Developed RoomWizardComponent to manage the wizard's state and steps.
- Introduced WizardStateService to handle the wizard's data and navigation logic.
- Defined WizardStep and WizardNavigationConfig models for step management.
- Implemented basic structure for individual steps: Basic Info, Recording Settings, Recording Trigger, Recording Layout, and Preferences.
- Integrated components into the room creation flow, allowing users to navigate through steps.
- Added unit tests for all new components and services to ensure functionality.

* feat(wizard): enhance wizard functionality and UI

- Added validation form groups to WizardStep interface for better form handling.
- Updated WizardNavigationConfig to include customizable button labels and states.
- Implemented step navigation with event handling in room-wizard component.
- Refactored basic info step into a standalone component with reactive form support.
- Improved styling for the basic info step and action buttons.
- Enhanced wizard state management to handle dynamic step visibility based on user input.
- Added methods for loading existing data and saving form changes automatically.
- Updated tests to reflect changes in component structure and functionality.

* feat(recording-preferences): implement recording preferences step with form and options

* feat(room-wizard): add recording trigger step with selectable options and form handling

* feat(recording-preferences): refactor option selection to use SelectableCard component and update styles

* test: add tests for download recordings endpoint and update tests for bulk delete recordings

* openapi: improve descriptions for bulk delete operations and add new response for marked rooms

* frontend: update bulk actions and add sharing functionality in RecordingsComponent, and enhace RecordingListsComponent

* frontend: implement bulkDeleteRooms method and enhace RoomsComponent and RoomListsComponent

* typings: add MeetApiKey interface

* backend: update API key handling to use MeetApiKey type

* openapi: create API key schema and update response references

* backend: add webhook URL testing functionality and validation

* frontend: simplify HTTP request methods by removing response observation

* frontend: streamline OverviewComponent by removing unused observables and simplifying data loading

* frontend: add API key management methods to AuthService

* frontend: enhance GlobalPreferencesService by adding webhook preferences management

* frontend: refactor DevelopersSettingsComponent to improve API key handling and streamline webhook configuration

* openapi: add webhook URL testing endpoint with request and response schemas

* test: add tests for webhook URL validation

* frontend: enhance PreferencesComponent and add changePassword method in AuthService

* feat(recording-preferences): add recording access control options and enhance UI animations

* feat(recording-layout): implement recording layout selection step with form handling and visual options

* feat(room-preferences): implement room preferences step with form handling and toggle options

* feat(room-wizard): enhance form handling and default value saving across components

* feat(layouts): add new layout images for grid, single speaker, and speaker configurations

* feat(developers): adjust API key field button padding and update spacing in API key display

* feat(rooms-lists): enhance button formatting and add tooltips for room status and auto-deletion

* feat(room-wizard): update room creation logic and form field names for consistency

* feat(room-wizard): add skip button functionality and enhance navigation handling

* feat(basic-info): simplify form layout by removing action buttons and related styles

* fix(wizard-navigation): change currentStepId type from string to number for consistency

* feat(styles): enhance button padding and hover effect in batch actions for improved usability

* fix(wizard-navigation): adjust padding for improved layout consistency

* feat(basic-info): add clear button for deletion date and enhance time selection layout

* feat(rooms-list): enhance deletion date display with new styling and structure

* fix(basic-info): remove debugger statement from saveFormData method

* refactor(step-indicator): remove commented-out styles for cleaner code

* feat(step-indicator): enhance responsive layout handling and emit layout changes

* feat(overview): improve loading state handling and update stats management

* feat(step-indicator): enable navigation between steps and improve layout handling

* feat(room-wizard): refactor state management to use MeetRoomOptions and improve data handling across components

* feat(step-indicator): enhance layout handling and improve text overflow management for better responsiveness

* feat(step-indicator): update step properties to enhance navigation and state management

* feat(room-wizard): add 'Create Room' label to finish button in navigation config

* openapi: add force-deletion parameter to delete room endpoint

* frontend: split code in ContextService into domain specific services and rename it to AppDataSerivce

* frontend: enhace FeatureConfigurationService to use signal-based approach and remove unused preferences and permissions

* feat(basic-info): update deletion hint icon and improve warning color consistency

* feat(room-service): rename saveRoomPreferences to updateRoom and adjust API path for preference updates

* feat(room-wizard): implement edit mode for room configuration, allowing users to update existing room settings

* feat(pro-feature-badge): create ProFeatureBadge component and integrate into logo selector and selectable card

* fix(recording): adjust compression level for zip archive in downloadRecordingsZip

* fix(internal-config): remove FIXME comments related to LK bug for meeting timeouts

* frontend: reorganize imports and remove unused components

* refactor(console): rename 'Developers' to 'Embedded' in navigation and update related routes

* fix(console-nav): update toolbar title from 'OpenVidu Console' to 'OpenVidu Meet'

* feat(users-permissions): create UsersPermissions component and update routing

* feat(users-permissions): add pro feature badge to user authentication section

* fix(overview): update navigation and text from 'Developers' to 'Embedded'

* feat(overview): update authentication configuration card and navigation

* frontend: refactor RoomRecordingsComponent to use RecordingListsComponent

* refactor: update API paths to remove 'meet' prefix for consistency

* frontend: update navigation paths to remove 'console' prefix for consistency

* feat(video-room): add leave and end meeting functionality with toolbar buttons

* fix(overview): remove unnecessary comment on initial loading state

* feat(wizard): enable quick create functionality in wizard navigation

* feat(step-indicator): implement safe current step index handling for edit mode

* feat(wizard): update quick create visibility to show only on first step in edit mode

* feat(users-permissions): refactor admin password handling and validation

* webcomponent: update Playwright dependencies and refactor leaveRoom functionality

- Updated Playwright and Playwright Test versions in package.json to 1.53.2.
- Refactored leaveRoom function to accept a role parameter, allowing for different behavior based on user role (moderator or publisher).
- Updated E2E tests to utilize the new leaveRoom function, ensuring proper cleanup and behavior for both roles.
- Removed unnecessary afterEach cleanup in UI Feature Preferences tests.

* frontend: add IDs to leave and end meeting buttons for better accessibility

* testapp: update package-lock.json and refactor ConfigService constructor for improved environment variable handling

* frontend: update background colors for improved visual consistency

* chore: add tslib dependency and enhance target directory validation in sync-types.sh

* frontend: enhance accessibility by adding IDs to toolbar and form elements

---------

Co-authored-by: juancarmore <juancar_more2@hotmail.com>
2025-07-02 17:00:43 +02:00
Carlos Santos
dd1c27730e testapp: rename API_KEY to MEET_API_KEY and update related references 2025-06-24 18:51:42 +02:00
Carlos Santos
8221368aa0 testapp: log environment variables on server start for better visibility 2025-06-24 18:47:03 +02:00
Carlos Santos
eb9de7e9de testapp: update button IDs for delete all rooms and recordings for consistency 2025-06-12 11:27:12 +02:00
Carlos Santos
21fbeec258 testapp: add functionality to delete all recordings and enhance UI for action buttons 2025-06-12 11:11:36 +02:00
Carlos Santos
e7fba001e4 testapp: enhance room creation form with preferences handling and responsive design 2025-06-09 17:50:58 +02:00
Carlos Santos
64789951d3 testapp: add functionality to delete all rooms and add core tests 2025-06-06 12:32:10 +02:00
Carlos Santos
b25b80fc6e test: mark moderator join event test as only for focused execution
testapp: ensure roomId is defined before rendering stored webhook events

testapp: correct build script to include build:client step

ci: reduce log retention days from 7 to 2 for various artifacts

test: remove 'only' from moderator join event test for full execution

testapp: correct build script order in package.json for proper execution

frontend: update openvidu-components-angular to version 3.2.0-dev17 in package.json and package-lock.json

webcomponent: remove unnecessary comment from playwright configuration file
2025-05-14 17:39:46 +02:00
Carlos Santos
0b5462a569 testapp: change event log insertion to prepend new events 2025-05-14 13:58:05 +02:00
Carlos Santos
f0c2e6e275 testapp: correct attribute typo in meeting container for OpenVidu component 2025-05-14 11:03:08 +02:00
Carlos Santos
c9d816b3b8 testapp: update build script to include copying public assets to dist/testapp 2025-05-13 17:11:04 +02:00
Carlos Santos
d8e9f624c3 testapp: update start script path to point to the correct index file in testapp 2025-05-13 14:30:39 +02:00
Carlos Santos
492a70251d testapp: update build script to specify root directory and remove unused service and type files 2025-05-13 14:17:03 +02:00
Carlos Santos
8993cab2e8 testapp: enhance webhook event handling 2025-05-13 13:12:51 +02:00
Carlos Santos
6a8bae5dec testapp: enhance webhook event handling and storage; update room ID handling in forms 2025-05-12 12:57:33 +02:00
Carlos Santos
654d082e9c testapp: Updated testapp 2025-05-09 16:40:38 +02:00
Carlos Santos
a0964aa4ca testapp: delete home.ts and videoRoom.ts files 2025-05-09 16:40:04 +02:00
Carlos Santos
347d9472e0 testapp: Improve testsapp using Typescript 2025-05-08 12:52:34 +02:00
Carlos Santos
b300425a2e frontend: Rename expirationDate to autoDeletionDate in room-related components and services for consistency 2025-04-08 18:36:37 +02:00
Carlos Santos
675050b7a4 testapp: Refactor room-related terminology from 'roomName' to 'roomId' in homeController and views 2025-04-01 19:00:20 +02:00
Carlos Santos
2645455b50 Add testing application for OpenVidu Meet with room management and webhook handling 2025-03-12 11:29:16 +01:00