惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
A
Arctic Wolf
K
Kaspersky official blog
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
MongoDB | Blog
MongoDB | Blog
T
Threat Research - Cisco Blogs
D
Docker
爱范儿
爱范儿
T
Tenable Blog
C
Check Point Blog
B
Blog
C
Cisco Blogs
Vercel News
Vercel News
The Cloudflare Blog
T
Threatpost
NISL@THU
NISL@THU
T
Tor Project blog
V2EX - 技术
V2EX - 技术
P
Palo Alto Networks Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
博客园 - 司徒正美
S
Security @ Cisco Blogs
GbyAI
GbyAI
S
Secure Thoughts
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
Recorded Future
Recorded Future
Cloudbric
Cloudbric
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
Y
Y Combinator Blog
博客园_首页
T
Troy Hunt's Blog
The Hacker News
The Hacker News
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
U
Unit 42
AWS News Blog
AWS News Blog
PCI Perspectives
PCI Perspectives
V
Visual Studio Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell

Netlify Changelog

Gemini 3.5 Flash now available in Agent Runners 4 Nuxt CVEs: what Netlify users need to know Gemini 3.5 Flash now available in AI Gateway Agent Runners workflow improvements Next.js & React security release (May 2026): what to know Block project transfers out of your team Gemini 3.1 Flash-Lite now available in AI Gateway OpenAI GPT-5.5 Instant now available in AI Gateway New `netlify logs` CLI command Deploy to Netlify with Stripe Projects Netlify Database is now generally available OpenAI GPT-5.5 and GPT-5.5 Pro in AI Gateway & Agent Runners Rename an agent run GPT Image 2 now available in AI Gateway New frontend-design skill for Agent Runners Claude Opus 4.7 now available in AI Gateway and Agent Runners Pricing updates for Credit-based plans New sorting and filter controls on the Members page Netlify Database GA coming soon, no new databases for now Deploy logs streaming is now faster Netlify CLI adds prompt-based creation and anonymous deploys Deploy from Codex with the Netlify Plugin Hydrogen with React Router 7 now supported on Netlify Monitor credit usage by day Invoices for Enterprise Available on the Billing Page AI app development on production infrastructure with Netlify Introducing Prompt Templates OpenAI GPT-5.4 Nano and GPT-5.4 Mini in AI Gateway Change your pricing plan Internal Builder Role & Project Access Controls See your available credits at a glance Astro 6 just works on Netlify Limit AI feature usage OpenAI GPT-5.4 and GPT-5.4 Pro in AI Gateway & Agent Runners Deploy Preview screenshots in agent runs Gemini 3.1 Flash-Lite Preview now available in AI Gateway GPT-5.3 Instant now available in AI Gateway Use Netlify Agent Runners from Linear Automatic PHP bot scan blocking now live on all plans Support for stale-while-revalidate in Cache API Gemini 3.1 Flash Image Preview now available in AI Gateway GPT-5.3-Codex now available in AI Gateway Gemini 3.1 Pro Preview now available in AI Gateway Claude Sonnet 4.6 now available in AI Gateway and Agent Runners Sync changes with Agent Runners without Git Claude Opus 4.6 now available in AI Gateway and Agent Runners Agent Runners improvements recap 6 new React Router & Remix CVEs: what you need to know Vulnerability in Node.js: what Netlify users need to know 5 SvelteKit security vulnerabilities: what Netlify users need to know GPT-5.2-Codex Now Available in AI Gateway and Agent Runners Play Games While Agent Runners Do the Work Prerender.io support updated as new extension Gemini 3 Flash Preview now available in AI Gateway GPT-image-1.5 now available in AI Gateway AI Gateway now Generally Available Observability release is here Prerender extension now generally available Action required: React/Next.js CVE-2025-55184 and CVE-2025-55183 GPT-5.2 and GPT-5.2-Pro now available in AI Gateway and Agent Runners GPT-5.1-Codex-Max now available in AI Gateway and Agent Runners Netlify’s response to the critical React security vulnerability Netlify Vite Plugin now supports AI Gateway locally Claude Opus 4.5 now available in AI Gateway Projects deployed using a zip file via API now support branch deploys Day one support for Angular v21 on Netlify Gemini 3 now available in AI Gateway and Agent Runners DNS record management simplified for teams in Netlify organizations Skew protection for CLI workflows Support for more domain TLDs GPT-5.1 model now available in AI Gateway React Router 7 apps can now be deployed to Edge Functions | Netlify Changelog Git SHA exposed for triggered deploys | Netlify Changelog Test scheduled functions in Netlify dashboard | Netlify Changelog Revert agent run in a task | Netlify Changelog Deletion improvements with Netlify Blobs | Netlify Changelog Preview Server restart for cross-functional collaborators | Netlify Changelog AI inference usage graphs | Netlify Changelog Buy credit packs on demand | Netlify Changelog React Router 7 middleware now supported | Netlify Changelog Skew protection now available | Netlify Changelog Next.js 16 is ready to deploy on Netlify | Netlify Changelog Enforce Git-based workflows for production deploys | Netlify Changelog Claude Haiku 4.5 is now available in the AI Gateway | Netlify Changelog GPT 5 Pro now available in the AI Gateway | Netlify Changelog Updates to credit-based Personal and Pro plans | Netlify Changelog New AI workflows: Agent Runners and AI Gateway (beta) | Netlify Changelog Netlify pricing update: Introducing credit-based plans | Netlify Changelog Security Update: Multiple vulnerabilities in Next.js | Netlify Changelog ChatGPT deep link for failed deploy analysis | Netlify Changelog Equinix IP address expiring for 4-year old sites | Netlify Changelog Nuxt 4 support + new @netlify/nuxt module for local dev | Netlify Changelog Smart Secret Scanning for AI-Generated Code | Netlify Netlify DB: Serverless PostgreSQL Database | Netlify One-click install Netlify MCP on Cursor | Netlify Changelog Netlify MCP Server: AI Agents Can Now Deploy Code Directly | Netlify Netlify Becomes Official Vite Deployment Partner + New Plugin | Netlify Angular 20 support | Netlify Changelog Netlify CLI 21.4.1 UI and workflow enhancements | Netlify Changelog Security Update: Next.js sites on Netlify not vulnerable to CVE-2025-32421 | Netlify Changelog
Add a surface to extension UI
2025-01-31 · via Netlify Changelog

