From ee02c68c6c16a4c1c5d0f64fa5161541c8eece75 Mon Sep 17 00:00:00 2001 From: skgandikota Date: Mon, 11 Apr 2022 15:26:45 +0530 Subject: [PATCH] Append myHeaders const with Authorization Token Signed-off-by: skgandikota --- .../newrelic-dashboard/src/api/NewRelicDashboardClient.ts | 8 +++++++- plugins/newrelic-dashboard/src/plugin.ts | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/newrelic-dashboard/src/api/NewRelicDashboardClient.ts b/plugins/newrelic-dashboard/src/api/NewRelicDashboardClient.ts index 2411102712..7a6e05506a 100644 --- a/plugins/newrelic-dashboard/src/api/NewRelicDashboardClient.ts +++ b/plugins/newrelic-dashboard/src/api/NewRelicDashboardClient.ts @@ -18,7 +18,7 @@ import { DashboardSnapshotSummary, NewRelicDashboardApi, } from './NewRelicDashboardApi'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import { DashboardEntity } from '../types/DashboardEntity'; import { DashboardSnapshot } from '../types/DashboardSnapshot'; import { getDashboardParentGuidQuery } from '../queries/getDashboardParentGuidQuery'; @@ -27,21 +27,27 @@ import { ResponseError } from '@backstage/errors'; export class NewRelicDashboardClient implements NewRelicDashboardApi { private readonly discoveryApi: DiscoveryApi; + private readonly identityApi: IdentityApi; constructor({ discoveryApi, + identityApi, }: { discoveryApi: DiscoveryApi; + identityApi: IdentityApi; baseUrl?: string; }) { this.discoveryApi = discoveryApi; + this.identityApi = identityApi; } private async callApi( query: string, variables: { [key in string]: string | number }, ): Promise { + const { token } = await this.identityApi.getCredentials(); const myHeaders = new Headers(); myHeaders.append('Content-Type', 'application/json'); + myHeaders.append('Authorization', `Bearer ${token}`); const graphql = JSON.stringify({ query: query, variables: variables, diff --git a/plugins/newrelic-dashboard/src/plugin.ts b/plugins/newrelic-dashboard/src/plugin.ts index 9bfecff18f..42c239c2cf 100644 --- a/plugins/newrelic-dashboard/src/plugin.ts +++ b/plugins/newrelic-dashboard/src/plugin.ts @@ -19,6 +19,7 @@ import { createApiFactory, discoveryApiRef, createComponentExtension, + identityApiRef, } from '@backstage/core-plugin-api'; import { newRelicDashboardApiRef, NewRelicDashboardClient } from './api'; import { rootRouteRef } from './routes'; @@ -31,10 +32,11 @@ export const newRelicDashboardPlugin = createPlugin({ apis: [ createApiFactory({ api: newRelicDashboardApiRef, - deps: { configApi: configApiRef, discoveryApi: discoveryApiRef }, - factory: ({ configApi, discoveryApi }) => + deps: { configApi: configApiRef, discoveryApi: discoveryApiRef, identityApi: identityApiRef }, + factory: ({ configApi, discoveryApi, identityApi }) => new NewRelicDashboardClient({ discoveryApi, + identityApi, baseUrl: configApi.getOptionalString('newrelicdashboard.baseUrl'), }), }),