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

v3.0.0 #40

Merged
merged 174 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
7ee9021
!refactor: initial v3 with modules system
prlanzarin Sep 26, 2023
d1ecc4e
feat: add xapi output module template
prlanzarin Sep 26, 2023
174ef2e
refactor: updated util to capture inbound events
prlanzarin Sep 26, 2023
8f15b40
chore: add in and out module examples
prlanzarin Sep 26, 2023
308fafb
docs: minor updates to README running instructions
prlanzarin Sep 26, 2023
7974291
fix: shutdown on uncaught/unhandled errors in dev envs
prlanzarin Sep 26, 2023
4c30e87
chore: set ecmaVersion to 2020 in eslint
prlanzarin Sep 26, 2023
d3a5cc1
chore: update util to intercept events
prlanzarin Sep 26, 2023
a3e4ada
chore: set ecmaVersion to 2022 in eslint
prlanzarin Sep 26, 2023
967c23f
fix: restore raw event hooks
prlanzarin Sep 26, 2023
b026d44
fix: restore permanent hooks
prlanzarin Sep 27, 2023
2695161
fix: partially restore tests
prlanzarin Sep 27, 2023
2968995
fix: sync module loading with priority order to avoid boot race condi…
prlanzarin Sep 27, 2023
84729e0
feat: allow multiple module types per entry in module system
prlanzarin Sep 27, 2023
6a11f1f
fix: deserialization of hook data to parse attributes with adequate t…
prlanzarin Sep 27, 2023
9d59b32
feat: add poll-started/poll-responded events
prlanzarin Sep 27, 2023
d3bf485
chore: increase mapping timeout from 1 day to 1 week
fcecagno Apr 4, 2023
070f400
chore: updates to .gitignore and .dockerignore
prlanzarin Sep 27, 2023
0f924aa
chore: add MAPPINGS_TIMEOUT env var for mappings.timeout
prlanzarin Sep 27, 2023
9051d90
chore: minor updates to existing messages
prlanzarin Sep 28, 2023
4425a6b
chore: add example files with output events (mapped and raw
prlanzarin Sep 28, 2023
c55044f
chore: allow writing raw events to file in out-file example
prlanzarin Sep 28, 2023
27e5f99
fix: load output modules before input
prlanzarin Sep 28, 2023
5b7f6de
fix: dispatch user-left/meeting-ended events
prlanzarin Sep 28, 2023
653fc38
chore: update event examples with meeting-ended/user-left
prlanzarin Sep 28, 2023
8774918
fix: add dedicated user-raise-hand-changed event and interop < 2.7 wi…
prlanzarin Sep 29, 2023
97eeadf
feat: add option for the interceptor util to keep retrying hook creat…
prlanzarin Sep 29, 2023
9858c07
fix: guarantee Redis prefixes are stringified
prlanzarin Sep 29, 2023
f0ebaa1
fix: remove request dep, restore domain field and bearer auth
prlanzarin Sep 29, 2023
328cc2c
chore: move nock and body-parser to devDependencies
prlanzarin Sep 29, 2023
ca9cd08
fix: restore stale mapping cleanup function
prlanzarin Sep 29, 2023
e652514
Initial commit on xAPI module
mprytoluk Oct 2, 2023
2d07e3f
chore: add metadata to event examples
prlanzarin Oct 2, 2023
eb2111d
feat: add initial Prometheus instrumentation
prlanzarin Oct 4, 2023
4f7c800
chore: add more jsdoc annotations
prlanzarin Oct 4, 2023
50c7007
chore: add utils to pretty-print sample event files, update event files
prlanzarin Oct 4, 2023
dcdc006
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
mprytoluk Oct 4, 2023
505eff0
fix: accept mapped poll events as input events
prlanzarin Oct 4, 2023
55923d6
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
mprytoluk Oct 5, 2023
b359fcb
fix: use URL instead of host/port/pass on Redis client creation
prlanzarin Oct 5, 2023
0a28d57
fix: missing poll ID from poll-started
prlanzarin Oct 5, 2023
ad78386
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
mprytoluk Oct 5, 2023
755f445
fix: deep clone input payload in StorageItem
prlanzarin Oct 5, 2023
91b9e37
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
mprytoluk Oct 5, 2023
b2a38f0
chore: guarantee that the stringification util also does not mutate i…
prlanzarin Oct 5, 2023
37af32e
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
mprytoluk Oct 5, 2023
ddd4fa0
All xAPI statements are now implemented
mprytoluk Oct 5, 2023
98937cd
fixed server domain
mprytoluk Oct 5, 2023
582d144
fix(webhooks): clear callback emitters on failure
prlanzarin Oct 6, 2023
5ebd661
feat: add file logging
prlanzarin Oct 6, 2023
88c48a5
chore: expose prometheus.host/PROM_HOST
prlanzarin Oct 6, 2023
7907916
fix(prometheus): shim agent even metrics are disabled
prlanzarin Oct 6, 2023
c07c45f
chore: add indent and keyword-spacing linter rules
prlanzarin Oct 6, 2023
7b7eaa3
feat: add utils object to module Context
prlanzarin Oct 6, 2023
ab483c6
Merge pull request #14 from miguel-mconf/v3
prlanzarin Oct 6, 2023
9ae1c40
feat(prometheus): implement module_status metric
prlanzarin Oct 6, 2023
828f44c
feat: add user-audio-muted and user-audio-unmuted events
prlanzarin Oct 9, 2023
fb8d7ef
fix(db): filter invalid items in getAll
prlanzarin Oct 9, 2023
810d3b4
refactor(webhooks): simplify raw event handling, prevent duplicate PO…
prlanzarin Oct 9, 2023
13a0d85
feat(webhooks): add metrics for the webhooks output module
prlanzarin Oct 10, 2023
e44c90c
feat(webhooks): add support for SHA256|384|512, +
prlanzarin Oct 11, 2023
68caf5d
refactor: remove sha1 as a dependency
prlanzarin Oct 11, 2023
0bb41d4
fix: handle hookID as hook index when resyncing
prlanzarin Oct 16, 2023
3d714d2
chore: add cmd-line util to list hooks via API
prlanzarin Oct 16, 2023
26e02f9
Fix mic not enable check in xAPI module
mprytoluk Oct 16, 2023
63e1344
xAPI - Do not send invalid statements to the LRS
mprytoluk Oct 16, 2023
627f753
xAPI - check for availability of Redis storage before proceding
mprytoluk Oct 16, 2023
e1df244
xAPI - returning Promise on onEvent method to avoid locking the queue
mprytoluk Oct 16, 2023
f0edc84
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
prlanzarin Oct 17, 2023
a4ca7a7
Added meta_xapi-enabled metadata support
mprytoluk Oct 17, 2023
6f16583
Fixed xapi-enabled metadata name
mprytoluk Oct 17, 2023
2d58ff1
fix(webhooks): set logger in callback-emitter
prlanzarin Oct 18, 2023
754f3bc
fix(webhooks): prevent loop when handling permanent hook failures, +
prlanzarin Oct 18, 2023
40c6ea9
fix: deep clone and merge base config with module configs
prlanzarin Oct 18, 2023
3e1bbcf
fix(xapi): use redisUrl in client creation from module configs
prlanzarin Oct 18, 2023
6c15f0e
fix(hook): prevent hook duplication on boot resync
prlanzarin Oct 18, 2023
91b114d
chore: new redis prefixes for out-webhooks compartment and processor …
prlanzarin Oct 18, 2023
513235d
fix(webhooks): increment registered hooks gauge rather than set it to 1
prlanzarin Oct 18, 2023
6db9c3d
fix: handle file transport creation failures
prlanzarin Oct 19, 2023
76739e0
Avoid handling invalid events for xAPI and new xAPI templates partial…
mprytoluk Oct 19, 2023
266b927
Implemented new media xAPI templates
mprytoluk Oct 19, 2023
5925659
fix(webhooks): properly interpret invalid response codes as failures
prlanzarin Oct 20, 2023
b821bd1
fix: send user-left events for trailing users when a meeting ends
prlanzarin Oct 20, 2023
e371f19
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
prlanzarin Oct 20, 2023
7cbb0b7
Added capability to extract base64 encoded lrs_payload from metadata
mprytoluk Oct 20, 2023
dcd5609
updated secret-lrs-payload metadata name
mprytoluk Oct 20, 2023
b04bcb7
fix(xapi): resolve onEvent promise when event is invalid
prlanzarin Oct 20, 2023
d14df54
(xapi) remove retrievable data from redis
mprytoluk Oct 20, 2023
0338600
Merge branch 'v3' of github.com:mconf/bbb-webhooks into v3
mprytoluk Oct 20, 2023
db72781
(xapi) quick-fix: removed unecessary uuid calculation
mprytoluk Oct 20, 2023
d0bcba2
Added statement log when POST request fails
mprytoluk Oct 20, 2023
abf907b
chore: change default file log location
prlanzarin Oct 20, 2023
945a019
chore: add bash support to Docker image
prlanzarin Oct 20, 2023
07f84c8
fix(xapi): object.id for media statements is now valid
mprytoluk Oct 20, 2023
0e45bc8
Merge branch 'v3' of github.com:mconf/bbb-webhooks into v3
mprytoluk Oct 20, 2023
10b58fc
feat(docker): add sample docker-compose for running locally built images
prlanzarin Oct 20, 2023
628deb6
docs: add dependency table
prlanzarin Oct 20, 2023
0a37ed9
fix(xapi): provide rejection reason on all scenarios
prlanzarin Oct 20, 2023
13029f2
fix(xapi) - correct error handlingwhen user_data or poll_data are not…
mprytoluk Oct 20, 2023
52d2368
Merge branch 'v3' of github.com:mconf/bbb-webhooks into v3
mprytoluk Oct 20, 2023
f094c6c
(xapi) - adopted 'name' instead of 'user_name' to keep user_data cons…
mprytoluk Oct 20, 2023
4690282
(xapi) when xapi_enabled==false the Promise is now resolved instead o…
mprytoluk Oct 20, 2023
3e5a711
(xapi) when xapi_enabled==false the Promise is now resolved instead o…
mprytoluk Oct 20, 2023
8044891
Added xAPI module README.md
mprytoluk Oct 20, 2023
af8b60b
chore: replace logger, Winston -> Pino
prlanzarin Oct 24, 2023
d3f7be9
Merge branch 'v3' of https://github.com/mconf/bbb-webhooks into v3
prlanzarin Oct 24, 2023
e2ac3cd
fix: redact secret in logs
prlanzarin Oct 24, 2023
6ff81b1
chore(xapi): remove spurious log
prlanzarin Oct 24, 2023
dd67596
fix(db): handle nested payload field rw
prlanzarin Oct 24, 2023
05c0a80
feat: add internal/external-user-id to meeting-screenshare-started/st…
prlanzarin Oct 24, 2023
b00d65a
(xAPI) - Discarded unnecessary JSON parsing of poll_data in poll-answ…
mprytoluk Oct 24, 2023
7cbf19a
(xAPI) - setting correct verb at user-raise-hand-changed event
mprytoluk Oct 24, 2023
4e5f9f6
chore: update mapped-events.json with screenshare user data
prlanzarin Oct 25, 2023
7dbbf30
Added lrs credentials descryption capability
mprytoluk Oct 26, 2023
0b874e6
(xapi) - Changed references to internal_user_id to external_user_id
mprytoluk Oct 26, 2023
e42c4dc
fix(xapi) - undo typo in compartment.js
mprytoluk Oct 26, 2023
89aa051
(xapi) - Updated README
mprytoluk Oct 26, 2023
6e9c71f
feat: add enabled flag to module spec
prlanzarin Oct 30, 2023
eaf2ef2
chore: add separate flag to control logging to file
prlanzarin Oct 30, 2023
01e0c74
chore: add instructions on how to run via Docker/docker-compose
prlanzarin Oct 30, 2023
76c3123
3.0.0-alpha.0
prlanzarin Oct 30, 2023
3400dcb
xapi - added lrs credentials encrypt/decrypt instructions
mprytoluk Oct 30, 2023
bd9286f
Merge branch 'v3' of github.com:mconf/bbb-webhooks into v3
mprytoluk Oct 30, 2023
c239c0f
chore: update example event files
prlanzarin Oct 31, 2023
9ac45f2
test: restore remaining out/webhooks tests, remove nock
prlanzarin Oct 31, 2023
ce740b3
test: split test suites, add XAPI test suite template
prlanzarin Nov 1, 2023
437d363
test: treat webhooks module config as optional
prlanzarin Nov 1, 2023
0cb401a
(xapi) - added verb validation on the test suit for every valid event…
mprytoluk Nov 6, 2023
b9b22d9
(xapi) - Added Statement information on test error
mprytoluk Nov 6, 2023
188b565
(xapi) - Added extra tests for xAPI events
mprytoluk Nov 6, 2023
9cc21ff
(xapi) - Set chat message statements timestamp to ISO format
mprytoluk Nov 6, 2023
f7b5f22
(xapi) - implemented all the tests for the statements
mprytoluk Nov 8, 2023
e519eb7
(xapi) - fixed error message for the absence of a validator
mprytoluk Nov 8, 2023
51de17e
(xapi) - uncommented validator commented by mistake
mprytoluk Nov 9, 2023
220059f
fix: 2.6 compat for user-raise-hand-changed/emoji-changed event
prlanzarin Nov 9, 2023
ac0b354
Merge branch 'v3' into develop
prlanzarin Nov 9, 2023
ff586c5
(xapi) - implemented fail reason on tests
mprytoluk Nov 9, 2023
ef03eb2
(xapi) - clarified lrs credentials decryption comments
mprytoluk Nov 10, 2023
38966c5
(xapi) - described the test suite on the xAPI readme file
mprytoluk Nov 10, 2023
6bfb4c3
Merge branch 'v3' into develop
prlanzarin Nov 10, 2023
6f11e77
Merge pull request #32 from prlanzarin/develop-v3
prlanzarin Nov 10, 2023
a092454
fix: add Redis disconnection handling
prlanzarin Nov 16, 2023
a32f641
chore(test): exit on termination, restore test script for all modules
prlanzarin Nov 20, 2023
f7655d8
fix: properly call module unload
prlanzarin Nov 20, 2023
328e46b
chore: add CHANGELOG.md file
prlanzarin Nov 20, 2023
64fd175
3.0.0-beta.0
prlanzarin Nov 20, 2023
a9c6690
(xAPI) - ensure the correct lrs_endpoint is used
mprytoluk Nov 28, 2023
aab8c97
Merge pull request #33 from miguel-mconf/xAPI
prlanzarin Nov 28, 2023
6e5f87a
xAPI: add support for meta_xapi-create-end-actor-name
mprytoluk Dec 15, 2023
9426895
Merge pull request #34 from mprytoluk/actor_metaparameter
prlanzarin Dec 18, 2023
36bfb92
chore: update CHANGELOG.md for v3.0.0-beta.1
prlanzarin Dec 19, 2023
3be95cf
3.0.0-beta.1
prlanzarin Dec 19, 2023
f472869
refactor(webhooks): tidy API logs
prlanzarin Dec 22, 2023
9b6ee2a
fix(webhooks): re-implement includeEvents/excludeEvents
prlanzarin Dec 22, 2023
d7eff68
chore: update CHANGELOG.md for v3.0.0-beta.2
prlanzarin Dec 22, 2023
f42b5e5
3.0.0-beta.2
prlanzarin Dec 22, 2023
c843efd
build: [email protected], bump transitive deps
prlanzarin Jan 9, 2024
fea98d5
3.0.0-beta.3
prlanzarin Jan 9, 2024
89d36ea
build: set .nvmrc to lts/iron (Node.js 20)
prlanzarin Jan 9, 2024
6d3c8f0
fix: pick up mocha configs via new .mocharc.yml file
prlanzarin Jan 9, 2024
08b862c
fix(test): use redisUrl for node-redis client configuration
prlanzarin Jan 9, 2024
82e80a1
!fix(webhooks): remove general getRaw configuration
prlanzarin Jan 10, 2024
4045c0e
chore: support internal_meeting_id != record_id on rap events
fcecagno Jan 9, 2024
2f0c4a6
chore: remove unused events
fcecagno Jan 9, 2024
d698aa6
chore: update CHANGELOG.md
prlanzarin Jan 10, 2024
53ae3a4
fix: use ISO timestamps in production logs
prlanzarin Jan 16, 2024
ff0cbf5
3.0.0-beta.4
prlanzarin Jan 18, 2024
842b78e
feat: pipelines with GitHub Actions
fcecagno Jan 10, 2024
1c37608
3.0.0-beta.5
prlanzarin Jan 25, 2024
b82ee9a
chore: update github-slug-action to latest version
fcecagno Jan 26, 2024
dc416c8
fix: adjust action triggers for pr
fcecagno Jan 26, 2024
ce68479
Merge pull request #38 from bigbluebutton/fcecagno-patch-1
prlanzarin Jan 29, 2024
062bb47
Merge pull request #39 from bigbluebutton/fcecagno-patch-2
prlanzarin Jan 29, 2024
4ac79f2
3.0.0
prlanzarin Jan 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1 +1,17 @@
.dockerignore
.env
.git/
.github/
.gitignore
.nvmrc
*~
*log.*
*swn
*swo
*swp
docker-compose.yaml
Dockerfile
example/
extra/
node_modules/
test/
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
*.log
*~
21 changes: 21 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
env:
node: true
es2022: true
extends:
- eslint:recommended
- plugin:import/recommended
- plugin:jsdoc/recommended
parserOptions:
sourceType: module
ecmaVersion: 2022
rules:
#quotes: ["warn", "single"]
no-console: "warn"
consistent-return: "warn"
no-trailing-spaces: "warn"
no-whitespace-before-property: "warn"
no-multiple-empty-lines: ["warn", { max: 1 }]
import/no-extraneous-dependencies: "error"
jsdoc/no-undefined-types: "off"
keyword-spacing: ["warn", { before: true, after: true }]
indent: ["warn", 2, { "SwitchCase": 1 }]
13 changes: 13 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Add the following secrets to the GitHub repo:
```
REGISTRY_USERNAME
REGISTRY_TOKEN
```
They are the credentials to be used to push the image to the docker images registry.

Add the following variables to the GitHub repo:
```
REGISTRY_URI
REGISTRY_ORGANIZATION
```
Considering the image `bigbluebutton/bbb-webhooks:v3.0.0`, the value for `REGISTRY_URI` would be `docker.io` (URI for DockerHub) and `REGISTRY_ORGANIZATION` would be `bigbluebutton`. The image name `bbb-webhooks` isn't configurable, and the tag will be the GitHub tag OR `pr-<pr number>`.
102 changes: 102 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Build and push image to registry
on:
pull_request:
types:
- opened
- reopened
- synchronize
push:
tags:
- '*'
permissions:
contents: read
jobs:
hadolint:
uses: ./.github/workflows/docker-lint.yml

tests:
uses: ./.github/workflows/docker-tests.yml

build:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
pull-requests: write
name: Build and push
runs-on: ubuntu-22.04
needs:
- hadolint
- tests

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY_URI }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}

