openvibers/openvibe.host Commits
Adopt the D41 docs-status check (Shared 2.9.0 workflows) (#21)
Changes
@@@ -6,7 +6,7 @@ on:jobs:# install, node --check, npm test and openvibe-contracts-check: the shared test job (Track Q).test:-- uses: OpenVibers/OpenVibe.Shared/.github/workflows/test.yml@423fe519b5fe9594cc81b670e5ba5cb9f21f6176++ uses: OpenVibers/OpenVibe.Shared/.github/workflows/test.yml@aa570e4815063dc65624a6a486038d83ff6f6ec0with:syntax-dirs: lib servercontracts-service: host@@@ -14,7 +14,8 @@ jobs:# scripts/test-services.sh). npm test runs every file on PGlite; test:pg runs them all through PgBouncer.test: 'eval "$(node_modules/openvibe-sdk/scripts/test-services.sh up)" && npm test && npm run test:pg'contracts-src: lib server++ docs-status: trueextra: node --check bin/ovhost && for f in scripts/*.sh; do bash -n "$f"; done# Secret scan (gitleaks) and dependency audit, shared by every OpenVibers repo (Track Q).security:-- uses: OpenVibers/OpenVibe.Shared/.github/workflows/security.yml@423fe519b5fe9594cc81b670e5ba5cb9f21f6176++ uses: OpenVibers/OpenVibe.Shared/.github/workflows/security.yml@aa570e4815063dc65624a6a486038d83ff6f6ec0@@@ -49,9 +49,9 @@ Stage A adds a few safety rules of its own:## Depends on--- OpenVibe.Contracts (`openvibe-contracts` v0.79.0; `host.*` capabilities and the `host` manifest were released in v0.24.0, and v0.32.0 adds the takedown routes to `host.site.manage`): service manifests (vhost rendering, snapshots, the first-party domain list), ids, problem+json, service-token verification, capability checks.++- OpenVibe.Contracts (`openvibe-contracts` v0.83.0; `host.*` capabilities and the `host` manifest were released in v0.24.0, and v0.32.0 adds the takedown routes to `host.site.manage`): service manifests (vhost rendering, snapshots, the first-party domain list), ids, problem+json, service-token verification, capability checks.- OpenVibe.Network (Stage B): SSO for the dashboard, the JWKS that verifies user and service tokens, client-credentials tokens for the outbox relay.--- OpenVibe.Events (Stage B): `host.*` events through the `openvibe-sdk` v0.25.0 transactional outbox (openvibe-sdk/limits for the per-actor limits).++- OpenVibe.Events (Stage B): `host.*` events through the `openvibe-sdk` v0.26.0 transactional outbox (openvibe-sdk/limits for the per-actor limits).- `openvibe-shared` v2.6.0 (Stage B): shared chrome (Host's own pages are composed with `openvibe-shared/shell`), legal pages, `/release.json`, `/metrics`, `/api/ready`.- OpenVibe.Media: not yet. The roadmap stores artifacts "through Media where practical"; Stage B keeps them on local disk for now (see [Not done yet](#not-done-yet-stage-b)).@@@ -355,7 +355,7 @@ jobs:### Events--Through the `openvibe-sdk` v0.25.0 transactional outbox (`event_outbox`), inside the transaction that makes the change:++Through the `openvibe-sdk` v0.26.0 transactional outbox (`event_outbox`), inside the transaction that makes the change:| Event | When | Payload ||---|---|---|@@@ -385,7 +385,7 @@ Server-rendered pages with the shared chrome (`openvibe-shared` v2.6.0 `shell.pa- OpenVibe.Network OAuth client **`host`**, redirect `https://openvibe.host/auth/callback`, scope `profile theme`. The same client is the service principal `svc:host`.- Grant `[host, events.event.publish, openvibe.events]`.- Callers of Host get `[<client>, host.site.manage | host.deploy.create | host.domain.manage, openvibe.host]` as needed. None exist yet (Codes, the expected first caller, is not built).--- Released in `openvibe-contracts` v0.79.0 (CI contract check blocking); v0.32.0 adds the takedown routes to `host.site.manage.implementedBy`.++- Released in `openvibe-contracts` v0.83.0 (CI contract check blocking); v0.32.0 adds the takedown routes to `host.site.manage.implementedBy`.### Deploying Stage B (for the operator)@@@ -489,3 +489,9 @@ review is [docs/threat-review.md](docs/threat-review.md). The launch has not bee---Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).++++<!-- versions:start -->++- openvibe-contracts: v0.83.0++- openvibe-sdk: v0.26.0++- openvibe-shared: v2.6.0++<!-- versions:end -->@@@ -2,17 +2,24 @@"repository": "OpenVibers/OpenVibe.Host","stage": "alpha","code": true,-- "crawlRoutes": ["/robots.txt", "/sitemap.xml", "/llms.txt", "/llms-full.txt"],++ "crawlRoutes": [++ "/robots.txt",++ "/sitemap.xml",++ "/llms.txt",++ "/llms-full.txt"++ ],"wave": "W21 Stage A + Stage B","plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)","runtime": "node 22; Stage A: CLI (ovhost); Stage B: express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9 service","port": 4910,"domain": "openvibe.host","tenantDomain": "*.openvibe.host",-- "contracts": "openvibe-contracts v0.79.0",++ "contracts": "openvibe-contracts v0.83.0",++ "sdk": "openvibe-sdk v0.26.0",++ "shared": "openvibe-shared v2.6.0","packages": [-- "openvibe-contracts v0.79.0",-- "openvibe-sdk v0.25.0",++ "openvibe-contracts v0.83.0",++ "openvibe-sdk v0.26.0","openvibe-shared v2.6.0"],"capabilities": [@@@ -40,7 +47,6 @@"deployed": "loopback only, not launched","placeholderInSites": true,"adoptedByServices": [],-- "updated": "2026-10-03","capabilitiesNote": "released in openvibe-contracts v0.24.0; v0.32.0 adds the four takedown routes to host.site.manage.implementedBy","launchReady": true,"features": [@@@ -56,5 +62,6 @@"Stage B: tenant static sites with immutable deploys, activation, rollback, custom domains, quotas and takedowns (not launched)","Stage B git deploys, Phase 1: a site's Git source (repo + branch); the tenant's own CI posts each build, which lands as a source=git preview with immutable commit provenance and goes live only through activate (Host never clones, fetches, holds a credential or builds)","per-actor limits on Stage B writes (openvibe-sdk/limits)"-- ]++ ],++ "updated": "2026-10-05"}
@@ -6,7 +6,7 @@ on:
@@ -6,7 +6,7 @@ on:
jobs:
jobs:
# install, node --check, npm test and openvibe-contracts-check: the shared test job (Track Q).
# install, node --check, npm test and openvibe-contracts-check: the shared test job (Track Q).
test:
test:
- uses: OpenVibers/OpenVibe.Shared/.github/workflows/test.yml@423fe519b5fe9594cc81b670e5ba5cb9f21f6176
+ uses: OpenVibers/OpenVibe.Shared/.github/workflows/test.yml@aa570e4815063dc65624a6a486038d83ff6f6ec0
with:
with:
syntax-dirs: lib server
syntax-dirs: lib server
contracts-service: host
contracts-service: host
@@ -14,7 +14,8 @@ jobs:
@@ -14,7 +14,8 @@ jobs:
# scripts/test-services.sh). npm test runs every file on PGlite; test:pg runs them all through PgBouncer.
# scripts/test-services.sh). npm test runs every file on PGlite; test:pg runs them all through PgBouncer.
test: 'eval "$(node_modules/openvibe-sdk/scripts/test-services.sh up)" && npm test && npm run test:pg'
test: 'eval "$(node_modules/openvibe-sdk/scripts/test-services.sh up)" && npm test && npm run test:pg'
contracts-src: lib server
contracts-src: lib server
+ docs-status: true
extra: node --check bin/ovhost && for f in scripts/*.sh; do bash -n "$f"; done
extra: node --check bin/ovhost && for f in scripts/*.sh; do bash -n "$f"; done
# Secret scan (gitleaks) and dependency audit, shared by every OpenVibers repo (Track Q).
# Secret scan (gitleaks) and dependency audit, shared by every OpenVibers repo (Track Q).
security:
security:
- uses: OpenVibers/OpenVibe.Shared/.github/workflows/security.yml@423fe519b5fe9594cc81b670e5ba5cb9f21f6176
+ uses: OpenVibers/OpenVibe.Shared/.github/workflows/security.yml@aa570e4815063dc65624a6a486038d83ff6f6ec0
@@ -49,9 +49,9 @@ Stage A adds a few safety rules of its own:
@@ -49,9 +49,9 @@ Stage A adds a few safety rules of its own:
## Depends on
## Depends on
-- OpenVibe.Contracts (`openvibe-contracts` v0.79.0; `host.*` capabilities and the `host` manifest were released in v0.24.0, and v0.32.0 adds the takedown routes to `host.site.manage`): service manifests (vhost rendering, snapshots, the first-party domain list), ids, problem+json, service-token verification, capability checks.
+- OpenVibe.Contracts (`openvibe-contracts` v0.83.0; `host.*` capabilities and the `host` manifest were released in v0.24.0, and v0.32.0 adds the takedown routes to `host.site.manage`): service manifests (vhost rendering, snapshots, the first-party domain list), ids, problem+json, service-token verification, capability checks.
- OpenVibe.Network (Stage B): SSO for the dashboard, the JWKS that verifies user and service tokens, client-credentials tokens for the outbox relay.
- OpenVibe.Network (Stage B): SSO for the dashboard, the JWKS that verifies user and service tokens, client-credentials tokens for the outbox relay.
-- OpenVibe.Events (Stage B): `host.*` events through the `openvibe-sdk` v0.25.0 transactional outbox (openvibe-sdk/limits for the per-actor limits).
+- OpenVibe.Events (Stage B): `host.*` events through the `openvibe-sdk` v0.26.0 transactional outbox (openvibe-sdk/limits for the per-actor limits).
- `openvibe-shared` v2.6.0 (Stage B): shared chrome (Host's own pages are composed with `openvibe-shared/shell`), legal pages, `/release.json`, `/metrics`, `/api/ready`.
- `openvibe-shared` v2.6.0 (Stage B): shared chrome (Host's own pages are composed with `openvibe-shared/shell`), legal pages, `/release.json`, `/metrics`, `/api/ready`.
- OpenVibe.Media: not yet. The roadmap stores artifacts "through Media where practical"; Stage B keeps them on local disk for now (see [Not done yet](#not-done-yet-stage-b)).
- OpenVibe.Media: not yet. The roadmap stores artifacts "through Media where practical"; Stage B keeps them on local disk for now (see [Not done yet](#not-done-yet-stage-b)).
@@ -355,7 +355,7 @@ jobs:
@@ -355,7 +355,7 @@ jobs:
### Events
### Events
-Through the `openvibe-sdk` v0.25.0 transactional outbox (`event_outbox`), inside the transaction that makes the change:
+Through the `openvibe-sdk` v0.26.0 transactional outbox (`event_outbox`), inside the transaction that makes the change:
| Event | When | Payload |
| Event | When | Payload |
|---|---|---|
|---|---|---|
@@ -385,7 +385,7 @@ Server-rendered pages with the shared chrome (`openvibe-shared` v2.6.0 `shell.pa
@@ -385,7 +385,7 @@ Server-rendered pages with the shared chrome (`openvibe-shared` v2.6.0 `shell.pa
- OpenVibe.Network OAuth client **`host`**, redirect `https://openvibe.host/auth/callback`, scope `profile theme`. The same client is the service principal `svc:host`.
- OpenVibe.Network OAuth client **`host`**, redirect `https://openvibe.host/auth/callback`, scope `profile theme`. The same client is the service principal `svc:host`.
- Grant `[host, events.event.publish, openvibe.events]`.
- Grant `[host, events.event.publish, openvibe.events]`.
- Callers of Host get `[<client>, host.site.manage | host.deploy.create | host.domain.manage, openvibe.host]` as needed. None exist yet (Codes, the expected first caller, is not built).
- Callers of Host get `[<client>, host.site.manage | host.deploy.create | host.domain.manage, openvibe.host]` as needed. None exist yet (Codes, the expected first caller, is not built).
-- Released in `openvibe-contracts` v0.79.0 (CI contract check blocking); v0.32.0 adds the takedown routes to `host.site.manage.implementedBy`.
+- Released in `openvibe-contracts` v0.83.0 (CI contract check blocking); v0.32.0 adds the takedown routes to `host.site.manage.implementedBy`.
### Deploying Stage B (for the operator)
### Deploying Stage B (for the operator)
@@ -489,3 +489,9 @@ review is [docs/threat-review.md](docs/threat-review.md). The launch has not bee
@@ -489,3 +489,9 @@ review is [docs/threat-review.md](docs/threat-review.md). The launch has not bee
---
---
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 -->
+- openvibe-contracts: v0.83.0
+- openvibe-sdk: v0.26.0
+- openvibe-shared: v2.6.0
+<!-- versions:end -->
@@ -2,17 +2,24 @@
@@ -2,17 +2,24 @@
"repository": "OpenVibers/OpenVibe.Host",
"repository": "OpenVibers/OpenVibe.Host",
"stage": "alpha",
"stage": "alpha",
"code": true,
"code": true,
- "crawlRoutes": ["/robots.txt", "/sitemap.xml", "/llms.txt", "/llms-full.txt"],
+ "crawlRoutes": [
+ "/robots.txt",
+ "/sitemap.xml",
+ "/llms.txt",
+ "/llms-full.txt"
+ ],
"wave": "W21 Stage A + Stage B",
"wave": "W21 Stage A + Stage B",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"runtime": "node 22; Stage A: CLI (ovhost); Stage B: express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9 service",
"runtime": "node 22; Stage A: CLI (ovhost); Stage B: express 4 + PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9 service",
"port": 4910,
"port": 4910,
"domain": "openvibe.host",
"domain": "openvibe.host",
"tenantDomain": "*.openvibe.host",
"tenantDomain": "*.openvibe.host",
- "contracts": "openvibe-contracts v0.79.0",
+ "contracts": "openvibe-contracts v0.83.0",
+ "sdk": "openvibe-sdk v0.26.0",
+ "shared": "openvibe-shared v2.6.0",
"packages": [
"packages": [
- "openvibe-contracts v0.79.0",
- "openvibe-sdk v0.25.0",
+ "openvibe-contracts v0.83.0",
+ "openvibe-sdk v0.26.0",
"openvibe-shared v2.6.0"
"openvibe-shared v2.6.0"
],
],
"capabilities": [
"capabilities": [
@@ -40,7 +47,6 @@
@@ -40,7 +47,6 @@
"deployed": "loopback only, not launched",
"deployed": "loopback only, not launched",
"placeholderInSites": true,
"placeholderInSites": true,
"adoptedByServices": [],
"adoptedByServices": [],
- "updated": "2026-10-03",
"capabilitiesNote": "released in openvibe-contracts v0.24.0; v0.32.0 adds the four takedown routes to host.site.manage.implementedBy",
"capabilitiesNote": "released in openvibe-contracts v0.24.0; v0.32.0 adds the four takedown routes to host.site.manage.implementedBy",
"launchReady": true,
"launchReady": true,
"features": [
"features": [
@@ -56,5 +62,6 @@
@@ -56,5 +62,6 @@
"Stage B: tenant static sites with immutable deploys, activation, rollback, custom domains, quotas and takedowns (not launched)",
"Stage B: tenant static sites with immutable deploys, activation, rollback, custom domains, quotas and takedowns (not launched)",
"Stage B git deploys, Phase 1: a site's Git source (repo + branch); the tenant's own CI posts each build, which lands as a source=git preview with immutable commit provenance and goes live only through activate (Host never clones, fetches, holds a credential or builds)",
"Stage B git deploys, Phase 1: a site's Git source (repo + branch); the tenant's own CI posts each build, which lands as a source=git preview with immutable commit provenance and goes live only through activate (Host never clones, fetches, holds a credential or builds)",
"per-actor limits on Stage B writes (openvibe-sdk/limits)"
"per-actor limits on Stage B writes (openvibe-sdk/limits)"
- ]
+ ],
+ "updated": "2026-10-05"
}
}