Skip to content
Registry StackDocsDevelopment (unreleased)

Base Registry Engine overview

View as Markdown

If your institution holds a registry, or must create one, Base Registry Engine (BReg) can hold it with your own Record types and your own rules about who may read and change what. Three short tutorials take you from nothing to a registry running on your machine, changed through an Action your project declares, and called from Python or Node.

You describe your registry in a project: a few YAML files you keep in version control. The project declares the Record types the registry holds, the Actions that change them, and the access profiles that say who may read or change which fields and rows. BReg has no built-in business, person, or facility model: a Record type exists because your project declares it.

bregctl checks a project, tests it, and packages it. breg serves the package over HTTP from a PostgreSQL database it owns. Tokens come from your own OpenID Connect provider; BReg verifies them and issues none. How a registry works explains what exists at runtime and how you inspect it.

  1. Create your first registry: start a small contact directory on your machine and create a Record in it. To begin from a published data model instead, Derive a registry from PublicSchema does the same with PublicSchema’s people and households.
  2. Change a registry with an Action: run the two Actions the project declares, one that changes a Record at once and one that creates a Proposal the registry applies afterwards, and read what the registry returns for each.
  3. Query a registry from Python and Node: read Records, invoke an Action, and take a Proposal through to applied from an application with the client packages.

All three run on your machine with Docker and test data. Tokens, access profiles, and the audit journal stay on, so the local registry checks each request the way a deployed one does.

BReg keeps its Records in its own database; it is not a proxy over data held elsewhere. To answer a question from a source you already run, without copying its data, use Registry Evidence.