diff --git a/src/Common/CosmosClient.ts b/src/Common/CosmosClient.ts index fd1d61a76..a6ac05a11 100644 --- a/src/Common/CosmosClient.ts +++ b/src/Common/CosmosClient.ts @@ -107,7 +107,9 @@ export const tokenProvider = async (requestInfo: Cosmos.RequestInfo) => { export const requestPlugin: Cosmos.Plugin = async (requestContext, diagnosticNode, next) => { requestContext.endpoint = new URL(configContext.PROXY_PATH, window.location.href).href; + console.log(`REQUEST CONTEXT ENDPOINT: ${JSON.stringify(requestContext.endpoint)}`); requestContext.headers["x-ms-proxy-target"] = endpoint(); + console.log(`REQUEST CONTEXT PROXY: ${JSON.stringify(requestContext.headers["x-ms-proxy-target"])}`); return next(requestContext); }; @@ -268,6 +270,25 @@ export function client(): Cosmos.CosmosClient { }, }; + // Account details from userContext. + console.log(`userContext details: ${JSON.stringify(userContext)}`); + console.log(`userContext.databaseaccount details: ${JSON.stringify(userContext.databaseAccount)}`); + console.log( + `userContext?.databaseAccount?.properties?.documentEndpoint details: ${JSON.stringify( + userContext?.databaseAccount?.properties?.documentEndpoint, + )}`, + ); + console.log( + `userContext?.databaseAccount?.properties?.readLocations details: ${JSON.stringify( + userContext?.databaseAccount?.properties?.readLocations, + )}`, + ); + console.log( + `userContext?.databaseAccount?.properties?.writeLocations details: ${JSON.stringify( + userContext?.databaseAccount?.properties?.writeLocations, + )}`, + ); + if (configContext.PROXY_PATH !== undefined) { (options as any).plugins = [{ on: "request", plugin: requestPlugin }]; } diff --git a/src/Explorer/Panes/SettingsPane/SettingsPane.tsx b/src/Explorer/Panes/SettingsPane/SettingsPane.tsx index 7e03abebc..d6f95717b 100644 --- a/src/Explorer/Panes/SettingsPane/SettingsPane.tsx +++ b/src/Explorer/Panes/SettingsPane/SettingsPane.tsx @@ -425,6 +425,23 @@ export const SettingsPane: FunctionComponent<{ explorer: Explorer }> = ({ const handleOnReadRegionOptionChange = (ev: React.FormEvent, option: IDropdownOption): void => { // TODO: Region validation? + const updatedDatabaseAccount = { + ...userContext.databaseAccount, + properties: { + ...userContext.databaseAccount.properties, + documentEndpoint: userContext?.databaseAccount?.properties?.readLocations?.find( + (loc) => loc.locationName === readRegion, + )?.documentEndpoint, + }, + }; + updateUserContext({ + databaseAccount: updatedDatabaseAccount, + }); + console.log( + `userContext?.databaseAccount?.properties?.documentEndpoint details: ${JSON.stringify( + userContext?.databaseAccount?.properties?.documentEndpoint, + )}`, + ); setReadRegion(option.text); };