Commit Graph

372 Commits

Author SHA1 Message Date
João Victor
a45eea5a26 Remove Meteor imports 2024-06-14 16:54:31 -03:00
João Victor Nunes
5d3178f15d
refactor(guest-wait): turn guest wait page into a React component (#20344)
* refactor(guest-wait): turn guest wait page into a React component

* Fix rendering when the meeting is ended

* refactor(guest-wait): Backend portion for migration of `guest-wait` to Graphql

* Add message timeout

* Remove static guest wait page

---------

Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2024-06-05 17:41:23 -03:00
Gustavo Trott
9286219d02 html5: remove seemingly unnecessary files 2024-05-13 09:54:45 -03:00
Anton Georgiev
205d110f5b
Merge pull request #20104 from Tainan404/remove-redis
!remove: Frontend Redis client listener
2024-05-03 09:02:08 -04:00
Anton Georgiev
7c667453ca
Merge pull request #19812 from antobinary/march15-02
fix(bbb-html5): customHeartbeat would not close stale sessions (port)
2024-04-30 09:29:46 -04:00
Tainan Felipe
e58086c99e Remove: Frontend Redis client listener 2024-04-26 11:01:50 -03:00
Tainan Felipe
3d9a0fc75e Remove: auth token validation code from frontend 2024-04-22 21:42:48 -03:00
Ramón Souza
788cf799f7
refactor: make bbb client work without meteor service (partial) (#19869) 2024-03-21 16:41:32 -03:00
prlanzarin
a968c8939c Meteor frontends may crash when customHeartbeat is enabled
due to an undefined access in the heartbeat`s logger.

Add optional chaining to the session props access so it won`t crash and
tune down some log levels around that area.
2024-03-15 11:32:47 -04:00
prlanzarin
4df5a5dd9d fix(bbb-html5): customHeartbeat would not close stale sessions, +
The [disabled by default] custom heartbeat included in Meteor's server
does not end connections when they are considered unhealthy/stale, which
deviates a bit from the default implementation. See:
https://github.com/bigbluebutton/bigbluebutton/pull/11486.

This commit includes a call to the default heartbeat termination timeout
so sockets are correctly cleaned up when the custom heartbeat is
activated. It also adds a customHeartbeatUseDataFrames config to allow
controlling whether the custom heartbeat should use WS data frames as
valid heartbeats as well - this should only be useful for
testing/debugging purposes and the default behavior (true) is
maintained.

As a side note: this change spun off from an investigation where some
problematic networks were triggering periodic client re-connects due to
the default heartbeat failing. Investigation points to the control
frames being put alongside fragmented WS data frames and the server side
failing to recognize the former - which means pong frames would be missed and
the health check would fail. Since the default heartbeat _does not_
account for data frame traffic (eg DDP payloads), it would shut down the
client's WS even though it was healthy.
The custom heartbeat _does_ account for data frames, which mitigates
that scenario and prevents unecessary reconnections.
2024-03-15 11:18:27 -04:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
Anton Georgiev
ec2ad5ed45 chore: upgrade NodeJS to 18 2023-06-13 12:08:58 -04:00
Ramón Souza
014dfa2670 adjust defaultsDeep merge 2023-03-01 16:48:08 -03:00
Ramón Souza
aa47aaa22a replace lodash merge and mergeWith 2023-03-01 11:52:39 -03:00
Ramón Souza
8315abc2c0 replace lodash find and isArray 2023-02-21 10:14:56 -03:00
Ramón Souza
077592df18
Merge pull request #15745 from germanocaumo/dup-ann-ws-fix
fix(whiteboard): annotations duplication in websocket/collection
2022-10-03 15:10:59 -03:00
Ramón Souza
4b4afb6916 remove empty object in logs 2022-10-03 13:48:00 -03:00
germanocaumo
d770a7df8c fix(whiteboard): only call annotation upsert in one frontend instance
We were calling upsert in the Annotations collection for the same annotation in all frontend instances, this could lead to the same annotation being inserted
multiple times with different ids due to concurrency.

Added the html5InstanceId of the original request to the redis message so we can use it to only call upsert in one instance.
2022-09-28 12:03:59 +00:00
Ramón Souza
ab50d4d60e add settings 2022-09-16 13:01:07 -03:00
Ramón Souza
706014430c change server name format and add timestamp to logs 2022-09-16 11:09:21 -03:00
Ramón Souza
485103ff93 include server role and instance in logs 2022-09-16 11:09:12 -03:00
Ramón Souza
7bb26b64ff add server health log 2022-09-16 11:09:04 -03:00
Ramon Souza
07f9a192b9 Merge remote-tracking branch 'upstream/v2.4.x-release' into merge-2425-apr27 2022-04-27 15:32:20 -03:00
Gustavo Trott
720a986d86 Remove html5client/useragent handler 2022-04-25 20:47:59 -03:00
germanocaumo
cacba3c7e7 feat(html5): add meteor rtt as prometheus metric 2022-04-08 14:27:35 +00:00
germanocaumo
640fe57a26 fix(html5): rename stream-cursor prom metric
Removes meetintId info from the event name in prometheus metric to better concur with other events.
2022-04-08 14:22:29 +00:00
germanocaumo
a04fbc56e1 feat(html5): add error logs and redis prometheus metrics
New config: settings.private.prometheus.collectRedisMetrics disabled by default
2022-04-08 14:21:55 +00:00
Ramón Souza
dba04834c7 Merge remote-tracking branch 'upstream/v2.4.x-release' into 2524-feb08 2022-02-09 15:52:42 +00:00
Joao Victor
a0434ff1e0 Change message queue concurrency to 1 2022-02-01 14:20:08 -03:00
Joao Victor
fbb807208e Undo presentation queue implementation 2022-02-01 14:18:16 -03:00
Joao Victor
914739ffc2 Add chaining operator 2022-01-28 10:18:55 -03:00
Joao Victor
da13e0aa93 Add own message queue for presentations 2022-01-28 09:59:41 -03:00
Pedro Beschorner Marin
810deb907b refactor(etherpad): access control et al.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.

- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
2022-01-21 16:56:01 -03:00
Ramón Souza
4b1f1594b1 replace arrays in configuration override 2021-11-24 17:09:06 +00:00
KDSBrowne
e184912311 prevent properties of undefined (reading 'toUpperCase') 2021-11-22 00:55:51 +00:00
Mario Jr
1ee9203fad fix: enable useLocationOrigin in dynamic-import
This makes meteor to work with a reverse proxy, without changing it's
settings
2021-11-09 12:10:25 -03:00
germanocaumo
3dd679761f Merge branch 'v2.4.x-release' of https://github.com/bigbluebutton/bigbluebutton into f-h-prom-agent 2021-11-05 19:38:40 +00:00
germanocaumo
6f1e1d4f4a refactor(prom-html5): serve endpoint via meteor instead of http server +
- separate backend/frontend metrics, only add metrics related to the role
- add role and instance labels
2021-11-05 16:31:23 +00:00
prlanzarin
b677f805c1 refactor(virtual-backgrounds): move WASM binaries to public, let nginx serve them 2021-10-14 03:50:39 +00:00
Paulo Lanzarin
ced2b27f84 refactor: remove unused gauge in bbb-html5 metrics 2021-10-06 19:03:36 +00:00
germanocaumo
8b2fd271de feat(html5-server): add number of meteor methods metric in prometheus 2021-10-06 19:02:36 +00:00
germanocaumo
e5b012d007 refactor(html5-prom): use ES6 imports/exports 2021-10-06 18:56:55 +00:00
germanocaumo
30db4a4122 refactor(html5-prometheus): remove MCS references and change default port 2021-10-06 18:56:32 +00:00
germanocaumo
a0580431e0 feat(html5-server): add prometheus default instrumentation
Adds prometheus client to collect html5 server metrics.
Only default Node.js metrics in this initial version.

Enable via configs in private.app.prometheus
2021-10-06 18:55:19 +00:00
prlanzarin
9071ba8bc4 refactor(virtual-backgrounds): re-organize virtual background code
Changes (maybe not a complete list):
  - Disable virtualbgs by default
  - Move the virtualbg selector in video-preview to the side below the
profile selection
  - Restore old video-preview sizes
  - Add a wrapper class for MediaStreams (BBBVideoStream)
  - Centralize virtualbg services and business logic code into BBBVideoStream
  - Refactor and centralize virtualbg constant fetching
  - Refactor and centralize virtualbg config fetching
  - Organize virtualbg type definitions
  - Remove added states in video-provider to prevent further bloat
  - Remove added states in video-preview to prevent further bloat
  - Lock virtual bg switching while video-preview itself is locked
  - Add proper virtualbg error surfacing via toasts
  - Refactor iOS availability detection to use centralized UA checker
  - Avoid calling gUM when toggling virtualbgs on/off
  - Make virtualbg video-list-item action a toggle instead of a
state-aware action
  - Make virtualbg switching work in video-preview for cameras that are
already shared. Especially useful when there are multiple source
cameras, and will be important in the near future
  - Add Derivative Work notices in files that are partially copied from
jitsi-meet
  - Simplify track replacing in video-provider
  - Split video-preview UI code for virtualbgs into a separate functional component
2021-07-22 18:53:42 +00:00
Bartu Bazna
9f791a8892 Squashed virtual background commits 2021-07-21 20:00:19 +00:00
Anton Georgiev
6cf863ff3d
Merge pull request #12604 from KDSBrowne/bbb-api-unit-tests
test: Add Unit Tests For Meteor Polls API
2021-07-06 16:56:46 -04:00
Anton Georgiev
b9cc633286 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.3.5-into-develop 2021-07-06 19:36:19 +00:00
Anton Georgiev
b5851aa152 removeUser: handle connections in frontends, db changes in backend 2021-06-30 20:08:00 +00:00
Joao Siebel
f23cdf4dbf Restore mongo metrics feature 2021-06-28 12:00:09 -03:00