openvibers/openvibe.domains Commits
openvibe-shared v4.107.0 (was v4.106.2) (#69)
Changes
@@@ -147,5 +147,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).<!-- versions:start -->- openvibe-contracts: v0.233.0- openvibe-sdk: v0.82.0--- openvibe-shared: v4.106.2++- openvibe-shared: v4.107.0<!-- versions:end -->@@@ -10,11 +10,11 @@"domain": "openvibe.domains","contracts": "openvibe-contracts v0.233.0","sdk": "openvibe-sdk v0.82.0",-- "shared": "openvibe-shared v4.106.2",++ "shared": "openvibe-shared v4.107.0","packages": ["openvibe-contracts v0.233.0","openvibe-sdk v0.82.0",-- "openvibe-shared v4.106.2"++ "openvibe-shared v4.107.0"],"summary": "OpenVibe.Domains is a stateless front: no database, no sign-in, no events. It reads OpenVibe.Host's internal catalog (GET /api/v1/catalog/domains, /domains/check?name=, /domains/:tld) and OpenVibe.Tools' public history (GET /api/v1/domains, /domains/:domain) through small in-process caches, prices every registrar row into one-, three- and five-year totals with the cheap-first-year renewal trap, and serves server-rendered pages (home, name search, one ending, one domain) plus a read-only JSON API. It has the service plumbing the other OpenVibe sites have: helmet/CSP, health and truthful readiness (degraded, never 503, when either upstream is down), release.json and /release-metrics, /shared, robots/sitemap/llms, a per-IP limit on /api/v1 and /search, graceful stop, deploy files and tests.","works": [@@@ -54,5 +54,5 @@"deploy files"],"deployment": "Not deployed yet. Reference unit deploy/systemd/openvibe-domains.service (127.0.0.1:5070, /opt/openvibe.domains, /etc/openvibe/domains.env, user ubuntu) and vhost deploy/nginx/openvibe.domains.conf (openvibe.domains and www, certs under /etc/letsencrypt/live/openvibe.domains/).",-- "updated": "2026-11-02"++ "updated": "2026-11-03"}@@@ -16,7 +16,7 @@"helmet": "^8.1.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0","pg": "^8.23.0"},"devDependencies": {@@@ -1120,9 +1120,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.106.2",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",-- "integrity": "sha512-sKq3TnkO0IaaKdgR5sLfkEwRL9DGYdT6etxTw4/9NKrp2HECvaDrPtOQw/xsrS0vtYwIm5z5BSp2+EVRt5MLQg==",++ "version": "4.107.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0",++ "integrity": "sha512-S0Um9G8a0jl/yL8Sox4e+xZtLHyMjiv1WcwUIlml6hgMKAPq9aGIzcUA9Cb/d6SppJaxCKIAKmsF5Slbz6UyZg==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0",@@@ -22,7 +22,7 @@"helmet": "^8.1.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0","pg": "^8.23.0"},"engines": {@@@ -123,6 +123,17 @@ async function createApp(opts = {}) {// This service's own pinned copy of the Frame, and its stylesheet (content-hashed by the views: kept a year).app.use('/shared', serve.handler());++ // Terms, Privacy and DMCA in this site's own words (openvibe-shared/legal, profile 'public'; 11-03: the footer's++ // legal links answered 404 here). The facts must match the code: change both together.++ const legal = require('openvibe-shared/legal');++ app.get(legal.PATHS, legal.handler({++ "host": "openvibe.domains",++ "name": "OpenVibe.Domains",++ "id": "domains",++ "service": "domains",++ "profile": "public",++ "what": "Every ending and every registrar for a name, with what you will really pay over 1, 3 and 5 years, the renewal traps flagged, and each domain's public history."++ }));app.use('/css', express.static(path.join(__dirname, '..', 'public', 'css'), { maxAge: '365d', immutable: true, fallthrough: false }));require('./views').setRelease(release.release);
@@ -147,5 +147,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
@@ -147,5 +147,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.233.0
- openvibe-contracts: v0.233.0
- openvibe-sdk: v0.82.0
- openvibe-sdk: v0.82.0
-- openvibe-shared: v4.106.2
+- openvibe-shared: v4.107.0
<!-- versions:end -->
<!-- versions:end -->
@@ -10,11 +10,11 @@
@@ -10,11 +10,11 @@
"domain": "openvibe.domains",
"domain": "openvibe.domains",
"contracts": "openvibe-contracts v0.233.0",
"contracts": "openvibe-contracts v0.233.0",
"sdk": "openvibe-sdk v0.82.0",
"sdk": "openvibe-sdk v0.82.0",
- "shared": "openvibe-shared v4.106.2",
+ "shared": "openvibe-shared v4.107.0",
"packages": [
"packages": [
"openvibe-contracts v0.233.0",
"openvibe-contracts v0.233.0",
"openvibe-sdk v0.82.0",
"openvibe-sdk v0.82.0",
- "openvibe-shared v4.106.2"
+ "openvibe-shared v4.107.0"
],
],
"summary": "OpenVibe.Domains is a stateless front: no database, no sign-in, no events. It reads OpenVibe.Host's internal catalog (GET /api/v1/catalog/domains, /domains/check?name=, /domains/:tld) and OpenVibe.Tools' public history (GET /api/v1/domains, /domains/:domain) through small in-process caches, prices every registrar row into one-, three- and five-year totals with the cheap-first-year renewal trap, and serves server-rendered pages (home, name search, one ending, one domain) plus a read-only JSON API. It has the service plumbing the other OpenVibe sites have: helmet/CSP, health and truthful readiness (degraded, never 503, when either upstream is down), release.json and /release-metrics, /shared, robots/sitemap/llms, a per-IP limit on /api/v1 and /search, graceful stop, deploy files and tests.",
"summary": "OpenVibe.Domains is a stateless front: no database, no sign-in, no events. It reads OpenVibe.Host's internal catalog (GET /api/v1/catalog/domains, /domains/check?name=, /domains/:tld) and OpenVibe.Tools' public history (GET /api/v1/domains, /domains/:domain) through small in-process caches, prices every registrar row into one-, three- and five-year totals with the cheap-first-year renewal trap, and serves server-rendered pages (home, name search, one ending, one domain) plus a read-only JSON API. It has the service plumbing the other OpenVibe sites have: helmet/CSP, health and truthful readiness (degraded, never 503, when either upstream is down), release.json and /release-metrics, /shared, robots/sitemap/llms, a per-IP limit on /api/v1 and /search, graceful stop, deploy files and tests.",
"works": [
"works": [
@@ -54,5 +54,5 @@
@@ -54,5 +54,5 @@
"deploy files"
"deploy files"
],
],
"deployment": "Not deployed yet. Reference unit deploy/systemd/openvibe-domains.service (127.0.0.1:5070, /opt/openvibe.domains, /etc/openvibe/domains.env, user ubuntu) and vhost deploy/nginx/openvibe.domains.conf (openvibe.domains and www, certs under /etc/letsencrypt/live/openvibe.domains/).",
"deployment": "Not deployed yet. Reference unit deploy/systemd/openvibe-domains.service (127.0.0.1:5070, /opt/openvibe.domains, /etc/openvibe/domains.env, user ubuntu) and vhost deploy/nginx/openvibe.domains.conf (openvibe.domains and www, certs under /etc/letsencrypt/live/openvibe.domains/).",
- "updated": "2026-11-02"
+ "updated": "2026-11-03"
}
}
@@ -16,7 +16,7 @@
@@ -16,7 +16,7 @@
"helmet": "^8.1.0",
"helmet": "^8.1.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"devDependencies": {
"devDependencies": {
@@ -1120,9 +1120,9 @@
@@ -1120,9 +1120,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.106.2",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",
- "integrity": "sha512-sKq3TnkO0IaaKdgR5sLfkEwRL9DGYdT6etxTw4/9NKrp2HECvaDrPtOQw/xsrS0vtYwIm5z5BSp2+EVRt5MLQg==",
+ "version": "4.107.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0",
+ "integrity": "sha512-S0Um9G8a0jl/yL8Sox4e+xZtLHyMjiv1WcwUIlml6hgMKAPq9aGIzcUA9Cb/d6SppJaxCKIAKmsF5Slbz6UyZg==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0",
"jsonwebtoken": "^9.0.0",
@@ -22,7 +22,7 @@
@@ -22,7 +22,7 @@
"helmet": "^8.1.0",
"helmet": "^8.1.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.233.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.106.2",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"engines": {
"engines": {
@@ -123,6 +123,17 @@ async function createApp(opts = {}) {
@@ -123,6 +123,17 @@ async function createApp(opts = {}) {
// This service's own pinned copy of the Frame, and its stylesheet (content-hashed by the views: kept a year).
// This service's own pinned copy of the Frame, and its stylesheet (content-hashed by the views: kept a year).
app.use('/shared', serve.handler());
app.use('/shared', serve.handler());
+ // Terms, Privacy and DMCA in this site's own words (openvibe-shared/legal, profile 'public'; 11-03: the footer's
+ // legal links answered 404 here). The facts must match the code: change both together.
+ const legal = require('openvibe-shared/legal');
+ app.get(legal.PATHS, legal.handler({
+ "host": "openvibe.domains",
+ "name": "OpenVibe.Domains",
+ "id": "domains",
+ "service": "domains",
+ "profile": "public",
+ "what": "Every ending and every registrar for a name, with what you will really pay over 1, 3 and 5 years, the renewal traps flagged, and each domain's public history."
+ }));
app.use('/css', express.static(path.join(__dirname, '..', 'public', 'css'), { maxAge: '365d', immutable: true, fallthrough: false }));
app.use('/css', express.static(path.join(__dirname, '..', 'public', 'css'), { maxAge: '365d', immutable: true, fallthrough: false }));
require('./views').setRelease(release.release);
require('./views').setRelease(release.release);