Files
shopdb-flask/docs/PLUGINS.md
cproudlock da654944dc Phase 6: simplify-pass policy, plugins listing, roadmap to 1.0
End-of-pipeline cleanup. No structural changes; documents what is
done, what is left, and the discipline for future cleanup commits.

Skill:
- simplifying-python: end-of-session cleanup discipline. Inspired by
  Anthropic's open-sourced code-simplifier. Targets duplication, dead
  code, voodoo constants, stale comments, misnamed identifiers,
  unnecessary abstraction. Anti-targets: architecture, public API
  surface, schema, sweeping rewrites. Behavior preservation enforced
  by running pytest before and after.

Simplify pass on shopdb/utils/responses.py:
- error_response docstring claimed the error info lives at top level
  `error`. Implementation puts it under `data.error` (consistent with
  the success envelope). Implementation is correct; docstring updated.
- paginated_response docstring used snake_case keys (`per_page`,
  `total_pages`, etc). Implementation uses lowercase concatenated per
  CONTRIBUTING.md. Docstring updated to match.

Documentation:
- docs/PLUGINS.md: bundled plugins (six, with what they track and
  caveats per ADR), planned plugins (measuringtools as the scaffold
  canary per ADR-005), distribution conventions for sister-site
  plugins per ADR-003, naming policy.
- docs/ROADMAP.md: phase status table (0-5 done, 6 in progress),
  must-have work for 1.0 (Asset.mapx/mapy, equipment migration,
  printers retirement, frontend hook contract, per-plugin Alembic
  chains), nice-to-have (measuringtools plugin, frontend scaffolding,
  marketplace listing, surface-diff tooling), deferred (multi-tenancy,
  pip-installable plugins, event bus). Defines what 1.0.0 means as a
  contract.

Test count unchanged: 101 passing. Naming/style check green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 18:02:11 -04:00

2.9 KiB

Plugins

shopdb-flask is a framework. The plugins listed here are the pieces other GE Aerospace facilities can install, build, or skip per ADR-003. Bundled plugins ship in the framework repo. External plugins live in their own repos and drop into <repo>/plugins/<name>/ at install time.

Bundled (ship with the framework)

These six plugins are in plugins/ in this repo. Enable per site with flask plugin install <name>.

Plugin Tracks Notes
equipment Manufacturing machinery: 5-axis mills, lathes, broachers, heat treatment ovens Manually entered. See ADR-005. Subtype tables for FOCAS / CLM / MTConnect controller protocols (planned).
computers Shop-floor PCs and engineering workstations Fed by the PXE pipeline collector per ADR-006.
printers Network and shop-floor printers Optional Zabbix integration for supply tracking. Legacy PrinterData retiring per ADR-001.
network Switches, routers, access points, IDFs as locations Asset-only; cleanest of the bundled set.
usb USB devices issued to shop-floor users Lightweight checkout / check-in.
notifications Shop-floor notifications, recognitions, kiosk feed Used by ShopfloorDashboard.vue.

Planned (in the roadmap, not yet built)

Plugin Tracks Status
measuringtools Metrology and inspection: CMMs, Keyence vision, surface profilometers, GenSpec Per ADR-005. First plugin to be built using flask plugin new as the canary for the scaffold.

Building your own

See PLUGIN-QUICKSTART.md for the 30-minute walkthrough. The contract is locked in ADR-001 and versioned per ADR-002.

Quick path:

flask plugin new cameras --description "Tracks shop-floor surveillance cameras"
# edit plugins/cameras/models/cameras.py with your fields
flask plugin install cameras

Distribution conventions

For sister-site plugins (per ADR-003):

  • Plugin lives in its own git repo: gitea.proudtech.net/<your-site>/<pluginname>
  • Adopting site clones or symlinks into their <repo>/plugins/<name>/
  • Plugin manifest declares core_version range matching the framework version they target
  • Plugin readme explains: what it tracks, who maintains it, where to file issues

Naming policy

Plugin names follow the framework's naming convention (lowercase concatenated, no underscores or dashes; full words preferred over acronyms). See CONTRIBUTING.md. Plugin name collisions across sites are not enforced; the convention recommends prefixing site-specific plugins with the site code (e.g., wjsf-shippingstation) when there is risk of overlap.