lxbme opened a new issue, #3461:
URL: https://github.com/apache/apisix-dashboard/issues/3461

   # Feature request
   
   ## Please describe your feature
   
   **The plugin editor never tells you what a plugin does.**
   
   Adding a plugin means picking from a grid of **106 bare names** — 
`ai-aws-content-moderation`, `ai-lakera-guard`, `graphql-proxy-cache`, 
`workflow`, `api-breaker`, … — with no description, in the gateway's priority 
order rather than alphabetical. `PluginCardList` passes only `name` to each 
card, so the card is a name and an **Add** button over empty space.
   
   Once a plugin is open, the drawer header shows its name 
(`PluginEditorDrawer.tsx`) and the editor is handed that plugin's JSON schema, 
so there is validation and completion in the config editor. But nothing 
anywhere states what the plugin is *for*, and nothing links out. A user who 
does not already know the plugin has to leave the dashboard and search for it.
   
   This is the point where a first-time user most needs help, and it is where 
the dashboard says least.
   
   **The gateway cannot supply the explanation.** Of the 106 plugins returned 
by `GET /apisix/admin/plugins?all=true` on APISIX 3.17.0, **0 have a 
`schema.description`**. So the docs site is the only available source — and it 
is one deterministic URL away.
   
   ## Describe the solution you'd like
   
   A documentation link in the plugin editor drawer header, next to the plugin 
name, pointing at `https://apisix.apache.org/docs/apisix/plugins/<name>/`. 
Optionally the same link on each picker card.
   
   The header already links the docs root (`DOCS_URL` in 
`src/components/Header/index.tsx`, added in #3452). This is the same idea, 
aimed at the moment the user actually has a question.
   
   ### Measured URL coverage
   
   All 106 plugin names checked against the released docs:
   
   | Result | Count | Notes |
   |---|---|---|
   | 200 on the released docs | 99 | |
   | 200 only under `/docs/apisix/next/` | 3 | `ai-cache`, `ai-lakera-guard`, 
`mcp-bridge` — newer than the current docs release |
   | no page under that name | 4 | `serverless-pre-function` and 
`serverless-post-function` are documented together at `/plugins/serverless/`; 
`example-plugin` is a sample; `ai` has no page |
   
   So the exceptions cost a three-entry slug map (both `serverless-*` → 
`serverless`) plus no link for `example-plugin` and `ai`. Plugins newer than 
the released docs will 404 until the next docs release; that set shrinks on its 
own with each release, and is the argument for linking the stable docs rather 
than `next`.
   
   ## Describe alternatives you've considered
   
   **Showing a description on the plugin card instead.** Not possible from the 
gateway — verified above, no plugin carries one.
   
   **Bundling a name → description table in the dashboard.** 106 entries × 5 
locales to write and then keep in step with the gateway's plugin list. It would 
drift, and a stale description is worse than none.
   
   **Linking `/docs/apisix/next/plugins/<name>/` instead of the stable docs.** 
Covers the three newest plugins but sends every other user to documentation for 
an unreleased version.
   
   **Probing which URL exists at runtime.** A request per plugin card, 
cross-origin, to decide whether to render a link. Not worth it for a handful of 
names that a static map already covers.
   
   ## Additional context
   
   - Secondary observation from the same screen: the picker lists plugins in 
the gateway's priority order, not alphabetically. There is a search box, which 
helps if you already know the name — which is exactly the case this issue is 
about not being able to assume.
   - Environment: APISIX 3.17.0, dashboard at master `89fc2ed1`.
   
   Happy to put up a PR if this direction is agreed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to