ReviewsSignal reviews.signal@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- reviews
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/reviews/signal.v1.json
reviews.signal@1: one review signal as OpenVibe.Reviews shows it (server/reviews/service.js signalView): a typed observation (recommendation, tally or rating as the source states it — never review text) extracted from one OpenVibe.Sources item revision and attributed to one entity, with its status (superseded by a newer item revision, withdrawn when the item is removed or reattributed), trust facts and full provenance.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
signal_id | string | yes |
| |
entity_id | string | yes |
| |
canonical_entity_id | one of | yes | ||
type | enum | yes |
| |
source_key | string | yes | ||
source_item_id | string | yes |
| |
item_revision | integer | yes |
| |
observed_at | string | yes | When Reviews retrieved the item revision the signal came from. | |
source_published_at | string | null | yes | ||
canonical_url | string | null | yes | ||
license_note | string | null | yes | ||
recommended | boolean | recommendation signals. | ||
positive_count | integer | recommendation_tally signals. |
| |
total_count | integer |
| ||
rating_value | number | rating and rating_aggregate signals, on the scale the source states. | ||
rating_best | number | null | |||
rating_worst | number | null | |||
rating_count | integer | null | |||
status | enum | yes |
| |
status_reason | string | null | yes | ||
status_at | string | null | yes |
| |
superseded_by | string | null | yes | ||
trust | object | yes | Trust facts extracted with the signal. | |
editor_trust | object | yes | The current editor trust facts by key. | |
editor_trust.aggregate | object | |||
editor_trust.aggregate.value | string | yes | ||
editor_trust.aggregate.note | string | null | yes | ||
editor_trust.aggregate.set_at | string | null | yes |
| |
editor_trust.limitation | object | |||
editor_trust.limitation.value | string | yes | ||
editor_trust.limitation.note | string | null | yes | ||
editor_trust.limitation.set_at | string | null | yes |
| |
editor_trust.verification | object | |||
editor_trust.verification.value | string | yes | ||
editor_trust.verification.note | string | null | yes | ||
editor_trust.verification.set_at | string | null | yes |
| |
created_at | string | yes |
| |
provenance | object | yes | ||
provenance.source_key | string | yes | ||
provenance.source_name | string | null | yes | ||
provenance.source_homepage | string | null | yes | ||
provenance.source_item_id | string | yes | ||
provenance.item_revision | integer | yes | ||
provenance.item_kind | string | null | yes | ||
provenance.retrieved_at | string | yes | ||
provenance.last_seen_at | string | null | yes | ||
provenance.canonical_url | string | null | yes | ||
provenance.license_note | string | null | yes | ||
provenance.terms_note | string | null | yes | ||
provenance.item_state | string | null | yes | ||
provenance.item_removed_reason | string | null | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: rating
{
"signal_id": "sig_01JAC2S3G4H5J6K7M8N9P0Q1R2",
"entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"type": "rating_aggregate",
"source_key": "sound-lab",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"observed_at": "2026-09-24T08:15:00.000Z",
"source_published_at": "2026-09-20",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"rating_value": 4.2,
"rating_best": 5,
"rating_worst": 1,
"rating_count": 318,
"status": "active",
"status_reason": null,
"status_at": null,
"superseded_by": null,
"trust": {},
"editor_trust": {},
"created_at": "2026-09-24T08:15:00.000Z",
"provenance": {
"source_key": "sound-lab",
"source_name": "Sound Lab",
"source_homepage": "https://soundlab.example",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"item_kind": "review_signal",
"retrieved_at": "2026-09-24T08:15:00.000Z",
"last_seen_at": "2026-09-24T09:40:12.000Z",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"terms_note": "Ratings may be shown with a link",
"item_state": "active",
"item_removed_reason": null
}
}Valid: recommendation
{
"signal_id": "sig_01JAC2S4G4H5J6K7M8N9P0Q1R2",
"entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"type": "recommendation",
"source_key": "sound-lab",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"observed_at": "2026-09-24T08:15:00.000Z",
"source_published_at": "2026-09-20",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"status": "active",
"status_reason": null,
"status_at": null,
"superseded_by": null,
"trust": {},
"editor_trust": {},
"created_at": "2026-09-24T08:15:00.000Z",
"provenance": {
"source_key": "sound-lab",
"source_name": "Sound Lab",
"source_homepage": "https://soundlab.example",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"item_kind": "review_signal",
"retrieved_at": "2026-09-24T08:15:00.000Z",
"last_seen_at": "2026-09-24T09:40:12.000Z",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"terms_note": "Ratings may be shown with a link",
"item_state": "active",
"item_removed_reason": null
},
"recommended": true
}Rejected: bad-status
{
"signal_id": "sig_01JAC2S3G4H5J6K7M8N9P0Q1R2",
"entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
"type": "rating_aggregate",
"source_key": "sound-lab",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"observed_at": "2026-09-24T08:15:00.000Z",
"source_published_at": "2026-09-20",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"rating_value": 4.2,
"rating_best": 5,
"rating_worst": 1,
"rating_count": 318,
"status": "deleted",
"status_reason": null,
"status_at": null,
"superseded_by": null,
"trust": {},
"editor_trust": {},
"created_at": "2026-09-24T08:15:00.000Z",
"provenance": {
"source_key": "sound-lab",
"source_name": "Sound Lab",
"source_homepage": "https://soundlab.example",
"source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
"item_revision": 2,
"item_kind": "review_signal",
"retrieved_at": "2026-09-24T08:15:00.000Z",
"last_seen_at": "2026-09-24T09:40:12.000Z",
"canonical_url": "https://soundlab.example/lumen-x2",
"license_note": null,
"terms_note": "Ratings may be shown with a link",
"item_state": "active",
"item_removed_reason": null
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('reviews.signal@1', value); // { valid, errors: [{ path, message }] }