The BBB html5 client is huge and can be compressed easliy. As nginx
already services the static files, it can also handle service gzipped
files.
Ship compressed files with the package.
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
To ease setup some changes required in the nginx config for load
balancer setup are prepared here. They do not harm non-loadbalancer setups.
The changes in the system startup scripts are mandatory
This resolves an issue where we were building the npm dependencies against Meteor matching Node 12 but were trying to install locally for Node 14.
An additional change to consider could be to include the correct Meteor version in the Dockerfile for BBB but that may mean different images per BBB version.
I also leave here some simple outputs for node, npm and meteor versions, to hopefully allow us to catch such discrepancies more easily in the future
Somewhere along the line since 2.3 the packaged bbb-html5.nginx regressed to a
state where the upstream for /html5client was Meteor itself, which means nginx
wasn't serving static assets as it was supposed to.
Guarantees that nginx will be the one serving the WASM binaries (static assets).
The types block is there to guarantee that the correct MIME type is advertised.
Moreoever, it's preferable that the WASM binaries are gzipped because they're
too large to ignore, so it's worth the server-side gzipping overhead.
The explicit gzip type declaration is there because only text/html assets are
compressed by default.
This resolves an issue where we were building the npm dependencies against Meteor matching Node 12 but were trying to install locally for Node 14.
An additional change to consider could be to include the correct Meteor version in the Dockerfile for BBB but that may mean different images per BBB version.
I also leave here some simple outputs for node, npm and meteor versions, to hopefully allow us to catch such discrepancies more easily in the future