ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Backstage v1.52.0 版本发布详解:FrontendHostDiscovery 默认化、Catalog 性能优化与 BUI 语义化设计系统升级

2026/9/13 23:25:22 拓冰建站 浏览量
Backstage v1.52.0 版本发布详解:FrontendHostDiscovery 默认化、Catalog 性能优化与 BUI 语义化设计系统升级 Backstage v1.52.0 版本发布详解FrontendHostDiscovery 默认化、Catalog 性能优化与 BUI 语义化设计系统升级【免费下载链接】backstageBackstage is an open framework for building developer portals项目地址: https://gitcode.com/GitHub_Trending/ba/backstageBackstage v1.52.0 是一次包含多个BREAKING 变更的重要版本核心围绕默认发现机制切换为FrontendHostDiscovery、彻底移除 immediate 模式 stitching、Backstage UIBUI异步集合组件与语义化色彩 token 体系上线三大主线展开同时为 Catalog 后端带来一批针对 PostgreSQL 的深度性能优化并新增实验性backstage/connections包。阅读本文你将掌握该版本所有破坏性变更的迁移步骤ComboboxProps/SelectProps联合类型改造、CSS token 重命名对照、discovery.endpoints配置修正理解/entities/by-query的totalItems控制与拆分查询原理以及 Scaffolder 新增的 secrets 校验、Git push 重试与 GitHub GraphQL 回退等可靠性能力从而安全、平滑地完成升级。本仓库 docs/releases/v1.52.0-changelog.md 与 docs/releases/v1.52.0.md 为本文核心依据文中涉及的源码与配置均可按相对路径在仓库中查阅。官方 Upgrade Helper 工具可协助按目标版本1.52.0规划升级步骤也可参照仓库内 docs/getting-started/keeping-backstage-updated.md 的升级流程。版本速览与升级总览v1.52.0 涉及的核心包版本与性质如下升级前建议先对照确认自己项目依赖到的范围包版本性质关键变化backstage/plugin-app0.5.0BREAKING默认 Discovery API 切换为FrontendHostDiscoverybackstage/plugin-catalog-backend3.8.0BREAKING移除 immediate 模式 stitchingtotalItems参数PostgreSQL 性能优化backstage/ui0.16.0BREAKINGComboboxProps/SelectProps变为联合类型语义化 color tokenbackstage/catalog-client1.16.0MinorqueryEntities支持totalItems选项backstage/connections0.1.0新增实验性Connection 配置模型backstage/plugin-catalog-react3.1.0MinoruseEntityList新增refresh列表与计数请求拆分backstage/plugin-scaffolder1.38.0MinorRepoOwnerPicker支持 GitLab 自定义变体本版本不包含安全修复Security Fixes 部分明确声明 This release does not contain any security fixes。升级时请重点关注下面两个 Breaking 变更因为它们直接影响现有配置与代码。BREAKING默认 Discovery API 切换为 FrontendHostDiscoverybackstage/plugin-app0.5.0将默认的 discovery API 实现从原有实现切换为FrontendHostDiscovery这是本版本最重要的行为变化之一。切换后前端将开始真正生效discovery.endpoints配置——包括字符串形式的target值。原理FrontendHostDiscovery 如何解析配置在仓库中FrontendHostDiscovery的实现位于 packages/core-app-api/src/apis/implementations/DiscoveryApi/FrontendHostDiscovery.ts。从源码可以看出其解析逻辑通过config.getOptionalConfigArray(discovery.endpoints)读取配置数组逐项flatMap展开当target是对象时取target.external作为浏览器可访问地址e.getOptionalString(target.external)当target是字符串时直接作为目标 URL每个 endpoint 通过UrlPatternDiscovery.compile(target)编译再按plugins数组映射为pluginId - discovery的 Map未命中任何 endpoint 的插件回退到backend.baseUrl pathPattern默认路径模式为/api/{{ pluginId }}查找时按endpoints.get(pluginId) ?? endpoints.get(*)依次匹配精确插件与通配符*见 FrontendHostDiscovery.ts#L89-L95。配置格式字符串 target 与对象 targetFrontendHostDiscovery的 docstring 给出了完整的discovery.endpoints配置示例覆盖字符串与对象两种形式discovery: endpoints: - target: https://internal.example.com/internal-catalog plugins: [catalog] - target: https://internal.example.com/secure/api/{{pluginId}} plugins: [auth, permissions] - target: internal: https://internal.example.com/search external: https://example.com/search plugins: [search] - target: https://example.com/api/{{pluginId}} plugins: [*]迁移要求重要由于前端开始生效discovery.endpoints如果你目前在该配置中使用仅内部可达的字符串target必须改为对象形式并按以下规则修正将内部 URL 移动到target.internal省略target.external或将其设置为浏览器可达的 URL否则前端会被路由到内部 URL导致浏览器访问失败。判断要点target.internal用于服务端/内部访问target.external用于浏览器端。若某 endpoint 仅用于内部就只写target.internal而不写target.external。配套修复同一版本中FrontendHostDiscovery相关的修复还包括core-components修复了 Header tab 链接未遵循路由basename的问题commit b06b3c7确保多 base path 部署下前端导航行为正确。BREAKINGCatalog 移除 immediate 模式 stitchingbackstage/plugin-catalog-backend3.8.0移除了catalog.stitchingStrategy.mode: immediate配置。该设置在 v1.51.0 中已标记废弃本版本正式移除。行为变化与兼容处理所有 stitching 现在统一使用deferred 模式实体通过 worker 队列异步处理如果配置中仍包含catalog.stitchingStrategy.mode: immediate该值会被忽略并产生一条 deprecation 警告不会导致启动失败pollingInterval与stitchTimeout设置继续按原语义生效无需改动。底层修复stitch 队列的并发安全与 stitching 移除配套的是若干队列语义修复保证 deferred 模式在并发下的正确性修复竞态条件commit 774d698SELECT FOR UPDATE SKIP LOCKED行锁在时间戳更新前被释放导致多个 worker 认领同一行。现在 MySQL/PostgreSQL 上 select 与 update 在同一事务内执行避免同一实体的重叠 stitchcommit 0b8b677stitch 进行中新到达的请求只更新 ticket 而不更新 timestamp避免打断进行中的 workerworker 完成后若检测到待重 stitch队列条目立即进入可认领状态无需等待超时。Backstage UIBUI0.16.0异步集合组件与语义化色彩体系backstage/ui0.16.0是本版本中改动面最大的前端包同时包含BREAKING 变更、新组件与主题 token 体系升级。此外backstage/eslint-plugin0.3.1新增了配套的 lint 规则。Combobox 与 Select 支持异步集合Combobox和Select现在都支持异步集合async collections与增量加载incremental loading客户端搜索与服务器端搜索富文本/自定义选项渲染。加载占位符通过公共 CSS 类暴露Combobox为.bui-ComboboxLoading与.bui-ComboboxLoadingRowSelect为.bui-SelectLoading与.bui-SelectLoadingRow过期但仍显示的旧结果通过.bui-ComboboxList/.bui-SelectList上的data-stale属性标记。滚动加载行为也得到修正commit 350407dCombobox/Select弹层现在随滚动逐页加载而非一次性加载全部页面。Combobox使用.bui-PopoverContent作为滚动容器所有Select变体统一使用新的.bui-SelectResults结果容器可搜索Select保持搜索框固定、结果区滚动并通过新的公共类.bui-SelectContent与.bui-SelectResults暴露布局以便主题定制。BREAKINGProps 接口变为联合类型ComboboxProps与SelectProps的公共接口现在均为联合类型。升级时必须执行的迁移把所有extends这些接口的 interface 改为类型交叉type intersection。以Combobox为例- interface MyComboboxProps extends ComboboxProps { - trackingId: string; - } type MyComboboxProps ComboboxProps { trackingId: string; };Select的迁移方式完全一致。此外Select弹层列表内容不再是.bui-SelectPopover的直接子元素——其内容现在被包装在标准的 BUI Popover 内容结构中.bui-Box.bui-PopoverContent原有.bui-Popover.bui-SelectPopover根类保持不变。因此依赖列表内容作为.bui-SelectPopover直接子元素的 CSS 选择器需要更新。可选迁移从废弃 API 切换到新写法以下迁移是可选的旧写法仍作为兼容路径保留但推荐新代码直接采用新写法1. 选项标识优先使用id而非value普通数组选项仍支持value但新选项内容字段与异步选项源要求使用id- Combobox inputValue{query} onInputChange{setQuery} / Combobox search{{ inputValue: query, onInputChange: setQuery }} /2. 输入状态与自定义过滤迁入嵌套search配置- Select searchable searchPlaceholderSearch owners / Select search{{ placeholder: Search owners }} /对于普通数组options顶层 input state props 仍受支持废弃兼容路径。新组件NumberField新增NumberField组件commit b33bb24用于数值输入支持min/max范围约束step步进键盘递增/递减。语义化色彩 Token 家族与迁移对照表本版本引入一组新的语义化 color token 家族Accent、Announcement、Warning、Negative、Positive每个家族在明暗主题下都提供一致的 background、foreground、border token同时新增灰度标尺--bui-gray-1至--bui-gray-11与更新后的 foreground tokens。旧 token 保留以兼容旧代码但已废弃将在未来版本移除。配套的backstage/eslint-plugin0.3.1新增backstage/no-deprecated-bui-tokenslint 规则commit 5d80f77集成在recommended配置中——使用plugin:backstage/recommended的插件作者会自动收到废弃 token 的警告。注意该规则只覆盖 JS/TS 文件含 CSS-in-JS 与模板字符串普通 CSS 与 CSS module 文件不在 ESLint 覆盖范围内。以下是官方迁移对照表请按表逐项替换Neutral backgrounds中性背景 token 名称保持不变--bui-bg-app、--bui-bg-neutral-1~--bui-bg-neutral-4但明暗主题下更新为新的实色值无需重命名。其-hover、-pressed、-disabled交互变体已被废弃应删除。Foreground废弃替换--bui-fg-danger--bui-fg-negative--bui-fg-success--bui-fg-positive--bui-fg-info--bui-fg-announcementAccent废弃替换--bui-bg-solid--bui-accent-bg--bui-bg-solid-hover--bui-accent-bg-hover--bui-bg-solid-disabled--bui-accent-bg-disabled--bui-fg-solid--bui-accent-fg--bui-fg-solid-disabled--bui-accent-fg-disabledPositive废弃替换--bui-bg-success--bui-positive-bg-subdued--bui-fg-success-on-bg--bui-positive-fg-subdued--bui-border-success--bui-positive-borderNegative废弃替换--bui-bg-danger--bui-negative-bg-subdued--bui-fg-danger-on-bg--bui-negative-fg-subdued--bui-border-danger--bui-negative-borderWarning废弃替换--bui-bg-warning--bui-warning-bg-subdued--bui-fg-warning-on-bg--bui-warning-fg-subdued--bui-border-warning--bui-warning-borderAnnouncement废弃替换--bui-bg-info--bui-announcement-bg-subdued--bui-fg-info-on-bg--bui-announcement-fg-subdued--bui-border-info--bui-announcement-border其他 BUI 组件修复深色主题中性背景 token 更新提升中性表面之间的对比度commit 3d6c2e4Table组件修复 Firefox 下无法撑满容器宽度的问题overflow样式移到外层 wrapper 而非table本身commit c86efcdSkeleton组件背景感知自动调整颜色以在父级中性表面上保持可见对比度commit adf94f5Switch根据父容器背景适配轨道与滑块颜色选中时使用 accent token 家族commit 14a101f修复 tab 内容宽度动态变化时 tab 指示器位置不更新commit 66c4e55修复Combobox客户端搜索搭配普通 options 时的崩溃commit e989f95修复Header面包屑排版在不同样式加载顺序下的不一致commit 1f709a3。新实验包backstage/connections 0.1.0本版本新增backstage/connections0.1.0标记为实验性仅用于实验用途。从变更日志的定义看Connection是一段配置用于存储外部主机地址以及与该主机认证所需的凭据一个 Connection 可被多个插件消费从而减少重复配置Connection 可包含多种认证方式auth methods且可被限制到指定插件/模块新增title字段commit 95688f6提供人类可读的展示名未显式配置时默认取 provider 名如 GitHub多个同类型 Connection 共享同一 provider 时则包含主机名如 GitHub (ghe.acme.com)。其长期目标是逐步取代现有的 integrations 概念并支持更广泛的系统类型。相关设计提案BEP-0014完整内容见仓库 beps/0014-connection-service/README.md。仓库中还包含配套的示例实现plugins/connections-example-backend 与 plugins/connections-example-backend-module-gitlab可用于实验性参考。CatalogtotalItems 控制与列表/计数查询拆分新参数totalItems: include | exclude/entities/by-query端点现在接受totalItems参数include或exclude默认include控制响应中的totalItems计数是否计算调用方不需要计数时传exclude可完全跳过计数——对仅装饰性展示计数的 cursor 分页 UI 尤其有用该参数的合法值列表是前向兼容的未来可增加新模式如近似计数而不破坏现有调用方。对应的客户端 API 同步更新backstage/catalog-client1.16.0的CatalogApi.queryEntities在初始请求中接受相同的totalItems选项。源码证据见 packages/catalog-client/src/types/api.ts#L491-L499其类型注释明确exclude时响应totalItems为0适用于仅装饰性展示计数的 cursor 分页 UI。同时内部QueryEntitiesInitialRequest.skipTotalItems选项被替换为totalItems: include | exclude。由于skipTotalItems从未暴露为 REST 参数这只是影响直接调用EntitiesCatalog.queryEntities的 TypeScript 层面变更。另外两个相关修正排序字段键在与search.key比较前会先小写化修复 camelCase 字段名导致的静默不匹配NULLS LAST排序子句被移除——NULL 排序值已被WHERE子句排除无需再显式处理。前端列表与计数拆分并行请求backstage/plugin-catalog-react3.1.0的实体列表 provider 现在在使用 cursor 或 offset 分页时将列表查询与总数查询拆为两个并行的独立请求列表查询使用totalItems: exclude跳过昂贵的计数计算表格立即填充计数异步到达后更新标题新增totalItemsLoading字段EntityListContextProps让消费者区分过期计数与新鲜计数Catalog 表格在筛选变化与翻页时保留旧行可见不再用 spinner 替换整个表格主体仅在首次加载无数据时才显示全表 spinner计数刷新期间标题中的实体数变暗行加载时标题旁显示小 spinner。相关源码见 plugins/catalog-react/src/hooks/useEntityListProvider.tsx其中totalItemsLoading状态L124、refresh/triggerRefresh机制L132、L261、L505均清晰可见。新 hook 能力useEntityList 的 refreshuseEntityListhook 新增refresh函数commit 5dd532d允许消费者以编程方式触发实体列表数据刷新直接配合上述拆分查询使用。新组件CatalogExportButtonbackstage/plugin-catalog2.0.6新增CatalogExportButton组件commit 82cf16f为CatalogIndexPage提供CSV 与 JSON 导出能力。Catalog 后端PostgreSQL 深度性能优化backstage/plugin-catalog-backend3.8.0本轮性能优化的核心目标是修复大目录下查询计划器误判导致的性能退化全部针对 PostgreSQL要点如下拆分 list 与 count 查询commit 4829e89原实现使用多引用 CTEfilteredCTE 被引用两次时 PostgreSQL 拒绝内联导致必须物化完整过滤集后再应用LIMIT。拆分后 list CTE 只被引用一次计划器可在LIMIT处短路首页在毫秒级返回独立的 count 查询还修复了一个既有 bug——多值排序字段如 tags实体会被重复计数3 个 tag 计 3 次新 count 使用EXISTS按不同实体计数使totalItems与 cursor 分页实际可达实体数一致扩展多列统计commit 39c5fbb在search表(key, value)上增加多列统计仅 PostgreSQL修复复合筛选查询的行数估计错误。此前计划器可能物化并排序数千行而非使用 LIMIT 短路索引扫描导致多筛选条件下目录列表视图慢 10-40 倍自动 vacuum 阈值调优commit 24775dc对search、final_entities、relations、refresh_state_references表调优 PostgreSQL 自动 vacuum 阈值并修复search表entity_id的列统计防止维护滞后时计划器退化为顺序扫描移除冗余索引commit 9698738删除search_entity_id_idx该索引与(entity_id, key, value)覆盖唯一索引冗余且会导致多排序字段目录列表查询选择低效扫描路径在大目录上性能严重退化entitiesBatch 查询优化commit ccfa4f1PostgreSQL 上改用 ANY(array)而非WHERE IN ($1, $2, ...)生成单一稳定查询计划避免多达 200 个不同计划污染计划缓存PostgreSQL 上批量不再必要所有实体引用在单次查询中获取stitch 队列竞态与重叠修复commit 774d698、0b8b677详见上文 stitching 部分权限规则大小写不敏感commit 750b310HAS_LABEL与HAS_ANNOTATION权限规则现在不区分大小写。Scaffoldersecrets schema、v2 invoke 端点与可靠性增强Actions secrets schema 与 v2 invoke 端点backstage/backend-plugin-api1.9.2现在允许 Action 声明独立的 Zod secrets schema与 input schema 分离使界面层可以独立于工具参数收集敏感凭据ActionsRegistryActionOptions与ActionsRegistryActionContext新增可选secretsschema 支持ActionsServiceAction元数据与ActionsService.invoke()参数新增可选secrets字段backstage/backend-defaults0.17.3新增v2 invoke 端点/.backstage/actions/v2/actions/:id/invoke接受包裹格式{ input, secrets }并做 secrets 校验v1 端点保持不变以向后兼容DefaultActionsService改用 v2 端点DefaultActionsRegistryService在 actions list 响应中暴露 secrets schema并在调用时校验 secretsbackstage/backend-test-utils1.11.4的MockActionsRegistry同步支持按声明的 schema 校验 secrets、对必需 secrets 缺失的 action 拒绝调用、并将 secrets 转发给 action handler。dry-run 中恢复用户提供的 task secretsbackstage/plugin-scaffolder-backend4.0.1修复了上一轮安全修复过度删除的问题commit 063fc34之前的修复在 dry-run 中同时剥离了请求体传入的 task secrets破坏了依赖用户提供 secrets 的集成测试。现在仅服务器配置的环境 secrets 在 dry-run 中保持剥离调用方提供的 task secrets 恢复转发给 actions。Git push 重试与 GitHub GraphQL 回退backstage/plugin-scaffolder-node0.13.4为Git.push()增加指数退避重试commit 3d0ba59创建仓库后立即 push如publish:github可能遇到仓库尚未完全就绪的瞬时失败push 现在最多重试 5 次并递增延迟认证与权限错误401、403立即失败不重试backstage/plugin-scaffolder-backend-module-github0.9.10为publish:github与github:repo:push增加GitHub GraphQL API 回退commit 464ebc2git push 遇到连接级错误ECONNRESET或ECONNREFUSED同时检查error.code与error.cause.code时改用 GraphQL 重试。原因是 git smart HTTP 协议在 POST 中发送二进制 pack 数据可能被做深度包检测的网络代理拦截GraphQL 回退使用标准 JSON 请求不受影响。其他 Scaffolder 相关改进backstage/plugin-scaffolder1.38.0为RepoOwnerPicker扩展了GitLab 自定义变体commit 3e5acb5backstage/cli-module-new0.1.4新增scaffolder-field-extension-module模板commit 4014819可通过backstage-cli new快速脚手架自定义 Scaffolder 表单字段扩展移除多个包的json-schema运行时依赖仅保留import type类型引用commit 02c4e8a。前端系统、CLI 与测试工具更新create-appYarn 4.13 与供应链攻击防护backstage/create-app0.8.4新脚手架的应用改用Yarn 4.13.0原 4.4.1并默认启用 Yarn 的npmMinimalAgeGate: 3d设置——拒绝安装发布不足三天的 npm 包作为供应链攻击防御Backstage 自身包通过npmPreapprovedPackages: [backstage/*]豁免确保新发布版本可即时安装。现有应用不受影响如需手动启用可在自己的.yarnrc.yml中添加这两个设置并升级 Yarn 至 4.13 及以上。懒加载 core-components 依赖backstage/core-components0.18.11将react-syntax-highlighter与dagrejs/dagre改为懒加载commit c161e1c不再通过 barrel export 被急切拉入使从backstage/core-components导入的前期模块开销减少约 10 MB公共 API 不变。测试工具renderInTestApp 的 mountPathbackstage/frontend-test-utils0.6.1的renderInTestApp新增mountPath选项commit 62dd4fc控制测试元素渲染的路由路径模式设置后元素被包在指定 path 的Route中使useParams()能从 URL 提取路由参数可配合initialRouteEntries设置匹配的具体 URL。适用于测试依赖 URL 参数的页面组件如使用useRouteRefParams的实体页面。CLI 改进backstage/cli0.36.3改进了 CLI module 命令冲突校验commit b521571包括父命令与嵌套命令路径之间的冲突backstage/cli-node0.3.3新增runCli可从一组固定、直接导入的 CLI modules 创建可执行 CLI 包并校验冲突命令路径单模块的runCliModule辅助函数现已废弃各cli-module-*的--help输出现在显示生成的 usage 行列出可用 flags 与位置参数cli-module-build抑制protobufjs/inquire的误报 Critical dependency 警告并升级embedded-postgres至 18.3.0-beta.17。其他前端/后端修复与增强toastApi 兼容commit 74ed625app-defaults为旧前端系统提供 toastApi修复旧系统下的No implementation available for apiRef{core.toast}错误动态后端插件加载回退commit 7005478alphapackage.json存在但不提供插件入口时回退到主包导出加载——此前仅导出辅助 API如权限的插件即使主导出有效也可能加载失败任务 worker 重试循环尊重 abort signalcommit 89a95ca遇到意外错误时不再无限重试可优雅关闭内置限流器修复commit def82d4启用backend.rateLimit时不再抛出校验错误请求按express-rate-limit的地址归一化辅助函数分组IPv6 客户端按地址块而非单个地址分组URL-safe base64 会话 token 解码commit 8add9b9修复代理登录页读取 URL-safe base64 编码的会话 token 失败autologout 修复commit dbe93a7关闭所有标签页时自动登出不再失效Azure 相关修正AzureBlobStorageIntegration拼写修正旧拼写AzureBlobStorageIntergation保留为别名AzureBlobStorageUrlReader接受可选createContainerClient依赖便于测试GitLab URL reader修复获取仓库 archive tree 的问题commit 34f21c3SidebarSubmenuItem行高从 1 修正为 1.5修复文本裁剪commit f35372dTableFiltersClassKey新增正确拼写的header字面量废弃拼错的heder生成的旧 CSS 类保留兼容toast 文本可选Toast 文本内容可被选中commit 33d03edinfinispan 升级从^0.12.0升级至^0.13.0修复已知漏洞events bus 请求体上限提升至 5 MB 以支持更大事件负载commit f4342b9。各集成模块更新Bitbucket Servercommit 9e2ff8ccatalog-backend-module-bitbucket-server新增 SCM 事件翻译层订阅 Bitbucket Server webhook 事件并翻译为通用 catalog SCM 事件实现仓库 push/rename 时的即时目录重处理analyzeBitbucketServerWebhookEvent函数从 alpha 入口导出供自定义集成使用Microsoft Graph修复user.select设为空数组导致所有用户被丢弃的问题恢复默认字段集回退 v1.51.0 引入的服务端accountEnabled eq true基础过滤该过滤破坏了userGroupMember路径因组成员端点不支持该属性上的$filter禁用用户在/users与组成员两条路径上均改为客户端过滤OpenAPI/AsyncAPIcommit cf4b34b修复相对$ref解析使用 ref parser 的原始引用字符串与父文档 URL而非相对进程工作目录计算路径修复跨目录 ref如./../../common/specs/common.yaml与深度 1 的嵌套 refKubernetes移除误注册到/kubernetes的默认独立页面commit 07bd0b4KubernetesFetcher按集群池化 HTTPS agentscommit c4f935bMCP actions backendcommit ed1be73tools/list响应时逐个 action 校验 MCP tool schema不合规的 action 记录警告并跳过不再让整个响应失败notifications backendcommit ac410b1内部路由迁移为基于插件 OpenAPI 规范生成HTTP API 不变TechDocs补齐插件组件 i18n搜索、表格、首页、Reader、错误消息与导航标签并从 alpha 入口导出techdocsTranslationRefcommit 460c597OAuth2 Proxy providercommit 9822a2a新增forwardedPreferredUsernameMatchingUserEntityName登录解析器增量摄取commit e846874ingestions.last_error列类型调整移除 255 字符限制权限规则HAS_LABEL/HAS_ANNOTATION大小写不敏感app-backendcommit ca450be新增app.disablePublicEntryPoint配置选项设为true时跳过向未认证用户提供公共登录入口即使应用打包了index-public-experimental入口。升级路径建议优先处理两个 Breaking 变更检查app-config.yaml中的discovery.endpoints必要时改为对象形式 target.internal以及catalog.stitchingStrategy.mode如为immediate直接移除或改为 deferred 相关设置处理 BUI 类型与 token 迁移将extends ComboboxProps/SelectProps的 interface 改为 type intersection按上文对照表替换废弃 CSS token并启用backstage/no-deprecated-bui-tokenslint 规则辅助排查关注 PostgreSQL 目录性能优化这些优化是自动生效的含新迁移大目录部署可重点验证多筛选条件下的目录列表查询测试工具与 CLI如需测试依赖 URL 参数的页面使用renderInTestApp的mountPath新选项。完整升级指引可参照仓库 docs/getting-started/keeping-backstage-updated.md 与 docs/overview/versioning-policy.md。本版本的完整包级变更明细含全部依赖更新见 docs/releases/v1.52.0-changelog.md版本亮点综述见 docs/releases/v1.52.0.md。【免费下载链接】backstageBackstage is an open framework for building developer portals项目地址: https://gitcode.com/GitHub_Trending/ba/backstage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考