- uses: rlespinasse/[email protected]

- name: Calculate tag
id: tag
run: |
if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
TAG="pr-${{ github.event.number }}"
else
TAG=${{ github.ref_name }}
fi
echo "IMAGE=${{ vars.REGISTRY_URI }}/${{ vars.REGISTRY_ORGANIZATION }}/bbb-webhooks:$TAG" >> $GITHUB_OUTPUT

- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ steps.tag.outputs.IMAGE }}

- name: Build and push image
uses: docker/build-push-action@v5
with:
push: true
tags: ${{ steps.tag.outputs.IMAGE }}
context: .
platforms: linux/amd64
cache-from: type=registry,ref=${{ steps.tag.outputs.IMAGE }}
cache-to: type=registry,ref=${{ steps.tag.outputs.IMAGE }},image-manifest=true,oci-mediatypes=true,mode=max
labels: |
${{ steps.meta.outputs.labels }}

- name: Add comment to pr
if: ${{ github.event_name == 'pull_request' }}
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "Updated Docker image pushed to `${{ steps.tag.outputs.IMAGE }}`"
})

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: ${{ steps.tag.outputs.IMAGE }}
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
env:
TRIVY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
TRIVY_PASSWORD: ${{ secrets.REGISTRY_TOKEN }}

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: 'trivy-results.sarif'
19 changes: 19 additions & 0 deletions .github/workflows/docker-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Run hadolint
on:
workflow_dispatch:
workflow_call:
permissions:
contents: read
jobs:
hadolint:
name: Run hadolint check
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3

