FN-3764 adds a manage view and edit draft modal to the CLI printing press plugin, wiring in draft storage, wizard routes, and plugin view registry integration so users can view and edit their printing press drafts directly from the dashboard. Includes corresponding tests, documentation updates, and Fusion-Task-Id: FN-3764
fusion-plugin-cli-printing-press
Bundled first-party Fusion plugin that adds a plugin-owned dashboard wizard for drafting an external service CLI definition.
v1 scope (FN-3763 + FN-3764)
- Provides two dashboard views:
- Create Service CLI (
viewId: wizard) - Manage Service CLIs (
viewId: manage)
- Create Service CLI (
- Wizard collects service basics, HTTP transport details, endpoints, and non-OAuth credential placeholders
- Manage view supports list/inspect/edit/regenerate/delete against saved drafts
- Saves draft payloads to interim JSON files under:
<projectRoot>/.fusion/plugins/cli-printing-press/drafts/<id>.json
- Regenerate in v1 is a stub endpoint that re-saves the draft and returns:
stub: truemessage: "Regenerate stub — full generation lands in FN-3765/FN-3767"
Provisional architecture assumptions (pending FN-3762/FN-3766)
The following choices are intentionally provisional and may be revised by architecture/storage follow-up work:
PluginContextusage pattern in route handlers- Express route shape and plugin-relative path conventions
- Credential union shape for wizard payloads (non-OAuth only in v1)
- Draft storage location and JSON schema
Deferred follow-ups
- OAuth credential flows: FN-3762 / FN-3766
- Run/test actions and real generator execution: FN-3765
- Canonical storage migration (replace JSON stash): FN-3766
- Runtime exposure/integration: FN-3767
- Workflow-step exposure: FN-3768
Frontend API target
Plugin views call host-prefixed plugin routes under /api/plugins/fusion-plugin-cli-printing-press/:
POST /drafts— save draftGET /drafts— list summariesGET /drafts/:id— fetch full draftPUT /drafts/:id— update draftPOST /drafts/:id/regenerate— v1 stub regenerate responseDELETE /drafts/:id— remove draft