Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/base/src/locale/en-US/dmsMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export default {
title: 'Global settings',
userCenter: 'User center',
reportStatistics: 'Report statistics',
sqlManagementRemediationReport: 'SQL management remediation report',
viewRule: 'View rule',
ruleManage: 'Rule management',
system: 'System settings',
Expand Down
1 change: 1 addition & 0 deletions packages/base/src/locale/zh-CN/dmsMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export default {
title: '全局设置',
userCenter: '用户中心',
reportStatistics: '报表统计',
sqlManagementRemediationReport: 'SQL 管控整改报表',
viewRule: '查看规则',
ruleManage: '规则管理',
system: '系统设置',
Expand Down
26 changes: 25 additions & 1 deletion packages/shared/lib/api/sqle/service/SqlManage/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ import {
ISqlManageCodingReq,
IPostSqlManageCodingResp,
IGetSqlManageSqlAnalysisResp,
ISqlManageAnalysisChartResp
ISqlManageAnalysisChartResp,
IGetSqlManageRemediationResp,
IGetSqlManageRemediationOverviewResp
} from '../common.d';

export interface IGetGlobalSqlManageListParams {
Expand Down Expand Up @@ -162,6 +164,8 @@ export interface IExportSqlManageV1Params {
sort_order?: exportSqlManageV1SortOrderEnum;
}

export interface IExportGlobalSqlManageRemediationV1Params {}

export interface IGetSqlManageRuleTipsParams {
project_name: string;
}
Expand Down Expand Up @@ -247,6 +251,26 @@ export interface IGetSqlManageListV2Params {

export interface IGetSqlManageListV2Return extends IGetSqlManageListResp {}

export interface IGetSqlManageRemediationV1Params {
project_name: string;

sql_manage_id: string;
}

export interface IGetSqlManageRemediationV1Return
extends IGetSqlManageRemediationResp {}

export interface IGetSqlManageRemediationOverviewV1Params {
project_name: string;

instance_audit_plan_id?: number;

audit_plan_type?: string;
}

export interface IGetSqlManageRemediationOverviewV1Return
extends IGetSqlManageRemediationOverviewResp {}

export interface IExportSqlManageV2Params {
project_name: string;

Expand Down
20 changes: 20 additions & 0 deletions packages/shared/lib/api/sqle/service/SqlManage/index.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,14 @@ export enum exportSqlManageV1SortOrderEnum {
'desc' = 'desc'
}

export enum exportSqlManageRemediationV1ExportScopeEnum {
'project' = 'project',

'data_source' = 'data_source',

'scan_task' = 'scan_task'
}

export enum GetSqlManageListV2FilterSourceEnum {
'audit_plan' = 'audit_plan',

Expand Down Expand Up @@ -136,6 +144,18 @@ export enum GetSqlManageListV2FilterPriorityEnum {
'low' = 'low'
}

export enum GetSqlManageListV2FilterRemediationStatusEnum {
'resolved' = 'resolved',

'partially_fixed' = 'partially_fixed',

'unchanged' = 'unchanged',

'deteriorated' = 'deteriorated',

'newly_discovered' = 'newly_discovered'
}

export enum GetSqlManageListV2SortFieldEnum {
'first_appear_timestamp' = 'first_appear_timestamp',

Expand Down
51 changes: 51 additions & 0 deletions packages/shared/lib/api/sqle/service/SqlManage/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
IBatchUpdateSqlManageParams,
IBatchUpdateSqlManageReturn,
IExportSqlManageV1Params,
IExportGlobalSqlManageRemediationV1Params,
IGetSqlManageRuleTipsParams,
IGetSqlManageRuleTipsReturn,
ISendSqlManageParams,
Expand All @@ -28,6 +29,10 @@ import {
IGetSqlManageSqlAnalysisChartV1Return,
IGetSqlManageListV2Params,
IGetSqlManageListV2Return,
IGetSqlManageRemediationV1Params,
IGetSqlManageRemediationV1Return,
IGetSqlManageRemediationOverviewV1Params,
IGetSqlManageRemediationOverviewV1Return,
IExportSqlManageV2Params,
IGetSqlManageListV3Params,
IGetSqlManageListV3Return
Expand Down Expand Up @@ -118,6 +123,19 @@ class SqlManageService extends ServiceBase {
);
}

public exportGlobalSqlManageRemediationV1(
params: IExportGlobalSqlManageRemediationV1Params = {},
options?: AxiosRequestConfig
) {
const paramsData = this.cloneDeep(params);

return this.get<any>(
`/v1/sql_manages/remediation_exports`,
paramsData,
options
);
}

public GetSqlManageRuleTips(
params: IGetSqlManageRuleTipsParams,
options?: AxiosRequestConfig
Expand Down Expand Up @@ -199,6 +217,39 @@ class SqlManageService extends ServiceBase {
);
}

public GetSqlManageRemediationV1(
params: IGetSqlManageRemediationV1Params,
options?: AxiosRequestConfig
) {
const paramsData = this.cloneDeep(params);
const project_name = paramsData.project_name;
delete paramsData.project_name;

const sql_manage_id = paramsData.sql_manage_id;
delete paramsData.sql_manage_id;

return this.get<IGetSqlManageRemediationV1Return>(
`/v1/projects/${project_name}/sql_manages/${sql_manage_id}/remediation`,
paramsData,
options
);
}

public getSqlManageRemediationOverviewV1(
params: IGetSqlManageRemediationOverviewV1Params,
options?: AxiosRequestConfig
) {
const paramsData = this.cloneDeep(params);
const project_name = paramsData.project_name;
delete paramsData.project_name;

return this.get<IGetSqlManageRemediationOverviewV1Return>(
`/v1/projects/${project_name}/sql_manages/remediation_overview`,
paramsData,
options
);
}

public exportSqlManageV2(
params: IExportSqlManageV2Params,
options?: AxiosRequestConfig
Expand Down
74 changes: 74 additions & 0 deletions packages/shared/lib/api/sqle/service/common.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5103,3 +5103,77 @@ export interface ICompleteWorkflowReq {

workflow_id?: string;
}

export interface IRuleDiff {
new?: IAuditResult[];

resolved?: IAuditResult[];

unchanged?: IAuditResult[];
}

export interface ISqlManageRemediation {
first_audit_missing?: boolean;

first_audit_result?: IAuditResult[];

first_audit_time?: string;

id?: number;

latest_audit_result?: IAuditResult[];

latest_audit_time?: string;

remediation_status?: string;

rule_diff?: IRuleDiff;

sql?: string;

sql_fingerprint?: string;
}

export interface IGetSqlManageRemediationResp {
code?: number;

data?: ISqlManageRemediation;

message?: string;
}

export interface ISqlManageRemediationOverviewStatusCount {
deteriorated?: number;

newly_discovered?: number;

partially_fixed?: number;

resolved?: number;

unchanged?: number;
}

export interface ISqlManageRemediationOverview {
first_audit_missing_num?: number;

first_score?: number;

latest_score?: number;

remediation_rate?: number;

score_change?: number;

sql_total_num?: number;

remediation_status_count?: ISqlManageRemediationOverviewStatusCount;
}

export interface IGetSqlManageRemediationOverviewResp {
code?: number;

data?: ISqlManageRemediationOverview;

message?: string;
}
3 changes: 2 additions & 1 deletion packages/sqle/src/components/AuditResultMessage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ const AuditResultMessage = ({
}
}, [auditResult]);
const renderMessage = useMemo(() => {
const { level, message } = auditResult || {};
const { level, message, rule_name } = auditResult || {};
if (rule_name) return rule_name;
if (message) return message;
if (passStatusLevelData.includes(level ?? ''))
return t('components.auditResultMessage.auditPassed');
Expand Down
1 change: 1 addition & 0 deletions packages/sqle/src/data/EmitterKey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ enum EmitterKey {
Refresh_Sql_Management_Conf_Overview_List = 'Refresh_Sql_Management_Conf_Overview_List',
Refresh_Sql_Management_Conf_Detail_Sql_List = 'Refresh_Sql_Management_Conf_Detail_Sql_List',
Export_Sql_Management_Conf_Detail_Sql_List = 'Export_Sql_Management_Conf_Detail_Sql_List',
Export_Sql_Management_Conf_Detail_Remediation = 'Export_Sql_Management_Conf_Detail_Remediation',

Refresh_Sql_management_Exception_List = 'Refresh_Sql_management_Exception_List',

Expand Down
1 change: 1 addition & 0 deletions packages/sqle/src/data/ModalName.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export enum ModalName {
Assignment_Member_Batch = 'Assignment_Member_Batch',
Change_Status_Single = 'Change_Status_Single',
View_Audit_Result_Drawer = 'View_Audit_Result_Drawer',
View_Remediation_Detail_Drawer = 'View_Remediation_Detail_Drawer',
Change_SQL_Priority = 'Change_SQL_Priority',
Push_To_Coding = 'Push_To_Coding',

Expand Down
13 changes: 13 additions & 0 deletions packages/sqle/src/locale/en-US/managementConf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,19 @@ export default {
auditImmediately: 'Audit immediately',
auditImmediatelySuccessTips: 'Audit successfully',
exportTips: 'Exporting scan task details',
remediationExport: 'SQL remediation',
remediationExportTips: 'Exporting SQL management remediation report',
remediationExportSuccessTips:
'Export SQL management remediation report successfully',
remediationOverview: {
title: 'Remediation overview',
sqlTotal: 'SQL total',
firstScore: 'First score',
latestScore: 'Latest score',
scoreChange: 'Score change',
remediationRate: 'Remediation rate',
loadFailed: 'Failed to load remediation overview: {{message}}'
},
overview: {
title: 'Overview',
column: {
Expand Down
40 changes: 40 additions & 0 deletions packages/sqle/src/locale/en-US/sqlManagement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,19 @@ export default {
}
}
},
remediationReport: {
pageTitle: 'SQL management remediation report',
description:
'Export SQL management remediation tracking data in global scope. The Excel file contains Overview, Rule summary and Details.',
exportButton: 'Export SQL management remediation report',
exporting: 'Exporting SQL management remediation report',
exportSuccessTips: 'Export SQL management remediation report successfully',
scopeTitle: 'Export scope',
scopeContent:
'Global scope: includes SQL management remediation data across all projects available to platform administrators.',
permissionTips:
'Only platform administrators / global operators can see and export this report.'
},
statistics: {
SQLTotalNum: 'SQL total',
problemSQlNum: 'Problem SQL',
Expand Down Expand Up @@ -62,14 +75,24 @@ export default {
highPriority: 'High priority',
lowPriority: 'Low priority',
auditResult: 'Audit result',
firstAuditResult: 'Initial audit result',
currentAuditResult: 'Current audit result',
firstOccurrence: 'First occurrence time',
lastOccurrence: 'Last occurrence time',
occurrenceCount: 'Occurrence count',
personInCharge: 'Person in charge',
status: 'Status',
remediationStatus: 'Remediation status',
comment: 'Comment',
endpoints: 'Endpoint info'
},
remediationStatus: {
resolved: 'Resolved',
partially_fixed: 'Partially fixed',
unchanged: 'Unchanged',
deteriorated: 'Deteriorated',
newly_discovered: 'Newly discovered'
},
filter: {
time: 'Time range',
status: {
Expand Down Expand Up @@ -100,5 +123,22 @@ export default {
statusReport: {
title: 'SQL audit result'
}
},
remediationCompare: {
tab: 'Remediation compare',
drawerTitle: 'Remediation status details',
title: 'Remediation compare',
description:
'Compare the first audit result with the latest audit result and show rule changes.',
loadFailed: 'Failed to load remediation details. Please try again later.',
firstAuditMissing:
'No first audit snapshot is available. The latest result is shown as newly discovered issues.',
firstAuditResult: 'First audit result',
latestAuditResult: 'Latest audit result',
ruleDiffTitle: 'Rule differences',
resolved: 'Resolved rules',
new: 'New rules',
unchanged: 'Unchanged rules',
emptyRules: 'No matched rules'
}
};
12 changes: 12 additions & 0 deletions packages/sqle/src/locale/zh-CN/managementConf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,18 @@ export default {
auditImmediately: '立即审核',
auditImmediatelySuccessTips: '审核成功',
exportTips: '正在导出扫描任务详情',
remediationExport: 'SQL 管控整改',
remediationExportTips: '正在导出 SQL 管控整改报表',
remediationExportSuccessTips: 'SQL 管控整改报表导出成功',
remediationOverview: {
title: '整改概览',
sqlTotal: 'SQL 总数',
firstScore: '首次评分',
latestScore: '最末次评分',
scoreChange: '评分变化',
remediationRate: '整改率',
loadFailed: '整改概览加载失败:{{message}}'
},
overview: {
title: '概览',
column: {
Expand Down
Loading
Loading