[wp-trac] [WordPress Trac] #64791: Connectors: Extensibility API allowing plugins to register custom connector cards
WordPress Trac
noreply at wordpress.org
Wed Mar 4 10:59:55 UTC 2026
#64791: Connectors: Extensibility API allowing plugins to register custom connector
cards
-------------------------+------------------------------
Reporter: gziolo | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: General | Version: trunk
Severity: normal | Resolution:
Keywords: | Focuses:
-------------------------+------------------------------
Description changed by gziolo:
Old description:
> The Connectors screen needs a formal extensibility API so that third-
> party plugins can register their own connector cards — including custom
> UI for OAuth flows, multi-step configuration, or non-API-key
> authentication methods — without being limited to the default API key
> input card.
>
> The Connectors screen was introduced in
> [Gutenberg#75833](https://github.com/WordPress/gutenberg/pull/75833).
> [Gutenberg#76014](https://github.com/WordPress/gutenberg/pull/76014)
> added dynamic registration from the WP AI Client PHP registry, so
> provider plugins using `AiClient::defaultRegistry()->registerProvider()`
> with `api_key` authentication now appear automatically. This was a
> significant step, but the extensibility story remains incomplete.
>
> === Current behavior
>
> - Only providers with `api_key` authentication are surfaced on the
> Connectors screen. All other authentication methods are filtered out.
> - Every connector card renders the same default UI: a text input for the
> API key, with save/remove actions.
> - Third-party plugins can register a provider in PHP and have it appear
> on the screen, but they cannot customize how their card looks or behaves.
> - There is no mechanism for plugins to add connector types that go beyond
> AI providers (e.g., OAuth-based services, webhook configurations, or
> other integration patterns the Connectors screen could support in the
> future).
>
> === Expected behavior
>
> Plugins should be able to:
>
> 1. **Register a connector card with custom UI** — for example, an OAuth
> flow with an "Authorize" button and token status, or a multi-field
> configuration form.
> 2. **Register connectors using authentication methods other than API
> keys** — OAuth, app passwords, bearer tokens, etc.
> 3. **Provide card metadata from PHP** without needing to enqueue their
> own JavaScript for simple cases. The current `script_module_data` bridge
> from PHP to JS is a reasonable pattern, but the API should be explicit
> about what metadata plugins can provide (name, description, icon,
> credentials URL, authentication type, status).
> 4. **Inject custom rendering on the JS side** when the default card
> layout is insufficient — via a formal JS API that was marked as
> experimental initially.
>
> === Proposed scope
>
> - Define a PHP API for registering connector cards with metadata (name,
> description, icon, credentials URL, authentication type, custom fields).
> - Provide a JS-side API for plugins that need custom card rendering.
> - Ensure the default API key card remains the automatic fallback.
> - Document the extensibility API with examples for both PHP-only and
> PHP+JS integration patterns.
New description:
The Connectors screen needs a formal extensibility API so that third-party
plugins can register their own connector cards — including custom UI for
OAuth flows, multi-step configuration, or non-API-key authentication
methods — without being limited to the default API key input card.
The Connectors screen was introduced in
https://core.trac.wordpress.org/ticket/64730
(https://github.com/WordPress/gutenberg/pull/75833).
https://github.com/WordPress/gutenberg/pull/76014 added dynamic
registration from the WP AI Client PHP registry, so provider plugins using
`AiClient::defaultRegistry()->registerProvider()` with `api_key`
authentication now appear automatically. This was a significant step, but
the extensibility story remains incomplete.
=== Current behavior
- Only providers with `api_key` authentication are surfaced on the
Connectors screen. All other authentication methods are filtered out.
- Every connector card renders the same default UI: a text input for the
API key, with save/remove actions.
- Third-party plugins can register a provider in PHP and have it appear on
the screen, but they cannot customize how their card looks or behaves.
- There is no mechanism for plugins to add connector types that go beyond
AI providers (e.g., OAuth-based services, webhook configurations, or other
integration patterns the Connectors screen could support in the future).
=== Expected behavior
Plugins should be able to:
1. **Register a connector card with custom UI** — for example, an OAuth
flow with an "Authorize" button and token status, or a multi-field
configuration form.
2. **Register connectors using authentication methods other than API
keys** — OAuth, app passwords, bearer tokens, etc.
3. **Provide card metadata from PHP** without needing to enqueue their own
JavaScript for simple cases. The current `script_module_data` bridge from
PHP to JS is a reasonable pattern, but the API should be explicit about
what metadata plugins can provide (name, description, icon, credentials
URL, authentication type, status).
4. **Inject custom rendering on the JS side** when the default card layout
is insufficient — via a formal JS API that was marked as experimental
initially.
=== Proposed scope
- Define a PHP API for registering connector cards with metadata (name,
description, icon, credentials URL, authentication type, custom fields).
- Provide a JS-side API for plugins that need custom card rendering.
- Ensure the default API key card remains the automatic fallback.
- Document the extensibility API with examples for both PHP-only and
PHP+JS integration patterns.
--
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64791#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list