From ed5d64363186fe3a41117eba95b43e6f20e634fe Mon Sep 17 00:00:00 2001 From: epessina Date: Tue, 23 Apr 2024 16:32:26 +0200 Subject: [PATCH] FE api --- app-config.yaml | 2 ++ packages/plugin-frontend/README.md | 14 +++++++++++++- .../MiaProjectsFetchComponent.tsx | 16 ++++++++++------ .../MiaProjectsTableComponent.tsx | 9 ++++++--- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index b6c5ee4..67f1ce2 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -5,3 +5,5 @@ app: backend: baseUrl: http://localhost:7007 + auth: + dangerouslyDisableDefaultAuthPolicy: true diff --git a/packages/plugin-frontend/README.md b/packages/plugin-frontend/README.md index ecb25bb..f33e621 100644 --- a/packages/plugin-frontend/README.md +++ b/packages/plugin-frontend/README.md @@ -14,7 +14,9 @@ The first step is to install the plugin to your Backstage app: yarn workspace app add @mia-platform/backstage-plugin-frontend ``` -Once the plugin is installed in the App page `packages/app/src/App.tsx` add the route to our frontend page: +Once the plugin is installed in the App page `packages/app/src/App.tsx` add the route to our frontend page. + +If you are using the [new backend system](https://github.com/mia-platform/backstage-plugin/blob/main/packages/plugin-backend/README.md#new-backend-system): ```tsx import { MiaPlatformPluginFrontendPage } from '@mia-platform/backstage-plugin-frontend'; @@ -24,6 +26,16 @@ import { MiaPlatformPluginFrontendPage } from '@mia-platform/backstage-plugin-fr } />; ``` +If you are using the [legacy backend system](https://github.com/mia-platform/backstage-plugin/blob/main/packages/plugin-backend/README.md#legacy-backend-system): + +```tsx +import { MiaPlatformPluginFrontendPage } from '@mia-platform/backstage-plugin-frontend'; + +// ... + +} />; +``` + At the end on the Root page of your Backstage app `packages/app/src/components/Root/Root.tsx` add on the sidebar the Mia-Platform frontend page with its icon: ```tsx diff --git a/packages/plugin-frontend/src/components/MiaProjectsFetchComponent/MiaProjectsFetchComponent.tsx b/packages/plugin-frontend/src/components/MiaProjectsFetchComponent/MiaProjectsFetchComponent.tsx index bac7762..2311bf5 100644 --- a/packages/plugin-frontend/src/components/MiaProjectsFetchComponent/MiaProjectsFetchComponent.tsx +++ b/packages/plugin-frontend/src/components/MiaProjectsFetchComponent/MiaProjectsFetchComponent.tsx @@ -80,11 +80,12 @@ export type Project = { type DenseTableProps = { entities: Entity[]; setBannerId: React.Dispatch>, + apiUrl: string }; -export const DenseTable = ({ entities, setBannerId }: DenseTableProps) => { +const DenseTable = ({ entities, setBannerId, apiUrl }: DenseTableProps) => { const config = useApi(configApiRef) - const baseUrl = config.getString('backend.baseUrl') + const appUrl = config.getString('app.baseUrl') const columns: TableColumn[] = [ @@ -108,11 +109,11 @@ export const DenseTable = ({ entities, setBannerId }: DenseTableProps) => { try { const uuid = window.crypto.randomUUID() setBannerId(uuid) - await fetch(`${baseUrl}/api/mia-platform/sync/company/${companyId}/project/${projectId}`) + await fetch(`${apiUrl}/sync/company/${companyId}/project/${projectId}`) } catch (exception) { /* empty */ -} + } } return { @@ -139,9 +140,12 @@ export const DenseTable = ({ entities, setBannerId }: DenseTableProps) => { type Props = { setBannerId: React.Dispatch>, + apiUrl: string } + type ComponentState = 'loading' | 'loaded' | Error -export const MiaProjectsFetchComponent: React.FC = ({ setBannerId }) => { + +export const MiaProjectsFetchComponent: React.FC = ({ setBannerId, apiUrl }) => { const config = useApi(configApiRef) const [entities, setEntities] = useState([]) const [componentState, setComponentState] = useState('loading') @@ -187,7 +191,7 @@ export const MiaProjectsFetchComponent: React.FC = ({ setBannerId }) => { tables.push( - + ) } diff --git a/packages/plugin-frontend/src/components/MiaProjectsTableComponent/MiaProjectsTableComponent.tsx b/packages/plugin-frontend/src/components/MiaProjectsTableComponent/MiaProjectsTableComponent.tsx index 217fa48..8e1b1a7 100644 --- a/packages/plugin-frontend/src/components/MiaProjectsTableComponent/MiaProjectsTableComponent.tsx +++ b/packages/plugin-frontend/src/components/MiaProjectsTableComponent/MiaProjectsTableComponent.tsx @@ -28,16 +28,19 @@ import { import { MiaProjectsFetchComponent } from '../MiaProjectsFetchComponent'; import { useApi, configApiRef } from '@backstage/core-plugin-api' -export const MiaProjectsTableComponent = () => { +export const MiaProjectsTableComponent = ({ apiPrefix }: { apiPrefix?: string }) => { const config = useApi(configApiRef) + const baseUrl = config.getString('backend.baseUrl') + const url = `${baseUrl}/api${apiPrefix ?? '/catalog/modules/mia-platform'}` + const [bannerId, setBannerId] = useState() const syncAllProjects = async () => { try { const uuid = window.crypto.randomUUID() setBannerId(uuid) - await fetch(`${baseUrl}/api/mia-platform/sync`) + await fetch(`${url}/sync`) } catch (exception) { return } @@ -56,7 +59,7 @@ export const MiaProjectsTableComponent = () => { - + {