# TODO add hadolint output as comment on PR
# https://github.com/hadolint/hadolint-action#output
- uses: hadolint/[email protected]
with:
dockerfile: Dockerfile
30 changes: 30 additions & 0 deletions .github/workflows/docker-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Run trivy on filesystem
on:
workflow_dispatch:
permissions:
contents: read
jobs:
trivy:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Run trivy check
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3

- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: 'trivy-results.sarif'
52 changes: 52 additions & 0 deletions .github/workflows/docker-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Run tests
on:
workflow_dispatch:
workflow_call:
permissions:
contents: read
jobs:
tests:
name: Run tests
# https://docs.github.com/en/actions/using-containerized-services/creating-redis-service-containers#running-jobs-in-containers
# Containers must run in Linux based operating systems
runs-on: ubuntu-22.04
# Docker Hub image that `container-job` executes in
container: node:20-alpine

# Service containers to run with `container-job`
services:
# Label used to access the service container
redis:
# Docker Hub image
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
# Downloads a copy of the code in your repository before running CI tests
- name: Check out repository code
uses: actions/checkout@v4

# Performs a clean installation of all dependencies in the `package.json` file
# For more information, see https://docs.npmjs.com/cli/ci.html
- name: Install dependencies
run: npm ci

- name: Copy config
run: cp config/default.example.yml config/default.yml

