Taps#
Self Hosted Cloud Hosted
A tap is a permanent physical serving position — the fixture on your kegerator or tap tower — and exists independently of whatever keg happens to be connected to it at a given moment.
Creating and naming taps#
Taps are created from the tap list view with a name, an optional tap number (used for display ordering), and an optional physical location. A tap has no required link to a vessel at creation time — an empty tap is a normal state.
Linking a tap to a vessel#
A keg (storage vessel) is attached to a tap from either side — the tap’s detail view or the vessel’s detail view; both write the same underlying assignment. “On tap” is never a separately stored value: it’s simply whether a vessel currently references that tap.
On Self Hosted, a pour sensor can be mounted on a tap and keep the same token when kegs change. Pour sensors and their tokens are coming soon to Cloud Hosted. In the beta you can assign a vessel to a tap and see what is on tap, without recording pours.
Pour recording#
On Self Hosted, pours reach BrewGraph two ways. Pour recording is coming soon to Cloud Hosted:
Automatically, from a KegMon (weight-based) sensor mounted on the tap. KegMon posts a pour on detection (rate-limited to 10 pours/minute). KegMon is coming soon to Cloud Hosted and is not available in the beta.
Manually, from the “Log Pour” action on the tap or vessel detail view — a simple volume input.
On Self Hosted, each recorded pour reduces the vessel’s remaining volume.
On Self Hosted, you can exclude a test pour or sensor mistake from analytics without deleting it.
Remaining volume and tap list view#
The tap list shows every tap and the keg assigned to it. On Self Hosted, it can also show pour-based remaining volume. Pour-based volume is coming soon to Cloud Hosted. An empty tap still shows in the list — taps are never hidden just because nothing is connected.
API token#
For Self Hosted pour sensing, each tap has a server-generated pour-ingest token, following the same pattern as device tokens: shown in full only once, at creation or regeneration time; every later view shows a masked placeholder with no way to recover the plaintext. Regenerating a tap’s token immediately invalidates the old one.