Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use runuser instead of sudo #19228

Closed
wants to merge 433 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
433 commits
Select commit Hold shift + click to select a range
589394f
Merge pull request #18886 from gustavotrott/graphql-pres-name-default
gustavotrott Oct 2, 2023
5e6b263
disable self-view test
gabriellpr Oct 3, 2023
4794d10
Merge pull request #18859 from gustavotrott/fix-graphql-webcamsOnlyFo…
gustavotrott Oct 3, 2023
7054b3f
Merge pull request #18865 from paultrudel/delete-pres-db
gustavotrott Oct 3, 2023
b298aec
add new columns to query
ramonlsouza Oct 3, 2023
b4981d6
Merge remote-tracking branch 'upstream/v3.0.x-release' into throttle-…
ramonlsouza Oct 3, 2023
d1c101c
skipping failing test on ci
gabriellpr Oct 3, 2023
2da43f6
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 3, 2023
b2418c4
add presentation info + lock settings
ramonlsouza Oct 3, 2023
524443c
graphql: Apply hideViewerCursor and hideViewersAnnotation
gustavotrott Oct 3, 2023
9d4aff3
Merge pull request #18888 from gabriellpr/test-new-features
ramonlsouza Oct 3, 2023
78f6757
Merge pull request #18889 from gustavotrott/graphql-hideViewersAnnota…
gustavotrott Oct 3, 2023
7583f24
update font-size reference screenshot
antonbsa Oct 3, 2023
633d2ae
Merge pull request #10 from antonbsa/pr-18857
ramonlsouza Oct 3, 2023
31c853f
Merge pull request #18881 from Scroody/fix-checkout-msg-format
ramonlsouza Oct 3, 2023
128e89f
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 4, 2023
81ce8ad
remove withTracker
ramonlsouza Oct 4, 2023
122fd94
fix: do not display typing indicator if chat is locked
ramonlsouza Oct 4, 2023
4b8be5b
Merge branch 'throttle-timeout' of github.com:ramonlsouza/bigbluebutt…
ramonlsouza Oct 4, 2023
b2de9c4
fix typescript errors
ramonlsouza Oct 4, 2023
5c8bbe6
graphql: Update meeting duration when breakout duration is updated
gustavotrott Oct 4, 2023
80c250f
remove duplicated props
ramonlsouza Oct 4, 2023
f0eaa11
Fix:[3.0] Scrolling down the user list to the end will jump to the be…
Scroody Oct 4, 2023
264d05c
[plugin-sdk-issue-33] - implemented menu badge
GuiLeme Oct 4, 2023
5339ed2
Merge remote-tracking branch 'upstream/v3.0.x-release' into throttle-…
ramonlsouza Oct 4, 2023
4ed3531
isolate podId
ramonlsouza Oct 4, 2023
d62b40b
Merge pull request #18894 from gustavotrott/graphql-bkroom-time
gustavotrott Oct 4, 2023
d1de872
Merge pull request #18857 from ramonlsouza/throttle-timeout
ramonlsouza Oct 4, 2023
d427411
Merge pull request #18896 from Scroody/I-18861
ramonlsouza Oct 4, 2023
2e02093
fix: unlocked users cant send chat msg
gustavotrott Oct 4, 2023
a2e2d05
fix (graphql-middleware): Client can't send new graphql queries after…
gustavotrott Oct 4, 2023
59fe42b
Merge pull request #18901 from gustavotrott/graphql-actions-fix-SendG…
gustavotrott Oct 4, 2023
202b69d
[plugin-sdk-issue-32] - refactor
GuiLeme Oct 5, 2023
abb5a2f
[plugin-sdk-issue-32] - bump version sdk
GuiLeme Oct 5, 2023
2fa23ca
adds check for typing indicator
gabriellpr Oct 6, 2023
243c8f3
Merge pull request #18882 from GuiLeme/plugin-sdk-issue-32
ramonlsouza Oct 6, 2023
34692f5
Fix: shortcut hook
Scroody Oct 6, 2023
ab0ff67
Update useShortcut.tsx
Scroody Oct 6, 2023
f05cfd0
Refactor: migrate waitingUserPanel to TS and graphql (#18677)
Tainan404 Oct 6, 2023
35f25f8
Merge pull request #18903 from gabriellpr/test-rm-flaky
ramonlsouza Oct 6, 2023
de514dc
Add new shell scripts useful for development (#18905)
gustavotrott Oct 6, 2023
20ff168
Merge pull request #18904 from Scroody/fix-shortcut-hook
ramonlsouza Oct 6, 2023
e32ad70
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 9, 2023
05dabfc
Merge remote-tracking branch 'upstream/v3.0.x-release' into plugin-sd…
GuiLeme Oct 9, 2023
59cfa66
[plugin-sdk-issue-33] - fixed ts lint errors
GuiLeme Oct 9, 2023
2f9b2d1
move parseCurrentSlideContent to component
ramonlsouza Oct 9, 2023
4408074
Merge branch 'v3.0.x-release' into migrate-waiting-user-on-userlist
Tainan404 Oct 9, 2023
a652a3f
Client: Changes to formatation of welcome messages
Scroody Oct 9, 2023
e657409
remove unused code in presentation service
ramonlsouza Oct 9, 2023
bdc4c4e
Merge pull request #18910 from Scroody/welcome-msg-changes
ramonlsouza Oct 9, 2023
70b5189
Merge remote-tracking branch 'upstream/v3.0.x-release' into plugin-sd…
GuiLeme Oct 9, 2023
00d2e8d
updating screenshots
gabriellpr Oct 9, 2023
4344dbb
remove unused fields in whiteboard queries
ramonlsouza Oct 10, 2023
6121261
Merge pull request #18897 from GuiLeme/plugin-sdk-issue-33
ramonlsouza Oct 10, 2023
6f43570
Fix: Timer not showing hour scale, but showing minutes instead
Tainan404 Oct 10, 2023
de4dd08
Fix: Reset not working
Tainan404 Oct 10, 2023
9988c4b
Merge pull request #18912 from gabriellpr/fix-options-test
ramonlsouza Oct 10, 2023
7761871
Fix: timer not getting right time
Tainan404 Oct 10, 2023
1ffa86c
Fix: Chat input losing focus
Scroody Oct 10, 2023
ab3c57b
Merge pull request #18925 from Scroody/fix-chat-input-focus
ramonlsouza Oct 10, 2023
4ef078c
feature: Override client settings through API /create call (#18782)
GuiLeme Oct 11, 2023
6418e47
Add meeting.clientSettings to graphql
gustavotrott Oct 11, 2023
d6af7aa
graphql: Fix permission for pres_annotation_curr
gustavotrott Oct 11, 2023
73f48ff
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 11, 2023
b99c75f
move currentSlideId out of withTracker
ramonlsouza Oct 11, 2023
3a40ac2
Merge pull request #18926 from gustavotrott/graphql-client-settings-30
gustavotrott Oct 11, 2023
9b90861
Set clientSettingsJson as jsonb on bbb_schema.sql
gustavotrott Oct 11, 2023
b3f74c9
remove unused code
ramonlsouza Oct 11, 2023
37182c5
remove presentation-pod component + presentation service
ramonlsouza Oct 11, 2023
5209b10
graphql: Adds prop downloadFileExtension to pres_presentation
gustavotrott Oct 11, 2023
10be312
remove podId param from components
ramonlsouza Oct 11, 2023
456fe98
remove whiteboard/presentation subscriptions
ramonlsouza Oct 11, 2023
8528dc7
restore minimize presentation button
ramonlsouza Oct 11, 2023
0e8c0e7
Merge pull request #18929 from gustavotrott/graphql-pres-downloadFile…
gustavotrott Oct 11, 2023
ee02ffe
restore multi user whiteboard toolbar
ramonlsouza Oct 11, 2023
015eb2b
graphql: Force locked=false for Moderators
gustavotrott Oct 12, 2023
c9ad508
remove presentation-area component
ramonlsouza Oct 12, 2023
9856354
Set duration prop as seconds
gustavotrott Oct 12, 2023
3aa025f
Merge pull request #18932 from gustavotrott/graphql-moderator-always-…
gustavotrott Oct 12, 2023
0424847
remove cursor stream listener - meteor
ramonlsouza Oct 12, 2023
4dd7bdf
migrate presentation-menu
ramonlsouza Oct 12, 2023
1962b10
migrate presentation-toolbar
ramonlsouza Oct 12, 2023
7727593
use real number of pages on whiteboard mount
ramonlsouza Oct 12, 2023
5885db0
remove clearCursors on multi user session end - to be done in back-end
ramonlsouza Oct 12, 2023
8fe6a01
Modify regex to parse decimal numbers
paultrudel Oct 13, 2023
21a0595
Merge pull request #18941 from paultrudel/pres-dim-error-fix-30
gustavotrott Oct 13, 2023
c614348
Adds potrace as requirement for bbb-web and log errors of imagemagick
gustavotrott Oct 16, 2023
2d5b3ad
remove unused code
ramonlsouza Oct 16, 2023
1a3d6bb
use graphql in presentation uploader component
ramonlsouza Oct 16, 2023
419eb6b
Store presentation content in Postgres
paultrudel Oct 16, 2023
a2339a2
Sanitize the XML content removing DOCTYPE
gustavotrott Oct 17, 2023
beaa13a
Close svg source to close connection
gustavotrott Oct 17, 2023
06e17f0
remove "a" in user avatar
ramonlsouza Oct 17, 2023
358d4d0
fake-video to improve tests, and share camera as content test
gabriellpr Oct 17, 2023
2549fec
Merge pull request #18950 from ramonlsouza/avatar-name-fix
ramonlsouza Oct 17, 2023
1575a09
use graphql to fetch presentation list in actions dropdown
ramonlsouza Oct 17, 2023
14fded8
remove annotation stream listener - meteor
ramonlsouza Oct 17, 2023
41515e8
fix undo/redo
ramonlsouza Oct 17, 2023
0931003
Graphql: refactor presentation props
gustavotrott Oct 17, 2023
e31158d
Merge pull request #18954 from gustavotrott/graphql-pres-status-refactor
gustavotrott Oct 17, 2023
0ef4598
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 17, 2023
e263490
rename graphql fields
ramonlsouza Oct 17, 2023
1a48ae9
remove parse from json fields, directly query for svg url in presenta…
ramonlsouza Oct 17, 2023
750a06c
Merge pull request #18944 from gustavotrott/fix-sharedNotes-emoji-to-…
gustavotrott Oct 17, 2023
8c76b9f
Merge branch 'v3.0.x-release' into pres-content-from-uri-30
paultrudel Oct 17, 2023
d72a1ae
updating presentations screenshots
gabriellpr Oct 17, 2023
c2ed844
adjust query
ramonlsouza Oct 17, 2023
fdc4252
changing screenshots
gabriellpr Oct 18, 2023
327c4f0
Client: Focus on input when clicking chat
Scroody Oct 18, 2023
65a3e00
later changes
Scroody Oct 18, 2023
60a2d0a
increasing uploadtoast timeout
gabriellpr Oct 18, 2023
adaea32
linked issue related to the diff between screenshots in ci and local …
gabriellpr Oct 18, 2023
99ce048
Update bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilde…
paultrudel Oct 18, 2023
25b334f
Update bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilde…
paultrudel Oct 18, 2023
eb9d7c9
Merge pull request #18955 from paultrudel/pres-content-from-uri-30
gustavotrott Oct 18, 2023
20a5010
move presentation uploader toast out of uploader component
ramonlsouza Oct 19, 2023
81a8b15
Merge pull request #18956 from gabriellpr/fix-screenshots-presentation
ramonlsouza Oct 19, 2023
a5f8a9d
Add captions from PAD into audio_captions table
gustavotrott Oct 19, 2023
c97a351
move export toast to toast component
ramonlsouza Oct 19, 2023
48feb9f
update metadata
ramonlsouza Oct 19, 2023
da737b7
remove presentations collection from uploader service
ramonlsouza Oct 20, 2023
0b0e8ec
fix remove presentation button
ramonlsouza Oct 20, 2023
0322ea2
fix set slide length when presentation is removed
ramonlsouza Oct 20, 2023
56124ca
Set current time when timer reset
paultrudel Oct 20, 2023
610c1cb
Reset started at to 0 if timer not running
paultrudel Oct 20, 2023
2959c8a
Add Type Caption to graphql
gustavotrott Oct 23, 2023
5952fae
Update bigbluebutton-html5/imports/ui/components/chat/chat-graphql/ch…
ramonlsouza Oct 23, 2023
fc18772
Merge pull request #18968 from Scroody/fix-chat-input-focus
ramonlsouza Oct 23, 2023
fed221f
fix markdown links
ramonlsouza Oct 24, 2023
7904a85
test for the timer and stopwatch
gabriellpr Oct 24, 2023
c14cb70
data-test for testing
gabriellpr Oct 24, 2023
08aa162
Merge pull request #18997 from ramonlsouza/fix-markdown
ramonlsouza Oct 24, 2023
7c06dc3
Merge remote-tracking branch 'upstream/v3.0.x-release' into fake-vide…
gabriellpr Oct 24, 2023
cedf0a5
fix whiteboard access label in userlist
ramonlsouza Oct 24, 2023
c138433
add test for the timer
gabriellpr Oct 24, 2023
e917d91
Merge pull request #18998 from ramonlsouza/fix-whiteboard-access-label
ramonlsouza Oct 24, 2023
7bcddfe
stopwatch and timer test
gabriellpr Oct 25, 2023
7f13708
changing fake video
gabriellpr Oct 25, 2023
ef84eb0
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 25, 2023
2448cb7
fix presentation download dropdown
ramonlsouza Oct 25, 2023
e274cb5
few improvements on the test
gabriellpr Oct 25, 2023
4d37f45
fix converting presentations toast
ramonlsouza Oct 26, 2023
0143b1f
fix default value for presentation lock settings
ramonlsouza Oct 26, 2023
55ccf52
graphql: Add pluginDataChannelMessage and associated back-end (#18999)
gustavotrott Oct 26, 2023
175ee1c
Requires a current page to set a presentation as current
gustavotrott Oct 26, 2023
5b8ec41
Merge pull request #11 from gustavotrott/pr-18928
ramonlsouza Oct 26, 2023
fb60a02
feat(plugin): Add plugin data channels (#19009)
GuiLeme Oct 26, 2023
d37624c
[correct-path-data-channel] - changes in review
GuiLeme Oct 27, 2023
c65b510
Merge pull request #19013 from GuiLeme/correct-path-data-channel
gustavotrott Oct 27, 2023
b1ac679
Refactor: Migrate breakout room creation to graphql
Tainan404 Oct 27, 2023
769b61e
client side poll results
ramonlsouza Oct 27, 2023
b5b6d45
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Oct 27, 2023
bbbf6f7
[plugin-sdk-fix-data-channel-dispatcher] - fix dispatcher (#19015)
GuiLeme Oct 27, 2023
8648a4c
feat(plugin): use latest plugin SDK version (#19016)
GuiLeme Oct 27, 2023
a04dedc
fix incorrect state in presentation uploader
ramonlsouza Oct 27, 2023
fb22442
refactor update Presentations on Hasura
gustavotrott Oct 27, 2023
759feff
remove cursor locked check
ramonlsouza Oct 30, 2023
a5ba545
Add support to user update
Tainan404 Oct 30, 2023
4d8a17f
Fix: ts errors
Tainan404 Oct 30, 2023
ddc1627
fix keyboard access on chat list
ramonlsouza Oct 30, 2023
d975ee3
Add aggregation rule to hasura
Tainan404 Oct 30, 2023
bd2e681
Merge branch 'migrate-waiting-user-on-userlist' of github.com:Tainan4…
Tainan404 Oct 30, 2023
f6babd5
feat(plugin): New Hook useUsersOverview (#19028)
GuiLeme Oct 30, 2023
aa051fc
Fix: Chat poll results
Scroody Oct 30, 2023
ff07fd3
Merge pull request #19037 from ramonlsouza/fix-chat-roving
ramonlsouza Oct 30, 2023
2d6da12
Client: Multi user white board number clickable
Scroody Oct 30, 2023
bc5ac50
Fix: Talking indicador too close from user list button
Scroody Oct 30, 2023
a4154bb
Merge pull request #19038 from Scroody/fix-chat-poll-results
ramonlsouza Oct 30, 2023
2c850ca
Update bigbluebutton-html5/imports/ui/components/presentation/present…
ramonlsouza Oct 31, 2023
b1ef4a8
Merge pull request #19039 from Scroody/muwb-number-pointer
ramonlsouza Oct 31, 2023
117690d
Merge pull request #19040 from Scroody/talking-indicador-margin
ramonlsouza Oct 31, 2023
1eb1bcc
Merge pull request #18991 from paultrudel/reset-timer-graphql
gustavotrott Oct 31, 2023
3457413
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Nov 1, 2023
5ccb66c
improve throttle function
ramonlsouza Nov 1, 2023
8f0ecf2
Insert presentation on UploadTokenReq
gustavotrott Nov 1, 2023
acdf310
refactor (graphql-server): Rename userLocalSettings to userClientSett…
gustavotrott Nov 1, 2023
3c31cf9
Merge pull request #19048 from ramonlsouza/throttle-up
ramonlsouza Nov 1, 2023
9cb40ba
Fix order of who is typing
gustavotrott Nov 1, 2023
9896f4c
Merge pull request #19029 from gustavotrott/fix-graphql-pres-default
gustavotrott Nov 1, 2023
10d9a94
Merge pull request #18838 from Tainan404/migrate-time-indicator
ramonlsouza Nov 2, 2023
1919fe0
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Nov 2, 2023
1cebcca
Reset values on switch between Stopwatch or Timer
gustavotrott Nov 2, 2023
f7fc2bf
Merge pull request #18952 from gabriellpr/fake-video-test
ramonlsouza Nov 2, 2023
353a6e3
Merge pull request #19059 from gustavotrott/akka-reset-timer-on-switc…
gustavotrott Nov 2, 2023
5f22f2c
Merge pull request #19054 from gustavotrott/graphql-typing-order-fix
gustavotrott Nov 2, 2023
964871c
removing flaky flag for passing tests
gabriellpr Nov 2, 2023
7f6de3f
Merge remote-tracking branch 'upstream/v3.0.x-release' into pres-graphql
ramonlsouza Nov 6, 2023
923ffb7
fix download presentation url
ramonlsouza Nov 6, 2023
923602b
fix presentation download link in chat
ramonlsouza Nov 6, 2023
d2f6fc6
Refactor: Migrate external video player
Tainan404 Nov 6, 2023
ab8a264
fix error in toast
ramonlsouza Nov 6, 2023
c235077
Upgrade websocket lib in graphql-middleware
gustavotrott Nov 6, 2023
11a6816
Merge pull request #19076 from gustavotrott/upgrade-go-websocket
TiagoJacobs Nov 6, 2023
23810dc
Make chat receive graphql data using Json Patch
gustavotrott Nov 2, 2023
ca9167e
Refresh subscription whenever variables change
gustavotrott Nov 3, 2023
5159da8
Remove unnecessary `JSON.stringify`
gustavotrott Nov 7, 2023
dd17a63
Add: implements hooks to use inside components
Tainan404 Nov 7, 2023
ff4d4e0
Fix: Remove unnecessary import
Tainan404 Nov 7, 2023
6a10a27
graphql: Provide Upload Token through Graphql (#19081)
gustavotrott Nov 7, 2023
efb4ad7
Fix: start button not being disabled and blocked autoplay message
Tainan404 Nov 7, 2023
9c34ead
fix whiteboard icon in userlist
ramonlsouza Nov 8, 2023
e70672b
Merge pull request #19090 from ramonlsouza/fix-whiteboard-icon-userlist
ramonlsouza Nov 8, 2023
7317fde
Update bigbluebutton-html5/imports/ui/components/external-video-playe…
ramonlsouza Nov 9, 2023
003809c
Merge pull request #19074 from Tainan404/r-extertanl-video
ramonlsouza Nov 9, 2023
673d5f5
fix init dark mode
ramonlsouza Nov 6, 2023
74a724d
Merge pull request #18711 from Tainan404/migrate-waiting-user-on-user…
ramonlsouza Nov 9, 2023
6e16cd5
WIP: fix(accessibility): restore roving functionality in user list
Scroody Nov 9, 2023
a96ffa0
Fix: add validation to prop
Tainan404 Nov 10, 2023
f97735d
Rest of the code
Scroody Nov 10, 2023
d78b298
27 to 30
Scroody Nov 10, 2023
c689b65
Merge pull request #19094 from Scroody/user-list-keyboard
ramonlsouza Nov 10, 2023
f1e05c2
Undo bbb-export-annotations/package-lock.json
gustavotrott Nov 10, 2023
1814ab3
Merge pull request #18995 from gustavotrott/graphql-captions
gustavotrott Nov 10, 2023
96d9f71
v27 changes ported to v30 part 2.
Scroody Nov 10, 2023
a55fa95
Fix: default duration time and free join invitation
Tainan404 Nov 10, 2023
81fe653
Remove changes on settings yml
Tainan404 Nov 10, 2023
ac64b73
Merge pull request #19098 from Scroody/27-to-30-part-1
ramonlsouza Nov 10, 2023
925a3fa
Merge pull request #18928 from ramonlsouza/pres-graphql
ramonlsouza Nov 10, 2023
8f7b207
Merge pull request #19102 from Scroody/27-to-30-part-2
ramonlsouza Nov 10, 2023
5f0a1aa
Let user join the meeting using Graphql actions
gustavotrott Nov 10, 2023
6af3d4f
feature (api): Add preUploadedPresentation param to API's /create via…
GuiLeme Nov 13, 2023
93b8705
feature(html5): Change return type of the graphql data hook (#19103)
GuiLeme Nov 13, 2023
f575ecd
feat(reactions): port new reactions and fix emojiRain
lfzawacki Nov 13, 2023
234431f
test: add flag flaky on failed breakout tests after migration
antonbsa Nov 13, 2023
f9f419c
Refactor: Add chat message to Postgres when user status changes (#18…
paultrudel Nov 14, 2023
1ebd27d
Lint
Scroody Nov 14, 2023
bf028c8
aditional changes
Scroody Nov 14, 2023
bd7d956
fix: check for presence of parentMeetingID if isBreakout is true
Ithanil Nov 14, 2023
57aab3d
Fix hasPresentationUrlInParameter
gustavotrott Nov 14, 2023
746b89e
Merge pull request #12 from gustavotrott/pr-19116
Scroody Nov 14, 2023
9628b17
Merge pull request #19116 from Scroody/preUploadedPresentation-get-v30
gustavotrott Nov 14, 2023
7c0a164
Merge pull request #19129 from Scroody/fix_isbreakout_api
gustavotrott Nov 15, 2023
6dc3dbb
Merge pull request #19104 from gustavotrott/graphql-user-join-action
gustavotrott Nov 15, 2023
7af023a
Update bigbluebutton-html5/private/config/settings.yml
ramonlsouza Nov 15, 2023
5cf5510
add new line at end of file
ramonlsouza Nov 15, 2023
e924896
Merge pull request #19121 from Scroody/new-reactions-emoji-rain
ramonlsouza Nov 15, 2023
85bd1e3
Merge pull request #19063 from gabriellpr/rm-flaky-tag
ramonlsouza Nov 15, 2023
1c636c4
Merge pull request #19004 from gabriellpr/test-timer
ramonlsouza Nov 15, 2023
31ff047
Fix: Moderator lowering hand from toast broken
Scroody Nov 15, 2023
57a43f2
Merge remote-tracking branch 'upstream/v3.0.x-release' into breakout-…
Tainan404 Nov 15, 2023
89aac73
Fix: TS errors
Tainan404 Nov 15, 2023
b4c8dac
Merge branch 'breakout-room-migration' of github.com:Tainan404/bigblu…
Tainan404 Nov 15, 2023
f1bbad9
adding flaky flag to failing test on ci
gabriellpr Nov 15, 2023
f6cf538
Merge pull request #13 from gabriellpr/add-flaky-flag
Scroody Nov 15, 2023
66a1747
Merge pull request #19133 from Scroody/lower-hand-on-toast
ramonlsouza Nov 15, 2023
a18adb0
Merge pull request #19014 from Tainan404/breakout-room-migration
ramonlsouza Nov 15, 2023
b38641e
fix (bbb-web): Null pointer exception when parent meeting does not exist
paultrudel Nov 16, 2023
1f14f9a
Merge pull request #19153 from Scroody/pid-null-error-fix
gustavotrott Nov 16, 2023
2bfaf29
Fix: support cluster proxy setup for graphql API
Nov 24, 2023
54085ad
cleanup: use runuser instead of sudo
danimo Nov 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 11 additions & 4 deletions .github/workflows/automated-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
paths-ignore:
- "docs/**"
- "**/*.md"
- "bigbluebutton-html5/public/locales/*.json"
permissions:
contents: read
concurrency:
Expand Down Expand Up @@ -53,7 +54,7 @@ jobs:
build-list: bbb-playback bbb-playback-notes bbb-playback-podcast bbb-playback-presentation bbb-playback-screenshare bbb-playback-video bbb-record-core
- package: bbb-graphql-server
build-name: bbb-graphql-server
build-list: bbb-graphql-server bbb-graphql-middleware
build-list: bbb-graphql-server bbb-graphql-middleware bbb-graphql-actions-adapter-server
- package: bbb-etherpad
cache-files-list: bbb-etherpad.placeholder.sh
cache-urls-list: https://api.github.com/repos/mconf/ep_pad_ttl/commits https://api.github.com/repos/alangecker/bbb-etherpad-plugin/commits https://api.github.com/repos/mconf/ep_redis_publisher/commits https://api.github.com/repos/alangecker/bbb-etherpad-skin/commits
Expand Down Expand Up @@ -252,17 +253,23 @@ jobs:
apt --purge -y remove apache2-bin
'
- name: Install BBB
timeout-minutes: 15
timeout-minutes: 25
run: |
sudo -i <<EOF
set -e
cd /root/ && wget -nv https://raw.githubusercontent.com/bigbluebutton/bbb-install/v2.8.x-release/bbb-install.sh -O bbb-install.sh
cat bbb-install.sh | sed "s|> /etc/apt/sources.list.d/bigbluebutton.list||g" | bash -s -- -v jammy-28-develop -s bbb-ci.test -j -d /certs/
cd /root/ && wget -nv https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh -O bbb-install.sh
cat bbb-install.sh | sed "s|> /etc/apt/sources.list.d/bigbluebutton.list||g" | bash -s -- -v jammy-30-dev -s bbb-ci.test -j -d /certs/
bbb-conf --salt bbbci
echo "NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/bbb-dev/bbb-dev-ca.crt" >> /usr/share/meteor/bundle/bbb-html5-with-roles.conf
sed -i "s/\"minify\": true,/\"minify\": false,/" /usr/share/etherpad-lite/settings.json
bbb-conf --restart
EOF
- name: List systemctl services
timeout-minutes: 1
run: |
sudo -i <<EOF
systemctl --type=service --state=running,exited,failed --all --no-pager --no-legend
EOF
- name: Install test dependencies
working-directory: ./bigbluebutton-tests/playwright
run: |
Expand Down
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ stages:

# define which docker image to use for builds
default:
image: bigbluebutton/bbb-build:bbb28-2023-07-18
image: bigbluebutton/bbb-build:v3.0.x-release--2023-09-26-152524

# This stage uses git to find out since when each package has been unmodified.
# it then checks an API endpoint on the package server to find out for which of
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ We actively support BigBlueButton through the community forums and through secur
| 2.5.x (or earlier) | :x: |
| 2.6.x   | :white_check_mark: |
| 2.7.x   | :white_check_mark: |
| 2.8.x   | :x: |
| 3.0.x   | :x: |

We have released 2.7 to the community and are going to support both 2.6 and 2.7 together for the coming months (while we're actively developing the next release). Also, BigBlueButton 2.5 is now end of life.

Expand Down
10 changes: 8 additions & 2 deletions akka-bbb-apps/project/Dependencies.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.bigbluebutton.build

import sbt._
import Keys._

object Dependencies {

Expand Down Expand Up @@ -37,6 +36,7 @@ object Dependencies {
val scalaTest = "3.2.11"
val mockito = "2.23.0"
val akkaTestKit = "2.6.0"
val jacksonDataFormat = "2.13.5"
}

object Compile {
Expand Down Expand Up @@ -64,7 +64,11 @@ object Dependencies {
val slick = "com.typesafe.slick" %% "slick" % Versions.slick
val slickHikaricp = "com.typesafe.slick" %% "slick-hikaricp" % Versions.slick
val slickPg = "com.github.tminglei" %% "slick-pg" % Versions.slickPg
val slickPgSprayJson = "com.github.tminglei" %% "slick-pg_spray-json" % Versions.slickPg

val postgresql = "org.postgresql" % "postgresql" % Versions.postgresql
val jacksonDataFormat = "com.fasterxml.jackson.dataformat" % "jackson-dataformat-yaml" % Versions.jacksonDataFormat
val snakeYaml = "org.yaml" % "snakeyaml"
}

object Test {
Expand Down Expand Up @@ -101,5 +105,7 @@ object Dependencies {
Compile.slick,
Compile.slickHikaricp,
Compile.slickPg,
Compile.postgresql) ++ testing
Compile.slickPgSprayJson,
Compile.postgresql,
Compile.jacksonDataFormat) ++ testing
}
17 changes: 12 additions & 5 deletions akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,15 @@ import org.apache.pekko.actor.ActorSystem
import org.apache.pekko.event.Logging
import org.apache.pekko.http.scaladsl.Http
import org.apache.pekko.stream.ActorMaterializer
import org.bigbluebutton.common2.redis.{ MessageSender, RedisConfig, RedisPublisher }
import org.bigbluebutton.common2.redis.{MessageSender, RedisConfig, RedisPublisher}
import org.bigbluebutton.core._
import org.bigbluebutton.core.bus._
import org.bigbluebutton.core.pubsub.senders.ReceivedJsonMsgHandlerActor
import org.bigbluebutton.core2.AnalyticsActor
import org.bigbluebutton.core2.FromAkkaAppsMsgSenderActor
import org.bigbluebutton.endpoint.redis.AppsRedisSubscriberActor
import org.bigbluebutton.endpoint.redis.{ RedisRecorderActor, ExportAnnotationsActor }
import org.bigbluebutton.endpoint.redis.LearningDashboardActor
import org.bigbluebutton.endpoint.redis.{AppsRedisSubscriberActor, ExportAnnotationsActor, GraphqlActionsActor, LearningDashboardActor, RedisRecorderActor}
import org.bigbluebutton.common2.bus.IncomingJsonMessageBus
import org.bigbluebutton.service.{ HealthzService, MeetingInfoActor, MeetingInfoService }
import org.bigbluebutton.service.{HealthzService, MeetingInfoActor, MeetingInfoService}

object Boot extends App with SystemConfiguration {

Expand Down Expand Up @@ -69,6 +67,12 @@ object Boot extends App with SystemConfiguration {
"LearningDashboardActor"
)

val graphqlActionsActor = system.actorOf(
GraphqlActionsActor.props(system),
"GraphqlActionsActor"
)

ClientSettings.loadClientSettingsFromFile()
recordingEventBus.subscribe(redisRecorderActor, outMessageChannel)
val incomingJsonMessageBus = new IncomingJsonMessageBus

Expand All @@ -85,6 +89,9 @@ object Boot extends App with SystemConfiguration {
outBus2.subscribe(learningDashboardActor, outBbbMsgMsgChannel)
bbbMsgBus.subscribe(learningDashboardActor, analyticsChannel)

eventBus.subscribe(graphqlActionsActor, meetingManagerChannel)
bbbMsgBus.subscribe(graphqlActionsActor, analyticsChannel)

val bbbActor = system.actorOf(BigBlueButtonActor.props(system, eventBus, bbbMsgBus, outGW, healthzService), "bigbluebutton-actor")
eventBus.subscribe(bbbActor, meetingManagerChannel)

Expand Down
118 changes: 118 additions & 0 deletions akka-bbb-apps/src/main/scala/org/bigbluebutton/ClientSettings.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
package org.bigbluebutton

import org.bigbluebutton.common2.util.YamlUtil
import org.slf4j.LoggerFactory

import java.io.{ ByteArrayInputStream, File }
import scala.io.BufferedSource
import scala.util.{ Failure, Success, Try }

object ClientSettings extends SystemConfiguration {
var clientSettingsFromFile: Map[String, Object] = Map("" -> "")
val logger = LoggerFactory.getLogger(this.getClass)

def loadClientSettingsFromFile() = {
val clientSettingsFile = scala.io.Source.fromFile(clientSettingsPath, "UTF-8")

val clientSettingsFileOverrideToCheck = new File(clientSettingsPathOverride)

val clientSettingsFileOverride = if (clientSettingsFileOverrideToCheck.exists())
scala.io.Source.fromFile(
clientSettingsPathOverride,
"UTF-8"
)
else new BufferedSource(new ByteArrayInputStream(Array[Byte]()))

clientSettingsFromFile =
common2.util.YamlUtil.mergeImmutableMaps(
common2.util.YamlUtil.toMap[Object](clientSettingsFile.mkString) match {
case Success(value) => value
case Failure(exception) =>
println("Error while fetching client Settings: ", exception)
Map[String, Object]()
},
common2.util.YamlUtil.toMap[Object](clientSettingsFileOverride.mkString) match {
case Success(value) => value
case Failure(exception) =>
println("Error while fetching client override Settings: ", exception)
Map[String, Object]()
}
)
}

def getClientSettingsWithOverride(clientSettingsOverrideJson: String): Map[String, Object] = {
if (clientSettingsOverrideJson.nonEmpty) {
val scalaMapClientOverride = common2.util.JsonUtil.toMap[Object](clientSettingsOverrideJson)
scalaMapClientOverride match {
case Success(clientSettingsOverrideAsMap) => YamlUtil.mergeImmutableMaps(clientSettingsFromFile, clientSettingsOverrideAsMap)
case Failure(msg) =>
logger.debug("No valid JSON override of client configuration in create call: {}", msg)
clientSettingsFromFile
}
} else clientSettingsFromFile
}

def getConfigPropertyValueByPath(map: Map[String, Any], path: String): Option[Any] = {
val keys = path.split("\\.")

def getRecursive(map: Map[String, Any], keys: Seq[String]): Option[Any] = {
keys match {
case Seq(head, tail @ _*) =>
map.get(head) match {
case Some(innerMap: Map[String, Any]) => getRecursive(innerMap, tail)
case otherValue if tail.isEmpty => otherValue
case _ => None
}
case _ => None
}
}

getRecursive(map, keys)
}

def getPluginsFromConfig(config: Map[String, Any]): Map[String, Plugin] = {
var pluginsFromConfig: Map[String, Plugin] = Map()

val pluginsConfig = getConfigPropertyValueByPath(config, "public.plugins")
pluginsConfig match {
case Some(plugins: List[Map[String, Any]]) =>
for {
plugin <- plugins
} yield {
if (plugin.contains("name") && plugin.contains("url")) {

val pluginName = plugin("name").toString
val pluginUrl = plugin("url").toString
var pluginDataChannels: Map[String, DataChannel] = Map()
if (plugin.contains("dataChannels")) {
plugin("dataChannels") match {
case dataChannels: List[Map[String, Any]] =>
for {
dataChannel <- dataChannels
} yield {
if (dataChannel.contains("name") && dataChannel.contains("writePermission")) {
val channelName = dataChannel("name").toString
val writePermission = dataChannel("writePermission")
writePermission match {
case wPerm: List[String] => pluginDataChannels += (channelName -> DataChannel(channelName, wPerm))
case _ => logger.warn(s"Invalid writePermission for channel $channelName in plugin $pluginName")
}
}
}
case _ => logger.warn(s"Plugin $pluginName has an invalid dataChannels format")
}
}

pluginsFromConfig += (pluginName -> Plugin(pluginName, pluginUrl, pluginDataChannels))
}
}
case _ => logger.warn(s"Invalid plugins config found.")
}

pluginsFromConfig
}

case class DataChannel(name: String, writePermission: List[String])
case class Plugin(name: String, url: String, dataChannels: Map[String, DataChannel])

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package org.bigbluebutton

import scala.util.Try
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory

import scala.util.{ Failure, Success, Try }
import com.typesafe.config.ConfigFactory

trait SystemConfiguration {
Expand Down Expand Up @@ -77,6 +80,13 @@ trait SystemConfiguration {

lazy val analyticsIncludeChat = Try(config.getBoolean("analytics.includeChat")).getOrElse(true)

lazy val clientSettingsPath = Try(config.getString("client.clientSettingsFilePath")).getOrElse(
"/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml"
)
lazy val clientSettingsPathOverride = Try(config.getString("client.clientSettingsOverrideFilePath")).getOrElse(
"/etc/bigbluebutton/bbb-html5.yml"
)

// Grab the "interface" parameter from the http config
val httpHost = config.getString("http.interface")
// Grab the "port" parameter from the http config
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,15 @@ class BigBlueButtonActor(
private def handleBbbCommonEnvCoreMsg(msg: BbbCommonEnvCoreMsg): Unit = {
msg.core match {

case m: CreateMeetingReqMsg => handleCreateMeetingReqMsg(m)
case m: RegisterUserReqMsg => handleRegisterUserReqMsg(m)
case m: GetAllMeetingsReqMsg => handleGetAllMeetingsReqMsg(m)
case m: GetRunningMeetingsReqMsg => handleGetRunningMeetingsReqMsg(m)
case m: CheckAlivePingSysMsg => handleCheckAlivePingSysMsg(m)
case m: ValidateConnAuthTokenSysMsg => handleValidateConnAuthTokenSysMsg(m)
case _ => log.warning("Cannot handle " + msg.envelope.name)
case m: CreateMeetingReqMsg => handleCreateMeetingReqMsg(m)
case m: RegisterUserReqMsg => handleRegisterUserReqMsg(m)
case m: GetAllMeetingsReqMsg => handleGetAllMeetingsReqMsg(m)
case m: GetRunningMeetingsReqMsg => handleGetRunningMeetingsReqMsg(m)
case m: CheckAlivePingSysMsg => handleCheckAlivePingSysMsg(m)
case m: ValidateConnAuthTokenSysMsg => handleValidateConnAuthTokenSysMsg(m)
case _: UserGraphqlConnectionStablishedSysMsg => //Ignore
case _: UserGraphqlConnectionClosedSysMsg => //Ignore
case _ => log.warning("Cannot handle " + msg.envelope.name)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ object TimerModel {

def reset(model: TimerModel) : Unit = {
model.accumulated = 0
model.startedAt = 0
model.startedAt = if (model.running) System.currentTimeMillis() else 0
model.endedAt = 0
}

def setIsActive(model: TimerModel, active: Boolean): Unit = {
model.isActive = active
}

def getIsACtive(model: TimerModel): Boolean = {
def getIsActive(model: TimerModel): Boolean = {
model.isActive
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package org.bigbluebutton.core.apps.audiocaptions

import org.bigbluebutton.common2.msgs._
import org.bigbluebutton.core.bus.MessageBus
import org.bigbluebutton.core.db.AudioCaptionDAO
import org.bigbluebutton.core.models.AudioCaptions
import org.bigbluebutton.core.db.CaptionDAO
import org.bigbluebutton.core.models.{AudioCaptions, Users2x}
import org.bigbluebutton.core.running.LiveMeeting

import java.sql.Timestamp
Expand Down Expand Up @@ -66,7 +66,12 @@ trait UpdateTranscriptPubMsgHdlr {

val transcript = AudioCaptions.parseTranscript(msg.body.transcript)

AudioCaptionDAO.insertOrUpdateAudioCaption(msg.body.transcriptId, meetingId, msg.header.userId, transcript, new Timestamp(System.currentTimeMillis()))

for {
u <- Users2x.findWithIntId(liveMeeting.users2x, msg.header.userId)
} yield {
CaptionDAO.insertOrUpdateAudioCaption(msg.body.transcriptId, meetingId, msg.header.userId, transcript, u.speechLocale)
}

broadcastEvent(
msg.header.userId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait {
breakout.freeJoin,
liveMeeting.props.voiceProp.dialNumber,
breakout.voiceConf,
msg.body.durationInMinutes * 60,
msg.body.durationInMinutes,
liveMeeting.props.password.moderatorPass,
liveMeeting.props.password.viewerPass,
presId, presSlide, msg.body.record,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import org.bigbluebutton.common2.msgs._
import org.bigbluebutton.core.api.{ SendTimeRemainingAuditInternalMsg, UpdateBreakoutRoomTimeInternalMsg }
import org.bigbluebutton.core.apps.{ PermissionCheck, RightsManagementTrait }
import org.bigbluebutton.core.bus.BigBlueButtonEvent
import org.bigbluebutton.core.db.BreakoutRoomDAO
import org.bigbluebutton.core.db.{ BreakoutRoomDAO, MeetingDAO }
import org.bigbluebutton.core.domain.MeetingState2x
import org.bigbluebutton.core.running.{ MeetingActor, OutMsgRouter }
import org.bigbluebutton.core2.message.senders.{ MsgBuilder, Sender }
Expand Down Expand Up @@ -78,6 +78,7 @@ trait UpdateBreakoutRoomsTimeMsgHdlr extends RightsManagementTrait {

log.debug("Updating {} minutes for breakout rooms time in meeting {}", msg.body.timeInMinutes, props.meetingProp.intId)
BreakoutRoomDAO.updateRoomsDuration(props.meetingProp.intId, newDurationInSeconds)
MeetingDAO.updateMeetingDurationByParentMeeting(props.meetingProp.intId, newDurationInSeconds)
breakoutModel.setTime(newDurationInSeconds)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.bigbluebutton.core.apps.pads

import org.bigbluebutton.common2.msgs._
import org.bigbluebutton.core.bus.MessageBus
import org.bigbluebutton.core.db.CaptionDAO
import org.bigbluebutton.core.models.Pads
import org.bigbluebutton.core.running.LiveMeeting

Expand Down Expand Up @@ -40,6 +41,7 @@ trait PadPatchSysMsgHdlr {
broadcastEditCaptionHistoryEvent(msg.body.userId, msg.body.start, msg.body.end, group.name, locale, msg.body.text)
val tail = liveMeeting.captionModel.getTextTail(group.name)
broadcastPadTailEvent(group.externalId, tail)
CaptionDAO.insertOrUpdatePadCaption(liveMeeting.props.meetingProp.intId, locale, msg.body.userId, tail)
}
}
case _ =>
Expand Down