NewsSourceAttachResult news.source-attach-result@1

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

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

news.source-attach-result@1: answers of news.source.attach on OpenVibe.News. POST /api/v1/stories/:id/sources → 201 { n, created, item } (the source number; created false when it was already attached). DELETE /api/v1/stories/:id/sources/:item → { detached: true, n }.

Fields

This schema has no named fields.

Examples

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

Valid: attached
{
  "n": 3,
  "created": true,
  "item": {
    "id": "nsi_01JAB2Z8Y6X5W4V3T2S1R0QPNM",
    "sources_item": {
      "service": "sources",
      "type": "item",
      "id": "itm_01JAB2Y9K9M1N2P3Q4R5S6T7VW",
      "revision": 1
    },
    "source_key": "coastal-wire",
    "headline": "Bridge inspection to take two weeks, council says",
    "url": "https://coastalwire.example/news/bridge-inspection",
    "outlet": "Coastal Wire",
    "authors": [
      "M. Okafor"
    ],
    "published_at": "2026-09-24T07:30:00+01:00",
    "summary": null,
    "summary_basis": "terms do not allow a stored summary",
    "license_note": null,
    "terms_note": "Headline and link only",
    "status": "active",
    "duplicate_of": null,
    "dedupe": null,
    "cluster_id": "clu_01JAB2X3C4D5E6F7G8H9J0KMNP",
    "cluster_reason": {
      "rule": "shared_terms",
      "cluster": "clu_01JAB2X3C4D5E6F7G8H9J0KMNP",
      "shared_entities": [
        "Harbour Bridge"
      ],
      "shared_terms": [
        "bridge",
        "inspection"
      ],
      "score": 4,
      "window_hours": 72
    },
    "retrieved_at": "2026-09-24T08:15:00.000Z",
    "first_seen_at": "2026-09-24T08:15:00.000Z",
    "upstream_updated_at": null,
    "removed": null
  }
}
Valid: detached
{
  "detached": true,
  "n": 3
}
Rejected: detached-false
{
  "detached": false,
  "n": 3
}

Validate

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