diff --git a/ui/src/models/model.ts b/ui/src/models/model.ts index 6b58ddcde..235855fc1 100644 --- a/ui/src/models/model.ts +++ b/ui/src/models/model.ts @@ -26,9 +26,7 @@ export interface FeatureAttributes { name: string; type: string; transformation: FeatureTransformation; - definition: string; - def: FeatureDef; - "def.sqlExpr": string; + key: FeatureKey[]; window: string; input_anchor_features: InputAnchorFeatures[]; input_derived_features: InputDerivedFeatures[] @@ -42,12 +40,22 @@ export interface InputDerivedFeatures { uniqueAttributes: FeatureAttributes; } -export interface FeatureDef { - sqlExpr: string; +export interface FeatureTransformation { + transform_expr: string, + filter: string, + agg_func: string, + limit: string, + group_by: string, + window: string, + def_expr: string } -export interface FeatureTransformation { - transform_expr: string +export interface FeatureKey { + full_name: string, + key_column: string, + description: string, + key_column_alias: string, + key_column_type: string } export interface IDataSource { diff --git a/ui/src/pages/feature/featureDetails.tsx b/ui/src/pages/feature/featureDetails.tsx index dc8077092..fef6f7f86 100644 --- a/ui/src/pages/feature/featureDetails.tsx +++ b/ui/src/pages/feature/featureDetails.tsx @@ -78,56 +78,56 @@ const FeatureDetails: React.FC = () => { const renderFeature = (feature: FeatureAttributes): JSX.Element => { return (
- - { feature?.type && + + { feature?.key && feature.key.length > 0 && - - { feature.type } + +

full_name: { feature.key[0].full_name }

+

key_column: { feature.key[0].key_column }

+

description: { feature.key[0].description }

+

key_column_alias: { feature.key[0].key_column_alias }

+

key_column_type: { feature.key[0].key_column_type }

} - { feature?.definition && + { feature?.type && - - { feature.definition } + + { feature.type } } - { feature?.def && + { feature?.transformation && - - { feature["def.sqlExpr"] } + +

transform_expr: { feature.transformation.transform_expr ?? "N/A" }

+

filter: { feature.transformation.filter ?? "N/A" }

+

agg_func: { feature.transformation.agg_func ?? "N/A" }

+

limit: { feature.transformation.limit ?? "N/A" }

+

group_by: { feature.transformation.group_by ?? "N/A" }

+

window: { feature.transformation.window ?? "N/A" }

+

def_expr: { feature.transformation.def_expr ?? "N/A" }

} +
+ { feature?.input_anchor_features && feature?.input_anchor_features.length > 0 && - + { renderInputFeatureList(feature.input_anchor_features) } } + + { feature?.input_derived_features && feature?.input_derived_features.length > 0 && - + { renderInputFeatureList(feature.input_derived_features) } } - { feature?.transformation && - - - { feature.transformation.transform_expr } - - - } - { feature?.window && - - - { feature.window } - - - }
)