openvibers/openvibe.tools Commits
Tools: the paste gateway names Community; dead LIVE_URL goes (C-13) (#48)
Changes
@@@ -27,9 +27,8 @@ OV_OAUTH_REDIRECT_URI=http://localhost:4001/auth/callback# /<key>.txt so engines can verify the site. Unset: off — nothing is mounted and nothing is sent.#INDEXNOW_KEY=--# OpenVibe.Media — backs Paste.OpenVibe (pastes stored under app_id 'live')--MEDIA_URL=http://127.0.0.1:4100--MEDIA_PUBLIC_URL=https://openvibe.media++# OpenVibe.Community — receives Paste.OpenVibe API requests++#OV_COMMUNITY_INTERNAL_URL=http://127.0.0.1:4200# Net tools (optional). With an ipinfo.io token, IP lookups use ipinfo over HTTPS instead of ip-api.com's# free tier (plain HTTP). Answers are cached either way. The Globalping token is read but no tool uses it yet.@@@ -14,8 +14,9 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.plus one subdomain per tool: `dns.`, `ping.`, `ssl.`, `whois.`, …).- **Dev.OpenVibe** — 26 developer & SEO tools (`dev.openvibe.tools` plus`json.`, `base64.`, `jwt.`, `regex.`, …).--- **Paste.OpenVibe** — `pastes.openvibe.tools` front-end; pastes are stored in-- OpenVibe.Media under app_id `live` and proxied server-side via `MEDIA_URL`.++- **Paste.OpenVibe** — `pastes.openvibe.tools` redirects to OpenVibe.Community;++ `/api/pastes/*` is forwarded to OpenVibe.Community (`OV_COMMUNITY_INTERNAL_URL`)++ with the visitor's `ov_token`.- **Session layer** — `/auth/login`, `/auth/callback`, `/auth/logout`,`/auth/me`, `/auth/refresh`. Sets the shared `ov_token` cookie on`.openvibe.tools` so every satellite subdomain can read it and verify it@@@ -27,7 +28,7 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.apps/gateway (port 4001)├── server/│ ├── index.js # Express app, CORS, Host routing, paste proxy--│ ├── config.js # Port, Network URLs, OAuth client, Media URL++│ ├── config.js # Port, Network URLs, OAuth client, Community URL│ ├── auth/routes.js # OAuth2 client session layer (+ offline JWT verify)│ ├── net/ # Net.OpenVibe API + tool/alias definitions│ └── dev/ # Dev.OpenVibe API + tool/alias definitions@@@ -56,7 +57,7 @@ curl -H 'Host: net.openvibe.tools' http://localhost:4001/See `.env.example`. Key variables: `PORT` (4001), `OV_NETWORK_URL`,`OV_NETWORK_INTERNAL_URL`, `OV_OAUTH_CLIENT_ID`, `OV_OAUTH_CLIENT_SECRET`,--`OV_OAUTH_REDIRECT_URI`, `MEDIA_URL`, `COOKIE_DOMAIN`.++`OV_OAUTH_REDIRECT_URI`, `OV_COMMUNITY_INTERNAL_URL`, `COOKIE_DOMAIN`.## Deploy@@@ -34,11 +34,6 @@ module.exports = {secure: process.env.COOKIE_SECURE ? process.env.COOKIE_SECURE === 'true' : isProduction,},-- // OpenVibe.Live — backs the Paste.OpenVibe front-end. The pastes themselves are-- // stored in OpenVibe.Media, but we go through Live rather than straight to Media:-- // Live owns the accounts these pastes belong to, so it is the only service that can-- // turn a signed-in visitor into the user id Media files the write under.-- liveUrl: process.env.LIVE_URL || 'http://127.0.0.1:3000',// OpenVibe.Community owns pastes (roadmap Wave 5); the paste front-end's API goes straight there.communityUrl: (process.env.OV_COMMUNITY_INTERNAL_URL || 'http://127.0.0.1:4200').replace(/\/$/, ''),@@@ -5,7 +5,7 @@//// Serves the apex directory page plus the Host-header-routed tool// subdomains: Net.OpenVibe (38 network tools), Dev.OpenVibe--// (26 developer tools), and Paste.OpenVibe (backed by OpenVibe.Media).++// (26 developer tools), and Paste.OpenVibe (backed by OpenVibe.Community).//// Identity lives on OpenVibe.Network — this service is an OAuth2// CLIENT (`tools`). See server/auth/routes.js for the session layer.@@@ -511,7 +511,7 @@ const server = app.listen(config.port, config.host, () => {console.log(`║ Port: ${String(config.port).padEnd(32)}║`);console.log(`║ URL: ${config.baseUrl.padEnd(32)}║`);console.log(`║ SSO: ${config.networkUrl.padEnd(32)}║`);-- console.log(`║ Live: ${config.liveUrl.padEnd(32)}║`);++ console.log(`║ Pastes: ${config.communityUrl.padEnd(32)}║`);console.log(`╚════════════════════════════════════════════╝\n`);});
@@ -27,9 +27,8 @@ OV_OAUTH_REDIRECT_URI=http://localhost:4001/auth/callback
@@ -27,9 +27,8 @@ OV_OAUTH_REDIRECT_URI=http://localhost:4001/auth/callback
# /<key>.txt so engines can verify the site. Unset: off — nothing is mounted and nothing is sent.
# /<key>.txt so engines can verify the site. Unset: off — nothing is mounted and nothing is sent.
#INDEXNOW_KEY=
#INDEXNOW_KEY=
-# OpenVibe.Media — backs Paste.OpenVibe (pastes stored under app_id 'live')
-MEDIA_URL=http://127.0.0.1:4100
-MEDIA_PUBLIC_URL=https://openvibe.media
+# OpenVibe.Community — receives Paste.OpenVibe API requests
+#OV_COMMUNITY_INTERNAL_URL=http://127.0.0.1:4200
# Net tools (optional). With an ipinfo.io token, IP lookups use ipinfo over HTTPS instead of ip-api.com's
# Net tools (optional). With an ipinfo.io token, IP lookups use ipinfo over HTTPS instead of ip-api.com's
# free tier (plain HTTP). Answers are cached either way. The Globalping token is read but no tool uses it yet.
# free tier (plain HTTP). Answers are cached either way. The Globalping token is read but no tool uses it yet.
@@ -14,8 +14,9 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.
@@ -14,8 +14,9 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.
plus one subdomain per tool: `dns.`, `ping.`, `ssl.`, `whois.`, …).
plus one subdomain per tool: `dns.`, `ping.`, `ssl.`, `whois.`, …).
- **Dev.OpenVibe** — 26 developer & SEO tools (`dev.openvibe.tools` plus
- **Dev.OpenVibe** — 26 developer & SEO tools (`dev.openvibe.tools` plus
`json.`, `base64.`, `jwt.`, `regex.`, …).
`json.`, `base64.`, `jwt.`, `regex.`, …).
-- **Paste.OpenVibe** — `pastes.openvibe.tools` front-end; pastes are stored in
- OpenVibe.Media under app_id `live` and proxied server-side via `MEDIA_URL`.
+- **Paste.OpenVibe** — `pastes.openvibe.tools` redirects to OpenVibe.Community;
+ `/api/pastes/*` is forwarded to OpenVibe.Community (`OV_COMMUNITY_INTERNAL_URL`)
+ with the visitor's `ov_token`.
- **Session layer** — `/auth/login`, `/auth/callback`, `/auth/logout`,
- **Session layer** — `/auth/login`, `/auth/callback`, `/auth/logout`,
`/auth/me`, `/auth/refresh`. Sets the shared `ov_token` cookie on
`/auth/me`, `/auth/refresh`. Sets the shared `ov_token` cookie on
`.openvibe.tools` so every satellite subdomain can read it and verify it
`.openvibe.tools` so every satellite subdomain can read it and verify it
@@ -27,7 +28,7 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.
@@ -27,7 +28,7 @@ service is an OAuth2 **client** (`client_id: tools`), not a provider.
apps/gateway (port 4001)
apps/gateway (port 4001)
├── server/
├── server/
│ ├── index.js # Express app, CORS, Host routing, paste proxy
│ ├── index.js # Express app, CORS, Host routing, paste proxy
-│ ├── config.js # Port, Network URLs, OAuth client, Media URL
+│ ├── config.js # Port, Network URLs, OAuth client, Community URL
│ ├── auth/routes.js # OAuth2 client session layer (+ offline JWT verify)
│ ├── auth/routes.js # OAuth2 client session layer (+ offline JWT verify)
│ ├── net/ # Net.OpenVibe API + tool/alias definitions
│ ├── net/ # Net.OpenVibe API + tool/alias definitions
│ └── dev/ # Dev.OpenVibe API + tool/alias definitions
│ └── dev/ # Dev.OpenVibe API + tool/alias definitions
@@ -56,7 +57,7 @@ curl -H 'Host: net.openvibe.tools' http://localhost:4001/
@@ -56,7 +57,7 @@ curl -H 'Host: net.openvibe.tools' http://localhost:4001/
See `.env.example`. Key variables: `PORT` (4001), `OV_NETWORK_URL`,
See `.env.example`. Key variables: `PORT` (4001), `OV_NETWORK_URL`,
`OV_NETWORK_INTERNAL_URL`, `OV_OAUTH_CLIENT_ID`, `OV_OAUTH_CLIENT_SECRET`,
`OV_NETWORK_INTERNAL_URL`, `OV_OAUTH_CLIENT_ID`, `OV_OAUTH_CLIENT_SECRET`,
-`OV_OAUTH_REDIRECT_URI`, `MEDIA_URL`, `COOKIE_DOMAIN`.
+`OV_OAUTH_REDIRECT_URI`, `OV_COMMUNITY_INTERNAL_URL`, `COOKIE_DOMAIN`.
## Deploy
## Deploy
@@ -34,11 +34,6 @@ module.exports = {
@@ -34,11 +34,6 @@ module.exports = {
secure: process.env.COOKIE_SECURE ? process.env.COOKIE_SECURE === 'true' : isProduction,
secure: process.env.COOKIE_SECURE ? process.env.COOKIE_SECURE === 'true' : isProduction,
},
},
- // OpenVibe.Live — backs the Paste.OpenVibe front-end. The pastes themselves are
- // stored in OpenVibe.Media, but we go through Live rather than straight to Media:
- // Live owns the accounts these pastes belong to, so it is the only service that can
- // turn a signed-in visitor into the user id Media files the write under.
- liveUrl: process.env.LIVE_URL || 'http://127.0.0.1:3000',
// OpenVibe.Community owns pastes (roadmap Wave 5); the paste front-end's API goes straight there.
// OpenVibe.Community owns pastes (roadmap Wave 5); the paste front-end's API goes straight there.
communityUrl: (process.env.OV_COMMUNITY_INTERNAL_URL || 'http://127.0.0.1:4200').replace(/\/$/, ''),
communityUrl: (process.env.OV_COMMUNITY_INTERNAL_URL || 'http://127.0.0.1:4200').replace(/\/$/, ''),
@@ -5,7 +5,7 @@
@@ -5,7 +5,7 @@
//
//
// Serves the apex directory page plus the Host-header-routed tool
// Serves the apex directory page plus the Host-header-routed tool
// subdomains: Net.OpenVibe (38 network tools), Dev.OpenVibe
// subdomains: Net.OpenVibe (38 network tools), Dev.OpenVibe
-// (26 developer tools), and Paste.OpenVibe (backed by OpenVibe.Media).
+// (26 developer tools), and Paste.OpenVibe (backed by OpenVibe.Community).
//
//
// Identity lives on OpenVibe.Network — this service is an OAuth2
// Identity lives on OpenVibe.Network — this service is an OAuth2
// CLIENT (`tools`). See server/auth/routes.js for the session layer.
// CLIENT (`tools`). See server/auth/routes.js for the session layer.
@@ -511,7 +511,7 @@ const server = app.listen(config.port, config.host, () => {
@@ -511,7 +511,7 @@ const server = app.listen(config.port, config.host, () => {
console.log(`║ Port: ${String(config.port).padEnd(32)}║`);
console.log(`║ Port: ${String(config.port).padEnd(32)}║`);
console.log(`║ URL: ${config.baseUrl.padEnd(32)}║`);
console.log(`║ URL: ${config.baseUrl.padEnd(32)}║`);
console.log(`║ SSO: ${config.networkUrl.padEnd(32)}║`);
console.log(`║ SSO: ${config.networkUrl.padEnd(32)}║`);
- console.log(`║ Live: ${config.liveUrl.padEnd(32)}║`);
+ console.log(`║ Pastes: ${config.communityUrl.padEnd(32)}║`);
console.log(`╚════════════════════════════════════════════╝\n`);
console.log(`╚════════════════════════════════════════════╝\n`);
});
});