BlogPostUpdatedPayload blog.post.updated@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- blog
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/events/payloads/blog.post.updated.v1.json
blog.post.updated v1 (OpenVibe.Blog server/domain/publication.js afterChange, via openvibe-publishing/index-hooks publicationEvent). Emitted when a published post got a new published revision, visibility or URL, in the transaction of the change. For subscribers other than Search: canonical URL, publication state and Search-shaped indexability, never the body (Search gets that from blog.index_document.*). Envelope: subject { type: post, id: pst_…, revision: <published revision, 0 if none> }, visibility public when the document is public and the gate lets it be listed, otherwise internal, priority important, actor the person or service:blog (scheduled and system changes).
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
canonical_url | string | yes |
| |
publication_state | const | yes |
| |
indexability | object | yes |
| |
indexability.decision | enum | yes |
| |
indexability.reasons | array of string | yes |
| |
blog | object | yes |
| |
blog.id | string | yes |
| |
blog.handle | string | yes |
| |
visibility | enum | yes | The post's own visibility (members = entitlement-gated). |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: thin
{
"canonical_url": "https://openvibe.blog/@alex/hello-world",
"publication_state": "published",
"indexability": {
"decision": "noindex",
"reasons": [
"thin_content"
]
},
"blog": {
"id": "blg_01JAB2C3D4E5F6G7H8J9K0MNPT",
"handle": "alex"
},
"visibility": "public"
}Rejected: bad-decision
{
"canonical_url": "https://openvibe.blog/@alex/hello-world",
"publication_state": "published",
"indexability": {
"decision": "maybe",
"reasons": []
},
"blog": {
"id": "blg_01JAB2C3D4E5F6G7H8J9K0MNPT",
"handle": "alex"
},
"visibility": "public"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('blog.post.updated@1', value); // { valid, errors: [{ path, message }] }