mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2024-11-25 15:06:55 +00:00
Fix Auth Header + Firefox Bug in Emulator (#22)
This commit is contained in:
parent
582ac865ff
commit
1662d20e8a
15
package-lock.json
generated
15
package-lock.json
generated
@ -5,9 +5,9 @@
|
|||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@azure/cosmos": {
|
"@azure/cosmos": {
|
||||||
"version": "3.6.3",
|
"version": "3.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/@azure/cosmos/-/cosmos-3.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/@azure/cosmos/-/cosmos-3.7.0.tgz",
|
||||||
"integrity": "sha512-JoCDxl0TnL6EHL4xD3KC9r2bMivK13q1jl7h69wd/YFLlt3aBTTCehtAX+y4alNSENpL53XdRdw/cna0mI2XDw==",
|
"integrity": "sha512-3SRxnmy6NncdX5eYqGuRTack52hloS9YhQ0aOKwWJ8Z4dDSrVH3XB2Mcp/WokoIpVm0Bq5nUC8FsvLBZKfRkyg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/debug": "^4.1.4",
|
"@types/debug": "^4.1.4",
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
@ -18,7 +18,14 @@
|
|||||||
"priorityqueuejs": "^1.0.0",
|
"priorityqueuejs": "^1.0.0",
|
||||||
"semaphore": "^1.0.5",
|
"semaphore": "^1.0.5",
|
||||||
"tslib": "^1.10.0",
|
"tslib": "^1.10.0",
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^8.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"uuid": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@azure/cosmos-language-service": {
|
"@azure/cosmos-language-service": {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"description": "Cosmos Explorer",
|
"description": "Cosmos Explorer",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@azure/cosmos": "3.6.3",
|
"@azure/cosmos": "3.7.0",
|
||||||
"@azure/cosmos-language-service": "0.0.4",
|
"@azure/cosmos-language-service": "0.0.4",
|
||||||
"@jupyterlab/services": "4.2.0",
|
"@jupyterlab/services": "4.2.0",
|
||||||
"@jupyterlab/terminal": "1.2.1",
|
"@jupyterlab/terminal": "1.2.1",
|
||||||
|
@ -21,13 +21,15 @@ const _global = typeof self === "undefined" ? window : self;
|
|||||||
export const tokenProvider = async (requestInfo: RequestInfo) => {
|
export const tokenProvider = async (requestInfo: RequestInfo) => {
|
||||||
const { verb, resourceId, resourceType, headers } = requestInfo;
|
const { verb, resourceId, resourceType, headers } = requestInfo;
|
||||||
if (config.platform === Platform.Emulator) {
|
if (config.platform === Platform.Emulator) {
|
||||||
// TODO Remove any. SDK expects a return value for tokenProvider, but we are mutating the header object instead.
|
// TODO This SDK method mutates the headers object. Find a better one or fix the SDK.
|
||||||
return setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey) as any;
|
await setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey);
|
||||||
|
return decodeURIComponent(headers.authorization);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_masterKey) {
|
if (_masterKey) {
|
||||||
// TODO Remove any. SDK expects a return value for tokenProvider, but we are mutating the header object instead.
|
// TODO This SDK method mutates the headers object. Find a better one or fix the SDK.
|
||||||
return setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, _masterKey) as any;
|
await setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey);
|
||||||
|
return decodeURIComponent(headers.authorization);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_resourceToken) {
|
if (_resourceToken) {
|
||||||
@ -47,7 +49,9 @@ export const requestPlugin: Cosmos.Plugin<any> = async (requestContext, next) =>
|
|||||||
|
|
||||||
export const endpoint = () => {
|
export const endpoint = () => {
|
||||||
if (config.platform === Platform.Emulator) {
|
if (config.platform === Platform.Emulator) {
|
||||||
return config.EMULATOR_ENDPOINT || window.parent.location.origin;
|
// In worker scope, _global(self).parent does not exist
|
||||||
|
const location = _global.parent ? _global.parent.location : _global.location;
|
||||||
|
return config.EMULATOR_ENDPOINT || location.origin;
|
||||||
}
|
}
|
||||||
return _endpoint || (_databaseAccount && _databaseAccount.properties && _databaseAccount.properties.documentEndpoint);
|
return _endpoint || (_databaseAccount && _databaseAccount.properties && _databaseAccount.properties.documentEndpoint);
|
||||||
};
|
};
|
||||||
|
@ -32,6 +32,7 @@ import DocumentId from "./DocumentId";
|
|||||||
import StoredProcedure from "./StoredProcedure";
|
import StoredProcedure from "./StoredProcedure";
|
||||||
import Trigger from "./Trigger";
|
import Trigger from "./Trigger";
|
||||||
import UserDefinedFunction from "./UserDefinedFunction";
|
import UserDefinedFunction from "./UserDefinedFunction";
|
||||||
|
import { config } from "../../Config";
|
||||||
|
|
||||||
export default class Collection implements ViewModels.Collection {
|
export default class Collection implements ViewModels.Collection {
|
||||||
public nodeKind: string;
|
public nodeKind: string;
|
||||||
@ -1416,7 +1417,7 @@ export default class Collection implements ViewModels.Collection {
|
|||||||
masterKey: CosmosClient.masterKey(),
|
masterKey: CosmosClient.masterKey(),
|
||||||
endpoint: CosmosClient.endpoint(),
|
endpoint: CosmosClient.endpoint(),
|
||||||
accessToken: CosmosClient.accessToken(),
|
accessToken: CosmosClient.accessToken(),
|
||||||
platform: window.dataExplorerPlatform,
|
platform: config.platform,
|
||||||
databaseAccount: CosmosClient.databaseAccount()
|
databaseAccount: CosmosClient.databaseAccount()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { DatabaseAccount } from "../../Contracts/DataModels";
|
import { DatabaseAccount } from "../../Contracts/DataModels";
|
||||||
import { PlatformType } from "../../PlatformType";
|
import { Platform } from "../../Config";
|
||||||
|
|
||||||
export interface StartUploadMessageParams {
|
export interface StartUploadMessageParams {
|
||||||
files: FileList;
|
files: FileList;
|
||||||
@ -12,7 +12,7 @@ export interface DocumentClientParams {
|
|||||||
masterKey: string;
|
masterKey: string;
|
||||||
endpoint: string;
|
endpoint: string;
|
||||||
accessToken: string;
|
accessToken: string;
|
||||||
platform: PlatformType;
|
platform: Platform;
|
||||||
databaseAccount: DatabaseAccount;
|
databaseAccount: DatabaseAccount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import "babel-polyfill";
|
import "babel-polyfill";
|
||||||
import { DocumentClientParams, UploadDetailsRecord, UploadDetails } from "./definitions";
|
import { DocumentClientParams, UploadDetailsRecord, UploadDetails } from "./definitions";
|
||||||
import { CosmosClient } from "../../Common/CosmosClient";
|
import { CosmosClient } from "../../Common/CosmosClient";
|
||||||
|
import { config } from "../../Config";
|
||||||
|
|
||||||
let numUploadsSuccessful = 0;
|
let numUploadsSuccessful = 0;
|
||||||
let numUploadsFailed = 0;
|
let numUploadsFailed = 0;
|
||||||
@ -33,8 +34,7 @@ onmessage = (event: MessageEvent) => {
|
|||||||
CosmosClient.endpoint(clientParams.endpoint);
|
CosmosClient.endpoint(clientParams.endpoint);
|
||||||
CosmosClient.accessToken(clientParams.accessToken);
|
CosmosClient.accessToken(clientParams.accessToken);
|
||||||
CosmosClient.databaseAccount(clientParams.databaseAccount);
|
CosmosClient.databaseAccount(clientParams.databaseAccount);
|
||||||
self.dataExplorerPlatform = clientParams.platform;
|
config.platform = clientParams.platform;
|
||||||
console.log(event);
|
|
||||||
if (!!files && files.length > 0) {
|
if (!!files && files.length > 0) {
|
||||||
numFiles = files.length;
|
numFiles = files.length;
|
||||||
for (let i = 0; i < numFiles; i++) {
|
for (let i = 0; i < numFiles; i++) {
|
||||||
@ -87,7 +87,7 @@ function createDocumentsFromFile(fileName: string, documentContent: string): voi
|
|||||||
numUploadsSuccessful++;
|
numUploadsSuccessful++;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error);
|
console.error(error);
|
||||||
recordUploadDetailErrorForFile(fileName, JSON.stringify(error));
|
recordUploadDetailErrorForFile(fileName, JSON.stringify(error));
|
||||||
numUploadsFailed++;
|
numUploadsFailed++;
|
||||||
})
|
})
|
||||||
@ -106,6 +106,7 @@ function createDocumentsFromFile(fileName: string, documentContent: string): voi
|
|||||||
triggerCreateDocument(content);
|
triggerCreateDocument(content);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
recordUploadDetailErrorForFile(fileName, e.message);
|
recordUploadDetailErrorForFile(fileName, e.message);
|
||||||
transmitResultIfUploadComplete();
|
transmitResultIfUploadComplete();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user