Haul is an open-source system for tracking assets, describing them with labels, grouping them into relations, and observing every mutation through an automatic event log.
These operations are available today through the PostgresClient — the database client that the upcoming API server and API client will expose over HTTP.
The named items you track. Each asset gets a UUID on creation.
Key-value metadata attached to assets, relations, or templates. Optionally typed by a Kind.
Typed constraints for label values. Each Kind carries a regex that values must satisfy.
Named groupings of assets, each asset participating with an explicit Purpose.
Reusable label sets that can be stamped onto assets at once.
Roles an asset plays within a relation (e.g. "source", "destination").
Immutable log entries generated automatically by database triggers on every mutation.
Entities are connected through typed join tables. Each association can carry a value and be assigned, unassigned, or updated independently.
Attach a label with a value to any asset.
Track which label value was applied to an asset through a specific template.
Add an asset to a relation under a specific purpose.
Attach metadata directly to a relation.
Define the labels (with default values) that make up a template.
Behaviour that applies across the full data model.
The database client is the reference implementation. The API server and API client will surface the same operations over HTTP.