mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 20:25:12 +00:00
* [improvement][semantic-fe] Add model alias setting & Add view permission restrictions to the model permission management tab. [improvement][semantic-fe] Add permission control to the action buttons for the main domain; apply high sensitivity filtering to the authorization of metrics/dimensions. [improvement][semantic-fe] Optimize the editing mode in the dimension/metric/datasource components to use the modelId stored in the database for data, instead of relying on the data from the state manager. * [improvement][semantic-fe] Add time granularity setting in the data source configuration. * [improvement][semantic-fe] Dictionary import for dimension values supported in Q&A visibility * [improvement][semantic-fe] Modification of data source creation prompt wording" * [improvement][semantic-fe] metric market experience optimization * [improvement][semantic-fe] enhance the analysis of metric trends * [improvement][semantic-fe] optimize the presentation of metric trend permissions * [improvement][semantic-fe] add metric trend download functionality * [improvement][semantic-fe] fix the dimension initialization issue in metric correlation * [improvement][semantic-fe] Fix the issue of database changes not taking effect when creating based on an SQL data source. * [improvement][semantic-fe] Optimizing pagination logic and some CSS styles * [improvement][semantic-fe] Fixing the API for the indicator list by changing "current" to "pageNum" * [improvement][semantic-fe] Fixing the default value setting for the indicator list * [improvement][semantic-fe] Adding batch operations for indicators/dimensions/models * [improvement][semantic-fe] Replacing the single status update API for indicators/dimensions with a batch update API * [improvement][semantic-fe] Redesigning the indicator homepage to incorporate trend charts and table functionality for indicators * [improvement][semantic-fe] Optimizing the logic for setting dimension values and editing data sources, and adding system settings functionality * [improvement][semantic-fe] Upgrading antd version to 5.x, extracting the batch operation button component, optimizing the interaction for system settings, and expanding the configuration generation types for list-to-select component. * [improvement][semantic-fe] Adding the ability to filter dimensions based on whether they are tags or not. * [improvement][semantic-fe] Adding the ability to edit relationships between models in the canvas. * [improvement][semantic-fe] Updating the datePicker component to use dayjs instead. * [improvement][semantic-fe] Fixing the issue with passing the model ID for dimensions in the indicator market. * [improvement][semantic-fe] Fixing the abnormal state of the popup when creating a model. * [improvement][semantic-fe] Adding permission logic for bulk operations in the indicator market. * [improvement][semantic-fe] Adding the ability to download and transpose data. * [improvement][semantic-fe] Fixing the initialization issue with the date selection component in the indicator details page when switching time granularity. * [improvement][semantic-fe] Fixing the logic error in the dimension value setting. * [improvement][semantic-fe] Fixing the synchronization issue with the question and answer settings information. * [improvement][semantic-fe] Optimizing the canvas functionality for better performance and user experience. * [improvement][semantic-fe] Optimizing the update process for drawing model relationship edges in the canvas. * [improvement][semantic-fe] Changing the line type for canvas connections. * [improvement][semantic-fe] Replacing the initialization variable from "semantic" to "headless". * [improvement][semantic-fe] Fixing the missing migration issue for default drill-down dimension configuration in model editing. Additionally, optimizing the data retrieval method for initializing fields in the model. * [improvement][semantic-fe] Updating the logic for the fieldName. * [improvement][semantic-fe] Adjusting the position of the metrics tab. * [improvement][semantic-fe] Changing the 字段名称 to 英文名称. * [improvement][semantic-fe] Fix metric measurement deletion. * [improvement][semantic-fe] UI optimization for metric details page. * [improvement][semantic-fe] UI optimization for metric details page. * [improvement][semantic-fe] UI adjustment for metric details page. * [improvement][semantic-fe] The granularity field in the time type of model editing now supports setting it as empty. * [improvement][semantic-fe] Added field type and metric type to the metric creation options. * [improvement][semantic-fe] The organization structure selection feature has been added to the permission management. * [improvement][semantic-fe] Improved user experience for the metric list. * [improvement][semantic-fe] fix update the metric list. * [improvement][headless-fe] Added view management functionality. * [improvement][headless-fe] The view management functionality has been added. This feature allows users to create, edit, and manage different views within the system. * [improvement][headless-fe] Added model editing side effect detection. * [improvement][headless-fe] Fixed the logic error in view editing. * [improvement][headless-fe] Fixed the issue with initializing dimension associations in metric settings. * [improvement][headless-fe] Added the ability to hide the Q&A settings entry point. * [improvement][headless-fe] Fixed the issue with selecting search results in metric field creation. * [improvement][headless-fe] Added search functionality to the field list in model editing. * [improvement][headless-fe] fix the field list in model editing * [improvement][headless-fe] Restructured the data for the dimension value settings interface. * [improvement][headless-fe] Added dynamic variable functionality to model creation based on SQL scripts. * [improvement][headless-fe] Added support for passing dynamic variables as parameters in the executeSql function. * [improvement][headless-fe] Resolved the issue where users were unable to select all options for dimensions, metrics, and fields in the metric generation process. * [improvement][headless-fe] Replaced the term "view" with "dataset" * [improvement][headless-fe] Added the ability to export metrics and dimensions to a specific target. * [improvement][headless-fe] Enhanced dataset creation to support the tag mode. * [improvement][headless-fe] Added tag value setting. * [improvement][headless-fe] Optimized the tag setting system. * [improvement][headless-fe] Optimized the tag setting system.
488 lines
11 KiB
TypeScript
488 lines
11 KiB
TypeScript
import { TreeGraphData } from '@antv/g6-core';
|
|
import { StatusEnum } from './enum';
|
|
import { SENSITIVE_LEVEL, TAG_DEFINE_TYPE, METRIC_DEFINE_TYPE } from './constant';
|
|
|
|
export type ISODateString =
|
|
`${number}-${number}-${number}T${number}:${number}:${number}.${number}+${number}:${number}`;
|
|
|
|
export type GraphConfigType = 'datasource' | 'dimension' | 'metric';
|
|
export type UserName = string;
|
|
|
|
export type SensitiveLevel = 0 | 1 | 2 | null;
|
|
|
|
// export type RefreshGraphData = (graphRootData: TreeGraphData) => void;
|
|
|
|
export type ToolBarSearchCallBack = (text: string) => void;
|
|
|
|
export declare namespace IDataSource {
|
|
interface IExecuteSqlColumn {
|
|
name?: string;
|
|
type: string;
|
|
nameEn: string;
|
|
showType?: string;
|
|
authorized?: boolean;
|
|
dataFormatType?: string;
|
|
dataFormat?: string;
|
|
}
|
|
|
|
interface IIdentifiersItem {
|
|
name: string;
|
|
type: string;
|
|
}
|
|
|
|
interface IDimensionsItem {
|
|
name: string;
|
|
type: string;
|
|
expr: null;
|
|
dateFormat: 'YYYY-MM-DD';
|
|
typeParams: {
|
|
isPrimary: boolean;
|
|
timeGranularity: string;
|
|
};
|
|
isCreateDimension: number;
|
|
nameCh: string;
|
|
}
|
|
|
|
interface IMeasuresItem {
|
|
name: string;
|
|
agg: string;
|
|
expr: string;
|
|
constraint: string;
|
|
alias: string;
|
|
create_metric: string;
|
|
nameCh: string;
|
|
isCreateMetric: number;
|
|
}
|
|
|
|
interface IDataSourceDetailFieldsItem {
|
|
dataType: string;
|
|
fieldName: string;
|
|
}
|
|
|
|
type ISqlParamsValueType = 'STRING' | 'EXPR' | 'NUMBER';
|
|
interface ISqlParamsItem {
|
|
index?: number;
|
|
defaultValues: (boolean | string | number)[];
|
|
name: string;
|
|
// type: string;
|
|
valueType: ISqlParamsValueType;
|
|
udf?: boolean;
|
|
}
|
|
|
|
interface IDataSourceDetail {
|
|
queryType: string;
|
|
sqlQuery: string;
|
|
tableQuery: string;
|
|
identifiers: IIdentifiersItem[];
|
|
fields: IDataSourceDetailFieldsItem[];
|
|
dimensions: IDimensionsItem[];
|
|
measures: IMeasuresItem[];
|
|
sqlVariables: ISqlParamsItem[];
|
|
}
|
|
|
|
interface IDataSourceItem {
|
|
createdBy: UserName;
|
|
updatedBy: UserName;
|
|
createdAt: ISODateString;
|
|
updatedAt: ISODateString;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
modelId: number;
|
|
status: number | null;
|
|
sensitiveLevel: SensitiveLevel;
|
|
domainId: number;
|
|
databaseId: number;
|
|
modelDetail: IDataSourceDetail;
|
|
}
|
|
type IDataSourceList = IDataSourceItem[];
|
|
}
|
|
|
|
export declare namespace ISemantic {
|
|
interface IDomainItem {
|
|
createdBy?: string;
|
|
updatedBy?: string;
|
|
createdAt?: string;
|
|
updatedAt?: string;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: any;
|
|
hasEditPermission: boolean;
|
|
status?: number;
|
|
typeEnum?: any;
|
|
sensitiveLevel?: number;
|
|
parentId: number;
|
|
fullPath?: string;
|
|
viewers?: any[];
|
|
viewOrgs?: any[];
|
|
admins?: string[];
|
|
adminOrgs?: any[];
|
|
isOpen?: number;
|
|
entity?: { entityId: number; names: string[] };
|
|
dimensionCnt?: number;
|
|
metricCnt?: number;
|
|
}
|
|
|
|
interface IModelItem {
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
sensitiveLevel: SensitiveLevel;
|
|
domainId: number;
|
|
databaseId: number;
|
|
modelDetail: IDataSourceDetail;
|
|
status?: StatusEnum;
|
|
typeEnum?: any;
|
|
sensitiveLevel?: number;
|
|
parentId: number;
|
|
filterSql: string;
|
|
alias: string;
|
|
fullPath?: string;
|
|
viewers?: any[];
|
|
viewOrgs?: any[];
|
|
admins?: string[];
|
|
adminOrgs?: any[];
|
|
tagObjectId?: number;
|
|
drillDownDimensions: IDrillDownDimensionItem[];
|
|
createdBy: UserName;
|
|
updatedBy: UserName;
|
|
createdAt: ISODateString;
|
|
updatedAt: ISODateString;
|
|
}
|
|
|
|
interface IViewModelConfigItem {
|
|
id: number;
|
|
includesAll: boolean;
|
|
metrics: number[];
|
|
dimensions: number[];
|
|
tagIds: number[];
|
|
}
|
|
|
|
interface IViewItem {
|
|
createdBy: UserName;
|
|
updatedBy: UserName;
|
|
createdAt: ISODateString;
|
|
updatedAt: ISODateString;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
status?: StatusEnum;
|
|
typeEnum?: any;
|
|
sensitiveLevel: number;
|
|
domainId: number;
|
|
dataSetDetail: {
|
|
dataSetModelConfigs: IViewModelConfigItem[];
|
|
};
|
|
}
|
|
|
|
interface IDimensionItem {
|
|
createdBy: string;
|
|
updatedBy: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
status: number;
|
|
typeEnum: any;
|
|
sensitiveLevel: number;
|
|
domainId: number;
|
|
type: string;
|
|
expr: string;
|
|
fullPath: string;
|
|
datasourceId: number;
|
|
modelId: number;
|
|
modelName: string;
|
|
datasourceName: string;
|
|
datasourceBizName: string;
|
|
commonDimensionId: number;
|
|
semanticType: string;
|
|
alias: string;
|
|
useCnt: number;
|
|
dimValueMaps: IDimensionValueSettingItem[];
|
|
}
|
|
|
|
interface IDimensionValueSettingItem {
|
|
techName: string;
|
|
bizName: string;
|
|
alias?: string[];
|
|
}
|
|
interface IMeasure {
|
|
name: string;
|
|
agg?: string;
|
|
expr: string;
|
|
constraint?: string;
|
|
alias?: string;
|
|
createMetric?: string;
|
|
bizName: string;
|
|
isCreateMetric?: number;
|
|
datasourceId: number;
|
|
}
|
|
|
|
interface IFieldTypeParamsItem {
|
|
fieldName: string;
|
|
}
|
|
|
|
interface IMetricTypeParamsItem {
|
|
id: number;
|
|
bizName: string;
|
|
}
|
|
|
|
interface IDimensionTypeParamsItem {
|
|
id: number;
|
|
bizName: string;
|
|
}
|
|
|
|
interface IMeasureTypeParams {
|
|
measures: IMeasure[];
|
|
expr: string;
|
|
}
|
|
|
|
interface IMetricTypeParams {
|
|
expr: string;
|
|
metrics: IMetricTypeParamsItem[];
|
|
}
|
|
interface IFieldTypeParams {
|
|
expr: string;
|
|
fields: IFieldTypeParamsItem[];
|
|
}
|
|
|
|
interface IDrillDownDimensionItem {
|
|
dimensionId: number;
|
|
inheritedFromModel?: boolean;
|
|
necessary?: boolean;
|
|
}
|
|
|
|
interface IRelateDimension {
|
|
drillDownDimensions: IDrillDownDimensionItem[];
|
|
}
|
|
|
|
interface IMetricItem {
|
|
createdBy: string;
|
|
updatedBy: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
status: StatusEnum;
|
|
typeEnum: string;
|
|
sensitiveLevel: SENSITIVE_LEVEL;
|
|
domainId: number;
|
|
domainName: string;
|
|
modelName: string;
|
|
modelId: number;
|
|
modelBizName: string;
|
|
hasAdminRes: boolean;
|
|
type: string;
|
|
classifications: string[];
|
|
// typeParams: IMeasureTypeParams;
|
|
metricDefineType: METRIC_DEFINE_TYPE;
|
|
metricDefineByMeasureParams: IMeasureTypeParams;
|
|
metricDefineByFieldParams: IFieldTypeParams;
|
|
metricDefineByMetricParams: IMetricTypeParams;
|
|
fullPath: string;
|
|
dataFormatType: string;
|
|
dataFormat: string;
|
|
alias: string;
|
|
useCnt: number;
|
|
isCollect: boolean;
|
|
isPublish: boolean;
|
|
relateDimension?: IRelateDimension;
|
|
}
|
|
|
|
interface IMetricTrendColumn {
|
|
name: string;
|
|
type: string;
|
|
nameEn: string;
|
|
showType: string;
|
|
authorized: boolean;
|
|
dataFormatType: string;
|
|
dataFormat: {
|
|
needMultiply100: boolean;
|
|
decimalPlaces: number;
|
|
};
|
|
}
|
|
|
|
type IMetricTrendItem = Record<string, any>;
|
|
interface IMetricTrend {
|
|
columns: IMetricTrendColumn;
|
|
resultList: IMetricTrendItem[];
|
|
pageNo?: number;
|
|
pageSize?: number;
|
|
totalCount?: number;
|
|
queryAuthorization?: string;
|
|
sql?: string;
|
|
}
|
|
|
|
type IDimensionList = IDimensionItem[];
|
|
type IMetricList = IMetricItem[];
|
|
|
|
interface IDomainSchemaRelaItem {
|
|
domainId: number;
|
|
dimensions: IDimensionList;
|
|
metrics: IMetricList;
|
|
model: IDataSourceItem;
|
|
}
|
|
type IDomainSchemaRelaList = IDomainSchemaRelaItem[];
|
|
|
|
interface IDatabaseItem {
|
|
createdBy?: string;
|
|
updatedBy?: string;
|
|
createdAt?: string;
|
|
updatedAt?: string;
|
|
id: number;
|
|
name: string;
|
|
admins: string[];
|
|
type: string;
|
|
url: string;
|
|
username: string;
|
|
password: string;
|
|
version: string;
|
|
hasEditPermission: boolean;
|
|
hasUsePermission: boolean;
|
|
host: string;
|
|
port: string;
|
|
database?: string;
|
|
description?: string;
|
|
}
|
|
type IDatabaseItemList = IDatabaseItem[];
|
|
|
|
interface IDictKnowledgeConfigItemConfig {
|
|
metricId?: number;
|
|
blackList: string[];
|
|
whiteList: string[];
|
|
ruleList: any[];
|
|
limit?: number;
|
|
}
|
|
interface IDictKnowledgeConfigItem {
|
|
id: number;
|
|
modelId: number;
|
|
bizName: string;
|
|
type: string;
|
|
itemId: number;
|
|
config: IDictKnowledgeConfigItemConfig;
|
|
status: string;
|
|
nature?: string;
|
|
}
|
|
|
|
interface IDictKnowledgeTaskItem {
|
|
id: number;
|
|
modelId: number;
|
|
bizName: string;
|
|
type: string;
|
|
itemId: number;
|
|
config: IDictKnowledgeConfigItemConfig;
|
|
status: string | null;
|
|
name: string;
|
|
description: string | null;
|
|
taskStatus: string;
|
|
createdAt: string;
|
|
createdBy: string;
|
|
elapsedMs: number | null;
|
|
nature: string;
|
|
}
|
|
|
|
interface ITagDefineParams {
|
|
expr: string;
|
|
dependencies: (number | string)[];
|
|
}
|
|
interface ITagItem {
|
|
createdBy: string;
|
|
updatedBy: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
id: number;
|
|
name: string;
|
|
modelName: string;
|
|
bizName: string;
|
|
description: string;
|
|
status: number;
|
|
typeEnum: null;
|
|
sensitiveLevel: SENSITIVE_LEVEL;
|
|
modelId: number;
|
|
type: string;
|
|
isCollect: boolean;
|
|
hasAdminRes: boolean;
|
|
ext: any;
|
|
tagDefineType: TAG_DEFINE_TYPE;
|
|
tagDefineParams: ITagDefineParams;
|
|
expr: string;
|
|
}
|
|
|
|
interface ITagObjectItem {
|
|
createdBy: string;
|
|
updatedBy: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
id: number;
|
|
name: string;
|
|
bizName: string;
|
|
description: string;
|
|
status: number;
|
|
typeEnum: null;
|
|
sensitiveLevel: SENSITIVE_LEVEL;
|
|
domainId: number;
|
|
ext: null;
|
|
}
|
|
}
|
|
|
|
export declare namespace IChatConfig {
|
|
interface IEntity {
|
|
domainId: number;
|
|
domainName: string;
|
|
domainBizName: string;
|
|
names: string[];
|
|
entityIds: ISemantic.IMetricItem[];
|
|
entityInternalDetailDesc: {
|
|
dimensionList: ISemantic.IDimensionList;
|
|
metricList: ISemantic.IMetricList;
|
|
};
|
|
}
|
|
|
|
interface IKnowledgeInfosItem {
|
|
itemId: number;
|
|
bizName: string;
|
|
type?: string;
|
|
searchEnable?: boolean;
|
|
knowledgeAdvancedConfig?: IKnowledgeConfig;
|
|
}
|
|
|
|
type IKnowledgeInfosItemMap = Record<IKnowledgeInfosItem.bizName, IKnowledgeInfosItem>;
|
|
|
|
interface IKnowledgeConfig {
|
|
blackList: string[];
|
|
whiteList: string[];
|
|
ruleList: string[];
|
|
}
|
|
|
|
interface IChatRichConfig {
|
|
id?: number;
|
|
visibility: {
|
|
blackDimIdList: number[];
|
|
blackMetricIdList: number[];
|
|
whiteDimIdList: number[];
|
|
whiteMetricIdList: number[];
|
|
};
|
|
entity: {
|
|
names: string[];
|
|
dimItem: ISemantic.IDimensionItem;
|
|
};
|
|
knowledgeInfos: IKnowledgeInfosItem[];
|
|
globalKnowledgeConfig: IKnowledgeConfig;
|
|
chatDefaultConfig: {
|
|
dimensions: ISemantic.IDimensionList;
|
|
metrics: ISemantic.IMetricList;
|
|
ratioMetrics: ISemantic.IMetricList;
|
|
unit: number;
|
|
period: string;
|
|
};
|
|
}
|
|
}
|