[Dataset quality] Creating initial plugin (#171009)

Related to https://github.com/elastic/kibana/issues/169759.

## Summary

This PR creates the initial plugin for Dataset Quality.
The plugin has the basic boilerplate that allows us to continue working
on the UI and Server sides in parallel.

Further configs are to be added along with upcoming commits like:
1. Storybook 
2. FTR configs

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
mohamedhamed-ahmed 2023-11-10 15:02:12 +00:00 committed by GitHub
parent 2720e4f42d
commit 65e65a834e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 171 additions and 1 deletions

View file

@ -462,7 +462,6 @@ enabled:
- x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/alerts/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/entity_analytics/default_license/risk_engine/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/entity_analytics/default_license/risk_engine/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts

1
.github/CODEOWNERS vendored
View file

@ -314,6 +314,7 @@ src/plugins/data_view_field_editor @elastic/kibana-data-discovery
src/plugins/data_view_management @elastic/kibana-data-discovery
src/plugins/data_views @elastic/kibana-data-discovery
x-pack/plugins/data_visualizer @elastic/ml-ui
x-pack/plugins/dataset_quality @elastic/obs-ux-logs-team
packages/kbn-datemath @elastic/kibana-data-discovery
packages/deeplinks/analytics @elastic/kibana-data-discovery @elastic/kibana-presentation @elastic/kibana-visualizations
packages/deeplinks/devtools @elastic/platform-deployment-management

View file

@ -519,6 +519,10 @@ Plugin server-side only. Plugin has three main functions:
|Adds drilldown capabilities to dashboard. Owned by the Kibana App team.
|{kib-repo}blob/{branch}/x-pack/plugins/dataset_quality/README.md[datasetQuality]
|In order to make ongoing maintenance of log collection easy we want to introduce the concept of dataset quality, where users can easily get an overview on the datasets they have with information such as integration, size, last activity, among others.
|{kib-repo}blob/{branch}/x-pack/plugins/data_visualizer/README.md[dataVisualizer]
|The data_visualizer plugin enables you to explore the fields in your data.

View file

@ -364,6 +364,7 @@
"@kbn/data-view-management-plugin": "link:src/plugins/data_view_management",
"@kbn/data-views-plugin": "link:src/plugins/data_views",
"@kbn/data-visualizer-plugin": "link:x-pack/plugins/data_visualizer",
"@kbn/dataset-quality-plugin": "link:x-pack/plugins/dataset_quality",
"@kbn/datemath": "link:packages/kbn-datemath",
"@kbn/deeplinks-analytics": "link:packages/deeplinks/analytics",
"@kbn/deeplinks-devtools": "link:packages/deeplinks/devtools",

View file

@ -28,6 +28,7 @@ pageLoadAssetSize:
dashboard: 82025
dashboardEnhanced: 65646
data: 454087
datasetQuality: 35000
dataViewEditor: 28082
dataViewFieldEditor: 27000
dataViewManagement: 5100

View file

@ -622,6 +622,8 @@
"@kbn/data-views-plugin/*": ["src/plugins/data_views/*"],
"@kbn/data-visualizer-plugin": ["x-pack/plugins/data_visualizer"],
"@kbn/data-visualizer-plugin/*": ["x-pack/plugins/data_visualizer/*"],
"@kbn/dataset-quality-plugin": ["x-pack/plugins/dataset_quality"],
"@kbn/dataset-quality-plugin/*": ["x-pack/plugins/dataset_quality/*"],
"@kbn/datemath": ["packages/kbn-datemath"],
"@kbn/datemath/*": ["packages/kbn-datemath/*"],
"@kbn/deeplinks-analytics": ["packages/deeplinks/analytics"],

View file

@ -20,6 +20,7 @@
"xpack.csp": "plugins/cloud_security_posture",
"xpack.customBranding": "plugins/custom_branding",
"xpack.dashboard": "plugins/dashboard_enhanced",
"xpack.datasetQuality": "plugins/dataset_quality",
"xpack.discover": "plugins/discover_enhanced",
"xpack.crossClusterReplication": "plugins/cross_cluster_replication",
"xpack.elasticAssistant": "packages/kbn-elastic-assistant",

View file

@ -0,0 +1,3 @@
# Dataset Quality
In order to make ongoing maintenance of log collection easy we want to introduce the concept of dataset quality, where users can easily get an overview on the datasets they have with information such as integration, size, last activity, among others.

View file

@ -0,0 +1,8 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
export type { DatasetQualityConfig } from './plugin_config';

View file

@ -0,0 +1,9 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualityConfig {}

View file

@ -0,0 +1,15 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
module.exports = {
preset: '@kbn/test',
rootDir: '../../..',
roots: ['<rootDir>/x-pack/plugins/dataset_quality'],
coverageDirectory: '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/dataset_quality',
coverageReporters: ['text', 'html'],
collectCoverageFrom: ['<rootDir>/x-pack/plugins/dataset_quality/{common,public}/**/*.{ts,tsx}'],
};

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/dataset-quality-plugin",
"owner": "@elastic/obs-ux-logs-team",
"description": "This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have.",
"plugin": {
"id": "datasetQuality",
"server": true,
"browser": true,
"configPath": ["xpack", "datasetQuality"],
"requiredPlugins": ["data", "kibanaReact", "kibanaUtils", "controls", "embeddable", "share"],
"optionalPlugins": [],
"requiredBundles": [],
"extraPublicDirs": ["common"]
}
}

View file

@ -0,0 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import type { PluginInitializerContext } from '@kbn/core/public';
import { DatasetQualityConfig } from '../common/plugin_config';
import { DatasetQualityPlugin } from './plugin';
export type { DatasetQualityPluginSetup, DatasetQualityPluginStart } from './types';
export function plugin(context: PluginInitializerContext<DatasetQualityConfig>) {
return new DatasetQualityPlugin(context);
}

View file

@ -0,0 +1,31 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public';
import {
DatasetQualityPluginSetup,
DatasetQualityPluginStart,
DatasetQualitySetupDependencies,
DatasetQualityStartDependencies,
} from './types';
export class DatasetQualityPlugin
implements Plugin<DatasetQualityPluginSetup, DatasetQualityPluginStart>
{
constructor(context: PluginInitializerContext) {}
public setup(core: CoreSetup, plugins: DatasetQualitySetupDependencies) {
return {};
}
public start(
core: CoreStart,
plugins: DatasetQualityStartDependencies
): DatasetQualityPluginStart {
return {};
}
}

View file

@ -0,0 +1,18 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualityPluginSetup {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualityPluginStart {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualityStartDependencies {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualitySetupDependencies {}

View file

@ -0,0 +1,10 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { DatasetQualityServerPlugin } from './plugin';
export const plugin = () => new DatasetQualityServerPlugin();

View file

@ -0,0 +1,14 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { Plugin } from '@kbn/core/server';
export class DatasetQualityServerPlugin implements Plugin {
setup() {}
start() {}
}

View file

@ -0,0 +1,17 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "target/types"
},
"include": [
"../../../typings/**/*",
"common/**/*",
"public/**/*",
"server/**/*.ts",
"../../typings/**/*"
],
"kbn_references": [
"@kbn/core",
],
"exclude": ["target/**/*"]
}

View file

@ -4148,6 +4148,10 @@
version "0.0.0"
uid ""
"@kbn/dataset-quality-plugin@link:x-pack/plugins/dataset_quality":
version "0.0.0"
uid ""
"@kbn/datemath@link:packages/kbn-datemath":
version "0.0.0"
uid ""