Product registry.product@1
Generated at from
openvibe-contracts v0.84.0 and
openvibe-sdk v0.26.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/registry/product.v1.json
A product domain of the network's catalog (manifests/products/<domain>.json) that has no service manifest presenting it as a site: a planned product, a sub-domain of a service, a brand domain of a multi-domain service, a closed or moved address. Carries what the network's showcase pages need, copied from the OpenVibe.Sites catalog (plan T11 lane D) so Sites can be deleted. A product whose service manifest has a site block carries the same fields there (registry.service-manifest 1.1.0 site); every catalog domain has exactly one of the two homes. The $defs are shared with that site block.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
domain | string | yes | The product's host, unique across the catalog. |
|
tld | https://openvibe.network/contracts/registry/product.v1.json#/$defs/tld | yes | ||
name | string | yes | Full name, e.g. OpenVibe.Food. |
|
icon | string | yes | Icon name of the showcase pages (a Font Awesome name such as fa-utensils). |
|
accent | https://openvibe.network/contracts/registry/product.v1.json#/$defs/accent | yes | ||
tagline | string | yes |
| |
description | https://openvibe.network/contracts/registry/product.v1.json#/$defs/description | yes | ||
legalProfile | enum | Which legal wording its /terms, /privacy and /dmca use (openvibe-shared/legal), as in a service manifest's site. |
| |
kind | enum | Absent for a product page. closed: the address was decided against and points elsewhere; moved: the product lives at another address; status: the address shows the network's status. relationships.links say where. |
| |
pillars | https://openvibe.network/contracts/registry/product.v1.json#/$defs/pillars | |||
faq | https://openvibe.network/contracts/registry/product.v1.json#/$defs/faq | |||
keywords | https://openvibe.network/contracts/registry/product.v1.json#/$defs/keywords | yes | ||
vision | https://openvibe.network/contracts/registry/product.v1.json#/$defs/vision | |||
highlight | https://openvibe.network/contracts/registry/product.v1.json#/$defs/highlight | |||
launch | https://openvibe.network/contracts/registry/product.v1.json#/$defs/launch | |||
relationships | https://openvibe.network/contracts/registry/product.v1.json#/$defs/relationships |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: moved
{
"domain": "ai.openvibe.network",
"tld": "ai",
"name": "ai.openvibe.network",
"icon": "fa-robot",
"accent": "#c084fc",
"tagline": "Moved: OpenVibe.AI's public home is ai.openvibe.services.",
"legalProfile": "info",
"kind": "moved",
"description": "OpenVibe.AI's public address is now ai.openvibe.services, next to the rest of the network's programmable services on OpenVibe.Services. This address serves only this notice until every client has moved; then it redirects.",
"keywords": "openvibe ai, openvibe network ai, openvibe platform",
"relationships": {
"service": "ai",
"plannedRepo": "OpenVibe.AI",
"linksLead": "OpenVibe.AI lives on OpenVibe.Services now.",
"links": [
{
"label": "ai.openvibe.services",
"url": "https://ai.openvibe.services/",
"note": "OpenVibe.AI: the gateway, templates, workflows and runs."
},
{
"label": "OpenVibe.Services",
"url": "https://openvibe.services/",
"note": "Every programmable OpenVibe service in one place."
}
]
}
}Valid: planned
{
"domain": "openvibe.food",
"tld": "food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "#fb923c",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
{
"title": "Compare delivery",
"text": "One search across delivery apps, with prices side by side."
},
{
"title": "Kits & boxes",
"text": "Meal kits and snack boxes, budget-friendly picks first."
},
{
"title": "Plan together",
"text": "Shared plans and chats for couples, households and groups."
},
{
"title": "Cupboard recipes",
"text": "Tell it what you have; get ideas that use it."
}
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"noRepo": true,
"meanwhile": [
{
"label": "Food tools",
"url": "https://food.openvibe.tools",
"note": "The food and grocery tools work today."
},
{
"label": "OpenVibe.Coupons",
"url": "https://openvibe.coupons",
"note": "Coupons are the sibling room."
}
]
}
}Rejected: accent-not-hex
{
"domain": "openvibe.food",
"tld": "food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "orange",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
{
"title": "Compare delivery",
"text": "One search across delivery apps, with prices side by side."
},
{
"title": "Kits & boxes",
"text": "Meal kits and snack boxes, budget-friendly picks first."
},
{
"title": "Plan together",
"text": "Shared plans and chats for couples, households and groups."
},
{
"title": "Cupboard recipes",
"text": "Tell it what you have; get ideas that use it."
}
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"noRepo": true,
"meanwhile": [
{
"label": "Food tools",
"url": "https://food.openvibe.tools",
"note": "The food and grocery tools work today."
},
{
"label": "OpenVibe.Coupons",
"url": "https://openvibe.coupons",
"note": "Coupons are the sibling room."
}
]
}
}Rejected: link-not-https
{
"domain": "openvibe.food",
"tld": "food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "#fb923c",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
{
"title": "Compare delivery",
"text": "One search across delivery apps, with prices side by side."
},
{
"title": "Kits & boxes",
"text": "Meal kits and snack boxes, budget-friendly picks first."
},
{
"title": "Plan together",
"text": "Shared plans and chats for couples, households and groups."
},
{
"title": "Cupboard recipes",
"text": "Tell it what you have; get ideas that use it."
}
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"meanwhile": [
{
"label": "Tools",
"url": "http://openvibe.tools"
}
]
}
}Rejected: missing-tld
{
"domain": "openvibe.food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "#fb923c",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
{
"title": "Compare delivery",
"text": "One search across delivery apps, with prices side by side."
},
{
"title": "Kits & boxes",
"text": "Meal kits and snack boxes, budget-friendly picks first."
},
{
"title": "Plan together",
"text": "Shared plans and chats for couples, households and groups."
},
{
"title": "Cupboard recipes",
"text": "Tell it what you have; get ideas that use it."
}
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"noRepo": true,
"meanwhile": [
{
"label": "Food tools",
"url": "https://food.openvibe.tools",
"note": "The food and grocery tools work today."
},
{
"label": "OpenVibe.Coupons",
"url": "https://openvibe.coupons",
"note": "Coupons are the sibling room."
}
]
}
}Rejected: pillars-as-tuples
{
"domain": "openvibe.food",
"tld": "food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "#fb923c",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
[
"Compare delivery",
"One search across delivery apps."
]
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"noRepo": true,
"meanwhile": [
{
"label": "Food tools",
"url": "https://food.openvibe.tools",
"note": "The food and grocery tools work today."
},
{
"label": "OpenVibe.Coupons",
"url": "https://openvibe.coupons",
"note": "Coupons are the sibling room."
}
]
}
}Rejected: unknown-kind
{
"domain": "openvibe.food",
"tld": "food",
"name": "OpenVibe.Food",
"icon": "fa-utensils",
"accent": "#fb923c",
"tagline": "What should we eat?",
"description": "OpenVibe.Food will bring food together: compare delivery prices across apps, find coupons and budget meal kits, plan meals alone, as a couple or as a group, and turn what is in your cupboard into recipes with the network's AI. The food tools on OpenVibe.Tools will live here too.",
"pillars": [
{
"title": "Compare delivery",
"text": "One search across delivery apps, with prices side by side."
},
{
"title": "Kits & boxes",
"text": "Meal kits and snack boxes, budget-friendly picks first."
},
{
"title": "Plan together",
"text": "Shared plans and chats for couples, households and groups."
},
{
"title": "Cupboard recipes",
"text": "Tell it what you have; get ideas that use it."
}
],
"keywords": "openvibe food, compare food delivery prices, meal kits, meal planning, recipe ideas, grocery tools",
"launch": "the food tools moving over from OpenVibe.Tools",
"relationships": {
"noRepo": true,
"meanwhile": [
{
"label": "Food tools",
"url": "https://food.openvibe.tools",
"note": "The food and grocery tools work today."
},
{
"label": "OpenVibe.Coupons",
"url": "https://openvibe.coupons",
"note": "Coupons are the sibling room."
}
]
},
"kind": "archived"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('registry.product@1', value); // { valid, errors: [{ path, message }] }