openvibers/openvibe.mediahub Commits
openvibe-shared v4.227.0 (was v4.225.0) (#427)
Changes
@@@ -562,7 +562,7 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [<!-- versions:start -->- openvibe-contracts: v0.417.0- openvibe-sdk: v0.161.0--- openvibe-shared: v4.225.0++- openvibe-shared: v4.227.0<!-- versions:end -->### Public Pics gallery@@@ -10,7 +10,7 @@"packages": ["openvibe-contracts v0.417.0","openvibe-sdk v0.161.0",-- "openvibe-shared v4.225.0"++ "openvibe-shared v4.227.0"],"summary": "OpenVibe.MediaHub: openvibe.download as a private drive. Account-only uploads stream into OpenVibe.Media (a plain form up to 256 MB, resumable parts beyond). Files are private. Share links expire in 1 hour to 7 days, need a signed-in downloader and can be limited to named accounts (matched by subject). Reports suspend a share for staff. Downloads are always sandboxed attachments. Per-person quotas, and account export and deletion (ADR-033). openvibe.video serves public watch pages and playlists for Live's recordings and clips (no uploads); openvibe.pics is parked and redirects to openvibe.network.","works": [@@@ -44,7 +44,7 @@],"contracts": "openvibe-contracts v0.417.0","sdk": "openvibe-sdk v0.161.0",-- "shared": "openvibe-shared v4.225.0",++ "shared": "openvibe-shared v4.227.0","deployment": "openvibe-ovh: unit openvibe-media-hub.service on 127.0.0.1:4990 (git checkout /opt/openvibe.download, env /etc/openvibe/media-hub.env, database ov_media_hub), deployed with `sudo ovhost deploy media-hub`; public at https://openvibe.download since 2026-10-08, https://openvibe.video since 2026-10-12 and https://openvibe.pics since 2026-10-15.","updated": "2026-11-12"}@@@ -17,7 +17,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0","pg": "^8.23.0","sharp": "^0.33.5"},@@@ -1735,9 +1735,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.225.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",-- "integrity": "sha512-zuZIgYODwJJ7UpDBTVnT+czEI5l6YFWqt1nbfbPeEsW6/NlmDZHJWPSGpBv223jRpvhJYH7Duea6nuRr8KZ3sg==",++ "version": "4.227.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0",++ "integrity": "sha512-/PqSqCC/vw/iwvkhDipLyixPyrtTcMpPhZ8UQ35fGDfAEJt43du2MYmZetu/TUysz+iJ9/Z7+VCFsFI1XzuF3Q==","license": "MIT","dependencies": {"clean-css": "^5.3.3",@@@ -24,7 +24,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0","pg": "^8.23.0","sharp": "^0.33.5"},@@@ -3,7 +3,7 @@* The one cache rule the service serves assets with (openvibe-shared/cache-policy, plan T11): a URL* whose ?v= is the asset's current hash is immutable for a year, because those bytes can never* change under the same URL; a wrong or missing ?v= may change at any moment, so it gets the-- * short public window with a day of stale-while-revalidate. The values are pinned here against++ * short public window with five minutes of stale-while-revalidate. The values are pinned here against* the module, not re-stated: the service never picks its own numbers.*/const assert = require('assert');@@@ -12,7 +12,7 @@ const { assetVersion } = require('../server/render/layout');const { boot, check, done } = require('./helpers/boot');const ASSET = 'css/app.css';--const SHORT = 'public, max-age=300, stale-while-revalidate=86400';++const SHORT = 'public, max-age=300, stale-while-revalidate=300';(async () => {const t = await boot();@@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%// headroom; file counts are the measured counts and external files stay at 0.const BUDGETS = {-- htmlRawKB: 63.5, // 63.5 openvibe-shared v4.202.0 (2026-11-11: measured 63.2, raised by pin-bump from 62.5); 62.5 (2026-11-10: measured 61.8 with openvibe-shared 4.192.0: the small player's script tag, the footer's online strip, the site name's dropdown); 60.4: measured 58.4 with openvibe-shared 4.161.0, plus room for 4.162.0–4.163.0, 2026-11-09++ htmlRawKB: 64, // 64 openvibe-shared v4.227.0 (2026-11-12: measured 64, raised by pin-bump from 63.5); 63.5 openvibe-shared v4.202.0 (2026-11-11: measured 63.2, raised by pin-bump from 62.5); 62.5 (2026-11-10: measured 61.8 with openvibe-shared 4.192.0: the small player's script tag, the footer's online strip, the site name's dropdown); 60.4: measured 58.4 with openvibe-shared 4.161.0, plus room for 4.162.0–4.163.0, 2026-11-09// FAQPage JSON-LD) and next steps on the network; was 29.7 at 27.5htmlBrotliKB: 13.5, // 13.5 (2026-11-10: measured 13.1 with openvibe-shared 4.192.0, as above); 12.6 before; 12.3 (2026-11-07: nine features on the home); 10.6 openvibe-shared 4.22.0: the navbar's magnifier search button and More dropdown (search.js and loading.js load only when used); 9.4 on 10-22 (the same sections); was 7.7 at 7.1jsFiles: 6, // 6: /shared/ov-glyphs.js in place of Font Awesome's stylesheet (2026-11-01, plan L54 K4); was: 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)
@@ -562,7 +562,7 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [
@@ -562,7 +562,7 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.417.0
- openvibe-contracts: v0.417.0
- openvibe-sdk: v0.161.0
- openvibe-sdk: v0.161.0
-- openvibe-shared: v4.225.0
+- openvibe-shared: v4.227.0
<!-- versions:end -->
<!-- versions:end -->
### Public Pics gallery
### Public Pics gallery
@@ -10,7 +10,7 @@
@@ -10,7 +10,7 @@
"packages": [
"packages": [
"openvibe-contracts v0.417.0",
"openvibe-contracts v0.417.0",
"openvibe-sdk v0.161.0",
"openvibe-sdk v0.161.0",
- "openvibe-shared v4.225.0"
+ "openvibe-shared v4.227.0"
],
],
"summary": "OpenVibe.MediaHub: openvibe.download as a private drive. Account-only uploads stream into OpenVibe.Media (a plain form up to 256 MB, resumable parts beyond). Files are private. Share links expire in 1 hour to 7 days, need a signed-in downloader and can be limited to named accounts (matched by subject). Reports suspend a share for staff. Downloads are always sandboxed attachments. Per-person quotas, and account export and deletion (ADR-033). openvibe.video serves public watch pages and playlists for Live's recordings and clips (no uploads); openvibe.pics is parked and redirects to openvibe.network.",
"summary": "OpenVibe.MediaHub: openvibe.download as a private drive. Account-only uploads stream into OpenVibe.Media (a plain form up to 256 MB, resumable parts beyond). Files are private. Share links expire in 1 hour to 7 days, need a signed-in downloader and can be limited to named accounts (matched by subject). Reports suspend a share for staff. Downloads are always sandboxed attachments. Per-person quotas, and account export and deletion (ADR-033). openvibe.video serves public watch pages and playlists for Live's recordings and clips (no uploads); openvibe.pics is parked and redirects to openvibe.network.",
"works": [
"works": [
@@ -44,7 +44,7 @@
@@ -44,7 +44,7 @@
],
],
"contracts": "openvibe-contracts v0.417.0",
"contracts": "openvibe-contracts v0.417.0",
"sdk": "openvibe-sdk v0.161.0",
"sdk": "openvibe-sdk v0.161.0",
- "shared": "openvibe-shared v4.225.0",
+ "shared": "openvibe-shared v4.227.0",
"deployment": "openvibe-ovh: unit openvibe-media-hub.service on 127.0.0.1:4990 (git checkout /opt/openvibe.download, env /etc/openvibe/media-hub.env, database ov_media_hub), deployed with `sudo ovhost deploy media-hub`; public at https://openvibe.download since 2026-10-08, https://openvibe.video since 2026-10-12 and https://openvibe.pics since 2026-10-15.",
"deployment": "openvibe-ovh: unit openvibe-media-hub.service on 127.0.0.1:4990 (git checkout /opt/openvibe.download, env /etc/openvibe/media-hub.env, database ov_media_hub), deployed with `sudo ovhost deploy media-hub`; public at https://openvibe.download since 2026-10-08, https://openvibe.video since 2026-10-12 and https://openvibe.pics since 2026-10-15.",
"updated": "2026-11-12"
"updated": "2026-11-12"
}
}
@@ -17,7 +17,7 @@
@@ -17,7 +17,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0",
"pg": "^8.23.0",
"pg": "^8.23.0",
"sharp": "^0.33.5"
"sharp": "^0.33.5"
},
},
@@ -1735,9 +1735,9 @@
@@ -1735,9 +1735,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.225.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",
- "integrity": "sha512-zuZIgYODwJJ7UpDBTVnT+czEI5l6YFWqt1nbfbPeEsW6/NlmDZHJWPSGpBv223jRpvhJYH7Duea6nuRr8KZ3sg==",
+ "version": "4.227.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0",
+ "integrity": "sha512-/PqSqCC/vw/iwvkhDipLyixPyrtTcMpPhZ8UQ35fGDfAEJt43du2MYmZetu/TUysz+iJ9/Z7+VCFsFI1XzuF3Q==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"clean-css": "^5.3.3",
"clean-css": "^5.3.3",
@@ -24,7 +24,7 @@
@@ -24,7 +24,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.417.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.161.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.225.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.227.0",
"pg": "^8.23.0",
"pg": "^8.23.0",
"sharp": "^0.33.5"
"sharp": "^0.33.5"
},
},
@@ -3,7 +3,7 @@
@@ -3,7 +3,7 @@
* The one cache rule the service serves assets with (openvibe-shared/cache-policy, plan T11): a URL
* The one cache rule the service serves assets with (openvibe-shared/cache-policy, plan T11): a URL
* whose ?v= is the asset's current hash is immutable for a year, because those bytes can never
* whose ?v= is the asset's current hash is immutable for a year, because those bytes can never
* change under the same URL; a wrong or missing ?v= may change at any moment, so it gets the
* change under the same URL; a wrong or missing ?v= may change at any moment, so it gets the
- * short public window with a day of stale-while-revalidate. The values are pinned here against
+ * short public window with five minutes of stale-while-revalidate. The values are pinned here against
* the module, not re-stated: the service never picks its own numbers.
* the module, not re-stated: the service never picks its own numbers.
*/
*/
const assert = require('assert');
const assert = require('assert');
@@ -12,7 +12,7 @@ const { assetVersion } = require('../server/render/layout');
@@ -12,7 +12,7 @@ const { assetVersion } = require('../server/render/layout');
const { boot, check, done } = require('./helpers/boot');
const { boot, check, done } = require('./helpers/boot');
const ASSET = 'css/app.css';
const ASSET = 'css/app.css';
-const SHORT = 'public, max-age=300, stale-while-revalidate=86400';
+const SHORT = 'public, max-age=300, stale-while-revalidate=300';
(async () => {
(async () => {
const t = await boot();
const t = await boot();
@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');
@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');
// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%
// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%
// headroom; file counts are the measured counts and external files stay at 0.
// headroom; file counts are the measured counts and external files stay at 0.
const BUDGETS = {
const BUDGETS = {
- htmlRawKB: 63.5, // 63.5 openvibe-shared v4.202.0 (2026-11-11: measured 63.2, raised by pin-bump from 62.5); 62.5 (2026-11-10: measured 61.8 with openvibe-shared 4.192.0: the small player's script tag, the footer's online strip, the site name's dropdown); 60.4: measured 58.4 with openvibe-shared 4.161.0, plus room for 4.162.0–4.163.0, 2026-11-09
+ htmlRawKB: 64, // 64 openvibe-shared v4.227.0 (2026-11-12: measured 64, raised by pin-bump from 63.5); 63.5 openvibe-shared v4.202.0 (2026-11-11: measured 63.2, raised by pin-bump from 62.5); 62.5 (2026-11-10: measured 61.8 with openvibe-shared 4.192.0: the small player's script tag, the footer's online strip, the site name's dropdown); 60.4: measured 58.4 with openvibe-shared 4.161.0, plus room for 4.162.0–4.163.0, 2026-11-09
// FAQPage JSON-LD) and next steps on the network; was 29.7 at 27.5
// FAQPage JSON-LD) and next steps on the network; was 29.7 at 27.5
htmlBrotliKB: 13.5, // 13.5 (2026-11-10: measured 13.1 with openvibe-shared 4.192.0, as above); 12.6 before; 12.3 (2026-11-07: nine features on the home); 10.6 openvibe-shared 4.22.0: the navbar's magnifier search button and More dropdown (search.js and loading.js load only when used); 9.4 on 10-22 (the same sections); was 7.7 at 7.1
htmlBrotliKB: 13.5, // 13.5 (2026-11-10: measured 13.1 with openvibe-shared 4.192.0, as above); 12.6 before; 12.3 (2026-11-07: nine features on the home); 10.6 openvibe-shared 4.22.0: the navbar's magnifier search button and More dropdown (search.js and loading.js load only when used); 9.4 on 10-22 (the same sections); was 7.7 at 7.1
jsFiles: 6, // 6: /shared/ov-glyphs.js in place of Font Awesome's stylesheet (2026-11-01, plan L54 K4); was: 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)
jsFiles: 6, // 6: /shared/ov-glyphs.js in place of Font Awesome's stylesheet (2026-11-01, plan L54 K4); was: 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)