The extension UI boilerplate code includes an extension details page surface, which users will access under Extensions > [your extension’s details page] > Configuration in the Netlify UI. You can change this to a different surface or add additional ones for various locations in the Netlify UI.

This document covers how to update your extension UI to add an additional surface to render in the Netlify UI. It also includes a list of available surfaces and their configuration values for your reference.

For more information about all of the components and surfaces available, refer to the extension UI reference docs.

Add a new surface

Section titled “Add a new surface”

  1. First, edit the extension’s configuration file (extension.yaml) to add a new surface under surfaces.

    For example, to add the Project Notifications Configuration surface, add extension-site-notifications-configuration.

    config:

    ui:

    surfaces:

    - extension-team-configuration

    - extension-site-notifications-configuration

    This signals to the Netlify UI that it should show your extension UI when a user installs your extension and navigates to Project configuration > Notifications.

  2. Next, create the new component that Netlify should render for this surface in the Netlify UI. For example, add new file called SiteNotificationsConfiguration.tsx under src/ui/surfaces/ with the following component code:

    import {

    Card,

    CardTitle,

    Form,

    FormField,

    FormFieldSecret,

    SiteNotificationsConfigurationSurface,

    } from "@netlify/sdk/ui/react/components";

    export const SiteNotificationsConfiguration = () => {

    const onSubmit = (values) => {

    // Do something with form values

    };

    return (

    <SiteNotificationsConfigurationSurface>

    <Card>

    <Form onSubmit={onSubmit}>

    <FormField name="username" label="Username" />

    <FormFieldSecret name="password" label="password" />

    <Select

    name="notification_provider"

    label="Notification Provider"

    options={[

    { label: "SMS", value: "SMS" },

    { label: "Email", value: "email" },

    { label: "Carrier Pigeon", value: "carrier_pigeon" },

    ]}

    />

    </Form>

    </Card>

    </SiteNotificationsConfigurationSurface>

    );

    };

  3. Next, update the extension UI application to render your new component when a user navigates to the correct surface:

    import { Surfaces } from "@netlify/sdk/ui/react";

    import { SurfaceRouter, SurfaceRoute } from "@netlify/sdk/ui/react/components";

    import { TeamConfiguration } from "./surfaces/TeamConfiguration.jsx";

    import { SiteNotificationsConfiguration } from "./surfaces/SiteNotificationsConfiguration.jsx";

    export const App = () => (

    <SurfaceRouter>

    <SurfaceRoute surface={Surfaces.TeamConfiguration}>

    <TeamConfiguration />

    <SurfaceRoute>

    <SurfaceRoute surface={Surfaces.SiteNotificationsConfiguration}>

    <SiteNotificationsConfiguration />

    <SurfaceRoute>

    </SurfaceRouter>

    );

  4. Next, redeploy the extension so that you can preview it locally. Redeploying and updating your private extension is only required when you add or remove surfaces.

  5. Now, you can run start local development. Once the server starts, navigate to Project configuration > Notifications for your project in the Netlify UI and the new surface should appear. The original boilerplate surface should also still appear when you navigate to Team settings > General team settings

