Add fix for MPAC Tables account issue

This commit is contained in:
Senthamil Sindhu 2024-07-04 16:01:35 -07:00
parent caf4e9f51f
commit 039136794d
3 changed files with 33 additions and 35 deletions

View File

@ -89,7 +89,7 @@ export const tokenProvider = async (requestInfo: Cosmos.RequestInfo) => {
userContext.masterKey, userContext.masterKey,
); );
return decodeURIComponent(headers.authorization); return decodeURIComponent(headers.authorization);
} }
if (userContext.resourceToken) { if (userContext.resourceToken) {
return userContext.resourceToken; return userContext.resourceToken;
@ -169,7 +169,7 @@ export function client(): Cosmos.CosmosClient {
// The header will be ignored if priority based execution is disabled on the account. // The header will be ignored if priority based execution is disabled on the account.
_defaultHeaders["x-ms-cosmos-priority-level"] = PriorityLevel.Default; _defaultHeaders["x-ms-cosmos-priority-level"] = PriorityLevel.Default;
} }
const options: Cosmos.CosmosClientOptions = { const options: Cosmos.CosmosClientOptions = {
endpoint: endpoint() || "https://cosmos.azure.com", // CosmosClient gets upset if we pass a bad URL. This should never actually get called endpoint: endpoint() || "https://cosmos.azure.com", // CosmosClient gets upset if we pass a bad URL. This should never actually get called
key: userContext.dataPlaneRbacEnabled ? "" : userContext.masterKey, key: userContext.dataPlaneRbacEnabled ? "" : userContext.masterKey,

View File

@ -169,14 +169,14 @@ export const SettingsPane: FunctionComponent<{ explorer: Explorer }> = ({
dataPlaneRbacEnabled: false, dataPlaneRbacEnabled: false,
}); });
const { databaseAccount: account, subscriptionId, resourceGroup } = userContext; const { databaseAccount: account, subscriptionId, resourceGroup } = userContext;
const keys: DatabaseAccountListKeysResult = await listKeys(subscriptionId, resourceGroup, account.name); const keys: DatabaseAccountListKeysResult = await listKeys(subscriptionId, resourceGroup, account.name);
if (keys.primaryMasterKey) { if (keys.primaryMasterKey) {
updateUserContext({ masterKey: keys.primaryMasterKey }); updateUserContext({ masterKey: keys.primaryMasterKey });
useDataPlaneRbac.setState({ dataPlaneRbacEnabled: false }); useDataPlaneRbac.setState({ dataPlaneRbacEnabled: false });
}
} }
}
LocalStorageUtility.setEntryBoolean(StorageKey.RUThresholdEnabled, ruThresholdEnabled); LocalStorageUtility.setEntryBoolean(StorageKey.RUThresholdEnabled, ruThresholdEnabled);
LocalStorageUtility.setEntryBoolean(StorageKey.QueryTimeoutEnabled, queryTimeoutEnabled); LocalStorageUtility.setEntryBoolean(StorageKey.QueryTimeoutEnabled, queryTimeoutEnabled);

View File

@ -417,15 +417,20 @@ function configureEmulator(): Explorer {
return explorer; return explorer;
} }
async function fetchAndUpdateKeys(subscriptionId: string, resourceGroup: string, account: string) { async function fetchAndUpdateKeys(subscriptionId: string, resourceGroup: string, account: string) {
try { try {
updateUserContext({ listKeysFetchInProgress: true }); console.log("Starting to fetch keys...");
const keys = await listKeys(subscriptionId, resourceGroup, account); const keys = await listKeys(subscriptionId, resourceGroup, account);
console.log("Keys fetched:", keys);
updateUserContext({ masterKey: keys.primaryMasterKey, listKeysFetchInProgress: false }); updateUserContext({
masterKey: keys.primaryMasterKey,
});
console.log("User context updated with master key.");
} catch (error) { } catch (error) {
updateUserContext({ listKeysFetchInProgress: false });
console.error("Error during fetching keys or updating user context:", error); console.error("Error during fetching keys or updating user context:", error);
throw error;
} }
} }
@ -483,14 +488,8 @@ async function configurePortal(): Promise<Explorer> {
} }
updateContextsFromPortalMessage(inputs); updateContextsFromPortalMessage(inputs);
explorer = new Explorer();
resolve(explorer);
if (userContext.apiType === "Postgres" || userContext.apiType === "SQL" || userContext.apiType === "Mongo") { const { databaseAccount: account, subscriptionId, resourceGroup } = userContext;
setTimeout(() => explorer.openNPSSurveyDialog(), 3000);
}
const { databaseAccount: account , subscriptionId, resourceGroup} = userContext;
if (userContext.apiType === "SQL") { if (userContext.apiType === "SQL") {
if (LocalStorageUtility.hasItem(StorageKey.DataPlaneRbacEnabled)) { if (LocalStorageUtility.hasItem(StorageKey.DataPlaneRbacEnabled)) {
@ -502,10 +501,8 @@ async function configurePortal(): Promise<Explorer> {
} else { } else {
dataPlaneRbacEnabled = isDataPlaneRbacSetting === Constants.RBACOptions.setTrueRBACOption; dataPlaneRbacEnabled = isDataPlaneRbacSetting === Constants.RBACOptions.setTrueRBACOption;
} }
if(!dataPlaneRbacEnabled) { if (!dataPlaneRbacEnabled) {
(async () => { await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name);
await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name);
})();
} }
updateUserContext({ dataPlaneRbacEnabled }); updateUserContext({ dataPlaneRbacEnabled });
@ -513,20 +510,21 @@ async function configurePortal(): Promise<Explorer> {
} else { } else {
const dataPlaneRbacEnabled = account.properties.disableLocalAuth; const dataPlaneRbacEnabled = account.properties.disableLocalAuth;
if(!dataPlaneRbacEnabled) { if (!dataPlaneRbacEnabled) {
(async () => { await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name);
await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name); }
})();
}
updateUserContext({ dataPlaneRbacEnabled }); updateUserContext({ dataPlaneRbacEnabled });
useDataPlaneRbac.setState({ dataPlaneRbacEnabled: dataPlaneRbacEnabled }); useDataPlaneRbac.setState({ dataPlaneRbacEnabled: dataPlaneRbacEnabled });
} }
} } else {
else { await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name);
(async () => { }
await fetchAndUpdateKeys(subscriptionId, resourceGroup, account.name);
})(); explorer = new Explorer();
resolve(explorer);
if (userContext.apiType === "Postgres" || userContext.apiType === "SQL" || userContext.apiType === "Mongo") {
setTimeout(() => explorer.openNPSSurveyDialog(), 3000);
} }
if (openAction) { if (openAction) {
@ -571,9 +569,9 @@ function updateContextsFromPortalMessage(inputs: DataExplorerInputsFrame) {
const authorizationToken = inputs.authorizationToken || ""; const authorizationToken = inputs.authorizationToken || "";
const databaseAccount = inputs.databaseAccount; const databaseAccount = inputs.databaseAccount;
if(userContext.apiType !== "SQL") { if (userContext.apiType !== "SQL") {
const masterKey = inputs.masterKey || ""; const masterKey = inputs.masterKey || "";
updateUserContext({masterKey}); updateUserContext({ masterKey });
} }
updateConfigContext({ updateConfigContext({