NetworkModInstallRequest network.mod-install-request@1
Generated at from
openvibe-contracts v0.76.0 and
openvibe-sdk v0.20.1.
- Version
- 1.0.0
- Owner
- network
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-013
- Schema
https://openvibe.network/contracts/network/mod-install-request.v1.json
network.mod-install-request@1 (OpenVibe.Network; roadmap WS-M task 3, ADR-013): a runtime (OpenVibe.Games) registers an install's mod principal, POST /internal/mods with capability mods.grant.manage. The manifest (mods.mod-manifest@1) names the requested capabilities; `approve` is the subset staff approved at install, and the rest stays pending. The runtime that registers a mod is its owner: only it (or Network staff) changes its grants. Registering the same mod again answers the existing principal.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
manifest | object | yes | The mod's manifest, mods.mod-manifest@1. | |
approve | array of string | Approved at install; each must be requested by the manifest. |
| |
actor | string | Who installed it at the runtime (a subject or 'games'), for the audit row. |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: install
{
"manifest": {
"id": "mod_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"approve": [
"games.world.announce"
],
"actor": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
}Rejected: no-manifest
{
"approve": []
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('network.mod-install-request@1', value); // { valid, errors: [{ path, message }] }