Skip to main content
The vocabulary you need to be productive with Observal.

The registry

The registry stores users, agents, components, review state, and alert rules in PostgreSQL. Session events and aggregates are stored separately in ClickHouse. See Session tracking and reconciliation for the complete session data flow.

Registry components

Six component types are available. Agents bundle the other five. Anyone can publish. Admin review controls what appears in the public listing, but your own items are usable immediately without approval.

Canonical identity

An agent or component has a canonical namespace/slug identity. The namespace is the owner’s username. The slug is stable within that namespace. Display names can change without changing the canonical identity. UUIDs are the stable reconciliation key. The server supplies canonical namespace, slug, display name, qualified name, and review status. Installed versions in the local lockfile remain local pins.

Versions and locks

Agents and components are versioned. An approved version never changes. Every agent version pins each of its components to one exact version, recorded with a content digest. Installing that agent version always installs those component versions, even after newer ones are approved. Agent versions released before pinning are the exception: a component they never locked installs at its latest approved release, with a warning. Only the agent’s author moves them, by releasing a new agent version, which goes through review like any other. Installs are pinned too. The first observal agent pull in a project records the agent version it installed in observal.lock, a file meant to be committed. Later pulls, by anyone in that project, install the same agent version until someone moves it with --upgrade or --version. ~/.observal/lockfile.json is each machine’s record of what it has installed where. --strict refuses any install that does not match its lock. See observal agent pull and observal agent release.

Deployment mode

SSO-only access is controlled by deployment.sso_only: Most self-hosters use deployment.sso_only=false.

Next