ServiceManifest registry.service-manifest@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/registry/service-manifest.v1.json
What a service is, where it lives and what it offers. The ecosystem registry is built from these, not from hard-coded route maps.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes |
| |
name | string | |||
version | string | yes |
| |
status | enum | yes |
| |
repository | string | yes |
| |
domains | array of string | yes | ||
publicOrigin | string |
| ||
health | string |
| ||
ready | string |
| ||
capabilities | array of string | yes | ||
eventsProduced | array of string | yes | ||
eventsConsumed | array of string | yes | ||
namespacesOwned | array of string | yes | ||
contractRanges | object | |||
notes | string |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: media
{
"version": "0.1.0",
"contractRanges": {
"openvibe-contracts": "^0.1.0"
},
"id": "media",
"name": "OpenVibe.Media",
"status": "beta",
"repository": "OpenVibers/OpenVibe.Media",
"domains": [
"openvibe.media"
],
"publicOrigin": "https://openvibe.media",
"health": "/healthz",
"capabilities": [
"media.object.upload",
"media.object.read"
],
"eventsProduced": [],
"eventsConsumed": [],
"namespacesOwned": [
"media.*"
]
}Rejected: bad-status
{
"id": "x1",
"version": "1.0.0",
"status": "live",
"repository": "OpenVibers/X",
"domains": [],
"capabilities": [],
"eventsProduced": [],
"eventsConsumed": [],
"namespacesOwned": []
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('registry.service-manifest@1', value); // { valid, errors: [{ path, message }] }