Skip to content

Commit 8d714d6

Browse files
authored
fix(cubesql): Add folders to Cube Metadata (#9089)
1 parent d8d8de2 commit 8d714d6

File tree

9 files changed

+56
-0
lines changed

9 files changed

+56
-0
lines changed

packages/cubejs-api-gateway/openspec.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,18 @@ components:
158158
type: "string"
159159
meta:
160160
type: "object"
161+
V1CubeMetaFolder:
162+
type: "object"
163+
required:
164+
- name
165+
- members
166+
properties:
167+
name:
168+
type: "string"
169+
members:
170+
type: array
171+
items:
172+
type: "string"
161173
V1CubeMeta:
162174
type: "object"
163175
required:
@@ -193,6 +205,10 @@ components:
193205
type: "array"
194206
items:
195207
$ref: "#/components/schemas/V1CubeMetaJoin"
208+
folders:
209+
type: "array"
210+
items:
211+
$ref: "#/components/schemas/V1CubeMetaFolder"
196212
V1CubeMetaType:
197213
type: "string"
198214
description: Type of cube

rust/cubesql/cubeclient/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ src/models/mod.rs
44
src/models/v1_cube_meta.rs
55
src/models/v1_cube_meta_dimension.rs
66
src/models/v1_cube_meta_dimension_granularity.rs
7+
src/models/v1_cube_meta_folder.rs
78
src/models/v1_cube_meta_join.rs
89
src/models/v1_cube_meta_measure.rs
910
src/models/v1_cube_meta_segment.rs

rust/cubesql/cubeclient/src/models/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ pub mod v1_cube_meta_dimension;
44
pub use self::v1_cube_meta_dimension::V1CubeMetaDimension;
55
pub mod v1_cube_meta_dimension_granularity;
66
pub use self::v1_cube_meta_dimension_granularity::V1CubeMetaDimensionGranularity;
7+
pub mod v1_cube_meta_folder;
8+
pub use self::v1_cube_meta_folder::V1CubeMetaFolder;
79
pub mod v1_cube_meta_join;
810
pub use self::v1_cube_meta_join::V1CubeMetaJoin;
911
pub mod v1_cube_meta_measure;

rust/cubesql/cubeclient/src/models/v1_cube_meta.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ pub struct V1CubeMeta {
2828
pub segments: Vec<crate::models::V1CubeMetaSegment>,
2929
#[serde(rename = "joins", skip_serializing_if = "Option::is_none")]
3030
pub joins: Option<Vec<crate::models::V1CubeMetaJoin>>,
31+
#[serde(rename = "folders", skip_serializing_if = "Option::is_none")]
32+
pub folders: Option<Vec<crate::models::V1CubeMetaFolder>>,
3133
}
3234

3335
impl V1CubeMeta {
@@ -48,6 +50,7 @@ impl V1CubeMeta {
4850
dimensions,
4951
segments,
5052
joins: None,
53+
folders: None,
5154
}
5255
}
5356
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Cube.js
3+
*
4+
* Cube.js Swagger Schema
5+
*
6+
* The version of the OpenAPI document: 1.0.0
7+
*
8+
* Generated by: https://openapi-generator.tech
9+
*/
10+
11+
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12+
pub struct V1CubeMetaFolder {
13+
#[serde(rename = "name")]
14+
pub name: String,
15+
#[serde(rename = "members")]
16+
pub members: Vec<String>,
17+
}
18+
19+
impl V1CubeMetaFolder {
20+
pub fn new(name: String, members: Vec<String>) -> V1CubeMetaFolder {
21+
V1CubeMetaFolder { name, members }
22+
}
23+
}

rust/cubesql/cubesql/benches/large_model.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ pub fn get_large_model_test_meta(dims: usize) -> Vec<V1CubeMeta> {
100100
.collect(),
101101
segments: vec![],
102102
joins: None,
103+
folders: None,
103104
meta: None,
104105
}]
105106
}

rust/cubesql/cubesql/src/compile/test/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
152152
name: "Logs".to_string(),
153153
relationship: "belongsTo".to_string(),
154154
}]),
155+
folders: None,
155156
meta: None,
156157
},
157158
CubeMeta {
@@ -199,6 +200,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
199200
name: "NumberCube".to_string(),
200201
relationship: "belongsTo".to_string(),
201202
}]),
203+
folders: None,
202204
meta: None,
203205
},
204206
CubeMeta {
@@ -217,6 +219,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
217219
}],
218220
segments: vec![],
219221
joins: None,
222+
folders: None,
220223
meta: None,
221224
},
222225
CubeMeta {
@@ -288,6 +291,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
288291
.collect(),
289292
segments: Vec::new(),
290293
joins: Some(Vec::new()),
294+
folders: None,
291295
meta: None,
292296
},
293297
CubeMeta {
@@ -396,6 +400,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
396400
.collect(),
397401
segments: Vec::new(),
398402
joins: Some(Vec::new()),
403+
folders: None,
399404
meta: None,
400405
},
401406
]
@@ -418,6 +423,7 @@ pub fn get_string_cube_meta() -> Vec<CubeMeta> {
418423
}],
419424
segments: vec![],
420425
joins: None,
426+
folders: None,
421427
meta: None,
422428
}]
423429
}
@@ -457,6 +463,7 @@ pub fn get_sixteen_char_member_cube() -> Vec<CubeMeta> {
457463
],
458464
segments: vec![],
459465
joins: None,
466+
folders: None,
460467
meta: None,
461468
}]
462469
}

rust/cubesql/cubesql/src/transport/ctx.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ mod tests {
234234
measures: vec![],
235235
segments: vec![],
236236
joins: None,
237+
folders: None,
237238
meta: None,
238239
},
239240
CubeMeta {
@@ -245,6 +246,7 @@ mod tests {
245246
measures: vec![],
246247
segments: vec![],
247248
joins: None,
249+
folders: None,
248250
meta: None,
249251
},
250252
];

rust/cubesql/cubesql/src/transport/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ pub type CubeMetaDimension = cubeclient::models::V1CubeMetaDimension;
99
pub type CubeMetaMeasure = cubeclient::models::V1CubeMetaMeasure;
1010
pub type CubeMetaSegment = cubeclient::models::V1CubeMetaSegment;
1111
pub type CubeMetaJoin = cubeclient::models::V1CubeMetaJoin;
12+
pub type CubeMetaFolder = cubeclient::models::V1CubeMetaFolder;
1213
// Request/Response
1314
pub type TransportLoadResponse = cubeclient::models::V1LoadResponse;
1415
pub type TransportLoadRequestQuery = cubeclient::models::V1LoadRequestQuery;

0 commit comments

Comments
 (0)