openvibers/openvibe.network Commits

Network: Actor may start, read and cancel a person's coding task on Codes (contracts 0.162) (#180)

OP OpenVibers committed 30 days ago · 4c5c87f08c · 3 files, +8 −5

Plan T16/T17: OpenVibe.Actor routes a person's coding work to OpenVibe.Codes, which runs it on that person's own machine (Codes#65, Contracts 0.162 `codes.task.*`).

- `actor` gets `codes.task.start`, `codes.task.read` and `codes.task.cancel` for audience `openvibe.codes`. Codes shows Actor only the tasks Actor started, for the person named in `X-OV-Subject`.
- Contracts pin 0.161 → 0.162 (additive).

**Tests:** `principals` passes; CI runs the suite.

Changes

ddiff --git a/package-lock.json b/package-lock.json
iindex 1d4f9d79..dd638a93 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -20,7 +20,7 @@
"iovalkey": "^0.4.0",
"jsonwebtoken": "^9.0.0",
"multer": "^1.4.5-lts.1",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.161.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.162.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.44.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.1.3",
"pg": "^8.23.0",
@@@ -1320,9 +1320,9 @@
}
},
"node_modules/openvibe-contracts": {
-- "version": "0.161.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.161.0",
-- "integrity": "sha512-2F1KBisvjjMbLI72G4TLsL1Z5aehb+69/nYQGFtF2tcmCeF5ecNvVJaJLRmHnB1cK/vJt+rxIZssE3xdyoFGrQ==",
++ "version": "0.162.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.162.0",
++ "integrity": "sha512-uSJBsK1mFEnbS/SRoNx6jzSQE7P+ihJ1VkHXbaOKwbEc7wJdeFkeEVaJIMwUjq6f/u+StbyDepJR9CT8LkxNRA==",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex 0f62f62b..9fbdc386 100644
---- a/package.json
++++ b/package.json
@@@ -24,7 +24,7 @@
"iovalkey": "^0.4.0",
"jsonwebtoken": "^9.0.0",
"multer": "^1.4.5-lts.1",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.161.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.162.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.44.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.1.3",
"pg": "^8.23.0",
ddiff --git a/server/identity/principals.js b/server/identity/principals.js
iindex b8689812..80074fb3 100644
---- a/server/identity/principals.js
++++ b/server/identity/principals.js
@@@ -273,6 +273,9 @@ const DEFAULT_GRANTS = [
['bot', 'network.resource.report', SELF_AUDIENCE, []],
['run', 'network.registry.read', SELF_AUDIENCE, []],
...['run.job.submit', 'run.job.read', 'run.job.stream', 'run.job.cancel'].map((c) => ['codes', c, 'openvibe.run', []]),
++ // Plan T16/T17 (contracts 0.162.0): a person's OpenVibe.Actor agent routes coding work to OpenVibe.Codes, which runs
++ // it on that person's own machine (X-OV-Subject); Codes shows Actor only the tasks Actor started for that person.
++ ...['codes.task.start', 'codes.task.read', 'codes.task.cancel'].map((c) => ['actor', c, 'openvibe.codes', []]),
// Plan T2 lane B step 3: Host places and runs per project, so it reads a project's tenancy, placement and quotas.
// Other services get this row only when they ship a caller of GET /internal/projects/:project_id.
['host', 'network.project.read', SELF_AUDIENCE, []],