datajunction-ui 0.0.1-rc.2 → 0.0.1-rc.22

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 (135) hide show
  1. package/.env +1 -0
  2. package/.prettierignore +3 -1
  3. package/dj-logo.svg +10 -0
  4. package/package.json +43 -13
  5. package/public/favicon.ico +0 -0
  6. package/src/__tests__/reportWebVitals.test.jsx +44 -0
  7. package/src/app/__tests__/__snapshots__/index.test.tsx.snap +5 -39
  8. package/src/app/components/DeleteNode.jsx +79 -0
  9. package/src/app/components/ListGroupItem.jsx +8 -1
  10. package/src/app/components/NamespaceHeader.jsx +4 -13
  11. package/src/app/components/QueryInfo.jsx +77 -0
  12. package/src/app/components/Tab.jsx +3 -2
  13. package/src/app/components/ToggleSwitch.jsx +20 -0
  14. package/src/app/components/__tests__/QueryInfo.test.jsx +55 -0
  15. package/src/app/components/__tests__/Tab.test.jsx +27 -0
  16. package/src/app/components/__tests__/ToggleSwitch.test.jsx +43 -0
  17. package/src/app/components/__tests__/__snapshots__/ListGroupItem.test.tsx.snap +3 -0
  18. package/src/app/components/__tests__/__snapshots__/NamespaceHeader.test.jsx.snap +2 -18
  19. package/src/app/components/djgraph/Collapse.jsx +46 -0
  20. package/src/app/components/djgraph/DJNode.jsx +60 -82
  21. package/src/app/components/djgraph/DJNodeColumns.jsx +71 -0
  22. package/src/app/components/djgraph/DJNodeDimensions.jsx +75 -0
  23. package/src/app/components/djgraph/LayoutFlow.jsx +104 -0
  24. package/src/app/components/djgraph/__tests__/Collapse.test.jsx +51 -0
  25. package/src/app/components/djgraph/__tests__/DJNodeColumns.test.jsx +83 -0
  26. package/src/app/components/djgraph/__tests__/DJNodeDimensions.test.jsx +118 -0
  27. package/src/app/components/djgraph/__tests__/__snapshots__/DJNode.test.tsx.snap +84 -40
  28. package/src/app/constants.js +2 -0
  29. package/src/app/icons/AlertIcon.jsx +32 -0
  30. package/src/app/icons/CollapsedIcon.jsx +15 -0
  31. package/src/app/icons/DJLogo.jsx +36 -0
  32. package/src/app/icons/DeleteIcon.jsx +21 -0
  33. package/src/app/icons/EditIcon.jsx +18 -0
  34. package/src/app/icons/ExpandedIcon.jsx +15 -0
  35. package/src/app/icons/HorizontalHierarchyIcon.jsx +15 -0
  36. package/src/app/icons/InvalidIcon.jsx +14 -0
  37. package/src/app/icons/PythonIcon.jsx +52 -0
  38. package/src/app/icons/TableIcon.jsx +14 -0
  39. package/src/app/icons/ValidIcon.jsx +14 -0
  40. package/src/app/index.tsx +79 -26
  41. package/src/app/pages/AddEditNodePage/FormikSelect.jsx +46 -0
  42. package/src/app/pages/AddEditNodePage/FullNameField.jsx +37 -0
  43. package/src/app/pages/AddEditNodePage/Loadable.jsx +16 -0
  44. package/src/app/pages/AddEditNodePage/NodeQueryField.jsx +89 -0
  45. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormFailed.test.jsx +77 -0
  46. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormSuccess.test.jsx +93 -0
  47. package/src/app/pages/AddEditNodePage/__tests__/FormikSelect.test.jsx +75 -0
  48. package/src/app/pages/AddEditNodePage/__tests__/FullNameField.test.jsx +31 -0
  49. package/src/app/pages/AddEditNodePage/__tests__/NodeQueryField.test.jsx +30 -0
  50. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/AddEditNodePageFormFailed.test.jsx.snap +53 -0
  51. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/AddEditNodePageFormSuccess.test.jsx.snap +53 -0
  52. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/index.test.jsx.snap +3 -0
  53. package/src/app/pages/AddEditNodePage/__tests__/index.test.jsx +178 -0
  54. package/src/app/pages/AddEditNodePage/index.jsx +357 -0
  55. package/src/app/pages/LoginPage/__tests__/index.test.jsx +70 -0
  56. package/src/app/pages/LoginPage/assets/sign-in-with-github.png +0 -0
  57. package/src/app/pages/LoginPage/assets/sign-in-with-google.png +0 -0
  58. package/src/app/pages/LoginPage/index.jsx +90 -0
  59. package/src/app/pages/NamespacePage/Explorer.jsx +57 -0
  60. package/src/app/pages/NamespacePage/Loadable.jsx +9 -7
  61. package/src/app/pages/NamespacePage/__tests__/index.test.jsx +95 -0
  62. package/src/app/pages/NamespacePage/index.jsx +131 -31
  63. package/src/app/pages/NodePage/ClientCodePopover.jsx +32 -0
  64. package/src/app/pages/NodePage/EditColumnPopover.jsx +102 -0
  65. package/src/app/pages/NodePage/LinkDimensionPopover.jsx +135 -0
  66. package/src/app/pages/NodePage/Loadable.jsx +9 -7
  67. package/src/app/pages/NodePage/NodeColumnTab.jsx +106 -27
  68. package/src/app/pages/NodePage/NodeGraphTab.jsx +94 -148
  69. package/src/app/pages/NodePage/NodeHistory.jsx +212 -0
  70. package/src/app/pages/NodePage/NodeInfoTab.jsx +166 -51
  71. package/src/app/pages/NodePage/NodeLineageTab.jsx +84 -0
  72. package/src/app/pages/NodePage/NodeMaterializationTab.jsx +174 -0
  73. package/src/app/pages/NodePage/NodeSQLTab.jsx +82 -0
  74. package/src/app/pages/NodePage/NodeStatus.jsx +14 -20
  75. package/src/app/pages/NodePage/NodesWithDimension.jsx +42 -0
  76. package/src/app/pages/NodePage/__tests__/ClientCodePopover.test.jsx +49 -0
  77. package/src/app/pages/NodePage/__tests__/EditColumnPopover.test.jsx +148 -0
  78. package/src/app/pages/NodePage/__tests__/LinkDimensionPopover.test.jsx +165 -0
  79. package/src/app/pages/NodePage/__tests__/NodeGraphTab.test.jsx +591 -0
  80. package/src/app/pages/NodePage/__tests__/NodeLineageTab.test.jsx +57 -0
  81. package/src/app/pages/NodePage/__tests__/NodePage.test.jsx +725 -0
  82. package/src/app/pages/NodePage/__tests__/NodeWithDimension.test.jsx +175 -0
  83. package/src/app/pages/NodePage/__tests__/__snapshots__/NodePage.test.jsx.snap +402 -0
  84. package/src/app/pages/NodePage/index.jsx +151 -41
  85. package/src/app/pages/NotFoundPage/__tests__/index.test.jsx +16 -0
  86. package/src/app/pages/RegisterTablePage/Loadable.jsx +16 -0
  87. package/src/app/pages/RegisterTablePage/index.jsx +163 -0
  88. package/src/app/pages/Root/__tests__/index.test.jsx +77 -0
  89. package/src/app/pages/Root/index.tsx +32 -4
  90. package/src/app/pages/SQLBuilderPage/Loadable.jsx +16 -0
  91. package/src/app/pages/SQLBuilderPage/__tests__/index.test.jsx +173 -0
  92. package/src/app/pages/SQLBuilderPage/index.jsx +390 -0
  93. package/src/app/providers/djclient.jsx +5 -0
  94. package/src/app/services/DJService.js +388 -22
  95. package/src/app/services/__tests__/DJService.test.jsx +609 -0
  96. package/src/mocks/mockNodes.jsx +1397 -0
  97. package/src/setupTests.ts +31 -1
  98. package/src/styles/dag.css +111 -5
  99. package/src/styles/index.css +467 -31
  100. package/src/styles/login.css +67 -0
  101. package/src/styles/node-creation.scss +197 -0
  102. package/src/styles/styles.scss +44 -0
  103. package/src/styles/styles.scss.d.ts +9 -0
  104. package/src/utils/form.jsx +23 -0
  105. package/tsconfig.json +1 -5
  106. package/webpack.config.js +29 -6
  107. package/.babelrc +0 -4
  108. package/.env.local +0 -4
  109. package/.env.production +0 -1
  110. package/.github/pull_request_template.md +0 -11
  111. package/.github/workflows/ci.yml +0 -33
  112. package/.vscode/extensions.json +0 -7
  113. package/.vscode/launch.json +0 -15
  114. package/.vscode/settings.json +0 -25
  115. package/Dockerfile +0 -7
  116. package/dist/5fa71a03d45dc2e3d61447f3013a303d.png +0 -0
  117. package/dist/index.html +0 -1
  118. package/dist/main.js +0 -23303
  119. package/dist/static/main.05a86d446163fd5f17d3.js +0 -2
  120. package/dist/static/main.05a86d446163fd5f17d3.js.LICENSE.txt +0 -98
  121. package/dist/static/main.9e53bed734dae98e5b10.js +0 -2
  122. package/dist/static/main.9e53bed734dae98e5b10.js.LICENSE.txt +0 -98
  123. package/dist/static/main.js +0 -2
  124. package/dist/static/main.js.LICENSE.txt +0 -98
  125. package/dist/static/vendor.05a86d446163fd5f17d3.js +0 -2
  126. package/dist/static/vendor.05a86d446163fd5f17d3.js.LICENSE.txt +0 -29
  127. package/dist/static/vendor.9e53bed734dae98e5b10.js +0 -2
  128. package/dist/static/vendor.9e53bed734dae98e5b10.js.LICENSE.txt +0 -29
  129. package/dist/static/vendor.js +0 -2
  130. package/dist/static/vendor.js.LICENSE.txt +0 -29
  131. package/dist/vendor.js +0 -281
  132. package/src/app/pages/ListNamespacesPage/Loadable.jsx +0 -14
  133. package/src/app/pages/ListNamespacesPage/index.jsx +0 -52
  134. package/src/app/pages/NamespacePage/__tests__/__snapshots__/index.test.tsx.snap +0 -45
  135. package/src/app/pages/NamespacePage/__tests__/index.test.tsx +0 -14
