SearchOwnerResult search.owner-result@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
search
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/search/owner-result.v1.json

search.owner-result@1: answers of search.document.write on OpenVibe.Search. PUT and DELETE /api/v1/documents/:owner/:type/:id → search.write-result@1 (stale and conflicting revisions are 409 problems); GET /api/v1/owners/:owner/documents?type=&after=&limit= → { owner, documents, next_after } (reconciliation: type, id, revision, deleted, exposure, hash, indexed_at); GET /api/v1/owners/:owner/documents/:type/:id → { document, effective_indexability, exposure, via, event_id, indexed_at } (the stored document); GET /api/v1/owners/:owner/rejections?after= → { rejections, next_after } (index-document events Search refused, at most 200).

Fields

This schema has no named fields.

Examples

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

Valid: applied
{
  "outcome": "applied",
  "revision": 2,
  "stored_revision": 1,
  "deleted": false
}
Valid: reconciliation
{
  "owner": "wiki",
  "documents": [
    {
      "type": "page",
      "id": "restreaming",
      "revision": 3,
      "deleted": false,
      "exposure": "public",
      "hash": "ab12",
      "indexed_at": "2026-09-24T10:00:01.000Z"
    }
  ],
  "next_after": null
}
Valid: rejections
{
  "rejections": [
    {
      "seq": 4,
      "event_id": "evt_01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "event_type": "wiki.index_document.upserted",
      "type": "page",
      "id": "x",
      "revision": 2,
      "code": "search.bad_document",
      "detail": "title is required",
      "at": "2026-09-25T18:00:00.000Z"
    }
  ],
  "next_after": 4
}
Rejected: partial
{
  "documents": []
}

Validate

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