Skip to main content

Authoring a bundle

A bundle is a starting point: a set of modules, fields, and views, with some features turned on. Because a bundle is data rather than code, you can build one yourself and share it.

Describe it in plain language

The quickest way is to describe what you want to track and let Cobblr draft the bundle for you. Tell it "I run a small ceramics studio and want to track clay, glazes, and kiln firings," and it proposes the modules, fields, and views that fit. You review and adjust before anything is created.

Or build it by hand

You can also assemble a bundle directly: pick the modules, define the fields, lay out the views, and choose which features are on. Everything a generated bundle produces, you can edit.

Validation

However a bundle is made, it's checked before it ships. A bundle has to be internally consistent (fields the views reference actually exist, features line up with the modules they need) so that installing it lands you in a working workspace, not a broken one.

What's in a bundle

A bundle is one JSON manifest. Besides its identity (id, name, version, an author, a changelog, a readme and screenshots for the marketplace card), it declares:

  • requires: the modules (and module features) it turns on.
  • field_defs: the custom fields it adds to entity kinds.
  • field_overrides: relabels and show/hides of fields that already exist, which is how a generic serial_number reads "VIN" in a car bundle.
  • saved_views: the views it ships, ready on install.
  • wires: the connections it sets up between modules.
  • provides_instances: the named instances it creates, like a 3D Printers area from the machines module.
  • features: optional slices a workspace can toggle after install; the base of the bundle always applies.
  • provides_apps and nav_headings: a custom app to ship with it, and how its pieces group in the nav.
  • migrations: how the bundle carries its own installs forward when a new version changes its data, so updating never needs a manual script.

Everything is validated on install and on update, and installs are reversible: uninstalling a bundle cleans up the instances and modules it brought.