SourcesItemCreatedPayload sources.item.created@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- sources
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-017
- Schema
https://openvibe.network/contracts/events/payloads/sources.item.created.v1.json
sources.item.created v1 (OpenVibe.Sources server/items.js ingest → itemEvent). A successful fetch, or a manual entry, produced an item Sources had not seen (revision 1). A summary only: consumers fetch the full sources.item@1 with sources.item.read. Envelope: subject { type: item, id: <item_id>, revision }, visibility internal, priority important, actor service:sources.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
item_id | string | yes |
| |
source_key | string | yes |
| |
category | enum | yes |
| |
kind | string | yes | article | url | sitemap | product | offer | review | record … (sources.item@1 kind). |
|
canonical_url | string | null | yes |
| |
title | string | null | yes | ||
revision | integer | yes |
| |
content_hash | string | yes |
| |
retrieved_at | string | yes | Last successful fetch (or manual entry) that contained the item. |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: rss-article
{
"item_id": "itm_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"source_key": "bbc-world",
"category": "news",
"kind": "article",
"canonical_url": "https://www.bbc.co.uk/news/world-12345678",
"title": "Summit ends without agreement",
"revision": 1,
"content_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"retrieved_at": "2026-09-23T08:00:00.000Z"
}Valid: untitled-url
{
"item_id": "itm_01JAB2C3D4E5F6G7H8J9K0MNPR",
"source_key": "shop-sitemap",
"category": "deals",
"kind": "url",
"canonical_url": null,
"title": null,
"revision": 1,
"content_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"retrieved_at": "2026-09-23T08:00:00.000Z"
}Rejected: full-item-text
{
"item_id": "itm_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"source_key": "bbc-world",
"category": "news",
"kind": "article",
"canonical_url": "https://www.bbc.co.uk/news/world-12345678",
"title": "Summit ends",
"summary": "Leaders left…",
"revision": 1,
"content_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"retrieved_at": "2026-09-23T08:00:00.000Z"
}Rejected: unknown-category
{
"item_id": "itm_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"source_key": "bbc-world",
"category": "sports",
"kind": "article",
"canonical_url": null,
"title": null,
"revision": 1,
"content_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"retrieved_at": "2026-09-23T08:00:00.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('sources.item.created@1', value); // { valid, errors: [{ path, message }] }