@cubejs-client/playground 1.6.0 → 1.6.2

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.
@@ -1,351 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Tabs, Alert, Checkbox, Typography, Space } from 'antd';
3
- import styled from 'styled-components';
4
- import { CodeSnippet } from '../../atoms';
5
- import { CopiableInput } from '../../components/CopiableInput';
6
- import deepnoteSvg from '../../img/bi/deepnote.svg';
7
- import excelSvg from '../../img/bi/excel.svg';
8
- import googleStudioSvg from '../../img/bi/google-data-studio.svg';
9
- import googleSheetsSvg from '../../img/bi/google-sheets.svg';
10
- import jupyterSvg from '../../img/bi/jupyter.svg';
11
- import hexSvg from '../../img/bi/hex.svg';
12
- import metabaseSvg from '../../img/bi/metabase.svg';
13
- import observableSvg from '../../img/bi/observable.svg';
14
- import powerbiSvg from '../../img/bi/power-bi.svg';
15
- import streamlitSvg from '../../img/bi/streamlit.svg';
16
- import supersetSvg from '../../img/bi/superset.svg';
17
- import tableauSvg from '../../img/bi/tableau.svg';
18
- import hightouchSvg from '../../img/bi/hightouch.svg';
19
- import thoughtSpot from '../../img/bi/thoughtspot.svg';
20
- import semanticLayer from '../../img/semantic-layer.svg';
21
- import { Content, Header } from '../components/Ui';
22
- import { Flex } from '../../grid';
23
- const { Paragraph, Link } = Typography;
24
- const SpaceFlex = styled(Space) `
25
- div.ant-space {
26
- display: flex;
27
- }
28
- `;
29
- const BI_KEYS = {
30
- Generic: 'BIs and Visualization Tools',
31
- Superset: 'Apache Superset',
32
- Metabase: 'Metabase',
33
- Tableau: 'Tableau',
34
- ThoughtSpot: 'ThoughtSpot',
35
- PowerBI: 'Power BI',
36
- Hex: 'Hex',
37
- Jupyter: 'Jupyter notebook',
38
- Streamlit: 'Streamlit',
39
- Observable: 'Observable',
40
- // Not listed on the integration page:
41
- Deepnote: 'Deepnote',
42
- Excel: 'Excel',
43
- GoogleStudio: 'Google Data Studio',
44
- GoogleSheets: 'Google Sheets',
45
- Hightouch: 'Hightouch',
46
- };
47
- const IconSection = styled.div `
48
- width: 32px;
49
- height: 32px;
50
- display: flex;
51
- align-items: center;
52
- justify-content: center;
53
- //margin: 1bw;
54
- `;
55
- const cubeIcon = (_jsx("svg", { viewBox: "0 0 14 14", width: 22, height: 22, xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd", d: "M14 2.72195V10.5212C14 10.9354 13.7478 11.308 13.3631 11.4618L7 14.0071L0.636881 11.4618C0.252227 11.308 1.556e-07 10.9354 1.556e-07 10.5212V2.72195L6.62372 0.0724644C6.86527 -0.0241549 7.13473 -0.0241547 7.37628 0.0724644L14 2.72195ZM11.9594 3.0961L7 1.11236L2.04064 3.0961L7 5.07985L11.9594 3.0961ZM6.44737 6.0492L1.10526 3.91236V10.4588L6.44737 12.5956L6.44737 6.0492ZM7.55263 12.5956L7.55263 6.0492L12.8947 3.91236V10.4588L7.55263 12.5956Z" }) }));
56
- const BI_ICONS = {
57
- Generic: null,
58
- Deepnote: deepnoteSvg,
59
- Excel: excelSvg,
60
- GoogleStudio: googleStudioSvg,
61
- GoogleSheets: googleSheetsSvg,
62
- Jupyter: jupyterSvg,
63
- Hex: hexSvg,
64
- Hightouch: hightouchSvg,
65
- Metabase: metabaseSvg,
66
- Observable: observableSvg,
67
- PowerBI: powerbiSvg,
68
- Streamlit: streamlitSvg,
69
- Superset: supersetSvg,
70
- Tableau: tableauSvg,
71
- ThoughtSpot: thoughtSpot,
72
- };
73
- function BiIcon({ type }) {
74
- const src = BI_ICONS[type];
75
- const key = BI_KEYS[type];
76
- if (src) {
77
- return (_jsx(IconSection, { children: _jsx("img", { src: src, width: 32, alt: `${key} Icon` }) }));
78
- }
79
- return _jsx(IconSection, { children: cubeIcon });
80
- }
81
- const CUBESQL_PG_PORT = '15432';
82
- const PG_SNIPPET_FIELD = {
83
- type: 'snippet',
84
- label: 'Psql connection string',
85
- value: ({ cubeSqlPassword, cubeSqlUser, cubeSqlHost, cubeSqlRoute, }) => `${cubeSqlPassword ? 'PGPASSWORD=' + cubeSqlPassword + ' \\\n ' : ''}psql -h ${cubeSqlHost} \\
86
- -p ${CUBESQL_PG_PORT} \\
87
- -U ${cubeSqlUser} ${cubeSqlRoute}`,
88
- };
89
- const POSTGRESQL_FIELD = {
90
- type: 'text',
91
- label: 'Connection type',
92
- value: 'PostgreSQL',
93
- };
94
- const BASE_CREDENTIALS = [
95
- {
96
- label: 'Host',
97
- value: ({ cubeSqlHost }) => cubeSqlHost,
98
- },
99
- {
100
- label: 'Port',
101
- value: CUBESQL_PG_PORT,
102
- },
103
- {
104
- label: 'Database',
105
- value: ({ cubeSqlRoute }, branchName) => `${cubeSqlRoute}${branchName ? '_' + branchName : ''}`,
106
- },
107
- {
108
- label: 'User',
109
- value: ({ cubeSqlUser }) => cubeSqlUser,
110
- },
111
- {
112
- label: 'Password',
113
- value: ({ cubeSqlPassword }) => cubeSqlPassword,
114
- },
115
- ];
116
- function Field({ label, children }) {
117
- return (_jsxs(Space, { direction: "vertical", children: [_jsx(Typography.Text, { strong: true, children: label }), children] }));
118
- }
119
- function getFields(fields, credentials) {
120
- return fields.map((field) => {
121
- const value = (typeof field.value === 'function' ? field.value(credentials) : field.value);
122
- switch (field.type) {
123
- case 'checkbox':
124
- return (_jsx(Field, { label: field.label, children: _jsx(Checkbox, { checked: !!value }) }, field.label));
125
- case 'text':
126
- return (_jsx(Field, { label: field.label, children: _jsx(Typography.Text, { children: value }) }));
127
- case 'link':
128
- const target = value.startsWith('!') ? '_blank' : undefined;
129
- const href = value.replace(/^!/, '');
130
- return (_jsx(Typography.Paragraph, { children: _jsxs(Typography.Link, { href: href, target: target, children: [field.label, "\u2197"] }) }));
131
- case 'alert':
132
- return _jsx(Alert, { message: value });
133
- case 'heading':
134
- return _jsx(Typography.Title, { children: value });
135
- case 'custom':
136
- return value;
137
- case 'snippet':
138
- return _jsx(CodeSnippet, { theme: "light", code: value });
139
- default:
140
- return (_jsx(Field, { label: field.label, children: _jsx(CopiableInput, { value: value, title: "Server" }) }, field.label));
141
- }
142
- }, {});
143
- }
144
- function renameFields(fields, renameMap) {
145
- return fields.map((field) => {
146
- const label = field.label;
147
- return {
148
- ...field,
149
- ...(label
150
- ? {
151
- label: renameMap[label] || label,
152
- }
153
- : null),
154
- };
155
- });
156
- }
157
- const BI_FIELDS = {
158
- Generic: [POSTGRESQL_FIELD, PG_SNIPPET_FIELD, ...BASE_CREDENTIALS],
159
- PowerBI: [
160
- POSTGRESQL_FIELD,
161
- ...renameFields(BASE_CREDENTIALS, {
162
- Host: 'Server',
163
- User: 'User name',
164
- }),
165
- {
166
- type: 'text',
167
- label: 'Data Connectivity mode',
168
- value: 'DirectQuery',
169
- },
170
- ],
171
- Jupyter: [
172
- {
173
- type: 'link',
174
- label: 'Tutorial: Using Jupyter with Cube',
175
- value: '!https://cube.dev/docs/config/downstream/jupyter',
176
- },
177
- {
178
- label: 'Driver Name',
179
- value: 'postgresql',
180
- },
181
- ...renameFields(BASE_CREDENTIALS, {
182
- User: 'Username',
183
- }),
184
- ],
185
- Metabase: [
186
- {
187
- type: 'link',
188
- label: 'Tutorial: Using Metabase with Cube',
189
- value: '!https://cube.dev/docs/config/downstream/metabase',
190
- },
191
- {
192
- type: 'text',
193
- label: 'Database Type',
194
- value: 'PostgreSQL',
195
- },
196
- ...renameFields(BASE_CREDENTIALS, {
197
- Database: 'Database name',
198
- User: 'Username',
199
- }),
200
- ],
201
- Streamlit: [
202
- {
203
- type: 'link',
204
- label: 'Tutorial: Using Streamlit with Cube',
205
- value: '!https://cube.dev/docs/config/downstream/streamlit',
206
- },
207
- {
208
- label: 'Driver Name',
209
- value: 'postgresql',
210
- },
211
- ...renameFields(BASE_CREDENTIALS, {
212
- User: 'Username',
213
- }),
214
- ],
215
- Observable: [
216
- {
217
- type: 'link',
218
- label: 'Tutorial: Using Observable with Cube',
219
- value: '!https://cube.dev/docs/config/downstream/observable',
220
- },
221
- POSTGRESQL_FIELD,
222
- ...BASE_CREDENTIALS,
223
- {
224
- type: 'checkbox',
225
- label: 'Require SSL/TLS',
226
- value: true,
227
- },
228
- ],
229
- Tableau: [
230
- {
231
- type: 'link',
232
- label: 'Tutorial: Using Tableau with Cube',
233
- value: '!https://cube.dev/docs/config/downstream/tableau',
234
- },
235
- POSTGRESQL_FIELD,
236
- ...renameFields(BASE_CREDENTIALS, {
237
- Host: 'Server',
238
- User: 'Username',
239
- }),
240
- {
241
- type: 'checkbox',
242
- label: 'Use SSL',
243
- value: true,
244
- },
245
- ],
246
- Superset: [
247
- {
248
- type: 'link',
249
- label: 'Tutorial: Using Apache Superset with Cube',
250
- value: '!https://cube.dev/docs/recipes/using-apache-superset-with-cube-sql',
251
- },
252
- POSTGRESQL_FIELD,
253
- ...BASE_CREDENTIALS,
254
- ],
255
- GoogleSheets: [
256
- {
257
- type: 'link',
258
- label: 'Connect Cube and Google Sheets using Skyvia',
259
- value: '!https://skyvia.com/connectors/google-sheets',
260
- },
261
- POSTGRESQL_FIELD,
262
- ...renameFields(BASE_CREDENTIALS, {
263
- User: 'User ID',
264
- }),
265
- ],
266
- GoogleStudio: [POSTGRESQL_FIELD, ...BASE_CREDENTIALS],
267
- Excel: [
268
- {
269
- type: 'link',
270
- label: 'Connect Cube and Excel using Devart',
271
- value: '!https://www.devart.com/excel-addins/postgresql/',
272
- },
273
- POSTGRESQL_FIELD,
274
- ...renameFields(BASE_CREDENTIALS, {
275
- User: 'User id',
276
- }),
277
- ],
278
- Hex: [
279
- {
280
- type: 'link',
281
- label: 'Tutorial: Using Hex with Cube',
282
- value: '!https://cube.dev/docs/config/downstream/hex',
283
- },
284
- {
285
- label: 'Lang',
286
- value: 'Python + SQL',
287
- },
288
- POSTGRESQL_FIELD,
289
- ...renameFields(BASE_CREDENTIALS, {
290
- User: 'Username',
291
- }),
292
- {
293
- label: 'Type',
294
- value: 'Password',
295
- },
296
- ],
297
- Hightouch: [POSTGRESQL_FIELD, ...BASE_CREDENTIALS],
298
- Deepnote: [
299
- {
300
- type: 'link',
301
- label: 'Tutorial: Using Deepnote with Cube',
302
- value: '!https://cube.dev/docs/config/downstream/deepnote',
303
- },
304
- POSTGRESQL_FIELD,
305
- ...renameFields(BASE_CREDENTIALS, {
306
- Host: 'Hostname',
307
- User: 'Username',
308
- }),
309
- ],
310
- ThoughtSpot: [
311
- {
312
- type: 'text',
313
- label: 'Instructions',
314
- value: (_jsx(_Fragment, { children: _jsxs("ul", { children: [_jsxs("li", { children: ["Choose the ", _jsx("b", { children: "Data" }), " tab."] }), _jsxs("li", { children: ["Click the ", _jsx("b", { children: "Create new" }), " button and select ", _jsx("b", { children: "Connection" }), "."] }), _jsxs("li", { children: ["Name your connection and choose ", _jsx("b", { children: "Amazon Redshift" }), " data warehouse."] }), _jsxs("li", { children: ["Click ", _jsx("b", { children: "Continue" }), "."] }), _jsx("li", { children: "Fill the all the required data with the below values." }), _jsxs("li", { children: ["Click ", _jsx("b", { children: "Advanced Config" }), " and add the key ", _jsx("b", { children: "ssl" }), " with the value ", _jsx("b", { children: "false" }), "."] }), _jsxs("li", { children: ["Click ", _jsx("b", { children: "Continue" }), "."] })] }) })),
315
- },
316
- // {
317
- // label: 'Data Workspace',
318
- // value: 'Connection',
319
- // },
320
- // {
321
- // label: 'Data Warehouse',
322
- // value: 'Amazon Redshift',
323
- // },
324
- ...BASE_CREDENTIALS,
325
- {
326
- type: 'heading',
327
- value: 'Additional config',
328
- },
329
- {
330
- label: 'ssl',
331
- value: 'false',
332
- },
333
- ],
334
- };
335
- export function ConnectToBiPage() {
336
- const cubeSqlCredentials = {
337
- id: 1,
338
- cubeSqlHost: 'localhost',
339
- cubeSqlRoute: 'test',
340
- cubeSqlUser: 'username',
341
- cubeSqlPassword: 'password',
342
- };
343
- return (_jsxs(_Fragment, { children: [_jsx(Header, { children: _jsx(Typography.Title, { children: "Connect to BI" }) }), _jsxs(Flex, { gap: 3, children: [_jsxs(Content, { children: [_jsxs(Paragraph, { children: ["With Cube SQL API you can query Cube via Postgres-compatible SQL. It enables the use of BI applications and other visualization tools on top of Cube. ", _jsx("br", {}), _jsxs(Link, { href: "https://cube.dev/docs/config/downstream", target: "_blank", children: ["Learn more about SQL API and connecting to BI tools in Cube docs \u2197", ' '] })] }), _jsx(Tabs, { defaultActiveKey: "1", tabPosition: "left", size: "small", children: Object.entries(BI_KEYS).map(([key, title]) => (_jsx(Tabs.TabPane, { tab: _jsxs(Space, { children: [_jsx(BiIcon, { type: key }), title] }), children: _jsx(SpaceFlex, { direction: "vertical", style: {
344
- minWidth: 600,
345
- padding: '20px 15px',
346
- }, children: getFields(BI_FIELDS[key], cubeSqlCredentials) }) }, key))) })] }), _jsxs(Flex, { direction: "column", alignItems: "center", style: {
347
- gap: 32,
348
- maxWidth: 600,
349
- }, children: [_jsx(Typography.Text, { children: "Connect Cube to one or more BI tools to enable self-service analytics based on the metrics defined in the semantic layer." }), _jsx(Typography.Link, { href: "https://cubecloud.dev/auth/signup", target: "_blank", children: "Try on Cube Cloud" }), _jsx("img", { src: semanticLayer })] })] })] }));
350
- }
351
- //# sourceMappingURL=ConnectToBiPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConnectToBiPage.js","sourceRoot":"","sources":["../../../src/pages/ConnectToBI/ConnectToBiPage.tsx"],"names":[],"mappings":"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"}