| Filename | Latest commit message | Latest commit date |
|---|---|---|
- itemdb.yml (namespace jmarya/itemdb, name JMarYA Home ItemDB) - locations: lager (refrigerated) with shelf sub-location - items/ and flows/ kept as empty placeholders for later content |
||
| flows | ||
| items | ||
| locations | ||
| itemdb.yml | ||
| README.md | ||
jmarya/itemdb
A CDB ItemDB — the canonical list of
things owned, tracked, or processed by the JMarYA home.
Layout
The whole database is one git repository. CDB loads it directly from the
repository root, so every item, location, and flow below is version-controlled
and reviewable.
itemdb.yml # namespace + display name
locations/ # where things live
lager.md # one file per location (path = id)
lager/shelf.md # a sub-location of lager
items/ # what we have (added later)
.gitkeep
flows/ # how things are made (added later)
.gitkeep
itemdb.yml
Identifies this database. namespace (required) names it uniquely; name
(optional) is a human-readable label.
locations/
One Markdown file per location. The path relative to this directory
(without the .md suffix) is the location id (e.g. lager, lager/shelf).
Each file carries at least a name, plus optional conditions (temperature,
humidity…). index.md at the root of locations/ is not allowed.
items/
One Markdown file per item. The file stem is the item id; its identity is
<namespace>:<stem> (e.g. jmarya/itemdb:food/flour). Each file has:
name— required display name.category— free hierarchy (e.g.food/grain).aliases— alternate names.variants— required; at least one. A variant is a distinct kind of the
item (e.g.flour::whole_wheat). Each variant may carry aunit,
expiry,minstock level,barcodes, etc.
This directory is currently empty; item definitions will be added later.
flows/
One Markdown file per flow. Each file's frontmatter is a flow definition
(name + depends, plus optional produces/next); the body is process
knowledge. This directory is currently empty; flows will be added later.
How CDB uses this
CDB reads this repository as a single "source" (configured in
config.toml under [itemdb].sources), resolves each item/location/flow
through its load logic, and exposes it via its HTTP API. Commit changes here
and push to CDB to have them picked up.