CommunitySpaceReadResult community.space-read-result@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/space-read-result.v1.json

community.space-read-result@1: answers of community.space.read on OpenVibe.Community. GET /api/v1/spaces → { spaces, groups } (the spaces the caller can open, each with its last post, and the board index: groups in order with their top-level spaces and child boards); GET /api/v1/spaces/:space → { space } (a staff or members-only space the caller cannot open is 404 or 401/403 vip.members_only); GET /s is the board index as an HTML page.

Fields

This schema has no named fields.

Examples

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

Valid: index
{
  "spaces": [
    {
      "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"
    }
  ],
  "groups": [
    {
      "slug": "make",
      "name": "Make things",
      "description": null,
      "spaces": [
        {
          "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"
        }
      ]
    }
  ]
}
Valid: one
{
  "space": {
    "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: partial-space
{
  "spaces": [
    {
      "slug": "x"
    }
  ],
  "groups": []
}

Validate

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