Design record for distributing optional plugins across GE sites: a small mandatory core plus a catalog of optional plugins, packaged as signed versioned artifacts, served from a transport-agnostic read-only shelf (a SharePoint-synced or sneakernet folder - untrusted either way because every decision-bearing byte is signed), verified at adopt AND at every load and migrate. Lean per-site builds stage only chosen plugins into the backend image and SPA bundle. Status PROPOSED. Grounds the design in the real loader/contract/migration/ frontend code and records defects to fix along the way (upgrade-all migrating unadopted folders, enable-without-install, reverse-dep checks blind to unloaded plugins, missing cycle detection and dependency closure, hardcoded plugin imports in the SPA router). Honest on scope: the frontend re-org is the long pole (one core-router change plus per-plugin relocation), not a mechanical move. Phased 0-5 with schema-lean and runtime-JS delivery explicitly deferred.
33 lines
2.0 KiB
Markdown
33 lines
2.0 KiB
Markdown
# 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](ADR-001-asset-as-platform-contract.md) | Asset model is the platform contract | ACCEPTED |
|
|
| [002](ADR-002-plugin-versioning.md) | Plugin contract versioning (semver) | ACCEPTED |
|
|
| [003](ADR-003-plugin-distribution.md) | Plugin distribution model | ACCEPTED |
|
|
| [004](ADR-004-deployment-topology.md) | Deployment topology (per-site instances) | ACCEPTED |
|
|
| [005](ADR-005-equipment-vs-measuringtools.md) | Equipment vs measuringtools plugin scope | ACCEPTED |
|
|
| [006](ADR-006-collector-contract.md) | Plugin collector contract pattern | ACCEPTED |
|
|
| [007](ADR-007-product-versioning-and-releases.md) | Product versioning and releases | ACCEPTED |
|
|
| [008](ADR-008-plugin-migration-ownership.md) | Plugin migration ownership (per-plugin chains) | ACCEPTED |
|
|
| [009](ADR-009-frontend-plugin-gating.md) | Frontend plugin route gating | ACCEPTED |
|
|
| [010](ADR-010-frontend-plugin-hooks.md) | Frontend plugin hook contract | ACCEPTED |
|
|
| [011](ADR-011-machines-rename.md) | Machines rename + modeltypes retyping | ACCEPTED |
|
|
| [012](ADR-012-geenforce-manifest-ownership.md) | GE-Enforce manifest ownership in shopdb | ACCEPTED |
|
|
| [013](ADR-013-plugin-catalog-and-lean-builds.md) | Plugin catalog, curated shelf, and lean per-site builds | PROPOSED |
|
|
|
|
## 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.
|