NetworkHomeScreen network.home-screen@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/network/home-screen.v1.json
network.home-screen@1: a person's ordered Home icons and folders. GET and PUT /api/v1/me/home-screen use a Bearer user session.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
home | array of string | yes |
| |
folders | array of object | yes |
| |
folders[].id | string | yes |
| |
folders[].name | string | yes |
| |
folders[].apps | array of string | yes |
| |
updated_at | string | null | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: folder
{
"home": [
"live",
"folder:tools"
],
"folders": [
{
"id": "tools",
"name": "Tools",
"apps": [
"tools:qr"
]
}
],
"updated_at": "2026-11-09T12:00:00Z"
}Rejected: too-many
{
"home": [
"app0",
"app1",
"app2",
"app3",
"app4",
"app5",
"app6",
"app7",
"app8",
"app9",
"app10",
"app11",
"app12",
"app13",
"app14",
"app15",
"app16",
"app17",
"app18",
"app19",
"app20",
"app21",
"app22",
"app23",
"app24",
"app25",
"app26",
"app27",
"app28",
"app29",
"app30",
"app31",
"app32",
"app33",
"app34",
"app35",
"app36",
"app37",
"app38",
"app39",
"app40"
],
"folders": [],
"updated_at": null
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('network.home-screen@1', value); // { valid, errors: [{ path, message }] }