- name: Run tests
# Runs a script that creates a Redis client, populates
# the client with data, and retrieves data
run: npm run test
# Environment variable used by the `client.js` script to create a new Redis client.
env:
# The hostname used to communicate with the Redis service container
REDIS_HOST: redis
# The default Redis port
REDIS_PORT: 6379
XAPI_ENABLED: true
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@
node_modules/
log/*
config/default.yml
*swn
*swo
*swp
*log.*
.env
*.orig
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.4.0
lts/iron
112 changes: 112 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# CHANGELOG

All notable changes to this project will be documented in this file.

### v3.0.0

#### Changelog since v3.0.0-beta.5

* chore: update github-slug-actions to v4.4.1
* fix: adjust actions triggers for pr (+ opened, reopened)

#### Changelog since v2.6.1

* feat: new xAPI output module with support for multitenancy
- Implements https://github.com/gaia-x-dases/xapi-virtual-classroom
- For more information: (README.md)[src/out/xapi/README.md]
* feat(xapi): add suport for meta_xapi-create-end-actor-name
* feat(webhooks): implement includeEvents/excludeEvents
* feat(events): add support for poll events
* feat(events): add support for raise-hand events
* feat(events): add support for emoji events
* feat(events): add user info to screenshare events
* feat(events): add support for audio muted/unmuted events
* feat: support internal_meeting_id != record_id on rap events
* feat: add Prometheus instrumentation
* feat: add JSDoc annotations to most of the codebase
* feat: log to file
* feat: add support for multiple checksum algorithms (SHA1,...,SHA512)
* feat(test): add support for modular test suites
* feat(test): add xAPI test suite
* feat: pipelines with GitHub Actions
* !refactor: application rewritten to use a modular input/processing/ouput system
* !refactor: modernize codebase (ES6 imports, Node.js >= 18 etc.)
* !refactor(webhooks): the webhooks functionality was rewritten into an output module
* !refactor(webhooks): hook IDs are now UUIDs instead of integers
* !refactor: new logging system (using Pino)
* !refactor: migrate node-redis from v3 to v4
* !refactor: new queue system (using Bullmq)
* refactor(test): remove nock as a dependency
* refactor(webhooks): replace request with node-fetch
* refactor: replace sha1 dependency with native code
* refactor: remove unused events
* `rap-published`, `rap-unpublished`, `rap-deleted`
* !fix(webhooks): remove general getRaw configuration
* fix(events): user-left events are now emitted for trailing users on meeting-ended events
* fix(test): restore remaining out/webhooks tests
* fix: add Redis disconnection handling
* build: add docker-compose and updated Dockerfile examples
* build: set .nvmrc to lts/iron (Node.js 20)

### v3.0.0-beta.5

* feat: pipelines with GitHub Actions

### v3.0.0-beta.4

* fix: use ISO timestamps in production logs
* refactor: remove unused events
* `rap-published`, `rap-unpublished`, `rap-deleted`
* feat: support internal_meeting_id != record_id on rap events
* !fix(webhooks): remove general getRaw configuration
* fix(test): use redisUrl for node-redis client configuration
* fix(test): pick up mocha configs via new .mocharc.yml file
* build: set .nvmrc to lts/iron (Node.js 20)

### v3.0.0-beta.3

* build: [email protected], bump transitive deps

### v3.0.0-beta.2

* fix(webhooks): re-implement includeEvents/excludeEvents

### v3.0.0-beta.1

* fix(xapi): ensure the correct lrs_endpoint is used
* feat(xapi): add suport for meta_xapi-create-end-actor-name

### v3.0.0-beta.0

* feat(test): add support for modular test suites
* feat(test): add xAPI test suite
* refactor(test): remove nock as a dependency
* fix(test): restore remaining out/webhooks tests
* fix(xapi): set chat message statements timestamp to ISO format
* fix: add Redis disconnection handling

### v3.0.0-alpha.1

* !refactor: application rewritten to use a modular input/processing/ouput system
* !refactor: modernize codebase (ES6 imports, Node.js >= 18 etc.)
* !refactor(webhooks): the webhooks functionality was rewritten into an output module
* !refactor(webhooks): hook IDs are now UUIDs instead of integers
* !refactor: new logging system (using Pino)
* !refactor: migrate node-redis from v3 to v4
* !refactor: new queue system (using Bullmq)
* refactor(webhooks): replace request with node-fetch
* refactor: replace sha1 dependency with native code
* feat: new xAPI output module with support for multitenancy
- Implements https://github.com/gaia-x-dases/xapi-virtual-classroom
- For more information: (README.md)[src/out/xapi/README.md]
* feat(events): add support for poll events
* feat(events): add support for raise-hand events
* feat(events): add support for emoji events
* feat(events): add user info to screenshare events
* feat(events): add support for audio muted/unmuted events
* feat: add Prometheus instrumentation
* feat: add JSDoc annotations to most of the codebase
* feat: log to file
* feat: add support for multiple checksum algorithms (SHA1,...,SHA512)
* fix(events): user-left events are now emitted for trailing users on meeting-ended events
* build: add docker-compose and updated Dockerfile examples
Loading
Loading