@quillsql/admin 1.6.4 → 1.7.0

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.
Files changed (222) hide show
  1. package/dist/cjs/Admin.d.ts +11 -8
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +114 -7
  4. package/dist/cjs/AdminProvider.d.ts +24 -5
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +173 -85
  7. package/dist/cjs/api/ConnectionClient.d.ts +6 -3
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +66 -6
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/assets/XIcon.d.ts.map +1 -1
  12. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
  13. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  14. package/dist/cjs/components/DashboardSelectPopover.js +29 -1
  15. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  16. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  17. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  18. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  19. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  20. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  21. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +114 -34
  22. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  23. package/dist/cjs/components/OrgSelect.js +48 -4
  24. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +5 -1
  25. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  26. package/dist/cjs/components/QuillMultiSelectWithCombo.js +328 -149
  27. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  28. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  29. package/dist/cjs/components/QuillSelectWithCombo.js +34 -6
  30. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  31. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  32. package/dist/cjs/components/SqlTextEditor.js +15 -2
  33. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  34. package/dist/cjs/components/Tenants/EditTenant.js +51 -8
  35. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  36. package/dist/cjs/components/UiComponents.js +1 -0
  37. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  38. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +50 -2
  39. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  40. package/dist/cjs/forms/client_onboard/ConnectSchema.js +33 -1
  41. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  42. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  43. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +55 -21
  44. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -1
  45. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -1
  46. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  47. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +92 -10
  48. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  49. package/dist/cjs/hooks/useDatabaseSchema.js +12 -1
  50. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  51. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  52. package/dist/cjs/hooks/useLongLoading.js +67 -0
  53. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  54. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  55. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  56. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  57. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  58. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  59. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  60. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  61. package/dist/cjs/modals/CodePreview.js +7 -2
  62. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  63. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  64. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  65. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  66. package/dist/cjs/modals/EditEnvironmentModal.js +67 -15
  67. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  68. package/dist/cjs/modals/EditFiltersModal.js +12 -8
  69. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  70. package/dist/cjs/modals/NewDashboardModal.js +54 -28
  71. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  72. package/dist/cjs/modals/PromoteReportModal.js +15 -4
  73. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  74. package/dist/cjs/modals/PromoteViewModal.js +13 -2
  75. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  76. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  77. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  78. package/dist/cjs/primitives/PopoverPrimitive.js +16 -5
  79. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  80. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  81. package/dist/cjs/public_components/ChartQueryBuilder.js +6 -6
  82. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  83. package/dist/cjs/public_components/CreateEnvironment.js +49 -16
  84. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  85. package/dist/cjs/public_components/DashboardManager.js +63 -5
  86. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  87. package/dist/cjs/public_components/EnvSelectPopover.js +31 -3
  88. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  89. package/dist/cjs/public_components/VirtualTableManager.js +95 -5
  90. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +41 -2
  91. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  92. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  93. package/dist/cjs/utils/columnProcessing.js +6 -1
  94. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  96. package/dist/cjs/utils/databases.d.ts +6 -1
  97. package/dist/cjs/utils/databases.d.ts.map +1 -1
  98. package/dist/cjs/utils/databases.js +18 -0
  99. package/dist/cjs/utils/delay.d.ts.map +1 -1
  100. package/dist/cjs/utils/filter.d.ts +17 -21
  101. package/dist/cjs/utils/filter.d.ts.map +1 -1
  102. package/dist/cjs/utils/filter.js +6 -6
  103. package/dist/cjs/utils/report.d.ts +5 -5
  104. package/dist/cjs/utils/report.d.ts.map +1 -1
  105. package/dist/cjs/utils/schema.d.ts +6 -3
  106. package/dist/cjs/utils/schema.d.ts.map +1 -1
  107. package/dist/cjs/utils/schema.js +42 -3
  108. package/dist/cjs/utils/table.d.ts.map +1 -1
  109. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  110. package/dist/cjs/utils/ui.d.ts.map +1 -1
  111. package/dist/esm/Admin.d.ts +11 -8
  112. package/dist/esm/Admin.d.ts.map +1 -1
  113. package/dist/esm/Admin.js +115 -8
  114. package/dist/esm/AdminProvider.d.ts +24 -5
  115. package/dist/esm/AdminProvider.d.ts.map +1 -1
  116. package/dist/esm/AdminProvider.js +174 -86
  117. package/dist/esm/api/ConnectionClient.d.ts +6 -3
  118. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  119. package/dist/esm/api/ConnectionClient.js +66 -6
  120. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  121. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  122. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  123. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  124. package/dist/esm/components/DashboardSelectPopover.js +29 -1
  125. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  126. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  127. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  128. package/dist/esm/components/InternalDashboard/DashboardFilter.js +1 -1
  129. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  130. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  131. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  132. package/dist/esm/components/InternalDashboard/InternalDashboard.js +115 -35
  133. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  134. package/dist/esm/components/OrgSelect.js +48 -4
  135. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +5 -1
  136. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  137. package/dist/esm/components/QuillMultiSelectWithCombo.js +328 -149
  138. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  139. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  140. package/dist/esm/components/QuillSelectWithCombo.js +34 -6
  141. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  142. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  143. package/dist/esm/components/SqlTextEditor.js +15 -2
  144. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  145. package/dist/esm/components/Tenants/EditTenant.js +51 -8
  146. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  147. package/dist/esm/components/UiComponents.js +1 -0
  148. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  149. package/dist/esm/forms/client_onboard/ConnectDatabase.js +50 -2
  150. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  151. package/dist/esm/forms/client_onboard/ConnectSchema.js +33 -1
  152. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  153. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  154. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +56 -22
  155. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -1
  156. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -1
  157. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  158. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +93 -11
  159. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  160. package/dist/esm/hooks/useDatabaseSchema.js +12 -1
  161. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  162. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  163. package/dist/esm/hooks/useLongLoading.js +64 -0
  164. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  165. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  166. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  167. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  168. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  169. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  170. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  171. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  172. package/dist/esm/modals/CodePreview.js +7 -2
  173. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  174. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  175. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  176. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  177. package/dist/esm/modals/EditEnvironmentModal.js +67 -15
  178. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  179. package/dist/esm/modals/EditFiltersModal.js +13 -9
  180. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  181. package/dist/esm/modals/NewDashboardModal.js +55 -29
  182. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  183. package/dist/esm/modals/PromoteReportModal.js +15 -4
  184. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  185. package/dist/esm/modals/PromoteViewModal.js +13 -2
  186. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  187. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  188. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  189. package/dist/esm/primitives/PopoverPrimitive.js +16 -5
  190. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  191. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  192. package/dist/esm/public_components/ChartQueryBuilder.js +8 -8
  193. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  194. package/dist/esm/public_components/CreateEnvironment.js +49 -16
  195. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  196. package/dist/esm/public_components/DashboardManager.js +64 -6
  197. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  198. package/dist/esm/public_components/EnvSelectPopover.js +31 -3
  199. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  200. package/dist/esm/public_components/VirtualTableManager.js +95 -5
  201. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +41 -2
  202. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  203. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  204. package/dist/esm/utils/columnProcessing.js +6 -1
  205. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  206. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  207. package/dist/esm/utils/databases.d.ts +6 -1
  208. package/dist/esm/utils/databases.d.ts.map +1 -1
  209. package/dist/esm/utils/databases.js +18 -0
  210. package/dist/esm/utils/delay.d.ts.map +1 -1
  211. package/dist/esm/utils/filter.d.ts +17 -21
  212. package/dist/esm/utils/filter.d.ts.map +1 -1
  213. package/dist/esm/utils/filter.js +5 -5
  214. package/dist/esm/utils/report.d.ts +5 -5
  215. package/dist/esm/utils/report.d.ts.map +1 -1
  216. package/dist/esm/utils/schema.d.ts +6 -3
  217. package/dist/esm/utils/schema.d.ts.map +1 -1
  218. package/dist/esm/utils/schema.js +42 -3
  219. package/dist/esm/utils/table.d.ts.map +1 -1
  220. package/dist/esm/utils/tenants.d.ts.map +1 -1
  221. package/dist/esm/utils/ui.d.ts.map +1 -1
  222. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useReducer, createContext, useEffect, useContext, useState, useMemo, } from 'react';
