datajunction-ui 0.0.1-a1

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