Skip to main content
Manifests capture how to reconstruct a workspace shell — not the data inside it.
A workspace manifest records construction config, optional extension ids, and user entity definitions so you can version, share, and replay workspace setup across environments.

1. Export and Import in Python

import heavenbase as hb

ws = hb.HeavenBase("shop", preset="debug")
ws.enable_extension("agent")
manifest = ws.to_manifest()

clone = hb.HeavenBase.from_manifest(manifest)
The manifest has kind: heavenbase.workspace.manifest and version: 1. The config field holds replayable constructor settings such as {"preset": "debug"} or an explicit backend map.

2. Save and Load Files

manifest = hb.WorkspaceManifest.from_dict(ws.to_manifest())
manifest.save("workspace.yaml")

restored = hb.WorkspaceManifest.load("workspace.yaml").open()
YAML is used for non-.json paths. JSON paths use JSON. Example manifest with extensions and a user entity:
id: shop
config:
  preset: debug
extensions:
  - agent
  - memory
  - database
entities:
  - entity_id: product
    fields:
      object_id: {type: identifier, pk: true}
      name: {type: short-text}
      price: {type: float}
Extension-owned entities (memory-note, db-*, agent-session, …) are reconstructed when each extension enables. You do not list them separately in entities.

3. CLI Workflow

hb ws manifest shop > workspace.yaml
hb ws import workspace.yaml --active
hb ws import replays the manifest, registers the workspace in the global registry, and marks it active when --active is passed.

4. What Is Included

IncludedNot included
Workspace idStored entity rows
Replayable construction configBackend files, SQL databases, vector indexes
Enabled extension idsProvider credentials
User entity definitions and placementsCatalog rows beyond schema replay
Re-ingest external databases with hb.ext.ingest_database after import when live connection metadata is required.

5. Demo

The user onboarding track starts from a manifest:
rtk uv run python demos/user/01_workspace_from_manifest.py

Summary

  • Manifests version workspace setup separately from row data.
  • List optional extensions under extensions to replay enablement on import.
  • Use WorkspaceManifest.save / load or hb ws manifest / import for file-based workflows.

Further Exploration

Related resources: