BlogPostCreateResult blog.post-create-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/post-create-result.v1.json

blog.post-create-result@1: the answer of POST /api/v1/blogs/:handle/posts on OpenVibe.Blog: 201 { post, revision } (the editor view and the revision number, 1).

Fields

FieldTypeRequiredDescriptionConstraints
postblog.postyes
revisionintegeryes
  • minimum 1

Examples

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

Valid: created
{
  "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": []
    }
  },
  "revision": 1
}
Rejected: revision-zero
{
  "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": []
    }
  },
  "revision": 0
}

Validate

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