bigbluebutton-Github/bbb-recording-imex/README.md

63 lines
3.2 KiB
Markdown

# BBB-Recording-Importer
Imports and parses recording metadata.xml files and stores the data in a Postgresql database
## How to use
0. 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 <persist>} [-s <id>] [PATH]
Import/export recording(s) to/from PATH. The default PATH is
/var/bigbluebutton/published/presentation
-e export recording(s)
-i <persist> import recording(s) and indicate if they should be persisted [true|false]
-s <id> 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