diff --git a/.changeset/tasty-colts-hug.md b/.changeset/tasty-colts-hug.md index 040b24d3dc..d5ee029aaf 100644 --- a/.changeset/tasty-colts-hug.md +++ b/.changeset/tasty-colts-hug.md @@ -1,7 +1,7 @@ --- -'@backstage/plugin-azure': minor -'@backstage/plugin-azure-backend': minor -'@backstage/plugin-azure-common': minor +'@backstage/plugin-azure-functions': minor +'@backstage/plugin-azure-functions-backend': minor +'@backstage/plugin-azure-functions-common': minor --- -Generic azure plugin based on an annotation supplied by a given entity. +Basic Azure Functions support for a given entity. View the current status of the function app, quickly jump to Function's Overview page, or Log Stream page. diff --git a/microsite/data/plugins/azure.yaml b/microsite/data/plugins/azure-functions.yaml similarity index 66% rename from microsite/data/plugins/azure.yaml rename to microsite/data/plugins/azure-functions.yaml index f2bc181264..bc5b003726 100644 --- a/microsite/data/plugins/azure.yaml +++ b/microsite/data/plugins/azure-functions.yaml @@ -4,6 +4,6 @@ author: FRISS authorUrl: https://friss.com category: Infrastructure description: View related Azure information for your components in Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/azure -iconUrl: img/azure-icon.svg -npmPackageName: '@backstage/plugin-azure' +documentation: https://github.com/backstage/backstage/tree/master/plugins/azure-functions +iconUrl: img/azurefunctions-icon.svg +npmPackageName: '@backstage/plugin-azure-functions' diff --git a/packages/app/package.json b/packages/app/package.json index f8f1d63d53..ae8873a507 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -18,8 +18,8 @@ "@backstage/plugin-airbrake": "^0.3.9", "@backstage/plugin-apache-airflow": "^0.2.2", "@backstage/plugin-api-docs": "^0.8.9", - "@backstage/plugin-azure": "^0.0.0", "@backstage/plugin-azure-devops": "^0.2.0", + "@backstage/plugin-azure-functions": "^0.0.0", "@backstage/plugin-badges": "^0.2.33", "@backstage/plugin-catalog-common": "^1.0.6", "@backstage/plugin-catalog-graph": "^0.2.21", diff --git a/packages/backend/package.json b/packages/backend/package.json index 6228f4ce88..4dfe6747a4 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -35,8 +35,8 @@ "@backstage/plugin-app-backend": "^0.3.36", "@backstage/plugin-auth-backend": "^0.16.0", "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-azure-backend": "^0.0.0", "@backstage/plugin-azure-devops-backend": "^0.3.15", + "@backstage/plugin-azure-functions-backend": "^0.0.0", "@backstage/plugin-badges-backend": "^0.1.30", "@backstage/plugin-catalog-backend": "^1.4.0", "@backstage/plugin-code-coverage-backend": "^0.2.2", diff --git a/plugins/azure-backend/.eslintrc.js b/plugins/azure-functions-backend/.eslintrc.js similarity index 100% rename from plugins/azure-backend/.eslintrc.js rename to plugins/azure-functions-backend/.eslintrc.js diff --git a/plugins/azure-backend/README.md b/plugins/azure-functions-backend/README.md similarity index 92% rename from plugins/azure-backend/README.md rename to plugins/azure-functions-backend/README.md index af9de5ff3c..dc898ccc52 100644 --- a/plugins/azure-backend/README.md +++ b/plugins/azure-functions-backend/README.md @@ -33,11 +33,11 @@ Configuration Details: Here's how to get the backend plugin up and running: -1. First we need to add the `@backstage/plugin-azure-backend` package to your backend: +1. First we need to add the `@backstage/plugin-azure-functions-backend` package to your backend: ```sh # From the Backstage root directory - yarn add --cwd packages/backend @backstage/plugin-azure-backend + yarn add --cwd packages/backend @backstage/plugin-azure-functions-backend ``` 2. Then we will create a new file named `packages/backend/src/plugins/azure.ts`, and add the following to it: @@ -46,7 +46,7 @@ Here's how to get the backend plugin up and running: import { createRouter, AzureSitesApi, - } from '@backstage/plugin-azure-backend'; + } from '@backstage/plugin-azure-functions-backend'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; diff --git a/plugins/azure-backend/api-report.md b/plugins/azure-functions-backend/api-report.md similarity index 73% rename from plugins/azure-backend/api-report.md rename to plugins/azure-functions-backend/api-report.md index 85d63acb3b..b8d8871595 100644 --- a/plugins/azure-backend/api-report.md +++ b/plugins/azure-functions-backend/api-report.md @@ -1,15 +1,16 @@ -## API Report File for "@backstage/plugin-azure-backend" +## API Report File for "@backstage/plugin-azure-functions-backend" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { AzureSiteListRequest } from '@backstage/plugin-azure-functions-common'; +import { AzureSiteListResponse } from '@backstage/plugin-azure-functions-common'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; -import { SiteList } from '@backstage/plugin-azure-common'; // @public (undocumented) -export class AzureConfig { +export class AzureFunctionsConfig { constructor( domain: string, tenantId: string, @@ -24,7 +25,7 @@ export class AzureConfig { // (undocumented) readonly domain: string; // (undocumented) - static fromConfig(config: Config): AzureConfig; + static fromConfig(config: Config): AzureFunctionsConfig; // (undocumented) readonly subscriptions?: string[] | undefined; // (undocumented) @@ -33,11 +34,11 @@ export class AzureConfig { // @public (undocumented) export class AzureSitesApi { - constructor(config: AzureConfig); + constructor(config: AzureFunctionsConfig); // (undocumented) static fromConfig(config: Config): AzureSitesApi; // (undocumented) - list({ name }: { name: string }): Promise; + list(request: AzureSiteListRequest): Promise; } // @public (undocumented) diff --git a/plugins/azure-backend/package.json b/plugins/azure-functions-backend/package.json similarity index 88% rename from plugins/azure-backend/package.json rename to plugins/azure-functions-backend/package.json index 678b855d47..2cef855e2f 100644 --- a/plugins/azure-backend/package.json +++ b/plugins/azure-functions-backend/package.json @@ -1,5 +1,5 @@ { - "name": "@backstage/plugin-azure-backend", + "name": "@backstage/plugin-azure-functions-backend", "version": "0.0.0", "main": "src/index.ts", "types": "src/index.ts", @@ -17,7 +17,7 @@ "repository": { "type": "git", "url": "https://github.com/backstage/backstage", - "directory": "plugins/azure-backend" + "directory": "plugins/azure-functions-backend" }, "keywords": [ "backstage", @@ -37,7 +37,7 @@ "@azure/identity": "^2.1.0", "@backstage/backend-common": "^0.15.1", "@backstage/config": "^1.0.2", - "@backstage/plugin-azure-common": "^0.0.0", + "@backstage/plugin-azure-functions-common": "^0.0.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", diff --git a/plugins/azure-backend/schema.d.ts b/plugins/azure-functions-backend/schema.d.ts similarity index 97% rename from plugins/azure-backend/schema.d.ts rename to plugins/azure-functions-backend/schema.d.ts index 9db9a99252..b94590ddb5 100644 --- a/plugins/azure-backend/schema.d.ts +++ b/plugins/azure-functions-backend/schema.d.ts @@ -15,7 +15,7 @@ */ export interface Config { - azure: { + azureFunctions: { /** @visibility backend */ domain: string; /** @visibility backend */ diff --git a/plugins/azure-backend/src/api/AzureSitesApi.ts b/plugins/azure-functions-backend/src/api/AzureSitesApi.ts similarity index 81% rename from plugins/azure-backend/src/api/AzureSitesApi.ts rename to plugins/azure-functions-backend/src/api/AzureSitesApi.ts index 3c307c5d75..e00c49e4d3 100644 --- a/plugins/azure-backend/src/api/AzureSitesApi.ts +++ b/plugins/azure-functions-backend/src/api/AzureSitesApi.ts @@ -20,8 +20,12 @@ import { ClientSecretCredential, } from '@azure/identity'; import { ResourceGraphClient } from '@azure/arm-resourcegraph'; -import { Site, SiteList } from '@backstage/plugin-azure-common'; -import { AzureConfig } from '../config'; +import { + AzureSite, + AzureSiteListRequest, + AzureSiteListResponse, +} from '@backstage/plugin-azure-functions-common'; +import { AzureFunctionsConfig } from '../config'; /** @public */ export class AzureSitesApi { @@ -29,7 +33,7 @@ export class AzureSitesApi { `https://portal.azure.com/#@${domain}/resource`; private readonly client: ResourceGraphClient; - constructor(private readonly config: AzureConfig) { + constructor(private readonly config: AzureFunctionsConfig) { const creds = config.clientId && config.clientSecret ? new ClientSecretCredential( @@ -43,14 +47,14 @@ export class AzureSitesApi { } static fromConfig(config: Config): AzureSitesApi { - return new AzureSitesApi(AzureConfig.fromConfig(config)); + return new AzureSitesApi(AzureFunctionsConfig.fromConfig(config)); } - async list({ name }: { name: string }): Promise { - const items: Site[] = []; + async list(request: AzureSiteListRequest): Promise { + const items: AzureSite[] = []; try { const result = await this.client.resources({ - query: `resources | where type == 'microsoft.web/sites' | where name contains '${name}'`, + query: `resources | where type == 'microsoft.web/sites' | where name contains '${request.name}'`, subscriptions: this.config.subscriptions, }); for (const v of result.data) { @@ -70,8 +74,8 @@ export class AzureSitesApi { tags: v.properties.tags!, }); } - } catch (ex) { - console.log(ex); + } catch (ex: any) { + throw ex; } return { items: items }; } diff --git a/plugins/azure-backend/src/api/index.ts b/plugins/azure-functions-backend/src/api/index.ts similarity index 100% rename from plugins/azure-backend/src/api/index.ts rename to plugins/azure-functions-backend/src/api/index.ts diff --git a/plugins/azure-backend/src/config.ts b/plugins/azure-functions-backend/src/config.ts similarity index 86% rename from plugins/azure-backend/src/config.ts rename to plugins/azure-functions-backend/src/config.ts index 48e15ac54b..70301a17fa 100644 --- a/plugins/azure-backend/src/config.ts +++ b/plugins/azure-functions-backend/src/config.ts @@ -17,7 +17,7 @@ import { Config } from '@backstage/config'; /** @public */ -export class AzureConfig { +export class AzureFunctionsConfig { constructor( public readonly domain: string, public readonly tenantId: string, @@ -26,10 +26,10 @@ export class AzureConfig { public readonly clientSecret?: string, ) {} - static fromConfig(config: Config): AzureConfig { - const azConfig = config.getConfig('azure'); + static fromConfig(config: Config): AzureFunctionsConfig { + const azConfig = config.getConfig('azureFunctions'); - return new AzureConfig( + return new AzureFunctionsConfig( azConfig.getString('domain'), azConfig.getString('tenantId'), azConfig diff --git a/plugins/azure-backend/src/index.ts b/plugins/azure-functions-backend/src/index.ts similarity index 100% rename from plugins/azure-backend/src/index.ts rename to plugins/azure-functions-backend/src/index.ts diff --git a/plugins/azure-backend/src/run.ts b/plugins/azure-functions-backend/src/run.ts similarity index 100% rename from plugins/azure-backend/src/run.ts rename to plugins/azure-functions-backend/src/run.ts diff --git a/plugins/azure-backend/src/service/router.ts b/plugins/azure-functions-backend/src/service/router.ts similarity index 100% rename from plugins/azure-backend/src/service/router.ts rename to plugins/azure-functions-backend/src/service/router.ts diff --git a/plugins/azure-backend/src/service/standaloneServer.ts b/plugins/azure-functions-backend/src/service/standaloneServer.ts similarity index 100% rename from plugins/azure-backend/src/service/standaloneServer.ts rename to plugins/azure-functions-backend/src/service/standaloneServer.ts diff --git a/plugins/azure-backend/src/setupTests.ts b/plugins/azure-functions-backend/src/setupTests.ts similarity index 100% rename from plugins/azure-backend/src/setupTests.ts rename to plugins/azure-functions-backend/src/setupTests.ts diff --git a/plugins/azure-common/.eslintrc.js b/plugins/azure-functions-common/.eslintrc.js similarity index 100% rename from plugins/azure-common/.eslintrc.js rename to plugins/azure-functions-common/.eslintrc.js diff --git a/plugins/azure-common/api-report.md b/plugins/azure-functions-common/api-report.md similarity index 65% rename from plugins/azure-common/api-report.md rename to plugins/azure-functions-common/api-report.md index fece374b84..12fed0f08c 100644 --- a/plugins/azure-common/api-report.md +++ b/plugins/azure-functions-common/api-report.md @@ -1,10 +1,10 @@ -## API Report File for "@backstage/plugin-azure-common" +## API Report File for "@backstage/plugin-azure-functions-common" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts // @public (undocumented) -export type Site = { +export type AzureSite = { href: string; logstreamHref: string; name: string; @@ -19,8 +19,13 @@ export type Site = { }; // @public (undocumented) -export type SiteList = { - items: Site[]; +export type AzureSiteListRequest = { + name: string; +}; + +// @public (undocumented) +export type AzureSiteListResponse = { + items: AzureSite[]; }; // (No @packageDocumentation comment for this package) diff --git a/plugins/azure-common/package.json b/plugins/azure-functions-common/package.json similarity index 89% rename from plugins/azure-common/package.json rename to plugins/azure-functions-common/package.json index cbe4afa840..a3db83cd64 100644 --- a/plugins/azure-common/package.json +++ b/plugins/azure-functions-common/package.json @@ -1,5 +1,5 @@ { - "name": "@backstage/plugin-azure-common", + "name": "@backstage/plugin-azure-functions-common", "description": "Common functionalities for the azure plugin", "version": "0.0.0", "main": "src/index.ts", @@ -18,7 +18,7 @@ "repository": { "type": "git", "url": "https://github.com/backstage/backstage", - "directory": "plugins/azure-common" + "directory": "plugins/azure-functions-common" }, "keywords": [ "backstage" diff --git a/plugins/azure-common/src/index.ts b/plugins/azure-functions-common/src/index.ts similarity index 100% rename from plugins/azure-common/src/index.ts rename to plugins/azure-functions-common/src/index.ts diff --git a/plugins/azure-common/src/types.ts b/plugins/azure-functions-common/src/types.ts similarity index 84% rename from plugins/azure-common/src/types.ts rename to plugins/azure-functions-common/src/types.ts index 3de98748d3..5364b43421 100644 --- a/plugins/azure-common/src/types.ts +++ b/plugins/azure-functions-common/src/types.ts @@ -15,7 +15,7 @@ */ /** @public */ -export type Site = { +export type AzureSite = { href: string; logstreamHref: string; name: string; @@ -30,6 +30,11 @@ export type Site = { }; /** @public */ -export type SiteList = { - items: Site[]; +export type AzureSiteListRequest = { + name: string; +}; + +/** @public */ +export type AzureSiteListResponse = { + items: AzureSite[]; }; diff --git a/plugins/azure/.eslintrc.js b/plugins/azure-functions/.eslintrc.js similarity index 100% rename from plugins/azure/.eslintrc.js rename to plugins/azure-functions/.eslintrc.js diff --git a/plugins/azure/README.md b/plugins/azure-functions/README.md similarity index 94% rename from plugins/azure/README.md rename to plugins/azure-functions/README.md index 00d22aacd5..c4e59e9116 100644 --- a/plugins/azure/README.md +++ b/plugins/azure-functions/README.md @@ -47,14 +47,14 @@ azure.com/microsoft.web/sites: func-testapp 1. Install the plugin in the `packages/app` directory ```sh -yarn add @backstage/plugin-azure +yarn add @backstage/plugin-azure-functions ``` 2. Add widget component to your Backstage instance: ```ts // In packages/app/src/components/catalog/EntityPage.tsx -import { EntityAzureSitesOverviewWidget, isAzureWebSiteNameAvailable } from '@backstage/plugin-azure'; +import { EntityAzureSitesOverviewWidget, isAzureWebSiteNameAvailable } from '@backstage/plugin-azure-functions'; ... diff --git a/plugins/azure/api-report.md b/plugins/azure-functions/api-report.md similarity index 79% rename from plugins/azure/api-report.md rename to plugins/azure-functions/api-report.md index a3d6381c09..bed1c36c4d 100644 --- a/plugins/azure/api-report.md +++ b/plugins/azure-functions/api-report.md @@ -1,4 +1,4 @@ -## API Report File for "@backstage/plugin-azure" +## API Report File for "@backstage/plugin-azure-functions" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). @@ -6,19 +6,20 @@ /// import { ApiRef } from '@backstage/core-plugin-api'; +import { AzureSiteListRequest } from '@backstage/plugin-azure-functions-common'; +import { AzureSiteListResponse } from '@backstage/plugin-azure-functions-common'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { IdentityApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; -import { SiteList } from '@backstage/plugin-azure-common'; // @public (undocumented) export const azureSiteApiRef: ApiRef; // @public (undocumented) export type AzureSitesApi = { - list: ({ name }: { name: string }) => Promise; + list: (request: AzureSiteListRequest) => Promise; }; // @public (undocumented) @@ -28,7 +29,7 @@ export class AzureSitesApiBackendClient implements AzureSitesApi { identityApi: IdentityApi; }); // (undocumented) - list({ name }: { name: string }): Promise; + list(request: AzureSiteListRequest): Promise; } // @public (undocumented) diff --git a/plugins/azure/dev/index.tsx b/plugins/azure-functions/dev/index.tsx similarity index 100% rename from plugins/azure/dev/index.tsx rename to plugins/azure-functions/dev/index.tsx diff --git a/plugins/azure/docs/functions-table.png b/plugins/azure-functions/docs/functions-table.png similarity index 100% rename from plugins/azure/docs/functions-table.png rename to plugins/azure-functions/docs/functions-table.png diff --git a/plugins/azure/package.json b/plugins/azure-functions/package.json similarity index 91% rename from plugins/azure/package.json rename to plugins/azure-functions/package.json index f37371ff3c..119d66f838 100644 --- a/plugins/azure/package.json +++ b/plugins/azure-functions/package.json @@ -1,5 +1,5 @@ { - "name": "@backstage/plugin-azure", + "name": "@backstage/plugin-azure-functions", "version": "0.0.0", "main": "src/index.ts", "types": "src/index.ts", @@ -17,7 +17,7 @@ "repository": { "type": "git", "url": "https://github.com/backstage/backstage", - "directory": "plugins/azure" + "directory": "plugins/azure-functions" }, "keywords": [ "backstage", @@ -36,7 +36,7 @@ "@backstage/catalog-model": "^1.1.1", "@backstage/core-components": "^0.11.1", "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-azure-common": "^0.0.0", + "@backstage/plugin-azure-functions-common": "^0.0.0", "@backstage/plugin-catalog-react": "^1.1.4", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/azure/src/api/AzureSitesApi.ts b/plugins/azure-functions/src/api/AzureSitesApi.ts similarity index 81% rename from plugins/azure/src/api/AzureSitesApi.ts rename to plugins/azure-functions/src/api/AzureSitesApi.ts index 86751a4fa2..cc2700fe82 100644 --- a/plugins/azure/src/api/AzureSitesApi.ts +++ b/plugins/azure-functions/src/api/AzureSitesApi.ts @@ -15,7 +15,10 @@ */ import { createApiRef } from '@backstage/core-plugin-api'; -import { SiteList } from '@backstage/plugin-azure-common'; +import { + AzureSiteListRequest, + AzureSiteListResponse, +} from '@backstage/plugin-azure-functions-common'; /** @public */ export const azureSiteApiRef = createApiRef({ @@ -24,5 +27,5 @@ export const azureSiteApiRef = createApiRef({ /** @public */ export type AzureSitesApi = { - list: ({ name }: { name: string }) => Promise; + list: (request: AzureSiteListRequest) => Promise; }; diff --git a/plugins/azure/src/api/AzureSitesApiBackendClient.ts b/plugins/azure-functions/src/api/AzureSitesApiBackendClient.ts similarity index 85% rename from plugins/azure/src/api/AzureSitesApiBackendClient.ts rename to plugins/azure-functions/src/api/AzureSitesApiBackendClient.ts index 27e55e4d31..7fcee74341 100644 --- a/plugins/azure/src/api/AzureSitesApiBackendClient.ts +++ b/plugins/azure-functions/src/api/AzureSitesApiBackendClient.ts @@ -15,7 +15,10 @@ */ import { AzureSitesApi } from './AzureSitesApi'; -import { SiteList } from '@backstage/plugin-azure-common'; +import { + AzureSiteListRequest, + AzureSiteListResponse, +} from '@backstage/plugin-azure-functions-common'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; /** @public */ @@ -30,9 +33,11 @@ export class AzureSitesApiBackendClient implements AzureSitesApi { this.identityApi = options.identityApi; } - async list({ name }: { name: string }): Promise { + async list(request: AzureSiteListRequest): Promise { try { - const url = `${await this.discoveryApi.getBaseUrl('azure')}/list/${name}`; + const url = `${await this.discoveryApi.getBaseUrl('azure')}/list/${ + request.name + }`; const { token: accessToken } = await this.identityApi.getCredentials(); const response = await fetch(url, { method: 'GET', @@ -43,7 +48,7 @@ export class AzureSitesApiBackendClient implements AzureSitesApi { }); return await response.json(); } catch (e: any) { - throw new Error('MissingAzureBackendException'); + throw new Error(e); } } } diff --git a/plugins/azure/src/api/index.ts b/plugins/azure-functions/src/api/index.ts similarity index 100% rename from plugins/azure/src/api/index.ts rename to plugins/azure-functions/src/api/index.ts diff --git a/plugins/azure/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx b/plugins/azure-functions/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx similarity index 100% rename from plugins/azure/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx rename to plugins/azure-functions/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx diff --git a/plugins/azure/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.test.tsx b/plugins/azure-functions/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.test.tsx similarity index 100% rename from plugins/azure/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.test.tsx rename to plugins/azure-functions/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.test.tsx diff --git a/plugins/azure/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx b/plugins/azure-functions/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx similarity index 83% rename from plugins/azure/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx rename to plugins/azure-functions/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx index 0b07c5aaaa..c26fb6bc55 100644 --- a/plugins/azure/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx +++ b/plugins/azure-functions/src/components/AzureSitesOverviewTableComponent/AzureSitesOverviewTable.tsx @@ -16,7 +16,7 @@ import React from 'react'; import { Box, Card, Link, LinearProgress } from '@material-ui/core'; -import { Site } from '@backstage/plugin-azure-common'; +import { AzureSite } from '@backstage/plugin-azure-functions-common'; import { Table, TableColumn } from '@backstage/core-components'; import FlashOnIcon from '@material-ui/icons/FlashOn'; import { DateTime } from 'luxon'; @@ -48,15 +48,15 @@ const State = ({ value }: { value: States }) => { }; type TableProps = { - data: Site[]; + data: AzureSite[]; loading: boolean; }; -const DEFAULT_COLUMNS: TableColumn[] = [ +const DEFAULT_COLUMNS: TableColumn[] = [ { title: 'name', highlight: true, - render: (func: Site) => { + render: (func: AzureSite) => { return ( {func.name} @@ -66,19 +66,19 @@ const DEFAULT_COLUMNS: TableColumn[] = [ }, { title: 'kind', - render: (func: Site) => func.kind ?? 'unknown', + render: (func: AzureSite) => func.kind ?? 'unknown', }, { title: 'location', - render: (func: Site) => func.location ?? 'unknown', + render: (func: AzureSite) => func.location ?? 'unknown', }, { title: 'status', - render: (func: Site) => , + render: (func: AzureSite) => , }, { title: 'last modified', - render: (func: Site) => + render: (func: AzureSite) => DateTime.fromISO(func.lastModifiedDate).toLocaleString( DateTime.DATETIME_MED, ), @@ -86,7 +86,7 @@ const DEFAULT_COLUMNS: TableColumn[] = [ { title: 'logs', align: 'right', - render: (func: Site) => { + render: (func: AzureSite) => { return ( View Logs @@ -98,7 +98,7 @@ const DEFAULT_COLUMNS: TableColumn[] = [ /** @public */ export const AzureSitesOverviewTable = ({ data, loading }: TableProps) => { - const columns: TableColumn[] = [...DEFAULT_COLUMNS]; + const columns: TableColumn[] = [...DEFAULT_COLUMNS]; const tableStyle = { minWidth: '0', width: '100%', diff --git a/plugins/azure/src/hooks/useServiceEntityAnnotations.ts b/plugins/azure-functions/src/hooks/useServiceEntityAnnotations.ts similarity index 100% rename from plugins/azure/src/hooks/useServiceEntityAnnotations.ts rename to plugins/azure-functions/src/hooks/useServiceEntityAnnotations.ts diff --git a/plugins/azure/src/hooks/useSites.ts b/plugins/azure-functions/src/hooks/useSites.ts similarity index 81% rename from plugins/azure/src/hooks/useSites.ts rename to plugins/azure-functions/src/hooks/useSites.ts index c734b0abca..f321fca3e1 100644 --- a/plugins/azure/src/hooks/useSites.ts +++ b/plugins/azure-functions/src/hooks/useSites.ts @@ -16,7 +16,7 @@ import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { useApi, errorApiRef } from '@backstage/core-plugin-api'; -import { SiteList } from '@backstage/plugin-azure-common'; +import { AzureSiteListResponse } from '@backstage/plugin-azure-functions-common'; import { azureSiteApiRef } from '../api'; import { useCallback } from 'react'; @@ -37,15 +37,18 @@ export function useSites({ name }: { name: string }) { value: data, error, retry, - } = useAsyncRetry(async () => { + } = useAsyncRetry(async () => { try { const sites = await list(); return sites; } catch (e) { if (e instanceof Error) { - if (e?.message === 'MissingAzureBackendException') { - errorApi.post(new Error('Please add azure-backend plugin')); - return null; + if (e?.message === 'AbortError') { + errorApi.post( + new Error( + 'Timeout reaching backend plugin, please add azure-backend plugin', + ), + ); } errorApi.post(e); } diff --git a/plugins/azure/src/index.ts b/plugins/azure-functions/src/index.ts similarity index 100% rename from plugins/azure/src/index.ts rename to plugins/azure-functions/src/index.ts diff --git a/plugins/azure/src/mocks/mocks.ts b/plugins/azure-functions/src/mocks/mocks.ts similarity index 94% rename from plugins/azure/src/mocks/mocks.ts rename to plugins/azure-functions/src/mocks/mocks.ts index 155a0f2494..1af6fa86e3 100644 --- a/plugins/azure/src/mocks/mocks.ts +++ b/plugins/azure-functions/src/mocks/mocks.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Site } from '@backstage/plugin-azure-common'; +import { AzureSite } from '@backstage/plugin-azure-functions-common'; export const entityMock = { metadata: { @@ -36,7 +36,7 @@ export const entityMock = { }; // https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Web/sites/{{functionsName}}?api-version=2022-03-01 -export const siteMock: Site = { +export const siteMock: AzureSite = { name: 'func-mock', kind: 'functionapp', resourceGroup: 'mock-resourcegroup', diff --git a/plugins/azure/src/plugin.test.ts b/plugins/azure-functions/src/plugin.test.ts similarity index 100% rename from plugins/azure/src/plugin.test.ts rename to plugins/azure-functions/src/plugin.test.ts diff --git a/plugins/azure/src/plugin.ts b/plugins/azure-functions/src/plugin.ts similarity index 100% rename from plugins/azure/src/plugin.ts rename to plugins/azure-functions/src/plugin.ts diff --git a/plugins/azure/src/routes.ts b/plugins/azure-functions/src/routes.ts similarity index 100% rename from plugins/azure/src/routes.ts rename to plugins/azure-functions/src/routes.ts diff --git a/plugins/azure/src/setupTests.ts b/plugins/azure-functions/src/setupTests.ts similarity index 100% rename from plugins/azure/src/setupTests.ts rename to plugins/azure-functions/src/setupTests.ts diff --git a/yarn.lock b/yarn.lock index 805109ea15..66887e8d2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3946,35 +3946,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure-backend@^0.0.0, @backstage/plugin-azure-backend@workspace:plugins/azure-backend": - version: 0.0.0-use.local - resolution: "@backstage/plugin-azure-backend@workspace:plugins/azure-backend" - dependencies: - "@azure/arm-resourcegraph": ^4.2.1 - "@azure/identity": ^2.1.0 - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-azure-common": ^0.0.0 - "@types/express": ^4.17.6 - "@types/supertest": ^2.0.8 - express: ^4.17.1 - express-promise-router: ^4.1.0 - msw: ^0.47.0 - node-fetch: ^2.6.7 - winston: ^3.2.1 - yn: ^4.0.0 - languageName: unknown - linkType: soft - -"@backstage/plugin-azure-common@^0.0.0, @backstage/plugin-azure-common@workspace:plugins/azure-common": - version: 0.0.0-use.local - resolution: "@backstage/plugin-azure-common@workspace:plugins/azure-common" - dependencies: - "@backstage/cli": ^0.19.0 - languageName: unknown - linkType: soft - "@backstage/plugin-azure-devops-backend@^0.3.15, @backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend" @@ -4038,9 +4009,38 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure@^0.0.0, @backstage/plugin-azure@workspace:plugins/azure": +"@backstage/plugin-azure-functions-backend@^0.0.0, @backstage/plugin-azure-functions-backend@workspace:plugins/azure-functions-backend": version: 0.0.0-use.local - resolution: "@backstage/plugin-azure@workspace:plugins/azure" + resolution: "@backstage/plugin-azure-functions-backend@workspace:plugins/azure-functions-backend" + dependencies: + "@azure/arm-resourcegraph": ^4.2.1 + "@azure/identity": ^2.1.0 + "@backstage/backend-common": ^0.15.1 + "@backstage/cli": ^0.19.0 + "@backstage/config": ^1.0.2 + "@backstage/plugin-azure-functions-common": ^0.0.0 + "@types/express": ^4.17.6 + "@types/supertest": ^2.0.8 + express: ^4.17.1 + express-promise-router: ^4.1.0 + msw: ^0.47.0 + node-fetch: ^2.6.7 + winston: ^3.2.1 + yn: ^4.0.0 + languageName: unknown + linkType: soft + +"@backstage/plugin-azure-functions-common@^0.0.0, @backstage/plugin-azure-functions-common@workspace:plugins/azure-functions-common": + version: 0.0.0-use.local + resolution: "@backstage/plugin-azure-functions-common@workspace:plugins/azure-functions-common" + dependencies: + "@backstage/cli": ^0.19.0 + languageName: unknown + linkType: soft + +"@backstage/plugin-azure-functions@^0.0.0, @backstage/plugin-azure-functions@workspace:plugins/azure-functions": + version: 0.0.0-use.local + resolution: "@backstage/plugin-azure-functions@workspace:plugins/azure-functions" dependencies: "@backstage/catalog-model": ^1.1.1 "@backstage/cli": ^0.19.0 @@ -4048,7 +4048,7 @@ __metadata: "@backstage/core-components": ^0.11.1 "@backstage/core-plugin-api": ^1.0.6 "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-azure-common": ^0.0.0 + "@backstage/plugin-azure-functions-common": ^0.0.0 "@backstage/plugin-catalog-react": ^1.1.4 "@backstage/test-utils": ^1.2.0 "@backstage/theme": ^0.2.16 @@ -22401,8 +22401,8 @@ __metadata: "@backstage/plugin-airbrake": ^0.3.9 "@backstage/plugin-apache-airflow": ^0.2.2 "@backstage/plugin-api-docs": ^0.8.9 - "@backstage/plugin-azure": ^0.0.0 "@backstage/plugin-azure-devops": ^0.2.0 + "@backstage/plugin-azure-functions": ^0.0.0 "@backstage/plugin-badges": ^0.2.33 "@backstage/plugin-catalog-common": ^1.0.6 "@backstage/plugin-catalog-graph": ^0.2.21 @@ -22506,8 +22506,8 @@ __metadata: "@backstage/plugin-app-backend": ^0.3.36 "@backstage/plugin-auth-backend": ^0.16.0 "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-azure-backend": ^0.0.0 "@backstage/plugin-azure-devops-backend": ^0.3.15 + "@backstage/plugin-azure-functions-backend": ^0.0.0 "@backstage/plugin-badges-backend": ^0.1.30 "@backstage/plugin-catalog-backend": ^1.4.0 "@backstage/plugin-code-coverage-backend": ^0.2.2