@@ -0,0 +1,1397 @@
1
+ export const mocks = {
2
+ mockMetricNode: {
3
+ namespace: 'default',
4
+ node_revision_id: 23,
5
+ node_id: 23,
6
+ type: 'metric',
7
+ name: 'default.num_repair_orders',
8
+ display_name: 'Default: Num Repair Orders',
9
+ version: 'v1.0',
10
+ status: 'valid',
11
+ mode: 'published',
12
+ catalog: {
13
+ id: 1,
14
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
15
+ created_at: '2023-08-21T16:48:51.146121+00:00',
16
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
17
+ extra_params: {},
18
+ name: 'warehouse',
19
+ },
20
+ schema_: null,
21
+ table: null,
22
+ description: 'Number of repair orders',
23
+ query:
24
+ 'SELECT count(repair_order_id) default_DOT_num_repair_orders FROM default.repair_orders',
25
+ availability: null,
26
+ columns: [
27
+ {
28
+ name: 'default_DOT_num_repair_orders',
29
+ type: 'bigint',
30
+ attributes: [],
31
+ dimension: null,
32
+ },
33
+ ],
34
+ primary_key: ['repair_order_id', 'country'],
35
+ updated_at: '2023-08-21T16:48:56.841704+00:00',
36
+ materializations: [],
37
+ parents: [
38
+ {
39
+ name: 'default.repair_orders',
40
+ },
41
+ ],
42
+ created_at: '2023-08-21T16:48:56.841631+00:00',
43
+ tags: [],
44
+ dimensions: [
45
+ {
46
+ value: 'default.date_dim.dateint',
47
+ label: 'default.date_dim.dateint (timestamp)',
48
+ },
49
+ {
50
+ value: 'default.date_dim.dateint',
51
+ label: 'default.date_dim.dateint (timestamp)',
52
+ },
53
+ {
54
+ value: 'default.date_dim.day',
55
+ label: 'default.date_dim.day (int)',
56
+ },
57
+ {
58
+ value: 'default.date_dim.day',
59
+ label: 'default.date_dim.day (int)',
60
+ },
61
+ {
62
+ value: 'default.date_dim.month',
63
+ label: 'default.date_dim.month (int)',
64
+ },
65
+ {
66
+ value: 'default.date_dim.month',
67
+ label: 'default.date_dim.month (int)',
68
+ },
69
+ {
70
+ value: 'default.date_dim.year',
71
+ label: 'default.date_dim.year (int)',
72
+ },
73
+ {
74
+ value: 'default.date_dim.year',
75
+ label: 'default.date_dim.year (int)',
76
+ },
77
+ {
78
+ value: 'default.dispatcher.company_name',
79
+ label: 'default.dispatcher.company_name (string)',
80
+ },
81
+ {
82
+ value: 'default.dispatcher.dispatcher_id',
83
+ label: 'default.dispatcher.dispatcher_id (int)',
84
+ },
85
+ {
86
+ value: 'default.dispatcher.phone',
87
+ label: 'default.dispatcher.phone (string)',
88
+ },
89
+ {
90
+ value: 'default.hard_hat.address',
91
+ label: 'default.hard_hat.address (string)',
92
+ },
93
+ {
94
+ value: 'default.hard_hat.birth_date',
95
+ label: 'default.hard_hat.birth_date (date)',
96
+ },
97
+ {
98
+ value: 'default.hard_hat.city',
99
+ label: 'default.hard_hat.city (string)',
100
+ },
101
+ {
102
+ value: 'default.hard_hat.contractor_id',
103
+ label: 'default.hard_hat.contractor_id (int)',
104
+ },
105
+ {
106
+ value: 'default.hard_hat.country',
107
+ label: 'default.hard_hat.country (string)',
108
+ },
109
+ {
110
+ value: 'default.hard_hat.first_name',
111
+ label: 'default.hard_hat.first_name (string)',
112
+ },
113
+ {
114
+ value: 'default.hard_hat.hard_hat_id',
115
+ label: 'default.hard_hat.hard_hat_id (int)',
116
+ },
117
+ {
118
+ value: 'default.hard_hat.hire_date',
119
+ label: 'default.hard_hat.hire_date (date)',
120
+ },
121
+ {
122
+ value: 'default.hard_hat.last_name',
123
+ label: 'default.hard_hat.last_name (string)',
124
+ },
125
+ {
126
+ value: 'default.hard_hat.manager',
127
+ label: 'default.hard_hat.manager (int)',
128
+ },
129
+ {
130
+ value: 'default.hard_hat.postal_code',
131
+ label: 'default.hard_hat.postal_code (string)',
132
+ },
133
+ {
134
+ value: 'default.hard_hat.state',
135
+ label: 'default.hard_hat.state (string)',
136
+ },
137
+ {
138
+ value: 'default.hard_hat.title',
139
+ label: 'default.hard_hat.title (string)',
140
+ },
141
+ {
142
+ value: 'default.municipality_dim.contact_name',
143
+ label: 'default.municipality_dim.contact_name (string)',
144
+ },
145
+ {
146
+ value: 'default.municipality_dim.contact_title',
147
+ label: 'default.municipality_dim.contact_title (string)',
148
+ },
149
+ {
150
+ value: 'default.municipality_dim.local_region',
151
+ label: 'default.municipality_dim.local_region (string)',
152
+ },
153
+ {
154
+ value: 'default.municipality_dim.municipality_id',
155
+ label: 'default.municipality_dim.municipality_id (string)',
156
+ },
157
+ {
158
+ value: 'default.municipality_dim.municipality_type_desc',
159
+ label: 'default.municipality_dim.municipality_type_desc (string)',
160
+ },
161
+ {
162
+ value: 'default.municipality_dim.municipality_type_id',
163
+ label: 'default.municipality_dim.municipality_type_id (string)',
164
+ },
165
+ {
166
+ value: 'default.municipality_dim.state_id',
167
+ label: 'default.municipality_dim.state_id (int)',
168
+ },
169
+ {
170
+ value: 'default.repair_order.dispatcher_id',
171
+ label: 'default.repair_order.dispatcher_id (int)',
172
+ },
173
+ {
174
+ value: 'default.repair_order.hard_hat_id',
175
+ label: 'default.repair_order.hard_hat_id (int)',
176
+ },
177
+ {
178
+ value: 'default.repair_order.municipality_id',
179
+ label: 'default.repair_order.municipality_id (string)',
180
+ },
181
+ {
182
+ value: 'default.repair_order.repair_order_id',
183
+ label: 'default.repair_order.repair_order_id (int)',
184
+ },
185
+ {
186
+ value: 'default.repair_order_details.repair_order_id',
187
+ label: 'default.repair_order_details.repair_order_id (int)',
188
+ },
189
+ {
190
+ value: 'default.us_state.state_abbr',
191
+ label: 'default.us_state.state_abbr (string)',
192
+ },
193
+ {
194
+ value: 'default.us_state.state_id',
195
+ label: 'default.us_state.state_id (int)',
196
+ },
197
+ {
198
+ value: 'default.us_state.state_name',
199
+ label: 'default.us_state.state_name (string)',
200
+ },
201
+ {
202
+ value: 'default.us_state.state_region',
203
+ label: 'default.us_state.state_region (int)',
204
+ },
205
+ {
206
+ value: 'default.us_state.state_region_description',
207
+ label: 'default.us_state.state_region_description (string)',
208
+ },
209
+ ],
210
+ },
211
+ attributes: [
212
+ {
213
+ uniqueness_scope: [],
214
+ namespace: 'system',
215
+ id: 3,
216
+ name: 'primary_key',
217
+ description:
218
+ 'Points to a column which is part of the primary key of the node',
219
+ allowed_node_types: ['source', 'transform', 'dimension'],
220
+ },
221
+ {
222
+ uniqueness_scope: [],
223
+ namespace: 'system',
224
+ id: 4,
225
+ name: 'dimension',
226
+ description: 'Points to a dimension attribute column',
227
+ allowed_node_types: ['source', 'transform'],
228
+ },
229
+ ],
230
+ dimensions: [
231
+ 'default.date_dim',
232
+ 'default.repair_order',
233
+ 'default.contractor',
234
+ 'default.hard_hat',
235
+ 'default.local_hard_hats',
236
+ 'default.us_state',
237
+ 'default.dispatcher',
238
+ 'default.municipality_dim',
239
+ 'default.etests',
240
+ 'default.special_forces_contractors',
241
+ ],
242
+ metricNodeColumns: [
243
+ {
244
+ name: 'default_DOT_avg_repair_price',
245
+ type: 'double',
246
+ attributes: [],
247
+ dimension: null,
248
+ },
249
+ ],
250
+ metricNodeHistory: [
251
+ {
252
+ id: 1,
253
+ entity_type: 'node',
254
+ entity_name: 'default.avg_repair_price',
255
+ node: 'default.avg_repair_price',
256
+ activity_type: 'create',
257
+ user: null,
258
+ pre: {},
259
+ post: {},
260
+ details: {},
261
+ created_at: '2023-08-21T16:48:56.950482+00:00',
262
+ },
263
+ {
264
+ id: 2,
265
+ entity_type: 'column_attribute',
266
+ entity_name: 'default.avg_repair_price',
267
+ node: 'default.avg_repair_price',
268
+ activity_type: 'set_attribute',
269
+ user: null,
270
+ pre: {},
271
+ post: {},
272
+ details: {
273
+ column: 'col1',
274
+ attributes: [{ name: 'primary_key' }, { name: 'dimension' }],
275
+ },
276
+ created_at: '2023-08-21T16:48:56.950482+00:00',
277
+ },
278
+ {
279
+ id: 3,
280
+ entity_type: 'link',
281
+ entity_name: 'default.avg_repair_price',
282
+ node: 'default.avg_repair_price',
283
+ activity_type: 'create',
284
+ user: null,
285
+ pre: {},
286
+ post: {},
287
+ details: {
288
+ column: 'col1',
289
+ dimension: 'default.hard_hat',
290
+ dimension_column: 'hard_hat_id',
291
+ },
292
+ created_at: '2023-08-21T16:48:56.950482+00:00',
293
+ },
294
+ {
295
+ id: 4,
296
+ entity_type: 'materialization',
297
+ entity_name: 'default.avg_repair_price',
298
+ node: 'default.avg_repair_price',
299
+ activity_type: 'create',
300
+ user: null,
301
+ pre: {},
302
+ post: {},
303
+ details: {
304
+ materialization: 'some_random_materialization',
305
+ },
306
+ created_at: '2023-08-21T16:48:56.950482+00:00',
307
+ },
308
+ {
309
+ id: 5,
310
+ entity_type: 'availability',
311
+ entity_name: 'default.avg_repair_price',
312
+ node: 'default.avg_repair_price',
313
+ activity_type: 'create',
314
+ user: null,
315
+ pre: {},
316
+ post: {},
317
+ details: {
318
+ materialization: 'some_random_materialization',
319
+ },
320
+ created_at: '2023-08-21T16:48:56.950482+00:00',
321
+ },
322
+ {
323
+ id: 6,
324
+ entity_type: 'node',
325
+ entity_name: 'default.avg_repair_price',
326
+ node: 'default.avg_repair_price',
327
+ activity_type: 'status_change',
328
+ user: null,
329
+ pre: { status: 'valid' },
330
+ post: { status: 'invalid' },
331
+ details: {
332
+ upstream_node: 'default.repair_order_details',
333
+ },
334
+ created_at: '2023-08-21T16:48:56.950482+00:00',
335
+ },
336
+ ],
337
+ nodeMaterializations: [
338
+ {
339
+ name: 'country_birth_date_contractor_id_379232101',
340
+ engine: { name: 'spark', version: '2.4.4', uri: null, dialect: 'spark' },
341
+ config: {
342
+ partitions: [
343
+ {
344
+ name: 'country',
345
+ values: ['DE', 'MY'],
346
+ range: null,
347
+ expression: null,
348
+ type_: 'categorical',
349
+ },
350
+ {
351
+ name: 'birth_date',
352
+ values: null,
353
+ range: [20010101, 20020101],
354
+ expression: null,
355
+ type_: 'temporal',
356
+ },
357
+ {
358
+ name: 'contractor_id',
359
+ values: null,
360
+ range: [1, 10],
361
+ expression: null,
362
+ type_: 'categorical',
363
+ },
364
+ ],
365
+ spark: {},
366
+ query:
367
+ "SELECT default_DOT_hard_hats.address,\n\tdefault_DOT_hard_hats.birth_date,\n\tdefault_DOT_hard_hats.city,\n\tdefault_DOT_hard_hats.contractor_id,\n\tdefault_DOT_hard_hats.country,\n\tdefault_DOT_hard_hats.first_name,\n\tdefault_DOT_hard_hats.hard_hat_id,\n\tdefault_DOT_hard_hats.hire_date,\n\tdefault_DOT_hard_hats.last_name,\n\tdefault_DOT_hard_hats.manager,\n\tdefault_DOT_hard_hats.postal_code,\n\tdefault_DOT_hard_hats.state,\n\tdefault_DOT_hard_hats.title \n FROM roads.hard_hats AS default_DOT_hard_hats \n WHERE default_DOT_hard_hats.country IN ('DE', 'MY') AND default_DOT_hard_hats.contractor_id BETWEEN 1 AND 10\n\n",
368
+ upstream_tables: ['default.roads.hard_hats'],
369
+ },
370
+ schedule: '0 * * * *',
371
+ job: 'SparkSqlMaterializationJob',
372
+ output_tables: ['common.a', 'common.b'],
373
+ urls: ['http://fake.url/job'],
374
+ clientCode: '',
375
+ },
376
+ ],
377
+ metricNodeRevisions: [
378
+ {
379
+ node_revision_id: 24,
380
+ node_id: 24,
381
+ type: 'metric',
382
+ name: 'default.avg_repair_price',
383
+ display_name: 'Default: Avg Repair Price',
384
+ version: 'v1.0',
385
+ status: 'valid',
386
+ mode: 'published',
387
+ catalog: {
388
+ id: 1,
389
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
390
+ created_at: '2023-08-21T16:48:51.146121+00:00',
391
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
392
+ extra_params: {},
393
+ name: 'warehouse',
394
+ },
395
+ schema_: null,
396
+ table: null,
397
+ description: 'Average repair price',
398
+ query:
399
+ 'SELECT avg(price) default_DOT_avg_repair_price \n FROM default.repair_order_details\n\n',
400
+ availability: null,
401
+ columns: [
402
+ {
403
+ name: 'default_DOT_avg_repair_price',
404
+ type: 'double',
405
+ attributes: [],
406
+ dimension: null,
407
+ },
408
+ ],
409
+ updated_at: '2023-08-21T16:48:56.932231+00:00',
410
+ materializations: [],
411
+ parents: [
412
+ {
413
+ name: 'default.repair_order_details',
414
+ },
415
+ ],
416
+ },
417
+ ],
418
+ mockCubeNode: {
419
+ namespace: 'default',
420
+ node_revision_id: 33,
421
+ node_id: 33,
422
+ type: 'cube',
423
+ name: 'default.repair_orders_cube',
424
+ display_name: 'Default: Repair Orders Cube',
425
+ version: 'v1.0',
426
+ status: 'valid',
427
+ mode: 'published',
428
+ catalog: {
429
+ id: 1,
430
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
431
+ created_at: '2023-08-21T16:48:51.146121+00:00',
432
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
433
+ extra_params: {},
434
+ name: 'warehouse',
435
+ },
436
+ schema_: null,
437
+ table: null,
438
+ description: 'Repair Orders Cube',
439
+ query: 'SELECT ...',
440
+ availability: null,
441
+ columns: [
442
+ {
443
+ name: 'default_DOT_num_repair_orders',
444
+ type: 'bigint',
445
+ attributes: [],
446
+ dimension: null,
447
+ },
448
+ {
449
+ name: 'default_DOT_avg_repair_price',
450
+ type: 'double',
451
+ attributes: [],
452
+ dimension: null,
453
+ },
454
+ {
455
+ name: 'default_DOT_total_repair_cost',
456
+ type: 'double',
457
+ attributes: [],
458
+ dimension: null,
459
+ },
460
+ {
461
+ name: 'default_DOT_total_repair_order_discounts',
462
+ type: 'double',
463
+ attributes: [],
464
+ dimension: null,
465
+ },
466
+ {
467
+ name: 'company_name',
468
+ type: 'string',
469
+ attributes: [
470
+ {
471
+ attribute_type: {
472
+ namespace: 'system',
473
+ name: 'dimension',
474
+ },
475
+ },
476
+ ],
477
+ dimension: null,
478
+ },
479
+ {
480
+ name: 'state',
481
+ type: 'string',
482
+ attributes: [
483
+ {
484
+ attribute_type: {
485
+ namespace: 'system',
486
+ name: 'dimension',
487
+ },
488
+ },
489
+ ],
490
+ dimension: null,
491
+ },
492
+ ],
493
+ updated_at: '2023-08-21T16:49:02.040424+00:00',
494
+ materializations: [
495
+ {
496
+ name: 'default',
497
+ engine: {
498
+ name: 'duckdb',
499
+ version: '0.7.1',
500
+ uri: null,
501
+ dialect: null,
502
+ },
503
+ config: {
504
+ partitions: [],
505
+ spark: null,
506
+ query: 'SELECT',
507
+ upstream_tables: [
508
+ 'warehouse.roads.dispatchers',
509
+ 'warehouse.roads.hard_hats',
510
+ 'warehouse.roads.repair_order_details',
511
+ 'warehouse.roads.repair_orders',
512
+ ],
513
+ dimensions: ['company_name', 'state'],
514
+ measures: {
515
+ default_DOT_num_repair_orders: {
516
+ metric: 'default_DOT_num_repair_orders',
517
+ measures: [
518
+ {
519
+ name: 'repair_order_id_count',
520
+ field_name:
521
+ 'm0_default_DOT_num_repair_orders_repair_order_id_count',
522
+ agg: 'count',
523
+ type: 'bigint',
524
+ },
525
+ ],
526
+ combiner: 'count(repair_order_id_count)',
527
+ },
528
+ default_DOT_avg_repair_price: {
529
+ metric: 'default_DOT_avg_repair_price',
530
+ measures: [
531
+ {
532
+ name: 'price_count',
533
+ field_name: 'm1_default_DOT_avg_repair_price_price_count',
534
+ agg: 'count',
535
+ type: 'bigint',
536
+ },
537
+ {
538
+ name: 'price_sum',
539
+ field_name: 'm1_default_DOT_avg_repair_price_price_sum',
540
+ agg: 'sum',
541
+ type: 'double',
542
+ },
543
+ ],
544
+ combiner: 'sum(price_sum) / count(price_count)',
545
+ },
546
+ default_DOT_total_repair_cost: {
547
+ metric: 'default_DOT_total_repair_cost',
548
+ measures: [
549
+ {
550
+ name: 'price_sum',
551
+ field_name: 'm2_default_DOT_total_repair_cost_price_sum',
552
+ agg: 'sum',
553
+ type: 'double',
554
+ },
555
+ ],
556
+ combiner: 'sum(price_sum)',
557
+ },
558
+ default_DOT_total_repair_order_discounts: {
559
+ metric: 'default_DOT_total_repair_order_discounts',
560
+ measures: [
561
+ {
562
+ name: 'price_discount_sum',
563
+ field_name:
564
+ 'm3_default_DOT_total_repair_order_discounts_price_discount_sum',
565
+ agg: 'sum',
566
+ type: 'double',
567
+ },
568
+ ],
569
+ combiner: 'sum(price_discount_sum)',
570
+ },
571
+ },
572
+ },
573
+ schedule: '@daily',
574
+ job: 'DefaultCubeMaterialization',
575
+ },
576
+ ],
577
+ parents: [
578
+ {
579
+ name: 'default.hard_hat',
580
+ },
581
+ {
582
+ name: 'default.dispatcher',
583
+ },
584
+ {
585
+ name: 'default.num_repair_orders',
586
+ },
587
+ {
588
+ name: 'default.avg_repair_price',
589
+ },
590
+ {
591
+ name: 'default.total_repair_cost',
592
+ },
593
+ {
594
+ name: 'default.total_repair_order_discounts',
595
+ },
596
+ ],
597
+ created_at: '2023-08-21T16:49:01.671395+00:00',
598
+ tags: [],
599
+ },
600
+ mockCubesCube: {
601
+ node_revision_id: 33,
602
+ node_id: 33,
603
+ type: 'cube',
604
+ name: 'default.repair_orders_cube',
605
+ display_name: 'Default: Repair Orders Cube',
606
+ version: 'v1.0',
607
+ description: 'Repair Orders Cube',
608
+ availability: null,
609
+ cube_elements: [
610
+ {
611
+ name: 'default_DOT_num_repair_orders',
612
+ node_name: 'default.num_repair_orders',
613
+ type: 'metric',
614
+ },
615
+ {
616
+ name: 'default_DOT_avg_repair_price',
617
+ node_name: 'default.avg_repair_price',
618
+ type: 'metric',
619
+ },
620
+ {
621
+ name: 'default_DOT_total_repair_cost',
622
+ node_name: 'default.total_repair_cost',
623
+ type: 'metric',
624
+ },
625
+ {
626
+ name: 'default_DOT_total_repair_order_discounts',
627
+ node_name: 'default.total_repair_order_discounts',
628
+ type: 'metric',
629
+ },
630
+ {
631
+ name: 'state',
632
+ node_name: 'default.hard_hat',
633
+ type: 'dimension',
634
+ },
635
+ {
636
+ name: 'company_name',
637
+ node_name: 'default.dispatcher',
638
+ type: 'dimension',
639
+ },
640
+ ],
641
+ query: 'SELECT',
642
+ columns: [
643
+ {
644
+ name: 'default_DOT_num_repair_orders',
645
+ type: 'bigint',
646
+ attributes: [],
647
+ dimension: null,
648
+ },
649
+ {
650
+ name: 'default_DOT_avg_repair_price',
651
+ type: 'double',
652
+ attributes: [],
653
+ dimension: null,
654
+ },
655
+ {
656
+ name: 'default_DOT_total_repair_cost',
657
+ type: 'double',
658
+ attributes: [],
659
+ dimension: null,
660
+ },
661
+ {
662
+ name: 'default_DOT_total_repair_order_discounts',
663
+ type: 'double',
664
+ attributes: [],
665
+ dimension: null,
666
+ },
667
+ {
668
+ name: 'company_name',
669
+ type: 'string',
670
+ attributes: [
671
+ {
672
+ attribute_type: {
673
+ namespace: 'system',
674
+ name: 'dimension',
675
+ },
676
+ },
677
+ ],
678
+ dimension: null,
679
+ },
680
+ {
681
+ name: 'state',
682
+ type: 'string',
683
+ attributes: [
684
+ {
685
+ attribute_type: {
686
+ namespace: 'system',
687
+ name: 'dimension',
688
+ },
689
+ },
690
+ ],
691
+ dimension: null,
692
+ },
693
+ ],
694
+ updated_at: '2023-08-21T16:49:02.040424+00:00',
695
+ materializations: [
696
+ {
697
+ name: 'default',
698
+ engine: {
699
+ name: 'duckdb',
700
+ version: '0.7.1',
701
+ uri: null,
702
+ dialect: null,
703
+ },
704
+ config: {
705
+ partitions: [],
706
+ spark: null,
707
+ query: 'SELECT',
708
+ upstream_tables: [
709
+ 'warehouse.roads.dispatchers',
710
+ 'warehouse.roads.hard_hats',
711
+ 'warehouse.roads.repair_order_details',
712
+ 'warehouse.roads.repair_orders',
713
+ ],
714
+ dimensions: ['company_name', 'state'],
715
+ measures: {
716
+ default_DOT_num_repair_orders: {
717
+ metric: 'default_DOT_num_repair_orders',
718
+ measures: [
719
+ {
720
+ name: 'repair_order_id_count',
721
+ field_name:
722
+ 'm0_default_DOT_num_repair_orders_repair_order_id_count',
723
+ agg: 'count',
724
+ type: 'bigint',
725
+ },
726
+ ],
727
+ combiner: 'count(repair_order_id_count)',
728
+ },
729
+ default_DOT_avg_repair_price: {
730
+ metric: 'default_DOT_avg_repair_price',
731
+ measures: [
732
+ {
733
+ name: 'price_count',
734
+ field_name: 'm1_default_DOT_avg_repair_price_price_count',
735
+ agg: 'count',
736
+ type: 'bigint',
737
+ },
738
+ {
739
+ name: 'price_sum',
740
+ field_name: 'm1_default_DOT_avg_repair_price_price_sum',
741
+ agg: 'sum',
742
+ type: 'double',
743
+ },
744
+ ],
745
+ combiner: 'sum(price_sum) / count(price_count)',
746
+ },
747
+ default_DOT_total_repair_cost: {
748
+ metric: 'default_DOT_total_repair_cost',
749
+ measures: [
750
+ {
751
+ name: 'price_sum',
752
+ field_name: 'm2_default_DOT_total_repair_cost_price_sum',
753
+ agg: 'sum',
754
+ type: 'double',
755
+ },
756
+ ],
757
+ combiner: 'sum(price_sum)',
758
+ },
759
+ default_DOT_total_repair_order_discounts: {
760
+ metric: 'default_DOT_total_repair_order_discounts',
761
+ measures: [
762
+ {
763
+ name: 'price_discount_sum',
764
+ field_name:
765
+ 'm3_default_DOT_total_repair_order_discounts_price_discount_sum',
766
+ agg: 'sum',
767
+ type: 'double',
768
+ },
769
+ ],
770
+ combiner: 'sum(price_discount_sum)',
771
+ },
772
+ },
773
+ },
774
+ schedule: '@daily',
775
+ job: 'DefaultCubeMaterialization',
776
+ },
777
+ ],
778
+ },
779
+ mockNodeLineage: [
780
+ {
781
+ column_name: 'default_DOT_avg_repair_price',
782
+ node_name: 'default.avg_repair_price',
783
+ node_type: 'metric',
784
+ display_name: 'Default: Avg Repair Price',
785
+ lineage: [
786
+ {
787
+ column_name: 'price',
788
+ node_name: 'default.repair_order_details',
789
+ node_type: 'source',
790
+ display_name: 'Default: Repair Order Details',
791
+ lineage: [],
792
+ },
793
+ ],
794
+ },
795
+ ],
796
+ mockMetricNodeJson: {
797
+ namespace: 'default',
798
+ node_revision_id: 24,
799
+ node_id: 24,
800
+ type: 'metric',
801
+ name: 'default.avg_repair_price',
802
+ display_name: 'Default: Avg Repair Price',
803
+ version: 'v1.0',
804
+ status: 'valid',
805
+ mode: 'published',
806
+ catalog: {
807
+ id: 1,
808
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
809
+ created_at: '2023-08-21T16:48:51.146121+00:00',
810
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
811
+ extra_params: {},
812
+ name: 'warehouse',
813
+ },
814
+ schema_: null,
815
+ table: null,
816
+ description: 'Average repair price',
817
+ query:
818
+ 'SELECT avg(price) default_DOT_avg_repair_price \n FROM default.repair_order_details\n\n',
819
+ availability: null,
820
+ columns: [
821
+ {
822
+ name: 'default_DOT_avg_repair_price',
823
+ type: 'double',
824
+ attributes: [],
825
+ dimension: null,
826
+ },
827
+ ],
828
+ updated_at: '2023-08-21T16:48:56.932231+00:00',
829
+ materializations: [],
830
+ parents: [
831
+ {
832
+ name: 'default.repair_order_details',
833
+ },
834
+ ],
835
+ created_at: '2023-08-21T16:48:56.932162+00:00',
836
+ tags: [],
837
+ primary_key: [],
838
+ createNodeClientCode:
839
+ 'dj = DJBuilder(DJ_URL)\n\navg_repair_price = dj.create_metric(\n description="Average repair price",\n display_name="Default: Avg Repair Price",\n name="default.avg_repair_price",\n primary_key=[],\n query="""SELECT avg(price) default_DOT_avg_repair_price \n FROM default.repair_order_details\n\n"""\n)',
840
+ dimensions: [
841
+ {
842
+ name: 'default.date_dim.dateint',
843
+ type: 'timestamp',
844
+ path: [
845
+ 'default.repair_order_details.repair_order_id',
846
+ 'default.repair_order.hard_hat_id',
847
+ 'default.hard_hat.birth_date',
848
+ ],
849
+ },
850
+ {
851
+ name: 'default.date_dim.dateint',
852
+ type: 'timestamp',
853
+ path: [
854
+ 'default.repair_order_details.repair_order_id',
855
+ 'default.repair_order.hard_hat_id',
856
+ 'default.hard_hat.hire_date',
857
+ ],
858
+ },
859
+ {
860
+ name: 'default.date_dim.day',
861
+ type: 'int',
862
+ path: [
863
+ 'default.repair_order_details.repair_order_id',
864
+ 'default.repair_order.hard_hat_id',
865
+ 'default.hard_hat.birth_date',
866
+ ],
867
+ },
868
+ {
869
+ name: 'default.date_dim.day',
870
+ type: 'int',
871
+ path: [
872
+ 'default.repair_order_details.repair_order_id',
873
+ 'default.repair_order.hard_hat_id',
874
+ 'default.hard_hat.hire_date',
875
+ ],
876
+ },
877
+ {
878
+ name: 'default.date_dim.month',
879
+ type: 'int',
880
+ path: [
881
+ 'default.repair_order_details.repair_order_id',
882
+ 'default.repair_order.hard_hat_id',
883
+ 'default.hard_hat.birth_date',
884
+ ],
885
+ },
886
+ {
887
+ name: 'default.date_dim.month',
888
+ type: 'int',
889
+ path: [
890
+ 'default.repair_order_details.repair_order_id',
891
+ 'default.repair_order.hard_hat_id',
892
+ 'default.hard_hat.hire_date',
893
+ ],
894
+ },
895
+ {
896
+ name: 'default.date_dim.year',
897
+ type: 'int',
898
+ path: [
899
+ 'default.repair_order_details.repair_order_id',
900
+ 'default.repair_order.hard_hat_id',
901
+ 'default.hard_hat.birth_date',
902
+ ],
903
+ },
904
+ {
905
+ name: 'default.date_dim.year',
906
+ type: 'int',
907
+ path: [
908
+ 'default.repair_order_details.repair_order_id',
909
+ 'default.repair_order.hard_hat_id',
910
+ 'default.hard_hat.hire_date',
911
+ ],
912
+ },
913
+ {
914
+ name: 'default.hard_hat.address',
915
+ type: 'string',
916
+ path: [
917
+ 'default.repair_order_details.repair_order_id',
918
+ 'default.repair_order.hard_hat_id',
919
+ ],
920
+ },
921
+ {
922
+ name: 'default.hard_hat.birth_date',
923
+ type: 'date',
924
+ path: [
925
+ 'default.repair_order_details.repair_order_id',
926
+ 'default.repair_order.hard_hat_id',
927
+ ],
928
+ },
929
+ {
930
+ name: 'default.hard_hat.city',
931
+ type: 'string',
932
+ path: [
933
+ 'default.repair_order_details.repair_order_id',
934
+ 'default.repair_order.hard_hat_id',
935
+ ],
936
+ },
937
+ {
938
+ name: 'default.hard_hat.contractor_id',
939
+ type: 'int',
940
+ path: [
941
+ 'default.repair_order_details.repair_order_id',
942
+ 'default.repair_order.hard_hat_id',
943
+ ],
944
+ },
945
+ {
946
+ name: 'default.hard_hat.country',
947
+ type: 'string',
948
+ path: [
949
+ 'default.repair_order_details.repair_order_id',
950
+ 'default.repair_order.hard_hat_id',
951
+ ],
952
+ },
953
+ {
954
+ name: 'default.hard_hat.first_name',
955
+ type: 'string',
956
+ path: [
957
+ 'default.repair_order_details.repair_order_id',
958
+ 'default.repair_order.hard_hat_id',
959
+ ],
960
+ },
961
+ {
962
+ name: 'default.hard_hat.hard_hat_id',
963
+ type: 'int',
964
+ path: [
965
+ 'default.repair_order_details.repair_order_id',
966
+ 'default.repair_order.hard_hat_id',
967
+ ],
968
+ },
969
+ {
970
+ name: 'default.hard_hat.hire_date',
971
+ type: 'date',
972
+ path: [
973
+ 'default.repair_order_details.repair_order_id',
974
+ 'default.repair_order.hard_hat_id',
975
+ ],
976
+ },
977
+ {
978
+ name: 'default.hard_hat.last_name',
979
+ type: 'string',
980
+ path: [
981
+ 'default.repair_order_details.repair_order_id',
982
+ 'default.repair_order.hard_hat_id',
983
+ ],
984
+ },
985
+ {
986
+ name: 'default.hard_hat.manager',
987
+ type: 'int',
988
+ path: [
989
+ 'default.repair_order_details.repair_order_id',
990
+ 'default.repair_order.hard_hat_id',
991
+ ],
992
+ },
993
+ {
994
+ name: 'default.hard_hat.postal_code',
995
+ type: 'string',
996
+ path: [
997
+ 'default.repair_order_details.repair_order_id',
998
+ 'default.repair_order.hard_hat_id',
999
+ ],
1000
+ },
1001
+ {
1002
+ name: 'default.hard_hat.state',
1003
+ type: 'string',
1004
+ path: [
1005
+ 'default.repair_order_details.repair_order_id',
1006
+ 'default.repair_order.hard_hat_id',
1007
+ ],
1008
+ },
1009
+ {
1010
+ name: 'default.hard_hat.title',
1011
+ type: 'string',
1012
+ path: [
1013
+ 'default.repair_order_details.repair_order_id',
1014
+ 'default.repair_order.hard_hat_id',
1015
+ ],
1016
+ },
1017
+ ],
1018
+ },
1019
+ mockNodeDAG: [
1020
+ {
1021
+ namespace: 'default',
1022
+ node_revision_id: 2,
1023
+ node_id: 2,
1024
+ type: 'source',
1025
+ name: 'default.repair_order_details',
1026
+ display_name: 'Default: Repair Order Details',
1027
+ version: 'v1.0',
1028
+ status: 'valid',
1029
+ mode: 'published',
1030
+ catalog: {
1031
+ id: 1,
1032
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
1033
+ created_at: '2023-08-21T16:48:51.146121+00:00',
1034
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
1035
+ extra_params: {},
1036
+ name: 'warehouse',
1037
+ },
1038
+ schema_: 'roads',
1039
+ table: 'repair_order_details',
1040
+ description: 'Details on repair orders',
1041
+ query: null,
1042
+ availability: null,
1043
+ columns: [
1044
+ {
1045
+ name: 'repair_order_id',
1046
+ type: 'int',
1047
+ attributes: [],
1048
+ dimension: {
1049
+ name: 'default.repair_order',
1050
+ },
1051
+ },
1052
+ {
1053
+ name: 'repair_type_id',
1054
+ type: 'int',
1055
+ attributes: [],
1056
+ dimension: null,
1057
+ },
1058
+ {
1059
+ name: 'price',
1060
+ type: 'float',
1061
+ attributes: [],
1062
+ dimension: null,
1063
+ },
1064
+ {
1065
+ name: 'quantity',
1066
+ type: 'int',
1067
+ attributes: [],
1068
+ dimension: null,
1069
+ },
1070
+ {
1071
+ name: 'discount',
1072
+ type: 'float',
1073
+ attributes: [],
1074
+ dimension: null,
1075
+ },
1076
+ ],
1077
+ updated_at: '2023-08-21T16:48:52.981201+00:00',
1078
+ materializations: [],
1079
+ parents: [],
1080
+ created_at: '2023-08-21T16:48:52.970554+00:00',
1081
+ tags: [],
1082
+ },
1083
+ {
1084
+ namespace: 'default',
1085
+ node_revision_id: 14,
1086
+ node_id: 14,
1087
+ type: 'dimension',
1088
+ name: 'default.date_dim',
1089
+ display_name: 'Default: Date Dim',
1090
+ version: 'v1.0',
1091
+ status: 'valid',
1092
+ mode: 'published',
1093
+ catalog: {
1094
+ id: 1,
1095
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
1096
+ created_at: '2023-08-21T16:48:51.146121+00:00',
1097
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
1098
+ extra_params: {},
1099
+ name: 'warehouse',
1100
+ },
1101
+ schema_: null,
1102
+ table: null,
1103
+ description: 'Date dimension',
1104
+ query:
1105
+ '\n SELECT\n dateint,\n month,\n year,\n day\n FROM default.date\n ',
1106
+ availability: null,
1107
+ columns: [
1108
+ {
1109
+ name: 'dateint',
1110
+ type: 'timestamp',
1111
+ attributes: [
1112
+ {
1113
+ attribute_type: {
1114
+ namespace: 'system',
1115
+ name: 'primary_key',
1116
+ },
1117
+ },
1118
+ ],
1119
+ dimension: null,
1120
+ },
1121
+ {
1122
+ name: 'month',
1123
+ type: 'int',
1124
+ attributes: [],
1125
+ dimension: null,
1126
+ },
1127
+ {
1128
+ name: 'year',
1129
+ type: 'int',
1130
+ attributes: [],
1131
+ dimension: null,
1132
+ },
1133
+ {
1134
+ name: 'day',
1135
+ type: 'int',
1136
+ attributes: [],
1137
+ dimension: null,
1138
+ },
1139
+ ],
1140
+ updated_at: '2023-08-21T16:48:54.726980+00:00',
1141
+ materializations: [],
1142
+ parents: [
1143
+ {
1144
+ name: 'default.date',
1145
+ },
1146
+ ],
1147
+ created_at: '2023-08-21T16:48:54.726871+00:00',
1148
+ tags: [],
1149
+ },
1150
+ {
1151
+ namespace: 'default',
1152
+ node_revision_id: 18,
1153
+ node_id: 18,
1154
+ type: 'dimension',
1155
+ name: 'default.hard_hat',
1156
+ display_name: 'Default: Hard Hat',
1157
+ version: 'v1.0',
1158
+ status: 'valid',
1159
+ mode: 'published',
1160
+ catalog: {
1161
+ id: 1,
1162
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
1163
+ created_at: '2023-08-21T16:48:51.146121+00:00',
1164
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
1165
+ extra_params: {},
1166
+ name: 'warehouse',
1167
+ },
1168
+ schema_: null,
1169
+ table: null,
1170
+ description: 'Hard hat dimension',
1171
+ query:
1172
+ '\n SELECT\n hard_hat_id,\n last_name,\n first_name,\n title,\n birth_date,\n hire_date,\n address,\n city,\n state,\n postal_code,\n country,\n manager,\n contractor_id\n FROM default.hard_hats\n ',
1173
+ availability: null,
1174
+ columns: [
1175
+ {
1176
+ name: 'hard_hat_id',
1177
+ type: 'int',
1178
+ attributes: [
1179
+ {
1180
+ attribute_type: {
1181
+ namespace: 'system',
1182
+ name: 'primary_key',
1183
+ },
1184
+ },
1185
+ ],
1186
+ dimension: null,
1187
+ },
1188
+ {
1189
+ name: 'last_name',
1190
+ type: 'string',
1191
+ attributes: [],
1192
+ dimension: null,
1193
+ },
1194
+ {
1195
+ name: 'first_name',
1196
+ type: 'string',
1197
+ attributes: [],
1198
+ dimension: null,
1199
+ },
1200
+ {
1201
+ name: 'title',
1202
+ type: 'string',
1203
+ attributes: [],
1204
+ dimension: null,
1205
+ },
1206
+ {
1207
+ name: 'birth_date',
1208
+ type: 'date',
1209
+ attributes: [],
1210
+ dimension: {
1211
+ name: 'default.date_dim',
1212
+ },
1213
+ },
1214
+ {
1215
+ name: 'hire_date',
1216
+ type: 'date',
1217
+ attributes: [],
1218
+ dimension: {
1219
+ name: 'default.date_dim',
1220
+ },
1221
+ },
1222
+ {
1223
+ name: 'address',
1224
+ type: 'string',
1225
+ attributes: [],
1226
+ dimension: null,
1227
+ },
1228
+ {
1229
+ name: 'city',
1230
+ type: 'string',
1231
+ attributes: [],
1232
+ dimension: null,
1233
+ },
1234
+ {
1235
+ name: 'state',
1236
+ type: 'string',
1237
+ attributes: [],
1238
+ dimension: {
1239
+ name: 'default.us_state',
1240
+ },
1241
+ },
1242
+ {
1243
+ name: 'postal_code',
1244
+ type: 'string',
1245
+ attributes: [],
1246
+ dimension: null,
1247
+ },
1248
+ {
1249
+ name: 'country',
1250
+ type: 'string',
1251
+ attributes: [],
1252
+ dimension: null,
1253
+ },
1254
+ {
1255
+ name: 'manager',
1256
+ type: 'int',
1257
+ attributes: [],
1258
+ dimension: null,
1259
+ },
1260
+ {
1261
+ name: 'contractor_id',
1262
+ type: 'int',
1263
+ attributes: [],
1264
+ dimension: null,
1265
+ },
1266
+ ],
1267
+ updated_at: '2023-08-21T16:48:55.594603+00:00',
1268
+ materializations: [],
1269
+ parents: [
1270
+ {
1271
+ name: 'default.hard_hats',
1272
+ },
1273
+ ],
1274
+ created_at: '2023-08-21T16:48:55.594537+00:00',
1275
+ tags: [],
1276
+ },
1277
+ {
1278
+ namespace: 'default',
1279
+ node_revision_id: 24,
1280
+ node_id: 24,
1281
+ type: 'metric',
1282
+ name: 'default.avg_repair_price',
1283
+ display_name: 'Default: Avg Repair Price',
1284
+ version: 'v1.0',
1285
+ status: 'valid',
1286
+ mode: 'published',
1287
+ catalog: {
1288
+ id: 1,
1289
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
1290
+ created_at: '2023-08-21T16:48:51.146121+00:00',
1291
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
1292
+ extra_params: {},
1293
+ name: 'warehouse',
1294
+ },
1295
+ schema_: null,
1296
+ table: null,
1297
+ description: 'Average repair price',
1298
+ query:
1299
+ 'SELECT avg(price) default_DOT_avg_repair_price \n FROM default.repair_order_details\n\n',
1300
+ availability: null,
1301
+ columns: [
1302
+ {
1303
+ name: 'default_DOT_avg_repair_price',
1304
+ type: 'double',
1305
+ attributes: [],
1306
+ dimension: null,
1307
+ },
1308
+ ],
1309
+ updated_at: '2023-08-21T16:48:56.932231+00:00',
1310
+ materializations: [],
1311
+ parents: [
1312
+ {
1313
+ name: 'default.repair_order_details',
1314
+ },
1315
+ ],
1316
+ created_at: '2023-08-21T16:48:56.932162+00:00',
1317
+ tags: [],
1318
+ },
1319
+ ],
1320
+ mockDimensionNode: {
1321
+ namespace: 'default',
1322
+ node_revision_id: 21,
1323
+ node_id: 21,
1324
+ type: 'dimension',
1325
+ name: 'default.dispatcher',
1326
+ display_name: 'Default: Dispatcher',
1327
+ version: 'v1.0',
1328
+ status: 'valid',
1329
+ mode: 'published',
1330
+ catalog: {
1331
+ id: 1,
1332
+ uuid: '0fc18295-e1a2-4c3c-b72a-894725c12488',
1333
+ created_at: '2023-08-21T16:48:51.146121+00:00',
1334
+ updated_at: '2023-08-21T16:48:51.146122+00:00',
1335
+ extra_params: {},
1336
+ name: 'warehouse',
1337
+ },
1338
+ schema_: null,
1339
+ table: null,
1340
+ description: 'Dispatcher dimension',
1341
+ query:
1342
+ '\n SELECT\n dispatcher_id,\n company_name,\n phone\n FROM default.dispatchers\n ',
1343
+ availability: null,
1344
+ columns: [
1345
+ {
1346
+ name: 'dispatcher_id',
1347
+ type: 'int',
1348
+ attributes: [
1349
+ {
1350
+ attribute_type: {
1351
+ namespace: 'system',
1352
+ name: 'primary_key',
1353
+ },
1354
+ },
1355
+ ],
1356
+ dimension: null,
1357
+ },
1358
+ {
1359
+ name: 'company_name',
1360
+ type: 'string',
1361
+ attributes: [],
1362
+ dimension: null,
1363
+ },
1364
+ {
1365
+ name: 'phone',
1366
+ type: 'string',
1367
+ attributes: [],
1368
+ dimension: null,
1369
+ },
1370
+ ],
1371
+ updated_at: '2023-08-21T16:48:56.399124+00:00',
1372
+ materializations: [],
1373
+ parents: [
1374
+ {
1375
+ name: 'default.dispatchers',
1376
+ },
1377
+ ],
1378
+ created_at: '2023-08-21T16:48:56.399025+00:00',
1379
+ tags: [],
1380
+ },
1381
+ mockLinkedNodes: [
1382
+ {
1383
+ node_revision_id: 2,
1384
+ node_id: 2,
1385
+ type: 'source',
1386
+ name: 'default.repair_order_details',
1387
+ display_name: 'Default: Repair Order Details',
1388
+ },
1389
+ {
1390
+ node_revision_id: 3,
1391
+ node_id: 3,
1392
+ type: 'source',
1393
+ name: 'default.num_repair_orders',
1394
+ display_name: 'Default: Num Repair Orders',
1395
+ },
1396
+ ],
1397
+ };