Migrating Backstage plugins to Cortex
This guide covers how to migrate Backstage plugins to Cortex.
Step 1: Create a Cortex plugin code repository
Follow the steps in Cortex's Creating a plugin documentation to create a Cortex plugin code repository.
Step 2: Configure the repository
In the repository, copy/paste (and merge, when appropriate) the Backstage source code into
src/.Favor the Cortex code if you encounter any conflicts.
Replace the Backstage
eslintconfig with the Cortex config.Note: Later in this process, you will need to run
eslint src --fixand may have to manually fix some lint settings.
Delete the remaining Backstage registration files, such as
plugin.tsandindex.ts.Do not delete
routes.tsas that will be removed in a later step.
Remove all
@backstage/package dependencies (except for@backstage/core-components) then iterate over them by running a command similar to the following:yarn remove @backstage/package-name @backstage/package-name-2.
Step 3: Switch the plugin to use react-router
react-routerIn this step, you will switch to using react-router directly instead of through the Backstage abstraction.
Replace Backstage route usage with
react-router/react-router-dom.Use `` from
react-router-domfor the provider.Remove
routes.ts.
Step 4: Replace the Backstage entity usage with Cortex entity usage
Note that there is no complete 1:1 mapping between the two data models. You will likely need to fetch additional data from the Cortex API as needed.
Step 5: Replace the data fetching layer
Replace Backstage API refs with simple classes or objects.
Use
fetch()directly instead of Backstage’suseApi.Remove
errorApiusage (Cortex has no equivalent).
Additional testing is recommended, as there will likely be some final clean-ups to ensure everything is working as expected.
Last updated
Was this helpful?