ReviewsSummaryUpdatedPayload reviews.summary.updated@1

Generated at from openvibe-contracts v0.34.2 and openvibe-sdk v0.5.0.

Version
1.0.0
Owner
reviews
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/events/payloads/reviews.summary.updated.v1.json

reviews.summary.updated v1 (OpenVibe.Reviews server/reviews/service.js publishSummary, via openvibe-publishing/index-hooks publicationEvent). A published summary got a different published revision, in the transaction of the change: an editor published another revision, approved the pending revision prepared after a source change, or corrected the summary (POST …/summary/revisions with correction_note, or accepting a correction request), which publishes at once and carries correction. For subscribers other than Search: the entity page's canonical URL, publication state and Search-shaped indexability, the entity id and slug, and the revision's authorship; never the summary text or its citations (Search gets those in reviews.index_document.upserted) and never a rating. Envelope: subject { type: summary, id: sum_…, revision: <published summary revision> }, visibility public when the entity page is listable by the gate, otherwise internal, priority important, actor the editor (user usr_…).

Fields

FieldTypeRequiredDescriptionConstraints
canonical_urlstringyesThe entity page (/e/<slug>) that shows the summary.
  • pattern ^https?://
  • format uri
  • maxLength 2048
publication_stateconstyes
  • = "published"
indexabilityobjectyesThe gate's decision for the entity page after the change, in Search's vocabulary.
  • no other fields
indexability.decisionenumyes
  • one of "index", "noindex"
indexability.reasonsarray of stringyes
  • maxItems 20
  • unique items
  • items: pattern ^[a-z][a-z0-9_]{1,63}$
entity_idstringyesThe entity the summary belongs to (one summary per entity).
  • pattern ^ent_[0-9A-HJKMNP-TV-Z]{26}$
entity_slugstringyes
  • pattern ^[a-z0-9]+(-[a-z0-9]+)*$
  • maxLength 90
authorshipenumyesAuthorship of the published revision: human (editor-written), ai_generated (an OpenVibe.AI draft a person approved), ai_assisted (an AI draft a person corrected); null only for a revision without an authorship record.
  • one of "human", "ai_assisted", "ai_generated", null
correctionobjectPresent when the published revision is a correction: the public note and the revision it corrects.
  • no other fields
correction.notestringyesWhat was corrected, as readers see it.
  • minLength 10
  • maxLength 2000
correction.correctsintegeryesThe summary revision that was published when the correction was made.
  • minimum 1

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: correction
{
  "canonical_url": "https://openvibe.reviews/e/portal-2",
  "publication_state": "published",
  "indexability": {
    "decision": "index",
    "reasons": []
  },
  "entity_id": "ent_01M38GW2QD088TQ08VN985JTXT",
  "entity_slug": "portal-2",
  "authorship": "ai_assisted",
  "correction": {
    "note": "The overview said all reviewers recommend it; one does not.",
    "corrects": 2
  }
}
Valid: new-revision
{
  "canonical_url": "https://openvibe.reviews/e/portal-2",
  "publication_state": "published",
  "indexability": {
    "decision": "index",
    "reasons": []
  },
  "entity_id": "ent_01M38GW2QD088TQ08VN985JTXT",
  "entity_slug": "portal-2",
  "authorship": "human"
}
Rejected: correction-leaks-request
{
  "canonical_url": "https://openvibe.reviews/e/portal-2",
  "publication_state": "published",
  "indexability": {
    "decision": "index",
    "reasons": []
  },
  "entity_id": "ent_01M38GW2QD088TQ08VN985JTXT",
  "entity_slug": "portal-2",
  "authorship": "human",
  "correction": {
    "note": "The overview said all reviewers recommend it; one does not.",
    "corrects": 2,
    "request": "crr_01M38GW3A5FSK4H3P7C776SPSF"
  }
}
Rejected: correction-note-too-short
{
  "canonical_url": "https://openvibe.reviews/e/portal-2",
  "publication_state": "published",
  "indexability": {
    "decision": "index",
    "reasons": []
  },
  "entity_id": "ent_01M38GW2QD088TQ08VN985JTXT",
  "entity_slug": "portal-2",
  "authorship": "human",
  "correction": {
    "note": "typo",
    "corrects": 2
  }
}
Rejected: missing-indexability
{
  "canonical_url": "https://openvibe.reviews/e/portal-2",
  "publication_state": "published",
  "entity_id": "ent_01M38GW2QD088TQ08VN985JTXT",
  "entity_slug": "portal-2",
  "authorship": "human"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('reviews.summary.updated@1', value);   // { valid, errors: [{ path, message }] }