openvibers/openvibe.host Commits
openvibe-contracts v0.200.0 (was v0.199.0) (#123)
Changes
@@@ -342,7 +342,7 @@ the owner's gates (go-ahead, a DMCA agent, a Public Suffix List entry for openviPart of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).<!-- versions:start -->--- openvibe-contracts: v0.199.0++- openvibe-contracts: v0.200.0- openvibe-sdk: v0.50.1- openvibe-shared: v4.3.0- openvibe-publishing: v1.4.0@@@ -13,11 +13,11 @@"runtime": "node 22; Express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + optional Valkey","port": 4910,"domain": "openvibe.host",-- "contracts": "openvibe-contracts v0.199.0",++ "contracts": "openvibe-contracts v0.200.0","sdk": "openvibe-sdk v0.50.1","shared": "openvibe-shared v4.3.0","packages": [-- "openvibe-contracts v0.199.0",++ "openvibe-contracts v0.200.0","openvibe-sdk v0.50.1","openvibe-shared v4.3.0"],@@@ -9,7 +9,7 @@ Type=oneshot# Root reads the state and writes the textfile metrics; Chrome runs as the unprivileged ovcheck account# (runuser), never as root. --sites names the watched services (inventory origin or manifest publicOrigin).User=root--ExecStart=/usr/local/bin/ovhost browser-watch --sites live,network,tools,media,community,chat,games,blog,wiki,codes,host,ai,billing,search,sources,news,reviews,deals,coupons,trade,openre,space,bot,events,services,actor,watch,run,food,help,work,quest,rent,media-hub,inventory,play,zone++ExecStart=/usr/local/bin/ovhost browser-watch --sites live,network,tools,media,community,chat,games,blog,wiki,codes,host,ai,billing,search,sources,news,reviews,deals,coupons,trade,openre,space,bot,events,services,actor,watch,run,food,help,work,quest,rent,media-hub,inventory,play,zone,tips,vipEnvironment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binEnvironment=OVHOST_INVENTORY=/etc/openvibe/host.jsonNice=10@@@ -15,7 +15,7 @@"express": "^4.21.2","express-rate-limit": "^7.5.0","iovalkey": "^0.4.0",-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0","openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",@@@ -1259,9 +1259,9 @@}},"node_modules/openvibe-contracts": {-- "version": "0.199.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",-- "integrity": "sha512-PQYZfbiGMGu7aSR1E4Slbk0Of8vmFa2E1c6Z7gxQSbHVQV4daXR5E4ouEKj3Q8bHjJc1cNYvaKLTlhUg7SLvzg==",++ "version": "0.200.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0",++ "integrity": "sha512-w0e+JgfhB2rYe2yfPHhE+0klyFEJE72iwd8u+o41E2uV4H0Hh+zEP0+0FfQDbeni5eV+lj3WmojTtDaKOfSBpA==","license": "AGPL-3.0-only","dependencies": {"ajv": "^8.17.1",@@@ -31,7 +31,7 @@"express": "^4.21.2","express-rate-limit": "^7.5.0","iovalkey": "^0.4.0",-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0","openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",@@@ -1,8 +1,8 @@'use strict';// The release UX check's site list (deploy/systemd/openvibe-browsercheck.service): every watched site is a service of// the host's example inventory with an origin to check (its inventory origin or its manifest's publicOrigin), and no--// service whose manifest says it is not public (openvibe.tips and openvibe.vip are parked: they redirect to--// openvibe.network and would fail every check). Every public product the host runs is watched.++// service whose manifest says it is not public (a parked domain redirects to openvibe.network and would fail every++// check; Tips and VIP were parked until contracts 0.200.0). Every public product the host runs is watched.const assert = require('assert');const fs = require('fs');const path = require('path');@@@ -22,10 +22,8 @@ runTests([assert.match(String(originOf(inv, site, contracts)), /^https:\/\/[a-z0-9.-]+$/, `${site} has no origin`);}}),-- test('no parked site is watched, and every public one the host runs is', () => {++ test('every public site the host runs is watched (Tips and VIP since contracts 0.200.0)', () => {const exposure = (id) => { const m = contracts.services.get(id); return m && m.exposure ? m.exposure.state : null; };-- // Parked by OpenVibe.Network (parked-domains): their origins redirect to openvibe.network until T5 opens them.-- for (const parked of ['tips', 'vip']) assert.ok(!sites.includes(parked), `${parked} is parked`);const live = Object.keys(inv.services).filter((id) => exposure(id) === 'live' && originOf(inv, id, contracts));assert.deepStrictEqual(live.filter((id) => !sites.includes(id)), [], 'a public service on the host is not watched');}),
@@ -342,7 +342,7 @@ the owner's gates (go-ahead, a DMCA agent, a Public Suffix List entry for openvi
@@ -342,7 +342,7 @@ the owner's gates (go-ahead, a DMCA agent, a Public Suffix List entry for openvi
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
<!-- versions:start -->
<!-- versions:start -->
-- openvibe-contracts: v0.199.0
+- openvibe-contracts: v0.200.0
- openvibe-sdk: v0.50.1
- openvibe-sdk: v0.50.1
- openvibe-shared: v4.3.0
- openvibe-shared: v4.3.0
- openvibe-publishing: v1.4.0
- openvibe-publishing: v1.4.0
@@ -13,11 +13,11 @@
@@ -13,11 +13,11 @@
"runtime": "node 22; Express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + optional Valkey",
"runtime": "node 22; Express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + optional Valkey",
"port": 4910,
"port": 4910,
"domain": "openvibe.host",
"domain": "openvibe.host",
- "contracts": "openvibe-contracts v0.199.0",
+ "contracts": "openvibe-contracts v0.200.0",
"sdk": "openvibe-sdk v0.50.1",
"sdk": "openvibe-sdk v0.50.1",
"shared": "openvibe-shared v4.3.0",
"shared": "openvibe-shared v4.3.0",
"packages": [
"packages": [
- "openvibe-contracts v0.199.0",
+ "openvibe-contracts v0.200.0",
"openvibe-sdk v0.50.1",
"openvibe-sdk v0.50.1",
"openvibe-shared v4.3.0"
"openvibe-shared v4.3.0"
],
],
@@ -9,7 +9,7 @@ Type=oneshot
@@ -9,7 +9,7 @@ Type=oneshot
# Root reads the state and writes the textfile metrics; Chrome runs as the unprivileged ovcheck account
# Root reads the state and writes the textfile metrics; Chrome runs as the unprivileged ovcheck account
# (runuser), never as root. --sites names the watched services (inventory origin or manifest publicOrigin).
# (runuser), never as root. --sites names the watched services (inventory origin or manifest publicOrigin).
User=root
User=root
-ExecStart=/usr/local/bin/ovhost browser-watch --sites live,network,tools,media,community,chat,games,blog,wiki,codes,host,ai,billing,search,sources,news,reviews,deals,coupons,trade,openre,space,bot,events,services,actor,watch,run,food,help,work,quest,rent,media-hub,inventory,play,zone
+ExecStart=/usr/local/bin/ovhost browser-watch --sites live,network,tools,media,community,chat,games,blog,wiki,codes,host,ai,billing,search,sources,news,reviews,deals,coupons,trade,openre,space,bot,events,services,actor,watch,run,food,help,work,quest,rent,media-hub,inventory,play,zone,tips,vip
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=OVHOST_INVENTORY=/etc/openvibe/host.json
Environment=OVHOST_INVENTORY=/etc/openvibe/host.json
Nice=10
Nice=10
@@ -15,7 +15,7 @@
@@ -15,7 +15,7 @@
"express": "^4.21.2",
"express": "^4.21.2",
"express-rate-limit": "^7.5.0",
"express-rate-limit": "^7.5.0",
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",
+ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",
@@ -1259,9 +1259,9 @@
@@ -1259,9 +1259,9 @@
}
}
},
},
"node_modules/openvibe-contracts": {
"node_modules/openvibe-contracts": {
- "version": "0.199.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",
- "integrity": "sha512-PQYZfbiGMGu7aSR1E4Slbk0Of8vmFa2E1c6Z7gxQSbHVQV4daXR5E4ouEKj3Q8bHjJc1cNYvaKLTlhUg7SLvzg==",
+ "version": "0.200.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0",
+ "integrity": "sha512-w0e+JgfhB2rYe2yfPHhE+0klyFEJE72iwd8u+o41E2uV4H0Hh+zEP0+0FfQDbeni5eV+lj3WmojTtDaKOfSBpA==",
"license": "AGPL-3.0-only",
"license": "AGPL-3.0-only",
"dependencies": {
"dependencies": {
"ajv": "^8.17.1",
"ajv": "^8.17.1",
@@ -31,7 +31,7 @@
@@ -31,7 +31,7 @@
"express": "^4.21.2",
"express": "^4.21.2",
"express-rate-limit": "^7.5.0",
"express-rate-limit": "^7.5.0",
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.199.0",
+ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.200.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.4.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.50.1",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.3.0",
@@ -1,8 +1,8 @@
@@ -1,8 +1,8 @@
'use strict';
'use strict';
// The release UX check's site list (deploy/systemd/openvibe-browsercheck.service): every watched site is a service of
// The release UX check's site list (deploy/systemd/openvibe-browsercheck.service): every watched site is a service of
// the host's example inventory with an origin to check (its inventory origin or its manifest's publicOrigin), and no
// the host's example inventory with an origin to check (its inventory origin or its manifest's publicOrigin), and no
-// service whose manifest says it is not public (openvibe.tips and openvibe.vip are parked: they redirect to
-// openvibe.network and would fail every check). Every public product the host runs is watched.
+// service whose manifest says it is not public (a parked domain redirects to openvibe.network and would fail every
+// check; Tips and VIP were parked until contracts 0.200.0). Every public product the host runs is watched.
const assert = require('assert');
const assert = require('assert');
const fs = require('fs');
const fs = require('fs');
const path = require('path');
const path = require('path');
@@ -22,10 +22,8 @@ runTests([
@@ -22,10 +22,8 @@ runTests([
assert.match(String(originOf(inv, site, contracts)), /^https:\/\/[a-z0-9.-]+$/, `${site} has no origin`);
assert.match(String(originOf(inv, site, contracts)), /^https:\/\/[a-z0-9.-]+$/, `${site} has no origin`);
}
}
}),
}),
- test('no parked site is watched, and every public one the host runs is', () => {
+ test('every public site the host runs is watched (Tips and VIP since contracts 0.200.0)', () => {
const exposure = (id) => { const m = contracts.services.get(id); return m && m.exposure ? m.exposure.state : null; };
const exposure = (id) => { const m = contracts.services.get(id); return m && m.exposure ? m.exposure.state : null; };
- // Parked by OpenVibe.Network (parked-domains): their origins redirect to openvibe.network until T5 opens them.
- for (const parked of ['tips', 'vip']) assert.ok(!sites.includes(parked), `${parked} is parked`);
const live = Object.keys(inv.services).filter((id) => exposure(id) === 'live' && originOf(inv, id, contracts));
const live = Object.keys(inv.services).filter((id) => exposure(id) === 'live' && originOf(inv, id, contracts));
assert.deepStrictEqual(live.filter((id) => !sites.includes(id)), [], 'a public service on the host is not watched');
assert.deepStrictEqual(live.filter((id) => !sites.includes(id)), [], 'a public service on the host is not watched');
}),
}),