openvibers/openvibe.inventory STATUS.json

STATUS.json

main 3.9 KB · 58 lines · json

1{
2 "repository": "OpenVibers/OpenVibe.Inventory",
3 "stage": "alpha",
4 "code": true,
5 "wave": "W20",
6 "plan": "Plan track T21 (the OpenVibe inventory), ADR-054: step 2, the authority with Live's cosmetics as the first kinds",
7 "runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
8 "port": "5030",
9 "domain": "inventory.openvibe.network",
10 "contracts": "openvibe-contracts v0.419.0",
11 "sdk": "openvibe-sdk v0.161.0",
12 "shared": "openvibe-shared v4.237.0",
13 "packages": [
14 "openvibe-contracts v0.419.0",
15 "openvibe-sdk v0.161.0",
16 "openvibe-shared v4.237.0",
17 "openvibe-publishing v1.7.0"
18 ],
19 "summary": "OpenVibe.Inventory — one inventory for an OpenVibe account (ADR-054). Item kinds (a contract plus a renderer per surface), definitions, instances, the equipped set and an append-only ledger in its own PostgreSQL database. Issuers (services, apps) grant only within their namespace; people see and equip what they own; every movement is a ledger row and an inventory.* event. Nothing is sold, bought, traded or converted. Live's name effects, particles, hats and voices are the first kinds (70 definitions seeded at boot), and scripts/import-live.js moves Live's unlocks and equipped slots here, row for row.",
20 "works": [
21 "Kinds and definitions seeded at boot from data/kinds.json and data/live-definitions.json (Live's catalog, its item ids kept as aliases)",
22 "Grants by an issuer within its namespace: idempotent per key, supply caps with serial numbers, a non-stackable item answers the one already owned; consume and revoke",
23 "Grantors (ADR-054 §3 amendment): Live names OpenVibe.Quest on six of its items (quest rewards) and OpenVibe.Games on six more (achievements); a grantor may grant those and nothing more",
24 "Equip one item per slot (a person, or a service acting for them with X-OV-Subject); a batch read of up to 100 equipped sets in one query",
25 "Public reads (kinds, definitions, a person's inventory and equipped set) and the person's own full inventory",
26 "Definitions created and edited by their issuer; rarity, attributes and supply fixed once published; attributes validated against the kind's schema",
27 "Pages: home, every item by kind, one item, your inventory with plain equip forms, a person's public inventory, /updates",
28 "Events (inventory.item.granted/consumed/revoked/equipped/unequipped, inventory.definition.published) through the openvibe-sdk outbox",
29 "Account export and deletion (ADR-033) at the loopback POST /internal/events, subscriptions created at boot",
30 "scripts/import-live.js: dry run, --apply (origin migrated, unlock times kept, idempotent) and --verify (row for row)",
31 "The Workshop (ADR-054 §6): community badges anyone can make, shown only after staff publish them, with staff takedown",
32 "Live reads and writes cosmetics only here since 2026-10-09 (INVENTORY_AUTHORITY=inventory); Live's migration 0005_drop_live_cosmetics dropped its tables on 2026-10-15",
33 "Item pages in OpenVibe.Search through openvibe-publishing/search-feed, IndexNow and the sitemap"
34 ],
35 "notYet": [
36 "Profiles on Network showing the showcase; equip in Chat, Community and Games",
37 "Trading and a market: not before a money ADR (ADR-054 §5)"
38 ],
39 "capabilitiesRegistered": true,
40 "serviceManifestRegistered": true,
41 "deployed": true,
42 "placeholderInSites": false,
43 "features": [
44 "item kinds",
45 "definitions",
46 "grants",
47 "grantors",
48 "equip",
49 "public inventory",
50 "the Workshop (community badges, staff review)",
51 "Search feed",
52 "Live migration",
53 "account export and deletion"
54 ],
55 "deployment": "openvibe-ovh: unit openvibe-inventory.service on 127.0.0.1:5030 (git checkout /opt/inventory.openvibe.network, env /etc/openvibe/inventory.env, database ov_inventory), deployed with `sudo ovhost deploy inventory`; public at https://inventory.openvibe.network since 2026-10-09.",
56 "updated": "2026-11-13"
57}
58