Make WordPress Core

Changeset 61749


Ignore:
Timestamp:
02/26/2026 01:34:20 PM (6 hours ago)
Author:
jorgefilipecosta
Message:

Connectors: Backport Gutenberg connectors screen.

Adds wp-includes/connectors.php (loaded from wp-settings.php) and registers
a Settings > Connectors submenu when the AI client and Connectors admin page
renderer are available.
Registers connector API key settings in /wp/v2/settings, masks key values on
option reads, validates keys against provider configuration, and returns
invalid_key for explicitly requested connector fields when validation fails.
Stored connector keys are also passed to the AI client registry on init.

Gutenberg PR at https://github.com/WordPress/gutenberg/pull/75833.
Developed in https://github.com/WordPress/wordpress-develop/pull/11056.

Props jorgefilipecosta, gziolo, flixos90, justlevine, westonruter, jeffpaul, JasonTheAdams, audrasjb, shaunandrews, noruzzaman, mukesh27.
Fixes #64730.

Location:
trunk
Files:
6 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-settings.php

    r61700 r61749  
    295295require ABSPATH . WPINC . '/ai-client/class-wp-ai-client-prompt-builder.php';
    296296require ABSPATH . WPINC . '/ai-client.php';
     297require ABSPATH . WPINC . '/connectors.php';
    297298require ABSPATH . WPINC . '/class-wp-icons-registry.php';
    298299require ABSPATH . WPINC . '/widgets.php';
  • trunk/tests/phpunit/tests/rest-api/rest-settings-controller.php

    r61722 r61749  
    121121            'site_icon', // Registered in wp-includes/blocks/site-logo.php
    122122            'wp_enable_real_time_collaboration',
     123            // Connectors API keys are registered in _wp_register_default_connector_settings() in wp-includes/connectors.php.
     124            'connectors_ai_anthropic_api_key',
     125            'connectors_ai_google_api_key',
     126            'connectors_ai_openai_api_key',
    123127        );
    124128
  • trunk/tests/qunit/fixtures/wp-api-generated.js

    r61722 r61749  
    1106511065                    ],
    1106611066                    "args": {
     11067                        "connectors_ai_google_api_key": {
     11068                            "title": "Google API Key",
     11069                            "description": "API key for the Google AI provider.",
     11070                            "type": "string",
     11071                            "required": false
     11072                        },
     11073                        "connectors_ai_openai_api_key": {
     11074                            "title": "OpenAI API Key",
     11075                            "description": "API key for the OpenAI AI provider.",
     11076                            "type": "string",
     11077                            "required": false
     11078                        },
     11079                        "connectors_ai_anthropic_api_key": {
     11080                            "title": "Anthropic API Key",
     11081                            "description": "API key for the Anthropic AI provider.",
     11082                            "type": "string",
     11083                            "required": false
     11084                        },
    1106711085                        "title": {
    1106811086                            "title": "Title",
     
    1463514653
    1463614654mockedApiResponse.settings = {
     14655    "connectors_ai_google_api_key": "",
     14656    "connectors_ai_openai_api_key": "",
     14657    "connectors_ai_anthropic_api_key": "",
    1463714658    "title": "Test Blog",
    1463814659    "description": "",
Note: See TracChangeset for help on using the changeset viewer.