Available surfaces

Section titled “Available surfaces”

The Netlify SDK supports extension UI for the following surfaces across team sections and project sections of the Netlify UI.

For team features and configurations, you can add the following surfaces:

Extension details page

Section titled “Extension details page”

Note that this surface is sometimes referred to as the Team Configuration surface.

  • Location in the Netlify UI: Extensions > [your extension’s details page] > Configuration
  • Component name: TeamConfigurationSurface
  • Value for extension.yaml: extension-team-configuration

For project features and configurations, you can add the following surfaces:

General project settings

Section titled “General project settings”

  • Location in the Netlify UI: Project configuration > General
  • Component name: SiteGeneralConfigurationSurface
  • Value for extension.yaml: extension-site-general-configuration

Project access & security settings

Section titled “Project access & security settings”

  • Location in the Netlify UI: Project configuration > Access & security
  • Component name: SiteAccessConfigurationSurface
  • Value for extension.yaml: extension-site-access-configuration

Project build & deploy settings

Section titled “Project build & deploy settings”

  • Location in the Netlify UI: Project configuration > Build & deploy
  • Component name: SiteBuildDeployConfigurationSurface
  • Value for extension.yaml: extension-site-build-and-deploy-configuration

Project notification settings

Section titled “Project notification settings”

  • Location in the Netlify UI: Project configuration > Notifications
  • Component name: SiteNotificationsConfigurationSurface
  • Value for extension.yaml: extension-site-notifications-configuration

Top-level project section

Section titled “Top-level project section”

Note that this surface is sometimes referred to as the Top-Level Project Configuration surface.

  • Location in the Netlify UI: a section listed under the top-level navigation for projects.
  • Component name: SiteConfigurationSurface
  • Value for extension.yaml: extension-top-level-site-configuration

  • Location in the Netlify UI: Deploys > [your project deploy page]
  • Component name: SiteDeploySurface
  • Value for extension.yaml: extension-site-deploy

Now that you’ve created an extension, reviewed it in the Netlify UI, and added a new surface, you can create rich interactions by creating an endpoint and calling it from the UI.

For more information about all of the components and surfaces available, refer to the extension UI reference docs.