BlogPublicationResult blog.publication-result@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/publication-result.v1.json

blog.publication-result@1: the answer of POST /api/v1/posts/:id/publish (blog.post.publish) and POST /api/v1/posts/:id/unpublish (blog.post.unpublish) on OpenVibe.Blog: { post, changed } (changed false when it already was in that state).

Fields

FieldTypeRequiredDescriptionConstraints
postblog.postyes
changedbooleanyes

Examples

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

Valid: published
{
  "post": {
    "id": "pst_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "blog": {
      "id": "blg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "handle": "alice"
    },
    "slug": "my-restream-setup",
    "url": "https://openvibe.blog/@alice/my-restream-setup",
    "state": "published",
    "visibility": "public",
    "author_subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "title": "My restream setup",
    "summary": "One encoder, three platforms.",
    "revision": 2,
    "published_revision": 2,
    "first_published_at": "2026-09-24T10:00:00.000Z",
    "published_at": "2026-09-25T10:00:00.000Z",
    "tags": [
      "obs",
      "restream"
    ],
    "categories": [],
    "series": null,
    "allow_comments": true,
    "noindex": false,
    "indexability": {
      "indexable": true,
      "robots": "index,follow",
      "reasons": []
    }
  },
  "changed": true
}
Rejected: no-changed
{
  "post": {
    "id": "pst_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "blog": {
      "id": "blg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "handle": "alice"
    },
    "slug": "my-restream-setup",
    "url": "https://openvibe.blog/@alice/my-restream-setup",
    "state": "published",
    "visibility": "public",
    "author_subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "title": "My restream setup",
    "summary": "One encoder, three platforms.",
    "revision": 2,
    "published_revision": 2,
    "first_published_at": "2026-09-24T10:00:00.000Z",
    "published_at": "2026-09-25T10:00:00.000Z",
    "tags": [
      "obs",
      "restream"
    ],
    "categories": [],
    "series": null,
    "allow_comments": true,
    "noindex": false,
    "indexability": {
      "indexable": true,
      "robots": "index,follow",
      "reasons": []
    }
  }
}

Validate

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