multistreaming: scenes/composition, installer build support, service updates
- multistreaming (new): RTMP ingest + multi-platform fan-out with pluggable providers (Twitch/YouTube/Kick/custom), zero-knowledge key vaults, Authelia OIDC auth, shared rooms with editor/streamer roles, single-use invites, per-account streaming grants, and scenes & composition (grid/PiP layouts, text/image overlays, per-output audio routing). - installer: support Dockerfile build in metadata (not just image) and RSA key generation for the Authelia OIDC JWKS. - authelia: add OIDC provider with portainer + multistreaming clients (public + PKCE). - services: remove allprox; add nginx-proxy-manager and portainer; update lldap; regenerate catalog.
This commit is contained in:
parent
bb754cdd8c
commit
187379de4e
106 changed files with 21391 additions and 286 deletions
21
services/multistreaming/test/oidc.test.js
Normal file
21
services/multistreaming/test/oidc.test.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
'use strict';
|
||||
|
||||
const assert = require('node:assert/strict');
|
||||
const test = require('node:test');
|
||||
const { randomToken, pkceChallenge } = require('../src/oidc');
|
||||
|
||||
test('PKCE S256 challenge is deterministic and 43 chars (base64url SHA-256)', () => {
|
||||
const verifier = 'abc123';
|
||||
const c1 = pkceChallenge(verifier);
|
||||
const c2 = pkceChallenge(verifier);
|
||||
assert.equal(c1, c2);
|
||||
assert.equal(c1.length, 43);
|
||||
assert.notEqual(c1, verifier);
|
||||
});
|
||||
|
||||
test('random tokens are unique and long enough', () => {
|
||||
const a = randomToken();
|
||||
const b = randomToken();
|
||||
assert.notEqual(a, b);
|
||||
assert.ok(a.length >= 43);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue