Files
shopdb-flask/docs/adr
cproudlock c829d96128 docs: take two leaks off the public wiki, and say where the files come from
An ACCEPTED ADR ended with a stray tool-call fragment - it said nothing to a
reader and everything about how the document was produced, which is not what a
decision record is for. And the cutover playbook carried a real internal IP in a
file otherwise correctly scrubbed to documentation ranges. Both were published.

The publishability gate now catches all three shapes, so the next one fails a
build instead of reaching the wiki.

The adoption guide also told a site to copy two files that ship from nowhere:
the asset reporter and EventSaver are both on the reference site's imaging
share, not in this repository, and the guide never said so - it could not be
followed as written. It now states, per artifact, where each comes from, which
of them are pending a move into this repository, and that EventSaver can be
rebuilt from its one source file rather than taken on trust as a binary.
2026-08-14 15:23:04 -04:00
..
2026-08-11 12:41:35 -04:00
2026-08-11 12:41:35 -04:00

Architecture Decision Records

Each ADR captures a single architectural decision: the context, the decision itself, the consequences, and the alternatives considered. ADRs are immutable once accepted. Superseded ADRs stay in this folder with a pointer to the newer ADR.

Status definitions

  • PROPOSED: drafted, awaiting decision
  • ACCEPTED: decision is in effect
  • SUPERSEDED: replaced by a later ADR (link forward)
  • DEPRECATED: no longer in effect, no replacement

Index

ADR Title Status
001 Asset model is the platform contract ACCEPTED
002 Plugin contract versioning (semver) ACCEPTED
003 Plugin distribution model ACCEPTED
004 Deployment topology (per-site instances) ACCEPTED
005 Equipment vs measuringtools plugin scope ACCEPTED
006 Plugin collector contract pattern ACCEPTED
007 Product versioning and releases ACCEPTED
008 Plugin migration ownership (per-plugin chains) ACCEPTED
009 Frontend plugin route gating ACCEPTED
010 Frontend plugin hook contract ACCEPTED
011 Machines rename + modeltypes retyping ACCEPTED
012 GE-Enforce manifest ownership in shopdb ACCEPTED
013 Plugin catalog, curated shelf, and lean per-site builds PROPOSED
014 Schema-lean per-site builds (retire cross-plugin FKs, prune not-installed plugin tables) ACCEPTED
015 Where a site's own data is allowed to live (setting, site directory, or seed) ACCEPTED
016 Credential delivery to the fleet (ShopDB-resolved targeting, encrypted at rest) ACCEPTED

Authoring

When proposing a new decision, copy the most recent ADR as a template, increment the number, and update this index. Do not edit accepted ADRs in place; supersede them with a new one.