bigbluebutton-Github/bbb-recording-imex
Jesus Federico f258d7bb13
fix: bbb-recording-imex/pom.xml to reduce vulnerabilities (#19275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JAVA-CHQOSLOGBACK-6097492
- https://snyk.io/vuln/SNYK-JAVA-CHQOSLOGBACK-6097493

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-01-19 10:19:37 -05:00
..
src refactor: tweaks on recording-imex to get it to run locally 2023-01-25 18:19:01 +00:00
.gitignore add .gitignore for bbb-recording-imex 2023-01-25 18:40:58 +00:00
deploy.sh Implemented some small suggested changes 2022-05-12 15:40:57 +00:00
get-recordings.sh Modified database retrieval of recordings 2023-01-19 15:23:54 +00:00
pom.xml fix: bbb-recording-imex/pom.xml to reduce vulnerabilities (#19275) 2024-01-19 10:19:37 -05:00
README.md refactor: tweaks on recording-imex to get it to run locally 2023-01-25 18:19:01 +00:00

BBB-Recording-Importer

Imports and parses recording metadata.xml files and stores the data in a Postgresql database

How to use

  1. Ensure the required software is installed
  • Install docker (if you're using docker-dev development environment for BBB this is already installed)
    • You would either need to add your user to the docker group or you might have to prepend your docker-compose command with sudo
sudo usermod -aG docker `whoami`
sudo reboot
  • Install docker compose - a sample set of steps are listed below but could likely be installed in a different way too:
    • sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    • sudo chmod +x /usr/local/bin/docker-compose
    • docker-compose --version
  • Note that you do not need to install Postgres DB on your own
  1. In bbb-common-web

    • cd bbb-common-web
    • Edit the ./.env file and set the environment variables (the default values should work fine)
    • Run the ./hibernate.cfg.sh script to generate the hibernate config file
    • Run docker-compose up to start up the docker container containing the Postgresql database
    • Interact with the database using the psql script
  2. In bbb-recording-imex

    • Unit tests for parsing and persisting recording metadata can be found in src/test/java/org/bigbluebutton/recording/
    • Edit the metadataDirectory variables in the test files to point to where the recording metadata can be found. The default value "metadata" refers to ./src/metadata and should work too.
    • Run the unit tests using the command mvn test
    • Use the deploy.sh script to compile the program
    • Run the program with the recording-imex.sh script found in ~/usr/local/bin
    • Use the --help option to see the usage

    Usage: {-e|-i } [-s ] [PATH] Import/export recording(s) to/from PATH. The default PATH is /var/bigbluebutton/published/presentation -e export recording(s) -i import recording(s) and indicate if they should be persisted [true|false] -s ID of single recording to be imported/exported

    Examples

    ~/usr/local/bin/recording-imex.sh -i true -s random-7739095 /var/bigbluebutton/published/presentation/1abbc41a2f2faf1d754dbd130fba9ae072c6e742-1652301432519/metadata.xml

    ~/usr/local/bin/recording-imex.sh -i true /var/bigbluebutton/published/presentation/

Testing the new recording service

  1. In bigbluebutton-web
    • Edit the "recordingService" bean in /grails-app/conf/spring/resources.xml to use "org.bigbluebutton.api.service.impl.RecordingServiceDbImpl"
    • Use "org.bigbluebutton.api.service.impl.RecordingServiceFileImpl" if you want to use the traditional file system service
  2. In bbb-recording-imex
    • Use the get-recordings.sh script to test the getRecordings endpoint on the recording API
    • Edit the "SALT" variable to have the value of your security salt
    • The script accepts arguments through the use of flags
      • "-i" for the meetingID
      • "-r" for the recordID(s)
      • "-s" for the state(s)
      • "-m" for the metadata