CommunityForumSpace community.forum-space@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- community
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/community/forum-space.v1.json
community.forum-space@1: one forum space as OpenVibe.Community's /api/v1/spaces API shows it (server/forum/service.js shapeSpace): its slug, name, visibility, thread kind and statuses, style, whether votes and reactions are on, its group and parent board, the members-only gate and, in lists, its counts and last activity.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
slug | string | yes | ||
name | string | yes | ||
description | string | null | |||
visibility | enum | yes |
| |
url | string | yes | ||
thread_kind | string | yes | ||
statuses | array of string | yes | ||
style | enum | yes |
| |
votes | boolean | yes | ||
reactions | boolean | yes | ||
group | object | null | yes | ||
parent | object | null | yes | ||
post_count | integer | |||
thread_count | integer | |||
last_activity_at | string | null |
| ||
members_only | object | null | yes | ||
last_post | object | null | |||
children | array |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: streaming
{
"slug": "streaming",
"name": "Streaming",
"description": "Encoders, bitrates and restreams.",
"visibility": "public",
"url": "/s/streaming",
"thread_kind": "discussion",
"statuses": [],
"style": "feed",
"votes": true,
"reactions": true,
"group": {
"slug": "make",
"name": "Make things"
},
"parent": null,
"members_only": null,
"thread_count": 42,
"last_activity_at": "2026-09-25T18:00:00.000Z"
}Rejected: bad-style
{
"slug": "streaming",
"name": "Streaming",
"description": "Encoders, bitrates and restreams.",
"visibility": "public",
"url": "/s/streaming",
"thread_kind": "discussion",
"statuses": [],
"style": "wiki",
"votes": true,
"reactions": true,
"group": {
"slug": "make",
"name": "Make things"
},
"parent": null,
"members_only": null,
"thread_count": 42,
"last_activity_at": "2026-09-25T18:00:00.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('community.forum-space@1', value); // { valid, errors: [{ path, message }] }