Move the Portal Backend client to Common

The module is a plain service client with no dependency on the hosted platform, and CosmosClient and MetricEvents already hand roll their own Portal Backend calls, so Common is where a shared client belongs.
This commit is contained in:
Asier Isayas
2026-08-19 15:37:51 -07:00
parent 87c600809f
commit adc28d8082
5 changed files with 8 additions and 11 deletions
@@ -1,6 +1,6 @@
import { HttpHeaders } from "../../Common/Constants"; import { configContext } from "../ConfigContext";
import { configContext } from "../../ConfigContext"; import { AccessInputMetadata } from "../Contracts/DataModels";
import { AccessInputMetadata } from "../../Contracts/DataModels"; import { HttpHeaders } from "./Constants";
export async function fetchAccessData(portalToken: string): Promise<AccessInputMetadata> { export async function fetchAccessData(portalToken: string): Promise<AccessInputMetadata> {
const headers = new Headers(); const headers = new Headers();
+2 -2
View File
@@ -1,6 +1,6 @@
jest.mock("./hooks/useAADAuth"); jest.mock("./hooks/useAADAuth");
jest.mock("./hooks/useConfig"); jest.mock("./hooks/useConfig");
jest.mock("./Platform/Hosted/PortalBackendConnectionStringClient"); jest.mock("./Common/PortalBackendClient");
jest.mock("./Platform/Hosted/Components/ConnectExplorer"); jest.mock("./Platform/Hosted/Components/ConnectExplorer");
jest.mock("./Shared/appInsights"); jest.mock("./Shared/appInsights");
jest.mock("./Platform/Hosted/Components/AccountSwitcher", () => ({ jest.mock("./Platform/Hosted/Components/AccountSwitcher", () => ({
@@ -25,11 +25,11 @@ jest.mock("./Platform/Hosted/Components/AadAuthorizationFailure", () => ({
import "@testing-library/jest-dom"; import "@testing-library/jest-dom";
import { act, render } from "@testing-library/react"; import { act, render } from "@testing-library/react";
import React from "react"; import React from "react";
import { fetchAccessData, fetchEncryptedToken } from "./Common/PortalBackendClient";
import { useAADAuth } from "./hooks/useAADAuth"; import { useAADAuth } from "./hooks/useAADAuth";
import { useConfig } from "./hooks/useConfig"; import { useConfig } from "./hooks/useConfig";
import { App } from "./HostedExplorer"; import { App } from "./HostedExplorer";
import { ConnectExplorer } from "./Platform/Hosted/Components/ConnectExplorer"; import { ConnectExplorer } from "./Platform/Hosted/Components/ConnectExplorer";
import { fetchAccessData, fetchEncryptedToken } from "./Platform/Hosted/PortalBackendConnectionStringClient";
const mockFetchEncryptedToken = fetchEncryptedToken as jest.MockedFunction<typeof fetchEncryptedToken>; const mockFetchEncryptedToken = fetchEncryptedToken as jest.MockedFunction<typeof fetchEncryptedToken>;
+1 -1
View File
@@ -8,6 +8,7 @@ import ChevronRight from "../images/chevron-right.svg";
import "../less/hostedexplorer.less"; import "../less/hostedexplorer.less";
import { AuthType } from "./AuthType"; import { AuthType } from "./AuthType";
import { logError } from "./Common/Logger"; import { logError } from "./Common/Logger";
import { fetchAccessData, fetchEncryptedToken } from "./Common/PortalBackendClient";
import { AccessInputMetadata, DatabaseAccount } from "./Contracts/DataModels"; import { AccessInputMetadata, DatabaseAccount } from "./Contracts/DataModels";
import "./Explorer/Menus/NavBar/MeControlComponent.less"; import "./Explorer/Menus/NavBar/MeControlComponent.less";
import { HostedExplorerChildFrame } from "./HostedExplorerChildFrame"; import { HostedExplorerChildFrame } from "./HostedExplorerChildFrame";
@@ -24,7 +25,6 @@ import {
extractMasterKeyFromDirectLoginConnectionString, extractMasterKeyFromDirectLoginConnectionString,
isDirectConnectionStringLoginApi, isDirectConnectionStringLoginApi,
} from "./Platform/Hosted/HostedUtils"; } from "./Platform/Hosted/HostedUtils";
import { fetchAccessData, fetchEncryptedToken } from "./Platform/Hosted/PortalBackendConnectionStringClient";
import "./Shared/appInsights"; import "./Shared/appInsights";
import { allowedHostedExplorerEndpoints } from "./Utils/EndpointUtils"; import { allowedHostedExplorerEndpoints } from "./Utils/EndpointUtils";
import { useAADAuth } from "./hooks/useAADAuth"; import { useAADAuth } from "./hooks/useAADAuth";
@@ -5,14 +5,11 @@ import * as React from "react";
import ConnectImage from "../../../../images/HdeConnectCosmosDB.svg"; import ConnectImage from "../../../../images/HdeConnectCosmosDB.svg";
import ErrorImage from "../../../../images/error.svg"; import ErrorImage from "../../../../images/error.svg";
import { AuthType } from "../../../AuthType"; import { AuthType } from "../../../AuthType";
import { fetchEncryptedToken, isAccountRestrictedForConnectionStringLogin } from "../../../Common/PortalBackendClient";
import { AccessInputMetadata } from "../../../Contracts/DataModels"; import { AccessInputMetadata } from "../../../Contracts/DataModels";
import { parseConnectionString } from "../Helpers/ConnectionStringParser"; import { parseConnectionString } from "../Helpers/ConnectionStringParser";
import { isResourceTokenConnectionString } from "../Helpers/ResourceTokenUtils"; import { isResourceTokenConnectionString } from "../Helpers/ResourceTokenUtils";
import { isDirectConnectionStringLoginApi } from "../HostedUtils"; import { isDirectConnectionStringLoginApi } from "../HostedUtils";
import {
fetchEncryptedToken,
isAccountRestrictedForConnectionStringLogin,
} from "../PortalBackendConnectionStringClient";
interface Props { interface Props {
connectionString: string; connectionString: string;
+1 -1
View File
@@ -25,6 +25,7 @@
"./src/Common/ObjectCache.ts", "./src/Common/ObjectCache.ts",
"./src/Common/OfferUtility.test.ts", "./src/Common/OfferUtility.test.ts",
"./src/Common/OfferUtility.ts", "./src/Common/OfferUtility.ts",
"./src/Common/PortalBackendClient.ts",
"./src/Common/Splitter.ts", "./src/Common/Splitter.ts",
"./src/Common/ThemeUtility.ts", "./src/Common/ThemeUtility.ts",
"./src/Common/UrlUtility.ts", "./src/Common/UrlUtility.ts",
@@ -66,7 +67,6 @@
"./src/Platform/Hosted/Components/MeControl.test.tsx", "./src/Platform/Hosted/Components/MeControl.test.tsx",
"./src/Platform/Hosted/Components/MeControl.tsx", "./src/Platform/Hosted/Components/MeControl.tsx",
"./src/Platform/Hosted/Components/SignInButton.tsx", "./src/Platform/Hosted/Components/SignInButton.tsx",
"./src/Platform/Hosted/PortalBackendConnectionStringClient.ts",
"./src/Platform/Hosted/HostedUtils.test.ts", "./src/Platform/Hosted/HostedUtils.test.ts",
"./src/Platform/Hosted/HostedUtils.ts", "./src/Platform/Hosted/HostedUtils.ts",
"./src/Platform/Hosted/extractFeatures.test.ts", "./src/Platform/Hosted/extractFeatures.test.ts",