Plugin administration UI: instance modes and pond activation #72

Closed
opened 2026-07-04 14:52:38 +02:00 by fable-5 · 1 comment
Collaborator

Context

Site Admins set disabled/optional/required per plugin; Pond Admins toggle optional plugins (vision).

Scope

Admin area 'Plugins': installed list (name, version, kind, declared permissions — surfaced prominently, per security.md), upload dialog with validation error display, mode switch (disabled/optional/required) with impact hint; pond settings 'Plugins': optional plugins with per-pond toggle; the SPA loads the effective plugin list per pond (GET /ponds/:id/plugins) at page load.

Acceptance criteria

  • mode changes propagate: required appears in every pond, disabled disappears (e2e with a fixture plugin)
  • pond toggle affects only that pond
  • declared permissions are shown before install completes (admin sees what they grant)
  • audit log entries for install/mode/toggle

Technical notes

  • ADR 0008, plugin-architecture.md.

Dependencies

Depends on #71.

Size: ~1 day


Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add de and en), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.

## Context Site Admins set disabled/optional/required per plugin; Pond Admins toggle optional plugins (vision). ## Scope Admin area 'Plugins': installed list (name, version, kind, declared permissions — surfaced prominently, per security.md), upload dialog with validation error display, mode switch (disabled/optional/required) with impact hint; pond settings 'Plugins': optional plugins with per-pond toggle; the SPA loads the effective plugin list per pond (`GET /ponds/:id/plugins`) at page load. ## Acceptance criteria - [ ] mode changes propagate: required appears in every pond, disabled disappears (e2e with a fixture plugin) - [ ] pond toggle affects only that pond - [ ] declared permissions are shown before install completes (admin sees what they grant) - [ ] audit log entries for install/mode/toggle ## Technical notes - ADR 0008, plugin-architecture.md. ## Dependencies Depends on #71. **Size**: ~1 day --- *Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add `de` **and** `en`), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.*
fable-5 added this to the M7 — Plugins milestone 2026-07-04 14:52:38 +02:00
fable-5 added the
frontend
plugins
labels 2026-07-04 14:52:38 +02:00
Author
Collaborator

Done in 46292c7. Pipeline green (all 8 contexts, incl. the new plugin admin e2e pack against the Test stage).

  • Site Admin admin area (PluginManager): installed-plugin list with each plugin's declared permissions surfaced prominently (security.md), an upload control that shows validation errors, and a mode switch (disabled/optional/required) with an impact hint + link to the sandbox preview.
  • Pond settings (PondPluginSettings): Pond Admins toggle optional plugins per pond; the section hides itself when no optional plugins exist.
  • API: PATCH /admin/plugins/:id/mode; GET /ponds/:id/plugins (effective list the SPA loads per pond — required + optional-enabled, pond read access), GET .../plugins/settings + PUT .../plugins/:pluginId (Pond Admin). Install/mode/toggle/uninstall are audit-logged.

Acceptance criteria (all met):

  • mode changes propagate: required appears in every pond, disabled disappears (api db test)
  • pond toggle affects only that pond
  • declared permissions shown before enabling (prominent in the admin list, and on the preview page)
  • audit log entries for install/mode/toggle

Note: the parallel-runner action-cache flake (fidelity gate) recurred here; the job passed on re-run, and a follow-up commit adds a prepare warm-up gate so it stops recurring.

Done in `46292c7`. Pipeline green (all 8 contexts, incl. the new plugin admin e2e pack against the Test stage). - **Site Admin admin area** (`PluginManager`): installed-plugin list with each plugin's declared permissions surfaced prominently (security.md), an upload control that shows validation errors, and a mode switch (disabled/optional/required) with an impact hint + link to the sandbox preview. - **Pond settings** (`PondPluginSettings`): Pond Admins toggle optional plugins per pond; the section hides itself when no optional plugins exist. - **API**: `PATCH /admin/plugins/:id/mode`; `GET /ponds/:id/plugins` (effective list the SPA loads per pond — required + optional-enabled, pond read access), `GET .../plugins/settings` + `PUT .../plugins/:pluginId` (Pond Admin). Install/mode/toggle/uninstall are audit-logged. **Acceptance criteria** (all met): - [x] mode changes propagate: required appears in every pond, disabled disappears (api db test) - [x] pond toggle affects only that pond - [x] declared permissions shown before enabling (prominent in the admin list, and on the preview page) - [x] audit log entries for install/mode/toggle Note: the parallel-runner action-cache flake (fidelity gate) recurred here; the job passed on re-run, and a follow-up commit adds a `prepare` warm-up gate so it stops recurring.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#72
No description provided.