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

FieldTypeRequiredDescriptionConstraints
slugstringyes
namestringyes
descriptionstring | null
visibilityenumyes
  • one of "public", "members", "staff"
urlstringyes
thread_kindstringyes
statusesarray of stringyes
styleenumyes
  • one of "feed", "forum"
votesbooleanyes
reactionsbooleanyes
groupobject | nullyes
parentobject | nullyes
post_countinteger
thread_countinteger
last_activity_atstring | null
  • format date-time
members_onlyobject | nullyes
last_postobject | null
childrenarray

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 }] }