BlogBlog blog.blog@1

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

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

blog.blog@1: one blog as OpenVibe.Blog's API shows it (server/http/api.js blogDto). Members of the blog (and staff) also see status, owner_subject and feed_settings.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
kindstringyesmember, …
handlestringyes
titlestringyes
descriptionstring | null
urlstringyes
themestringyes
languagestringyes
feedsarray of objectyes
feeds[].typeenumyes
  • one of "rss", "atom", "json"
feeds[].urlstringyes
statusstring
owner_subjectstring | null
feed_settingsobject
feed_settings.rssinteger
feed_settings.atominteger
feed_settings.jsoninteger
feed_settings.item_countinteger
  • minimum 1
  • maximum 50
feed_settings.full_contentinteger

Examples

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

Valid: member
{
  "id": "blg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "kind": "member",
  "handle": "alice",
  "title": "Alice builds things",
  "description": "Garage projects and stream tech.",
  "url": "https://openvibe.blog/@alice",
  "theme": "paper",
  "language": "en",
  "feeds": [
    {
      "type": "rss",
      "url": "https://openvibe.blog/@alice/feed.xml"
    },
    {
      "type": "json",
      "url": "https://openvibe.blog/@alice/feed.json"
    }
  ]
}
Rejected: bad-feed-type
{
  "id": "b",
  "kind": "member",
  "handle": "x",
  "title": "t",
  "url": "u",
  "theme": "paper",
  "language": "en",
  "feeds": [
    {
      "type": "opml",
      "url": "u"
    }
  ]
}

Validate

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