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]
