@thoughtspot/visual-embed-sdk 1.10.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/auth.d.ts +18 -5
- package/dist/src/embed/base.d.ts +21 -5
- package/dist/src/embed/pinboard.d.ts +91 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/types.d.ts +15 -0
- package/dist/src/utils/authService.d.ts +1 -0
- package/dist/src/utils/plugin.d.ts +0 -0
- package/dist/src/utils/processData.d.ts +1 -1
- package/dist/src/v1/api.d.ts +19 -0
- package/dist/tsembed.es.js +521 -32
- package/dist/tsembed.js +519 -31
- package/lib/package.json +2 -1
- package/lib/src/auth.d.ts +18 -5
- package/lib/src/auth.js +48 -9
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +69 -11
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +21 -5
- package/lib/src/embed/base.js +64 -10
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +49 -3
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +1 -1
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/pinboard.d.ts +91 -0
- package/lib/src/embed/pinboard.js +110 -0
- package/lib/src/embed/pinboard.js.map +1 -0
- package/lib/src/embed/ts-embed.js +9 -10
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +16 -6
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +3 -2
- package/lib/src/index.js +3 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/test/test-utils.js +1 -1
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +15 -0
- package/lib/src/types.js +10 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService.d.ts +1 -0
- package/lib/src/utils/authService.js +21 -3
- package/lib/src/utils/authService.js.map +1 -1
- package/lib/src/utils/authService.spec.js +21 -5
- package/lib/src/utils/authService.spec.js.map +1 -1
- package/lib/src/utils/plugin.d.ts +0 -0
- package/lib/src/utils/plugin.js +1 -0
- package/lib/src/utils/plugin.js.map +1 -0
- package/lib/src/utils/processData.d.ts +1 -1
- package/lib/src/utils/processData.js +37 -3
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +106 -4
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +100 -7
- package/package.json +2 -1
- package/src/auth.spec.ts +90 -11
- package/src/auth.ts +63 -13
- package/src/embed/base.spec.ts +56 -4
- package/src/embed/base.ts +83 -16
- package/src/embed/embed.spec.ts +1 -1
- package/src/embed/ts-embed.spec.ts +19 -9
- package/src/embed/ts-embed.ts +15 -12
- package/src/index.ts +5 -1
- package/src/test/test-utils.ts +1 -1
- package/src/types.ts +16 -0
- package/src/utils/authService.spec.ts +31 -5
- package/src/utils/authService.ts +27 -3
- package/src/utils/processData.spec.ts +139 -4
- package/src/utils/processData.ts +54 -4
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"algoliasearch": "^4.10.5",
|
|
46
46
|
"classnames": "^2.3.1",
|
|
47
|
+
"eventemitter3": "^4.0.7",
|
|
47
48
|
"mixpanel-browser": "^2.41.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
package/lib/src/auth.d.ts
CHANGED
|
@@ -10,7 +10,19 @@ export declare const EndPoints: {
|
|
|
10
10
|
OIDC_LOGIN_TEMPLATE: (targetUrl: string) => string;
|
|
11
11
|
TOKEN_LOGIN: string;
|
|
12
12
|
BASIC_LOGIN: string;
|
|
13
|
+
LOGOUT: string;
|
|
13
14
|
};
|
|
15
|
+
export declare enum AuthFailureType {
|
|
16
|
+
SDK = "SDK",
|
|
17
|
+
NO_COOKIE_ACCESS = "NO_COOKIE_ACCESS",
|
|
18
|
+
EXPIRY = "EXPIRY",
|
|
19
|
+
OTHER = "OTHER"
|
|
20
|
+
}
|
|
21
|
+
export declare enum AuthStatus {
|
|
22
|
+
FAILURE = "FAILURE",
|
|
23
|
+
SUCCESS = "SUCCESS",
|
|
24
|
+
LOGOUT = "LOGOUT"
|
|
25
|
+
}
|
|
14
26
|
/**
|
|
15
27
|
* Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
|
|
16
28
|
*/
|
|
@@ -20,7 +32,7 @@ export declare function initSession(sessionDetails: any): void;
|
|
|
20
32
|
* Perform token based authentication
|
|
21
33
|
* @param embedConfig The embed configuration
|
|
22
34
|
*/
|
|
23
|
-
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<
|
|
35
|
+
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
24
36
|
/**
|
|
25
37
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
26
38
|
* credentials.
|
|
@@ -29,14 +41,15 @@ export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<void>;
|
|
|
29
41
|
* strongly advised not to use this authentication method in production.
|
|
30
42
|
* @param embedConfig The embed configuration
|
|
31
43
|
*/
|
|
32
|
-
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<
|
|
33
|
-
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<
|
|
34
|
-
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<
|
|
44
|
+
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
45
|
+
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
46
|
+
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
47
|
+
export declare const logout: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
35
48
|
/**
|
|
36
49
|
* Perform authentication on the ThoughtSpot cluster
|
|
37
50
|
* @param embedConfig The embed configuration
|
|
38
51
|
*/
|
|
39
|
-
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<
|
|
52
|
+
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
40
53
|
/**
|
|
41
54
|
* Check if we are authenticated to the ThoughtSpot cluster
|
|
42
55
|
*/
|
package/lib/src/auth.js
CHANGED
|
@@ -2,7 +2,7 @@ import { initMixpanel } from './mixpanel-service';
|
|
|
2
2
|
import { AuthType, EmbedEvent } from './types';
|
|
3
3
|
import { appendToUrlHash } from './utils';
|
|
4
4
|
// eslint-disable-next-line import/no-cycle
|
|
5
|
-
import { fetchSessionInfoService, fetchAuthTokenService, fetchAuthService, fetchBasicAuthService, } from './utils/authService';
|
|
5
|
+
import { fetchSessionInfoService, fetchAuthTokenService, fetchAuthService, fetchBasicAuthService, fetchLogoutService, } from './utils/authService';
|
|
6
6
|
// eslint-disable-next-line import/no-mutable-exports
|
|
7
7
|
export let loggedInStatus = false;
|
|
8
8
|
// eslint-disable-next-line import/no-mutable-exports
|
|
@@ -18,7 +18,21 @@ export const EndPoints = {
|
|
|
18
18
|
OIDC_LOGIN_TEMPLATE: (targetUrl) => `/callosum/v1/oidc/login?targetURLPath=${targetUrl}`,
|
|
19
19
|
TOKEN_LOGIN: '/callosum/v1/session/login/token',
|
|
20
20
|
BASIC_LOGIN: '/callosum/v1/session/login',
|
|
21
|
+
LOGOUT: '/callosum/v1/session/logout',
|
|
21
22
|
};
|
|
23
|
+
export var AuthFailureType;
|
|
24
|
+
(function (AuthFailureType) {
|
|
25
|
+
AuthFailureType["SDK"] = "SDK";
|
|
26
|
+
AuthFailureType["NO_COOKIE_ACCESS"] = "NO_COOKIE_ACCESS";
|
|
27
|
+
AuthFailureType["EXPIRY"] = "EXPIRY";
|
|
28
|
+
AuthFailureType["OTHER"] = "OTHER";
|
|
29
|
+
})(AuthFailureType || (AuthFailureType = {}));
|
|
30
|
+
export var AuthStatus;
|
|
31
|
+
(function (AuthStatus) {
|
|
32
|
+
AuthStatus["FAILURE"] = "FAILURE";
|
|
33
|
+
AuthStatus["SUCCESS"] = "SUCCESS";
|
|
34
|
+
AuthStatus["LOGOUT"] = "LOGOUT";
|
|
35
|
+
})(AuthStatus || (AuthStatus = {}));
|
|
22
36
|
/**
|
|
23
37
|
* Check if we are logged into the ThoughtSpot cluster
|
|
24
38
|
* @param thoughtSpotHost The ThoughtSpot cluster hostname or IP
|
|
@@ -44,6 +58,17 @@ export function initSession(sessionDetails) {
|
|
|
44
58
|
sessionInfo = sessionDetails;
|
|
45
59
|
initMixpanel(sessionInfo);
|
|
46
60
|
}
|
|
61
|
+
const DUPLICATE_TOKEN_ERR = 'Duplicate token, please issue a new token every time getAuthToken callback is called.' +
|
|
62
|
+
'See https://developers.thoughtspot.com/docs/?pageid=embed-auth#trusted-auth-embed for more details.';
|
|
63
|
+
let prevAuthToken = null;
|
|
64
|
+
function alertForDuplicateToken(authtoken) {
|
|
65
|
+
if (prevAuthToken === authtoken) {
|
|
66
|
+
// eslint-disable-next-line no-alert
|
|
67
|
+
alert(DUPLICATE_TOKEN_ERR);
|
|
68
|
+
throw new Error(DUPLICATE_TOKEN_ERR);
|
|
69
|
+
}
|
|
70
|
+
prevAuthToken = authtoken;
|
|
71
|
+
}
|
|
47
72
|
/**
|
|
48
73
|
* Check if we are stuck at the SSO redirect URL
|
|
49
74
|
*/
|
|
@@ -69,20 +94,22 @@ export const doTokenAuth = async (embedConfig) => {
|
|
|
69
94
|
if (!authEndpoint && !getAuthToken) {
|
|
70
95
|
throw new Error('Either auth endpoint or getAuthToken function must be provided');
|
|
71
96
|
}
|
|
72
|
-
|
|
73
|
-
if (!
|
|
97
|
+
loggedInStatus = await isLoggedIn(thoughtSpotHost);
|
|
98
|
+
if (!loggedInStatus) {
|
|
74
99
|
let authToken = null;
|
|
75
100
|
if (getAuthToken) {
|
|
76
101
|
authToken = await getAuthToken();
|
|
102
|
+
alertForDuplicateToken(authToken);
|
|
77
103
|
}
|
|
78
104
|
else {
|
|
79
105
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
80
106
|
authToken = await response.text();
|
|
81
107
|
}
|
|
82
|
-
await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
83
|
-
|
|
108
|
+
const resp = await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
109
|
+
// token login issues a 302 when successful
|
|
110
|
+
loggedInStatus = resp.ok || resp.type === 'opaqueredirect';
|
|
84
111
|
}
|
|
85
|
-
loggedInStatus
|
|
112
|
+
return loggedInStatus;
|
|
86
113
|
};
|
|
87
114
|
/**
|
|
88
115
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
@@ -97,9 +124,12 @@ export const doBasicAuth = async (embedConfig) => {
|
|
|
97
124
|
const loggedIn = await isLoggedIn(thoughtSpotHost);
|
|
98
125
|
if (!loggedIn) {
|
|
99
126
|
const response = await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
100
|
-
loggedInStatus = response.
|
|
127
|
+
loggedInStatus = response.ok;
|
|
101
128
|
}
|
|
102
|
-
|
|
129
|
+
else {
|
|
130
|
+
loggedInStatus = true;
|
|
131
|
+
}
|
|
132
|
+
return loggedInStatus;
|
|
103
133
|
};
|
|
104
134
|
async function samlPopupFlow(ssoURL) {
|
|
105
135
|
document.body.insertAdjacentHTML('beforeend', '<div id="ts-saml-auth"></div>');
|
|
@@ -149,6 +179,7 @@ const doSSOAuth = async (embedConfig, ssoEndPoint) => {
|
|
|
149
179
|
const ssoURL = `${thoughtSpotHost}${ssoEndPoint}`;
|
|
150
180
|
if (embedConfig.noRedirect) {
|
|
151
181
|
await samlPopupFlow(ssoURL);
|
|
182
|
+
loggedInStatus = true;
|
|
152
183
|
return;
|
|
153
184
|
}
|
|
154
185
|
window.location.href = ssoURL;
|
|
@@ -163,6 +194,7 @@ export const doSamlAuth = async (embedConfig) => {
|
|
|
163
194
|
// bring back the page to the same URL
|
|
164
195
|
const ssoEndPoint = `${EndPoints.SAML_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
165
196
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
197
|
+
return loggedInStatus;
|
|
166
198
|
};
|
|
167
199
|
export const doOIDCAuth = async (embedConfig) => {
|
|
168
200
|
const { thoughtSpotHost } = embedConfig;
|
|
@@ -174,6 +206,13 @@ export const doOIDCAuth = async (embedConfig) => {
|
|
|
174
206
|
// bring back the page to the same URL
|
|
175
207
|
const ssoEndPoint = `${EndPoints.OIDC_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
176
208
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
209
|
+
return loggedInStatus;
|
|
210
|
+
};
|
|
211
|
+
export const logout = async (embedConfig) => {
|
|
212
|
+
const { thoughtSpotHost } = embedConfig;
|
|
213
|
+
const response = await fetchLogoutService(thoughtSpotHost);
|
|
214
|
+
loggedInStatus = false;
|
|
215
|
+
return loggedInStatus;
|
|
177
216
|
};
|
|
178
217
|
/**
|
|
179
218
|
* Perform authentication on the ThoughtSpot cluster
|
|
@@ -191,7 +230,7 @@ export const authenticate = async (embedConfig) => {
|
|
|
191
230
|
case AuthType.Basic:
|
|
192
231
|
return doBasicAuth(embedConfig);
|
|
193
232
|
default:
|
|
194
|
-
return Promise.resolve();
|
|
233
|
+
return Promise.resolve(true);
|
|
195
234
|
}
|
|
196
235
|
};
|
|
197
236
|
/**
|
package/lib/src/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAe,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,2CAA2C;AAC3C,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
package/lib/src/auth.spec.js
CHANGED
|
@@ -7,12 +7,12 @@ const username = 'tsuser';
|
|
|
7
7
|
const password = '12345678';
|
|
8
8
|
const samalLoginUrl = `${thoughtSpotHost}/callosum/v1/saml/login?targetURLPath=%235e16222e-ef02-43e9-9fbd-24226bf3ce5b`;
|
|
9
9
|
const embedConfig = {
|
|
10
|
-
doTokenAuthSuccess: {
|
|
10
|
+
doTokenAuthSuccess: (token) => ({
|
|
11
11
|
thoughtSpotHost,
|
|
12
12
|
username,
|
|
13
13
|
authEndpoint: 'auth',
|
|
14
|
-
getAuthToken: jest.fn(() => Promise.resolve(
|
|
15
|
-
},
|
|
14
|
+
getAuthToken: jest.fn(() => Promise.resolve(token)),
|
|
15
|
+
}),
|
|
16
16
|
doTokenAuthFailureWithoutAuthEndPoint: {
|
|
17
17
|
thoughtSpotHost,
|
|
18
18
|
username,
|
|
@@ -33,9 +33,15 @@ const embedConfig = {
|
|
|
33
33
|
doSamlAuth: {
|
|
34
34
|
thoughtSpotHost,
|
|
35
35
|
},
|
|
36
|
+
doOidcAuth: {
|
|
37
|
+
thoughtSpotHost,
|
|
38
|
+
},
|
|
36
39
|
SSOAuth: {
|
|
37
40
|
authType: AuthType.SSO,
|
|
38
41
|
},
|
|
42
|
+
OIDCAuth: {
|
|
43
|
+
authType: AuthType.OIDC,
|
|
44
|
+
},
|
|
39
45
|
authServerFailure: {
|
|
40
46
|
thoughtSpotHost,
|
|
41
47
|
username,
|
|
@@ -90,22 +96,27 @@ describe('Unit test for auth', () => {
|
|
|
90
96
|
json: () => mockSessionInfo,
|
|
91
97
|
status: 200,
|
|
92
98
|
}));
|
|
93
|
-
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess);
|
|
99
|
+
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken'));
|
|
94
100
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
95
101
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
96
102
|
});
|
|
97
|
-
test('doTokenAuth: when user is not loggedIn & getAuthToken have response
|
|
103
|
+
test('doTokenAuth: when user is not loggedIn & getAuthToken have response', async () => {
|
|
98
104
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
|
|
99
105
|
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => ({ text: () => Promise.resolve('abc') }));
|
|
100
|
-
jest.spyOn(authService, 'fetchAuthService')
|
|
101
|
-
|
|
106
|
+
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
107
|
+
status: 200,
|
|
108
|
+
}));
|
|
109
|
+
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken2'));
|
|
102
110
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
103
|
-
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, '
|
|
111
|
+
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
|
|
104
112
|
});
|
|
105
113
|
test('doTokenAuth: when user is not loggedIn & getAuthToken not present, isLoggedIn should called', async () => {
|
|
106
114
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
|
|
107
115
|
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => Promise.resolve({ text: () => Promise.resolve('abc') }));
|
|
108
|
-
jest.spyOn(authService, 'fetchAuthService')
|
|
116
|
+
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
117
|
+
status: 200,
|
|
118
|
+
ok: true,
|
|
119
|
+
}));
|
|
109
120
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthFailureWithoutGetAuthToken);
|
|
110
121
|
await executeAfterWait(() => {
|
|
111
122
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
@@ -113,6 +124,31 @@ describe('Unit test for auth', () => {
|
|
|
113
124
|
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'abc');
|
|
114
125
|
});
|
|
115
126
|
});
|
|
127
|
+
test('doTokenAuth: Should raise error when duplicate token is used', async () => {
|
|
128
|
+
jest.spyOn(authService, 'fetchSessionInfoService').mockResolvedValue({
|
|
129
|
+
status: 401,
|
|
130
|
+
});
|
|
131
|
+
jest.spyOn(window, 'alert').mockClear();
|
|
132
|
+
jest.spyOn(window, 'alert').mockReturnValue(undefined);
|
|
133
|
+
jest.spyOn(authService, 'fetchAuthService').mockReset();
|
|
134
|
+
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
135
|
+
status: 200,
|
|
136
|
+
ok: true,
|
|
137
|
+
}));
|
|
138
|
+
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken3'));
|
|
139
|
+
try {
|
|
140
|
+
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken3'));
|
|
141
|
+
expect(false).toBe(true);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
expect(e.message).toContain('Duplicate token');
|
|
145
|
+
}
|
|
146
|
+
await executeAfterWait(() => {
|
|
147
|
+
expect(authInstance.loggedInStatus).toBe(false);
|
|
148
|
+
expect(window.alert).toBeCalled();
|
|
149
|
+
expect(authService.fetchAuthService).toHaveBeenCalledTimes(1);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
116
152
|
describe('doBasicAuth', () => {
|
|
117
153
|
beforeEach(() => {
|
|
118
154
|
global.fetch = window.fetch;
|
|
@@ -128,7 +164,7 @@ describe('Unit test for auth', () => {
|
|
|
128
164
|
});
|
|
129
165
|
it('when user is not loggedIn', async () => {
|
|
130
166
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
131
|
-
jest.spyOn(authService, 'fetchBasicAuthService').mockImplementation(() => ({ status: 200 }));
|
|
167
|
+
jest.spyOn(authService, 'fetchBasicAuthService').mockImplementation(() => ({ status: 200, ok: true }));
|
|
132
168
|
await authInstance.doBasicAuth(embedConfig.doBasicAuth);
|
|
133
169
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
134
170
|
expect(authService.fetchBasicAuthService).toBeCalled();
|
|
@@ -185,21 +221,43 @@ describe('Unit test for auth', () => {
|
|
|
185
221
|
},
|
|
186
222
|
});
|
|
187
223
|
spyOn(authInstance, 'samlCompletionPromise');
|
|
224
|
+
global.window.open = jest.fn();
|
|
188
225
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
189
226
|
expect(await authInstance.samlCompletionPromise).not.toBe(null);
|
|
190
227
|
expect(await authInstance.doSamlAuth({
|
|
191
228
|
...embedConfig.doSamlAuth,
|
|
192
229
|
noRedirect: true,
|
|
193
|
-
})).toBe(
|
|
230
|
+
})).toBe(true);
|
|
194
231
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
195
232
|
});
|
|
196
233
|
});
|
|
234
|
+
describe('doOIDCAuth', () => {
|
|
235
|
+
afterEach(() => {
|
|
236
|
+
delete global.window;
|
|
237
|
+
global.window = Object.create(originalWindow);
|
|
238
|
+
global.window.open = jest.fn();
|
|
239
|
+
global.fetch = window.fetch;
|
|
240
|
+
});
|
|
241
|
+
it('when user is not loggedIn & isAtSSORedirectUrl is true', async () => {
|
|
242
|
+
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
243
|
+
await authInstance.doOIDCAuth(embedConfig.doOidcAuth);
|
|
244
|
+
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
245
|
+
expect(window.location.hash).toBe('');
|
|
246
|
+
expect(authInstance.loggedInStatus).toBe(false);
|
|
247
|
+
});
|
|
248
|
+
});
|
|
197
249
|
it('authenticate: when authType is SSO', async () => {
|
|
198
250
|
jest.spyOn(authInstance, 'doSamlAuth');
|
|
199
251
|
await authInstance.authenticate(embedConfig.SSOAuth);
|
|
200
252
|
expect(window.location.hash).toBe('');
|
|
201
253
|
expect(authInstance.doSamlAuth).toBeCalled();
|
|
202
254
|
});
|
|
255
|
+
it('authenticate: when authType is OIDC', async () => {
|
|
256
|
+
jest.spyOn(authInstance, 'doOIDCAuth');
|
|
257
|
+
await authInstance.authenticate(embedConfig.OIDCAuth);
|
|
258
|
+
expect(window.location.hash).toBe('');
|
|
259
|
+
expect(authInstance.doOIDCAuth).toBeCalled();
|
|
260
|
+
});
|
|
203
261
|
it('authenticate: when authType is AuthServer', async () => {
|
|
204
262
|
spyOn(authInstance, 'doTokenAuth');
|
|
205
263
|
await authInstance.authenticate(embedConfig.authServerFailure);
|
package/lib/src/auth.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/src/embed/base.d.ts
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022
|
|
3
|
+
*
|
|
4
|
+
* Base classes
|
|
5
|
+
*
|
|
6
|
+
* @summary Base classes
|
|
7
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
8
|
+
*/
|
|
9
|
+
import EventEmitter from 'eventemitter3';
|
|
1
10
|
import { EmbedConfig } from '../types';
|
|
2
|
-
|
|
11
|
+
import { AuthFailureType } from '../auth';
|
|
12
|
+
export declare let authPromise: Promise<boolean>;
|
|
13
|
+
export declare const getEmbedConfig: () => EmbedConfig;
|
|
14
|
+
export declare const getAuthPromise: () => Promise<boolean>;
|
|
15
|
+
export declare function notifyAuthSuccess(): void;
|
|
16
|
+
export declare function notifyAuthFailure(failureType: AuthFailureType): void;
|
|
17
|
+
export declare function notifyLogout(): void;
|
|
3
18
|
/**
|
|
4
19
|
* Perform authentication on the ThoughtSpot app as applicable.
|
|
5
20
|
*/
|
|
6
|
-
export declare const handleAuth: () => Promise<
|
|
7
|
-
export declare const getEmbedConfig: () => EmbedConfig;
|
|
8
|
-
export declare const getAuthPromise: () => Promise<void>;
|
|
21
|
+
export declare const handleAuth: () => Promise<boolean>;
|
|
9
22
|
/**
|
|
10
23
|
* Prefetches static resources from the specified URL. Web browsers can then cache the prefetched resources and serve them from the user's local disk to provide faster access to your app.
|
|
11
24
|
* @param url The URL provided for prefetch
|
|
@@ -19,9 +32,12 @@ export declare const prefetch: (url?: string) => void;
|
|
|
19
32
|
*
|
|
20
33
|
* @returns authPromise Promise which resolves when authentication is complete.
|
|
21
34
|
*/
|
|
22
|
-
export declare const init: (embedConfig: EmbedConfig) =>
|
|
35
|
+
export declare const init: (embedConfig: EmbedConfig) => EventEmitter;
|
|
36
|
+
export declare function disableAutoLogin(): void;
|
|
37
|
+
export declare const logout: (doNotDisableAutoLogin?: boolean) => Promise<boolean>;
|
|
23
38
|
/**
|
|
24
39
|
* Renders functions in a queue, resolves to next function only after the callback next is called
|
|
25
40
|
* @param fn The function being registered
|
|
26
41
|
*/
|
|
27
42
|
export declare const renderInQueue: (fn: (next?: (val?: any) => void) => void) => void;
|
|
43
|
+
export declare function reset(): void;
|
package/lib/src/embed/base.js
CHANGED
|
@@ -7,24 +7,55 @@
|
|
|
7
7
|
* @summary Base classes
|
|
8
8
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
9
9
|
*/
|
|
10
|
+
import EventEmitter from 'eventemitter3';
|
|
10
11
|
import { getThoughtSpotHost } from '../config';
|
|
11
|
-
import {
|
|
12
|
+
import { AuthType } from '../types';
|
|
13
|
+
import { authenticate, logout as _logout, AuthFailureType, AuthStatus, } from '../auth';
|
|
12
14
|
import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
|
|
13
15
|
let config = {};
|
|
16
|
+
const CONFIG_DEFAULTS = {
|
|
17
|
+
loginFailedMessage: 'Not logged in',
|
|
18
|
+
authType: AuthType.None,
|
|
19
|
+
};
|
|
14
20
|
export let authPromise;
|
|
21
|
+
export const getEmbedConfig = () => config;
|
|
22
|
+
export const getAuthPromise = () => authPromise;
|
|
23
|
+
let authEE;
|
|
24
|
+
export function notifyAuthSuccess() {
|
|
25
|
+
if (!authEE) {
|
|
26
|
+
console.error('SDK not initialized');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
authEE.emit(AuthStatus.SUCCESS);
|
|
30
|
+
}
|
|
31
|
+
export function notifyAuthFailure(failureType) {
|
|
32
|
+
if (!authEE) {
|
|
33
|
+
console.error('SDK not initialized');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
authEE.emit(AuthStatus.FAILURE, failureType);
|
|
37
|
+
}
|
|
38
|
+
export function notifyLogout() {
|
|
39
|
+
if (!authEE) {
|
|
40
|
+
console.error('SDK not initialized');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
authEE.emit(AuthStatus.LOGOUT);
|
|
44
|
+
}
|
|
15
45
|
/**
|
|
16
46
|
* Perform authentication on the ThoughtSpot app as applicable.
|
|
17
47
|
*/
|
|
18
48
|
export const handleAuth = () => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
49
|
+
authPromise = authenticate(config);
|
|
50
|
+
authPromise.then((isLoggedIn) => {
|
|
51
|
+
if (!isLoggedIn) {
|
|
52
|
+
notifyAuthFailure(AuthFailureType.SDK);
|
|
53
|
+
}
|
|
54
|
+
}, () => {
|
|
55
|
+
notifyAuthFailure(AuthFailureType.SDK);
|
|
56
|
+
});
|
|
24
57
|
return authPromise;
|
|
25
58
|
};
|
|
26
|
-
export const getEmbedConfig = () => config;
|
|
27
|
-
export const getAuthPromise = () => authPromise;
|
|
28
59
|
/**
|
|
29
60
|
* Prefetches static resources from the specified URL. Web browsers can then cache the prefetched resources and serve them from the user's local disk to provide faster access to your app.
|
|
30
61
|
* @param url The URL provided for prefetch
|
|
@@ -53,7 +84,12 @@ export const prefetch = (url) => {
|
|
|
53
84
|
* @returns authPromise Promise which resolves when authentication is complete.
|
|
54
85
|
*/
|
|
55
86
|
export const init = (embedConfig) => {
|
|
56
|
-
config =
|
|
87
|
+
config = {
|
|
88
|
+
...CONFIG_DEFAULTS,
|
|
89
|
+
...embedConfig,
|
|
90
|
+
thoughtSpotHost: getThoughtSpotHost(embedConfig),
|
|
91
|
+
};
|
|
92
|
+
authEE = new EventEmitter();
|
|
57
93
|
handleAuth();
|
|
58
94
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_CALLED_INIT, {
|
|
59
95
|
authType: config.authType,
|
|
@@ -62,7 +98,19 @@ export const init = (embedConfig) => {
|
|
|
62
98
|
if (config.callPrefetch) {
|
|
63
99
|
prefetch(config.thoughtSpotHost);
|
|
64
100
|
}
|
|
65
|
-
return
|
|
101
|
+
return authEE;
|
|
102
|
+
};
|
|
103
|
+
export function disableAutoLogin() {
|
|
104
|
+
config.autoLogin = false;
|
|
105
|
+
}
|
|
106
|
+
export const logout = (doNotDisableAutoLogin = false) => {
|
|
107
|
+
if (!doNotDisableAutoLogin) {
|
|
108
|
+
disableAutoLogin();
|
|
109
|
+
}
|
|
110
|
+
return _logout(config).then((isLoggedIn) => {
|
|
111
|
+
notifyLogout();
|
|
112
|
+
return isLoggedIn;
|
|
113
|
+
});
|
|
66
114
|
};
|
|
67
115
|
let renderQueue = Promise.resolve();
|
|
68
116
|
/**
|
|
@@ -79,4 +127,10 @@ export const renderInQueue = (fn) => {
|
|
|
79
127
|
fn(() => { }); // eslint-disable-line @typescript-eslint/no-empty-function
|
|
80
128
|
}
|
|
81
129
|
};
|
|
130
|
+
// For testing purposes only
|
|
131
|
+
export function reset() {
|
|
132
|
+
config = {};
|
|
133
|
+
authEE = null;
|
|
134
|
+
authPromise = null;
|
|
135
|
+
}
|
|
82
136
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"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"}
|