Merge pull request #4474 from backstage/rugvip/last-migrations

tech-radar, cost-insights, sentry: migrate to new composability API
This commit is contained in:
Patrik Oldsberg
2021-02-10 20:56:36 +01:00
committed by GitHub
16 changed files with 122 additions and 29 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-sentry': patch
---
Export the plugin instance as `sentryPlugin`. The plugin instance is still exported as `plugin` as well, but it will be removed in the future.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
Migrated to new composability API, exporting the plugin instance as `costInsightsPlugin`, the root `'/cost-insights'` page as `CostInsightsPage`, the `'/cost-insights/investigating-growth'` page as `CostInsightsProjectGrowthInstructionsPage`, and the `'/cost-insights/labeling-jobs'` page as `CostInsightsLabelDataflowInstructionsPage`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-tech-radar': patch
---
Migrated to new composability API, exporting the plugin instance as `techRadarPlugin` and the page as `TechRadarPage`.
+1 -1
View File
@@ -119,7 +119,7 @@ Plugins supply their APIs through the `apis` option of `createPlugin`, for
example:
```ts
export const plugin = createPlugin({
export const techdocsPlugin = createPlugin({
id: 'techdocs',
apis: [
createApiFactory({
+2 -2
View File
@@ -16,10 +16,10 @@
import { createDevApp } from '@backstage/dev-utils';
import { costInsightsApiRef } from '../src/api';
import { ExampleCostInsightsClient } from '../src/client';
import { plugin } from '../src/plugin';
import { costInsightsPlugin } from '../src/plugin';
createDevApp()
.registerPlugin(plugin)
.registerPlugin(costInsightsPlugin)
.registerApi({
api: costInsightsApiRef,
deps: {},
+7 -1
View File
@@ -14,7 +14,13 @@
* limitations under the License.
*/
export { plugin } from './plugin';
export {
costInsightsPlugin,
costInsightsPlugin as plugin,
CostInsightsPage,
CostInsightsProjectGrowthInstructionsPage,
CostInsightsLabelDataflowInstructionsPage,
} from './plugin';
export * from './client';
export * from './api';
export { ProjectGrowthAlert, UnlabeledDataflowAlert } from './alerts';
+2 -2
View File
@@ -14,10 +14,10 @@
* limitations under the License.
*/
import { plugin } from './plugin';
import { costInsightsPlugin } from './plugin';
describe('cost-insights', () => {
it('should export plugin', () => {
expect(plugin).toBeDefined();
expect(costInsightsPlugin).toBeDefined();
});
});
+51 -8
View File
@@ -14,10 +14,14 @@
* limitations under the License.
*/
import { createPlugin, createRouteRef } from '@backstage/core';
import { CostInsightsPage } from './components/CostInsightsPage';
import { ProjectGrowthInstructionsPage } from './components/ProjectGrowthInstructionsPage';
import { LabelDataflowInstructionsPage } from './components/LabelDataflowInstructionsPage';
import {
createPlugin,
createRouteRef,
createRoutableExtension,
} from '@backstage/core';
import { CostInsightsPage as CostInsightsPageComponent } from './components/CostInsightsPage';
import { ProjectGrowthInstructionsPage as ProjectGrowthInstructionsPageComponent } from './components/ProjectGrowthInstructionsPage';
import { LabelDataflowInstructionsPage as LabelDataflowInstructionsPageComponent } from './components/LabelDataflowInstructionsPage';
export const rootRouteRef = createRouteRef({
path: '/cost-insights',
@@ -34,12 +38,51 @@ export const unlabeledDataflowAlertRef = createRouteRef({
title: 'Labeling Dataflow Jobs',
});
export const plugin = createPlugin({
export const costInsightsPlugin = createPlugin({
id: 'cost-insights',
register({ router, featureFlags }) {
router.addRoute(rootRouteRef, CostInsightsPage);
router.addRoute(projectGrowthAlertRef, ProjectGrowthInstructionsPage);
router.addRoute(unlabeledDataflowAlertRef, LabelDataflowInstructionsPage);
router.addRoute(rootRouteRef, CostInsightsPageComponent);
router.addRoute(
projectGrowthAlertRef,
ProjectGrowthInstructionsPageComponent,
);
router.addRoute(
unlabeledDataflowAlertRef,
LabelDataflowInstructionsPageComponent,
);
featureFlags.register('cost-insights-currencies');
},
routes: {
root: rootRouteRef,
growthAlerts: projectGrowthAlertRef,
unlabeledDataflowAlerts: unlabeledDataflowAlertRef,
},
});
export const CostInsightsPage = costInsightsPlugin.provide(
createRoutableExtension({
component: () =>
import('./components/CostInsightsPage').then(m => m.CostInsightsPage),
mountPoint: rootRouteRef,
}),
);
export const CostInsightsProjectGrowthInstructionsPage = costInsightsPlugin.provide(
createRoutableExtension({
component: () =>
import('./components/ProjectGrowthInstructionsPage').then(
m => m.ProjectGrowthInstructionsPage,
),
mountPoint: projectGrowthAlertRef,
}),
);
export const CostInsightsLabelDataflowInstructionsPage = costInsightsPlugin.provide(
createRoutableExtension({
component: () =>
import('./components/LabelDataflowInstructionsPage').then(
m => m.LabelDataflowInstructionsPage,
),
mountPoint: unlabeledDataflowAlertRef,
}),
);
+3 -3
View File
@@ -20,9 +20,9 @@ import {
} from '@backstage/core';
import { useEntity } from '@backstage/plugin-catalog-react';
import React from 'react';
import { plugin, rootRouteRef } from './plugin';
import { sentryPlugin, rootRouteRef } from './plugin';
export const EntitySentryContent = plugin.provide(
export const EntitySentryContent = sentryPlugin.provide(
createRoutableExtension({
mountPoint: rootRouteRef,
component: () =>
@@ -38,7 +38,7 @@ export const EntitySentryContent = plugin.provide(
}),
);
export const EntitySentryCard = plugin.provide(
export const EntitySentryCard = sentryPlugin.provide(
createComponentExtension({
component: {
lazy: () =>
+1 -1
View File
@@ -16,6 +16,6 @@
export * from './api';
export * from './components';
export { plugin } from './plugin';
export { sentryPlugin, sentryPlugin as plugin } from './plugin';
export { EntitySentryCard, EntitySentryContent } from './extensions';
export { Router } from './components/Router';
+2 -2
View File
@@ -14,10 +14,10 @@
* limitations under the License.
*/
import { plugin } from './plugin';
import { sentryPlugin } from './plugin';
describe('sentry', () => {
it('should export plugin', () => {
expect(plugin).toBeDefined();
expect(sentryPlugin).toBeDefined();
});
});
+1 -1
View File
@@ -28,7 +28,7 @@ export const rootRouteRef = createRouteRef({
title: 'Sentry',
});
export const plugin = createPlugin({
export const sentryPlugin = createPlugin({
id: 'sentry',
apis: [
createApiFactory({
+9 -2
View File
@@ -14,7 +14,14 @@
* limitations under the License.
*/
import React from 'react';
import { createDevApp } from '@backstage/dev-utils';
import { plugin } from '../src';
import { techRadarPlugin, TechRadarPage } from '../src';
createDevApp().registerPlugin(plugin).render();
createDevApp()
.registerPlugin(techRadarPlugin)
.addPage({
title: 'Tech Radar',
element: <TechRadarPage width={1280} height={720} />,
})
.render();
+5 -1
View File
@@ -14,7 +14,11 @@
* limitations under the License.
*/
export { plugin } from './plugin';
export {
techRadarPlugin,
techRadarPlugin as plugin,
TechRadarPage,
} from './plugin';
export { RadarPage as Router } from './components/RadarPage';
+2 -2
View File
@@ -14,10 +14,10 @@
* limitations under the License.
*/
import { plugin } from './plugin';
import { techRadarPlugin } from './plugin';
describe('tech-radar', () => {
it('should export plugin', () => {
expect(plugin).toBeDefined();
expect(techRadarPlugin).toBeDefined();
});
});
+21 -3
View File
@@ -14,8 +14,26 @@
* limitations under the License.
*/
import { createPlugin } from '@backstage/core';
import {
createPlugin,
createRouteRef,
createRoutableExtension,
} from '@backstage/core';
export const plugin = createPlugin({
id: 'tech-radar',
const rootRouteRef = createRouteRef({
title: 'Tech Radar',
});
export const techRadarPlugin = createPlugin({
id: 'tech-radar',
routes: {
root: rootRouteRef,
},
});
export const TechRadarPage = techRadarPlugin.provide(
createRoutableExtension({
component: () => import('./components/RadarPage').then(m => m.RadarPage),
mountPoint: rootRouteRef,
}),
);