Skip to main content
Catalog finds the things. MetaSchema explains the shelves.

1. Use Catalog for Concrete Objects

Catalog is the user-facing directory of concrete entity instances in a workspace. HeavenBase writes Catalog rows automatically after successful non-system entity writes.
Query Catalog when you only know broad object attributes such as type, name, description, or tags.
Catalog.object_id is the Catalog row primary key. Catalog.target_id is the target object’s object_id, and Catalog.target_entity is the target entity type. If a concrete entity exposes short keyword arrays, query that typed entity when the input is a long phrase:
The returned match metadata explains which stored keyword appeared in the longer text. Catalog can then be used to hydrate or display the selected objects.

2. Hydrate the Typed Row

Catalog is for discovery, not for replacing typed entity queries. Once you choose a Catalog row, hydrate the target row through workspace.get(...).
Use the pair target_entity + target_id when object IDs may repeat across entity types.

3. Use MetaSchema for Workspace Structure

MetaSchema describes workspace structure: entities, fields, storage placements, backends, capabilities, extensions, and other engine-facing rows.
Use MetaSchema to learn what can be queried. Use Catalog to find actual objects to query or hydrate.

4. Use Capabilities for Selectable Options

hb.capabilities is the public index for logical types, storage strategies, backend choices, and operation support. It is not the same thing as Catalog.
Use ws.capabilities when the answer should reflect only the backend instances configured in one workspace.

5. Audit and Repair Catalog Rows

Catalog rows are derived from entity rows. If you manually edit backend files or recover from a partial failure, check system consistency before exposing the workspace to agents.
dry_run=True reports the repair plan without writing or deleting Catalog rows.

Further Exploration

Related resources: