App Built-in Extensions
Built-in extensions are default app extensions that are always installed when you create a Backstage app.
Disable built-in extensions
All built-in extensions can be disabled in the same way as you disable any other extension:
extensions:
# Disabling the built-in app root alert element
- app-root-element:app/alert-display: false
Be careful when disabling built-in extensions, as there may be other extensions depending on their existence. For example, the built-in "alert display" extension displays messages retrieved via AlertApi and disabling this extension will cause the application to no longer display these messages unless you install another extension that displays messages from AlertApi.
Override built-in extensions
You can override any built-in extension whenever their customizations, whether through configuration or input, do not meet a use case for your Backstage instance. Check out this documentation on how to override application extensions.
Be aware there could be some implementation requirements to properly override an built-in extension, such as using same apis and do not remove inputs or configurations otherwise you can cause a side effect in other parts of the system that expects same minimal behavior.
Default built-in extensions
App
This extension is the first extension attached to the extension tree. It is responsible for receiving the application's root element and other Frontend framework inputs.
Inputs
| Name | Description | Type | Optional | Default | Extension creator |
|---|---|---|---|---|---|
| root | The app root element. | coreExtensionData.reactElement | false | The App/Root extension output. | No creator available, configure or override the App/Root extension. |
| apis | The app apis factories. | createApiExtension.factoryDataRef | false | See default apis. | createApiExtension |
| themes | The app themes list. | createThemeExtension.themeDataRef | false | See default themes. | createThemeExtension |
| components | The app components list. | SwappableComponentBlueprint.dataRefs.component | false | See default components. | SwappableComponentBlueprint |
| translations | The app translations list. | createTranslationExtension.translationDataRef | false | - | createTranslationExtension |
| icons | The app icons list. | IconBundleBlueprint.dataRefs.icons | true | - | IconBundleBlueprint |
Default theme extensions
Extensions that provides default theme inputs for the App extension.
| kind | namespace | name | id |
|---|---|---|---|
| theme | app | light | theme:app/light |
| theme | app | dark | theme:app/dark |
Default components extensions
Extensions that provides default components inputs for the App extension.
| kind | namespace | name | id |
|---|---|---|---|
| components | app | core-progress | components:app/core-progress |
| components | app | core-not-found-error-page | components:app/core-not-found-error-page |
| components | app | core-error-display | components:app/core-error-display |
Default apis extensions
Extensions that provides default apis inputs for the App extension.
| kind | namespace | name | id |
|---|---|---|---|
| api | core.discovery | - | api:core.discovery |
| api | core.alert | - | api:core.alert |
| api | core.analytics | - | api:core.analytics |
| api | core.error | - | api:core.error |
| api | core.storage | - | api:core.storage |
| api | core.fetch | - | api:core.fetch |
| api | core.oauthrequest | - | api:core.oauthrequest |
| api | core.auth.google | - | api:core.auth.google |
| api | core.auth.microsoft | - | api:core.auth.microsoft |
| api | core.auth.github | - | api:core.auth.github |
| api | core.auth.okta | - | api:core.auth.okta |
| api | core.auth.gitlab | - | api:core.auth.gitlab |
| api | core.auth.onelogin | - | api:core.auth.onelogin |
| api | core.auth.bitbucket | - | api:core.auth.bitbucket |
| api | core.auth.bitbucket-server | - | api:core.auth.bitbucket-server |
| api | core.auth.atlassian | - | api:core.auth.atlassian |
| api | plugin.permission.api | - | api:plugin.permission.api |
App root
This is the extension that creates the app root element, so it renders root level components such as app router and layout.
Inputs
| Name | Description | Requirements | Optional | Default | Extension creator |
|---|---|---|---|---|---|
| router | A React component that should manager the app routes context. | It must be one router component or a custom component compatible with the 'react-router' library. | true | BrowserRouter | createRouterExtension |
| signInPage | A React component that should render the app sign-in page. | Should call the onSignInSuccess prop when the user has been successfully authorized, otherwise the user will not be correctly redirected to the application home page. | true | The default AppRoot extension does not use a default component for this input, it bypasses the user authentication check and always renders all routes when a login page is not installed. | createSignInPageExtension |
| children | A React component that renders the app sidebar and main content in a particular layout. | - | false | The App/Layout extension output. | No creator available, configure or override the App/Layout extension. |
| elements | React elements to be rendered outside of the app layout, such as shared popups. | - | false | See default elements. | createAppRootElementExtension |
| wrappers | React components that should wrap the root element. | - | true | - | createAppRootWrapperExtension |