2
+ import { useReducer, createContext, useEffect, useContext, useState, useMemo, useRef, } from 'react';
3
3
  import { defaultTheme as quillDefaultTheme, } from './Admin';
4
4
  import { QuillProvider } from '@quillsql/react';
5
5
  import { ALL_TENANTS, QUILL_ENDPOINTS, QUILL_QUERY_ENDPOINT, QUILL_SERVER, SINGLE_TENANT, } from './utils/constants';
@@ -101,6 +101,12 @@ function reducer(state, action) {
101
101
  return { ...state, currentTenantIdentity: action.payload };
102
102
  case 'SET_QUERY_HEADERS':
103
103
  return { ...state, queryHeaders: action.payload };
104
+ case 'SET_PUBLIC_KEY':
105
+ return { ...state, publicKey: action.payload };
106
+ case 'SET_CLERK_ORG_ID':
107
+ return { ...state, clerkOrgId: action.payload };
108
+ case 'SET_ALL_STATE':
109
+ return { ...state, ...action.payload };
104
110
  default:
105
111
  return state;
106
112
  }
@@ -112,11 +118,12 @@ const useAdmin = () => {
112
118
  }
113
119
  return { ...context, clientLoading: context.loading };
114
120
  };
115
- function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${QUILL_QUERY_ENDPOINT}`, queryHeaders, withCredentials, domainName, onOnboardComplete, flagsList, getAuthorizationToken = async () => '', theme, }) {
116
- const [clientLoading, setClientLoading] = useState(false);
117
- const [currentFetchingClient, setCurrentFetchingClient] = useState(undefined);
121
+ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${QUILL_QUERY_ENDPOINT}`, queryHeaders, withCredentials, clerkOrgId, onOnboardComplete, flagsList, getAuthorizationToken = async () => '', theme, eventTracking = null, onRequestAddVirtualTable, }) {
122
+ const [clientLoading, setClientLoading] = useState(true);
123
+ const currentFetchingClientRef = useRef(undefined);
118
124
  const [schemaLoading, setSchemaLoading] = useState(false);
119
125
  const [error, setError] = useState(null);
126
+ const publicKeyRef = useRef(undefined);
120
127
  const parsedSessionStorageAdminState = (adminState) => {
121
128
  // We store things using JSON.strigify and then restore them with JSON.parse
122
129
  // But certain objects, such as Dates, don't stringify/parse correctly
@@ -137,11 +144,31 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
137
144
  };
138
145
  const initialState = useMemo(() => {
139
146
  const localState = JSON.parse(sessionStorage.getItem('quill-adminState') ?? 'null');
140
- if (localState?.domainName === domainName && domainName) {
147
+ if (clerkOrgId && localState?.clerkOrgId === clerkOrgId) {
141
148
  return parsedSessionStorageAdminState(localState);
142
149
  }
143
150
  sessionStorage.removeItem('quill-adminState');
144
151
  sessionStorage.removeItem('quill-client');
152
+ const populatedTheme = {
153
+ ...theme,
154
+ fontFamily: theme?.fontFamily ?? quillDefaultTheme.fontFamily,
155
+ backgroundColor: theme?.backgroundColor ?? quillDefaultTheme.backgroundColor,
156
+ primaryTextColor: theme?.primaryTextColor ?? quillDefaultTheme.primaryTextColor,
157
+ secondaryTextColor: theme?.secondaryTextColor ?? quillDefaultTheme.secondaryTextColor,
158
+ chartLabelFontFamily: theme?.chartLabelFontFamily ?? quillDefaultTheme.chartLabelFontFamily,
159
+ chartLabelColor: theme?.chartLabelColor ?? quillDefaultTheme.chartLabelColor,
160
+ chartTickColor: theme?.chartTickColor ?? quillDefaultTheme.chartTickColor,
161
+ chartColors: theme?.chartColors ?? quillDefaultTheme.chartColors,
162
+ borderColor: theme?.borderColor ?? quillDefaultTheme.borderColor,
163
+ primaryButtonColor: theme?.primaryButtonColor ?? quillDefaultTheme.primaryButtonColor,
164
+ borderWidth: theme?.borderWidth ?? quillDefaultTheme.borderWidth,
165
+ buttonFontWeight: theme?.buttonFontWeight ?? quillDefaultTheme.buttonFontWeight,
166
+ labelFontWeight: theme?.labelFontWeight ?? quillDefaultTheme.labelFontWeight,
167
+ fontSize: theme?.fontSize ?? quillDefaultTheme.fontSize,
168
+ primaryButtonTextColor: theme?.primaryButtonTextColor ??
169
+ quillDefaultTheme.primaryButtonTextColor,
170
+ hoverBackgroundColor: theme?.hoverBackgroundColor ?? quillDefaultTheme.hoverBackgroundColor,
171
+ };
145
172
  return {
146
173
  loading: true,
147
174
  publicKey: publicKey || '',
@@ -163,11 +190,13 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
163
190
  selectedDashboard: null,
164
191
  reportId: null,
165
192
  report: null,
166
- theme: theme ?? quillDefaultTheme,
193
+ theme: populatedTheme,
167
194
  organizationIdSet: false,
168
195
  dateFilter: {},
169
- domainName: domainName || '',
196
+ clerkOrgId: clerkOrgId || '',
170
197
  databaseTypeMismatch: { show: false, backendDatabaseType: '' },
198
+ activeSavedQueryReportId: '',
199
+ databaseSchema: undefined,
171
200
  };
172
201
  }, []);
173
202
  const [state, dispatch] = useReducer(reducer, initialState);
@@ -192,9 +221,11 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
192
221
  ],
193
222
  };
