From ba11a7a9070295e9b00575e6c555db9f1ca5b235 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 17 Mar 2026 11:09:11 +0100 Subject: [PATCH] chore: refresh api reports for NFS header pages Update the generated API reports to match the NFS header page migration and the new subpage-based public surface in the affected plugins. Signed-off-by: Patrik Oldsberg Made-with: Cursor --- plugins/catalog-import/report-alpha.api.md | 10 +- .../report-alpha.api.md | 22 ++- plugins/catalog/report-alpha.api.md | 6 +- plugins/devtools-react/report.api.md | 44 ------ plugins/devtools/report-alpha.api.md | 131 +++++++++++++++--- plugins/notifications/report-alpha.api.md | 14 +- plugins/scaffolder/report.api.md | 8 +- plugins/user-settings/report-alpha.api.md | 131 ++++++++++++++++-- 8 files changed, 273 insertions(+), 93 deletions(-) diff --git a/plugins/catalog-import/report-alpha.api.md b/plugins/catalog-import/report-alpha.api.md index b58b641050..fbac8f7f17 100644 --- a/plugins/catalog-import/report-alpha.api.md +++ b/plugins/catalog-import/report-alpha.api.md @@ -37,11 +37,8 @@ export const catalogImportTranslationRef: TranslationRef< readonly 'importInfoCard.githubIntegration.label': 'GitHub only'; readonly 'importInfoCard.githubIntegration.title': 'Link to a repository'; readonly 'importStepper.finish.title': 'Finish'; - readonly 'importStepper.singleLocation.title': 'Select Locations'; - readonly 'importStepper.singleLocation.description': 'Discovered Locations: 1'; - readonly 'importStepper.multipleLocations.title': 'Select Locations'; - readonly 'importStepper.multipleLocations.description': 'Discovered Locations: {{length, number}}'; readonly 'importStepper.noLocation.title': 'Create Pull Request'; + readonly 'importStepper.noLocation.createPr.ownerLabel': 'Entity Owner'; readonly 'importStepper.noLocation.createPr.detailsTitle': 'Pull Request Details'; readonly 'importStepper.noLocation.createPr.titleLabel': 'Pull Request Title'; readonly 'importStepper.noLocation.createPr.titlePlaceholder': 'Add Backstage catalog entity descriptor files'; @@ -53,9 +50,12 @@ export const catalogImportTranslationRef: TranslationRef< readonly 'importStepper.noLocation.createPr.ownerLoadingText': 'Loading groups…'; readonly 'importStepper.noLocation.createPr.ownerHelperText': 'Select an owner from the list or enter a reference to a Group or a User'; readonly 'importStepper.noLocation.createPr.ownerErrorHelperText': 'required value'; - readonly 'importStepper.noLocation.createPr.ownerLabel': 'Entity Owner'; readonly 'importStepper.noLocation.createPr.ownerPlaceholder': 'my-group'; readonly 'importStepper.noLocation.createPr.codeownersHelperText': 'WARNING: This may fail if no CODEOWNERS file is found at the target location.'; + readonly 'importStepper.singleLocation.title': 'Select Locations'; + readonly 'importStepper.singleLocation.description': 'Discovered Locations: 1'; + readonly 'importStepper.multipleLocations.title': 'Select Locations'; + readonly 'importStepper.multipleLocations.description': 'Discovered Locations: {{length, number}}'; readonly 'importStepper.analyze.title': 'Select URL'; readonly 'importStepper.prepare.title': 'Import Actions'; readonly 'importStepper.prepare.description': 'Optional'; diff --git a/plugins/catalog-unprocessed-entities/report-alpha.api.md b/plugins/catalog-unprocessed-entities/report-alpha.api.md index 7408831f87..c4a2b529bf 100644 --- a/plugins/catalog-unprocessed-entities/report-alpha.api.md +++ b/plugins/catalog-unprocessed-entities/report-alpha.api.md @@ -7,7 +7,6 @@ import { AnyApiFactory } from '@backstage/frontend-plugin-api'; import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; import { ApiFactory } from '@backstage/frontend-plugin-api'; import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; -import { DevToolsContentBlueprintParams } from '@backstage/plugin-devtools-react'; import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api'; import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; import { ExtensionInput } from '@backstage/frontend-plugin-api'; @@ -144,8 +143,8 @@ export default _default; // @alpha export const unprocessedEntitiesDevToolsContent: OverridableExtensionDefinition<{ - kind: 'devtools-content'; - name: undefined; + kind: 'sub-page'; + name: 'unprocessed-entities'; config: { path: string | undefined; title: string | undefined; @@ -164,9 +163,22 @@ export const unprocessedEntitiesDevToolsContent: OverridableExtensionDefinition< } > | ExtensionDataRef - | ExtensionDataRef; + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; inputs: {}; - params: DevToolsContentBlueprintParams; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; + routeRef?: RouteRef_2; + }; }>; // (No @packageDocumentation comment for this package) diff --git a/plugins/catalog/report-alpha.api.md b/plugins/catalog/report-alpha.api.md index a0b092a453..ad9389e522 100644 --- a/plugins/catalog/report-alpha.api.md +++ b/plugins/catalog/report-alpha.api.md @@ -95,16 +95,16 @@ export const catalogTranslationRef: TranslationRef< readonly 'entityContextMenu.unregisterMenuTitle': 'Unregister entity'; readonly 'entityContextMenu.moreButtonAriaLabel': 'more'; readonly 'entityLabelsCard.title': 'Labels'; - readonly 'entityLabelsCard.readMoreButtonTitle': 'Read more'; readonly 'entityLabelsCard.columnKeyLabel': 'Label'; readonly 'entityLabelsCard.columnValueLabel': 'Value'; readonly 'entityLabelsCard.emptyDescription': 'No labels defined for this entity. You can add labels to your entity YAML as shown in the highlighted example below:'; - readonly 'entityLabels.ownerLabel': 'Owner'; + readonly 'entityLabelsCard.readMoreButtonTitle': 'Read more'; readonly 'entityLabels.warningPanelTitle': 'Entity not found'; + readonly 'entityLabels.ownerLabel': 'Owner'; readonly 'entityLabels.lifecycleLabel': 'Lifecycle'; readonly 'entityLinksCard.title': 'Links'; - readonly 'entityLinksCard.readMoreButtonTitle': 'Read more'; readonly 'entityLinksCard.emptyDescription': 'No links defined for this entity. You can add links to your entity YAML as shown in the highlighted example below:'; + readonly 'entityLinksCard.readMoreButtonTitle': 'Read more'; readonly 'entityNotFound.title': 'Entity was not found'; readonly 'entityNotFound.description': 'Want to help us build this? Check out our Getting Started documentation.'; readonly 'entityNotFound.docButtonTitle': 'DOCS'; diff --git a/plugins/devtools-react/report.api.md b/plugins/devtools-react/report.api.md index 6916afed84..c99c9f953e 100644 --- a/plugins/devtools-react/report.api.md +++ b/plugins/devtools-react/report.api.md @@ -3,48 +3,4 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; -import { ExtensionBlueprint } from '@backstage/frontend-plugin-api'; -import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; -import { JSX as JSX_2 } from 'react'; -import { RouteRef } from '@backstage/frontend-plugin-api'; - -// @public -export const DevToolsContentBlueprint: ExtensionBlueprint<{ - kind: 'devtools-content'; - params: DevToolsContentBlueprintParams; - output: - | ExtensionDataRef - | ExtensionDataRef< - RouteRef, - 'core.routing.ref', - { - optional: true; - } - > - | ExtensionDataRef - | ExtensionDataRef; - inputs: {}; - config: { - path: string | undefined; - title: string | undefined; - }; - configInput: { - title?: string | undefined; - path?: string | undefined; - }; - dataRefs: never; -}>; - -// @public -export interface DevToolsContentBlueprintParams { - // (undocumented) - loader: () => Promise; - // (undocumented) - path: string; - // (undocumented) - routeRef?: RouteRef; - // (undocumented) - title: string; -} ``` diff --git a/plugins/devtools/report-alpha.api.md b/plugins/devtools/report-alpha.api.md index 753875eaaa..1f8517736b 100644 --- a/plugins/devtools/report-alpha.api.md +++ b/plugins/devtools/report-alpha.api.md @@ -125,23 +125,6 @@ const _default: OverridableFrontendPlugin< internal: false; } >; - contents: ExtensionInput< - | ConfigurableExtensionDataRef - | ConfigurableExtensionDataRef - | ConfigurableExtensionDataRef - | ConfigurableExtensionDataRef< - RouteRef_2, - 'core.routing.ref', - { - optional: true; - } - >, - { - singleton: false; - optional: true; - internal: false; - } - >; }; kind: 'page'; name: undefined; @@ -154,6 +137,120 @@ const _default: OverridableFrontendPlugin< noHeader?: boolean; }; }>; + 'sub-page:devtools/config': OverridableExtensionDefinition<{ + kind: 'sub-page'; + name: 'config'; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef_2, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: {}; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; + routeRef?: RouteRef_2; + }; + }>; + 'sub-page:devtools/info': OverridableExtensionDefinition<{ + kind: 'sub-page'; + name: 'info'; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef_2, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: {}; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; + routeRef?: RouteRef_2; + }; + }>; + 'sub-page:devtools/scheduled-tasks': OverridableExtensionDefinition<{ + kind: 'sub-page'; + name: 'scheduled-tasks'; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef_2, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: {}; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; + routeRef?: RouteRef_2; + }; + }>; } >; export default _default; diff --git a/plugins/notifications/report-alpha.api.md b/plugins/notifications/report-alpha.api.md index e1feed0cde..409e389247 100644 --- a/plugins/notifications/report-alpha.api.md +++ b/plugins/notifications/report-alpha.api.md @@ -125,8 +125,8 @@ export const notificationsTranslationRef: TranslationRef< 'plugin.notifications', { readonly 'table.errors.markAllReadFailed': 'Failed to mark all notifications as read'; - readonly 'table.pagination.labelDisplayedRows': '{from}-{to} of {count}'; readonly 'table.pagination.firstTooltip': 'First Page'; + readonly 'table.pagination.labelDisplayedRows': '{from}-{to} of {count}'; readonly 'table.pagination.labelRowsSelect': 'rows'; readonly 'table.pagination.lastTooltip': 'Last Page'; readonly 'table.pagination.nextTooltip': 'Next Page'; @@ -140,6 +140,12 @@ export const notificationsTranslationRef: TranslationRef< readonly 'table.confirmDialog.title': 'Are you sure?'; readonly 'table.confirmDialog.markAllReadDescription': 'Mark all notifications as read.'; readonly 'table.confirmDialog.markAllReadConfirmation': 'Mark All'; + readonly 'settings.table.origin': 'Origin'; + readonly 'settings.table.topic': 'Topic'; + readonly 'settings.title': 'Notification settings'; + readonly 'settings.errors.useNotificationFormat': 'useNotificationFormat must be used within a NotificationFormatProvider'; + readonly 'settings.errorTitle': 'Failed to load settings'; + readonly 'settings.noSettingsAvailable': 'No notification settings available, check back later'; readonly 'filters.view.all': 'All'; readonly 'filters.view.label': 'View'; readonly 'filters.view.read': 'Read notifications'; @@ -164,12 +170,6 @@ export const notificationsTranslationRef: TranslationRef< readonly 'filters.sortBy.newest': 'Newest on top'; readonly 'filters.sortBy.oldest': 'Oldest on top'; readonly 'filters.sortBy.topic': 'Topic'; - readonly 'settings.table.origin': 'Origin'; - readonly 'settings.table.topic': 'Topic'; - readonly 'settings.title': 'Notification settings'; - readonly 'settings.errors.useNotificationFormat': 'useNotificationFormat must be used within a NotificationFormatProvider'; - readonly 'settings.errorTitle': 'Failed to load settings'; - readonly 'settings.noSettingsAvailable': 'No notification settings available, check back later'; readonly 'sidebar.title': 'Notifications'; readonly 'sidebar.errors.markAsReadFailed': 'Failed to mark notification as read'; readonly 'sidebar.errors.fetchNotificationFailed': 'Failed to fetch notification'; diff --git a/plugins/scaffolder/report.api.md b/plugins/scaffolder/report.api.md index 0f5c617acc..61d28a0cc9 100644 --- a/plugins/scaffolder/report.api.md +++ b/plugins/scaffolder/report.api.md @@ -74,8 +74,8 @@ export const EntityNamePickerFieldExtension: FieldExtensionComponent_2< export const EntityPickerFieldExtension: FieldExtensionComponent_2< string, { - autoSelect?: boolean | undefined; defaultKind?: string | undefined; + autoSelect?: boolean | undefined; defaultNamespace?: string | false | undefined; catalogFilter?: | Record< @@ -104,8 +104,8 @@ export const EntityPickerFieldExtension: FieldExtensionComponent_2< export const EntityPickerFieldSchema: FieldSchema_2< string, { - autoSelect?: boolean | undefined; defaultKind?: string | undefined; + autoSelect?: boolean | undefined; defaultNamespace?: string | false | undefined; catalogFilter?: | Record< @@ -251,8 +251,8 @@ export type MyGroupsPickerUiOptions = NonNullable< export const OwnedEntityPickerFieldExtension: FieldExtensionComponent_2< string, { - autoSelect?: boolean | undefined; defaultKind?: string | undefined; + autoSelect?: boolean | undefined; defaultNamespace?: string | false | undefined; catalogFilter?: | Record< @@ -281,8 +281,8 @@ export const OwnedEntityPickerFieldExtension: FieldExtensionComponent_2< export const OwnedEntityPickerFieldSchema: FieldSchema_2< string, { - autoSelect?: boolean | undefined; defaultKind?: string | undefined; + autoSelect?: boolean | undefined; defaultNamespace?: string | false | undefined; catalogFilter?: | Record< diff --git a/plugins/user-settings/report-alpha.api.md b/plugins/user-settings/report-alpha.api.md index c99709d777..d1404bd371 100644 --- a/plugins/user-settings/report-alpha.api.md +++ b/plugins/user-settings/report-alpha.api.md @@ -45,6 +45,8 @@ const _default: OverridableFrontendPlugin< }; }>; 'page:user-settings': OverridableExtensionDefinition<{ + kind: 'page'; + name: undefined; config: { path: string | undefined; title: string | undefined; @@ -108,6 +110,44 @@ const _default: OverridableFrontendPlugin< internal: false; } >; + }; + params: { + path: string; + title?: string; + icon?: IconElement; + loader?: () => Promise; + routeRef?: RouteRef; + noHeader?: boolean; + }; + }>; + 'sub-page:user-settings/auth-providers': OverridableExtensionDefinition<{ + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: { providerSettings: ExtensionInput< ConfigurableExtensionDataRef, { @@ -117,15 +157,90 @@ const _default: OverridableFrontendPlugin< } >; }; - kind: 'page'; - name: undefined; + kind: 'sub-page'; + name: 'auth-providers'; params: { path: string; - title?: string; + title: string; icon?: IconElement; - loader?: () => Promise; + loader: () => Promise; + routeRef?: RouteRef; + }; + }>; + 'sub-page:user-settings/feature-flags': OverridableExtensionDefinition<{ + kind: 'sub-page'; + name: 'feature-flags'; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: {}; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; + routeRef?: RouteRef; + }; + }>; + 'sub-page:user-settings/general': OverridableExtensionDefinition<{ + kind: 'sub-page'; + name: 'general'; + config: { + path: string | undefined; + title: string | undefined; + }; + configInput: { + title?: string | undefined; + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef< + RouteRef, + 'core.routing.ref', + { + optional: true; + } + > + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + IconElement, + 'core.icon', + { + optional: true; + } + >; + inputs: {}; + params: { + path: string; + title: string; + icon?: IconElement; + loader: () => Promise; routeRef?: RouteRef; - noHeader?: boolean; }; }>; } @@ -177,10 +292,10 @@ export const userSettingsTranslationRef: TranslationRef< readonly 'themeToggle.select': 'Select {{theme}}'; readonly 'themeToggle.title': 'Theme'; readonly 'themeToggle.description': 'Change the theme mode'; + readonly 'themeToggle.selectAuto': 'Select Auto Theme'; readonly 'themeToggle.names.auto': 'Auto'; readonly 'themeToggle.names.dark': 'Dark'; readonly 'themeToggle.names.light': 'Light'; - readonly 'themeToggle.selectAuto': 'Select Auto Theme'; readonly 'signOutMenu.title': 'Sign Out'; readonly 'signOutMenu.moreIconTitle': 'more'; readonly 'pinToggle.title': 'Pin Sidebar'; @@ -197,10 +312,10 @@ export const userSettingsTranslationRef: TranslationRef< readonly 'emptyProviders.action.title': 'Open app-config.yaml and make the changes as highlighted below:'; readonly 'emptyProviders.action.readMoreButtonTitle': 'Read More'; readonly 'emptyProviders.description': 'You can add Authentication Providers to Backstage which allows you to use these providers to authenticate yourself.'; - readonly 'providerSettingsItem.title.signOut': 'Sign out from {{title}}'; readonly 'providerSettingsItem.title.signIn': 'Sign in to {{title}}'; - readonly 'providerSettingsItem.buttonTitle.signOut': 'Sign out'; + readonly 'providerSettingsItem.title.signOut': 'Sign out from {{title}}'; readonly 'providerSettingsItem.buttonTitle.signIn': 'Sign in'; + readonly 'providerSettingsItem.buttonTitle.signOut': 'Sign out'; readonly 'authProviders.title': 'Available Providers'; readonly 'defaultSettingsPage.tabsTitle.featureFlags': 'Feature Flags'; readonly 'defaultSettingsPage.tabsTitle.authProviders': 'Authentication Providers';