194
223
  }, [state, flagsList, state.client]);
195
- const setClient = (client, setLoadingImmediately = false) => {
196
- if (setLoadingImmediately) {
224
+ const setClient = (client, fetchTenantInfo) => {
225
+ if (fetchTenantInfo) {
197
226
  setClientLoading(true);
227
+ fetchClient(client.clientId, false);
228
+ return;
198
229
  }
199
230
  dispatch({ type: 'SET_CLIENT_AND_TENANTS', payload: client });
200
231
  };
@@ -222,72 +253,74 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
222
253
  throw e;
223
254
  }
224
255
  console.error('Failed to fetch:', e);
256
+ eventTracking?.logError?.({
257
+ type: 'network',
258
+ severity: 'medium',
259
+ message: 'Failed to fetch data',
260
+ errorMessage: e.message,
261
+ errorStack: e.stack,
262
+ errorData: {
263
+ task: task,
264
+ },
265
+ });
225
266
  return { error: 'Failed to fetch data' };
226
267
  }
227
268
  }
228
- // queryHeaders prop can change dynamically, need to stay updated
229
- useEffect(() => {
230
- dispatch({ type: 'SET_QUERY_HEADERS', payload: queryHeaders });
231
- }, [queryHeaders]);
232
- useEffect(() => {
233
- const client = JSON.parse(sessionStorage.getItem('quill-client') || 'null');
234
- if (client?.id === publicKey) {
235
- dispatch({
236
- type: 'SET_CLIENT',
237
- payload: { ...client, _id: publicKey },
269
+ async function fetchClient(publicKey, fetchAllClients = false) {
270
+ setClientLoading(true);
271
+ currentFetchingClientRef.current = publicKey;
272
+ try {
273
+ const data = await quillFetchWithToken({
274
+ client: {
275
+ queryEndpoint,
276
+ queryHeaders: queryHeaders,
277
+ withCredentials: !!state.withCredentials,
278
+ clientId: publicKey,
279
+ },
280
+ task: 'client',
281
+ metadata: {
282
+ clientId: publicKey,
283
+ fetchDefaultDashboard: true,
284
+ },
285
+ adminMode: true,
238
286
  });
239
- }
240
- async function fetchClient(publicKey) {
241
- if (!publicKey) {
287
+ if (data.status === 'error') {
288
+ throw new Error(data.error);
289
+ }
290
+ const result = data.data || data;
291
+ if (!result.client) {
292
+ console.error('Client not found.');
242
293
  return;
243
294
  }
244
- setClientLoading(true);
245
- setCurrentFetchingClient(publicKey);
246
- try {
247
- const data = await quillFetchWithToken({
248
- client: {
249
- queryEndpoint,
250
- queryHeaders: queryHeaders,
251
- withCredentials: !!state.withCredentials,
252
- clientId: publicKey,
253
- },
254
- task: 'client',
255
- metadata: {
256
- clientId: publicKey,
257
- fetchDefaultDashboard: true,
258
- },
259
- adminMode: true,
295
+ const allClientTenantIds = await Promise.all(result.client.allTenantTypes?.map(async (tenant) => {
296
+ return await getClientTenantIds({
297
+ queryEndpoint,
298
+ queryHeaders: state.queryHeaders,
299
+ withCredentials: state.withCredentials,
300
+ tenant,
301
+ clientId: result.client._id,
302
+ getToken: getAuthorizationToken,
260
303
  });
261
- if (data.status === 'error') {
262
- throw new Error(data.error);
263
- }
264
- const result = data.data || data;
265
- if (!result.client) {
266
- console.error('Client not found.');
267
- return;
268
- }
269
- const allClientTenantIds = await Promise.all(result.client.allTenantTypes?.map(async (tenant) => {
270
- return await getClientTenantIds({
271
- queryEndpoint,
272
- queryHeaders: state.queryHeaders,
273
- withCredentials: state.withCredentials,
274
- tenant,
275
- clientId: result.client._id,
276
- getToken: getAuthorizationToken,
277
- });
278
- }) ?? []);
279
- const mappedTenantIds = allClientTenantIds.reduce((acc, curr) => {
280
- acc[curr.id] = curr.tenantIds;
281
- return acc;
282
- }, {});
283
- setClient({
284
- ...result.client,
285
- queryEndpoint: result.client.queryEndpoint ?? queryEndpoint,
286
- allTenantTypes: result.client.allTenantTypes?.map((tenant) => ({
287
- ...tenant,
288
- tenantIds: mappedTenantIds?.[tenant.id],
289
- })),
304
+ }) ?? []);
305
+ const mappedTenantIds = allClientTenantIds.reduce((acc, curr) => {
306
+ acc[curr.id] = curr.tenantIds;
307
+ return acc;
308
+ }, {});
309
+ if (result.client._id !== state.client?._id) {
310
+ dispatch({
311
+ type: 'SET_SELECTED_DASHBOARD_NAME',
312
+ payload: null,
290
313
  });
314
+ }
315
+ setClient({
316
+ ...result.client,
317
+ queryEndpoint: result.client.queryEndpoint ?? queryEndpoint,
318
+ allTenantTypes: result.client.allTenantTypes?.map((tenant) => ({
319
+ ...tenant,
320
+ tenantIds: mappedTenantIds?.[tenant.id],
321
+ })),
322
+ });
323
+ if (fetchAllClients) {
291
324
  const allClientsData = await quillFetchWithToken({
292
325
  client: {
293
326
  queryEndpoint,
@@ -322,21 +355,59 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
322
355
  payload: allClients,
323
356
  });
324
357
  }
325
- catch (error) {
326
- console.error('ERROR:', error);
327
- }
328
- finally {
329
- // We want this to trigger after the schema loading effect runs so the loading state doesn't flicker
330
- setTimeout(() => {
331
- setClientLoading(false);
332
- setCurrentFetchingClient(undefined);
333
- }, 200);
334
- }
335
358
  }
336
- if (currentFetchingClient === (state.client?.id ?? publicKey))
337
- return;
338
- fetchClient(state?.client?.id ?? publicKey);
339
- }, [publicKey, state?.client?.id]);
359
+ catch (error) {
360
+ console.error('ERROR:', error);
361
+ eventTracking?.logError?.({
362
+ type: 'bug', // TODO: determine type
363
+ severity: 'high',
364
+ message: 'Error fetching client',
365
+ errorMessage: error.message,
366
+ errorStack: error.stack,
367
+ errorData: {
368
+ caller: 'AdminProvider',
369
+ function: 'fetchClient',
370
+ },
371
+ });
372
+ }
373
+ finally {
374
+ // We want this to trigger after the schema loading effect runs so the loading state doesn't flicker
375
+ setTimeout(() => {
376
+ setClientLoading(false);
377
+ currentFetchingClientRef.current = undefined;
378
+ }, 200);
379
+ }
380
+ }
381
+ // queryHeaders prop can change dynamically, need to stay updated
382
+ useEffect(() => {
383
+ dispatch({ type: 'SET_QUERY_HEADERS', payload: queryHeaders });
384
+ }, [queryHeaders]);
385
+ useEffect(() => {
386
+ if (clerkOrgId) {
387
+ dispatch({ type: 'SET_CLERK_ORG_ID', payload: clerkOrgId });
388
+ }
389
+ }, [clerkOrgId]);
390
+ useEffect(() => {
391
+ if (publicKeyRef.current !== publicKey) {
392
+ dispatch({ type: 'SET_ALL_STATE', payload: initialState });
393
+ publicKeyRef.current = publicKey;
394
+ }
395
+ const client = JSON.parse(sessionStorage.getItem('quill-client') || 'null');
396
+ let overridePublicKey = null;
397
+ if (client && client.clerkOrgId === clerkOrgId) {
398
+ overridePublicKey = client.id || client._id || client.publicKey;
399
+ }
400
+ const fetchPublicKey = overridePublicKey || publicKey;
401
+ if (!fetchPublicKey) {
402
+ setClientLoading(false);
403
+ currentFetchingClientRef.current = undefined;
404
+ }
405
+ else {
406
+ if (currentFetchingClientRef.current === fetchPublicKey)
407
+ return;
408
+ fetchClient(fetchPublicKey, true);
409
+ }
410
+ }, [publicKey]);
340
411
  // Session storage
341
412
  useEffect(() => {
342
413
  // Overwrite the large collections to save performance
@@ -373,11 +444,22 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
373
444
  publicKey: clientId,
374
445
  clientId: clientId,
375
446
  withCredentials: state.withCredentials || false,
376
- }, 'svm', getAuthorizationToken, tenants);
447
+ }, 'svm', getAuthorizationToken, eventTracking, tenants);
377
448
  dispatch({ type: 'SET_TABLES', payload: schema });
378
449
  }
379
450
  catch (error) {
380
451
  console.error('ERROR:', error);
452
+ eventTracking?.logError?.({
453
+ type: 'bug', // TODO: determine type
454
+ severity: 'high',
455
+ message: 'Error fetching schema',
456
+ errorMessage: error.message,
457
+ errorStack: error.stack,
458
+ errorData: {
459
+ caller: 'AdminProvider',
460
+ function: 'fetchSchemaAndTables',
461
+ },
462
+ });
381
463
  }
382
464
  finally {
383
465
  setSchemaLoading(false);
@@ -398,9 +480,9 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
398
480
  ? state.selectedTenantValues?.map((value) => value.toString())
399
481
  : undefined;
400
482
  }, [state.selectedTenantValues, state.client?.id]);
401
- if (!state.client || !state.tables) {
402
- return null;
403
- }
483
+ // if (!state.client || !state.tables) {
484
+ // return null;
485
+ // }
404
486
  return (_jsxs(AdminContext.Provider, { value: {
405
487
  state: stateWithFlagsList,
406
488
  dispatch,
@@ -408,7 +490,13 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${QUILL_SERVER}${
408
490
  setClient,
409
491
  getToken: getAuthorizationToken,
410
492
  quillFetchWithToken,
411
- }, children: [!state.client && !clientLoading && (_jsx(CreateEnvironment, { onOnboardComplete: onOnboardComplete })), state.client && (_jsxs(QuillProvider, { tenants: tenants, flags: flags, queryEndpoint: state.queryEndpoint, withCredentials: state.withCredentials, queryHeaders: state.queryHeaders, publicKey: state.client._id, theme: state.theme, isAdmin: true, getAuthorizationToken: getAuthorizationToken, children: [children, _jsx(ErrorModal, { error: error, setError: setError })] })), _jsx("style", { children: `/* For WebKit-based browsers (Chrome, Safari, Opera) */
493
+ onOnboardComplete,
494
+ onRequestAddVirtualTable,
495
+ eventTracking,
496
+ }, children: [!state.client && !clientLoading && (_jsx(CreateEnvironment, { onOnboardComplete: (client) => {
497
+ fetchClient(client._id);
498
+ onOnboardComplete?.(client);
499
+ } })), state.client && (_jsxs(QuillProvider, { tenants: tenants, flags: flags, queryEndpoint: state.queryEndpoint, withCredentials: state.withCredentials, queryHeaders: state.queryHeaders, publicKey: state.client._id, theme: state.theme, isAdmin: true, getAuthorizationToken: getAuthorizationToken, eventTracking: eventTracking, children: [children, _jsx(ErrorModal, { error: error, setError: setError })] })), _jsx("style", { children: `/* For WebKit-based browsers (Chrome, Safari, Opera) */
412
500
  ::-webkit-scrollbar {
413
501
  width: 0;
414
502
  height: 0;
@@ -1,5 +1,6 @@
1
+ import { EventTracking } from '@quillsql/react';
1
2
  import { DatabaseSchema } from '../utils/schema';
2
- import { Column, ColumnsByTable } from '../utils/table';
3
+ import { ColumnInternal, ColumnsByTable } from '../utils/table';
3
4
  import { QuillTenant } from '../utils/tenants';
4
5
  export declare function testConnectionString(queryEndpoint: string, connectionString: string, databaseType: string, getToken: () => Promise<string>, clientId?: string, queryHeaders?: HeadersInit): Promise<any>;
5
6
  export declare function getTablesBySchema(queryEndpoint: string, clientId: string, schema: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<string[] | undefined>;
@@ -15,13 +16,14 @@ export declare function getSchemaTables(schemas: string[], databaseType: string,
15
16
  export declare function getTableColumns(tables: {
16
17
  tableName: string;
17
18
  schemaName: string;
19
+ catalogName?: string;
18
20
  }[], databaseType: string, queryEndpoint: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<ColumnsByTable[]>;
19
21
  export declare function getTableColumnsBySchema(isSelfHosted: boolean, queryEndpoint: string, clientId: string, databaseType: string, getToken: () => Promise<string>, schemas: string[], queryHeaders?: HeadersInit): Promise<{
20
22
  columnsByTable: ColumnsByTable[];
21
23
  schema: DatabaseSchema;
22
24
  }>;
23
25
  export declare function getVirtualTables(queryEndpoint: string, tableSchemas: any, customerNameField: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
24
- export declare function getVirtualTableData(clientId: string, query: string, databaseType: string, queryEndpoint: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
26
+ export declare function getVirtualTableData(clientId: string, query: string, databaseType: string, queryEndpoint: string, getToken: () => Promise<string>, eventTracking: EventTracking | null, queryHeaders?: HeadersInit): Promise<any>;
25
27
  export declare function getAST(query: string, clientId: string, queryEndpoint: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
26
28
  export declare function getQueryFromAI(aiPrompt: string, columnsByTable: ColumnsByTable[], queryEndpoint: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<string>;
27
29
  export declare function getQueryFromAiWithConnection(isSelfHosted: boolean, databaseSchema: ColumnsByTable[], queryEndpoint: string, aiPrompt: string, clientId: string, getToken: () => Promise<string>, schemaNames?: string[], queryHeaders?: HeadersInit): Promise<string>;
@@ -30,9 +32,10 @@ export declare function createVirtualTable(viewInfo: {
30
32
  query: string;
31
33
  }, client: any, tableData: {
32
34
  rows: object[];
33
- fields: Column[];
35
+ fields: ColumnInternal[];
34
36
  } | undefined, currentTableNames: string[], clientId: string, ownerTenantFields: string[], queryEndpoint: string, queryHeaders: any, getToken: () => Promise<string>): Promise<{
35
37
  success: boolean;
36
38
  failingTenant?: QuillTenant;
39
+ failingTenantErrorType?: 'missing' | 'type_mismatch';
37
40
  } | any>;
38
41
  //# sourceMappingURL=ConnectionClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,WAAW,gBA+C3B;AAID,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAoB/B;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,iBAgB3B;AAID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC;IACT,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC,CAsCD;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,EACnD,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CA4C3B;AAID,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC;IAAE,cAAc,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CAuDvE;AAGD,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,GAAG,EACjB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,GAAG,CAAC,CAuBd;AAGD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,GAAG,CAAC,CA8Hd;AAGD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,GAAG,CAAC,CAiBd;AAGD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAAE,EAChC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAGD,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzC,MAAM,EAAE,GAAG,EACX,SAAS,EACL;IACE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD,SAAS,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,GAAG,EACjB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,OAAO,CACN;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,GACD,GAAG,CACN,CAwEA"}
1
+ {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"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"}
@@ -144,7 +144,11 @@ export async function getSchemaTables(schemas, databaseType, queryEndpoint, clie
144
144
  schemaMap[schema] = [];
145
145
  }
146
146
  schemaMap[schema].push(row['table_name'] || row['TABLE_NAME']);
147
- return { tableName: row['table_name'], schemaName: row['table_schema'] };
147
+ return {
148
+ tableName: row['table_name'] || row['TABLE_NAME'],
149
+ schemaName: row['table_schema'] || row['TABLE_SCHEMA'],
150
+ catalogName: row['table_catalog'] || row['TABLE_CATALOG'],
151
+ };
148
152
  });
149
153
  allTables.push(...tables);
150
154
  }
@@ -179,13 +183,13 @@ export async function getTableColumns(tables, databaseType, queryEndpoint, clien
179
183
  columnName: row['columnName'],
180
184
  displayName: row['columnName'],
181
185
  fieldType: fieldType,
182
- dataTypeId: fieldTypeToDataTypeID(fieldType),
186
+ dataTypeId: fieldTypeToDataTypeID(fieldType?.toLowerCase()),
183
187
  field: row['columnName'],
184
188
  };
185
189
  });
186
190
  columnsByTable.push({
187
- tableName: `${table.schemaName}.${table.tableName}`,
188
- displayName: `${table.schemaName}.${table.tableName}`,
191
+ tableName: `${table.catalogName ? `${table.catalogName}.` : ''}${table.schemaName}.${table.tableName}`,
192
+ displayName: `${table.catalogName ? `${table.catalogName}.` : ''}${table.schemaName}.${table.tableName}`,
189
193
  columns,
190
194
  });
191
195
  }
@@ -220,7 +224,7 @@ export async function getTableColumnsBySchema(isSelfHosted, queryEndpoint, clien
220
224
  const formattedResults = results.data.columnsByTable.map((table) => {
221
225
  return {
222
226
  tableName: table.tableName,
223
- displayName: table.displayName,
227
+ displayName: table.displayName || table.tableName,
224
228
  columns: table.columns.map((column) => {
225
229
  return {
226
230
  columnName: column.columnName,
@@ -261,7 +265,7 @@ export async function getVirtualTables(queryEndpoint, tableSchemas, customerName
261
265
  return results.notSureWhatThisIs.sqlQueries;
262
266
  }
263
267
  // TODO: Check that works with self-hosted
264
- export async function getVirtualTableData(clientId, query, databaseType, queryEndpoint, getToken, queryHeaders) {
268
+ export async function getVirtualTableData(clientId, query, databaseType, queryEndpoint, getToken, eventTracking, queryHeaders) {
265
269
  let queryAst = undefined;
266
270
  try {
267
271
  const { data } = await quillFetch({
@@ -288,6 +292,16 @@ export async function getVirtualTableData(clientId, query, databaseType, queryEn
288
292
  }
289
293
  }
290
294
  catch (e) {
295
+ eventTracking?.logError?.({
296
+ type: 'network',
297
+ severity: 'medium',
298
+ message: 'Error getting AST',
299
+ errorMessage: e.message,
300
+ errorStack: e.stack,
301
+ errorData: {
302
+ function: 'getVirtualTableData',
303
+ },
304
+ });
291
305
  return {
292
306
  success: false,
293
307
  error: 'Invalid SQL Query',
@@ -453,6 +467,7 @@ export async function createVirtualTable(viewInfo, client, tableData, currentTab
453
467
  },
454
468
  getToken,
455
469
  });
470
+ // Check for missing tenant field
456
471
  const missingField = ownerTenantFields.find((field) => tableData &&
457
472
  !tableData.fields.find((col) => col.name === field?.replaceAll('"', '')));
458
473
  const failingTenant = client.allTenantTypes.find((tenant) => tenant.tenantField === missingField);
@@ -460,8 +475,28 @@ export async function createVirtualTable(viewInfo, client, tableData, currentTab
460
475
  return {
461
476
  success: false,
462
477
  failingTenant,
478
+ failingTenantErrorType: 'missing',
463
479
  };
464
480
  }
481
+ // Check for type mismatches
482
+ if (tableData) {
483
+ const typeMismatchedTenant = ownerTenantFields.find((owner) => {
484
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === owner);
485
+ const tableDataField = tableData.fields.find((col) => col.name === owner?.replaceAll('"', ''));
486
+ return ((tenant?.fieldType === 'string' &&
487
+ isNumberType(tableDataField?.fieldType ?? '')) ||
488
+ (tenant?.fieldType === 'number' &&
489
+ isStringType(tableDataField?.fieldType ?? '')));
490
+ });
491
+ if (typeMismatchedTenant) {
492
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === typeMismatchedTenant);
493
+ return {
494
+ success: false,
495
+ failingTenant: tenant,
496
+ failingTenantErrorType: 'type_mismatch',
497
+ };
498
+ }
499
+ }
465
500
  if (!queryAstRaw || queryAstRaw.success === false) {
466
501
  return {
467
502
  success: false,
@@ -498,3 +533,28 @@ export async function createVirtualTable(viewInfo, client, tableData, currentTab
498
533
  });
499
534
  return { ...results.data, success: true };
500
535
  }
536
+ // Helper functions for type checking
537
+ function isNumberType(type) {
538
+ const numberTypes = [
539
+ 'int',
540
+ 'integer',
541
+ 'bigint',
542
+ 'smallint',
543
+ 'decimal',
544
+ 'numeric',
545
+ 'float',
546
+ 'double',
547
+ 'real',
548
+ ];
549
+ return numberTypes.some((t) => type.toLowerCase().includes(t));
550
+ }
551
+ function isStringType(type) {
552
+ const stringTypes = [
553
+ 'char',
554
+ 'varchar',
555
+ 'text',
556
+ 'string',
557
+ 'character varying',
558
+ ];
559
+ return stringTypes.some((t) => type.toLowerCase().includes(t));
560
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB;;6CActB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB,GAAI;;CAAY,4CActC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/XIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK;;6CAcV,CAAC;AACF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"XIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/XIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK,GAAI;;CAAY,4CAc1B,CAAC;AACF,eAAe,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../src/components/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,QAAA,MAAM,eAAe,qCAIlB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAsHA,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../src/components/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,QAAA,MAAM,eAAe,GAAI,kCAItB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAsHA,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/DashboardSelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,EACL,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,EAAE,2BAA2B,2CAyK7B"}
1
+ {"version":3,"file":"DashboardSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/DashboardSelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,EACL,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,EAAE,2BAA2B,2CAsM7B"}
@@ -4,13 +4,24 @@ import { ListboxRow, Popover } from './OrgSelect';
4
4
  import MiniButtonPrimitive from '../primitives/MiniButtonPrimitive';
5
5
  import { LoadingSpinner } from './UiComponents';
6
6
  import { ListboxTextInput } from './QuillMultiSelectWithCombo';
7
+ import { useAdmin } from '../AdminProvider';
7
8
  export default function DashboardSelectPopover({ dashboards, setDashboard, dashboard, theme, setSelectedEditDashboard, onClickNewDashboard, parentRef, isLoading, }) {
8
9
  const [isOpen, setIsOpen] = useState(false);
10
+ const { eventTracking } = useAdmin();
9
11
  const [searchQuery, setSearchQuery] = useState('');
10
12
  const filteredDashboards = useMemo(() => {
11
13
  return dashboards.filter((dashboard) => dashboard?.toLowerCase().includes(searchQuery.toLowerCase()));
12
14
  }, [dashboards, searchQuery]);
13
15
  const handleItemClick = (selectedDashboard) => {
16
+ eventTracking?.addBreadcrumb?.({
17
+ message: 'Set dashboard in DashboardSelectPopover',
18
+ data: {
19
+ dashboard: selectedDashboard,
20
+ },
21
+ category: 'navigation',
22
+ level: 'info',
23
+ timestamp: Date.now(),
24
+ });
14
25
  setDashboard(selectedDashboard);
15
26
  setIsOpen(false);
16
27
  };
@@ -33,6 +44,15 @@ export default function DashboardSelectPopover({ dashboards, setDashboard, dashb
33
44
  } }), _jsxs("div", { style: { paddingTop: 8, paddingBottom: 8 }, children: [filteredDashboards.map((item) => (_jsx(ListboxRow, { setSelected: dashboard && dashboard !== item
34
45
  ? () => handleItemClick(item)
35
46
  : undefined, item: item, isSelected: dashboard === item, hoverActions: (item) => (_jsx(MiniButtonPrimitive, { label: "Manage", onClick: () => {
47
+ eventTracking?.addBreadcrumb?.({
48
+ message: 'Opened manage dashboard in DashboardSelectPopover',
49
+ data: {
50
+ dashboard: item,
51
+ },
52
+ category: 'interaction',
53
+ level: 'info',
54
+ timestamp: Date.now(),
55
+ });
36
56
  setSelectedEditDashboard(item);
37
57
  setIsOpen(false);
38
58
  }, style: {
@@ -42,7 +62,15 @@ export default function DashboardSelectPopover({ dashboards, setDashboard, dashb
42
62
  fontFamily: theme.fontFamily,
43
63
  color: theme.secondaryTextColor,
44
64
  backgroundColor: theme.backgroundColor,
45
- } })) }, item))), _jsx("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: _jsxs("div", { onClick: onClickNewDashboard, style: {
65
+ } })) }, item))), _jsx("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: _jsxs("div", { onClick: () => {
66
+ onClickNewDashboard();
67
+ eventTracking?.addBreadcrumb?.({
68
+ message: 'Opened create new dashboard in DashboardSelectPopover',
69
+ category: 'navigation',
70
+ level: 'info',
71
+ timestamp: Date.now(),
72
+ });
73
+ }, style: {
46
74
  height: 42,
47
75
  width: 216,
48
76
  borderRadius: 6,
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangePickerUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/dateRangePickerUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dateRangePickerUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/dateRangePickerUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,aAKzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,EAAE,QAAQ,MAAM,WAEnD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,eAAe,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,kBAAkB,qBAAqB,EAAE,gBAU1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,eAAe,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,kBAAkB,qBAAqB,EAAE,SAU1C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,WAAW,IAAI,GAAG,IAAI,GAAG,SAAS,EAClC,SAAS,IAAI,GAAG,IAAI,GAAG,SAAS,EAChC,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAChD,iBAAiB,qBAAqB,EAAE,gBAWzC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,IAAI,GAAG,IAAI,GAAG,SAAS,EAChC,SAAS,IAAI,GAAG,IAAI,GAAG,SAAS,EAChC,uBAAuB,MAAM,GAAG,IAAI,GAAG,SAAS,EAChD,iBAAiB,qBAAqB,EAAE,gBASzC,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,mBAAmB,EAyH5D,CAAC;AAyFF,eAAO,MAAM,oCAAoC,GAC/C,iBAAiB,mBAAmB,EAAE,EACtC,kBAAkB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,EAAE,KACtE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,EA2OpE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;CAwCrD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,EAqBA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;mDACW,cAAc;;;;0CAIvB,cAAc;;;;2CAIb,cAAc;;;;2CAId,cAAc;;;;;CAKpC,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,GAAG,EAiDjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,EA+BvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,eAAe;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf,EAAE;;;;;;CAQJ,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,GAAG,EACV,MAAM,IAAI,EACV,gBAAgB,IAAI,GAAG,IAAI,EAC3B,cAAc,IAAI,GAAG,IAAI,EACzB,aAAa,IAAI,GAAG,SAAS,EAC7B,gBAAgB,OAAO,QA0BxB,CAAC;AAkGF,eAAO,MAAM,eAAe,GAC1B,kBAAkB,IAAI,GAAG,IAAI,EAC7B,gBAAgB,IAAI,GAAG,IAAI,uBA0C5B,CAAC;AAmGF,eAAO,MAAM,mBAAmB,GAC9B,WAAW,IAAI,GAAG,IAAI,EACtB,SAAS,IAAI,GAAG,IAAI,EACpB,SAAS,MAAM,WAyChB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,UAWnD"}
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties } from 'react';
2
- import { DashboardFilter as Filters } from '../../utils/filter';
2
+ import { InternalDashboardFilter as Filters } from '../../utils/filter';
3
3
  interface DashboardFilterProps {
4
4
  filter: Filters;
5
5
  onChangeFilter: (filter: Filters, value?: string | (string | null)[] | {