From 5f9386471b24913cd08e23573990ef82c73028fb Mon Sep 17 00:00:00 2001 From: Luke Elmers Date: Tue, 4 Feb 2020 17:35:49 -0700 Subject: [PATCH 01/33] Move ui/agg_types in to shim data plugin (#56353) --- .../actions/filters/brush_event.test.js | 2 +- src/legacy/core_plugins/data/public/index.ts | 50 ++++- src/legacy/core_plugins/data/public/plugin.ts | 28 ++- .../buckets/_terms_other_bucket_helper.js | 2 +- .../data/public/search/aggs}/agg_config.ts | 33 +-- .../data/public/search/aggs}/agg_configs.ts | 5 +- .../data/public/search/aggs}/agg_groups.ts | 4 +- .../public/search/aggs}/agg_params.test.ts | 2 +- .../data/public/search/aggs}/agg_params.ts | 4 +- .../data/public/search/aggs}/agg_type.test.ts | 12 +- .../data/public/search/aggs}/agg_type.ts | 21 +- .../data/public/search/aggs}/agg_types.ts | 26 ++- .../search/aggs}/buckets/_bucket_agg_type.ts | 2 +- .../search/aggs}/buckets/_interval_options.ts | 18 +- .../buckets/_terms_other_bucket_helper.js | 2 +- .../search/aggs}/buckets/bucket_agg_types.ts | 0 .../create_filter/date_histogram.test.ts | 2 +- .../buckets/create_filter/date_histogram.ts | 2 +- .../buckets/create_filter/date_range.test.ts | 2 +- .../aggs}/buckets/create_filter/date_range.ts | 2 +- .../buckets/create_filter/filters.test.ts | 0 .../aggs}/buckets/create_filter/filters.ts | 2 +- .../buckets/create_filter/histogram.test.ts | 2 +- .../aggs}/buckets/create_filter/histogram.ts | 2 +- .../buckets/create_filter/ip_range.test.ts | 2 +- .../aggs}/buckets/create_filter/ip_range.ts | 2 +- .../aggs}/buckets/create_filter/range.test.ts | 2 +- .../aggs}/buckets/create_filter/range.ts | 2 +- .../aggs}/buckets/create_filter/terms.test.ts | 2 +- .../aggs}/buckets/create_filter/terms.ts | 2 +- .../search/aggs}/buckets/date_histogram.ts | 14 +- .../search/aggs}/buckets/date_range.test.ts | 0 .../public/search/aggs}/buckets/date_range.ts | 4 +- .../public/search/aggs}/buckets/filter.ts | 2 +- .../public/search/aggs}/buckets/filters.ts | 6 +- .../search/aggs}/buckets/geo_hash.test.ts | 4 +- .../public/search/aggs}/buckets/geo_hash.ts | 6 +- .../public/search/aggs}/buckets/geo_tile.ts | 4 +- .../search/aggs}/buckets/histogram.test.ts | 0 .../public/search/aggs}/buckets/histogram.ts | 6 +- .../public/search/aggs}/buckets/ip_range.ts | 6 +- .../aggs}/buckets/lib/cidr_mask.test.ts | 0 .../search/aggs}/buckets/lib/cidr_mask.ts | 2 +- .../search/aggs}/buckets/lib/geo_utils.ts | 0 .../buckets/migrate_include_exclude_format.ts | 0 .../public/search/aggs}/buckets/range.test.ts | 2 +- .../data/public/search/aggs}/buckets/range.ts | 8 +- .../public/search/aggs}/buckets/range_key.ts | 0 .../aggs}/buckets/significant_terms.test.ts | 3 +- .../search/aggs}/buckets/significant_terms.ts | 10 +- .../public/search/aggs}/buckets/terms.test.ts | 0 .../data/public/search/aggs}/buckets/terms.ts | 39 ++-- .../aggs}/filter/agg_type_filters.test.ts | 11 +- .../search/aggs}/filter/agg_type_filters.ts | 8 +- .../data/public/search/aggs}/filter/index.ts | 0 .../search/aggs}/filter/prop_filter.test.ts | 0 .../public/search/aggs}/filter/prop_filter.ts | 0 .../data/public/search/aggs}/index.test.ts | 0 .../data/public/search/aggs/index.ts | 52 +++++ .../data/public/search/aggs}/metrics/avg.ts | 6 +- .../public/search/aggs}/metrics/bucket_avg.ts | 4 +- .../public/search/aggs}/metrics/bucket_max.ts | 4 +- .../public/search/aggs}/metrics/bucket_min.ts | 4 +- .../public/search/aggs}/metrics/bucket_sum.ts | 4 +- .../search/aggs}/metrics/cardinality.ts | 6 +- .../data/public/search/aggs}/metrics/count.ts | 6 +- .../search/aggs}/metrics/cumulative_sum.ts | 4 +- .../public/search/aggs}/metrics/derivative.ts | 4 +- .../public/search/aggs}/metrics/geo_bounds.ts | 6 +- .../search/aggs}/metrics/geo_centroid.ts | 6 +- .../lib/get_response_agg_config_class.ts | 0 .../metrics/lib/make_nested_label.test.ts | 0 .../aggs}/metrics/lib/make_nested_label.ts | 0 .../aggs}/metrics/lib/nested_agg_helpers.ts | 0 .../aggs}/metrics/lib/ordinal_suffix.test.ts | 0 .../aggs}/metrics/lib/ordinal_suffix.ts | 0 .../metrics/lib/parent_pipeline_agg_helper.ts | 4 +- .../metrics/lib/parent_pipeline_agg_writer.ts | 4 +- .../lib/sibling_pipeline_agg_helper.ts | 6 +- .../lib/sibling_pipeline_agg_writer.ts | 0 .../data/public/search/aggs}/metrics/max.ts | 6 +- .../search/aggs}/metrics/median.test.ts | 4 +- .../public/search/aggs}/metrics/median.ts | 6 +- .../search/aggs}/metrics/metric_agg_type.ts | 7 +- .../search/aggs}/metrics/metric_agg_types.ts | 0 .../data/public/search/aggs}/metrics/min.ts | 6 +- .../public/search/aggs}/metrics/moving_avg.ts | 4 +- .../aggs}/metrics/parent_pipeline.test.ts | 0 .../aggs}/metrics/percentile_ranks.test.ts | 4 +- .../search/aggs}/metrics/percentile_ranks.ts | 8 +- .../search/aggs}/metrics/percentiles.test.ts | 4 +- .../search/aggs}/metrics/percentiles.ts | 8 +- .../aggs}/metrics/percentiles_get_value.ts | 0 .../search/aggs}/metrics/serial_diff.ts | 4 +- .../aggs}/metrics/sibling_pipeline.test.ts | 0 .../aggs}/metrics/std_deviation.test.ts | 0 .../search/aggs}/metrics/std_deviation.ts | 12 +- .../data/public/search/aggs}/metrics/sum.ts | 6 +- .../search/aggs}/metrics/top_hit.test.ts | 2 +- .../public/search/aggs}/metrics/top_hit.ts | 22 +- .../public/search/aggs}/param_types/agg.ts | 0 .../public/search/aggs}/param_types/base.ts | 6 +- .../search/aggs}/param_types/field.test.ts | 2 +- .../public/search/aggs}/param_types/field.ts | 27 ++- .../param_types/filter/field_filters.test.ts | 2 +- .../aggs}/param_types/filter/field_filters.ts | 0 .../search/aggs}/param_types/filter/index.ts | 0 .../public/search/aggs}/param_types/index.ts | 0 .../search/aggs}/param_types/json.test.ts | 0 .../public/search/aggs}/param_types/json.ts | 0 .../search/aggs}/param_types/optioned.test.ts | 0 .../search/aggs}/param_types/optioned.ts | 0 .../search/aggs}/param_types/string.test.ts | 0 .../public/search/aggs}/param_types/string.ts | 0 .../data/public/search/aggs}/schemas.ts | 4 +- .../data/public/search/aggs/types.ts | 29 +++ .../data/public/search/aggs}/utils.test.tsx | 0 .../data/public/search/aggs}/utils.ts | 4 +- .../data/public/search/expressions/esaggs.ts | 4 +- .../data/public/search/expressions/utils.ts | 6 +- .../core_plugins/data/public/search/index.ts | 1 + .../data/public/search/search_service.ts | 93 ++++++++ .../core_plugins/data/public/search/types.ts | 1 + .../kibana/public/discover/kibana_services.ts | 2 +- .../public/components/agg.test.tsx | 14 +- .../public/components/agg.tsx | 4 +- .../public/components/agg_add.tsx | 4 +- .../public/components/agg_common_props.ts | 12 +- .../public/components/agg_group.test.tsx | 12 +- .../public/components/agg_group.tsx | 8 +- .../components/agg_group_helper.test.ts | 8 +- .../public/components/agg_group_helper.tsx | 14 +- .../public/components/agg_group_state.tsx | 4 +- .../public/components/agg_param_props.ts | 6 +- .../public/components/agg_params.test.tsx | 4 +- .../public/components/agg_params.tsx | 4 +- .../components/agg_params_helper.test.ts | 22 +- .../public/components/agg_params_helper.ts | 18 +- .../public/components/agg_select.tsx | 12 +- .../components/controls/agg_control_props.tsx | 4 +- .../components/controls/agg_utils.test.tsx | 8 +- .../public/components/controls/field.test.tsx | 6 +- .../public/components/controls/field.tsx | 7 +- .../public/components/controls/filter.tsx | 4 +- .../components/controls/metric_agg.test.tsx | 6 +- .../public/components/controls/order_agg.tsx | 8 +- .../public/components/controls/sub_agg.tsx | 4 +- .../public/components/controls/sub_metric.tsx | 4 +- .../public/components/controls/test_utils.ts | 6 +- .../controls/top_aggregate.test.tsx | 18 +- .../components/controls/top_aggregate.tsx | 6 +- .../components/controls/utils/agg_utils.ts | 10 +- .../components/controls/utils/use_handlers.ts | 8 +- .../public/components/sidebar/data_tab.tsx | 8 +- .../components/sidebar/state/actions.ts | 18 +- .../components/sidebar/state/reducers.ts | 4 +- .../public/legacy_imports.ts | 31 ++- .../public/vis_options_props.tsx | 4 +- .../public/vis_type_agg_filter.ts | 12 +- .../vis_type_table/public/legacy_imports.ts | 2 +- .../public/table_vis_controller.test.ts | 4 +- .../options/metrics_axes/index.test.tsx | 12 +- .../components/options/metrics_axes/index.tsx | 4 +- .../vis_type_vislib/public/legacy_imports.ts | 2 +- .../public/embeddable/query_geohash_bounds.ts | 4 +- .../visualizations/public/legacy_imports.ts | 7 +- .../public/legacy/build_pipeline.test.ts | 10 +- .../np_ready/public/legacy/build_pipeline.ts | 12 +- .../public/np_ready/public/vis.d.ts | 4 +- .../public/np_ready/public/vis.js | 2 +- .../agg_response/tabify/_get_columns.ts | 8 +- src/legacy/ui/public/agg_types/index.ts | 78 ++++++- .../ui/public/time_buckets/time_buckets.js | 2 +- .../ui/public/vis/__tests__/_agg_config.js | 4 +- .../config/editor_config_providers.test.ts | 8 +- .../vis/config/editor_config_providers.ts | 6 +- .../loader/pipeline_helpers/utilities.ts | 12 +- .../editor_frame_plugin/plugin.test.tsx | 3 - .../definitions/date_histogram.test.tsx | 34 ++- .../operations/definitions/date_histogram.tsx | 2 +- x-pack/legacy/plugins/rollup/public/legacy.ts | 4 +- .../plugins/rollup/public/legacy_imports.ts | 4 +- .../translations/translations/ja-JP.json | 209 +++++++++--------- .../translations/translations/zh-CN.json | 209 +++++++++--------- .../watcher/public/legacy/time_buckets.js | 2 +- 185 files changed, 1039 insertions(+), 707 deletions(-) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/__tests__/buckets/_terms_other_bucket_helper.js (99%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_config.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_configs.ts (98%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_groups.ts (87%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_params.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_params.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_type.test.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_type.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/agg_types.ts (73%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/_bucket_agg_type.ts (96%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/_interval_options.ts (66%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/_terms_other_bucket_helper.js (99%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/bucket_agg_types.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/date_histogram.test.ts (98%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/date_histogram.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/date_range.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/date_range.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/filters.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/filters.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/histogram.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/histogram.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/ip_range.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/ip_range.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/range.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/range.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/terms.test.ts (98%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/create_filter/terms.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/date_histogram.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/date_range.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/date_range.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/filter.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/filters.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/geo_hash.test.ts (98%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/geo_hash.ts (96%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/geo_tile.ts (92%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/histogram.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/histogram.ts (96%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/ip_range.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/lib/cidr_mask.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/lib/cidr_mask.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/lib/geo_utils.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/migrate_include_exclude_format.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/range.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/range.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/range_key.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/significant_terms.test.ts (96%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/significant_terms.ts (82%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/terms.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/buckets/terms.ts (85%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/filter/agg_type_filters.test.ts (88%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/filter/agg_type_filters.ts (92%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/filter/index.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/filter/prop_filter.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/filter/prop_filter.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/index.test.ts (100%) create mode 100644 src/legacy/core_plugins/data/public/search/aggs/index.ts rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/avg.ts (85%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/bucket_avg.ts (91%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/bucket_max.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/bucket_min.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/bucket_sum.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/cardinality.ts (86%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/count.ts (87%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/cumulative_sum.ts (88%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/derivative.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/geo_bounds.ts (84%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/geo_centroid.ts (84%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/get_response_agg_config_class.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/make_nested_label.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/make_nested_label.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/nested_agg_helpers.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/ordinal_suffix.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/ordinal_suffix.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/parent_pipeline_agg_helper.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/parent_pipeline_agg_writer.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/sibling_pipeline_agg_helper.ts (93%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/lib/sibling_pipeline_agg_writer.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/max.ts (86%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/median.test.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/median.ts (88%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/metric_agg_type.ts (92%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/metric_agg_types.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/min.ts (86%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/moving_avg.ts (92%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/parent_pipeline.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/percentile_ranks.test.ts (96%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/percentile_ranks.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/percentiles.test.ts (95%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/percentiles.ts (88%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/percentiles_get_value.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/serial_diff.ts (89%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/sibling_pipeline.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/std_deviation.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/std_deviation.ts (85%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/sum.ts (86%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/top_hit.test.ts (99%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/metrics/top_hit.ts (87%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/agg.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/base.ts (94%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/field.test.ts (98%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/field.ts (83%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/filter/field_filters.test.ts (97%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/filter/field_filters.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/filter/index.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/index.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/json.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/json.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/optioned.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/optioned.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/string.test.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/param_types/string.ts (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/schemas.ts (98%) create mode 100644 src/legacy/core_plugins/data/public/search/aggs/types.ts rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/utils.test.tsx (100%) rename src/legacy/{ui/public/agg_types => core_plugins/data/public/search/aggs}/utils.ts (92%) create mode 100644 src/legacy/core_plugins/data/public/search/search_service.ts diff --git a/src/legacy/core_plugins/data/public/actions/filters/brush_event.test.js b/src/legacy/core_plugins/data/public/actions/filters/brush_event.test.js index a6fe58503cd021..743f6caee4edd0 100644 --- a/src/legacy/core_plugins/data/public/actions/filters/brush_event.test.js +++ b/src/legacy/core_plugins/data/public/actions/filters/brush_event.test.js @@ -21,7 +21,7 @@ import _ from 'lodash'; import moment from 'moment'; import expect from '@kbn/expect'; -jest.mock('../../../../../ui/public/agg_types/agg_configs', () => ({ +jest.mock('../../search/aggs', () => ({ AggConfigs: function AggConfigs() { return { createAggConfig: ({ params }) => ({ diff --git a/src/legacy/core_plugins/data/public/index.ts b/src/legacy/core_plugins/data/public/index.ts index 7fe487667f94e0..50120292a627a6 100644 --- a/src/legacy/core_plugins/data/public/index.ts +++ b/src/legacy/core_plugins/data/public/index.ts @@ -18,7 +18,7 @@ */ // /// Define plugin function -import { DataPlugin as Plugin, DataStart } from './plugin'; +import { DataPlugin as Plugin } from './plugin'; export function plugin() { return new Plugin(); @@ -27,14 +27,58 @@ export function plugin() { // /// Export types & static code /** @public types */ -export { DataStart }; +export { DataSetup, DataStart } from './plugin'; export { SavedQueryAttributes, SavedQuery, SavedQueryTimeFilter, } from '../../../../plugins/data/public'; +export { + // agg_types + AggParam, + AggParamOption, + DateRangeKey, + IAggConfig, + IAggConfigs, + IAggType, + IFieldParamType, + IMetricAggType, + IpRangeKey, + ISchemas, + OptionedParamEditorProps, + OptionedValueProp, +} from './search/types'; /** @public static code */ export * from '../common'; export { FilterStateManager } from './filter/filter_manager'; -export { getRequestInspectorStats, getResponseInspectorStats } from './search'; +export { + // agg_types TODO need to group these under a namespace or prefix + AggParamType, + AggTypeFilters, // TODO convert to interface + aggTypeFilters, + AggTypeFieldFilters, // TODO convert to interface + AggGroupNames, + aggGroupNamesMap, + BUCKET_TYPES, + CidrMask, + convertDateRangeToString, + convertIPRangeToString, + intervalOptions, // only used in Discover + isDateHistogramBucketAggConfig, + isStringType, + isType, + isValidInterval, + isValidJson, + METRIC_TYPES, + OptionedParamType, + parentPipelineType, + propFilter, + Schema, + Schemas, + siblingPipelineType, + termsAggFilter, + // search_source + getRequestInspectorStats, + getResponseInspectorStats, +} from './search'; diff --git a/src/legacy/core_plugins/data/public/plugin.ts b/src/legacy/core_plugins/data/public/plugin.ts index da35366cdff318..ebc470555d87c5 100644 --- a/src/legacy/core_plugins/data/public/plugin.ts +++ b/src/legacy/core_plugins/data/public/plugin.ts @@ -45,6 +45,8 @@ import { } from '../../../../plugins/embeddable/public/lib/triggers'; import { IUiActionsSetup, IUiActionsStart } from '../../../../plugins/ui_actions/public'; +import { SearchSetup, SearchStart, SearchService } from './search/search_service'; + export interface DataPluginSetupDependencies { data: DataPublicPluginSetup; expressions: ExpressionsSetup; @@ -56,12 +58,23 @@ export interface DataPluginStartDependencies { uiActions: IUiActionsStart; } +/** + * Interface for this plugin's returned `setup` contract. + * + * @public + */ +export interface DataSetup { + search: SearchSetup; +} + /** * Interface for this plugin's returned `start` contract. * * @public */ -export interface DataStart {} // eslint-disable-line @typescript-eslint/no-empty-interface +export interface DataStart { + search: SearchStart; +} /** * Data Plugin - public @@ -76,7 +89,10 @@ export interface DataStart {} // eslint-disable-line @typescript-eslint/no-empty */ export class DataPlugin - implements Plugin { + implements + Plugin { + private readonly search = new SearchService(); + public setup(core: CoreSetup, { data, uiActions }: DataPluginSetupDependencies) { setInjectedMetadata(core.injectedMetadata); @@ -89,6 +105,10 @@ export class DataPlugin uiActions.registerAction( valueClickAction(data.query.filterManager, data.query.timefilter.timefilter) ); + + return { + search: this.search.setup(core), + }; } public start(core: CoreStart, { data, uiActions }: DataPluginStartDependencies): DataStart { @@ -102,7 +122,9 @@ export class DataPlugin uiActions.attachAction(SELECT_RANGE_TRIGGER, SELECT_RANGE_ACTION); uiActions.attachAction(VALUE_CLICK_TRIGGER, VALUE_CLICK_ACTION); - return {}; + return { + search: this.search.start(core), + }; } public stop() {} diff --git a/src/legacy/ui/public/agg_types/__tests__/buckets/_terms_other_bucket_helper.js b/src/legacy/core_plugins/data/public/search/aggs/__tests__/buckets/_terms_other_bucket_helper.js similarity index 99% rename from src/legacy/ui/public/agg_types/__tests__/buckets/_terms_other_bucket_helper.js rename to src/legacy/core_plugins/data/public/search/aggs/__tests__/buckets/_terms_other_bucket_helper.js index acf932c1fb451b..247290731df573 100644 --- a/src/legacy/ui/public/agg_types/__tests__/buckets/_terms_other_bucket_helper.js +++ b/src/legacy/core_plugins/data/public/search/aggs/__tests__/buckets/_terms_other_bucket_helper.js @@ -24,7 +24,7 @@ import { mergeOtherBucketAggResponse, updateMissingBucket, } from '../../buckets/_terms_other_bucket_helper'; -import { Vis } from '../../../../../core_plugins/visualizations/public'; +import { Vis } from '../../../../../../../core_plugins/visualizations/public'; import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; const visConfigSingleTerm = { diff --git a/src/legacy/ui/public/agg_types/agg_config.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts similarity index 93% rename from src/legacy/ui/public/agg_types/agg_config.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_config.ts index 17a8b14b57d020..769347a26c34c2 100644 --- a/src/legacy/ui/public/agg_types/agg_config.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts @@ -27,17 +27,17 @@ import _ from 'lodash'; import { i18n } from '@kbn/i18n'; import { npStart } from 'ui/new_platform'; -import { AggType } from './agg_type'; +import { IAggType } from './agg_type'; import { AggGroupNames } from './agg_groups'; import { writeParams } from './agg_params'; -import { AggConfigs } from './agg_configs'; +import { IAggConfigs } from './agg_configs'; import { Schema } from './schemas'; import { ISearchSource, FetchOptions, fieldFormats, KBN_FIELD_TYPES, -} from '../../../../plugins/data/public'; +} from '../../../../../../plugins/data/public'; export interface AggConfigOptions { enabled: boolean; @@ -60,13 +60,13 @@ const unknownSchema: Schema = { group: AggGroupNames.Metrics, }; -const getTypeFromRegistry = (type: string): AggType => { +const getTypeFromRegistry = (type: string): IAggType => { // We need to inline require here, since we're having a cyclic dependency // from somewhere inside agg_types back to AggConfig. - const aggTypes = require('./agg_types').aggTypes; + const aggTypes = require('../aggs').aggTypes; const registeredType = - aggTypes.metrics.find((agg: AggType) => agg.name === type) || - aggTypes.buckets.find((agg: AggType) => agg.name === type); + aggTypes.metrics.find((agg: IAggType) => agg.name === type) || + aggTypes.buckets.find((agg: IAggType) => agg.name === type); if (!registeredType) { throw new Error('unknown type'); @@ -85,6 +85,9 @@ const getSchemaFromRegistry = (schemas: any, schema: string): Schema => { return registeredSchema; }; +// TODO need to make a more explicit interface for this +export type IAggConfig = AggConfig; + export class AggConfig { /** * Ensure that all of the objects in the list have ids, the objects @@ -122,19 +125,19 @@ export class AggConfig { ); } - public aggConfigs: AggConfigs; + public aggConfigs: IAggConfigs; public id: string; public enabled: boolean; public params: any; - public parent?: AggConfigs; + public parent?: IAggConfigs; public brandNew?: boolean; private __schema: Schema; - private __type: AggType; + private __type: IAggType; private __typeDecorations: any; private subAggs: AggConfig[] = []; - constructor(aggConfigs: AggConfigs, opts: AggConfigOptions) { + constructor(aggConfigs: IAggConfigs, opts: AggConfigOptions) { this.aggConfigs = aggConfigs; this.id = String(opts.id || AggConfig.nextId(aggConfigs.aggs as any)); this.enabled = typeof opts.enabled === 'boolean' ? opts.enabled : true; @@ -207,7 +210,7 @@ export class AggConfig { return _.get(this.params, key); } - write(aggs?: AggConfigs) { + write(aggs?: IAggConfigs) { return writeParams(this.type.params, this, aggs); } @@ -262,7 +265,7 @@ export class AggConfig { * @return {void|Object} - if the config has a dsl representation, it is * returned, else undefined is returned */ - toDsl(aggConfigs?: AggConfigs) { + toDsl(aggConfigs?: IAggConfigs) { if (this.type.hasNoDsl) return; const output = this.write(aggConfigs) as any; @@ -360,7 +363,7 @@ export class AggConfig { if (!this.type) return ''; return percentageMode - ? i18n.translate('common.ui.vis.aggConfig.percentageOfLabel', { + ? i18n.translate('data.search.aggs.percentageOfLabel', { defaultMessage: 'Percentage of {label}', values: { label: this.type.makeLabel(this) }, }) @@ -448,7 +451,7 @@ export class AggConfig { }); } - public setType(type: string | AggType) { + public setType(type: string | IAggType) { this.type = typeof type === 'string' ? getTypeFromRegistry(type) : type; } diff --git a/src/legacy/ui/public/agg_types/agg_configs.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_configs.ts similarity index 98% rename from src/legacy/ui/public/agg_types/agg_configs.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_configs.ts index 47e2222abe1e8b..7e7e4944b00da9 100644 --- a/src/legacy/ui/public/agg_types/agg_configs.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_configs.ts @@ -35,7 +35,7 @@ import { ISearchSource, FetchOptions, TimeRange, -} from '../../../../plugins/data/public'; +} from '../../../../../../plugins/data/public'; type Schemas = Record; @@ -55,6 +55,9 @@ function parseParentAggs(dslLvlCursor: any, dsl: any) { } } +// TODO need to make a more explicit interface for this +export type IAggConfigs = AggConfigs; + export class AggConfigs { public indexPattern: IndexPattern; public schemas: any; diff --git a/src/legacy/ui/public/agg_types/agg_groups.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_groups.ts similarity index 87% rename from src/legacy/ui/public/agg_types/agg_groups.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_groups.ts index d08e875bf213e4..d21f5c8968840f 100644 --- a/src/legacy/ui/public/agg_types/agg_groups.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_groups.ts @@ -28,10 +28,10 @@ export const AggGroupNames = Object.freeze({ export type AggGroupNames = $Values; export const aggGroupNamesMap = () => ({ - [AggGroupNames.Metrics]: i18n.translate('common.ui.aggTypes.aggGroups.metricsText', { + [AggGroupNames.Metrics]: i18n.translate('data.search.aggs.aggGroups.metricsText', { defaultMessage: 'Metrics', }), - [AggGroupNames.Buckets]: i18n.translate('common.ui.aggTypes.aggGroups.bucketsText', { + [AggGroupNames.Buckets]: i18n.translate('data.search.aggs.aggGroups.bucketsText', { defaultMessage: 'Buckets', }), }); diff --git a/src/legacy/ui/public/agg_types/agg_params.test.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_params.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/agg_params.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_params.test.ts index 25e62e06d52d70..30ab272537dad1 100644 --- a/src/legacy/ui/public/agg_types/agg_params.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_params.test.ts @@ -21,7 +21,7 @@ import { initParams } from './agg_params'; import { BaseParamType } from './param_types/base'; import { FieldParamType } from './param_types/field'; import { OptionedParamType } from './param_types/optioned'; -import { AggParamType } from '../agg_types/param_types/agg'; +import { AggParamType } from '../aggs/param_types/agg'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/agg_params.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_params.ts similarity index 97% rename from src/legacy/ui/public/agg_types/agg_params.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_params.ts index 262a57f4a5aa30..34727ff4614b95 100644 --- a/src/legacy/ui/public/agg_types/agg_params.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_params.ts @@ -25,7 +25,7 @@ import { JsonParamType } from './param_types/json'; import { BaseParamType } from './param_types/base'; import { AggConfig } from './agg_config'; -import { AggConfigs } from './agg_configs'; +import { IAggConfigs } from './agg_configs'; const paramTypeMap = { field: FieldParamType, @@ -73,7 +73,7 @@ export const writeParams = < >( params: Array> = [], aggConfig: TAggConfig, - aggs?: AggConfigs, + aggs?: IAggConfigs, locals?: Record ) => { const output = { params: {} as Record }; diff --git a/src/legacy/ui/public/agg_types/agg_type.test.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_type.test.ts similarity index 94% rename from src/legacy/ui/public/agg_types/agg_type.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_type.test.ts index 9b34910e81e88b..6d4c2d1317f505 100644 --- a/src/legacy/ui/public/agg_types/agg_type.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_type.test.ts @@ -18,7 +18,7 @@ */ import { AggType, AggTypeConfig } from './agg_type'; -import { AggConfig } from './agg_config'; +import { IAggConfig } from './agg_config'; import { npStart } from 'ui/new_platform'; jest.mock('ui/new_platform'); @@ -48,7 +48,7 @@ describe('AggType Class', () => { describe('makeLabel', () => { it('makes a function when the makeLabel config is not specified', () => { const makeLabel = () => 'label'; - const aggConfig = {} as AggConfig; + const aggConfig = {} as IAggConfig; const config: AggTypeConfig = { name: 'name', title: 'title', @@ -64,7 +64,7 @@ describe('AggType Class', () => { describe('getResponseAggs/getRequestAggs', () => { it('copies the value', () => { - const testConfig = (aggConfig: AggConfig) => [aggConfig]; + const testConfig = (aggConfig: IAggConfig) => [aggConfig]; const aggType = new AggType({ name: 'name', @@ -78,7 +78,7 @@ describe('AggType Class', () => { }); it('defaults to noop', () => { - const aggConfig = {} as AggConfig; + const aggConfig = {} as IAggConfig; const aggType = new AggType({ name: 'name', title: 'title', @@ -130,13 +130,13 @@ describe('AggType Class', () => { }); describe('getFormat', function() { - let aggConfig: AggConfig; + let aggConfig: IAggConfig; let field: any; beforeEach(() => { aggConfig = ({ getField: jest.fn(() => field), - } as unknown) as AggConfig; + } as unknown) as IAggConfig; }); it('returns the formatter for the aggConfig', () => { diff --git a/src/legacy/ui/public/agg_types/agg_type.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_type.ts similarity index 94% rename from src/legacy/ui/public/agg_types/agg_type.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_type.ts index 7ec688277b9c43..56299839d0a6db 100644 --- a/src/legacy/ui/public/agg_types/agg_type.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_type.ts @@ -23,11 +23,15 @@ import { npStart } from 'ui/new_platform'; import { initParams } from './agg_params'; import { AggConfig } from './agg_config'; -import { AggConfigs } from './agg_configs'; -import { Adapters } from '../../../../plugins/inspector/public'; +import { IAggConfigs } from './agg_configs'; +import { Adapters } from '../../../../../../plugins/inspector/public'; import { BaseParamType } from './param_types/base'; -import { AggParamType } from '../agg_types/param_types/agg'; -import { KBN_FIELD_TYPES, fieldFormats, ISearchSource } from '../../../../plugins/data/public'; +import { AggParamType } from './param_types/agg'; +import { + KBN_FIELD_TYPES, + fieldFormats, + ISearchSource, +} from '../../../../../../plugins/data/public'; export interface AggTypeConfig< TAggConfig extends AggConfig = AggConfig, @@ -48,7 +52,7 @@ export interface AggTypeConfig< decorateAggConfig?: () => any; postFlightRequest?: ( resp: any, - aggConfigs: AggConfigs, + aggConfigs: IAggConfigs, aggConfig: TAggConfig, searchSource: ISearchSource, inspectorAdapters: Adapters, @@ -66,6 +70,9 @@ const getFormat = (agg: AggConfig) => { return field ? field.format : fieldFormatsService.getDefaultInstance(KBN_FIELD_TYPES.STRING); }; +// TODO need to make a more explicit interface for this +export type IAggType = AggType; + export class AggType< TAggConfig extends AggConfig = AggConfig, TParam extends AggParamType = AggParamType @@ -178,7 +185,7 @@ export class AggType< */ postFlightRequest: ( resp: any, - aggConfigs: AggConfigs, + aggConfigs: IAggConfigs, aggConfig: TAggConfig, searchSource: ISearchSource, inspectorAdapters: Adapters, @@ -239,7 +246,7 @@ export class AggType< if (config.customLabels !== false) { params.push({ name: 'customLabel', - displayName: i18n.translate('common.ui.aggTypes.string.customLabel', { + displayName: i18n.translate('data.search.aggs.string.customLabel', { defaultMessage: 'Custom label', }), type: 'string', diff --git a/src/legacy/ui/public/agg_types/agg_types.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_types.ts similarity index 73% rename from src/legacy/ui/public/agg_types/agg_types.ts rename to src/legacy/core_plugins/data/public/search/aggs/agg_types.ts index 1b05f5926ebfc9..c16eb06eeb1164 100644 --- a/src/legacy/ui/public/agg_types/agg_types.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_types.ts @@ -50,8 +50,6 @@ import { bucketAvgMetricAgg } from './metrics/bucket_avg'; import { bucketMinMetricAgg } from './metrics/bucket_min'; import { bucketMaxMetricAgg } from './metrics/bucket_max'; -export { AggType } from './agg_type'; - export const aggTypes = { metrics: [ countMetricAgg, @@ -90,3 +88,27 @@ export const aggTypes = { geoTileBucketAgg, ], }; + +export { AggType } from './agg_type'; +export { AggConfig } from './agg_config'; +export { AggConfigs } from './agg_configs'; +export { FieldParamType } from './param_types'; +export { aggTypeFieldFilters } from './param_types/filter'; +export { parentPipelineAggHelper } from './metrics/lib/parent_pipeline_agg_helper'; + +// static code +export { AggParamType } from './param_types/agg'; +export { AggGroupNames, aggGroupNamesMap } from './agg_groups'; +export { intervalOptions } from './buckets/_interval_options'; // only used in Discover +export { isDateHistogramBucketAggConfig, setBounds } from './buckets/date_histogram'; +export { termsAggFilter } from './buckets/terms'; +export { isType, isStringType } from './buckets/migrate_include_exclude_format'; +export { CidrMask } from './buckets/lib/cidr_mask'; +export { convertDateRangeToString } from './buckets/date_range'; +export { convertIPRangeToString } from './buckets/ip_range'; +export { aggTypeFilters, propFilter } from './filter'; +export { OptionedParamType } from './param_types/optioned'; +export { isValidJson, isValidInterval } from './utils'; +export { BUCKET_TYPES } from './buckets/bucket_agg_types'; +export { METRIC_TYPES } from './metrics/metric_agg_types'; +export { ISchemas, Schema, Schemas } from './schemas'; diff --git a/src/legacy/ui/public/agg_types/buckets/_bucket_agg_type.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/_bucket_agg_type.ts similarity index 96% rename from src/legacy/ui/public/agg_types/buckets/_bucket_agg_type.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/_bucket_agg_type.ts index 9b7c97a8f11b6a..546d054c5af978 100644 --- a/src/legacy/ui/public/agg_types/buckets/_bucket_agg_type.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/_bucket_agg_type.ts @@ -18,7 +18,7 @@ */ import { AggConfig } from '../agg_config'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { AggType, AggTypeConfig } from '../agg_type'; import { AggParamType } from '../param_types/agg'; diff --git a/src/legacy/ui/public/agg_types/buckets/_interval_options.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/_interval_options.ts similarity index 66% rename from src/legacy/ui/public/agg_types/buckets/_interval_options.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/_interval_options.ts index 01d0abb7a366c0..e196687607d198 100644 --- a/src/legacy/ui/public/agg_types/buckets/_interval_options.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/_interval_options.ts @@ -21,7 +21,7 @@ import { IBucketAggConfig } from './_bucket_agg_type'; export const intervalOptions = [ { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.autoDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.autoDisplayName', { defaultMessage: 'Auto', }), val: 'auto', @@ -32,49 +32,49 @@ export const intervalOptions = [ }, }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.millisecondDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.millisecondDisplayName', { defaultMessage: 'Millisecond', }), val: 'ms', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.secondDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.secondDisplayName', { defaultMessage: 'Second', }), val: 's', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.minuteDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.minuteDisplayName', { defaultMessage: 'Minute', }), val: 'm', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.hourlyDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.hourlyDisplayName', { defaultMessage: 'Hourly', }), val: 'h', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.dailyDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.dailyDisplayName', { defaultMessage: 'Daily', }), val: 'd', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.weeklyDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.weeklyDisplayName', { defaultMessage: 'Weekly', }), val: 'w', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.monthlyDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.monthlyDisplayName', { defaultMessage: 'Monthly', }), val: 'M', }, { - display: i18n.translate('common.ui.aggTypes.buckets.intervalOptions.yearlyDisplayName', { + display: i18n.translate('data.search.aggs.buckets.intervalOptions.yearlyDisplayName', { defaultMessage: 'Yearly', }), val: 'y', diff --git a/src/legacy/ui/public/agg_types/buckets/_terms_other_bucket_helper.js b/src/legacy/core_plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.js similarity index 99% rename from src/legacy/ui/public/agg_types/buckets/_terms_other_bucket_helper.js rename to src/legacy/core_plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.js index c8580183756f49..ddab360161744c 100644 --- a/src/legacy/ui/public/agg_types/buckets/_terms_other_bucket_helper.js +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.js @@ -18,7 +18,7 @@ */ import _ from 'lodash'; -import { esFilters, esQuery } from '../../../../../plugins/data/public'; +import { esFilters, esQuery } from '../../../../../../../plugins/data/public'; import { AggGroupNames } from '../agg_groups'; /** diff --git a/src/legacy/ui/public/agg_types/buckets/bucket_agg_types.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/bucket_agg_types.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/bucket_agg_types.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/bucket_agg_types.ts diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts similarity index 98% rename from src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts index 9426df7d34c29e..e212132257ef68 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts @@ -23,7 +23,7 @@ import { intervalOptions } from '../_interval_options'; import { AggConfigs } from '../../agg_configs'; import { IBucketDateHistogramAggConfig } from '../date_histogram'; import { BUCKET_TYPES } from '../bucket_agg_types'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.ts similarity index 94% rename from src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.ts index f91a92eab1c33f..e634b5daf0ac38 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/date_histogram.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_histogram.ts @@ -19,7 +19,7 @@ import moment from 'moment'; import { IBucketDateHistogramAggConfig } from '../date_histogram'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterDateHistogram = ( agg: IBucketDateHistogramAggConfig, diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/date_range.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/buckets/create_filter/date_range.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts index 9c2c4f72704f41..e224253a6e3149 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/date_range.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts @@ -19,7 +19,7 @@ import moment from 'moment'; import { createFilterDateRange } from './date_range'; -import { fieldFormats } from '../../../../../../plugins/data/public'; +import { fieldFormats } from '../../../../../../../../plugins/data/public'; import { AggConfigs } from '../../agg_configs'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../_bucket_agg_type'; diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/date_range.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.ts similarity index 94% rename from src/legacy/ui/public/agg_types/buckets/create_filter/date_range.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.ts index 01689d954a0723..f7f2cfdb7bb61b 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/date_range.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/date_range.ts @@ -20,7 +20,7 @@ import moment from 'moment'; import { IBucketAggConfig } from '../_bucket_agg_type'; import { DateRangeKey } from '../date_range'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterDateRange = (agg: IBucketAggConfig, { from, to }: DateRangeKey) => { const filter: esFilters.RangeFilterParams = {}; diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/filters.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/create_filter/filters.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/filters.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/filters.ts similarity index 94% rename from src/legacy/ui/public/agg_types/buckets/create_filter/filters.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/filters.ts index 6b614514580b6d..715f6895374e63 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/filters.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/filters.ts @@ -19,7 +19,7 @@ import { get } from 'lodash'; import { IBucketAggConfig } from '../_bucket_agg_type'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterFilters = (aggConfig: IBucketAggConfig, key: string) => { // have the aggConfig write agg dsl params diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/histogram.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/buckets/create_filter/histogram.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts index ef49636f9e0c16..1a78967261fa6e 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/histogram.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts @@ -20,7 +20,7 @@ import { createFilterHistogram } from './histogram'; import { AggConfigs } from '../../agg_configs'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../_bucket_agg_type'; -import { fieldFormats } from '../../../../../../plugins/data/public'; +import { fieldFormats } from '../../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/histogram.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.ts similarity index 94% rename from src/legacy/ui/public/agg_types/buckets/create_filter/histogram.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.ts index fc587fa9ecdb6b..820f3de5ae9f0d 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/histogram.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/histogram.ts @@ -18,7 +18,7 @@ */ import { IBucketAggConfig } from '../_bucket_agg_type'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterHistogram = (aggConfig: IBucketAggConfig, key: string) => { const value = parseInt(key, 10); diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts index a9eca3bbb7a560..e92ba5cb2852a1 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts @@ -19,7 +19,7 @@ import { createFilterIpRange } from './ip_range'; import { AggConfigs } from '../../agg_configs'; -import { fieldFormats } from '../../../../../../plugins/data/public'; +import { fieldFormats } from '../../../../../../../../plugins/data/public'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../_bucket_agg_type'; diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.ts similarity index 95% rename from src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.ts index a513b8c7827398..d78f4579cd713d 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/ip_range.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/ip_range.ts @@ -20,7 +20,7 @@ import { CidrMask } from '../lib/cidr_mask'; import { IBucketAggConfig } from '../_bucket_agg_type'; import { IpRangeKey } from '../ip_range'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterIpRange = (aggConfig: IBucketAggConfig, key: IpRangeKey) => { let range: esFilters.RangeFilterParams; diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/range.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/buckets/create_filter/range.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.test.ts index 720e952c28821b..2f74f23721813e 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/range.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.test.ts @@ -18,7 +18,7 @@ */ import { createFilterRange } from './range'; -import { fieldFormats } from '../../../../../../plugins/data/public'; +import { fieldFormats } from '../../../../../../../../plugins/data/public'; import { AggConfigs } from '../../agg_configs'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../_bucket_agg_type'; diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/range.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.ts similarity index 93% rename from src/legacy/ui/public/agg_types/buckets/create_filter/range.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.ts index 929827c6e3fec6..125a30a1ab1dd3 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/range.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/range.ts @@ -18,7 +18,7 @@ */ import { IBucketAggConfig } from '../_bucket_agg_type'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterRange = (aggConfig: IBucketAggConfig, params: any) => { return esFilters.buildRangeFilter( diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/terms.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts similarity index 98% rename from src/legacy/ui/public/agg_types/buckets/create_filter/terms.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts index 86c0aa24f529a6..d5fd1337f2cb20 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/terms.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts @@ -21,7 +21,7 @@ import { createFilterTerms } from './terms'; import { AggConfigs } from '../../agg_configs'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../_bucket_agg_type'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/buckets/create_filter/terms.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.ts similarity index 95% rename from src/legacy/ui/public/agg_types/buckets/create_filter/terms.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.ts index 5bd770e672786d..e0d1f91c1e16a4 100644 --- a/src/legacy/ui/public/agg_types/buckets/create_filter/terms.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/create_filter/terms.ts @@ -18,7 +18,7 @@ */ import { IBucketAggConfig } from '../_bucket_agg_type'; -import { esFilters } from '../../../../../../plugins/data/public'; +import { esFilters } from '../../../../../../../../plugins/data/public'; export const createFilterTerms = (aggConfig: IBucketAggConfig, key: string, params: any) => { const field = aggConfig.params.field; diff --git a/src/legacy/ui/public/agg_types/buckets/date_histogram.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/date_histogram.ts similarity index 95% rename from src/legacy/ui/public/agg_types/buckets/date_histogram.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/date_histogram.ts index 33672b54b1f2e0..dc0f9baa6d0cc7 100644 --- a/src/legacy/ui/public/agg_types/buckets/date_histogram.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/date_histogram.ts @@ -22,19 +22,17 @@ import moment from 'moment-timezone'; import { i18n } from '@kbn/i18n'; import { npStart } from 'ui/new_platform'; +import { timefilter } from 'ui/timefilter'; +import { TimeBuckets } from 'ui/time_buckets'; import { BucketAggType, IBucketAggConfig } from './_bucket_agg_type'; import { BUCKET_TYPES } from './bucket_agg_types'; import { createFilterDateHistogram } from './create_filter/date_histogram'; import { intervalOptions } from './_interval_options'; -import { timefilter } from '../../timefilter'; -import { dateHistogramInterval } from '../../../../core_plugins/data/public'; +import { dateHistogramInterval } from '../../../../common'; import { writeParams } from '../agg_params'; import { isMetricAggType } from '../metrics/metric_agg_type'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; - -// @ts-ignore -import { TimeBuckets } from '../../time_buckets'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; const detectedTimezone = moment.tz.guess(); const tzOffset = moment().format('Z'); @@ -67,7 +65,7 @@ export function isDateHistogramBucketAggConfig(agg: any): agg is IBucketDateHist export const dateHistogramBucketAgg = new BucketAggType({ name: BUCKET_TYPES.DATE_HISTOGRAM, - title: i18n.translate('common.ui.aggTypes.buckets.dateHistogramTitle', { + title: i18n.translate('data.search.aggs.buckets.dateHistogramTitle', { defaultMessage: 'Date Histogram', }), ordered: { @@ -81,7 +79,7 @@ export const dateHistogramBucketAgg = new BucketAggType { describe('getRequestAggs', () => { describe('initial aggregation creation', () => { - let aggConfigs: AggConfigs; + let aggConfigs: IAggConfigs; let geoHashGridAgg: IBucketGeoHashGridAggConfig; beforeEach(() => { diff --git a/src/legacy/ui/public/agg_types/buckets/geo_hash.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/geo_hash.ts similarity index 96% rename from src/legacy/ui/public/agg_types/buckets/geo_hash.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/geo_hash.ts index b2519df6fb175c..afd4e18dd266ca 100644 --- a/src/legacy/ui/public/agg_types/buckets/geo_hash.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/geo_hash.ts @@ -19,9 +19,9 @@ import { i18n } from '@kbn/i18n'; import { geohashColumns } from 'ui/vis/map/decode_geo_hash'; -import chrome from '../../chrome'; +import chrome from 'ui/chrome'; import { BucketAggType, IBucketAggConfig } from './_bucket_agg_type'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { geoContains, scaleBounds, GeoBoundingBox } from './lib/geo_utils'; import { BUCKET_TYPES } from './bucket_agg_types'; @@ -68,7 +68,7 @@ function getPrecision(val: string) { const isOutsideCollar = (bounds: GeoBoundingBox, collar: MapCollar) => bounds && collar && !geoContains(collar, bounds); -const geohashGridTitle = i18n.translate('common.ui.aggTypes.buckets.geohashGridTitle', { +const geohashGridTitle = i18n.translate('data.search.aggs.buckets.geohashGridTitle', { defaultMessage: 'Geohash', }); diff --git a/src/legacy/ui/public/agg_types/buckets/geo_tile.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/geo_tile.ts similarity index 92% rename from src/legacy/ui/public/agg_types/buckets/geo_tile.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/geo_tile.ts index ef71e3947566a7..57e8f6e8c5ded4 100644 --- a/src/legacy/ui/public/agg_types/buckets/geo_tile.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/geo_tile.ts @@ -23,11 +23,11 @@ import { AggConfigOptions } from '../agg_config'; import { BucketAggType } from './_bucket_agg_type'; import { BUCKET_TYPES } from './bucket_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { IBucketAggConfig } from './_bucket_agg_type'; import { METRIC_TYPES } from '../metrics/metric_agg_types'; -const geotileGridTitle = i18n.translate('common.ui.aggTypes.buckets.geotileGridTitle', { +const geotileGridTitle = i18n.translate('data.search.aggs.buckets.geotileGridTitle', { defaultMessage: 'Geotile', }); diff --git a/src/legacy/ui/public/agg_types/buckets/histogram.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/histogram.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/histogram.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/histogram.test.ts diff --git a/src/legacy/ui/public/agg_types/buckets/histogram.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/histogram.ts similarity index 96% rename from src/legacy/ui/public/agg_types/buckets/histogram.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/histogram.ts index 44327c7c19e6db..f7e9ef45961e04 100644 --- a/src/legacy/ui/public/agg_types/buckets/histogram.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/histogram.ts @@ -24,7 +24,7 @@ import { toastNotifications } from 'ui/notify'; import { npStart } from 'ui/new_platform'; import { BucketAggType, IBucketAggConfig } from './_bucket_agg_type'; import { createFilterHistogram } from './create_filter/histogram'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { BUCKET_TYPES } from './bucket_agg_types'; export interface AutoBounds { @@ -41,7 +41,7 @@ const getUIConfig = () => npStart.core.uiSettings; export const histogramBucketAgg = new BucketAggType({ name: BUCKET_TYPES.HISTOGRAM, - title: i18n.translate('common.ui.aggTypes.buckets.histogramTitle', { + title: i18n.translate('data.search.aggs.buckets.histogramTitle', { defaultMessage: 'Histogram', }), ordered: {}, @@ -117,7 +117,7 @@ export const histogramBucketAgg = new BucketAggType({ .catch((e: Error) => { if (e.name === 'AbortError') return; toastNotifications.addWarning( - i18n.translate('common.ui.aggTypes.histogram.missingMaxMinValuesWarning', { + i18n.translate('data.search.aggs.histogram.missingMaxMinValuesWarning', { defaultMessage: 'Unable to retrieve max and min values to auto-scale histogram buckets. This may lead to poor visualization performance.', }) diff --git a/src/legacy/ui/public/agg_types/buckets/ip_range.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/ip_range.ts similarity index 93% rename from src/legacy/ui/public/agg_types/buckets/ip_range.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/ip_range.ts index 41141dabf507c5..e5497bef491651 100644 --- a/src/legacy/ui/public/agg_types/buckets/ip_range.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/ip_range.ts @@ -25,9 +25,9 @@ import { BUCKET_TYPES } from './bucket_agg_types'; // @ts-ignore import { createFilterIpRange } from './create_filter/ip_range'; -import { KBN_FIELD_TYPES, fieldFormats } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES, fieldFormats } from '../../../../../../../plugins/data/public'; -const ipRangeTitle = i18n.translate('common.ui.aggTypes.buckets.ipRangeTitle', { +const ipRangeTitle = i18n.translate('data.search.aggs.buckets.ipRangeTitle', { defaultMessage: 'IPv4 Range', }); @@ -57,7 +57,7 @@ export const ipRangeBucketAgg = new BucketAggType({ return new IpRangeFormat(); }, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.buckets.ipRangeLabel', { + return i18n.translate('data.search.aggs.buckets.ipRangeLabel', { defaultMessage: '{fieldName} IP ranges', values: { fieldName: aggConfig.getFieldDisplayName(), diff --git a/src/legacy/ui/public/agg_types/buckets/lib/cidr_mask.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/lib/cidr_mask.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/lib/cidr_mask.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/lib/cidr_mask.test.ts diff --git a/src/legacy/ui/public/agg_types/buckets/lib/cidr_mask.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/lib/cidr_mask.ts similarity index 95% rename from src/legacy/ui/public/agg_types/buckets/lib/cidr_mask.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/lib/cidr_mask.ts index aadbbc8c822768..30c4e400fb806b 100644 --- a/src/legacy/ui/public/agg_types/buckets/lib/cidr_mask.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/lib/cidr_mask.ts @@ -17,7 +17,7 @@ * under the License. */ -import { Ipv4Address } from '../../../../../../plugins/kibana_utils/public'; +import { Ipv4Address } from '../../../../../../../../plugins/kibana_utils/public'; const NUM_BITS = 32; diff --git a/src/legacy/ui/public/agg_types/buckets/lib/geo_utils.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/lib/geo_utils.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/lib/geo_utils.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/lib/geo_utils.ts diff --git a/src/legacy/ui/public/agg_types/buckets/migrate_include_exclude_format.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/migrate_include_exclude_format.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts diff --git a/src/legacy/ui/public/agg_types/buckets/range.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/range.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/buckets/range.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/range.test.ts index dd85c3b31939f8..4c0fa7311461ee 100644 --- a/src/legacy/ui/public/agg_types/buckets/range.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/range.test.ts @@ -19,7 +19,7 @@ import { AggConfigs } from '../agg_configs'; import { BUCKET_TYPES } from './bucket_agg_types'; -import { fieldFormats } from '../../../../../plugins/data/public'; +import { fieldFormats } from '../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/buckets/range.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/range.ts similarity index 89% rename from src/legacy/ui/public/agg_types/buckets/range.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/range.ts index f24473e0c68aaa..f35db2cc759bda 100644 --- a/src/legacy/ui/public/agg_types/buckets/range.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/range.ts @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; import { BucketAggType } from './_bucket_agg_type'; -import { fieldFormats, KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { fieldFormats, KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { RangeKey } from './range_key'; import { createFilterRange } from './create_filter/range'; import { BUCKET_TYPES } from './bucket_agg_types'; @@ -27,7 +27,7 @@ import { BUCKET_TYPES } from './bucket_agg_types'; const keyCaches = new WeakMap(); const formats = new WeakMap(); -const rangeTitle = i18n.translate('common.ui.aggTypes.buckets.rangeTitle', { +const rangeTitle = i18n.translate('data.search.aggs.buckets.rangeTitle', { defaultMessage: 'Range', }); @@ -36,7 +36,7 @@ export const rangeBucketAgg = new BucketAggType({ title: rangeTitle, createFilter: createFilterRange, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.buckets.rangesLabel', { + return i18n.translate('data.search.aggs.aggTypesLabel', { defaultMessage: '{fieldName} ranges', values: { fieldName: aggConfig.getFieldDisplayName(), @@ -69,7 +69,7 @@ export const rangeBucketAgg = new BucketAggType({ const format = agg.fieldOwnFormatter(); const gte = '\u2265'; const lt = '\u003c'; - return i18n.translate('common.ui.aggTypes.buckets.ranges.rangesFormatMessage', { + return i18n.translate('data.search.aggs.aggTypes.rangesFormatMessage', { defaultMessage: '{gte} {from} and {lt} {to}', values: { gte, diff --git a/src/legacy/ui/public/agg_types/buckets/range_key.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/range_key.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/range_key.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/range_key.ts diff --git a/src/legacy/ui/public/agg_types/buckets/significant_terms.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.test.ts similarity index 96% rename from src/legacy/ui/public/agg_types/buckets/significant_terms.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.test.ts index 8db9226e41eec7..37b829bfc20fb2 100644 --- a/src/legacy/ui/public/agg_types/buckets/significant_terms.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.test.ts @@ -18,6 +18,7 @@ */ import { AggConfigs } from '../index'; +import { IAggConfigs } from '../types'; import { BUCKET_TYPES } from './bucket_agg_types'; import { significantTermsBucketAgg } from './significant_terms'; import { IBucketAggConfig } from './_bucket_agg_type'; @@ -56,7 +57,7 @@ describe('Significant Terms Agg', () => { ); }; - const testSerializeAndWrite = (aggs: AggConfigs) => { + const testSerializeAndWrite = (aggs: IAggConfigs) => { const agg = aggs.aggs[0]; const { [BUCKET_TYPES.SIGNIFICANT_TERMS]: params } = agg.toDsl(); diff --git a/src/legacy/ui/public/agg_types/buckets/significant_terms.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.ts similarity index 82% rename from src/legacy/ui/public/agg_types/buckets/significant_terms.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.ts index 38ca0768d3bc1e..bc6c63d569b110 100644 --- a/src/legacy/ui/public/agg_types/buckets/significant_terms.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/significant_terms.ts @@ -22,9 +22,9 @@ import { BucketAggType } from './_bucket_agg_type'; import { createFilterTerms } from './create_filter/terms'; import { isStringType, migrateIncludeExcludeFormat } from './migrate_include_exclude_format'; import { BUCKET_TYPES } from './bucket_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const significantTermsTitle = i18n.translate('common.ui.aggTypes.buckets.significantTermsTitle', { +const significantTermsTitle = i18n.translate('data.search.aggs.buckets.significantTermsTitle', { defaultMessage: 'Significant Terms', }); @@ -32,7 +32,7 @@ export const significantTermsBucketAgg = new BucketAggType({ name: BUCKET_TYPES.SIGNIFICANT_TERMS, title: significantTermsTitle, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.buckets.significantTermsLabel', { + return i18n.translate('data.search.aggs.buckets.significantTermsLabel', { defaultMessage: 'Top {size} unusual terms in {fieldName}', values: { size: aggConfig.params.size, @@ -54,7 +54,7 @@ export const significantTermsBucketAgg = new BucketAggType({ }, { name: 'exclude', - displayName: i18n.translate('common.ui.aggTypes.buckets.significantTerms.excludeLabel', { + displayName: i18n.translate('data.search.aggs.buckets.significantTerms.excludeLabel', { defaultMessage: 'Exclude', }), type: 'string', @@ -64,7 +64,7 @@ export const significantTermsBucketAgg = new BucketAggType({ }, { name: 'include', - displayName: i18n.translate('common.ui.aggTypes.buckets.significantTerms.includeLabel', { + displayName: i18n.translate('data.search.aggs.buckets.significantTerms.includeLabel', { defaultMessage: 'Include', }), type: 'string', diff --git a/src/legacy/ui/public/agg_types/buckets/terms.test.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/terms.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/buckets/terms.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/terms.test.ts diff --git a/src/legacy/ui/public/agg_types/buckets/terms.ts b/src/legacy/core_plugins/data/public/search/aggs/buckets/terms.ts similarity index 85% rename from src/legacy/ui/public/agg_types/buckets/terms.ts rename to src/legacy/core_plugins/data/public/search/aggs/buckets/terms.ts index 4ced1417402b57..b41b16af122fa8 100644 --- a/src/legacy/ui/public/agg_types/buckets/terms.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/buckets/terms.ts @@ -19,19 +19,20 @@ import { noop } from 'lodash'; import { i18n } from '@kbn/i18n'; -import { - getRequestInspectorStats, - getResponseInspectorStats, -} from '../../../../core_plugins/data/public'; +import { getRequestInspectorStats, getResponseInspectorStats } from '../../../index'; import { BucketAggType } from './_bucket_agg_type'; import { BUCKET_TYPES } from './bucket_agg_types'; import { IBucketAggConfig } from './_bucket_agg_type'; import { createFilterTerms } from './create_filter/terms'; import { isStringType, migrateIncludeExcludeFormat } from './migrate_include_exclude_format'; -import { AggConfigs } from '../agg_configs'; +import { IAggConfigs } from '../agg_configs'; -import { Adapters } from '../../../../../plugins/inspector/public'; -import { ISearchSource, fieldFormats, KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { Adapters } from '../../../../../../../plugins/inspector/public'; +import { + ISearchSource, + fieldFormats, + KBN_FIELD_TYPES, +} from '../../../../../../../plugins/data/public'; import { buildOtherBucketAgg, @@ -68,7 +69,7 @@ const [orderAggSchema] = new Schemas([ }, ]).all; -const termsTitle = i18n.translate('common.ui.aggTypes.buckets.termsTitle', { +const termsTitle = i18n.translate('data.search.aggs.buckets.termsTitle', { defaultMessage: 'Terms', }); @@ -98,7 +99,7 @@ export const termsBucketAgg = new BucketAggType({ createFilter: createFilterTerms, postFlightRequest: async ( resp: any, - aggConfigs: AggConfigs, + aggConfigs: IAggConfigs, aggConfig: IBucketAggConfig, searchSource: ISearchSource, inspectorAdapters: Adapters, @@ -113,11 +114,11 @@ export const termsBucketAgg = new BucketAggType({ nestedSearchSource.setField('aggs', filterAgg); const request = inspectorAdapters.requests.start( - i18n.translate('common.ui.aggTypes.buckets.terms.otherBucketTitle', { + i18n.translate('data.search.aggs.buckets.terms.otherBucketTitle', { defaultMessage: 'Other bucket', }), { - description: i18n.translate('common.ui.aggTypes.buckets.terms.otherBucketDescription', { + description: i18n.translate('data.search.aggs.buckets.terms.otherBucketDescription', { defaultMessage: 'This request counts the number of documents that fall ' + 'outside the criterion of the data buckets.', @@ -212,13 +213,13 @@ export const termsBucketAgg = new BucketAggType({ default: 'desc', options: [ { - text: i18n.translate('common.ui.aggTypes.buckets.terms.orderDescendingTitle', { + text: i18n.translate('data.search.aggs.buckets.terms.orderDescendingTitle', { defaultMessage: 'Descending', }), value: 'desc', }, { - text: i18n.translate('common.ui.aggTypes.buckets.terms.orderAscendingTitle', { + text: i18n.translate('data.search.aggs.buckets.terms.orderAscendingTitle', { defaultMessage: 'Ascending', }), value: 'asc', @@ -238,10 +239,10 @@ export const termsBucketAgg = new BucketAggType({ { name: 'otherBucketLabel', type: 'string', - default: i18n.translate('common.ui.aggTypes.buckets.terms.otherBucketLabel', { + default: i18n.translate('data.search.aggs.buckets.terms.otherBucketLabel', { defaultMessage: 'Other', }), - displayName: i18n.translate('common.ui.aggTypes.otherBucket.labelForOtherBucketLabel', { + displayName: i18n.translate('data.search.aggs.otherBucket.labelForOtherBucketLabel', { defaultMessage: 'Label for other bucket', }), shouldShow: agg => agg.getParam('otherBucket'), @@ -254,13 +255,13 @@ export const termsBucketAgg = new BucketAggType({ }, { name: 'missingBucketLabel', - default: i18n.translate('common.ui.aggTypes.buckets.terms.missingBucketLabel', { + default: i18n.translate('data.search.aggs.buckets.terms.missingBucketLabel', { defaultMessage: 'Missing', description: `Default label used in charts when documents are missing a field. Visible when you create a chart with a terms aggregation and enable "Show missing values"`, }), type: 'string', - displayName: i18n.translate('common.ui.aggTypes.otherBucket.labelForMissingValuesLabel', { + displayName: i18n.translate('data.search.aggs.otherBucket.labelForMissingValuesLabel', { defaultMessage: 'Label for missing values', }), shouldShow: agg => agg.getParam('missingBucket'), @@ -268,7 +269,7 @@ export const termsBucketAgg = new BucketAggType({ }, { name: 'exclude', - displayName: i18n.translate('common.ui.aggTypes.buckets.terms.excludeLabel', { + displayName: i18n.translate('data.search.aggs.buckets.terms.excludeLabel', { defaultMessage: 'Exclude', }), type: 'string', @@ -278,7 +279,7 @@ export const termsBucketAgg = new BucketAggType({ }, { name: 'include', - displayName: i18n.translate('common.ui.aggTypes.buckets.terms.includeLabel', { + displayName: i18n.translate('data.search.aggs.buckets.terms.includeLabel', { defaultMessage: 'Include', }), type: 'string', diff --git a/src/legacy/ui/public/agg_types/filter/agg_type_filters.test.ts b/src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.test.ts similarity index 88% rename from src/legacy/ui/public/agg_types/filter/agg_type_filters.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.test.ts index 0344f304877f24..cc1288d339692f 100644 --- a/src/legacy/ui/public/agg_types/filter/agg_type_filters.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.test.ts @@ -17,9 +17,10 @@ * under the License. */ -import { IndexPattern } from '../../../../../plugins/data/public'; +import { IndexPattern } from '../../../../../../../plugins/data/public'; import { AggTypeFilters } from './agg_type_filters'; -import { AggConfig, AggType } from '..'; +import { AggConfig } from '..'; +import { IAggType } from '../types'; describe('AggTypeFilters', () => { let registry: AggTypeFilters; @@ -31,13 +32,13 @@ describe('AggTypeFilters', () => { }); it('should filter nothing without registered filters', async () => { - const aggTypes = [{ name: 'count' }, { name: 'sum' }] as AggType[]; + const aggTypes = [{ name: 'count' }, { name: 'sum' }] as IAggType[]; const filtered = registry.filter(aggTypes, indexPattern, aggConfig); expect(filtered).toEqual(aggTypes); }); it('should pass all aggTypes to the registered filter', async () => { - const aggTypes = [{ name: 'count' }, { name: 'sum' }] as AggType[]; + const aggTypes = [{ name: 'count' }, { name: 'sum' }] as IAggType[]; const filter = jest.fn(); registry.addFilter(filter); registry.filter(aggTypes, indexPattern, aggConfig); @@ -46,7 +47,7 @@ describe('AggTypeFilters', () => { }); it('should allow registered filters to filter out aggTypes', async () => { - const aggTypes = [{ name: 'count' }, { name: 'sum' }, { name: 'avg' }] as AggType[]; + const aggTypes = [{ name: 'count' }, { name: 'sum' }, { name: 'avg' }] as IAggType[]; let filtered = registry.filter(aggTypes, indexPattern, aggConfig); expect(filtered).toEqual(aggTypes); diff --git a/src/legacy/ui/public/agg_types/filter/agg_type_filters.ts b/src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.ts similarity index 92% rename from src/legacy/ui/public/agg_types/filter/agg_type_filters.ts rename to src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.ts index 2cc4a6e962214b..d3b38ce041d7ee 100644 --- a/src/legacy/ui/public/agg_types/filter/agg_type_filters.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/filter/agg_type_filters.ts @@ -17,12 +17,12 @@ * under the License. */ import { IndexPattern } from 'src/plugins/data/public'; -import { AggType, AggConfig } from '..'; +import { IAggConfig, IAggType } from '../types'; type AggTypeFilter = ( - aggType: AggType, + aggType: IAggType, indexPattern: IndexPattern, - aggConfig: AggConfig + aggConfig: IAggConfig ) => boolean; /** @@ -49,7 +49,7 @@ class AggTypeFilters { * @param aggConfig The aggConfig for which the returning list will be used. * @return A filtered list of the passed aggTypes. */ - public filter(aggTypes: AggType[], indexPattern: IndexPattern, aggConfig: AggConfig) { + public filter(aggTypes: IAggType[], indexPattern: IndexPattern, aggConfig: IAggConfig) { const allFilters = Array.from(this.filters); const allowedAggTypes = aggTypes.filter(aggType => { const isAggTypeAllowed = allFilters.every(filter => filter(aggType, indexPattern, aggConfig)); diff --git a/src/legacy/ui/public/agg_types/filter/index.ts b/src/legacy/core_plugins/data/public/search/aggs/filter/index.ts similarity index 100% rename from src/legacy/ui/public/agg_types/filter/index.ts rename to src/legacy/core_plugins/data/public/search/aggs/filter/index.ts diff --git a/src/legacy/ui/public/agg_types/filter/prop_filter.test.ts b/src/legacy/core_plugins/data/public/search/aggs/filter/prop_filter.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/filter/prop_filter.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/filter/prop_filter.test.ts diff --git a/src/legacy/ui/public/agg_types/filter/prop_filter.ts b/src/legacy/core_plugins/data/public/search/aggs/filter/prop_filter.ts similarity index 100% rename from src/legacy/ui/public/agg_types/filter/prop_filter.ts rename to src/legacy/core_plugins/data/public/search/aggs/filter/prop_filter.ts diff --git a/src/legacy/ui/public/agg_types/index.test.ts b/src/legacy/core_plugins/data/public/search/aggs/index.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/index.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/index.test.ts diff --git a/src/legacy/core_plugins/data/public/search/aggs/index.ts b/src/legacy/core_plugins/data/public/search/aggs/index.ts new file mode 100644 index 00000000000000..0fef7f38aae742 --- /dev/null +++ b/src/legacy/core_plugins/data/public/search/aggs/index.ts @@ -0,0 +1,52 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export { aggTypes } from './agg_types'; +export { AggType } from './agg_type'; +export { AggConfig } from './agg_config'; +export { AggConfigs } from './agg_configs'; +export { FieldParamType } from './param_types'; +export { MetricAggType } from './metrics/metric_agg_type'; +export { AggTypeFilters } from './filter'; +export { aggTypeFieldFilters, AggTypeFieldFilters } from './param_types/filter'; +export { + parentPipelineAggHelper, + parentPipelineType, +} from './metrics/lib/parent_pipeline_agg_helper'; +export { + siblingPipelineAggHelper, + siblingPipelineType, +} from './metrics/lib/sibling_pipeline_agg_helper'; + +// static code +export { AggParamType } from './param_types/agg'; +export { AggGroupNames, aggGroupNamesMap } from './agg_groups'; +export { intervalOptions } from './buckets/_interval_options'; // only used in Discover +export { isDateHistogramBucketAggConfig, setBounds } from './buckets/date_histogram'; +export { termsAggFilter } from './buckets/terms'; +export { isType, isStringType } from './buckets/migrate_include_exclude_format'; +export { CidrMask } from './buckets/lib/cidr_mask'; +export { convertDateRangeToString } from './buckets/date_range'; +export { convertIPRangeToString } from './buckets/ip_range'; +export { aggTypeFilters, propFilter } from './filter'; +export { OptionedParamType } from './param_types/optioned'; +export { isValidJson, isValidInterval } from './utils'; +export { BUCKET_TYPES } from './buckets/bucket_agg_types'; +export { METRIC_TYPES } from './metrics/metric_agg_types'; +export { ISchemas, Schema, Schemas } from './schemas'; diff --git a/src/legacy/ui/public/agg_types/metrics/avg.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/avg.ts similarity index 85% rename from src/legacy/ui/public/agg_types/metrics/avg.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/avg.ts index 0222a8e5432231..b80671a43d2afa 100644 --- a/src/legacy/ui/public/agg_types/metrics/avg.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/avg.ts @@ -20,9 +20,9 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const averageTitle = i18n.translate('common.ui.aggTypes.metrics.averageTitle', { +const averageTitle = i18n.translate('data.search.aggs.metrics.averageTitle', { defaultMessage: 'Average', }); @@ -30,7 +30,7 @@ export const avgMetricAgg = new MetricAggType({ name: METRIC_TYPES.AVG, title: averageTitle, makeLabel: aggConfig => { - return i18n.translate('common.ui.aggTypes.metrics.averageLabel', { + return i18n.translate('data.search.aggs.metrics.averageLabel', { defaultMessage: 'Average {field}', values: { field: aggConfig.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/bucket_avg.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_avg.ts similarity index 91% rename from src/legacy/ui/public/agg_types/metrics/bucket_avg.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_avg.ts index 7142546dbd494a..9fb28f8631bc63 100644 --- a/src/legacy/ui/public/agg_types/metrics/bucket_avg.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_avg.ts @@ -25,11 +25,11 @@ import { makeNestedLabel } from './lib/make_nested_label'; import { siblingPipelineAggHelper } from './lib/sibling_pipeline_agg_helper'; import { METRIC_TYPES } from './metric_agg_types'; -const overallAverageLabel = i18n.translate('common.ui.aggTypes.metrics.overallAverageLabel', { +const overallAverageLabel = i18n.translate('data.search.aggs.metrics.overallAverageLabel', { defaultMessage: 'overall average', }); -const averageBucketTitle = i18n.translate('common.ui.aggTypes.metrics.averageBucketTitle', { +const averageBucketTitle = i18n.translate('data.search.aggs.metrics.averageBucketTitle', { defaultMessage: 'Average Bucket', }); diff --git a/src/legacy/ui/public/agg_types/metrics/bucket_max.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_max.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/bucket_max.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_max.ts index aa5b0521709a55..83837f0de51146 100644 --- a/src/legacy/ui/public/agg_types/metrics/bucket_max.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_max.ts @@ -24,11 +24,11 @@ import { makeNestedLabel } from './lib/make_nested_label'; import { siblingPipelineAggHelper } from './lib/sibling_pipeline_agg_helper'; import { METRIC_TYPES } from './metric_agg_types'; -const overallMaxLabel = i18n.translate('common.ui.aggTypes.metrics.overallMaxLabel', { +const overallMaxLabel = i18n.translate('data.search.aggs.metrics.overallMaxLabel', { defaultMessage: 'overall max', }); -const maxBucketTitle = i18n.translate('common.ui.aggTypes.metrics.maxBucketTitle', { +const maxBucketTitle = i18n.translate('data.search.aggs.metrics.maxBucketTitle', { defaultMessage: 'Max Bucket', }); diff --git a/src/legacy/ui/public/agg_types/metrics/bucket_min.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_min.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/bucket_min.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_min.ts index b5c0b8865e1068..d96197693dc2ee 100644 --- a/src/legacy/ui/public/agg_types/metrics/bucket_min.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_min.ts @@ -22,11 +22,11 @@ import { makeNestedLabel } from './lib/make_nested_label'; import { siblingPipelineAggHelper } from './lib/sibling_pipeline_agg_helper'; import { METRIC_TYPES } from './metric_agg_types'; -const overallMinLabel = i18n.translate('common.ui.aggTypes.metrics.overallMinLabel', { +const overallMinLabel = i18n.translate('data.search.aggs.metrics.overallMinLabel', { defaultMessage: 'overall min', }); -const minBucketTitle = i18n.translate('common.ui.aggTypes.metrics.minBucketTitle', { +const minBucketTitle = i18n.translate('data.search.aggs.metrics.minBucketTitle', { defaultMessage: 'Min Bucket', }); diff --git a/src/legacy/ui/public/agg_types/metrics/bucket_sum.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_sum.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/bucket_sum.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_sum.ts index d4faa81c4041c7..1f9392c5bec359 100644 --- a/src/legacy/ui/public/agg_types/metrics/bucket_sum.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/bucket_sum.ts @@ -23,11 +23,11 @@ import { makeNestedLabel } from './lib/make_nested_label'; import { siblingPipelineAggHelper } from './lib/sibling_pipeline_agg_helper'; import { METRIC_TYPES } from './metric_agg_types'; -const overallSumLabel = i18n.translate('common.ui.aggTypes.metrics.overallSumLabel', { +const overallSumLabel = i18n.translate('data.search.aggs.metrics.overallSumLabel', { defaultMessage: 'overall sum', }); -const sumBucketTitle = i18n.translate('common.ui.aggTypes.metrics.sumBucketTitle', { +const sumBucketTitle = i18n.translate('data.search.aggs.metrics.sumBucketTitle', { defaultMessage: 'Sum Bucket', }); diff --git a/src/legacy/ui/public/agg_types/metrics/cardinality.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/cardinality.ts similarity index 86% rename from src/legacy/ui/public/agg_types/metrics/cardinality.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/cardinality.ts index c69ffae3b48716..147e9255210887 100644 --- a/src/legacy/ui/public/agg_types/metrics/cardinality.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/cardinality.ts @@ -21,9 +21,9 @@ import { i18n } from '@kbn/i18n'; import { npStart } from 'ui/new_platform'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const uniqueCountTitle = i18n.translate('common.ui.aggTypes.metrics.uniqueCountTitle', { +const uniqueCountTitle = i18n.translate('data.search.aggs.metrics.uniqueCountTitle', { defaultMessage: 'Unique Count', }); @@ -31,7 +31,7 @@ export const cardinalityMetricAgg = new MetricAggType({ name: METRIC_TYPES.CARDINALITY, title: uniqueCountTitle, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.metrics.uniqueCountLabel', { + return i18n.translate('data.search.aggs.metrics.uniqueCountLabel', { defaultMessage: 'Unique count of {field}', values: { field: aggConfig.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/count.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/count.ts similarity index 87% rename from src/legacy/ui/public/agg_types/metrics/count.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/count.ts index 22a939cd9a3fd0..14a9bd073ff2bc 100644 --- a/src/legacy/ui/public/agg_types/metrics/count.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/count.ts @@ -19,18 +19,18 @@ import { i18n } from '@kbn/i18n'; import { npStart } from 'ui/new_platform'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; export const countMetricAgg = new MetricAggType({ name: METRIC_TYPES.COUNT, - title: i18n.translate('common.ui.aggTypes.metrics.countTitle', { + title: i18n.translate('data.search.aggs.metrics.countTitle', { defaultMessage: 'Count', }), hasNoDsl: true, makeLabel() { - return i18n.translate('common.ui.aggTypes.metrics.countLabel', { + return i18n.translate('data.search.aggs.metrics.countLabel', { defaultMessage: 'Count', }); }, diff --git a/src/legacy/ui/public/agg_types/metrics/cumulative_sum.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/cumulative_sum.ts similarity index 88% rename from src/legacy/ui/public/agg_types/metrics/cumulative_sum.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/cumulative_sum.ts index bad2de8cb16dc1..a5d02459900bb0 100644 --- a/src/legacy/ui/public/agg_types/metrics/cumulative_sum.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/cumulative_sum.ts @@ -23,11 +23,11 @@ import { parentPipelineAggHelper } from './lib/parent_pipeline_agg_helper'; import { makeNestedLabel } from './lib/make_nested_label'; import { METRIC_TYPES } from './metric_agg_types'; -const cumulativeSumLabel = i18n.translate('common.ui.aggTypes.metrics.cumulativeSumLabel', { +const cumulativeSumLabel = i18n.translate('data.search.aggs.metrics.cumulativeSumLabel', { defaultMessage: 'cumulative sum', }); -const cumulativeSumTitle = i18n.translate('common.ui.aggTypes.metrics.cumulativeSumTitle', { +const cumulativeSumTitle = i18n.translate('data.search.aggs.metrics.cumulativeSumTitle', { defaultMessage: 'Cumulative Sum', }); diff --git a/src/legacy/ui/public/agg_types/metrics/derivative.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/derivative.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/derivative.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/derivative.ts index 42921621a29336..1169a527b0668c 100644 --- a/src/legacy/ui/public/agg_types/metrics/derivative.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/derivative.ts @@ -23,11 +23,11 @@ import { parentPipelineAggHelper } from './lib/parent_pipeline_agg_helper'; import { makeNestedLabel } from './lib/make_nested_label'; import { METRIC_TYPES } from './metric_agg_types'; -const derivativeLabel = i18n.translate('common.ui.aggTypes.metrics.derivativeLabel', { +const derivativeLabel = i18n.translate('data.search.aggs.metrics.derivativeLabel', { defaultMessage: 'derivative', }); -const derivativeTitle = i18n.translate('common.ui.aggTypes.metrics.derivativeTitle', { +const derivativeTitle = i18n.translate('data.search.aggs.metrics.derivativeTitle', { defaultMessage: 'Derivative', }); diff --git a/src/legacy/ui/public/agg_types/metrics/geo_bounds.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/geo_bounds.ts similarity index 84% rename from src/legacy/ui/public/agg_types/metrics/geo_bounds.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/geo_bounds.ts index b8ce03cdf11eca..53bc72f9ce1dac 100644 --- a/src/legacy/ui/public/agg_types/metrics/geo_bounds.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/geo_bounds.ts @@ -20,13 +20,13 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const geoBoundsTitle = i18n.translate('common.ui.aggTypes.metrics.geoBoundsTitle', { +const geoBoundsTitle = i18n.translate('data.search.aggs.metrics.geoBoundsTitle', { defaultMessage: 'Geo Bounds', }); -const geoBoundsLabel = i18n.translate('common.ui.aggTypes.metrics.geoBoundsLabel', { +const geoBoundsLabel = i18n.translate('data.search.aggs.metrics.geoBoundsLabel', { defaultMessage: 'Geo Bounds', }); diff --git a/src/legacy/ui/public/agg_types/metrics/geo_centroid.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/geo_centroid.ts similarity index 84% rename from src/legacy/ui/public/agg_types/metrics/geo_centroid.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/geo_centroid.ts index 5313e31796a5b8..a79b2b34ad1cad 100644 --- a/src/legacy/ui/public/agg_types/metrics/geo_centroid.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/geo_centroid.ts @@ -20,13 +20,13 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const geoCentroidTitle = i18n.translate('common.ui.aggTypes.metrics.geoCentroidTitle', { +const geoCentroidTitle = i18n.translate('data.search.aggs.metrics.geoCentroidTitle', { defaultMessage: 'Geo Centroid', }); -const geoCentroidLabel = i18n.translate('common.ui.aggTypes.metrics.geoCentroidLabel', { +const geoCentroidLabel = i18n.translate('data.search.aggs.metrics.geoCentroidLabel', { defaultMessage: 'Geo Centroid', }); diff --git a/src/legacy/ui/public/agg_types/metrics/lib/get_response_agg_config_class.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/get_response_agg_config_class.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/get_response_agg_config_class.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/get_response_agg_config_class.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/make_nested_label.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/make_nested_label.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/make_nested_label.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/make_nested_label.test.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/make_nested_label.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/make_nested_label.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/make_nested_label.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/make_nested_label.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/nested_agg_helpers.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/nested_agg_helpers.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/nested_agg_helpers.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/nested_agg_helpers.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/ordinal_suffix.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/ordinal_suffix.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/ordinal_suffix.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/ordinal_suffix.test.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/ordinal_suffix.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/ordinal_suffix.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/ordinal_suffix.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/ordinal_suffix.ts diff --git a/src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_helper.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts similarity index 94% rename from src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_helper.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts index 4d558e50304e6e..0d1b2472bb8e21 100644 --- a/src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_helper.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts @@ -36,7 +36,7 @@ const metricAggFilter = [ '!geo_centroid', ]; -const metricAggTitle = i18n.translate('common.ui.aggTypes.metrics.metricAggTitle', { +const metricAggTitle = i18n.translate('data.search.aggs.metrics.metricAggTitle', { defaultMessage: 'Metric agg', }); @@ -51,7 +51,7 @@ const [metricAggSchema] = new Schemas([ ]).all; const parentPipelineType = i18n.translate( - 'common.ui.aggTypes.metrics.parentPipelineAggregationsSubtypeTitle', + 'data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle', { defaultMessage: 'Parent Pipeline Aggregations', } diff --git a/src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_writer.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_writer.ts similarity index 94% rename from src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_writer.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_writer.ts index 684fe721a754a2..bc0359b2a213d6 100644 --- a/src/legacy/ui/public/agg_types/metrics/lib/parent_pipeline_agg_writer.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/parent_pipeline_agg_writer.ts @@ -17,13 +17,13 @@ * under the License. */ -import { AggConfigs } from '../../agg_configs'; +import { IAggConfigs } from '../../agg_configs'; import { IMetricAggConfig } from '../metric_agg_type'; export const parentPipelineAggWriter = ( agg: IMetricAggConfig, output: Record, - aggConfigs?: AggConfigs + aggConfigs?: IAggConfigs ): void => { const customMetric = agg.getParam('customMetric'); const metricAgg = agg.getParam('metricAgg'); diff --git a/src/legacy/ui/public/agg_types/metrics/lib/sibling_pipeline_agg_helper.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts similarity index 93% rename from src/legacy/ui/public/agg_types/metrics/lib/sibling_pipeline_agg_helper.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts index 9dd737bd6708e4..3956bda1812ad1 100644 --- a/src/legacy/ui/public/agg_types/metrics/lib/sibling_pipeline_agg_helper.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts @@ -47,7 +47,7 @@ const [metricAggSchema] = new Schemas([ { group: 'none', name: 'metricAgg', - title: i18n.translate('common.ui.aggTypes.metrics.metricAggTitle', { + title: i18n.translate('data.search.aggs.metrics.metricAggTitle', { defaultMessage: 'Metric agg', }), aggFilter: metricAggFilter, @@ -57,7 +57,7 @@ const [metricAggSchema] = new Schemas([ const [bucketAggSchema] = new Schemas([ { group: 'none', - title: i18n.translate('common.ui.aggTypes.metrics.bucketAggTitle', { + title: i18n.translate('data.search.aggs.metrics.bucketAggTitle', { defaultMessage: 'Bucket agg', }), name: 'bucketAgg', @@ -66,7 +66,7 @@ const [bucketAggSchema] = new Schemas([ ]).all; const siblingPipelineType = i18n.translate( - 'common.ui.aggTypes.metrics.siblingPipelineAggregationsSubtypeTitle', + 'data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle', { defaultMessage: 'Sibling pipeline aggregations', } diff --git a/src/legacy/ui/public/agg_types/metrics/lib/sibling_pipeline_agg_writer.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/lib/sibling_pipeline_agg_writer.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/lib/sibling_pipeline_agg_writer.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/lib/sibling_pipeline_agg_writer.ts diff --git a/src/legacy/ui/public/agg_types/metrics/max.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/max.ts similarity index 86% rename from src/legacy/ui/public/agg_types/metrics/max.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/max.ts index 5c43511acee72c..d561788936b51e 100644 --- a/src/legacy/ui/public/agg_types/metrics/max.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/max.ts @@ -20,9 +20,9 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const maxTitle = i18n.translate('common.ui.aggTypes.metrics.maxTitle', { +const maxTitle = i18n.translate('data.search.aggs.metrics.maxTitle', { defaultMessage: 'Max', }); @@ -30,7 +30,7 @@ export const maxMetricAgg = new MetricAggType({ name: METRIC_TYPES.MAX, title: maxTitle, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.metrics.maxLabel', { + return i18n.translate('data.search.aggs.metrics.maxLabel', { defaultMessage: 'Max {field}', values: { field: aggConfig.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/median.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/median.test.ts similarity index 95% rename from src/legacy/ui/public/agg_types/metrics/median.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/median.test.ts index 819c24f135cdc1..9affb0e3b28140 100644 --- a/src/legacy/ui/public/agg_types/metrics/median.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/median.test.ts @@ -17,13 +17,13 @@ * under the License. */ -import { AggConfigs } from '../agg_configs'; +import { AggConfigs, IAggConfigs } from '../agg_configs'; import { METRIC_TYPES } from './metric_agg_types'; jest.mock('ui/new_platform'); describe('AggTypeMetricMedianProvider class', () => { - let aggConfigs: AggConfigs; + let aggConfigs: IAggConfigs; beforeEach(() => { const field = { diff --git a/src/legacy/ui/public/agg_types/metrics/median.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/median.ts similarity index 88% rename from src/legacy/ui/public/agg_types/metrics/median.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/median.ts index 5792d4a7c2ba3b..be080aaa5ee6f3 100644 --- a/src/legacy/ui/public/agg_types/metrics/median.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/median.ts @@ -22,9 +22,9 @@ import { METRIC_TYPES } from './metric_agg_types'; // @ts-ignore import { percentilesMetricAgg } from './percentiles'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const medianTitle = i18n.translate('common.ui.aggTypes.metrics.medianTitle', { +const medianTitle = i18n.translate('data.search.aggs.metrics.medianTitle', { defaultMessage: 'Median', }); @@ -33,7 +33,7 @@ export const medianMetricAgg = new MetricAggType({ dslName: 'percentiles', title: medianTitle, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.metrics.medianLabel', { + return i18n.translate('data.search.aggs.metrics.medianLabel', { defaultMessage: 'Median {field}', values: { field: aggConfig.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/metric_agg_type.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts similarity index 92% rename from src/legacy/ui/public/agg_types/metrics/metric_agg_type.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts index 5cd3dffb10b9db..e7d286c187ef87 100644 --- a/src/legacy/ui/public/agg_types/metrics/metric_agg_type.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts @@ -23,7 +23,7 @@ import { AggType, AggTypeConfig } from '../agg_type'; import { AggParamType } from '../param_types/agg'; import { AggConfig } from '../agg_config'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; export interface IMetricAggConfig extends AggConfig { type: InstanceType; @@ -43,6 +43,9 @@ interface MetricAggTypeConfig subtype?: string; } +// TODO need to make a more explicit interface for this +export type IMetricAggType = MetricAggType; + export class MetricAggType extends AggType< TMetricAggConfig, MetricAggParam @@ -83,7 +86,7 @@ export class MetricAggType { const field = { diff --git a/src/legacy/ui/public/agg_types/metrics/percentile_ranks.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentile_ranks.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/percentile_ranks.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/percentile_ranks.ts index cbd46e3f5b28d4..38b47a7e97d2f2 100644 --- a/src/legacy/ui/public/agg_types/metrics/percentile_ranks.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentile_ranks.ts @@ -24,7 +24,7 @@ import { getResponseAggConfigClass, IResponseAggConfig } from './lib/get_respons import { getPercentileValue } from './percentiles_get_value'; import { METRIC_TYPES } from './metric_agg_types'; -import { fieldFormats, KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { fieldFormats, KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; // required by the values editor @@ -41,7 +41,7 @@ const valueProps = { const customLabel = this.getParam('customLabel'); const label = customLabel || this.getFieldDisplayName(); - return i18n.translate('common.ui.aggTypes.metrics.percentileRanks.valuePropsLabel', { + return i18n.translate('data.search.aggs.metrics.percentileRanks.valuePropsLabel', { defaultMessage: 'Percentile rank {format} of "{label}"', values: { format: format.convert(this.key, 'text'), label }, }); @@ -50,11 +50,11 @@ const valueProps = { export const percentileRanksMetricAgg = new MetricAggType({ name: METRIC_TYPES.PERCENTILE_RANKS, - title: i18n.translate('common.ui.aggTypes.metrics.percentileRanksTitle', { + title: i18n.translate('data.search.aggs.metrics.percentileRanksTitle', { defaultMessage: 'Percentile Ranks', }), makeLabel(agg) { - return i18n.translate('common.ui.aggTypes.metrics.percentileRanksLabel', { + return i18n.translate('data.search.aggs.metrics.percentileRanksLabel', { defaultMessage: 'Percentile ranks of {field}', values: { field: agg.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/percentiles.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.test.ts similarity index 95% rename from src/legacy/ui/public/agg_types/metrics/percentiles.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.test.ts index c9f4bcc3862a03..dd1aaca973e473 100644 --- a/src/legacy/ui/public/agg_types/metrics/percentiles.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.test.ts @@ -18,13 +18,13 @@ */ import { IPercentileAggConfig, percentilesMetricAgg } from './percentiles'; -import { AggConfigs } from '../agg_configs'; +import { AggConfigs, IAggConfigs } from '../agg_configs'; import { METRIC_TYPES } from './metric_agg_types'; jest.mock('ui/new_platform'); describe('AggTypesMetricsPercentilesProvider class', () => { - let aggConfigs: AggConfigs; + let aggConfigs: IAggConfigs; beforeEach(() => { const field = { diff --git a/src/legacy/ui/public/agg_types/metrics/percentiles.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.ts similarity index 88% rename from src/legacy/ui/public/agg_types/metrics/percentiles.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.ts index 040324d8da5df6..39dc0d0f181e92 100644 --- a/src/legacy/ui/public/agg_types/metrics/percentiles.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles.ts @@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; import { getResponseAggConfigClass, IResponseAggConfig } from './lib/get_response_agg_config_class'; import { getPercentileValue } from './percentiles_get_value'; @@ -36,7 +36,7 @@ const valueProps = { const customLabel = this.getParam('customLabel'); const label = customLabel || this.getFieldDisplayName(); - return i18n.translate('common.ui.aggTypes.metrics.percentiles.valuePropsLabel', { + return i18n.translate('data.search.aggs.metrics.percentiles.valuePropsLabel', { defaultMessage: '{percentile} percentile of {label}', values: { percentile: ordinalSuffix(this.key), label }, }); @@ -45,11 +45,11 @@ const valueProps = { export const percentilesMetricAgg = new MetricAggType({ name: METRIC_TYPES.PERCENTILES, - title: i18n.translate('common.ui.aggTypes.metrics.percentilesTitle', { + title: i18n.translate('data.search.aggs.metrics.percentilesTitle', { defaultMessage: 'Percentiles', }), makeLabel(agg) { - return i18n.translate('common.ui.aggTypes.metrics.percentilesLabel', { + return i18n.translate('data.search.aggs.metrics.percentilesLabel', { defaultMessage: 'Percentiles of {field}', values: { field: agg.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/percentiles_get_value.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles_get_value.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/percentiles_get_value.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/percentiles_get_value.ts diff --git a/src/legacy/ui/public/agg_types/metrics/serial_diff.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/serial_diff.ts similarity index 89% rename from src/legacy/ui/public/agg_types/metrics/serial_diff.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/serial_diff.ts index bb5431fbbefd9f..5af6e1952d1357 100644 --- a/src/legacy/ui/public/agg_types/metrics/serial_diff.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/serial_diff.ts @@ -23,11 +23,11 @@ import { parentPipelineAggHelper } from './lib/parent_pipeline_agg_helper'; import { makeNestedLabel } from './lib/make_nested_label'; import { METRIC_TYPES } from './metric_agg_types'; -const serialDiffTitle = i18n.translate('common.ui.aggTypes.metrics.serialDiffTitle', { +const serialDiffTitle = i18n.translate('data.search.aggs.metrics.serialDiffTitle', { defaultMessage: 'Serial Diff', }); -const serialDiffLabel = i18n.translate('common.ui.aggTypes.metrics.serialDiffLabel', { +const serialDiffLabel = i18n.translate('data.search.aggs.metrics.serialDiffLabel', { defaultMessage: 'serial diff', }); diff --git a/src/legacy/ui/public/agg_types/metrics/sibling_pipeline.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/sibling_pipeline.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts diff --git a/src/legacy/ui/public/agg_types/metrics/std_deviation.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/std_deviation.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/metrics/std_deviation.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/std_deviation.test.ts diff --git a/src/legacy/ui/public/agg_types/metrics/std_deviation.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/std_deviation.ts similarity index 85% rename from src/legacy/ui/public/agg_types/metrics/std_deviation.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/std_deviation.ts index b2e6d3b3ca4d0f..caf3bb71dd89a6 100644 --- a/src/legacy/ui/public/agg_types/metrics/std_deviation.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/std_deviation.ts @@ -22,7 +22,7 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; import { getResponseAggConfigClass, IResponseAggConfig } from './lib/get_response_agg_config_class'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; interface ValProp { valProp: string[]; @@ -51,7 +51,7 @@ const responseAggConfigProps = { keyedDetails(this: IStdDevAggConfig, customLabel: string, fieldDisplayName: string) { const label = customLabel || - i18n.translate('common.ui.aggTypes.metrics.standardDeviation.keyDetailsLabel', { + i18n.translate('data.search.aggs.metrics.standardDeviation.keyDetailsLabel', { defaultMessage: 'Standard Deviation of {fieldDisplayName}', values: { fieldDisplayName }, }); @@ -59,14 +59,14 @@ const responseAggConfigProps = { return { std_lower: { valProp: ['std_deviation_bounds', 'lower'], - title: i18n.translate('common.ui.aggTypes.metrics.standardDeviation.lowerKeyDetailsTitle', { + title: i18n.translate('data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle', { defaultMessage: 'Lower {label}', values: { label }, }), }, std_upper: { valProp: ['std_deviation_bounds', 'upper'], - title: i18n.translate('common.ui.aggTypes.metrics.standardDeviation.upperKeyDetailsTitle', { + title: i18n.translate('data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle', { defaultMessage: 'Upper {label}', values: { label }, }), @@ -78,11 +78,11 @@ const responseAggConfigProps = { export const stdDeviationMetricAgg = new MetricAggType({ name: METRIC_TYPES.STD_DEV, dslName: 'extended_stats', - title: i18n.translate('common.ui.aggTypes.metrics.standardDeviationTitle', { + title: i18n.translate('data.search.aggs.metrics.standardDeviationTitle', { defaultMessage: 'Standard Deviation', }), makeLabel(agg) { - return i18n.translate('common.ui.aggTypes.metrics.standardDeviationLabel', { + return i18n.translate('data.search.aggs.metrics.standardDeviationLabel', { defaultMessage: 'Standard Deviation of {field}', values: { field: agg.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/sum.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/sum.ts similarity index 86% rename from src/legacy/ui/public/agg_types/metrics/sum.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/sum.ts index ce79c761ce7994..f3450ba1700c81 100644 --- a/src/legacy/ui/public/agg_types/metrics/sum.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/sum.ts @@ -20,9 +20,9 @@ import { i18n } from '@kbn/i18n'; import { MetricAggType } from './metric_agg_type'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; -const sumTitle = i18n.translate('common.ui.aggTypes.metrics.sumTitle', { +const sumTitle = i18n.translate('data.search.aggs.metrics.sumTitle', { defaultMessage: 'Sum', }); @@ -30,7 +30,7 @@ export const sumMetricAgg = new MetricAggType({ name: METRIC_TYPES.SUM, title: sumTitle, makeLabel(aggConfig) { - return i18n.translate('common.ui.aggTypes.metrics.sumLabel', { + return i18n.translate('data.search.aggs.metrics.sumLabel', { defaultMessage: 'Sum of {field}', values: { field: aggConfig.getFieldDisplayName() }, }); diff --git a/src/legacy/ui/public/agg_types/metrics/top_hit.test.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.test.ts similarity index 99% rename from src/legacy/ui/public/agg_types/metrics/top_hit.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.test.ts index 3e861c052d3671..a973de4fe8659e 100644 --- a/src/legacy/ui/public/agg_types/metrics/top_hit.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.test.ts @@ -21,7 +21,7 @@ import { dropRight, last } from 'lodash'; import { topHitMetricAgg } from './top_hit'; import { AggConfigs } from '../agg_configs'; import { IMetricAggConfig } from './metric_agg_type'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/metrics/top_hit.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts similarity index 87% rename from src/legacy/ui/public/agg_types/metrics/top_hit.ts rename to src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts index 43fe33bdebeb98..81bd14ded75b06 100644 --- a/src/legacy/ui/public/agg_types/metrics/top_hit.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts @@ -22,7 +22,7 @@ import { i18n } from '@kbn/i18n'; import { IMetricAggConfig, MetricAggType } from './metric_agg_type'; import { aggTypeFieldFilters } from '../param_types/filter'; import { METRIC_TYPES } from './metric_agg_types'; -import { KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; // @ts-ignore import { wrapWithInlineComp } from '../buckets/inline_comp_wrapper'; @@ -46,14 +46,14 @@ aggTypeFieldFilters.addFilter((field, aggConfig) => { export const topHitMetricAgg = new MetricAggType({ name: METRIC_TYPES.TOP_HITS, - title: i18n.translate('common.ui.aggTypes.metrics.topHitTitle', { + title: i18n.translate('data.search.aggs.metrics.topHitTitle', { defaultMessage: 'Top Hit', }), makeLabel(aggConfig) { - const lastPrefixLabel = i18n.translate('common.ui.aggTypes.metrics.topHit.lastPrefixLabel', { + const lastPrefixLabel = i18n.translate('data.search.aggs.metrics.topHit.lastPrefixLabel', { defaultMessage: 'Last', }); - const firstPrefixLabel = i18n.translate('common.ui.aggTypes.metrics.topHit.firstPrefixLabel', { + const firstPrefixLabel = i18n.translate('data.search.aggs.metrics.topHit.firstPrefixLabel', { defaultMessage: 'First', }); @@ -106,7 +106,7 @@ export const topHitMetricAgg = new MetricAggType({ type: 'optioned', options: [ { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.minLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.minLabel', { defaultMessage: 'Min', }), isCompatible: isNumericFieldSelected, @@ -114,7 +114,7 @@ export const topHitMetricAgg = new MetricAggType({ value: 'min', }, { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.maxLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.maxLabel', { defaultMessage: 'Max', }), isCompatible: isNumericFieldSelected, @@ -122,7 +122,7 @@ export const topHitMetricAgg = new MetricAggType({ value: 'max', }, { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.sumLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.sumLabel', { defaultMessage: 'Sum', }), isCompatible: isNumericFieldSelected, @@ -130,7 +130,7 @@ export const topHitMetricAgg = new MetricAggType({ value: 'sum', }, { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.averageLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.averageLabel', { defaultMessage: 'Average', }), isCompatible: isNumericFieldSelected, @@ -138,7 +138,7 @@ export const topHitMetricAgg = new MetricAggType({ value: 'average', }, { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.concatenateLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.concatenateLabel', { defaultMessage: 'Concatenate', }), isCompatible(aggConfig: IMetricAggConfig) { @@ -174,13 +174,13 @@ export const topHitMetricAgg = new MetricAggType({ default: 'desc', options: [ { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.descendingLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.descendingLabel', { defaultMessage: 'Descending', }), value: 'desc', }, { - text: i18n.translate('common.ui.aggTypes.metrics.topHit.ascendingLabel', { + text: i18n.translate('data.search.aggs.metrics.topHit.ascendingLabel', { defaultMessage: 'Ascending', }), value: 'asc', diff --git a/src/legacy/ui/public/agg_types/param_types/agg.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/agg.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/agg.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/agg.ts diff --git a/src/legacy/ui/public/agg_types/param_types/base.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/base.ts similarity index 94% rename from src/legacy/ui/public/agg_types/param_types/base.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/base.ts index 15ec44e2ca5ae7..1523cb03eb966c 100644 --- a/src/legacy/ui/public/agg_types/param_types/base.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/base.ts @@ -17,9 +17,9 @@ * under the License. */ -import { AggConfigs } from '../agg_configs'; +import { IAggConfigs } from '../agg_configs'; import { AggConfig } from '../agg_config'; -import { FetchOptions, ISearchSource } from '../../../../../plugins/data/public'; +import { FetchOptions, ISearchSource } from '../../../../../../../plugins/data/public'; export class BaseParamType { name: string; @@ -31,7 +31,7 @@ export class BaseParamType { write: ( aggConfig: TAggConfig, output: Record, - aggConfigs?: AggConfigs, + aggConfigs?: IAggConfigs, locals?: Record ) => void; serialize: (value: any, aggConfig?: TAggConfig) => any; diff --git a/src/legacy/ui/public/agg_types/param_types/field.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts similarity index 98% rename from src/legacy/ui/public/agg_types/param_types/field.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts index 9cea2934d74598..d0fa711d89c70f 100644 --- a/src/legacy/ui/public/agg_types/param_types/field.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts @@ -19,7 +19,7 @@ import { BaseParamType } from './base'; import { FieldParamType } from './field'; -import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '../../../../../plugins/data/public'; +import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; jest.mock('ui/new_platform'); diff --git a/src/legacy/ui/public/agg_types/param_types/field.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts similarity index 83% rename from src/legacy/ui/public/agg_types/param_types/field.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts index d01e059c6c616b..c41c159ad0f78a 100644 --- a/src/legacy/ui/public/agg_types/param_types/field.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts @@ -19,16 +19,18 @@ // @ts-ignore import { i18n } from '@kbn/i18n'; +import { npStart } from 'ui/new_platform'; import { AggConfig } from '../agg_config'; -import { SavedObjectNotFound } from '../../../../../plugins/kibana_utils/public'; +import { SavedObjectNotFound } from '../../../../../../../plugins/kibana_utils/public'; import { BaseParamType } from './base'; -import { npStart } from '../../new_platform'; import { propFilter } from '../filter'; -import { Field, IFieldList } from '../../../../../plugins/data/public'; -import { isNestedField } from '../../../../../plugins/data/public'; +import { Field, IFieldList, isNestedField } from '../../../../../../../plugins/data/public'; const filterByType = propFilter('type'); +// TODO need to make a more explicit interface for this +export type IFieldParamType = FieldParamType; + export class FieldParamType extends BaseParamType { required = true; scriptable = true; @@ -47,15 +49,12 @@ export class FieldParamType extends BaseParamType { if (!field) { throw new TypeError( - i18n.translate( - 'common.ui.aggTypes.paramTypes.field.requiredFieldParameterErrorMessage', - { - defaultMessage: '{fieldParameter} is a required parameter', - values: { - fieldParameter: '"field"', - }, - } - ) + i18n.translate('data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage', { + defaultMessage: '{fieldParameter} is a required parameter', + values: { + fieldParameter: '"field"', + }, + }) ); } @@ -91,7 +90,7 @@ export class FieldParamType extends BaseParamType { if (!validField) { npStart.core.notifications.toasts.addDanger( i18n.translate( - 'common.ui.aggTypes.paramTypes.field.invalidSavedFieldParameterErrorMessage', + 'data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage', { defaultMessage: 'Saved {fieldParameter} parameter is now invalid. Please select a new field.', diff --git a/src/legacy/ui/public/agg_types/param_types/filter/field_filters.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/filter/field_filters.test.ts similarity index 97% rename from src/legacy/ui/public/agg_types/param_types/filter/field_filters.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/filter/field_filters.test.ts index 384c1424080123..fb53e72b85c60c 100644 --- a/src/legacy/ui/public/agg_types/param_types/filter/field_filters.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/filter/field_filters.test.ts @@ -20,7 +20,7 @@ import { IndexedArray } from 'ui/indexed_array'; import { AggTypeFieldFilters } from './field_filters'; import { AggConfig } from '../../agg_config'; -import { Field } from '../../../../../../plugins/data/public'; +import { Field } from '../../../../../../../../plugins/data/public'; describe('AggTypeFieldFilters', () => { let registry: AggTypeFieldFilters; diff --git a/src/legacy/ui/public/agg_types/param_types/filter/field_filters.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/filter/field_filters.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/filter/field_filters.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/filter/field_filters.ts diff --git a/src/legacy/ui/public/agg_types/param_types/filter/index.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/filter/index.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/filter/index.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/filter/index.ts diff --git a/src/legacy/ui/public/agg_types/param_types/index.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/index.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/index.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/index.ts diff --git a/src/legacy/ui/public/agg_types/param_types/json.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/json.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/json.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/json.test.ts diff --git a/src/legacy/ui/public/agg_types/param_types/json.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/json.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/json.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/json.ts diff --git a/src/legacy/ui/public/agg_types/param_types/optioned.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/optioned.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/optioned.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/optioned.test.ts diff --git a/src/legacy/ui/public/agg_types/param_types/optioned.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/optioned.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/optioned.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/optioned.ts diff --git a/src/legacy/ui/public/agg_types/param_types/string.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/string.test.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/string.test.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/string.test.ts diff --git a/src/legacy/ui/public/agg_types/param_types/string.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/string.ts similarity index 100% rename from src/legacy/ui/public/agg_types/param_types/string.ts rename to src/legacy/core_plugins/data/public/search/aggs/param_types/string.ts diff --git a/src/legacy/ui/public/agg_types/schemas.ts b/src/legacy/core_plugins/data/public/search/aggs/schemas.ts similarity index 98% rename from src/legacy/ui/public/agg_types/schemas.ts rename to src/legacy/core_plugins/data/public/search/aggs/schemas.ts index 05723cac1869df..1aa5ebe08656b1 100644 --- a/src/legacy/ui/public/agg_types/schemas.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/schemas.ts @@ -45,7 +45,7 @@ export interface Schema { aggSettings?: any; } -class Schemas { +export class Schemas { // @ts-ignore all: IndexedArray; @@ -103,5 +103,3 @@ class Schemas { .commit(); } } - -export { Schemas }; diff --git a/src/legacy/core_plugins/data/public/search/aggs/types.ts b/src/legacy/core_plugins/data/public/search/aggs/types.ts new file mode 100644 index 00000000000000..2c918abf99fcaf --- /dev/null +++ b/src/legacy/core_plugins/data/public/search/aggs/types.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export { IAggConfig } from './agg_config'; +export { IAggConfigs } from './agg_configs'; +export { IAggType } from './agg_type'; +export { AggParam, AggParamOption } from './agg_params'; +export { IFieldParamType } from './param_types'; +export { IMetricAggType } from './metrics/metric_agg_type'; +export { DateRangeKey } from './buckets/date_range'; +export { IpRangeKey } from './buckets/ip_range'; +export { OptionedValueProp, OptionedParamEditorProps } from './param_types/optioned'; +export { ISchemas } from './schemas'; diff --git a/src/legacy/ui/public/agg_types/utils.test.tsx b/src/legacy/core_plugins/data/public/search/aggs/utils.test.tsx similarity index 100% rename from src/legacy/ui/public/agg_types/utils.test.tsx rename to src/legacy/core_plugins/data/public/search/aggs/utils.test.tsx diff --git a/src/legacy/ui/public/agg_types/utils.ts b/src/legacy/core_plugins/data/public/search/aggs/utils.ts similarity index 92% rename from src/legacy/ui/public/agg_types/utils.ts rename to src/legacy/core_plugins/data/public/search/aggs/utils.ts index e382f821b31a90..62f07ce44ab46e 100644 --- a/src/legacy/ui/public/agg_types/utils.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/utils.ts @@ -17,8 +17,8 @@ * under the License. */ -import { isValidEsInterval } from '../../../core_plugins/data/common/parse_es_interval/is_valid_es_interval'; -import { leastCommonInterval } from '../vis/lib/least_common_interval'; +import { leastCommonInterval } from 'ui/vis/lib/least_common_interval'; +import { isValidEsInterval } from '../../../common'; /** * Check a string if it's a valid JSON. diff --git a/src/legacy/core_plugins/data/public/search/expressions/esaggs.ts b/src/legacy/core_plugins/data/public/search/expressions/esaggs.ts index b4ea2cd378d61b..43927337ce5748 100644 --- a/src/legacy/core_plugins/data/public/search/expressions/esaggs.ts +++ b/src/legacy/core_plugins/data/public/search/expressions/esaggs.ts @@ -19,7 +19,7 @@ import { get, has } from 'lodash'; import { i18n } from '@kbn/i18n'; -import { AggConfigs } from 'ui/agg_types/agg_configs'; +import { AggConfigs, IAggConfigs } from 'ui/agg_types'; import { createFormat } from 'ui/visualize/loader/pipeline_helpers/utilities'; import { KibanaContext, @@ -50,7 +50,7 @@ import { serializeAggConfig } from './utils'; export interface RequestHandlerParams { searchSource: ISearchSource; - aggs: AggConfigs; + aggs: IAggConfigs; timeRange?: TimeRange; query?: Query; filters?: esFilters.Filter[]; diff --git a/src/legacy/core_plugins/data/public/search/expressions/utils.ts b/src/legacy/core_plugins/data/public/search/expressions/utils.ts index 4f104f2569a981..f0958ba20820f5 100644 --- a/src/legacy/core_plugins/data/public/search/expressions/utils.ts +++ b/src/legacy/core_plugins/data/public/search/expressions/utils.ts @@ -17,12 +17,12 @@ * under the License. */ -import { AggConfig } from 'ui/agg_types/agg_config'; -import { AggConfigs } from '../../../../../ui/public/agg_types/agg_configs'; +import { AggConfigs } from '../aggs'; +import { IAggConfig } from '../aggs/types'; import { KibanaDatatableColumnMeta } from '../../../../../../plugins/expressions/common/expression_types'; import { IndexPattern } from '../../../../../../plugins/data/public'; -export const serializeAggConfig = (aggConfig: AggConfig): KibanaDatatableColumnMeta => { +export const serializeAggConfig = (aggConfig: IAggConfig): KibanaDatatableColumnMeta => { return { type: aggConfig.type.name, indexPatternId: aggConfig.getIndexPattern().id, diff --git a/src/legacy/core_plugins/data/public/search/index.ts b/src/legacy/core_plugins/data/public/search/index.ts index c975d5772e0a8b..90e191b769a8df 100644 --- a/src/legacy/core_plugins/data/public/search/index.ts +++ b/src/legacy/core_plugins/data/public/search/index.ts @@ -17,5 +17,6 @@ * under the License. */ +export * from './aggs'; export { getRequestInspectorStats, getResponseInspectorStats } from './utils'; export { serializeAggConfig } from './expressions/utils'; diff --git a/src/legacy/core_plugins/data/public/search/search_service.ts b/src/legacy/core_plugins/data/public/search/search_service.ts new file mode 100644 index 00000000000000..45f9ff17328adb --- /dev/null +++ b/src/legacy/core_plugins/data/public/search/search_service.ts @@ -0,0 +1,93 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { CoreSetup, CoreStart } from '../../../../../core/public'; +import { + aggTypes, + AggType, + AggConfig, + AggConfigs, + FieldParamType, + MetricAggType, + aggTypeFieldFilters, + setBounds, + parentPipelineAggHelper, + siblingPipelineAggHelper, +} from './aggs'; + +interface AggsSetup { + types: typeof aggTypes; +} + +interface AggsStart { + types: typeof aggTypes; + AggConfig: typeof AggConfig; + AggConfigs: typeof AggConfigs; + AggType: typeof AggType; + aggTypeFieldFilters: typeof aggTypeFieldFilters; + FieldParamType: typeof FieldParamType; + MetricAggType: typeof MetricAggType; + parentPipelineAggHelper: typeof parentPipelineAggHelper; + siblingPipelineAggHelper: typeof siblingPipelineAggHelper; + setBounds: typeof setBounds; +} + +export interface SearchSetup { + aggs: AggsSetup; +} + +export interface SearchStart { + aggs: AggsStart; +} + +/** + * The contract provided here is a new platform shim for ui/agg_types. + * + * Once it has been refactored to work with new platform services, + * it will move into the existing search service in src/plugins/data/public/search + */ +export class SearchService { + public setup(core: CoreSetup): SearchSetup { + return { + aggs: { + types: aggTypes, // TODO convert to registry + // TODO add other items as needed + }, + }; + } + + public start(core: CoreStart): SearchStart { + return { + aggs: { + types: aggTypes, // TODO convert to registry + AggConfig, // TODO make static + AggConfigs, + AggType, + aggTypeFieldFilters, + FieldParamType, + MetricAggType, + parentPipelineAggHelper, // TODO make static + siblingPipelineAggHelper, // TODO make static + setBounds, // TODO make static + }, + }; + } + + public stop() {} +} diff --git a/src/legacy/core_plugins/data/public/search/types.ts b/src/legacy/core_plugins/data/public/search/types.ts index 140ceea4870997..47ea1d168f379f 100644 --- a/src/legacy/core_plugins/data/public/search/types.ts +++ b/src/legacy/core_plugins/data/public/search/types.ts @@ -17,4 +17,5 @@ * under the License. */ +export * from './aggs/types'; export * from './utils/types'; diff --git a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts index d1e1dafe7c8783..f698a2ee361e08 100644 --- a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts +++ b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts @@ -55,7 +55,7 @@ export { buildVislibDimensions } from '../../../visualizations/public'; export { callAfterBindingsWorkaround } from 'ui/compat'; export { getRequestInspectorStats, getResponseInspectorStats } from '../../../data/public'; // @ts-ignore -export { intervalOptions } from 'ui/agg_types/buckets/_interval_options'; +export { intervalOptions } from 'ui/agg_types'; // @ts-ignore export { migrateLegacyQuery } from 'ui/utils/migrate_legacy_query'; export { SavedObjectSaveModal } from 'ui/saved_objects/components/saved_object_save_modal'; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg.test.tsx index 81c866923232e8..f5ce55e82967d6 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg.test.tsx @@ -24,7 +24,7 @@ import { act } from 'react-dom/test-utils'; import { IndexPattern } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { AggType, AggGroupNames } from '../legacy_imports'; +import { IAggType, AggGroupNames } from '../legacy_imports'; import { DefaultEditorAgg, DefaultEditorAggProps } from './agg'; import { DefaultEditorAggParams } from './agg_params'; import { AGGS_ACTION_KEYS } from './agg_group_state'; @@ -117,7 +117,7 @@ describe('DefaultEditorAgg component', () => { (defaultProps.agg as any).brandNew = false; defaultProps.agg.type = { makeLabel: () => 'Agg description', - } as AggType; + } as IAggType; const comp = mount(); act(() => { @@ -258,11 +258,11 @@ describe('DefaultEditorAgg component', () => { it('should disable min_doc_count when agg is histogram or date_histogram', () => { defaultProps.agg.type = { name: 'histogram', - } as AggType; + } as IAggType; const compHistogram = shallow(); defaultProps.agg.type = { name: 'date_histogram', - } as AggType; + } as IAggType; const compDateHistogram = shallow(); expect(compHistogram.find(DefaultEditorAggParams).props()).toHaveProperty('disabledParams', [ @@ -276,7 +276,7 @@ describe('DefaultEditorAgg component', () => { it('should set error when agg is not histogram or date_histogram', () => { defaultProps.agg.type = { name: 'aggType', - } as AggType; + } as IAggType; const comp = shallow(); expect(comp.find(DefaultEditorAggParams).prop('aggError')).toBeDefined(); @@ -285,7 +285,7 @@ describe('DefaultEditorAgg component', () => { it('should set min_doc_count to true when agg type was changed to histogram', () => { defaultProps.agg.type = { name: 'aggType', - } as AggType; + } as IAggType; const comp = mount(); comp.setProps({ agg: { ...defaultProps.agg, type: { name: 'histogram' } } }); @@ -299,7 +299,7 @@ describe('DefaultEditorAgg component', () => { it('should set min_doc_count to 0 when agg type was changed to date_histogram', () => { defaultProps.agg.type = { name: 'aggType', - } as AggType; + } as IAggType; const comp = mount(); comp.setProps({ agg: { ...defaultProps.agg, type: { name: 'date_histogram' } } }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx index 871bd0cdf6811f..5450c29450bac6 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx @@ -28,7 +28,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { AggConfig } from '../legacy_imports'; +import { IAggConfig } from '../legacy_imports'; import { DefaultEditorAggParams } from './agg_params'; import { DefaultEditorAggCommonProps } from './agg_common_props'; import { AGGS_ACTION_KEYS, AggsAction } from './agg_group_state'; @@ -36,7 +36,7 @@ import { RowsOrColumnsControl } from './controls/rows_or_columns'; import { RadiusRatioOptionControl } from './controls/radius_ratio_option'; export interface DefaultEditorAggProps extends DefaultEditorAggCommonProps { - agg: AggConfig; + agg: IAggConfig; aggIndex: number; aggIsTooLow: boolean; dragHandleProps: {} | null; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_add.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_add.tsx index f5175126c31c14..d8df5b315fca00 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_add.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_add.tsx @@ -29,10 +29,10 @@ import { } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -import { AggConfig, AggGroupNames, Schema } from '../legacy_imports'; +import { IAggConfig, AggGroupNames, Schema } from '../legacy_imports'; interface DefaultEditorAggAddProps { - group?: AggConfig[]; + group?: IAggConfig[]; groupName: string; schemas: Schema[]; stats: { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_common_props.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_common_props.ts index 8d803810b647a8..17d2c18d2532c8 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_common_props.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_common_props.ts @@ -18,25 +18,25 @@ */ import { VisState, VisParams } from 'src/legacy/core_plugins/visualizations/public'; -import { AggType, AggConfig, AggGroupNames, Schema } from '../legacy_imports'; +import { IAggType, IAggConfig, AggGroupNames, Schema } from '../legacy_imports'; -type AggId = AggConfig['id']; -type AggParams = AggConfig['params']; +type AggId = IAggConfig['id']; +type AggParams = IAggConfig['params']; export type AddSchema = (schemas: Schema) => void; -export type ReorderAggs = (sourceAgg: AggConfig, destinationAgg: AggConfig) => void; +export type ReorderAggs = (sourceAgg: IAggConfig, destinationAgg: IAggConfig) => void; export interface DefaultEditorCommonProps { formIsTouched: boolean; groupName: AggGroupNames; - metricAggs: AggConfig[]; + metricAggs: IAggConfig[]; state: VisState; setAggParamValue: ( aggId: AggId, paramName: T, value: AggParams[T] ) => void; - onAggTypeChange: (aggId: AggId, aggType: AggType) => void; + onAggTypeChange: (aggId: AggId, aggType: IAggType) => void; } export interface DefaultEditorAggCommonProps extends DefaultEditorCommonProps { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.test.tsx index 9cbcc31bdc60eb..c36c0176439f94 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.test.tsx @@ -21,7 +21,7 @@ import React from 'react'; import { mount, shallow } from 'enzyme'; import { act } from 'react-dom/test-utils'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfigs, AggConfig, Schema } from '../legacy_imports'; +import { IAggConfigs, IAggConfig, Schema } from '../legacy_imports'; import { DefaultEditorAggGroup, DefaultEditorAggGroupProps } from './agg_group'; import { DefaultEditorAgg } from './agg'; import { DefaultEditorAggAdd } from './agg_add'; @@ -56,7 +56,7 @@ jest.mock('./agg_add', () => ({ describe('DefaultEditorAgg component', () => { let defaultProps: DefaultEditorAggGroupProps; - let aggs: AggConfigs; + let aggs: IAggConfigs; let setTouched: jest.Mock; let setValidity: jest.Mock; let reorderAggs: jest.Mock; @@ -76,7 +76,7 @@ describe('DefaultEditorAgg component', () => { }, }, schema: { group: 'metrics' }, - } as AggConfig, + } as IAggConfig, { id: '3', params: { @@ -85,7 +85,7 @@ describe('DefaultEditorAgg component', () => { }, }, schema: { group: 'metrics' }, - } as AggConfig, + } as IAggConfig, { id: '2', params: { @@ -94,9 +94,9 @@ describe('DefaultEditorAgg component', () => { }, }, schema: { group: 'buckets' }, - } as AggConfig, + } as IAggConfig, ], - } as AggConfigs; + } as IAggConfigs; defaultProps = { formIsTouched: false, diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx index 3491414bec8095..768a9669025e48 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx @@ -30,7 +30,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { AggConfig, aggGroupNamesMap, AggGroupNames, Schema } from '../legacy_imports'; +import { IAggConfig, aggGroupNamesMap, AggGroupNames, Schema } from '../legacy_imports'; import { DefaultEditorAgg } from './agg'; import { DefaultEditorAggAdd } from './agg_add'; import { AddSchema, ReorderAggs, DefaultEditorAggCommonProps } from './agg_common_props'; @@ -69,8 +69,8 @@ function DefaultEditorAggGroup({ }: DefaultEditorAggGroupProps) { const groupNameLabel = (aggGroupNamesMap() as any)[groupName]; // e.g. buckets can have no aggs - const group: AggConfig[] = useMemo( - () => state.aggs.aggs.filter((agg: AggConfig) => agg.schema.group === groupName) || [], + const group: IAggConfig[] = useMemo( + () => state.aggs.aggs.filter((agg: IAggConfig) => agg.schema.group === groupName) || [], [groupName, state.aggs.aggs] ); @@ -151,7 +151,7 @@ function DefaultEditorAggGroup({ )} <> - {group.map((agg: AggConfig, index: number) => ( + {group.map((agg: IAggConfig, index: number) => ( { - let group: AggConfig[]; + let group: IAggConfig[]; beforeEach(() => { group = [ @@ -39,7 +39,7 @@ describe('DefaultEditorGroup helpers', () => { }, }, schema: { name: 'metric', min: 1, mustBeFirst: true }, - } as AggConfig, + } as IAggConfig, { id: '2', params: { @@ -48,7 +48,7 @@ describe('DefaultEditorGroup helpers', () => { }, }, schema: { name: 'metric', min: 2 }, - } as AggConfig, + } as IAggConfig, ]; }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_helper.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_helper.tsx index 87f0d00d50a1d0..d2e8e5401c0f7c 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_helper.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_helper.tsx @@ -18,12 +18,12 @@ */ import { findIndex, isEmpty } from 'lodash'; -import { AggConfig } from '../legacy_imports'; +import { IAggConfig } from '../legacy_imports'; import { AggsState } from './agg_group_state'; -const isAggRemovable = (agg: AggConfig, group: AggConfig[]) => { +const isAggRemovable = (agg: IAggConfig, group: IAggConfig[]) => { const metricCount = group.reduce( - (count, aggregation: AggConfig) => + (count, aggregation: IAggConfig) => aggregation.schema.name === agg.schema.name ? ++count : count, 0 ); @@ -31,20 +31,20 @@ const isAggRemovable = (agg: AggConfig, group: AggConfig[]) => { return metricCount > agg.schema.min; }; -const getEnabledMetricAggsCount = (group: AggConfig[]) => { +const getEnabledMetricAggsCount = (group: IAggConfig[]) => { return group.reduce( - (count, aggregation: AggConfig) => + (count, aggregation: IAggConfig) => aggregation.schema.name === 'metric' && aggregation.enabled ? ++count : count, 0 ); }; -const calcAggIsTooLow = (agg: AggConfig, aggIndex: number, group: AggConfig[]) => { +const calcAggIsTooLow = (agg: IAggConfig, aggIndex: number, group: IAggConfig[]) => { if (!agg.schema.mustBeFirst) { return false; } - const firstDifferentSchema = findIndex(group, (aggr: AggConfig) => { + const firstDifferentSchema = findIndex(group, (aggr: IAggConfig) => { return aggr.schema !== agg.schema; }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_state.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_state.tsx index b06ca1c2ce57a2..d022297ae72b39 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_state.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group_state.tsx @@ -17,7 +17,7 @@ * under the License. */ -import { AggConfig } from '../legacy_imports'; +import { IAggConfig } from '../legacy_imports'; export enum AGGS_ACTION_KEYS { TOUCHED = 'aggsTouched', @@ -52,7 +52,7 @@ function aggGroupReducer(state: AggsState, action: AggsAction): AggsState { } } -function initAggsState(group: AggConfig[]): AggsState { +function initAggsState(group: IAggConfig[]): AggsState { return group.reduce((state, agg) => { state[agg.id] = { touched: false, valid: true }; return state; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts index 01a41d3c412c26..fc535884c69ffd 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts @@ -19,7 +19,7 @@ import { Field } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfig, AggParam, EditorConfig } from '../legacy_imports'; +import { IAggConfig, AggParam, EditorConfig } from '../legacy_imports'; import { ComboBoxGroupedOptions } from '../utils'; // NOTE: we cannot export the interface with export { InterfaceName } @@ -27,7 +27,7 @@ import { ComboBoxGroupedOptions } from '../utils'; // https://github.com/babel/babel/issues/7641 // export interface AggParamCommonProps { - agg: AggConfig; + agg: IAggConfig; aggParam: P; disabled?: boolean; editorConfig: EditorConfig; @@ -36,7 +36,7 @@ export interface AggParamCommonProps { showValidation: boolean; state: VisState; value?: T; - metricAggs: AggConfig[]; + metricAggs: IAggConfig[]; } export interface AggParamEditorProps extends AggParamCommonProps { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx index d782c819c7c41f..5636059394bacb 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx @@ -23,7 +23,7 @@ import { mount, shallow } from 'enzyme'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; import { IndexPattern } from 'src/plugins/data/public'; import { DefaultEditorAggParams, DefaultEditorAggParamsProps } from './agg_params'; -import { AggConfig, AggGroupNames } from '../legacy_imports'; +import { IAggConfig, AggGroupNames } from '../legacy_imports'; const mockEditorConfig = { useNormalizedEsInterval: { hidden: false, fixedValue: false }, @@ -97,7 +97,7 @@ describe('DefaultEditorAggParams component', () => { schema: { title: '', }, - } as any) as AggConfig, + } as any) as IAggConfig, groupName: AggGroupNames.Metrics, formIsTouched: false, indexPattern: {} as IndexPattern, diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx index 47e98f175ab73f..1b450957f3b26b 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx @@ -24,7 +24,7 @@ import useUnmount from 'react-use/lib/useUnmount'; import { IndexPattern } from 'src/plugins/data/public'; import { - AggConfig, + IAggConfig, AggGroupNames, editorConfigProviders, FixedParam, @@ -54,7 +54,7 @@ type EditorParamConfigType = EditorParamConfig & { }; export interface DefaultEditorAggParamsProps extends DefaultEditorCommonProps { - agg: AggConfig; + agg: IAggConfig; aggError?: string; aggIndex?: number; aggIsTooLow?: boolean; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts index 6f584b43295000..ec56d22143699a 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts @@ -20,8 +20,8 @@ import { IndexPattern, Field } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; import { - AggConfig, - AggType, + IAggConfig, + IAggType, AggGroupNames, BUCKET_TYPES, IndexedArray, @@ -42,10 +42,10 @@ jest.mock('ui/new_platform'); describe('DefaultEditorAggParams helpers', () => { describe('getAggParamsToRender', () => { - let agg: AggConfig; + let agg: IAggConfig; let editorConfig: EditorConfig; const state = {} as VisState; - const metricAggs: AggConfig[] = []; + const metricAggs: IAggConfig[] = []; const emptyParams = { basic: [], advanced: [], @@ -57,14 +57,14 @@ describe('DefaultEditorAggParams helpers', () => { params: [{ name: 'interval' }], }, schema: {}, - } as AggConfig; + } as IAggConfig; const params = getAggParamsToRender({ agg, editorConfig, metricAggs, state }); expect(params).toEqual(emptyParams); }); it('should not create any param if there is no agg type', () => { - agg = {} as AggConfig; + agg = {} as IAggConfig; const params = getAggParamsToRender({ agg, editorConfig, metricAggs, state }); expect(params).toEqual(emptyParams); @@ -75,7 +75,7 @@ describe('DefaultEditorAggParams helpers', () => { type: { params: [{ name: 'interval' }], }, - } as AggConfig; + } as IAggConfig; editorConfig = { interval: { hidden: true, @@ -94,7 +94,7 @@ describe('DefaultEditorAggParams helpers', () => { schema: { hideCustomLabel: true, }, - } as AggConfig; + } as IAggConfig; const params = getAggParamsToRender({ agg, editorConfig, metricAggs, state }); expect(params).toEqual(emptyParams); @@ -131,7 +131,7 @@ describe('DefaultEditorAggParams helpers', () => { orderBy: 'orderBy', field: 'field', }, - } as any) as AggConfig; + } as any) as IAggConfig; const params = getAggParamsToRender({ agg, editorConfig, metricAggs, state }); expect(params).toEqual({ @@ -166,14 +166,14 @@ describe('DefaultEditorAggParams helpers', () => { describe('getAggTypeOptions', () => { it('should return agg type options grouped by subtype', () => { const indexPattern = {} as IndexPattern; - const aggs = getAggTypeOptions({} as AggConfig, indexPattern, 'metrics'); + const aggs = getAggTypeOptions({} as IAggConfig, indexPattern, 'metrics'); expect(aggs).toEqual(['indexedFields']); }); }); describe('isInvalidParamsTouched', () => { - let aggType: AggType; + let aggType: IAggType; const aggTypeState = { touched: false, valid: true, diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts index 21154bd7ad603e..5a9d95725c8e46 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts @@ -29,17 +29,17 @@ import { aggTypeFilters, aggTypeFieldFilters, aggTypes, - AggConfig, + IAggConfig, AggParam, - FieldParamType, - AggType, + IFieldParamType, + IAggType, EditorConfig, } from '../legacy_imports'; interface ParamInstanceBase { - agg: AggConfig; + agg: IAggConfig; editorConfig: EditorConfig; - metricAggs: AggConfig[]; + metricAggs: IAggConfig[]; state: VisState; } @@ -73,7 +73,7 @@ function getAggParamsToRender({ agg, editorConfig, metricAggs, state }: ParamIns } // if field param exists, compute allowed fields if (param.type === 'field') { - const availableFields: Field[] = (param as FieldParamType).getAvailableFields( + const availableFields: Field[] = (param as IFieldParamType).getAvailableFields( agg.getIndexPattern().fields ); fields = aggTypeFieldFilters.filter(availableFields, agg); @@ -117,10 +117,10 @@ function getAggParamsToRender({ agg, editorConfig, metricAggs, state }: ParamIns } function getAggTypeOptions( - agg: AggConfig, + agg: IAggConfig, indexPattern: IndexPattern, groupName: string -): ComboBoxGroupedOptions { +): ComboBoxGroupedOptions { const aggTypeOptions = aggTypeFilters.filter((aggTypes as any)[groupName], indexPattern, agg); return groupAndSortBy(aggTypeOptions as any[], 'subtype', 'title'); } @@ -135,7 +135,7 @@ function getAggTypeOptions( * @param aggParams State of aggregation parameters. */ function isInvalidParamsTouched( - aggType: AggType, + aggType: IAggType, aggTypeState: AggTypeState, aggParams: AggParamsState ) { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_select.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_select.tsx index 2a9c74521e5258..0ec19bfa1b843d 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_select.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_select.tsx @@ -24,20 +24,20 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { IndexPattern } from 'src/plugins/data/public'; -import { AggType, documentationLinks } from '../legacy_imports'; +import { IAggType, documentationLinks } from '../legacy_imports'; import { ComboBoxGroupedOptions } from '../utils'; import { AGG_TYPE_ACTION_KEYS, AggTypeAction } from './agg_params_state'; interface DefaultEditorAggSelectProps { aggError?: string; - aggTypeOptions: ComboBoxGroupedOptions; + aggTypeOptions: ComboBoxGroupedOptions; id: string; indexPattern: IndexPattern; showValidation: boolean; isSubAggregation: boolean; - value: AggType; + value: IAggType; onChangeAggType: React.Dispatch; - setValue: (aggType: AggType) => void; + setValue: (aggType: IAggType) => void; } function DefaultEditorAggSelect({ @@ -51,7 +51,7 @@ function DefaultEditorAggSelect({ isSubAggregation, onChangeAggType, }: DefaultEditorAggSelectProps) { - const selectedOptions: ComboBoxGroupedOptions = value + const selectedOptions: ComboBoxGroupedOptions = value ? [{ label: value.title, target: value }] : []; @@ -104,7 +104,7 @@ function DefaultEditorAggSelect({ (options: EuiComboBoxOptionProps[]) => { const selectedOption = get(options, '0.target'); if (selectedOption) { - setValue(selectedOption as AggType); + setValue(selectedOption as IAggType); } }, [setValue] diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_control_props.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_control_props.tsx index c8b5196d3b299b..7f04b851902de1 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_control_props.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_control_props.tsx @@ -18,11 +18,11 @@ */ import { VisParams } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; import { DefaultEditorAggCommonProps } from '../agg_common_props'; export interface AggControlProps { - agg: AggConfig; + agg: IAggConfig; editorStateParams: VisParams; setAggParamValue: DefaultEditorAggCommonProps['setAggParamValue']; setStateParamValue: DefaultEditorAggCommonProps['setStateParamValue']; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_utils.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_utils.test.tsx index 5c69fd0f1c0911..0b847e3747b301 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_utils.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/agg_utils.test.tsx @@ -20,7 +20,7 @@ import React, { FunctionComponent } from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; import { safeMakeLabel, useAvailableOptions, @@ -57,7 +57,7 @@ const metricAggs = [ return 'avg'; }, }, -] as AggConfig[]; +] as IAggConfig[]; const incompatibleAggs = [ { @@ -74,7 +74,7 @@ const incompatibleAggs = [ return 'percentiles'; }, }, -] as AggConfig[]; +] as IAggConfig[]; const aggFilter = ['!top_hits', '!percentiles']; describe('Aggregations utils', () => { @@ -222,7 +222,7 @@ describe('Aggregations utils', () => { }); test('should not fail and return a safety string if makeLabel func is not exist', () => { - const label = safeMakeLabel({} as AggConfig); + const label = safeMakeLabel({} as IAggConfig); expect(label).toEqual(expect.any(String)); }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.test.tsx index e43304fe073478..636ef8f872d0ea 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.test.tsx @@ -26,7 +26,7 @@ import { Field } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; import { ComboBoxGroupedOptions } from '../../utils'; import { FieldParamEditor, FieldParamEditorProps } from './field'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; function callComboBoxOnChange(comp: ReactWrapper, value: any = []) { const comboBoxProps: EuiComboBoxProps = comp.find(EuiComboBox).props(); @@ -64,7 +64,7 @@ describe('FieldParamEditor component', () => { ]; defaultProps = { - agg: {} as AggConfig, + agg: {} as IAggConfig, aggParam: { name: 'field', type: 'field', @@ -80,7 +80,7 @@ describe('FieldParamEditor component', () => { setValidity, setTouched, state: {} as VisState, - metricAggs: [] as AggConfig[], + metricAggs: [] as IAggConfig[], }; }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.tsx index 38c55e8fe3f240..f374353afabeca 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/field.tsx @@ -24,7 +24,7 @@ import { EuiComboBox, EuiComboBoxOptionProps, EuiFormRow } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { Field } from 'src/plugins/data/public'; -import { AggConfig, AggParam, FieldParamType } from '../../legacy_imports'; +import { AggParam, IAggConfig, IFieldParamType } from '../../legacy_imports'; import { formatListAsProse, parseCommaSeparatedList, useValidation } from './utils'; import { AggParamEditorProps } from '../agg_param_props'; import { ComboBoxGroupedOptions } from '../../utils'; @@ -126,9 +126,10 @@ function FieldParamEditor({ ); } -function getFieldTypesString(agg: AggConfig) { +function getFieldTypesString(agg: IAggConfig) { const param = - get(agg, 'type.params', []).find((p: AggParam) => p.name === 'field') || ({} as FieldParamType); + get(agg, 'type.params', []).find((p: AggParam) => p.name === 'field') || + ({} as IFieldParamType); return formatListAsProse(parseCommaSeparatedList(param.filterFieldTypes), { inclusive: false }); } diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/filter.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/filter.tsx index 38c5b552553ae2..3622b27bad4036 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/filter.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/filter.tsx @@ -22,7 +22,7 @@ import { EuiForm, EuiButtonIcon, EuiFieldText, EuiFormRow, EuiSpacer } from '@el import { i18n } from '@kbn/i18n'; import { Query, QueryStringInput } from '../../../../../../plugins/data/public'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; interface FilterRowProps { id: string; @@ -34,7 +34,7 @@ interface FilterRowProps { dataTestSubj: string; onChangeValue(id: string, query: Query, label: string): void; onRemoveFilter(id: string): void; - agg: AggConfig; + agg: IAggConfig; } function FilterRow({ diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/metric_agg.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/metric_agg.test.tsx index 9b6fd204e72077..cf7af1aa5cb3a7 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/metric_agg.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/metric_agg.test.tsx @@ -20,7 +20,7 @@ import React from 'react'; import { mount, shallow } from 'enzyme'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; import { DEFAULT_OPTIONS, aggFilter, MetricAggParamEditor } from './metric_agg'; jest.mock('./utils', () => ({ @@ -44,7 +44,7 @@ const agg = { makeLabel() { return 'cumulative_sum'; }, -} as AggConfig; +} as IAggConfig; const metricAggs = [ agg, @@ -69,7 +69,7 @@ const metricAggs = [ return 'max'; }, }, -] as AggConfig[]; +] as IAggConfig[]; describe('MetricAggParamEditor', () => { let defaultProps: Partial>; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/order_agg.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/order_agg.tsx index 6bb9ad334d1495..10679b578d54e3 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/order_agg.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/order_agg.tsx @@ -20,7 +20,7 @@ import React, { useEffect } from 'react'; import { EuiSpacer } from '@elastic/eui'; -import { AggParamType, AggConfig, AggGroupNames } from '../../legacy_imports'; +import { AggParamType, IAggConfig, AggGroupNames } from '../../legacy_imports'; import { useSubAggParamsHandlers } from './utils'; import { AggParamEditorProps } from '../agg_param_props'; import { DefaultEditorAggParams } from '../agg_params'; @@ -35,7 +35,7 @@ function OrderAggParamEditor({ setValue, setValidity, setTouched, -}: AggParamEditorProps) { +}: AggParamEditorProps) { const orderBy = agg.params.orderBy; useEffect(() => { @@ -51,7 +51,7 @@ function OrderAggParamEditor({ const { onAggTypeChange, setAggParamValue } = useSubAggParamsHandlers( agg, aggParam, - value as AggConfig, + value as IAggConfig, setValue ); @@ -63,7 +63,7 @@ function OrderAggParamEditor({ <> ) { +}: AggParamEditorProps) { useEffect(() => { // we aren't creating a custom aggConfig if (agg.params.metricAgg !== 'custom') { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/sub_metric.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/sub_metric.tsx index 9898d943870bc6..45ff0610d88ede 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/sub_metric.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/sub_metric.tsx @@ -21,7 +21,7 @@ import React, { useEffect } from 'react'; import { EuiFormLabel, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { AggParamType, AggConfig, AggGroupNames } from '../../legacy_imports'; +import { AggParamType, IAggConfig, AggGroupNames } from '../../legacy_imports'; import { useSubAggParamsHandlers } from './utils'; import { AggParamEditorProps } from '../agg_param_props'; import { DefaultEditorAggParams } from '../agg_params'; @@ -35,7 +35,7 @@ function SubMetricParamEditor({ setValue, setValidity, setTouched, -}: AggParamEditorProps) { +}: AggParamEditorProps) { const metricTitle = i18n.translate('visDefaultEditor.controls.metrics.metricTitle', { defaultMessage: 'Metric', }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts b/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts index 4e811f4543412a..894bc594a08d77 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts @@ -18,14 +18,14 @@ */ import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfig, AggParam, EditorConfig } from '../../legacy_imports'; +import { IAggConfig, AggParam, EditorConfig } from '../../legacy_imports'; export const aggParamCommonPropsMock = { - agg: {} as AggConfig, + agg: {} as IAggConfig, aggParam: {} as AggParam, editorConfig: {} as EditorConfig, formIsTouched: false, - metricAggs: [] as AggConfig[], + metricAggs: [] as IAggConfig[], state: {} as VisState, showValidation: false, }; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.test.tsx index b0c3fe00606aa7..4ce0712040bd5f 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.test.tsx @@ -25,10 +25,10 @@ import { TopAggregateParamEditorProps, } from './top_aggregate'; import { aggParamCommonPropsMock } from './test_utils'; -import { AggConfig } from '../../legacy_imports'; +import { IAggConfig } from '../../legacy_imports'; describe('TopAggregateParamEditor', () => { - let agg: AggConfig; + let agg: IAggConfig; let aggParam: any; let defaultProps: TopAggregateParamEditorProps; let options: AggregateValueProp[]; @@ -37,17 +37,17 @@ describe('TopAggregateParamEditor', () => { options = [ { text: 'Min', - isCompatible: jest.fn((aggr: AggConfig) => aggr.params.field.type === 'number'), + isCompatible: jest.fn((aggr: IAggConfig) => aggr.params.field.type === 'number'), value: 'min', }, { text: 'Max', - isCompatible: jest.fn((aggr: AggConfig) => aggr.params.field.type === 'number'), + isCompatible: jest.fn((aggr: IAggConfig) => aggr.params.field.type === 'number'), value: 'max', }, { text: 'Average', - isCompatible: jest.fn((aggr: AggConfig) => aggr.params.field.type === 'string'), + isCompatible: jest.fn((aggr: IAggConfig) => aggr.params.field.type === 'string'), value: 'average', }, ]; @@ -69,7 +69,7 @@ describe('TopAggregateParamEditor', () => { }, }, getAggParams: jest.fn(() => [{ name: 'aggregate', options }]), - } as any) as AggConfig; + } as any) as IAggConfig; defaultProps = { ...aggParamCommonPropsMock, agg, @@ -150,7 +150,7 @@ describe('TopAggregateParamEditor', () => { type: 'string', }, }, - } as AggConfig; + } as IAggConfig; comp.setProps({ agg }); @@ -165,7 +165,7 @@ describe('TopAggregateParamEditor', () => { type: 'date', }, }, - } as AggConfig; + } as IAggConfig; comp.setProps({ agg }); @@ -179,7 +179,7 @@ describe('TopAggregateParamEditor', () => { type: 'string', }, }, - } as AggConfig; + } as IAggConfig; comp.setProps({ agg, value: undefined }); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.tsx index 338e2fe463a806..346dfc0156f070 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/top_aggregate.tsx @@ -23,7 +23,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { - AggConfig, + IAggConfig, AggParam, OptionedValueProp, OptionedParamEditorProps, @@ -32,13 +32,13 @@ import { import { AggParamEditorProps } from '../agg_param_props'; export interface AggregateValueProp extends OptionedValueProp { - isCompatible(aggConfig: AggConfig): boolean; + isCompatible(aggConfig: IAggConfig): boolean; } export type TopAggregateParamEditorProps = AggParamEditorProps & OptionedParamEditorProps; -export function getCompatibleAggs(agg: AggConfig): AggregateValueProp[] { +export function getCompatibleAggs(agg: IAggConfig): AggregateValueProp[] { const { options = [] } = agg .getAggParams() .find(({ name }: AggParam) => name === 'aggregate') as OptionedParamType; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/agg_utils.ts b/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/agg_utils.ts index 4c8ba23e632680..8aeae488942cd5 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/agg_utils.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/agg_utils.ts @@ -20,7 +20,7 @@ import { useEffect, useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { AggConfig } from '../../../legacy_imports'; +import { IAggConfig } from '../../../legacy_imports'; type AggFilter = string[]; @@ -43,7 +43,7 @@ function useCompatibleAggCallback(aggFilter: AggFilter) { function useFallbackMetric( setValue: (value?: string) => void, aggFilter: AggFilter, - metricAggs?: AggConfig[], + metricAggs?: IAggConfig[], value?: string, fallbackValue?: string ) { @@ -69,7 +69,7 @@ function useFallbackMetric( */ function useAvailableOptions( aggFilter: AggFilter, - metricAggs: AggConfig[] = [], + metricAggs: IAggConfig[] = [], defaultOptions: Array<{ text: string; value: string }> = [] ) { const isCompatibleAgg = useCompatibleAggCallback(aggFilter); @@ -107,7 +107,7 @@ function useValidation(setValidity: (isValid: boolean) => void, isValid: boolean }, [isValid, setValidity]); } -function safeMakeLabel(agg: AggConfig): string { +function safeMakeLabel(agg: IAggConfig): string { try { return agg.makeLabel(); } catch (e) { @@ -118,7 +118,7 @@ function safeMakeLabel(agg: AggConfig): string { } function isCompatibleAggregation(aggFilter: string[]) { - return (agg: AggConfig) => { + return (agg: IAggConfig) => { return !aggFilter.includes(`!${agg.type.name}`); }; } diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/use_handlers.ts b/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/use_handlers.ts index c2da648edcf81c..c7816d5a9d3056 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/use_handlers.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/utils/use_handlers.ts @@ -19,14 +19,14 @@ import { useCallback } from 'react'; -import { AggConfig, AggParamType } from '../../../legacy_imports'; +import { IAggConfig, AggParamType } from '../../../legacy_imports'; -type SetValue = (value?: AggConfig) => void; +type SetValue = (value?: IAggConfig) => void; function useSubAggParamsHandlers( - agg: AggConfig, + agg: IAggConfig, aggParam: AggParamType, - subAgg: AggConfig, + subAgg: IAggConfig, setValue: SetValue ) { const setAggParamValue = useCallback( diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/data_tab.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/data_tab.tsx index c7597ef43dfa6f..efd17f02a0e090 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/data_tab.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/data_tab.tsx @@ -23,11 +23,11 @@ import { EuiSpacer } from '@elastic/eui'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; import { - AggConfig, + IAggConfig, AggGroupNames, ISchemas, parentPipelineType, - MetricAggType, + IMetricAggType, } from '../../legacy_imports'; import { DefaultEditorAggGroup } from '../agg_group'; import { @@ -45,7 +45,7 @@ export interface DefaultEditorDataTabProps { dispatch: React.Dispatch; formIsTouched: boolean; isTabSelected: boolean; - metricAggs: AggConfig[]; + metricAggs: IAggConfig[]; schemas: ISchemas; state: VisState; setTouched(isTouched: boolean): void; @@ -67,7 +67,7 @@ function DefaultEditorDataTab({ () => findLast( metricAggs, - ({ type }: { type: MetricAggType }) => type.subtype === parentPipelineType + ({ type }: { type: IMetricAggType }) => type.subtype === parentPipelineType ), [metricAggs] ); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/actions.ts b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/actions.ts index 5738916d2ff805..93fa1083bebf97 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/actions.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/actions.ts @@ -18,7 +18,7 @@ */ import { Vis, VisParams } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfig, Schema } from '../../../legacy_imports'; +import { IAggConfig, Schema } from '../../../legacy_imports'; import { EditorStateActionTypes } from './constants'; export interface ActionType { @@ -26,14 +26,14 @@ export interface ActionType { payload: P; } -type AggId = AggConfig['id']; -type AggParams = AggConfig['params']; +type AggId = IAggConfig['id']; +type AggParams = IAggConfig['params']; type AddNewAgg = ActionType; type DiscardChanges = ActionType; type ChangeAggType = ActionType< EditorStateActionTypes.CHANGE_AGG_TYPE, - { aggId: AggId; value: AggConfig['type'] } + { aggId: AggId; value: IAggConfig['type'] } >; type SetAggParamValue = ActionType< EditorStateActionTypes.SET_AGG_PARAM_VALUE, @@ -50,11 +50,11 @@ type SetStateParamValue = ActionTyp type RemoveAgg = ActionType; type ReorderAggs = ActionType< EditorStateActionTypes.REORDER_AGGS, - { sourceAgg: AggConfig; destinationAgg: AggConfig } + { sourceAgg: IAggConfig; destinationAgg: IAggConfig } >; type ToggleEnabledAgg = ActionType< EditorStateActionTypes.TOGGLE_ENABLED_AGG, - { aggId: AggId; enabled: AggConfig['enabled'] } + { aggId: AggId; enabled: IAggConfig['enabled'] } >; type UpdateStateParams = ActionType< EditorStateActionTypes.UPDATE_STATE_PARAMS, @@ -75,7 +75,7 @@ export type EditorAction = export interface EditorActions { addNewAgg(schema: Schema): AddNewAgg; discardChanges(vis: Vis): DiscardChanges; - changeAggType(aggId: AggId, value: AggConfig['type']): ChangeAggType; + changeAggType(aggId: AggId, value: IAggConfig['type']): ChangeAggType; setAggParamValue( aggId: AggId, paramName: T, @@ -86,8 +86,8 @@ export interface EditorActions { value: AggParams[T] ): SetStateParamValue; removeAgg(aggId: AggId): RemoveAgg; - reorderAggs(sourceAgg: AggConfig, destinationAgg: AggConfig): ReorderAggs; - toggleEnabledAgg(aggId: AggId, enabled: AggConfig['enabled']): ToggleEnabledAgg; + reorderAggs(sourceAgg: IAggConfig, destinationAgg: IAggConfig): ReorderAggs; + toggleEnabledAgg(aggId: AggId, enabled: IAggConfig['enabled']): ToggleEnabledAgg; updateStateParams(params: VisParams): UpdateStateParams; } diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/reducers.ts b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/reducers.ts index 8e1cfd6bc9c135..851263f0ed7020 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/reducers.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/state/reducers.ts @@ -20,7 +20,7 @@ import { cloneDeep } from 'lodash'; import { Vis, VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { AggConfigs, AggConfig, AggGroupNames, move } from '../../../legacy_imports'; +import { AggConfigs, IAggConfig, AggGroupNames, move } from '../../../legacy_imports'; import { EditorStateActionTypes } from './constants'; import { getEnabledMetricAggsCount } from '../../agg_group_helper'; import { EditorAction } from './actions'; @@ -32,7 +32,7 @@ function initEditorState(vis: Vis) { function editorStateReducer(state: VisState, action: EditorAction): VisState { switch (action.type) { case EditorStateActionTypes.ADD_NEW_AGG: { - const aggConfig = state.aggs.createAggConfig(action.payload as AggConfig, { + const aggConfig = state.aggs.createAggConfig(action.payload as IAggConfig, { addToAggConfigs: false, }); aggConfig.brandNew = true; diff --git a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts index 5c617f3dc8681c..f023b808cb0a72 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts @@ -20,34 +20,33 @@ /* `ui/agg_types` dependencies */ export { AggType, - AggConfig, + IAggType, + IAggConfig, AggConfigs, + IAggConfigs, AggParam, AggGroupNames, aggGroupNamesMap, aggTypes, FieldParamType, + IFieldParamType, BUCKET_TYPES, METRIC_TYPES, ISchemas, Schema, termsAggFilter, } from 'ui/agg_types'; -export { aggTypeFilters, propFilter } from 'ui/agg_types/filter'; -export { aggTypeFieldFilters } from 'ui/agg_types/param_types/filter'; -export { AggParamType } from 'ui/agg_types/param_types/agg'; -export { MetricAggType } from 'ui/agg_types/metrics/metric_agg_type'; -export { parentPipelineType } from 'ui/agg_types/metrics/lib/parent_pipeline_agg_helper'; -export { siblingPipelineType } from 'ui/agg_types/metrics/lib/sibling_pipeline_agg_helper'; -export { isType, isStringType } from 'ui/agg_types/buckets/migrate_include_exclude_format'; -export { - OptionedValueProp, - OptionedParamEditorProps, - OptionedParamType, -} from 'ui/agg_types/param_types/optioned'; -export { isValidJson, isValidInterval } from 'ui/agg_types/utils'; -export { AggParamOption } from 'ui/agg_types/agg_params'; -export { CidrMask } from 'ui/agg_types/buckets/lib/cidr_mask'; +export { aggTypeFilters, propFilter } from 'ui/agg_types'; +export { aggTypeFieldFilters } from 'ui/agg_types'; +export { AggParamType } from 'ui/agg_types'; +export { MetricAggType, IMetricAggType } from 'ui/agg_types'; +export { parentPipelineType } from 'ui/agg_types'; +export { siblingPipelineType } from 'ui/agg_types'; +export { isType, isStringType } from 'ui/agg_types'; +export { OptionedValueProp, OptionedParamEditorProps, OptionedParamType } from 'ui/agg_types'; +export { isValidJson, isValidInterval } from 'ui/agg_types'; +export { AggParamOption } from 'ui/agg_types'; +export { CidrMask } from 'ui/agg_types'; export { PersistedState } from 'ui/persisted_state'; export { IndexedArray } from 'ui/indexed_array'; diff --git a/src/legacy/core_plugins/vis_default_editor/public/vis_options_props.tsx b/src/legacy/core_plugins/vis_default_editor/public/vis_options_props.tsx index f51e359d99573e..babcb59c6582e6 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/vis_options_props.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/vis_options_props.tsx @@ -17,11 +17,11 @@ * under the License. */ -import { AggConfigs, PersistedState } from './legacy_imports'; +import { IAggConfigs, PersistedState } from './legacy_imports'; import { Vis } from '../../visualizations/public'; export interface VisOptionsProps { - aggs: AggConfigs; + aggs: IAggConfigs; hasHistogramAgg: boolean; isTabSelected: boolean; stateParams: VisParamType; diff --git a/src/legacy/core_plugins/vis_default_editor/public/vis_type_agg_filter.ts b/src/legacy/core_plugins/vis_default_editor/public/vis_type_agg_filter.ts index c1832d55128176..60b675f50a3425 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/vis_type_agg_filter.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/vis_type_agg_filter.ts @@ -17,7 +17,7 @@ * under the License. */ import { IndexPattern } from 'src/plugins/data/public'; -import { AggType, AggConfig, aggTypeFilters, propFilter } from './legacy_imports'; +import { IAggType, IAggConfig, aggTypeFilters, propFilter } from './legacy_imports'; const filterByName = propFilter('name'); @@ -25,7 +25,9 @@ const filterByName = propFilter('name'); * This filter checks the defined aggFilter in the schemas of that visualization * and limits available aggregations based on that. */ -aggTypeFilters.addFilter((aggType: AggType, indexPatterns: IndexPattern, aggConfig: AggConfig) => { - const doesSchemaAllowAggType = filterByName([aggType], aggConfig.schema.aggFilter).length !== 0; - return doesSchemaAllowAggType; -}); +aggTypeFilters.addFilter( + (aggType: IAggType, indexPatterns: IndexPattern, aggConfig: IAggConfig) => { + const doesSchemaAllowAggType = filterByName([aggType], aggConfig.schema.aggFilter).length !== 0; + return doesSchemaAllowAggType; + } +); diff --git a/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts b/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts index 8a454957b7ab9d..efa6c0029e6d1d 100644 --- a/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts +++ b/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts @@ -19,7 +19,7 @@ export { npSetup, npStart } from 'ui/new_platform'; export { getFormat } from 'ui/visualize/loader/pipeline_helpers/utilities'; -export { AggConfig, AggGroupNames, Schemas } from 'ui/agg_types'; +export { IAggConfig, AggGroupNames, Schemas } from 'ui/agg_types'; // @ts-ignore export { PrivateProvider } from 'ui/private/private'; diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts b/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts index 16181a3f70ff12..d8912975227bfb 100644 --- a/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts +++ b/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts @@ -27,7 +27,7 @@ import './table_vis.mock'; import StubIndexPattern from 'test_utils/stub_index_pattern'; import { getAngularModule } from './get_inner_angular'; import { initTableVisLegacyModule } from './table_vis_legacy_module'; -import { npStart, AggConfig, tabifyAggResponse } from './legacy_imports'; +import { npStart, IAggConfig, tabifyAggResponse } from './legacy_imports'; import { tableVisTypeDefinition } from './table_vis_type'; import { Vis } from '../../visualizations/public'; import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy'; @@ -148,7 +148,7 @@ describe('Table Vis - Controller', () => { // basically a parameterized beforeEach function initController(vis: Vis) { - vis.aggs.aggs.forEach((agg: AggConfig, i: number) => { + vis.aggs.aggs.forEach((agg: IAggConfig, i: number) => { agg.id = 'agg_' + (i + 1); }); diff --git a/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.test.tsx b/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.test.tsx index 514b957765a99e..944ed7e20d1f71 100644 --- a/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.test.tsx +++ b/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.test.tsx @@ -27,7 +27,7 @@ import { Positions } from '../../../utils/collections'; import { ValueAxesPanel } from './value_axes_panel'; import { CategoryAxisPanel } from './category_axis_panel'; import { ChartTypes } from '../../../utils/collections'; -import { AggConfig, AggType } from '../../../legacy_imports'; +import { IAggConfig, IAggType } from '../../../legacy_imports'; import { defaultValueAxisId, valueAxis, seriesParam, categoryAxis } from './mocks'; jest.mock('ui/new_platform'); @@ -44,17 +44,17 @@ jest.mock('./value_axes_panel', () => ({ const SERIES_PARAMS = 'seriesParams'; const VALUE_AXES = 'valueAxes'; -const aggCount: AggConfig = { +const aggCount: IAggConfig = { id: '1', type: { name: 'count' }, makeLabel: () => 'Count', -} as AggConfig; +} as IAggConfig; -const aggAverage: AggConfig = { +const aggAverage: IAggConfig = { id: '2', - type: { name: 'average' } as AggType, + type: { name: 'average' } as IAggType, makeLabel: () => 'Average', -} as AggConfig; +} as IAggConfig; const createAggs = (aggs: any[]) => ({ aggs, diff --git a/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.tsx b/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.tsx index c4dcbfaa47265d..cdc8996f3fdeb5 100644 --- a/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.tsx +++ b/src/legacy/core_plugins/vis_type_vislib/public/components/options/metrics_axes/index.tsx @@ -21,7 +21,7 @@ import React, { useState, useEffect, useCallback, useMemo } from 'react'; import { cloneDeep, uniq, get } from 'lodash'; import { EuiSpacer } from '@elastic/eui'; -import { AggConfig } from '../../../legacy_imports'; +import { IAggConfig } from '../../../legacy_imports'; import { BasicVislibParams, ValueAxis, SeriesParam, Axis } from '../../../types'; import { ValidationVisOptionsProps } from '../../common'; import { SeriesPanel } from './series_panel'; @@ -99,7 +99,7 @@ function MetricsAxisOptions(props: ValidationVisOptionsProps) stateParams.valueAxes.forEach((axis, axisNumber) => { let newCustomLabel = ''; - const matchingSeries: AggConfig[] = []; + const matchingSeries: IAggConfig[] = []; series.forEach((serie, seriesIndex) => { if ((axisNumber === 0 && !serie.valueAxis) || serie.valueAxis === axis.id) { diff --git a/src/legacy/core_plugins/vis_type_vislib/public/legacy_imports.ts b/src/legacy/core_plugins/vis_type_vislib/public/legacy_imports.ts index df7278f2b761ff..50a91df01de7c8 100644 --- a/src/legacy/core_plugins/vis_type_vislib/public/legacy_imports.ts +++ b/src/legacy/core_plugins/vis_type_vislib/public/legacy_imports.ts @@ -17,7 +17,7 @@ * under the License. */ -export { AggType, AggConfig, AggGroupNames, Schemas } from 'ui/agg_types'; +export { AggType, AggGroupNames, IAggConfig, IAggType, Schemas } from 'ui/agg_types'; // @ts-ignore export { SimpleEmitter } from 'ui/utils/simple_emitter'; // @ts-ignore diff --git a/src/legacy/core_plugins/visualizations/public/embeddable/query_geohash_bounds.ts b/src/legacy/core_plugins/visualizations/public/embeddable/query_geohash_bounds.ts index 46ade8ce465c00..719d69e21a826d 100644 --- a/src/legacy/core_plugins/visualizations/public/embeddable/query_geohash_bounds.ts +++ b/src/legacy/core_plugins/visualizations/public/embeddable/query_geohash_bounds.ts @@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n'; import { get } from 'lodash'; import { toastNotifications } from 'ui/notify'; -import { AggConfig } from 'ui/agg_types'; +import { IAggConfig } from 'ui/agg_types'; import { timefilter } from 'ui/timefilter'; import { Vis } from '../np_ready/public'; import { esFilters, Query, SearchSource, ISearchSource } from '../../../../../plugins/data/public'; @@ -42,7 +42,7 @@ interface QueryGeohashBoundsParams { * TODO: Remove this as a part of elastic/kibana#30593 */ export async function queryGeohashBounds(vis: Vis, params: QueryGeohashBoundsParams) { - const agg = vis.getAggConfig().aggs.find((a: AggConfig) => { + const agg = vis.getAggConfig().aggs.find((a: IAggConfig) => { return get(a, 'type.dslName') === 'geohash_grid'; }); diff --git a/src/legacy/core_plugins/visualizations/public/legacy_imports.ts b/src/legacy/core_plugins/visualizations/public/legacy_imports.ts index 3088c4e67a3b76..5cff588d951b04 100644 --- a/src/legacy/core_plugins/visualizations/public/legacy_imports.ts +++ b/src/legacy/core_plugins/visualizations/public/legacy_imports.ts @@ -18,12 +18,13 @@ */ export { PersistedState } from '../../../ui/public/persisted_state'; -export { AggConfig } from '../../../ui/public/agg_types/agg_config'; -export { AggConfigs } from '../../../ui/public/agg_types/agg_configs'; export { + AggConfigs, + IAggConfig, + IAggConfigs, isDateHistogramBucketAggConfig, setBounds, -} from '../../../ui/public/agg_types/buckets/date_histogram'; +} from '../../../ui/public/agg_types'; export { createFormat } from '../../../ui/public/visualize/loader/pipeline_helpers/utilities'; export { I18nContext } from '../../../ui/public/i18n'; import chrome from '../../../ui/public/chrome'; diff --git a/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.test.ts b/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.test.ts index e733bad2c01274..d1017de35474a9 100644 --- a/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.test.ts +++ b/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.test.ts @@ -27,11 +27,11 @@ import { Schemas, } from './build_pipeline'; import { Vis, VisState } from '..'; -import { AggConfig } from '../../../legacy_imports'; +import { IAggConfig } from '../../../legacy_imports'; import { searchSourceMock } from '../../../legacy_mocks'; jest.mock('ui/new_platform'); -jest.mock('ui/agg_types/buckets/date_histogram', () => ({ +jest.mock('ui/agg_types', () => ({ setBounds: () => {}, dateHistogramBucketAgg: () => {}, isDateHistogramBucketAggConfig: () => true, @@ -367,7 +367,7 @@ describe('visualize loader pipeline helpers: build pipeline', () => { }); describe('buildVislibDimensions', () => { - let aggs: AggConfig[]; + let aggs: IAggConfig[]; let visState: any; let vis: Vis; let params: any; @@ -385,7 +385,7 @@ describe('visualize loader pipeline helpers: build pipeline', () => { name: 'metric', }, params: {}, - } as AggConfig, + } as IAggConfig, ]; params = { @@ -453,7 +453,7 @@ describe('visualize loader pipeline helpers: build pipeline', () => { it('with two numeric metrics, mixed normal and percent mode should have corresponding formatters', async () => { const aggConfig = aggs[0]; - aggs = [{ ...aggConfig } as AggConfig, { ...aggConfig, id: '5' } as AggConfig]; + aggs = [{ ...aggConfig } as IAggConfig, { ...aggConfig, id: '5' } as IAggConfig]; visState = { params: { diff --git a/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.ts b/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.ts index 6749a44b4d5b37..04a296a888e87f 100644 --- a/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.ts +++ b/src/legacy/core_plugins/visualizations/public/np_ready/public/legacy/build_pipeline.ts @@ -23,7 +23,7 @@ import moment from 'moment'; import { SerializedFieldFormat } from 'src/plugins/expressions/public'; import { ISearchSource } from 'src/plugins/data/public'; import { - AggConfig, + IAggConfig, setBounds, isDateHistogramBucketAggConfig, createFormat, @@ -85,7 +85,7 @@ const vislibCharts: string[] = [ ]; export const getSchemas = (vis: Vis, timeRange?: any): Schemas => { - const createSchemaConfig = (accessor: number, agg: AggConfig): SchemaConfig => { + const createSchemaConfig = (accessor: number, agg: IAggConfig): SchemaConfig => { if (isDateHistogramBucketAggConfig(agg)) { agg.params.timeRange = timeRange; setBounds(agg, true); @@ -130,10 +130,10 @@ export const getSchemas = (vis: Vis, timeRange?: any): Schemas => { const schemas: Schemas = { metric: [], }; - const responseAggs = vis.aggs.getResponseAggs().filter((agg: AggConfig) => agg.enabled); + const responseAggs = vis.aggs.getResponseAggs().filter((agg: IAggConfig) => agg.enabled); const isHierarchical = vis.isHierarchical(); - const metrics = responseAggs.filter((agg: AggConfig) => agg.type.type === 'metrics'); - responseAggs.forEach((agg: AggConfig) => { + const metrics = responseAggs.filter((agg: IAggConfig) => agg.type.type === 'metrics'); + responseAggs.forEach((agg: IAggConfig) => { let skipMetrics = false; let schemaName = agg.schema ? agg.schema.name || agg.schema : null; if (typeof schemaName === 'object') { @@ -224,7 +224,7 @@ export const prepareDimension = (variable: string, data: any) => { const adjustVislibDimensionFormmaters = (vis: Vis, dimensions: { y: any[] }): void => { const visState = vis.getCurrentState(); const visConfig = visState.params; - const responseAggs = vis.aggs.getResponseAggs().filter((agg: AggConfig) => agg.enabled); + const responseAggs = vis.aggs.getResponseAggs().filter((agg: IAggConfig) => agg.enabled); (dimensions.y || []).forEach(yDimension => { const yAgg = responseAggs[yDimension.accessor]; diff --git a/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.d.ts b/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.d.ts index 6e6a2174d6ad14..71bf9bcf983ffb 100644 --- a/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.d.ts +++ b/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.d.ts @@ -18,7 +18,7 @@ */ import { VisType } from './types'; -import { AggConfigs } from '../../legacy_imports'; +import { IAggConfigs } from '../../legacy_imports'; import { Status } from './legacy/update_status'; export interface Vis { @@ -39,7 +39,7 @@ export interface VisState { title: string; type: VisType; params: VisParams; - aggs: AggConfigs; + aggs: IAggConfigs; } export declare class VisualizationController { diff --git a/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.js b/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.js index 4f1526c20cb6f7..0c2e5012df4393 100644 --- a/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.js +++ b/src/legacy/core_plugins/visualizations/public/np_ready/public/vis.js @@ -21,7 +21,7 @@ * @name Vis * * @description This class consists of aggs, params, listeners, title, and type. - * - Aggs: Instances of AggConfig. + * - Aggs: Instances of IAggConfig. * - Params: The settings in the Options tab. * * Not to be confused with vislib/vis.js. diff --git a/src/legacy/ui/public/agg_response/tabify/_get_columns.ts b/src/legacy/ui/public/agg_response/tabify/_get_columns.ts index a3127c039049b5..4144d5be16012a 100644 --- a/src/legacy/ui/public/agg_response/tabify/_get_columns.ts +++ b/src/legacy/ui/public/agg_response/tabify/_get_columns.ts @@ -18,15 +18,15 @@ */ import { groupBy } from 'lodash'; -import { AggConfig } from '../../agg_types'; +import { IAggConfig } from '../../agg_types'; export interface AggColumn { - aggConfig: AggConfig; + aggConfig: IAggConfig; id: string; name: string; } -const getColumn = (agg: AggConfig, i: number): AggColumn => { +const getColumn = (agg: IAggConfig, i: number): AggColumn => { return { aggConfig: agg, id: `col-${i}-${agg.id}`, @@ -40,7 +40,7 @@ const getColumn = (agg: AggConfig, i: number): AggColumn => { * @param {AggConfigs} aggs - the agg configs object to which the aggregation response correlates * @param {boolean} minimalColumns - setting to true will only return a column for the last bucket/metric instead of one for each level */ -export function tabifyGetColumns(aggs: AggConfig[], minimalColumns: boolean) { +export function tabifyGetColumns(aggs: IAggConfig[], minimalColumns: boolean) { // pick the columns if (minimalColumns) { return aggs.map((agg, i) => getColumn(agg, i)); diff --git a/src/legacy/ui/public/agg_types/index.ts b/src/legacy/ui/public/agg_types/index.ts index cf2733b9a9f36a..ac5d0bed7ef153 100644 --- a/src/legacy/ui/public/agg_types/index.ts +++ b/src/legacy/ui/public/agg_types/index.ts @@ -17,15 +17,69 @@ * under the License. */ -export { aggTypes } from './agg_types'; -export { AggParam } from './agg_params'; -export { AggConfig } from './agg_config'; -export { AggConfigs } from './agg_configs'; -export { AggGroupNames, aggGroupNamesMap } from './agg_groups'; -export { FieldParamType } from './param_types'; -export { BUCKET_TYPES } from './buckets/bucket_agg_types'; -export { METRIC_TYPES } from './metrics/metric_agg_types'; -export { ISchemas, Schema, Schemas } from './schemas'; -export { AggType } from './agg_type'; -export { setBounds } from './buckets/date_histogram'; -export { termsAggFilter } from './buckets/terms'; +/** + * Nothing to see here! + * + * Agg Types have moved to the data plugin, and are being + * re-exported from ui/agg_types for backwards compatibility. + */ + +import { start as dataStart } from '../../../core_plugins/data/public/legacy'; + +// runtime contracts +export const { + types: aggTypes, + AggConfig, + AggConfigs, + AggType, + aggTypeFieldFilters, + FieldParamType, + MetricAggType, + parentPipelineAggHelper, + siblingPipelineAggHelper, + setBounds, +} = dataStart.search.aggs; + +// types +export { + IAggConfig, + IAggConfigs, + IAggType, + IFieldParamType, + IMetricAggType, + AggParam, + AggParamOption, + BUCKET_TYPES, + DateRangeKey, + IpRangeKey, + ISchemas, + METRIC_TYPES, + OptionedParamEditorProps, + OptionedValueProp, +} from '../../../core_plugins/data/public'; + +// static code +export { + AggParamType, + AggTypeFilters, + aggTypeFilters, + AggTypeFieldFilters, + AggGroupNames, + aggGroupNamesMap, + CidrMask, + convertDateRangeToString, + convertIPRangeToString, + intervalOptions, + isDateHistogramBucketAggConfig, + isStringType, + isType, + isValidInterval, + isValidJson, + OptionedParamType, + parentPipelineType, + propFilter, + Schema, + Schemas, + siblingPipelineType, + termsAggFilter, +} from '../../../core_plugins/data/public'; diff --git a/src/legacy/ui/public/time_buckets/time_buckets.js b/src/legacy/ui/public/time_buckets/time_buckets.js index 50a57d866099ec..a611de45fa8596 100644 --- a/src/legacy/ui/public/time_buckets/time_buckets.js +++ b/src/legacy/ui/public/time_buckets/time_buckets.js @@ -144,7 +144,7 @@ TimeBuckets.prototype.getDuration = function() { * generated. * * Input can be one of the following: - * - Any object from src/legacy/ui/agg_types/buckets/_interval_options.js + * - Any object from src/legacy/ui/agg_types.js * - "auto" * - Pass a valid moment unit * - a moment.duration object. diff --git a/src/legacy/ui/public/vis/__tests__/_agg_config.js b/src/legacy/ui/public/vis/__tests__/_agg_config.js index 2ccbaf6c1645e0..7dccf3eec18aa4 100644 --- a/src/legacy/ui/public/vis/__tests__/_agg_config.js +++ b/src/legacy/ui/public/vis/__tests__/_agg_config.js @@ -21,8 +21,8 @@ import sinon from 'sinon'; import expect from '@kbn/expect'; import ngMock from 'ng_mock'; import { Vis } from '../../../../core_plugins/visualizations/public'; -import { AggType } from '../../agg_types/agg_type'; -import { AggConfig } from '../../agg_types/agg_config'; +import { AggType, AggConfig } from '../../agg_types'; + import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; describe('AggConfig', function() { diff --git a/src/legacy/ui/public/vis/config/editor_config_providers.test.ts b/src/legacy/ui/public/vis/config/editor_config_providers.test.ts index 9d93930c09ebc5..d52c9119dd76a5 100644 --- a/src/legacy/ui/public/vis/config/editor_config_providers.test.ts +++ b/src/legacy/ui/public/vis/config/editor_config_providers.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { AggConfig } from 'ui/agg_types'; +import { IAggConfig } from 'ui/agg_types'; import { EditorConfigProviderRegistry } from './editor_config_providers'; import { EditorParamConfig, FixedParam, NumericIntervalParam, TimeIntervalParam } from './types'; @@ -48,7 +48,7 @@ describe('EditorConfigProvider', () => { const provider = jest.fn(() => ({})); registry.register(provider); expect(provider).not.toHaveBeenCalled(); - const aggConfig = {} as AggConfig; + const aggConfig = {} as IAggConfig; registry.getConfigForAgg(indexPattern, aggConfig); expect(provider).toHaveBeenCalledWith(indexPattern, aggConfig); }); @@ -60,7 +60,7 @@ describe('EditorConfigProvider', () => { registry.register(provider2); expect(provider).not.toHaveBeenCalled(); expect(provider2).not.toHaveBeenCalled(); - const aggConfig = {} as AggConfig; + const aggConfig = {} as IAggConfig; registry.getConfigForAgg(indexPattern, aggConfig); expect(provider).toHaveBeenCalledWith(indexPattern, aggConfig); expect(provider2).toHaveBeenCalledWith(indexPattern, aggConfig); @@ -72,7 +72,7 @@ describe('EditorConfigProvider', () => { } function getOutputConfig(reg: EditorConfigProviderRegistry) { - return reg.getConfigForAgg(indexPattern, {} as AggConfig).singleParam; + return reg.getConfigForAgg(indexPattern, {} as IAggConfig).singleParam; } it('should have hidden true if at least one config was hidden true', () => { diff --git a/src/legacy/ui/public/vis/config/editor_config_providers.ts b/src/legacy/ui/public/vis/config/editor_config_providers.ts index 1e82a3ca2762e0..ec82597d5fb19b 100644 --- a/src/legacy/ui/public/vis/config/editor_config_providers.ts +++ b/src/legacy/ui/public/vis/config/editor_config_providers.ts @@ -18,7 +18,7 @@ */ import { IndexPattern } from 'src/plugins/data/public'; -import { AggConfig } from 'ui/agg_types'; +import { IAggConfig } from 'ui/agg_types'; import { parseEsInterval } from '../../../../core_plugins/data/public'; import { TimeIntervalParam, @@ -29,7 +29,7 @@ import { } from './types'; import { leastCommonInterval, leastCommonMultiple } from '../lib'; -type EditorConfigProvider = (indexPattern: IndexPattern, aggConfig: AggConfig) => EditorConfig; +type EditorConfigProvider = (indexPattern: IndexPattern, aggConfig: IAggConfig) => EditorConfig; class EditorConfigProviderRegistry { private providers: Set = new Set(); @@ -38,7 +38,7 @@ class EditorConfigProviderRegistry { this.providers.add(configProvider); } - public getConfigForAgg(indexPattern: IndexPattern, aggConfig: AggConfig): EditorConfig { + public getConfigForAgg(indexPattern: IndexPattern, aggConfig: IAggConfig): EditorConfig { const configs = Array.from(this.providers).map(provider => provider(indexPattern, aggConfig)); return this.mergeConfigs(configs); } diff --git a/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts b/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts index e763eb1b90791e..d8227343159e6c 100644 --- a/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts +++ b/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts @@ -19,15 +19,15 @@ import { i18n } from '@kbn/i18n'; import { identity } from 'lodash'; -import { AggConfig } from 'ui/agg_types'; +import { IAggConfig } from 'ui/agg_types'; import { npStart } from 'ui/new_platform'; import { SerializedFieldFormat } from 'src/plugins/expressions/public'; import { fieldFormats } from '../../../../../../plugins/data/public'; import { Vis } from '../../../../../core_plugins/visualizations/public'; import { tabifyGetColumns } from '../../../agg_response/tabify/_get_columns'; -import { DateRangeKey, convertDateRangeToString } from '../../../agg_types/buckets/date_range'; -import { IpRangeKey, convertIPRangeToString } from '../../../agg_types/buckets/ip_range'; +import { DateRangeKey, convertDateRangeToString } from '../../../agg_types'; +import { IpRangeKey, convertIPRangeToString } from '../../../agg_types'; interface TermsFieldFormatParams { otherBucketLabel: string; @@ -62,7 +62,7 @@ const getFieldFormat = ( return new DefaultFieldFormat(); }; -export const createFormat = (agg: AggConfig): SerializedFieldFormat => { +export const createFormat = (agg: IAggConfig): SerializedFieldFormat => { const format: SerializedFieldFormat = agg.params.field ? agg.params.field.format.toJSON() : {}; const formats: Record SerializedFieldFormat> = { date_range: () => ({ id: 'date_range', params: format }), @@ -106,7 +106,7 @@ export const getFormat: FormatFactory = mapping => { const format = getFieldFormat(id, mapping.params); const gte = '\u2265'; const lt = '\u003c'; - return i18n.translate('common.ui.aggTypes.buckets.ranges.rangesFormatMessage', { + return i18n.translate('common.ui.aggTypes.rangesFormatMessage', { defaultMessage: '{gte} {from} and {lt} {to}', values: { gte, @@ -155,7 +155,7 @@ export const getFormat: FormatFactory = mapping => { } }; -export const getTableAggs = (vis: Vis): AggConfig[] => { +export const getTableAggs = (vis: Vis): IAggConfig[] => { if (!vis.aggs || !vis.aggs.getResponseAggs) { return []; } diff --git a/x-pack/legacy/plugins/lens/public/editor_frame_plugin/plugin.test.tsx b/x-pack/legacy/plugins/lens/public/editor_frame_plugin/plugin.test.tsx index da9fdd7927d605..7a6067dd5f23c2 100644 --- a/x-pack/legacy/plugins/lens/public/editor_frame_plugin/plugin.test.tsx +++ b/x-pack/legacy/plugins/lens/public/editor_frame_plugin/plugin.test.tsx @@ -14,9 +14,6 @@ import { } from './mocks'; jest.mock('ui/new_platform'); -jest.mock('ui/chrome', () => ({ - getSavedObjectsClient: jest.fn(), -})); // mock away actual dependencies to prevent all of it being loaded jest.mock('../../../../../../src/legacy/core_plugins/interpreter/public/registries', () => {}); diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.test.tsx b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.test.tsx index 2bd6c7106a952a..5be92e31f4934a 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.test.tsx +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.test.tsx @@ -14,33 +14,31 @@ import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { createMockedIndexPattern } from '../../mocks'; import { IndexPatternPrivateState } from '../../types'; -jest.mock('ui/new_platform', () => { +jest.mock(`ui/new_platform`, () => { // Due to the way we are handling shims in the NP migration, we need // to mock core here so that upstream services don't cause these // tests to fail. Ordinarly `jest.mock('ui/new_platform')` would be // sufficient, however we need to mock one of the `uiSettings` return // values for this suite, so we must manually assemble the mock. // Because babel hoists `jest` we must use an inline `require` - // to ensure the core mocks are available (`jest.doMock` doesn't + // to ensure the mocks are available (`jest.doMock` doesn't // work in this case). This mock should be able to be replaced // altogether once Lens has migrated to the new platform. - const { coreMock } = require('src/core/public/mocks'); // eslint-disable-line @typescript-eslint/no-var-requires + const { + createUiNewPlatformMock, + } = require('../../../../../../../../src/legacy/ui/public/new_platform/__mocks__/helpers'); // eslint-disable-line @typescript-eslint/no-var-requires + // This is basically duplicating what would ordinarily happen in + // `ui/new_platform/__mocks__` + const { npSetup, npStart } = createUiNewPlatformMock(); + // Override the core mock provided by `ui/new_platform` + npStart.core.uiSettings.get = (path: string) => { + if (path === 'histogram:maxBars') { + return 10; + } + }; return { - npSetup: { - core: coreMock.createSetup(), - }, - npStart: { - core: { - ...coreMock.createStart(), - uiSettings: { - get: (path: string) => { - if (path === 'histogram:maxBars') { - return 10; - } - }, - }, - }, - }, + npSetup, + npStart, }; }); diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx index dbb6278352f096..ae12be90ddd058 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; // TODO: make this new-platform compatible -import { isValidInterval } from 'ui/agg_types/utils'; +import { isValidInterval } from 'ui/agg_types'; import { EuiForm, diff --git a/x-pack/legacy/plugins/rollup/public/legacy.ts b/x-pack/legacy/plugins/rollup/public/legacy.ts index a2738372ff346f..a70f181dc86fb7 100644 --- a/x-pack/legacy/plugins/rollup/public/legacy.ts +++ b/x-pack/legacy/plugins/rollup/public/legacy.ts @@ -6,8 +6,8 @@ import { npSetup, npStart } from 'ui/new_platform'; import { editorConfigProviders } from 'ui/vis/config'; -import { aggTypeFilters } from 'ui/agg_types/filter'; -import { aggTypeFieldFilters } from 'ui/agg_types/param_types/filter'; +import { aggTypeFilters } from 'ui/agg_types'; +import { aggTypeFieldFilters } from 'ui/agg_types'; import { addSearchStrategy } from '../../../../../src/plugins/data/public'; import { RollupPlugin } from './plugin'; import { setup as management } from '../../../../../src/legacy/core_plugins/management/public/legacy'; diff --git a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts b/x-pack/legacy/plugins/rollup/public/legacy_imports.ts index 981f97963591e7..4fece0fddfa3ef 100644 --- a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts +++ b/x-pack/legacy/plugins/rollup/public/legacy_imports.ts @@ -7,6 +7,6 @@ // @ts-ignore export { findIllegalCharactersInIndexName, INDEX_ILLEGAL_CHARACTERS_VISIBLE } from 'ui/indices'; -export { AggTypeFilters } from 'ui/agg_types/filter'; -export { AggTypeFieldFilters } from 'ui/agg_types/param_types/filter'; +export { AggTypeFilters } from 'ui/agg_types'; +export { AggTypeFieldFilters } from 'ui/agg_types'; export { EditorConfigProviderRegistry } from 'ui/vis/config'; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 58d97ce263bea6..351bc9def3082f 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -77,109 +77,110 @@ }, "messages": { "common.ui.aggResponse.allDocsTitle": "すべてのドキュメント", - "common.ui.aggTypes.aggGroups.bucketsText": "バケット", - "common.ui.aggTypes.aggGroups.metricsText": "メトリック", - "common.ui.aggTypes.buckets.dateHistogramLabel": "{intervalDescription}ごとの {fieldName}", - "common.ui.aggTypes.buckets.dateHistogramTitle": "日付ヒストグラム", - "common.ui.aggTypes.buckets.dateRangeTitle": "日付範囲", - "common.ui.aggTypes.buckets.filtersTitle": "フィルター", - "common.ui.aggTypes.buckets.filterTitle": "フィルター", - "common.ui.aggTypes.buckets.geohashGridTitle": "ジオハッシュ", - "common.ui.aggTypes.buckets.geotileGridTitle": "ジオタイル", - "common.ui.aggTypes.buckets.histogramTitle": "ヒストグラム", - "common.ui.aggTypes.buckets.intervalOptions.autoDisplayName": "自動", - "common.ui.aggTypes.buckets.intervalOptions.dailyDisplayName": "日ごと", - "common.ui.aggTypes.buckets.intervalOptions.hourlyDisplayName": "1 時間ごと", - "common.ui.aggTypes.buckets.intervalOptions.millisecondDisplayName": "ミリ秒", - "common.ui.aggTypes.buckets.intervalOptions.minuteDisplayName": "分", - "common.ui.aggTypes.buckets.intervalOptions.monthlyDisplayName": "月ごと", - "common.ui.aggTypes.buckets.intervalOptions.secondDisplayName": "秒", - "common.ui.aggTypes.buckets.intervalOptions.weeklyDisplayName": "週ごと", - "common.ui.aggTypes.buckets.intervalOptions.yearlyDisplayName": "1 年ごと", - "common.ui.aggTypes.buckets.ipRangeLabel": "{fieldName} IP 範囲", - "common.ui.aggTypes.buckets.ipRangeTitle": "IPv4 範囲", - "common.ui.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} と {lt} {to}", - "common.ui.aggTypes.buckets.rangesLabel": "{fieldName} の範囲", - "common.ui.aggTypes.buckets.rangeTitle": "範囲", - "common.ui.aggTypes.buckets.significantTerms.excludeLabel": "除外", - "common.ui.aggTypes.buckets.significantTerms.includeLabel": "含める", - "common.ui.aggTypes.buckets.significantTermsLabel": "{fieldName} のトップ {size} の珍しいアイテム", - "common.ui.aggTypes.buckets.significantTermsTitle": "重要な用語", - "common.ui.aggTypes.buckets.terms.excludeLabel": "除外", - "common.ui.aggTypes.buckets.terms.includeLabel": "含める", - "common.ui.aggTypes.buckets.terms.missingBucketLabel": "欠測値", - "common.ui.aggTypes.buckets.terms.orderAscendingTitle": "昇順", - "common.ui.aggTypes.buckets.terms.orderDescendingTitle": "降順", - "common.ui.aggTypes.buckets.terms.otherBucketDescription": "このリクエストは、データバケットの基準外のドキュメントの数をカウントします。", - "common.ui.aggTypes.buckets.terms.otherBucketLabel": "その他", - "common.ui.aggTypes.buckets.terms.otherBucketTitle": "他のバケット", - "common.ui.aggTypes.buckets.termsTitle": "用語", - "common.ui.aggTypes.histogram.missingMaxMinValuesWarning": "自動スケールヒストグラムバケットから最高値と最低値を取得できません。これによりビジュアライゼーションのパフォーマンスが低下する可能性があります。", - "common.ui.aggTypes.metrics.averageBucketTitle": "平均バケット", - "common.ui.aggTypes.metrics.averageLabel": "平均 {field}", - "common.ui.aggTypes.metrics.averageTitle": "平均", - "common.ui.aggTypes.metrics.bucketAggTitle": "バケット集約", - "common.ui.aggTypes.metrics.countLabel": "カウント", - "common.ui.aggTypes.metrics.countTitle": "カウント", - "common.ui.aggTypes.metrics.cumulativeSumLabel": "累積合計", - "common.ui.aggTypes.metrics.cumulativeSumTitle": "累積合計", - "common.ui.aggTypes.metrics.derivativeLabel": "派生", - "common.ui.aggTypes.metrics.derivativeTitle": "派生", - "common.ui.aggTypes.metrics.geoBoundsLabel": "境界", - "common.ui.aggTypes.metrics.geoBoundsTitle": "境界", - "common.ui.aggTypes.metrics.geoCentroidLabel": "ジオセントロイド", - "common.ui.aggTypes.metrics.geoCentroidTitle": "ジオセントロイド", - "common.ui.aggTypes.metrics.maxBucketTitle": "最高バケット", - "common.ui.aggTypes.metrics.maxLabel": "最高 {field}", - "common.ui.aggTypes.metrics.maxTitle": "最高", - "common.ui.aggTypes.metrics.medianLabel": "中央 {field}", - "common.ui.aggTypes.metrics.medianTitle": "中央", - "common.ui.aggTypes.metrics.metricAggregationsSubtypeTitle": "メトリック集約", - "common.ui.aggTypes.metrics.metricAggTitle": "メトリック集約", - "common.ui.aggTypes.metrics.minBucketTitle": "最低バケット", - "common.ui.aggTypes.metrics.minLabel": "最低 {field}", - "common.ui.aggTypes.metrics.minTitle": "最低", - "common.ui.aggTypes.metrics.movingAvgLabel": "移動平均", - "common.ui.aggTypes.metrics.movingAvgTitle": "移動平均", - "common.ui.aggTypes.metrics.overallAverageLabel": "全体平均", - "common.ui.aggTypes.metrics.overallMaxLabel": "全体最高", - "common.ui.aggTypes.metrics.overallMinLabel": "全体最低", - "common.ui.aggTypes.metrics.overallSumLabel": "全体合計", - "common.ui.aggTypes.metrics.parentPipelineAggregationsSubtypeTitle": "親パイプライン集約", - "common.ui.aggTypes.metrics.percentileRanks.valuePropsLabel": "「{label}」の {format} のパーセンタイル順位", - "common.ui.aggTypes.metrics.percentileRanksLabel": "{field} のパーセンタイル順位", - "common.ui.aggTypes.metrics.percentileRanksTitle": "パーセンタイル順位", - "common.ui.aggTypes.metrics.percentiles.valuePropsLabel": "{label} の {percentile} パーセンタイル", - "common.ui.aggTypes.metrics.percentilesLabel": "{field} のパーセンタイル", - "common.ui.aggTypes.metrics.percentilesTitle": "パーセンタイル", - "common.ui.aggTypes.metrics.serialDiffLabel": "差分の推移", - "common.ui.aggTypes.metrics.serialDiffTitle": "差分の推移", - "common.ui.aggTypes.metrics.siblingPipelineAggregationsSubtypeTitle": "シブリングパイプラインアグリゲーション", - "common.ui.aggTypes.metrics.standardDeviation.keyDetailsLabel": "{fieldDisplayName} の標準偏差", - "common.ui.aggTypes.metrics.standardDeviation.lowerKeyDetailsTitle": "下の{label}", - "common.ui.aggTypes.metrics.standardDeviation.upperKeyDetailsTitle": "上の{label}", - "common.ui.aggTypes.metrics.standardDeviationLabel": "{field} の標準偏差", - "common.ui.aggTypes.metrics.standardDeviationTitle": "標準偏差", - "common.ui.aggTypes.metrics.sumBucketTitle": "合計バケット", - "common.ui.aggTypes.metrics.sumLabel": "{field} の合計", - "common.ui.aggTypes.metrics.sumTitle": "合計", - "common.ui.aggTypes.metrics.topHit.ascendingLabel": "昇順", - "common.ui.aggTypes.metrics.topHit.averageLabel": "平均", - "common.ui.aggTypes.metrics.topHit.concatenateLabel": "連結", - "common.ui.aggTypes.metrics.topHit.descendingLabel": "降順", - "common.ui.aggTypes.metrics.topHit.firstPrefixLabel": "最初", - "common.ui.aggTypes.metrics.topHit.lastPrefixLabel": "最後", - "common.ui.aggTypes.metrics.topHit.maxLabel": "最高", - "common.ui.aggTypes.metrics.topHit.minLabel": "最低", - "common.ui.aggTypes.metrics.topHit.sumLabel": "合計", - "common.ui.aggTypes.metrics.topHitTitle": "トップヒット", - "common.ui.aggTypes.metrics.uniqueCountLabel": "{field} のユニークカウント", - "common.ui.aggTypes.metrics.uniqueCountTitle": "ユニークカウント", - "common.ui.aggTypes.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", - "common.ui.aggTypes.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", - "common.ui.aggTypes.paramTypes.field.invalidSavedFieldParameterErrorMessage": "保存された {fieldParameter} パラメーターが無効になりました。新しいフィールドを選択してください。", - "common.ui.aggTypes.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", - "common.ui.aggTypes.string.customLabel": "カスタムラベル", + "common.ui.aggTypes.rangesFormatMessage": "{gte} {from} と {lt} {to}", + "data.search.aggs.aggGroups.bucketsText": "バケット", + "data.search.aggs.aggGroups.metricsText": "メトリック", + "data.search.aggs.buckets.dateHistogramLabel": "{intervalDescription}ごとの {fieldName}", + "data.search.aggs.buckets.dateHistogramTitle": "日付ヒストグラム", + "data.search.aggs.buckets.dateRangeTitle": "日付範囲", + "data.search.aggs.buckets.filtersTitle": "フィルター", + "data.search.aggs.buckets.filterTitle": "フィルター", + "data.search.aggs.buckets.geohashGridTitle": "ジオハッシュ", + "data.search.aggs.buckets.geotileGridTitle": "ジオタイル", + "data.search.aggs.buckets.histogramTitle": "ヒストグラム", + "data.search.aggs.buckets.intervalOptions.autoDisplayName": "自動", + "data.search.aggs.buckets.intervalOptions.dailyDisplayName": "日ごと", + "data.search.aggs.buckets.intervalOptions.hourlyDisplayName": "1 時間ごと", + "data.search.aggs.buckets.intervalOptions.millisecondDisplayName": "ミリ秒", + "data.search.aggs.buckets.intervalOptions.minuteDisplayName": "分", + "data.search.aggs.buckets.intervalOptions.monthlyDisplayName": "月ごと", + "data.search.aggs.buckets.intervalOptions.secondDisplayName": "秒", + "data.search.aggs.buckets.intervalOptions.weeklyDisplayName": "週ごと", + "data.search.aggs.buckets.intervalOptions.yearlyDisplayName": "1 年ごと", + "data.search.aggs.buckets.ipRangeLabel": "{fieldName} IP 範囲", + "data.search.aggs.buckets.ipRangeTitle": "IPv4 範囲", + "data.search.aggs.aggTypes.rangesFormatMessage": "{gte} {from} と {lt} {to}", + "data.search.aggs.aggTypesLabel": "{fieldName} の範囲", + "data.search.aggs.buckets.rangeTitle": "範囲", + "data.search.aggs.buckets.significantTerms.excludeLabel": "除外", + "data.search.aggs.buckets.significantTerms.includeLabel": "含める", + "data.search.aggs.buckets.significantTermsLabel": "{fieldName} のトップ {size} の珍しいアイテム", + "data.search.aggs.buckets.significantTermsTitle": "重要な用語", + "data.search.aggs.buckets.terms.excludeLabel": "除外", + "data.search.aggs.buckets.terms.includeLabel": "含める", + "data.search.aggs.buckets.terms.missingBucketLabel": "欠測値", + "data.search.aggs.buckets.terms.orderAscendingTitle": "昇順", + "data.search.aggs.buckets.terms.orderDescendingTitle": "降順", + "data.search.aggs.buckets.terms.otherBucketDescription": "このリクエストは、データバケットの基準外のドキュメントの数をカウントします。", + "data.search.aggs.buckets.terms.otherBucketLabel": "その他", + "data.search.aggs.buckets.terms.otherBucketTitle": "他のバケット", + "data.search.aggs.buckets.termsTitle": "用語", + "data.search.aggs.histogram.missingMaxMinValuesWarning": "自動スケールヒストグラムバケットから最高値と最低値を取得できません。これによりビジュアライゼーションのパフォーマンスが低下する可能性があります。", + "data.search.aggs.metrics.averageBucketTitle": "平均バケット", + "data.search.aggs.metrics.averageLabel": "平均 {field}", + "data.search.aggs.metrics.averageTitle": "平均", + "data.search.aggs.metrics.bucketAggTitle": "バケット集約", + "data.search.aggs.metrics.countLabel": "カウント", + "data.search.aggs.metrics.countTitle": "カウント", + "data.search.aggs.metrics.cumulativeSumLabel": "累積合計", + "data.search.aggs.metrics.cumulativeSumTitle": "累積合計", + "data.search.aggs.metrics.derivativeLabel": "派生", + "data.search.aggs.metrics.derivativeTitle": "派生", + "data.search.aggs.metrics.geoBoundsLabel": "境界", + "data.search.aggs.metrics.geoBoundsTitle": "境界", + "data.search.aggs.metrics.geoCentroidLabel": "ジオセントロイド", + "data.search.aggs.metrics.geoCentroidTitle": "ジオセントロイド", + "data.search.aggs.metrics.maxBucketTitle": "最高バケット", + "data.search.aggs.metrics.maxLabel": "最高 {field}", + "data.search.aggs.metrics.maxTitle": "最高", + "data.search.aggs.metrics.medianLabel": "中央 {field}", + "data.search.aggs.metrics.medianTitle": "中央", + "data.search.aggs.metrics.metricAggregationsSubtypeTitle": "メトリック集約", + "data.search.aggs.metrics.metricAggTitle": "メトリック集約", + "data.search.aggs.metrics.minBucketTitle": "最低バケット", + "data.search.aggs.metrics.minLabel": "最低 {field}", + "data.search.aggs.metrics.minTitle": "最低", + "data.search.aggs.metrics.movingAvgLabel": "移動平均", + "data.search.aggs.metrics.movingAvgTitle": "移動平均", + "data.search.aggs.metrics.overallAverageLabel": "全体平均", + "data.search.aggs.metrics.overallMaxLabel": "全体最高", + "data.search.aggs.metrics.overallMinLabel": "全体最低", + "data.search.aggs.metrics.overallSumLabel": "全体合計", + "data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle": "親パイプライン集約", + "data.search.aggs.metrics.percentileRanks.valuePropsLabel": "「{label}」の {format} のパーセンタイル順位", + "data.search.aggs.metrics.percentileRanksLabel": "{field} のパーセンタイル順位", + "data.search.aggs.metrics.percentileRanksTitle": "パーセンタイル順位", + "data.search.aggs.metrics.percentiles.valuePropsLabel": "{label} の {percentile} パーセンタイル", + "data.search.aggs.metrics.percentilesLabel": "{field} のパーセンタイル", + "data.search.aggs.metrics.percentilesTitle": "パーセンタイル", + "data.search.aggs.metrics.serialDiffLabel": "差分の推移", + "data.search.aggs.metrics.serialDiffTitle": "差分の推移", + "data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle": "シブリングパイプラインアグリゲーション", + "data.search.aggs.metrics.standardDeviation.keyDetailsLabel": "{fieldDisplayName} の標準偏差", + "data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle": "下の{label}", + "data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle": "上の{label}", + "data.search.aggs.metrics.standardDeviationLabel": "{field} の標準偏差", + "data.search.aggs.metrics.standardDeviationTitle": "標準偏差", + "data.search.aggs.metrics.sumBucketTitle": "合計バケット", + "data.search.aggs.metrics.sumLabel": "{field} の合計", + "data.search.aggs.metrics.sumTitle": "合計", + "data.search.aggs.metrics.topHit.ascendingLabel": "昇順", + "data.search.aggs.metrics.topHit.averageLabel": "平均", + "data.search.aggs.metrics.topHit.concatenateLabel": "連結", + "data.search.aggs.metrics.topHit.descendingLabel": "降順", + "data.search.aggs.metrics.topHit.firstPrefixLabel": "最初", + "data.search.aggs.metrics.topHit.lastPrefixLabel": "最後", + "data.search.aggs.metrics.topHit.maxLabel": "最高", + "data.search.aggs.metrics.topHit.minLabel": "最低", + "data.search.aggs.metrics.topHit.sumLabel": "合計", + "data.search.aggs.metrics.topHitTitle": "トップヒット", + "data.search.aggs.metrics.uniqueCountLabel": "{field} のユニークカウント", + "data.search.aggs.metrics.uniqueCountTitle": "ユニークカウント", + "data.search.aggs.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", + "data.search.aggs.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", + "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "保存された {fieldParameter} パラメーターが無効になりました。新しいフィールドを選択してください。", + "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", + "data.search.aggs.string.customLabel": "カスタムラベル", "common.ui.chrome.bigUrlWarningNotificationMessage": "{advancedSettingsLink}で{storeInSessionStorageParam}オプションを有効にするか、オンスクリーンビジュアルを簡素化してください。", "common.ui.chrome.bigUrlWarningNotificationMessage.advancedSettingsLinkText": "高度な設定", "common.ui.chrome.bigUrlWarningNotificationTitle": "URLが大きく、Kibanaの動作が停止する可能性があります", @@ -375,7 +376,7 @@ "common.ui.stateManagement.unableToStoreHistoryInSessionErrorMessage": "セッションがいっぱいで安全に削除できるアイテムが見つからないため、Kibana は履歴アイテムを保存できません。\n\nこれは大抵新規タブに移動することで解決されますが、より大きな問題が原因である可能性もあります。このメッセージが定期的に表示される場合は、{gitHubIssuesUrl} で問題を報告してください。", "common.ui.url.replacementFailedErrorMessage": "置換に失敗、未解決の表現式: {expr}", "common.ui.url.savedObjectIsMissingNotificationMessage": "保存されたオブジェクトがありません", - "common.ui.vis.aggConfig.percentageOfLabel": "{label} のパーセンテージ", + "data.search.aggs.percentageOfLabel": "{label} のパーセンテージ", "common.ui.vis.defaultFeedbackMessage": "フィードバックがありますか?{link} で問題を報告してください。", "common.ui.vis.kibanaMap.leaflet.fitDataBoundsAriaLabel": "データバウンドを合わせる", "common.ui.vis.kibanaMap.zoomWarning": "ズームレベルが最大に達しました。完全にズームインするには、Elasticsearch と Kibana の {defaultDistribution} にアップグレードしてください。{ems} でより多くのズームレベルが利用できます。または、独自のマップサーバーを構成できます。詳細は { wms } または { configSettings} をご覧ください。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 5d62e15be2b9f3..066bafd990fe37 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -77,109 +77,110 @@ }, "messages": { "common.ui.aggResponse.allDocsTitle": "所有文档", - "common.ui.aggTypes.aggGroups.bucketsText": "存储桶", - "common.ui.aggTypes.aggGroups.metricsText": "指标", - "common.ui.aggTypes.buckets.dateHistogramLabel": "{fieldName}/{intervalDescription}", - "common.ui.aggTypes.buckets.dateHistogramTitle": "Date Histogram", - "common.ui.aggTypes.buckets.dateRangeTitle": "日期范围", - "common.ui.aggTypes.buckets.filtersTitle": "筛选", - "common.ui.aggTypes.buckets.filterTitle": "筛选", - "common.ui.aggTypes.buckets.geohashGridTitle": "Geohash", - "common.ui.aggTypes.buckets.geotileGridTitle": "地理磁贴", - "common.ui.aggTypes.buckets.histogramTitle": "Histogram", - "common.ui.aggTypes.buckets.intervalOptions.autoDisplayName": "自动", - "common.ui.aggTypes.buckets.intervalOptions.dailyDisplayName": "每日", - "common.ui.aggTypes.buckets.intervalOptions.hourlyDisplayName": "每小时", - "common.ui.aggTypes.buckets.intervalOptions.millisecondDisplayName": "毫秒", - "common.ui.aggTypes.buckets.intervalOptions.minuteDisplayName": "分钟", - "common.ui.aggTypes.buckets.intervalOptions.monthlyDisplayName": "每月", - "common.ui.aggTypes.buckets.intervalOptions.secondDisplayName": "秒", - "common.ui.aggTypes.buckets.intervalOptions.weeklyDisplayName": "每周", - "common.ui.aggTypes.buckets.intervalOptions.yearlyDisplayName": "每年", - "common.ui.aggTypes.buckets.ipRangeLabel": "{fieldName} IP 范围", - "common.ui.aggTypes.buckets.ipRangeTitle": "IPv4 范围", - "common.ui.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} 且 {lt} {to}", - "common.ui.aggTypes.buckets.rangesLabel": "{fieldName} 范围", - "common.ui.aggTypes.buckets.rangeTitle": "范围", - "common.ui.aggTypes.buckets.significantTerms.excludeLabel": "排除", - "common.ui.aggTypes.buckets.significantTerms.includeLabel": "包括", - "common.ui.aggTypes.buckets.significantTermsLabel": "{fieldName} 中排名前 {size} 的罕见词", - "common.ui.aggTypes.buckets.significantTermsTitle": "重要词", - "common.ui.aggTypes.buckets.terms.excludeLabel": "排除", - "common.ui.aggTypes.buckets.terms.includeLabel": "包括", - "common.ui.aggTypes.buckets.terms.missingBucketLabel": "缺失", - "common.ui.aggTypes.buckets.terms.orderAscendingTitle": "升序", - "common.ui.aggTypes.buckets.terms.orderDescendingTitle": "降序", - "common.ui.aggTypes.buckets.terms.otherBucketDescription": "此请求计数不符合数据存储桶条件的文档数目。", - "common.ui.aggTypes.buckets.terms.otherBucketLabel": "其他", - "common.ui.aggTypes.buckets.terms.otherBucketTitle": "其他存储桶", - "common.ui.aggTypes.buckets.termsTitle": "词", - "common.ui.aggTypes.histogram.missingMaxMinValuesWarning": "无法检索最大值和最小值以自动缩放直方图存储桶。这可能会导致可视化性能低下。", - "common.ui.aggTypes.metrics.averageBucketTitle": "平均存储桶", - "common.ui.aggTypes.metrics.averageLabel": "{field}平均值", - "common.ui.aggTypes.metrics.averageTitle": "平均值", - "common.ui.aggTypes.metrics.bucketAggTitle": "存储桶聚合", - "common.ui.aggTypes.metrics.countLabel": "计数", - "common.ui.aggTypes.metrics.countTitle": "计数", - "common.ui.aggTypes.metrics.cumulativeSumLabel": "累计和", - "common.ui.aggTypes.metrics.cumulativeSumTitle": "累计和", - "common.ui.aggTypes.metrics.derivativeLabel": "导数", - "common.ui.aggTypes.metrics.derivativeTitle": "导数", - "common.ui.aggTypes.metrics.geoBoundsLabel": "地理边界", - "common.ui.aggTypes.metrics.geoBoundsTitle": "地理边界", - "common.ui.aggTypes.metrics.geoCentroidLabel": "地理重心", - "common.ui.aggTypes.metrics.geoCentroidTitle": "地理重心", - "common.ui.aggTypes.metrics.maxBucketTitle": "最大存储桶", - "common.ui.aggTypes.metrics.maxLabel": "{field}最大值", - "common.ui.aggTypes.metrics.maxTitle": "最大值", - "common.ui.aggTypes.metrics.medianLabel": "{field}中值", - "common.ui.aggTypes.metrics.medianTitle": "中值", - "common.ui.aggTypes.metrics.metricAggregationsSubtypeTitle": "指标聚合", - "common.ui.aggTypes.metrics.metricAggTitle": "指标聚合", - "common.ui.aggTypes.metrics.minBucketTitle": "最小存储桶", - "common.ui.aggTypes.metrics.minLabel": "{field}最小值", - "common.ui.aggTypes.metrics.minTitle": "最小值", - "common.ui.aggTypes.metrics.movingAvgLabel": "移动平均值", - "common.ui.aggTypes.metrics.movingAvgTitle": "移动平均值", - "common.ui.aggTypes.metrics.overallAverageLabel": "总体平均值", - "common.ui.aggTypes.metrics.overallMaxLabel": "总体最大值", - "common.ui.aggTypes.metrics.overallMinLabel": "总体最大值", - "common.ui.aggTypes.metrics.overallSumLabel": "总和", - "common.ui.aggTypes.metrics.parentPipelineAggregationsSubtypeTitle": "父级管道聚合", - "common.ui.aggTypes.metrics.percentileRanks.valuePropsLabel": "“{label}” 的百分位数排名 {format}", - "common.ui.aggTypes.metrics.percentileRanksLabel": "“{field}” 的百分位数排名", - "common.ui.aggTypes.metrics.percentileRanksTitle": "百分位数排名", - "common.ui.aggTypes.metrics.percentiles.valuePropsLabel": "“{label}” 的 {percentile} 百分位数", - "common.ui.aggTypes.metrics.percentilesLabel": "“{field}” 的百分位数", - "common.ui.aggTypes.metrics.percentilesTitle": "百分位数", - "common.ui.aggTypes.metrics.serialDiffLabel": "序列差异", - "common.ui.aggTypes.metrics.serialDiffTitle": "序列差异", - "common.ui.aggTypes.metrics.siblingPipelineAggregationsSubtypeTitle": "同级管道聚合", - "common.ui.aggTypes.metrics.standardDeviation.keyDetailsLabel": "“{fieldDisplayName}” 的标准偏差", - "common.ui.aggTypes.metrics.standardDeviation.lowerKeyDetailsTitle": "下{label}", - "common.ui.aggTypes.metrics.standardDeviation.upperKeyDetailsTitle": "上{label}", - "common.ui.aggTypes.metrics.standardDeviationLabel": "“{field}” 的标准偏差", - "common.ui.aggTypes.metrics.standardDeviationTitle": "标准偏差", - "common.ui.aggTypes.metrics.sumBucketTitle": "求和存储桶", - "common.ui.aggTypes.metrics.sumLabel": "“{field}” 的和", - "common.ui.aggTypes.metrics.sumTitle": "和", - "common.ui.aggTypes.metrics.topHit.ascendingLabel": "升序", - "common.ui.aggTypes.metrics.topHit.averageLabel": "平均值", - "common.ui.aggTypes.metrics.topHit.concatenateLabel": "连接", - "common.ui.aggTypes.metrics.topHit.descendingLabel": "降序", - "common.ui.aggTypes.metrics.topHit.firstPrefixLabel": "第一", - "common.ui.aggTypes.metrics.topHit.lastPrefixLabel": "最后", - "common.ui.aggTypes.metrics.topHit.maxLabel": "最大值", - "common.ui.aggTypes.metrics.topHit.minLabel": "最小值", - "common.ui.aggTypes.metrics.topHit.sumLabel": "和", - "common.ui.aggTypes.metrics.topHitTitle": "最高命中结果", - "common.ui.aggTypes.metrics.uniqueCountLabel": "“{field}” 的唯一计数", - "common.ui.aggTypes.metrics.uniqueCountTitle": "唯一计数", - "common.ui.aggTypes.otherBucket.labelForMissingValuesLabel": "缺失值的标签", - "common.ui.aggTypes.otherBucket.labelForOtherBucketLabel": "其他存储桶的标签", - "common.ui.aggTypes.paramTypes.field.invalidSavedFieldParameterErrorMessage": "已保存的 {fieldParameter} 参数现在无效。请选择新字段。", - "common.ui.aggTypes.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} 是必需字段", - "common.ui.aggTypes.string.customLabel": "定制标签", + "common.ui.aggTypes.rangesFormatMessage": "{gte} {from} 且 {lt} {to}", + "data.search.aggs.aggGroups.bucketsText": "存储桶", + "data.search.aggs.aggGroups.metricsText": "指标", + "data.search.aggs.buckets.dateHistogramLabel": "{fieldName}/{intervalDescription}", + "data.search.aggs.buckets.dateHistogramTitle": "Date Histogram", + "data.search.aggs.buckets.dateRangeTitle": "日期范围", + "data.search.aggs.buckets.filtersTitle": "筛选", + "data.search.aggs.buckets.filterTitle": "筛选", + "data.search.aggs.buckets.geohashGridTitle": "Geohash", + "data.search.aggs.buckets.geotileGridTitle": "地理磁贴", + "data.search.aggs.buckets.histogramTitle": "Histogram", + "data.search.aggs.buckets.intervalOptions.autoDisplayName": "自动", + "data.search.aggs.buckets.intervalOptions.dailyDisplayName": "每日", + "data.search.aggs.buckets.intervalOptions.hourlyDisplayName": "每小时", + "data.search.aggs.buckets.intervalOptions.millisecondDisplayName": "毫秒", + "data.search.aggs.buckets.intervalOptions.minuteDisplayName": "分钟", + "data.search.aggs.buckets.intervalOptions.monthlyDisplayName": "每月", + "data.search.aggs.buckets.intervalOptions.secondDisplayName": "秒", + "data.search.aggs.buckets.intervalOptions.weeklyDisplayName": "每周", + "data.search.aggs.buckets.intervalOptions.yearlyDisplayName": "每年", + "data.search.aggs.buckets.ipRangeLabel": "{fieldName} IP 范围", + "data.search.aggs.buckets.ipRangeTitle": "IPv4 范围", + "data.search.aggs.aggTypes.rangesFormatMessage": "{gte} {from} 且 {lt} {to}", + "data.search.aggs.aggTypesLabel": "{fieldName} 范围", + "data.search.aggs.buckets.rangeTitle": "范围", + "data.search.aggs.buckets.significantTerms.excludeLabel": "排除", + "data.search.aggs.buckets.significantTerms.includeLabel": "包括", + "data.search.aggs.buckets.significantTermsLabel": "{fieldName} 中排名前 {size} 的罕见词", + "data.search.aggs.buckets.significantTermsTitle": "重要词", + "data.search.aggs.buckets.terms.excludeLabel": "排除", + "data.search.aggs.buckets.terms.includeLabel": "包括", + "data.search.aggs.buckets.terms.missingBucketLabel": "缺失", + "data.search.aggs.buckets.terms.orderAscendingTitle": "升序", + "data.search.aggs.buckets.terms.orderDescendingTitle": "降序", + "data.search.aggs.buckets.terms.otherBucketDescription": "此请求计数不符合数据存储桶条件的文档数目。", + "data.search.aggs.buckets.terms.otherBucketLabel": "其他", + "data.search.aggs.buckets.terms.otherBucketTitle": "其他存储桶", + "data.search.aggs.buckets.termsTitle": "词", + "data.search.aggs.histogram.missingMaxMinValuesWarning": "无法检索最大值和最小值以自动缩放直方图存储桶。这可能会导致可视化性能低下。", + "data.search.aggs.metrics.averageBucketTitle": "平均存储桶", + "data.search.aggs.metrics.averageLabel": "{field}平均值", + "data.search.aggs.metrics.averageTitle": "平均值", + "data.search.aggs.metrics.bucketAggTitle": "存储桶聚合", + "data.search.aggs.metrics.countLabel": "计数", + "data.search.aggs.metrics.countTitle": "计数", + "data.search.aggs.metrics.cumulativeSumLabel": "累计和", + "data.search.aggs.metrics.cumulativeSumTitle": "累计和", + "data.search.aggs.metrics.derivativeLabel": "导数", + "data.search.aggs.metrics.derivativeTitle": "导数", + "data.search.aggs.metrics.geoBoundsLabel": "地理边界", + "data.search.aggs.metrics.geoBoundsTitle": "地理边界", + "data.search.aggs.metrics.geoCentroidLabel": "地理重心", + "data.search.aggs.metrics.geoCentroidTitle": "地理重心", + "data.search.aggs.metrics.maxBucketTitle": "最大存储桶", + "data.search.aggs.metrics.maxLabel": "{field}最大值", + "data.search.aggs.metrics.maxTitle": "最大值", + "data.search.aggs.metrics.medianLabel": "{field}中值", + "data.search.aggs.metrics.medianTitle": "中值", + "data.search.aggs.metrics.metricAggregationsSubtypeTitle": "指标聚合", + "data.search.aggs.metrics.metricAggTitle": "指标聚合", + "data.search.aggs.metrics.minBucketTitle": "最小存储桶", + "data.search.aggs.metrics.minLabel": "{field}最小值", + "data.search.aggs.metrics.minTitle": "最小值", + "data.search.aggs.metrics.movingAvgLabel": "移动平均值", + "data.search.aggs.metrics.movingAvgTitle": "移动平均值", + "data.search.aggs.metrics.overallAverageLabel": "总体平均值", + "data.search.aggs.metrics.overallMaxLabel": "总体最大值", + "data.search.aggs.metrics.overallMinLabel": "总体最大值", + "data.search.aggs.metrics.overallSumLabel": "总和", + "data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle": "父级管道聚合", + "data.search.aggs.metrics.percentileRanks.valuePropsLabel": "“{label}” 的百分位数排名 {format}", + "data.search.aggs.metrics.percentileRanksLabel": "“{field}” 的百分位数排名", + "data.search.aggs.metrics.percentileRanksTitle": "百分位数排名", + "data.search.aggs.metrics.percentiles.valuePropsLabel": "“{label}” 的 {percentile} 百分位数", + "data.search.aggs.metrics.percentilesLabel": "“{field}” 的百分位数", + "data.search.aggs.metrics.percentilesTitle": "百分位数", + "data.search.aggs.metrics.serialDiffLabel": "序列差异", + "data.search.aggs.metrics.serialDiffTitle": "序列差异", + "data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle": "同级管道聚合", + "data.search.aggs.metrics.standardDeviation.keyDetailsLabel": "“{fieldDisplayName}” 的标准偏差", + "data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle": "下{label}", + "data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle": "上{label}", + "data.search.aggs.metrics.standardDeviationLabel": "“{field}” 的标准偏差", + "data.search.aggs.metrics.standardDeviationTitle": "标准偏差", + "data.search.aggs.metrics.sumBucketTitle": "求和存储桶", + "data.search.aggs.metrics.sumLabel": "“{field}” 的和", + "data.search.aggs.metrics.sumTitle": "和", + "data.search.aggs.metrics.topHit.ascendingLabel": "升序", + "data.search.aggs.metrics.topHit.averageLabel": "平均值", + "data.search.aggs.metrics.topHit.concatenateLabel": "连接", + "data.search.aggs.metrics.topHit.descendingLabel": "降序", + "data.search.aggs.metrics.topHit.firstPrefixLabel": "第一", + "data.search.aggs.metrics.topHit.lastPrefixLabel": "最后", + "data.search.aggs.metrics.topHit.maxLabel": "最大值", + "data.search.aggs.metrics.topHit.minLabel": "最小值", + "data.search.aggs.metrics.topHit.sumLabel": "和", + "data.search.aggs.metrics.topHitTitle": "最高命中结果", + "data.search.aggs.metrics.uniqueCountLabel": "“{field}” 的唯一计数", + "data.search.aggs.metrics.uniqueCountTitle": "唯一计数", + "data.search.aggs.otherBucket.labelForMissingValuesLabel": "缺失值的标签", + "data.search.aggs.otherBucket.labelForOtherBucketLabel": "其他存储桶的标签", + "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "已保存的 {fieldParameter} 参数现在无效。请选择新字段。", + "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} 是必需字段", + "data.search.aggs.string.customLabel": "定制标签", "common.ui.chrome.bigUrlWarningNotificationMessage": "在{advancedSettingsLink}中启用“{storeInSessionStorageParam}”选项或简化屏幕视觉效果。", "common.ui.chrome.bigUrlWarningNotificationMessage.advancedSettingsLinkText": "高级设置", "common.ui.chrome.bigUrlWarningNotificationTitle": "URL 过长,Kibana 可能无法工作", @@ -375,7 +376,7 @@ "common.ui.stateManagement.unableToStoreHistoryInSessionErrorMessage": "Kibana 无法将历史记录项存储在您的会话中,因为其已满,并且似乎没有任何可安全删除的项。\n\n通常可通过移至新的标签页来解决此问题,但这会导致更大的问题。如果您有规律地看到此消息,请在 {gitHubIssuesUrl} 提交问题。", "common.ui.url.replacementFailedErrorMessage": "替换失败,未解析的表达式:{expr}", "common.ui.url.savedObjectIsMissingNotificationMessage": "已保存对象缺失", - "common.ui.vis.aggConfig.percentageOfLabel": "{label} 的百分比", + "data.search.aggs.percentageOfLabel": "{label} 的百分比", "common.ui.vis.defaultFeedbackMessage": "想反馈?请在“{link}中创建问题。", "common.ui.vis.kibanaMap.leaflet.fitDataBoundsAriaLabel": "适应数据边界", "common.ui.vis.kibanaMap.zoomWarning": "已达到缩放级别最大数目。要一直放大,请升级到 Elasticsearch 和 Kibana 的 {defaultDistribution}。您可以通过 {ems} 免费使用其他缩放级别。或者,您可以配置自己的地图服务器。请前往 { wms } 或 { configSettings} 以获取详细信息。", diff --git a/x-pack/plugins/watcher/public/legacy/time_buckets.js b/x-pack/plugins/watcher/public/legacy/time_buckets.js index 8b7e4be784fe72..5d5e9e8dcb1a4a 100644 --- a/x-pack/plugins/watcher/public/legacy/time_buckets.js +++ b/x-pack/plugins/watcher/public/legacy/time_buckets.js @@ -130,7 +130,7 @@ TimeBuckets.prototype.getDuration = function() { * generated. * * Input can be one of the following: - * - Any object from src/legacy/ui/agg_types/buckets/_interval_options.js + * - Any object from src/plugins/data/public/search/aggs/buckets/_interval_options.ts * - "auto" * - Pass a valid moment unit * - a moment.duration object. From 8a90e6748969569548250bda4b91f5c6724e1620 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Tue, 4 Feb 2020 18:10:05 -0700 Subject: [PATCH 02/33] [SIEM][Detection Engine] critical blocker, wrong ilm policy, need to match beats ilm policy ## Summary Need to match ILM policy of auditbeat and we almost forgot this and it would be bad for shipping if we did not have best practices for ILM. ### Checklist Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR. ~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~ ~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~ ~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~ ~~- [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios~~ ~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~ ### For maintainers ~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~ ~~- [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~ ### Checklist Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR. - [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md) - [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios - [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process) - [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process) --- .../lib/detection_engine/routes/index/signals_policy.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/signals_policy.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/signals_policy.json index 640d8e14190cd0..4fc7eebd4373c2 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/signals_policy.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/signals_policy.json @@ -5,8 +5,8 @@ "min_age": "0ms", "actions": { "rollover": { - "max_size": "10gb", - "max_age": "7d" + "max_size": "50gb", + "max_age": "30d" } } } From fac68730548685d87364db696ae6c3e16fc94f43 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Tue, 4 Feb 2020 18:19:36 -0700 Subject: [PATCH 03/33] [SIEM][Detection Engine] Final final rule changes (#56806) ## Summary * Final, final, Rule changes ### Checklist Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR. ~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~ ~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~ ~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~ ~~- [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios~~ ~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~ ### For maintainers ~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~ ~~- [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~ --- NOTICE.txt | 2 - .../403_response_to_a_post.json | 6 +- .../405_response_method_not_allowed.json | 6 +- ..._security_adversary_behavior_detected.json | 6 +- ...dpoint_security_cred_dumping_detected.json | 8 +- ...point_security_cred_dumping_prevented.json | 8 +- ...t_security_cred_manipulation_detected.json | 8 +- ..._security_cred_manipulation_prevented.json | 11 +- ...ic_endpoint_security_exploit_detected.json | 6 +- ...c_endpoint_security_exploit_prevented.json | 6 +- ...ic_endpoint_security_malware_detected.json | 6 +- ...c_endpoint_security_malware_prevented.json | 6 +- ...nt_security_permission_theft_detected.json | 6 +- ...t_security_permission_theft_prevented.json | 6 +- ...t_security_process_injection_detected.json | 6 +- ..._security_process_injection_prevented.json | 6 +- ...endpoint_security_ransomware_detected.json | 6 +- ...ndpoint_security_ransomware_prevented.json | 6 +- ...den_file_attribute_with_via_attribexe.json | 4 +- .../eql_adobe_hijack_persistence.json | 2 +- .../eql_audio_capture_via_powershell.json | 36 ---- .../eql_audio_capture_via_soundrecorder.json | 36 ---- .../eql_bypass_uac_event_viewer.json | 36 ---- .../eql_bypass_uac_via_cmstp.json | 36 ---- .../eql_bypass_uac_via_sdclt.json | 36 ---- .../eql_clearing_windows_event_logs.json | 4 +- ...delete_volume_usn_journal_with_fsutil.json | 2 +- ...deleting_backup_catalogs_with_wbadmin.json | 2 +- .../eql_direct_outbound_smb_connection.json | 2 +- ...ble_windows_firewall_rules_with_netsh.json | 2 +- .../eql_dll_search_order_hijack.json | 51 ----- ...coding_or_decoding_files_via_certutil.json | 2 +- .../eql_local_scheduled_task_commands.json | 2 +- .../eql_local_service_commands.json | 2 +- ...ql_modification_of_boot_configuration.json | 36 ---- ...ql_msbuild_making_network_connections.json | 4 +- .../eql_mshta_making_network_connections.json | 4 +- .../eql_msxsl_making_network_connections.json | 36 ---- .../eql_psexec_lateral_movement_command.json | 4 +- ...ql_suspicious_ms_office_child_process.json | 2 +- ...l_suspicious_ms_outlook_child_process.json | 2 +- ...l_suspicious_pdf_reader_child_process.json | 36 ---- .../eql_system_shells_via_services.json | 2 +- ...usual_network_connection_via_rundll32.json | 2 +- .../eql_unusual_parentchild_relationship.json | 2 +- ...ql_unusual_process_network_connection.json | 2 +- .../eql_user_account_creation.json | 2 +- ...eql_user_added_to_administrator_group.json | 36 ---- ...ume_shadow_copy_deletion_via_vssadmin.json | 2 +- ..._volume_shadow_copy_deletion_via_wmic.json | 4 +- ...l_windows_script_executing_powershell.json | 2 +- .../eql_wmic_command_lateral_movement.json | 39 ---- .../rules/prepackaged_rules/index.ts | 186 +++++++----------- .../linux_hping_activity.json | 6 +- .../linux_iodine_activity.json | 4 +- .../linux_kernel_module_activity.json | 4 +- .../linux_ldso_process_activity.json | 22 --- .../linux_mknod_activity.json | 6 +- .../linux_netcat_network_connection.json | 6 +- .../linux_nmap_activity.json | 6 +- .../linux_nping_activity.json | 6 +- ...nux_process_started_in_temp_directory.json | 4 +- .../linux_shell_activity_by_web_server.json | 4 +- .../linux_socat_activity.json | 6 +- .../linux_strace_activity.json | 2 +- .../linux_tcpdump_activity.json | 4 +- .../linux_whoami_commmand.json | 4 +- .../network_dns_directly_to_the_internet.json | 8 +- ...fer_protocol_activity_to_the_internet.json | 8 +- ...hat_protocol_activity_to_the_internet.json | 8 +- .../network_nat_traversal_port_activity.json | 8 +- .../network_port_26_activity.json | 10 +- ...rk_port_8000_activity_to_the_internet.json | 6 +- ..._to_point_tunneling_protocol_activity.json | 10 +- ...k_proxy_port_activity_to_the_internet.json | 8 +- ...te_desktop_protocol_from_the_internet.json | 8 +- ...mote_desktop_protocol_to_the_internet.json | 8 +- ...mote_procedure_call_from_the_internet.json | 6 +- ...remote_procedure_call_to_the_internet.json | 6 +- ...file_sharing_activity_to_the_internet.json | 6 +- .../network_smtp_to_the_internet.json | 8 +- ..._server_port_activity_to_the_internet.json | 8 +- ...rk_ssh_secure_shell_from_the_internet.json | 8 +- ...work_ssh_secure_shell_to_the_internet.json | 8 +- .../network_telnet_port_activity.json | 8 +- .../network_tor_activity_to_the_internet.json | 8 +- ...l_network_computing_from_the_internet.json | 8 +- ...ual_network_computing_to_the_internet.json | 8 +- .../rules/prepackaged_rules/notice.ts | 2 - .../prepackaged_rules/null_user_agent.json | 4 +- .../prepackaged_rules/sqlmap_user_agent.json | 5 +- ...rvice_bits_connecting_to_the_internet.json | 51 ----- ...s_certutil_connecting_to_the_internet.json | 36 ---- ...and_prompt_connecting_to_the_internet.json | 2 +- ...nd_shell_started_by_internet_explorer.json | 36 ---- ...s_command_shell_started_by_powershell.json | 4 +- ...dows_command_shell_started_by_svchost.json | 4 +- ...ws_defense_evasion_via_filter_manager.json | 5 +- ...dows_execution_via_compiled_html_file.json | 2 +- ...dows_execution_via_connection_manager.json | 37 ---- ...dows_execution_via_net_com_assemblies.json | 40 ---- .../windows_execution_via_regsvr32.json | 2 +- ...ution_via_trusted_developer_utilities.json | 3 +- ...le_program_connecting_to_the_internet.json | 2 +- ...isc_lolbin_connecting_to_the_internet.json | 2 +- ...ommand_activity_by_the_system_account.json | 36 ---- ..._persistence_via_application_shimming.json | 3 +- ...escalation_via_accessibility_features.json | 3 +- ...rocess_discovery_via_tasklist_command.json | 3 +- .../windows_process_execution_via_wmi.json | 39 ---- ...er_program_connecting_to_the_internet.json | 2 +- ...windows_signed_binary_proxy_execution.json | 2 +- ...igned_binary_proxy_execution_download.json | 54 ----- ...uspicious_process_started_by_a_script.json | 4 +- .../windows_whoami_command_activity.json | 2 +- 115 files changed, 312 insertions(+), 1094 deletions(-) delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_powershell.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_soundrecorder.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_event_viewer.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_cmstp.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_sdclt.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_dll_search_order_hijack.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_modification_of_boot_configuration.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msxsl_making_network_connections.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_pdf_reader_child_process.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_added_to_administrator_group.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_wmic_command_lateral_movement.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_ldso_process_activity.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_background_intelligent_transfer_service_bits_connecting_to_the_internet.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_certutil_connecting_to_the_internet.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_internet_explorer.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_connection_manager.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_net_com_assemblies.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_net_command_activity_by_the_system_account.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_execution_via_wmi.json delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution_download.json diff --git a/NOTICE.txt b/NOTICE.txt index e0c5d94eff6b3d..69be6db72cff2c 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -162,8 +162,6 @@ which is available under a "MIT" license. The files based on this license are: - windows_priv_escalation_via_accessibility_features.json - windows_persistence_via_application_shimming.json - windows_execution_via_trusted_developer_utilities.json -- windows_execution_via_net_com_assemblies.json -- windows_execution_via_connection_manager.json MIT License diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/403_response_to_a_post.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/403_response_to_a_post.json index c685d96cdf57b6..fd46a09d4ced0c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/403_response_to_a_post.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/403_response_to_a_post.json @@ -1,13 +1,13 @@ { - "description": "A POST request to web application returned a 403 response which indicates the web application declined to process the request because the action requested was disallowed.", + "description": "A POST request to web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed", "false_positives": [ - "Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, or the user is unauthorized, or the request is unusual, these may be suspicious or malicious activity." + "Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity." ], "index": [ "apm-*-transaction*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Web Application Suspicious Activity: POST Request Declined", "query": "http.response.status_code:403 and http.request.method:post", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/405_response_method_not_allowed.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/405_response_method_not_allowed.json index 64264452d468be..a6235c889902bf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/405_response_method_not_allowed.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/405_response_method_not_allowed.json @@ -1,13 +1,13 @@ { - "description": "A request to web application returned a 405 response which indicates the web application declined to process the request because the HTTP method was not allowed for the resource.", + "description": "A request to web application returned a 405 response which indicates the web application declined to process the request because the HTTP method is not allowed for the resource", "false_positives": [ - "Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, or the user is unauthorized, or the request is unusual, these may be suspicious or malicious activity." + "Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity." ], "index": [ "apm-*-transaction*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Web Application Suspicious Activity: Unauthorized Method", "query": "http.response.status_code:405", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_adversary_behavior_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_adversary_behavior_detected.json index 56d142fdf3ef8e..397db1367f402f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_adversary_behavior_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_adversary_behavior_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Adversary behavior detected.", + "description": "Elastic Endpoint detected an Adversary Behavior. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Adversary Behavior - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:rules_engine_event", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_detected.json index 6805696ce6bc9e..fdd875e95b3d37 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_detected.json @@ -1,11 +1,13 @@ { - "description": "Elastic Endpoint Security Alert - Credential dumping detected.", + "description": "Elastic Endpoint detected Credential Dumping. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, - "name": "Cred Dumping - Detected - Elastic Endpoint", + "max_signals": 100, + "name": "Credential Dumping - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:cred_theft_event and endgame.metadata.type:detection", "risk_score": 73, "rule_id": "571afc56-5ed9-465d-a2a9-045f099f6e7e", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_prevented.json index 68c0f5cad82521..8ed63c55ef2139 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_dumping_prevented.json @@ -1,11 +1,13 @@ { - "description": "Elastic Endpoint Security Alert - Credential dumping prevented.", + "description": "Elastic Endpoint prevented Credential Dumping. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, - "name": "Cred Dumping - Prevented - Elastic Endpoint", + "max_signals": 100, + "name": "Credential Dumping - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:cred_theft_event and endgame.metadata.type:prevention", "risk_score": 47, "rule_id": "db8c33a8-03cd-4988-9e2c-d0a4863adb13", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_detected.json index 0d0d9c71a2ec18..98c4e5341d9e8b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_detected.json @@ -1,11 +1,13 @@ { - "description": "Elastic Endpoint Security Alert - Credential manipulation detected.", + "description": "Elastic Endpoint detected Credential Manipulation. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, - "name": "Cred Manipulation - Detected - Elastic Endpoint", + "max_signals": 100, + "name": "Credential Manipulation - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:token_manipulation_event and endgame.metadata.type:detection", "risk_score": 73, "rule_id": "c0be5f31-e180-48ed-aa08-96b36899d48f", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_prevented.json index df49c80e3097b4..4234e3d955794c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_cred_manipulation_prevented.json @@ -1,17 +1,20 @@ { - "description": "Elastic Endpoint Security Alert - Credential manipulation prevented.", + "description": "Elastic Endpoint prevented Credential Manipulation. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, - "name": "Cred Manipulation - Prevented - Elastic Endpoint", + "max_signals": 100, + "name": "Credential Manipulation - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:token_manipulation_event and endgame.metadata.type:prevention", "risk_score": 47, "rule_id": "c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa", "severity": "medium", "tags": [ - "Elastic" + "Elastic", + "Endpoint" ], "type": "query", "version": 1 diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_detected.json index 9c3896a70b3a02..9971075d7e6178 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Exploit detected.", + "description": "Elastic Endpoint detected an Exploit. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Exploit - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:exploit_event and endgame.metadata.type:detection", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_prevented.json index 4632ae6a1487bf..233552fc1de13a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_exploit_prevented.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Exploit prevented.", + "description": "Elastic Endpoint prevented an Exploit. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Exploit - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:exploit_event and endgame.metadata.type:prevention", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_detected.json index 68831392942d45..64d686fb984c95 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Malware detected.", + "description": "Elastic Endpoint detected Malware. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Malware - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:file_classification_event and endgame.metadata.type:detection", "risk_score": 99, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_prevented.json index 56b41df2a33496..72f2134f23ab22 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_malware_prevented.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Malware prevented.", + "description": "Elastic Endpoint prevented Malware. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Malware - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:file_classification_event and endgame.metadata.type:prevention", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_detected.json index 268dc9cf891214..3755dd4cd5dacf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Permission theft detected.", + "description": "Elastic Endpoint detected Permission Theft. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Permission Theft - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:token_protection_event and endgame.metadata.type:detection", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_prevented.json index 6deda3d0453b2a..d8694075863729 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_permission_theft_prevented.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Permission theft prevented.", + "description": "Elastic Endpoint prevented Permission Theft. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Permission Theft - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:token_protection_event and endgame.metadata.type:prevention", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_detected.json index 25a03e611fe3e7..1078cf69394e26 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Process injection detected.", + "description": "Elastic Endpoint detected Process Injection. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Process Injection - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:kernel_shellcode_event and endgame.metadata.type:detection", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_prevented.json index 6c549d70a9d41a..8b68fc6925f9bf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_process_injection_prevented.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Process injection prevented.", + "description": "Elastic Endpoint prevented Process Injection. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Process Injection - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:kernel_shellcode_event and endgame.metadata.type:prevention", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_detected.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_detected.json index 4a118cf8ab861c..a332c7011e94bf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_detected.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_detected.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Ransomware detected.", + "description": "Elastic Endpoint detected Ransomware. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Ransomware - Detected - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:ransomware_event and endgame.metadata.type:detection", "risk_score": 99, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_prevented.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_prevented.json index 8b48e8f4c17580..087c91d2105cef 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_prevented.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/elastic_endpoint_security_ransomware_prevented.json @@ -1,10 +1,12 @@ { - "description": "Elastic Endpoint Security Alert - Ransomware prevented.", + "description": "Elastic Endpoint prevented Ransomware. Click the Elastic Endpoint icon in the event.module column or the link in the rule.reference column in the External Alerts tab of the SIEM Detections page for additional information.", + "from": "now-660s", "index": [ "endgame-*" ], + "interval": "10m", "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Ransomware - Prevented - Elastic Endpoint", "query": "event.kind:alert and event.module:endgame and event.action:ransomware_event and endgame.metadata.type:prevention", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adding_the_hidden_file_attribute_with_via_attribexe.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adding_the_hidden_file_attribute_with_via_attribexe.json index 374691f670b740..43aead33925c12 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adding_the_hidden_file_attribute_with_via_attribexe.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adding_the_hidden_file_attribute_with_via_attribexe.json @@ -1,10 +1,10 @@ { - "description": "Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection", + "description": "Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.", "index": [ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Adding Hidden File Attribute via Attrib", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"attrib.exe\" and process.args:\"+h\"", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adobe_hijack_persistence.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adobe_hijack_persistence.json index 47f171dd7be0ef..387726168cb10c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adobe_hijack_persistence.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_adobe_hijack_persistence.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Adobe Hijack Persistence", "query": "file.path:(\"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader\\AcroCEF\\RdrCEF.exe\" or \"C:\\Program Files\\Adobe\\Acrobat Reader DC\\Reader\\AcroCEF\\RdrCEF.exe\") and event.action:\"File created (rule: FileCreate)\" and not process.name:msiexeec.exe", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_powershell.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_powershell.json deleted file mode 100644 index 7ec960eea63028..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_powershell.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "An adversary can leverage a computer's peripheral devices or applications to capture audio recordings for the purpose of listening into sensitive conversations to gather information.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Audio Capture via PowerShell", - "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"powershell.exe\" and process.args:\"WindowsAudioDevice-Powershell-Cmdlet\"", - "risk_score": 21, - "rule_id": "b27b9f47-0a20-4807-8377-7f899b4fbada", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0003", - "name": "Collection", - "reference": "https://attack.mitre.org/tactics/TA0009/" - }, - "technique": [ - { - "id": "T1123", - "name": "Audio Capture", - "reference": "https://attack.mitre.org/techniques/T1123/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_soundrecorder.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_soundrecorder.json deleted file mode 100644 index 87bdfc4980124f..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_audio_capture_via_soundrecorder.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "An adversary can leverage a computer's peripheral devices or applications to capture audio recordings for the purpose of listening into sensitive conversations to gather information.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Audio Capture via SoundRecorder", - "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"SoundRecorder.exe\" and process.args:\"/FILE\"", - "risk_score": 21, - "rule_id": "f8e06892-ed10-4452-892e-2c5a38d552f1", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0003", - "name": "Collection", - "reference": "https://attack.mitre.org/tactics/TA0009/" - }, - "technique": [ - { - "id": "T1123", - "name": "Audio Capture", - "reference": "https://attack.mitre.org/techniques/T1123/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_event_viewer.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_event_viewer.json deleted file mode 100644 index 2fa63fa51f7c12..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_event_viewer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Bypass UAC via Event Viewer", - "query": "process.parent.name:eventvwr.exe and event.action:\"Process Create (rule: ProcessCreate)\" and not process.executable:(\"C:\\Windows\\System32\\mmc.exe\" or \"C:\\Windows\\SysWOW64\\mmc.exe\")", - "risk_score": 21, - "rule_id": "59547add-a400-4baa-aa0c-66c72efdb77f", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "name": "Privilege Escalation", - "reference": "https://attack.mitre.org/tactics/TA0004/" - }, - "technique": [ - { - "id": "T1088", - "name": "Bypass User Account Control", - "reference": "https://attack.mitre.org/techniques/T1088/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_cmstp.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_cmstp.json deleted file mode 100644 index fdc716dcb3ebeb..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_cmstp.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies User Account Control (UAC) bypass via cmstp.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Bypass UAC via Cmstp", - "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:\"cmstp.exe\" and process.parent.args:(\"/s\" and \"/au\")", - "risk_score": 21, - "rule_id": "2f7403da-1a4c-46bb-8ecc-c1a596e10cd0", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "name": "Privilege Escalation", - "reference": "https://attack.mitre.org/tactics/TA0004/" - }, - "technique": [ - { - "id": "T1088", - "name": "Bypass User Account Control", - "reference": "https://attack.mitre.org/techniques/T1088/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_sdclt.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_sdclt.json deleted file mode 100644 index 484a01e0211abb..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_bypass_uac_via_sdclt.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies User Account Control (UAC) bypass via sdclt.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Bypass UAC via Sdclt", - "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"sdclt.exe\" and process.args:\"/kickoffelev\" and not process.executable:(\"C:\\Windows\\System32\\sdclt.exe\" or \"C:\\Windows\\System32\\control.exe\" or \"C:\\Windows\\SysWOW64\\sdclt.exe\" or \"C:\\Windows\\SysWOW64\\control.exe\")", - "risk_score": 21, - "rule_id": "f68d83a1-24cb-4b8d-825b-e8af400b9670", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "name": "Privilege Escalation", - "reference": "https://attack.mitre.org/tactics/TA0004/" - }, - "technique": [ - { - "id": "T1088", - "name": "Bypass User Account Control", - "reference": "https://attack.mitre.org/techniques/T1088/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_clearing_windows_event_logs.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_clearing_windows_event_logs.json index e9729ff102619a..135e81148475f9 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_clearing_windows_event_logs.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_clearing_windows_event_logs.json @@ -1,10 +1,10 @@ { - "description": "Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt evade detection or destroy forensic evidence on a system.", + "description": "Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.", "index": [ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Clearing Windows Event Logs", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and (process.name:\"wevtutil.exe\" and process.args:\"cl\") or (process.name:\"powershell.exe\" and process.args:\"Clear-EventLog\")", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_delete_volume_usn_journal_with_fsutil.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_delete_volume_usn_journal_with_fsutil.json index 479bb4a2a6d7c6..815e2abd0fc96b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_delete_volume_usn_journal_with_fsutil.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_delete_volume_usn_journal_with_fsutil.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Delete Volume USN Journal with Fsutil", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"fsutil.exe\" and process.args:(\"usn\" and \"deletejournal\")", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_deleting_backup_catalogs_with_wbadmin.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_deleting_backup_catalogs_with_wbadmin.json index 204925e4b677b4..d990e071b21230 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_deleting_backup_catalogs_with_wbadmin.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_deleting_backup_catalogs_with_wbadmin.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Deleting Backup Catalogs with Wbadmin", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"wbadmin.exe\" and process.args:(\"delete\" and \"catalog\")", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_direct_outbound_smb_connection.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_direct_outbound_smb_connection.json index b6398a9985e7e4..9d1cebb32c8654 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_direct_outbound_smb_connection.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_direct_outbound_smb_connection.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Direct Outbound SMB Connection", "query": " event.action:\"Network connection detected (rule: NetworkConnect)\" and destination.port:445 and not process.pid:4 and not destination.ip:(\"127.0.0.1\" or \"::1\")", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_disable_windows_firewall_rules_with_netsh.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_disable_windows_firewall_rules_with_netsh.json index 32b43cc24e91b2..7ead979f27bb10 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_disable_windows_firewall_rules_with_netsh.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_disable_windows_firewall_rules_with_netsh.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Disable Windows Firewall Rules via Netsh", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"netsh.exe\" and process.args:(\"firewall\" and \"set\" and \"disable\") or process.args:(\"advfirewall\" and \"state\" and \"off\")", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_dll_search_order_hijack.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_dll_search_order_hijack.json deleted file mode 100644 index 5740453b6ae6d8..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_dll_search_order_hijack.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "description": "Detects writing DLL files to known locations associated with Windows files vulnerable to DLL search order hijacking.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "DLL Search Order Hijack", - "query": " event.action:\"File created (rule: FileCreate)\" and not winlog.user.identifier:(\"S-1-5-18\" or \"S-1-5-19\" or \"S-1-5-20\") and file.path:(\"C\\Windows\\ehome\\cryptbase.dll\" or \"C\\Windows\\System32\\Sysprep\\cryptbase.dll\" or \"C\\Windows\\System32\\Sysprep\\cryptsp.dll\" or \"C\\Windows\\System32\\Sysprep\\rpcrtremote.dll\" or \"C\\Windows\\System32\\Sysprep\\uxtheme.dll\" or \"C\\Windows\\System32\\Sysprep\\dwmapi.dll\" or \"C\\Windows\\System32\\Sysprep\\shcore.dll\" or \"C\\Windows\\System32\\Sysprep\\oleacc.dll\" or \"C\\Windows\\System32\\ntwdblib.dll\") ", - "risk_score": 47, - "rule_id": "73fbc44c-c3cd-48a8-a473-f4eb2065c716", - "severity": "medium", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "name": "Privilege Escalation", - "reference": "https://attack.mitre.org/tactics/TA0004/" - }, - "technique": [ - { - "id": "T1088", - "name": "Bypass User Account Control", - "reference": "https://attack.mitre.org/techniques/T1088/" - } - ] - }, - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "name": "Defense Evasion", - "reference": "https://attack.mitre.org/tactics/TA0005/" - }, - "technique": [ - { - "id": "T1088", - "name": "Bypass User Account Control", - "reference": "https://attack.mitre.org/techniques/T1088/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_encoding_or_decoding_files_via_certutil.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_encoding_or_decoding_files_via_certutil.json index 37e1c26885a157..2cb92f0a26c900 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_encoding_or_decoding_files_via_certutil.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_encoding_or_decoding_files_via_certutil.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Encoding or Decoding Files via CertUtil", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"certutil.exe\" and process.args:(\"-encode\" or \"/encode\" or \"-decode\" or \"/decode\")", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_scheduled_task_commands.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_scheduled_task_commands.json index dc4991f86a0f54..e7f46b46c2ce2e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_scheduled_task_commands.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_scheduled_task_commands.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Local Scheduled Task Commands", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:schtasks.exe and process.args:(\"/create\" or \"-create\" or \"/S\" or \"-s\" or \"/run\" or \"-run\" or \"/change\" or \"-change\")", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_service_commands.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_service_commands.json index eb6f2377376f28..b018435ea0214f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_service_commands.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_local_service_commands.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Local Service Commands", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:sc.exe and process.args:(\"create\" or \"config\" or \"failure\" or \"start\")", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_modification_of_boot_configuration.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_modification_of_boot_configuration.json deleted file mode 100644 index 26bd65b897c63a..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_modification_of_boot_configuration.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Modification of Boot Configuration", - "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"bcdedit.exe\" and process.args:\"set\" and process.args:( (\"bootstatuspolicy\" and \"ignoreallfailures\") or (\"recoveryenabled\" and \"no\") ) ", - "risk_score": 73, - "rule_id": "b9ab2f7f-f719-4417-9599-e0252fffe2d8", - "severity": "high", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "name": "Defense Evasion", - "reference": "https://attack.mitre.org/tactics/TA0005/" - }, - "technique": [ - { - "id": "T1107", - "name": "File Deletion", - "reference": "https://attack.mitre.org/techniques/T1107/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msbuild_making_network_connections.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msbuild_making_network_connections.json index d40ffed523c6a4..7d84e0bda06e58 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msbuild_making_network_connections.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msbuild_making_network_connections.json @@ -4,9 +4,9 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "MsBuild Making Network Connections", - "query": " event.action:\"Network connection detected (rule: NetworkConnect)\" and process.name:msbuild.exe and not destination.ip:(\"127.0.0.1\" or \"::1\")", + "query": " event.action:\"Network connection detected (rule: NetworkConnect)\" and process.name:MSBuild.exe and not destination.ip:(\"127.0.0.1\" or \"::1\")", "risk_score": 47, "rule_id": "0e79980b-4250-4a50-a509-69294c14e84b", "severity": "medium", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_mshta_making_network_connections.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_mshta_making_network_connections.json index 7905d80c6e8c29..44141b08fb8f0a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_mshta_making_network_connections.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_mshta_making_network_connections.json @@ -4,9 +4,9 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Network Connection via Mshta", - "query": "event.action:\"Network connection detected (rule: NetworkConnect)\" and process.name:\"mshta.exe\" and not process.name:\"mshta.exe\"", + "query": "event.action:\"Network connection detected (rule: NetworkConnect)\" and process.name:\"mshta.exe\"", "references": [ "https://www.fireeye.com/blog/threat-research/2017/05/cyber-espionage-apt32.html" ], diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msxsl_making_network_connections.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msxsl_making_network_connections.json deleted file mode 100644 index 16ef15589f48f7..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_msxsl_making_network_connections.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Network Connection via MsXsl", - "query": "process.name:msxsl.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", - "risk_score": 47, - "rule_id": "d7351b03-135d-43ba-8b36-cc9b07854525", - "severity": "medium", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1220", - "name": "XSL Script Processing", - "reference": "https://attack.mitre.org/techniques/T1220/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_psexec_lateral_movement_command.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_psexec_lateral_movement_command.json index fd210005118b84..580f73c25a4a27 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_psexec_lateral_movement_command.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_psexec_lateral_movement_command.json @@ -7,9 +7,9 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "PsExec Network Connection", - "query": "process.name:psexec.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" ", + "query": "process.name:PsExec.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" ", "risk_score": 21, "rule_id": "55d551c6-333b-4665-ab7e-5d14a59715ce", "severity": "low", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_office_child_process.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_office_child_process.json index a5d71e23a1215a..95aabc49b53026 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_office_child_process.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_office_child_process.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Suspicious MS Office Child Process", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:(\"winword.exe\" or \"excel.exe\" or \"powerpnt.exe\" or \"eqnedt32.exe\" or \"fltldr.exe\" or \"mspub.exe\" or \"msaccess.exe\") and process.name:(\"arp.exe\" or \"dsquery.exe\" or \"dsget.exe\" or \"gpresult.exe\" or \"hostname.exe\" or \"ipconfig.exe\" or \"nbtstat.exe\" or \"net.exe\" or \"net1.exe\" or \"netsh.exe\" or \"netstat.exe\" or \"nltest.exe\" or \"ping.exe\" or \"qprocess.exe\" or \"quser.exe\" or \"qwinsta.exe\" or \"reg.exe\" or \"sc.exe\" or \"systeminfo.exe\" or \"tasklist.exe\" or \"tracert.exe\" or \"whoami.exe\" or \"bginfo.exe\" or \"cdb.exe\" or \"cmstp.exe\" or \"csi.exe\" or \"dnx.exe\" or \"fsi.exe\" or \"ieexec.exe\" or \"iexpress.exe\" or \"installutil.exe\" or \"Microsoft.Workflow.Compiler.exe\" or \"msbuild.exe\" or \"mshta.exe\" or \"msxsl.exe\" or \"odbcconf.exe\" or \"rcsi.exe\" or \"regsvr32.exe\" or \"xwizard.exe\" or \"atbroker.exe\" or \"forfiles.exe\" or \"schtasks.exe\" or \"regasm.exe\" or \"regsvcs.exe\" or \"cmd.exe\" or \"cscript.exe\" or \"powershell.exe\" or \"pwsh.exe\" or \"wmic.exe\" or \"wscript.exe\" or \"bitsadmin.exe\" or \"certutil.exe\" or \"ftp.exe\") ", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_outlook_child_process.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_outlook_child_process.json index 86716d66080492..f31228d0130f89 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_outlook_child_process.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_ms_outlook_child_process.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Suspicious MS Outlook Child Process", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:\"outlook.exe\" and process.name:(\"arp.exe\" or \"dsquery.exe\" or \"dsget.exe\" or \"gpresult.exe\" or \"hostname.exe\" or \"ipconfig.exe\" or \"nbtstat.exe\" or \"net.exe\" or \"net1.exe\" or \"netsh.exe\" or \"netstat.exe\" or \"nltest.exe\" or \"ping.exe\" or \"qprocess.exe\" or \"quser.exe\" or \"qwinsta.exe\" or \"reg.exe\" or \"sc.exe\" or \"systeminfo.exe\" or \"tasklist.exe\" or \"tracert.exe\" or \"whoami.exe\" or \"bginfo.exe\" or \"cdb.exe\" or \"cmstp.exe\" or \"csi.exe\" or \"dnx.exe\" or \"fsi.exe\" or \"ieexec.exe\" or \"iexpress.exe\" or \"installutil.exe\" or \"Microsoft.Workflow.Compiler.exe\" or \"msbuild.exe\" or \"mshta.exe\" or \"msxsl.exe\" or \"odbcconf.exe\" or \"rcsi.exe\" or \"regsvr32.exe\" or \"xwizard.exe\" or \"atbroker.exe\" or \"forfiles.exe\" or \"schtasks.exe\" or \"regasm.exe\" or \"regsvcs.exe\" or \"cmd.exe\" or \"cscript.exe\" or \"powershell.exe\" or \"pwsh.exe\" or \"wmic.exe\" or \"wscript.exe\" or \"bitsadmin.exe\" or \"certutil.exe\" or \"ftp.exe\") ", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_pdf_reader_child_process.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_pdf_reader_child_process.json deleted file mode 100644 index b0fbccf1b67a70..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_suspicious_pdf_reader_child_process.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Suspicious PDF Reader Child Process", - "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:(\"acrord32.exe\" or \"rdrcef.exe\" or \"foxitphantomPDF.exe\" or \"foxitreader.exe\") and process.name:(\"arp.exe\" or \"dsquery.exe\" or \"dsget.exe\" or \"gpresult.exe\" or \"hostname.exe\" or \"ipconfig.exe\" or \"nbtstat.exe\" or \"net.exe\" or \"net1.exe\" or \"netsh.exe\" or \"netstat.exe\" or \"nltest.exe\" or \"ping.exe\" or \"qprocess.exe\" or \"quser.exe\" or \"qwinsta.exe\" or \"reg.exe\" or \"sc.exe\" or \"systeminfo.exe\" or \"tasklist.exe\" or \"tracert.exe\" or \"whoami.exe\" or \"bginfo.exe\" or \"cdb.exe\" or \"cmstp.exe\" or \"csi.exe\" or \"dnx.exe\" or \"fsi.exe\" or \"ieexec.exe\" or \"iexpress.exe\" or \"installutil.exe\" or \"Microsoft.Workflow.Compiler.exe\" or \"msbuild.exe\" or \"mshta.exe\" or \"msxsl.exe\" or \"odbcconf.exe\" or \"rcsi.exe\" or \"regsvr32.exe\" or \"xwizard.exe\" or \"atbroker.exe\" or \"forfiles.exe\" or \"schtasks.exe\" or \"regasm.exe\" or \"regsvcs.exe\" or \"cmd.exe\" or \"cscript.exe\" or \"powershell.exe\" or \"pwsh.exe\" or \"wmic.exe\" or \"wscript.exe\" or \"bitsadmin.exe\" or \"certutil.exe\" or \"ftp.exe\") ", - "risk_score": 73, - "rule_id": "afcac7b1-d092-43ff-a136-aa7accbda38f", - "severity": "high", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1193", - "name": "Spearphishing Attachment", - "reference": "https://attack.mitre.org/techniques/T1193/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_system_shells_via_services.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_system_shells_via_services.json index 984b522596c1e0..a38232f37843eb 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_system_shells_via_services.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_system_shells_via_services.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "System Shells via Services", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:\"services.exe\" and process.name:(\"cmd.exe\" or \"powershell.exe\")", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_network_connection_via_rundll32.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_network_connection_via_rundll32.json index 03b9bebb655c3a..820c69cb3c8093 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_network_connection_via_rundll32.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_network_connection_via_rundll32.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Unusual Network Connection via RunDLL32", "query": "process.name:rundll32.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_parentchild_relationship.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_parentchild_relationship.json index 72eb17863e0d3b..21d3d2741378a5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_parentchild_relationship.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_parentchild_relationship.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Unusual Parent-Child Relationship ", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.executable:* and ( (process.name:\"smss.exe\" and not process.parent.name:(\"System\" or \"smss.exe\")) or (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\" or \"svchost.exe\")) or (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or (process.name:\"lsass.exe\" and not process.parent.name:\"wininit.exe\") or (process.name:\"LogonUI.exe\" and not process.parent.name:(\"winlogon.exe\" or \"wininit.exe\")) or (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or (process.name:\"svchost.exe\" and not process.parent.name:(\"services.exe\" or \"MsMpEng.exe\")) or (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\" or \"svchost.exe\")) or (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\" or \"svchost.exe\")) or (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\" or \"winlogon.exe\")) )", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_process_network_connection.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_process_network_connection.json index 8ca16198ff1752..ee861e19341afa 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_process_network_connection.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_unusual_process_network_connection.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Unusual Process Network Connection", "query": " event.action:\"Network connection detected (rule: NetworkConnect)\" and process.name:(bginfo.exe or cdb.exe or cmstp.exe or csi.exe or dnx.exe or fsi.exe or ieexec.exe or iexpress.exe or Microsoft.Workflow.Compiler.exe or odbcconf.exe or rcsi.exe or xwizard.exe)", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_account_creation.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_account_creation.json index dee3d18bd5eda5..5a7aeab224548a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_account_creation.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_account_creation.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "User Account Creation", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:(\"net.exe\" or \"net1.exe\") and not process.parent.name:\"net.exe\" and process.args:(\"user\" and (\"/add\" or \"/ad\")) ", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_added_to_administrator_group.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_added_to_administrator_group.json deleted file mode 100644 index 4ed6a06b18d3b0..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_user_added_to_administrator_group.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies attempts to add a user to an administrative group with the \"net.exe\" command. This is sometimes done by attackers to increase access of a compromised account or create new account.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "User Added to Administrator Group", - "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:(\"net.exe\" or \"net1.exe\") and not process.parent.name:\"net.exe\" and process.args:(\"group\" and \"admin\" and \"/add\") ", - "risk_score": 47, - "rule_id": "4426de6f-6103-44aa-a77e-49d672836c27", - "severity": "medium", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0003", - "name": "Persistence", - "reference": "https://attack.mitre.org/tactics/TA0003/" - }, - "technique": [ - { - "id": "T1098", - "name": "Account Manipulation", - "reference": "https://attack.mitre.org/techniques/T1098/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_vssadmin.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_vssadmin.json index cdeeb1563dfde5..80c0dd962c099f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_vssadmin.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_vssadmin.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Volume Shadow Copy Deletion via VssAdmin", "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"vssadmin.exe\" and process.args:(\"delete\" and \"shadows\") ", "risk_score": 73, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_wmic.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_wmic.json index 9465cf84d73f4b..d90aca1e2eaf41 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_wmic.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_volume_shadow_copy_deletion_via_wmic.json @@ -4,9 +4,9 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Volume Shadow Copy Deletion via WMIC", - "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"wmic.exe\" and process.args:(\"shadowcopy\" and \"delete\")", + "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"WMIC.exe\" and process.args:(\"shadowcopy\" and \"delete\")", "risk_score": 73, "rule_id": "dc9c1f74-dac3-48e3-b47f-eb79db358f57", "severity": "high", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_windows_script_executing_powershell.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_windows_script_executing_powershell.json index f3df1276de53d5..8f6e97cdd7bdbe 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_windows_script_executing_powershell.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_windows_script_executing_powershell.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Windows Script Executing PowerShell", "query": "event.action:\"Process Create (rule: ProcessCreate)\" and process.parent.name:(\"wscript.exe\" or \"cscript.exe\") and process.name:\"powershell.exe\"", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_wmic_command_lateral_movement.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_wmic_command_lateral_movement.json deleted file mode 100644 index a50d9e64f2e2b5..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/eql_wmic_command_lateral_movement.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "description": "Identifies use of wmic.exe to run commands on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.", - "false_positives": [ - "The WMIC utility provides a command-line interface for WMI, which can be used for an array of administrative capabilities. It's important to baseline your environment to determine any abnormal use of this tool." - ], - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "WMIC Command Lateral Movement", - "query": " event.action:\"Process Create (rule: ProcessCreate)\" and process.name:\"wmic.exe\" and process.args:(\"/node\" or \"-node\") and process.args:(\"call\" or \"set\")", - "risk_score": 21, - "rule_id": "9616587f-6396-42d0-bd31-ef8dbd806210", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0008", - "name": "Lateral Movement", - "reference": "https://attack.mitre.org/tactics/TA0008/" - }, - "technique": [ - { - "id": "T1047", - "name": "Windows Management Instrumentation", - "reference": "https://attack.mitre.org/techniques/T1047/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/index.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/index.ts index b454501e9f563f..d9841948f35a56 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/index.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/index.ts @@ -26,99 +26,79 @@ import rule16 from './elastic_endpoint_security_ransomware_detected.json'; import rule17 from './elastic_endpoint_security_ransomware_prevented.json'; import rule18 from './eql_adding_the_hidden_file_attribute_with_via_attribexe.json'; import rule19 from './eql_adobe_hijack_persistence.json'; -import rule20 from './eql_audio_capture_via_powershell.json'; -import rule21 from './eql_audio_capture_via_soundrecorder.json'; -import rule22 from './eql_bypass_uac_event_viewer.json'; -import rule23 from './eql_bypass_uac_via_cmstp.json'; -import rule24 from './eql_bypass_uac_via_sdclt.json'; -import rule25 from './eql_clearing_windows_event_logs.json'; -import rule26 from './eql_delete_volume_usn_journal_with_fsutil.json'; -import rule27 from './eql_deleting_backup_catalogs_with_wbadmin.json'; -import rule28 from './eql_direct_outbound_smb_connection.json'; -import rule29 from './eql_disable_windows_firewall_rules_with_netsh.json'; -import rule30 from './eql_dll_search_order_hijack.json'; -import rule31 from './eql_encoding_or_decoding_files_via_certutil.json'; -import rule32 from './eql_local_scheduled_task_commands.json'; -import rule33 from './eql_local_service_commands.json'; -import rule34 from './eql_modification_of_boot_configuration.json'; -import rule35 from './eql_msbuild_making_network_connections.json'; -import rule36 from './eql_mshta_making_network_connections.json'; -import rule37 from './eql_msxsl_making_network_connections.json'; -import rule38 from './eql_psexec_lateral_movement_command.json'; -import rule39 from './eql_suspicious_ms_office_child_process.json'; -import rule40 from './eql_suspicious_ms_outlook_child_process.json'; -import rule41 from './eql_suspicious_pdf_reader_child_process.json'; -import rule42 from './eql_system_shells_via_services.json'; -import rule43 from './eql_unusual_network_connection_via_rundll32.json'; -import rule44 from './eql_unusual_parentchild_relationship.json'; -import rule45 from './eql_unusual_process_network_connection.json'; -import rule46 from './eql_user_account_creation.json'; -import rule47 from './eql_user_added_to_administrator_group.json'; -import rule48 from './eql_volume_shadow_copy_deletion_via_vssadmin.json'; -import rule49 from './eql_volume_shadow_copy_deletion_via_wmic.json'; -import rule50 from './eql_windows_script_executing_powershell.json'; -import rule51 from './eql_wmic_command_lateral_movement.json'; -import rule52 from './linux_hping_activity.json'; -import rule53 from './linux_iodine_activity.json'; -import rule54 from './linux_kernel_module_activity.json'; -import rule55 from './linux_ldso_process_activity.json'; -import rule56 from './linux_mknod_activity.json'; -import rule57 from './linux_netcat_network_connection.json'; -import rule58 from './linux_nmap_activity.json'; -import rule59 from './linux_nping_activity.json'; -import rule60 from './linux_process_started_in_temp_directory.json'; -import rule61 from './linux_shell_activity_by_web_server.json'; -import rule62 from './linux_socat_activity.json'; -import rule63 from './linux_strace_activity.json'; -import rule64 from './linux_tcpdump_activity.json'; -import rule65 from './linux_whoami_commmand.json'; -import rule66 from './network_dns_directly_to_the_internet.json'; -import rule67 from './network_ftp_file_transfer_protocol_activity_to_the_internet.json'; -import rule68 from './network_irc_internet_relay_chat_protocol_activity_to_the_internet.json'; -import rule69 from './network_nat_traversal_port_activity.json'; -import rule70 from './network_port_26_activity.json'; -import rule71 from './network_port_8000_activity_to_the_internet.json'; -import rule72 from './network_pptp_point_to_point_tunneling_protocol_activity.json'; -import rule73 from './network_proxy_port_activity_to_the_internet.json'; -import rule74 from './network_rdp_remote_desktop_protocol_from_the_internet.json'; -import rule75 from './network_rdp_remote_desktop_protocol_to_the_internet.json'; -import rule76 from './network_rpc_remote_procedure_call_from_the_internet.json'; -import rule77 from './network_rpc_remote_procedure_call_to_the_internet.json'; -import rule78 from './network_smb_windows_file_sharing_activity_to_the_internet.json'; -import rule79 from './network_smtp_to_the_internet.json'; -import rule80 from './network_sql_server_port_activity_to_the_internet.json'; -import rule81 from './network_ssh_secure_shell_from_the_internet.json'; -import rule82 from './network_ssh_secure_shell_to_the_internet.json'; -import rule83 from './network_telnet_port_activity.json'; -import rule84 from './network_tor_activity_to_the_internet.json'; -import rule85 from './network_vnc_virtual_network_computing_from_the_internet.json'; -import rule86 from './network_vnc_virtual_network_computing_to_the_internet.json'; -import rule87 from './null_user_agent.json'; -import rule88 from './sqlmap_user_agent.json'; -import rule89 from './windows_background_intelligent_transfer_service_bits_connecting_to_the_internet.json'; -import rule90 from './windows_certutil_connecting_to_the_internet.json'; -import rule91 from './windows_command_prompt_connecting_to_the_internet.json'; -import rule92 from './windows_command_shell_started_by_internet_explorer.json'; -import rule93 from './windows_command_shell_started_by_powershell.json'; -import rule94 from './windows_command_shell_started_by_svchost.json'; -import rule95 from './windows_defense_evasion_via_filter_manager.json'; -import rule96 from './windows_execution_via_compiled_html_file.json'; -import rule97 from './windows_execution_via_connection_manager.json'; -import rule98 from './windows_execution_via_net_com_assemblies.json'; -import rule99 from './windows_execution_via_regsvr32.json'; -import rule100 from './windows_execution_via_trusted_developer_utilities.json'; -import rule101 from './windows_html_help_executable_program_connecting_to_the_internet.json'; -import rule102 from './windows_misc_lolbin_connecting_to_the_internet.json'; -import rule103 from './windows_net_command_activity_by_the_system_account.json'; -import rule104 from './windows_persistence_via_application_shimming.json'; -import rule105 from './windows_priv_escalation_via_accessibility_features.json'; -import rule106 from './windows_process_discovery_via_tasklist_command.json'; -import rule107 from './windows_process_execution_via_wmi.json'; -import rule108 from './windows_register_server_program_connecting_to_the_internet.json'; -import rule109 from './windows_signed_binary_proxy_execution.json'; -import rule110 from './windows_signed_binary_proxy_execution_download.json'; -import rule111 from './windows_suspicious_process_started_by_a_script.json'; -import rule112 from './windows_whoami_command_activity.json'; +import rule20 from './eql_clearing_windows_event_logs.json'; +import rule21 from './eql_delete_volume_usn_journal_with_fsutil.json'; +import rule22 from './eql_deleting_backup_catalogs_with_wbadmin.json'; +import rule23 from './eql_direct_outbound_smb_connection.json'; +import rule24 from './eql_disable_windows_firewall_rules_with_netsh.json'; +import rule25 from './eql_encoding_or_decoding_files_via_certutil.json'; +import rule26 from './eql_local_scheduled_task_commands.json'; +import rule27 from './eql_local_service_commands.json'; +import rule28 from './eql_msbuild_making_network_connections.json'; +import rule29 from './eql_mshta_making_network_connections.json'; +import rule30 from './eql_psexec_lateral_movement_command.json'; +import rule31 from './eql_suspicious_ms_office_child_process.json'; +import rule32 from './eql_suspicious_ms_outlook_child_process.json'; +import rule33 from './eql_system_shells_via_services.json'; +import rule34 from './eql_unusual_network_connection_via_rundll32.json'; +import rule35 from './eql_unusual_parentchild_relationship.json'; +import rule36 from './eql_unusual_process_network_connection.json'; +import rule37 from './eql_user_account_creation.json'; +import rule38 from './eql_volume_shadow_copy_deletion_via_vssadmin.json'; +import rule39 from './eql_volume_shadow_copy_deletion_via_wmic.json'; +import rule40 from './eql_windows_script_executing_powershell.json'; +import rule41 from './linux_hping_activity.json'; +import rule42 from './linux_iodine_activity.json'; +import rule43 from './linux_kernel_module_activity.json'; +import rule44 from './linux_mknod_activity.json'; +import rule45 from './linux_netcat_network_connection.json'; +import rule46 from './linux_nmap_activity.json'; +import rule47 from './linux_nping_activity.json'; +import rule48 from './linux_process_started_in_temp_directory.json'; +import rule49 from './linux_shell_activity_by_web_server.json'; +import rule50 from './linux_socat_activity.json'; +import rule51 from './linux_strace_activity.json'; +import rule52 from './linux_tcpdump_activity.json'; +import rule53 from './linux_whoami_commmand.json'; +import rule54 from './network_dns_directly_to_the_internet.json'; +import rule55 from './network_ftp_file_transfer_protocol_activity_to_the_internet.json'; +import rule56 from './network_irc_internet_relay_chat_protocol_activity_to_the_internet.json'; +import rule57 from './network_nat_traversal_port_activity.json'; +import rule58 from './network_port_26_activity.json'; +import rule59 from './network_port_8000_activity_to_the_internet.json'; +import rule60 from './network_pptp_point_to_point_tunneling_protocol_activity.json'; +import rule61 from './network_proxy_port_activity_to_the_internet.json'; +import rule62 from './network_rdp_remote_desktop_protocol_from_the_internet.json'; +import rule63 from './network_rdp_remote_desktop_protocol_to_the_internet.json'; +import rule64 from './network_rpc_remote_procedure_call_from_the_internet.json'; +import rule65 from './network_rpc_remote_procedure_call_to_the_internet.json'; +import rule66 from './network_smb_windows_file_sharing_activity_to_the_internet.json'; +import rule67 from './network_smtp_to_the_internet.json'; +import rule68 from './network_sql_server_port_activity_to_the_internet.json'; +import rule69 from './network_ssh_secure_shell_from_the_internet.json'; +import rule70 from './network_ssh_secure_shell_to_the_internet.json'; +import rule71 from './network_telnet_port_activity.json'; +import rule72 from './network_tor_activity_to_the_internet.json'; +import rule73 from './network_vnc_virtual_network_computing_from_the_internet.json'; +import rule74 from './network_vnc_virtual_network_computing_to_the_internet.json'; +import rule75 from './null_user_agent.json'; +import rule76 from './sqlmap_user_agent.json'; +import rule77 from './windows_command_prompt_connecting_to_the_internet.json'; +import rule78 from './windows_command_shell_started_by_powershell.json'; +import rule79 from './windows_command_shell_started_by_svchost.json'; +import rule80 from './windows_defense_evasion_via_filter_manager.json'; +import rule81 from './windows_execution_via_compiled_html_file.json'; +import rule82 from './windows_execution_via_regsvr32.json'; +import rule83 from './windows_execution_via_trusted_developer_utilities.json'; +import rule84 from './windows_html_help_executable_program_connecting_to_the_internet.json'; +import rule85 from './windows_misc_lolbin_connecting_to_the_internet.json'; +import rule86 from './windows_persistence_via_application_shimming.json'; +import rule87 from './windows_priv_escalation_via_accessibility_features.json'; +import rule88 from './windows_process_discovery_via_tasklist_command.json'; +import rule89 from './windows_register_server_program_connecting_to_the_internet.json'; +import rule90 from './windows_signed_binary_proxy_execution.json'; +import rule91 from './windows_suspicious_process_started_by_a_script.json'; +import rule92 from './windows_whoami_command_activity.json'; export const rawRules = [ rule1, rule2, @@ -212,24 +192,4 @@ export const rawRules = [ rule90, rule91, rule92, - rule93, - rule94, - rule95, - rule96, - rule97, - rule98, - rule99, - rule100, - rule101, - rule102, - rule103, - rule104, - rule105, - rule106, - rule107, - rule108, - rule109, - rule110, - rule111, - rule112, ]; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_hping_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_hping_activity.json index 517e16fb3d284b..c4b14389c0f759 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_hping_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_hping_activity.json @@ -1,5 +1,5 @@ { - "description": "Hping ran on a Linux host. Hping is FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications including scanning and firewall auditing.", + "description": "Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.", "false_positives": [ "Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon." ], @@ -7,9 +7,9 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Hping Process Activity", - "query": "process.name: hping and event.action:executed", + "query": "process.name: (hping3 or hping2 or hping) and event.action:executed", "references": [ "https://en.wikipedia.org/wiki/Hping" ], diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_iodine_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_iodine_activity.json index 49f18ef9871a17..b8455a4d2b21d4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_iodine_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_iodine_activity.json @@ -1,5 +1,5 @@ { - "description": "Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol in order to circumvent firewalls, network security groups or network access lists while evading detection.", + "description": "Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.", "false_positives": [ "Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon." ], @@ -7,7 +7,7 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Potential DNS Tunneling via Iodine", "query": "process.name: (iodine or iodined) and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_kernel_module_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_kernel_module_activity.json index 8c94694ca4d040..f1d12de674488e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_kernel_module_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_kernel_module_activity.json @@ -1,5 +1,5 @@ { - "description": "Identifies loadable kernel module errors, often indicative of potential persistence attempts.", + "description": "Identifies loadable kernel module errors, which are often indicative of potential persistence attempts.", "false_positives": [ "Security tools and device drivers may run these programs in order to load legitimate kernel modules. Use of these programs by ordinary users is uncommon." ], @@ -7,7 +7,7 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Persistence via Kernel Module Modification", "query": "process.name: (insmod or kmod or modprobe or rmod) and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_ldso_process_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_ldso_process_activity.json deleted file mode 100644 index 82a2a16080160f..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_ldso_process_activity.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "The dynamic linker, ld.so, runs in a privileged context and can be used to escape restrictive environments by spawning a shell in order to elevate privileges or move laterally.", - "false_positives": [ - "ld.so is a dual-use tool that can be used for benign or malicious activity. Some normal use of this command may originate from developers or administrators. Use of ld.so by non-engineers or ordinary users is uncommon." - ], - "index": [ - "auditbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Ld.so Process Activity", - "query": "process.name:ld.so and event.action:executed", - "risk_score": 21, - "rule_id": "3f31a31c-f7cf-4268-a0df-ec1a98099e7f", - "severity": "low", - "tags": [ - "Elastic", - "Linux" - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_mknod_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_mknod_activity.json index 8f4e1f40fad122..b0d4c29dc00d30 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_mknod_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_mknod_activity.json @@ -1,13 +1,13 @@ { - "description": "The Linux mknod program is sometimes used in the command payload of remote command injection (RCI) and other exploits to export a command shell when the traditional version of netcat is not available to the payload.", + "description": "The Linux mknod program is sometimes used in the command payload of a remote command injection (RCI) and other exploits. It is used to export a command shell when the traditional version of netcat is not available to the payload.", "false_positives": [ - "Mknod is a Linux system program. Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by web servers is more likely to be suspicious." + "Mknod is a Linux system program. Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools, and frameworks. Usage by web servers is more likely to be suspicious." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Mknod Process Activity", "query": "process.name: mknod and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_netcat_network_connection.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_netcat_network_connection.json index b06a342d249774..6ab1c1285c0d77 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_netcat_network_connection.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_netcat_network_connection.json @@ -1,13 +1,13 @@ { - "description": "A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration. ", + "description": "A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.", "false_positives": [ - "Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools and frameworks." + "Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Netcat Network Activity", "query": "process.name: (nc or ncat or netcat or netcat.openbsd or netcat.traditional) and event.action: (connected-to or bound-socket or socket_opened)", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nmap_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nmap_activity.json index 406cd8e026e7a2..5d7169219a6f1b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nmap_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nmap_activity.json @@ -1,13 +1,13 @@ { - "description": "Nmap was executed on a Linux host. Nmap is a FOSS tool for network scanning and security testing. It can map and discover networks, identify listening services and operating systems. It is sometimes used to gather information in support of exploitation, execution or lateral movement.", + "description": "Nmap was executed on a Linux host. Nmap is a FOSS tool for network scanning and security testing. It can map and discover networks, and identify listening services and operating systems. It is sometimes used to gather information in support of exploitation, execution or lateral movement.", "false_positives": [ - "Security testing tools and frameworks may run nmap in the course of security auditing. Some normal use of this command may originate from security engineers and network or server administrators. Use of nmap by ordinary users is uncommon." + "Security testing tools and frameworks may run `Nmap` in the course of security auditing. Some normal use of this command may originate from security engineers and network or server administrators. Use of nmap by ordinary users is uncommon." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Nmap Process Activity", "query": "process.name: nmap", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nping_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nping_activity.json index de53e05e70fa39..6a713d22e3219c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nping_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_nping_activity.json @@ -1,13 +1,13 @@ { - "description": "Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications including denial of service testing.", + "description": "Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.", "false_positives": [ - "Some normal use of this command may originate from security engineers and network or server administrators but this is usually not routine or unannounced. Use of nping by non-engineers or ordinary users is uncommon." + "Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Nping Process Activity", "query": "process.name: nping and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_process_started_in_temp_directory.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_process_started_in_temp_directory.json index 4ed021a4c864df..c80bb4eb416151 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_process_started_in_temp_directory.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_process_started_in_temp_directory.json @@ -1,13 +1,13 @@ { "description": "Identifies processes running in a temporary folder. This is sometimes done by adversaries to hide malware.", "false_positives": [ - "Build systems like Jenkins may start processes in the /tmp directory. These can be exempted by name or by username." + "Build systems, like Jenkins, may start processes in the `/tmp` directory. These can be exempted by name or by username." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Unusual Process Execution - Temp", "query": "process.working_directory: /tmp and event.action:executed", "risk_score": 47, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_shell_activity_by_web_server.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_shell_activity_by_web_server.json index ac817762fdb713..eff3dd0ab14006 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_shell_activity_by_web_server.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_shell_activity_by_web_server.json @@ -7,9 +7,9 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Potential Shell via Web Server", - "query": "process.name: bash and (user.name: apache or www) and event.action:executed", + "query": "process.name: bash and user.name: (apache or www or \"wwww-data\") and event.action:executed", "references": [ "https://pentestlab.blog/tag/web-shell/" ], diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_socat_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_socat_activity.json index 481a99518d4ed3..56fb41dc5f78f5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_socat_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_socat_activity.json @@ -1,13 +1,13 @@ { - "description": "A Socat process is running on a Linux host. Socat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Socat is also sometimes used for lateral movement. ", + "description": "A Socat process is running on a Linux host. Socat is often used as a persistence mechanism by exporting a reverse shell, or by serving a shell on a listening port. Socat is also sometimes used for lateral movement.", "false_positives": [ - "Socat is a dual-use tool that can be used for benign or malicious activity. Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by web servers is more likely to be suspicious." + "Socat is a dual-use tool that can be used for benign or malicious activity. Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools, and frameworks. Usage by web servers is more likely to be suspicious." ], "index": [ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Socat Process Activity", "query": "process.name:socat and not process.args:\"-V\" and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_strace_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_strace_activity.json index f5488ae49d0fb5..fdf52e7c728c6b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_strace_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_strace_activity.json @@ -7,7 +7,7 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Strace Process Activity", "query": "process.name: strace and event.action:executed", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_tcpdump_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_tcpdump_activity.json index b6dc7f1689770c..908e892026ee32 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_tcpdump_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_tcpdump_activity.json @@ -1,5 +1,5 @@ { - "description": "The Tcpdump program ran on a Linux host. Tcpdump is a network monitoring or packet 'sniffing' tool that can be used to capture insecure credentials or data in motion. Sniffing can also be used to discover details of network services as a prelude to lateral movement or defense evasion.", + "description": "The Tcpdump program ran on a Linux host. Tcpdump is a network monitoring or packet sniffing tool that can be used to capture insecure credentials or data in motion. Sniffing can also be used to discover details of network services as a prelude to lateral movement or defense evasion.", "false_positives": [ "Some normal use of this command may originate from server or network administrators engaged in network troubleshooting." ], @@ -7,7 +7,7 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Network Sniffing via Tcpdump", "query": "process.name: tcpdump and event.action:executed", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_whoami_commmand.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_whoami_commmand.json index 91c6d2bcc9f954..052ff34d15dcdb 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_whoami_commmand.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/linux_whoami_commmand.json @@ -1,5 +1,5 @@ { - "description": "The whoami application was executed on a Linux host. This is often used by tools and persistence mechanisms to test for privileged access.", + "description": "The whoami application was executed on a Linux host. This is often used by tools and persistence mechanisms to test for privileged access.", "false_positives": [ "Security testing tools and frameworks may run this command. Some normal use of this command may originate from automation tools and frameworks." ], @@ -7,7 +7,7 @@ "auditbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "User Discovery via Whoami", "query": "process.name: whoami and event.action:executed", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_dns_directly_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_dns_directly_to_the_internet.json index 3d1b07a267eca1..72e2ca14904173 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_dns_directly_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_dns_directly_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects internal network client sending DNS traffic directly to the Internet.\nThis is atypical behavior for a managed network and can be indicative of malware,\nexfiltration, command and control or simply misconfiguration. This also impacts your\norganization's ability to provide enterprise monitoring and logging of DNS and opens\nyour network to a variety of abuses or malicious communications.\n", + "description": "This rule detects when an internal network client sends DNS traffic directly to the Internet.\nThis is atypical behavior for a managed network, and can be indicative of malware,\nexfiltration, command and control, or, simply, misconfiguration. This DNS activity also impacts your\norganization's ability to provide enterprise monitoring and logging of DNS, and opens\nyour network to a variety of abuses and malicious communications.\n", "false_positives": [ - "DNS servers should be excluded from this rule as this is expected behavior for them. Endpoints usually query local DNS servers defined in their DHCP scopes but this may be overridden if a user configures their endpoint to use a remote DNS server. This is uncommon in managed enterprise networks because it would tend to break intra-net name resolution when split horizon DNS is utilized. Some consumer VPN services and browser plug-ins may send DNS traffic to remote Internet destinations; in that case, such devices or networks can be excluded from this rule if this is expected behavior." + "Exclude DNS servers from this rule as this is expected behavior. Endpoints usually query local DNS servers defined in their DHCP scopes, but this may be overridden if a user configures their endpoint to use a remote DNS server. This is uncommon in managed enterprise networks because it could break intranet name resolution when split horizon DNS is utilized. Some consumer VPN services and browser plug-ins may send DNS traffic to remote Internet destinations. In that case, such devices or networks can be excluded from this rule when this is expected behavior." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "DNS Activity to the Internet", "query": "destination.port:53 and (\n network.direction: outbound or (\n source.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip:( 169.254.169.254/32 or 127.0.0.53/32 or 10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16 or 224.0.0.251 or ff02\\:\\:fb or 255.255.255.255 )\n )\n)\n", "references": [ @@ -22,7 +22,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ftp_file_transfer_protocol_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ftp_file_transfer_protocol_activity_to_the_internet.json index ef7b39412c808c..54daf8a2091a75 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ftp_file_transfer_protocol_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ftp_file_transfer_protocol_activity_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that may indicate the use of FTP network connections to the Internet.\nThe File Transfer Protocol (FTP) has been around in its current form since the\n1980's. It can be an efficient and normal procedure on your network to send and\nreceive files. Because it is common and efficient, adversaries will also often\nuse this protocol to ex-filtrate data from your network or download new tools.\nAdditionally, FTP is a plain-text protocol which may expose your user name and\npassword, if intercepted. FTP activity involving servers subject to regulations or compliance standards may be unauthorized.\n", + "description": "This rule detects events that may indicate the use of FTP network connections to the Internet.\nThe File Transfer Protocol (FTP) has been around in its current form since the\n1980s. It can be a common and efficient procedure on your network to send and\nreceive files. Because of this, adversaries will also often use this protocol\nto exfiltrate data from your network or download new tools. Additionally, FTP\nis a plain-text protocol which, if intercepted, may expose usernames and\npasswords. FTP activity involving servers subject to regulations or compliance\nstandards may be unauthorized.\n", "false_positives": [ - "FTP servers should be excluded from this rule as this is expected behavior for them. Some business work-flows may use FTP for data exchange. These work-flows often have expected characteristics such as users, sources and destinations. FTP activity involving an unusual source or destination may be more suspicious. FTP activity involving a production server that has no known associated FTP work-flow or business requirement is often suspicious. NEW NEW" + "FTP servers should be excluded from this rule as this is expected behavior. Some business workflows may use FTP for data exchange. These workflows often have expected characteristics such as users, sources, and destinations. FTP activity involving an unusual source or destination may be more suspicious. FTP activity involving a production server that has no known associated FTP workflow or business requirement is often suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "FTP (File Transfer Protocol) Activity to the Internet", "query": "network.transport: tcp and destination.port: (20 or 21) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_irc_internet_relay_chat_protocol_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_irc_internet_relay_chat_protocol_activity_to_the_internet.json index 2700eae9774820..d01006a225886c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_irc_internet_relay_chat_protocol_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_irc_internet_relay_chat_protocol_activity_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that use common ports for IRC to the Internet. IRC (Internet Relay Chat)\nis a common protocol that can be used chat and file transfer. This protocol\nalso makes a good candidate for remote control of malware and data transfer in\nand out of a network.\n", + "description": "This rule detects events that use common ports for Internet Relay Chat (IRC) to the Internet.\nIRC is a common protocol that can be used for chat and file transfers. This\nprotocol is also a good candidate for remote control of malware and data\ntransfers to and from a network.\n", "false_positives": [ - "IRC activity may be normal behavior for developers and engineers but is unusual for non-engineering end users. IRC activity involving an unusual source or destination may be more suspicious. IRC activity involving a production server is often suspicious. Because these ports are in the ephemeral range, this rule may false under certain conditions such as when a NATted web server replies to a client which has used a port in the range by coincidence. In this case, such servers can be excluded if desired. Some legacy applications may use these ports but this is very uncommon and usually appears only in local traffic using private IPs which this rule does not match." + "IRC activity may be normal behavior for developers and engineers but is unusual for non-engineering end users. IRC activity involving an unusual source or destination may be more suspicious. IRC activity involving a production server is often suspicious. Because these ports are in the ephemeral range, this rule may false under certain conditions, such as when a NAT-ed web server replies to a client which has used a port in the range by coincidence. In this case, these servers can be excluded. Some legacy applications may use these ports, but this is very uncommon and usually only appears in local traffic using private IPs, which does not match this rule's conditions." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "IRC (Internet Relay Chat) Protocol Activity to the Internet", "query": "network.transport: tcp and destination.port:(6667 or 6697) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_nat_traversal_port_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_nat_traversal_port_activity.json index e87e296017a36e..c66a9e9d77fe4b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_nat_traversal_port_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_nat_traversal_port_activity.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that could be describing IPSEC NAT Traversal traffic.\nIPSEC is a VPN technology that allows one system to talk to another using\nencrypted tunnels. NAT Traversal enables these tunnels to communicate over\nthe Internet where one of the sides is behind a NAT router gateway. This may\nbe common on your network, but this technique is also used by threat actors\nto avoid detection.\n", + "description": "This rule detects events that could be describing IPSEC NAT Traversal traffic.\nIPSEC is a VPN technology that allows one system to talk to another using\nencrypted tunnels. NAT Traversal enables these tunnels to communicate over the\nInternet where one of the sides is behind a NAT router gateway. This may be\ncommon on your network, but this technique is also used by threat actors to\navoid detection.\n", "false_positives": [ - "Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions such as when a application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded if desired." + "Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "IPSEC NAT Traversal Port Activity", "query": "network.transport: udp and destination.port: 4500", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_26_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_26_activity.json index 352fc5e44dc806..7b261418985329 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_26_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_26_activity.json @@ -1,18 +1,18 @@ { - "description": "This signal detects events that may indicate use of SMTP on TCP port 26. This\nport is commonly used by several popular mail transfer agents to deconflict\nwith the default SMTP port 25. This port has also been used by a malware family\ncalled BadPatch for command and control of Windows systems.\n", + "description": "This rule detects events that may indicate use of SMTP on TCP port 26. This\nport is commonly used by several popular mail transfer agents to deconflict\nwith the default SMTP port 25. This port has also been used by a malware family\ncalled BadPatch for command and control of Windows systems.\n", "false_positives": [ - "Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior for them." + "Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SMTP on Port 26/TCP", - "query": "network.transport: tcp and destination.port: 26", + "query": "network.transport: tcp and destination.port: 26\n", "references": [ "https://unit42.paloaltonetworks.com/unit42-badpatch/", "https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/" @@ -22,7 +22,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_8000_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_8000_activity_to_the_internet.json index 2b3d08a7c80d98..7551119cd5a844 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_8000_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_port_8000_activity_to_the_internet.json @@ -1,16 +1,16 @@ { "description": "TCP Port 8000 is commonly used for development environments of web server\nsoftware. It generally should not be exposed directly to the Internet. If you are\nrunning software like this on the Internet, you should consider placing it behind\na reverse proxy.\n", "false_positives": [ - "Because this port is in the ephemeral range, this rule may false under certain conditions such as when a NATed web server replies to a client which has used a port in the range by coincidence. In this case, such servers can be excluded if desired. Some applications may use this port but this is very uncommon and usually appears in local traffic using private IPs which this rule does not match. Some cloud environments, particularly development environments, may use this port when VPNs or direct connects are not in use and cloud instances are accessed across the Internet." + "Because this port is in the ephemeral range, this rule may false under certain conditions, such as when a NATed web server replies to a client which has used a port in the range by coincidence. In this case, such servers can be excluded. Some applications may use this port but this is very uncommon and usually appears in local traffic using private IPs, which this rule does not match. Some cloud environments, particularly development environments, may use this port when VPNs or direct connects are not in use and cloud instances are accessed across the Internet." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "TCP Port 8000 Activity to the Internet", "query": "network.transport: tcp and destination.port: 8000 and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_pptp_point_to_point_tunneling_protocol_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_pptp_point_to_point_tunneling_protocol_activity.json index b008ca2c2bee6c..eeb38f756c67a6 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_pptp_point_to_point_tunneling_protocol_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_pptp_point_to_point_tunneling_protocol_activity.json @@ -1,24 +1,24 @@ { - "description": "This signal detects events that may indicate use of a PPTP VPN connection. Some threat actors use these types of connections to tunnel their traffic while avoiding detection.", + "description": "This rule detects events that may indicate use of a PPTP VPN connection. Some\nthreat actors use these types of connections to tunnel their traffic while\navoiding detection.\n", "false_positives": [ - "Some networks may utilize PPTP protocols but this is uncommon as more modern VPN technologies are available. Usage that is unfamiliar to local network administrators can be unexpected and suspicious. Torrenting applications may use this port. Because this port is in the ephemeral range, this rule may false under certain conditions such as when an application server with replies to a client which has used this port by coincidence. This is uncommon but such servers can be excluded if desired." + "Some networks may utilize PPTP protocols but this is uncommon as more modern VPN technologies are available. Usage that is unfamiliar to local network administrators can be unexpected and suspicious. Torrenting applications may use this port. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server replies to a client that used this port by coincidence. This is uncommon but such servers can be excluded." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "PPTP (Point to Point Tunneling Protocol) Activity", - "query": "network.transport: tcp and destination.port: 1723", + "query": "network.transport: tcp and destination.port: 1723\n", "risk_score": 21, "rule_id": "d2053495-8fe7-4168-b3df-dad844046be3", "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_proxy_port_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_proxy_port_activity_to_the_internet.json index f7c6ffddcaf9ee..981a7bdffcfed0 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_proxy_port_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_proxy_port_activity_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that may describe network events of proxy use to the\nInternet. It includes popular HTTP proxy ports and SOCKS proxy ports. Typically\nenvironments will use an internal IP address for a proxy server. It can also\nbe used to circumvent network controls and detection mechanisms.\n", + "description": "This rule detects events that may describe network events of proxy use to the\nInternet. It includes popular HTTP proxy ports and SOCKS proxy ports. Typically,\nenvironments will use an internal IP address for a proxy server. It can also\nbe used to circumvent network controls and detection mechanisms.\n", "false_positives": [ - "Some proxied applications may use these ports but this usually occurs in local traffic using private IPs which this rule does not match. Proxies are widely used as a security technology but in enterprise environments this is usually local traffic which this rule does not match. Internet proxy services using these ports can be white-listed if desired. Some screen recording applications may use these ports. Proxy port activity involving an unusual source or destination may be more suspicious. Some cloud environments may use this port when VPNs or direct connects are not in use and cloud instances are accessed across the Internet. Because these ports are in the ephemeral range, this rule may false under certain conditions such as when a NATed web server replies to a client which has used a port in the range by coincidence. In this case, such servers can be excluded if desired." + "Some proxied applications may use these ports but this usually occurs in local traffic using private IPs\n which this rule does not match. Proxies are widely used as a security technology but in enterprise environments\n this is usually local traffic which this rule does not match. Internet proxy services using these ports can be\n white-listed if desired. Some screen recording applications may use these ports. Proxy port activity involving\n an unusual source or destination may be more suspicious. Some cloud environments may use this port when VPNs or\n direct connects are not in use and cloud instances are accessed across the Internet. Because these ports are in\n the ephemeral range, this rule may false under certain conditions such as when a NATed web server replies to a\n client which has used a port in the range by coincidence. In this case, such servers can be excluded if desired." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "Proxy Port Activity to the Internet", "query": "network.transport: tcp and destination.port: (3128 or 8080 or 1080) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_from_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_from_the_internet.json index e3853c30e6ad9c..504df93f2f8ed1 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_from_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_from_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of RDP traffic\nfrom the Internet. RDP is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of RDP traffic\nfrom the Internet. RDP is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "false_positives": [ - "Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected." + " Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to\n server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the\n Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump\n servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may\n be required by some work-flows such as remote access and support for specialized software products and\n servers. Such work-flows are usually known and not unexpected." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "RDP (Remote Desktop Protocol) from the Internet", "query": "network.transport: tcp and destination.port: 3389 and (\n network.direction: inbound or (\n not source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n and destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_to_the_internet.json index 55b9716af9346d..2d9fa6ba06dfdc 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rdp_remote_desktop_protocol_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of RDP traffic\nto the Internet. RDP is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of RDP traffic\nto the Internet. RDP is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "false_positives": [ - "RDP connections may be made directly to Internet destinations in order to access Windows cloud server instances but such connections are usually made only by engineers. In such cases, only RDP gateways, bastions or jump servers may be expected Internet destinations and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious." + "RDP connections may be made directly to Internet destinations in order to access\n Windows cloud server instances but such connections are usually made only by engineers.\n In such cases, only RDP gateways, bastions or jump servers may be expected Internet\n destinations and can be exempted from this rule. RDP may be required by some work-flows\n such as remote access and support for specialized software products and servers. Such\n work-flows are usually known and not unexpected. Usage that is unfamiliar to server or\n network owners can be unexpected and suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "RDP (Remote Desktop Protocol) to the Internet", "query": "network.transport: tcp and destination.port: 3389 and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_from_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_from_the_internet.json index 1570d3d155feaf..d50c79db81ba5c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_from_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_from_the_internet.json @@ -1,13 +1,13 @@ { - "description": "This signal detects network events that may indicate the use of RPC traffic\nfrom the Internet. RPC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of RPC traffic\nfrom the Internet. RPC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "RPC (Remote Procedure Call) from the Internet", "query": "network.transport: tcp and destination.port: 135 and (\n network.direction: inbound or (\n not source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 73, @@ -15,7 +15,7 @@ "severity": "high", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_to_the_internet.json index 91db97dabdd46f..ade7b661a79091 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_rpc_remote_procedure_call_to_the_internet.json @@ -1,13 +1,13 @@ { - "description": "This signal detects network events that may indicate the use of RPC traffic\nto the Internet. RPC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of RPC traffic\nto the Internet. RPC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "RPC (Remote Procedure Call) to the Internet", "query": "network.transport: tcp and destination.port: 135 and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 73, @@ -15,7 +15,7 @@ "severity": "high", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smb_windows_file_sharing_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smb_windows_file_sharing_activity_to_the_internet.json index 991c626c11d33a..62c2fafb7404ff 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smb_windows_file_sharing_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smb_windows_file_sharing_activity_to_the_internet.json @@ -1,13 +1,13 @@ { - "description": "This signal detects network events that may indicate the use of Windows\nfile sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly\nused within networks to share files, printers, and other system resources amongst\ntrusted systems. It should almost never be directly exposed to the Internet, as\nit is frequently targeted and exploited by threat actors as an initial access\nor back-door vector or for data exfiltration.\n", + "description": "This rule detects network events that may indicate the use of Windows\nfile sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly\nused within networks to share files, printers, and other system resources amongst\ntrusted systems. It should almost never be directly exposed to the Internet, as\nit is frequently targeted and exploited by threat actors as an initial access\nor back-door vector or for data exfiltration.\n", "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SMB (Windows File Sharing) Activity to the Internet", "query": "network.transport: tcp and destination.port: (139 or 445) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 73, @@ -15,7 +15,7 @@ "severity": "high", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smtp_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smtp_to_the_internet.json index 68daf71d9992a4..02fca5603910e9 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smtp_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_smtp_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that may describe SMTP traffic from internal\nhosts to a host across the Internet. In an enterprise network, there is typically\na dedicate host that is internal that could perform this function. It is also\nfrequently abused by threat actors for command and control or data exfiltration.\n", + "description": "This rule detects events that may describe SMTP traffic from internal\nhosts to a host across the Internet. In an enterprise network, there is typically\na dedicated internal host that performs this function. It is also\nfrequently abused by threat actors for command and control, or data exfiltration.\n", "false_positives": [ - "NATed servers that process email traffic may false and should be excluded from this rule as this is expected behavior for them. Consumer and / or personal devices may send email traffic to remote Internet destinations; in that case, such devices or networks can be excluded from this rule if this is expected behavior." + "NATed servers that process email traffic may false and should be excluded from this rule as this is expected behavior for them. Consumer and personal devices may send email traffic to remote Internet destinations. In this case, such devices or networks can be excluded from this rule if this is expected behavior." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SMTP to the Internet", "query": "network.transport: tcp and destination.port: (25 or 465 or 587) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_sql_server_port_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_sql_server_port_activity_to_the_internet.json index df779d47246a5d..67e6a08ddf7918 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_sql_server_port_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_sql_server_port_activity_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects events that may describe database traffic\n(MS SQL, Oracle, MySQL, and Postgresql) across the Internet. Databases\nshould almost never be directly exposed to the Internet, as they are\nfrequently targeted by threat actors to gain initial access to network resources.\n", + "description": "This rule detects events that may describe database traffic\n(MS SQL, Oracle, MySQL, and Postgresql) across the Internet. Databases\nshould almost never be directly exposed to the Internet, as they are\nfrequently targeted by threat actors to gain initial access to network resources.\n", "false_positives": [ - "Because these ports are in the ephemeral range, this rule may false under certain conditions such as when a NATed web server replies to a client which has used a port in the range by coincidence. In this case, such servers can be excluded if desired. Some cloud environments may use this port when VPNs or direct connects are not in use and database instances are accessed directly across the Internet." + "Because these ports are in the ephemeral range, this rule may false under certain conditions\n such as when a NATed web server replies to a client which has used a port in the range by\n coincidence. In this case, such servers can be excluded if desired. Some cloud environments may\n use this port when VPNs or direct connects are not in use and database instances are accessed\n directly across the Internet." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SQL Traffic to the Internet", "query": "network.transport: tcp and destination.port: (1433 or 1521 or 3336 or 5432) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_from_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_from_the_internet.json index 6c278700450b19..052600a0db68a1 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_from_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_from_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of SSH traffic\nfrom the Internet. SSH is commonly used by system administrators to remotely\ncontrol a system using the command line shell. If it is exposed to the Internet,\nit should be done with strong security controls as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of SSH traffic\nfrom the Internet. SSH is commonly used by system administrators to remotely\ncontrol a system using the command line shell. If it is exposed to the Internet,\nit should be done with strong security controls as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "false_positives": [ - "Some network security policies allow SSH directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. SSH services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only SSH gateways, bastions or jump servers may be expected expose SSH directly to the Internet and can be exempted from this rule. SSH may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected." + "Some network security policies allow SSH directly from the Internet but usage that is\n unfamiliar to server or network owners can be unexpected and suspicious. SSH services may\n be exposed directly to the Internet in some networks such as cloud environments. In such\n cases, only SSH gateways, bastions or jump servers may be expected expose SSH directly to\n the Internet and can be exempted from this rule. SSH may be required by some work-flows\n such as remote access and support for specialized software products and servers. Such\n work-flows are usually known and not unexpected." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SSH (Secure Shell) from the Internet", "query": "network.transport: tcp and destination.port:22 and (\n network.direction: inbound or (\n not source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_to_the_internet.json index 63f2dbc8a34f12..e3c3135c9240d5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_ssh_secure_shell_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of SSH traffic\nfrom the Internet. SSH is commonly used by system administrators to remotely\ncontrol a system using the command line shell. If it is exposed to the Internet,\nit should be done with strong security controls as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of SSH traffic\nfrom the Internet. SSH is commonly used by system administrators to remotely\ncontrol a system using the command line shell. If it is exposed to the Internet,\nit should be done with strong security controls as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "false_positives": [ - "SSH connections may be made directly to Internet destinations in order to access Linux cloud server instances but such connections are usually made only by engineers. In such cases, only SSH gateways, bastions or jump servers may be expected Internet destinations and can be exempted from this rule. SSH may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious." + "SSH connections may be made directly to Internet destinations in order to access Linux\n cloud server instances but such connections are usually made only by engineers. In such cases,\n only SSH gateways, bastions or jump servers may be expected Internet destinations and can be\n exempted from this rule. SSH may be required by some work-flows such as remote access and support\n for specialized software products and servers. Such work-flows are usually known and not unexpected.\n Usage that is unfamiliar to server or network owners can be unexpected and suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "SSH (Secure Shell) to the Internet", "query": "network.transport: tcp and destination.port:22 and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 21, @@ -18,7 +18,7 @@ "severity": "low", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_telnet_port_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_telnet_port_activity.json index 0d28f0ea53d9a3..c05791c8a107d8 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_telnet_port_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_telnet_port_activity.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of Telnet traffic.\nTelnet is commonly used by system administrators to remotely control older or embed ed\nsystems using the command line shell. It should almost never be directly exposed to\nthe Internet, as it is frequently targeted and exploited by threat actors as an\ninitial access or back-door vector. As a plain-text protocol, it may also expose\n", + "description": "This rule detects network events that may indicate the use of Telnet traffic.\nTelnet is commonly used by system administrators to remotely control older or embed ed\nsystems using the command line shell. It should almost never be directly exposed to\nthe Internet, as it is frequently targeted and exploited by threat actors as an\ninitial access or back-door vector. As a plain-text protocol, it may also expose\nusernames and passwords to anyone capable of observing the traffic.\n", "false_positives": [ - "IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious." + "IoT (Internet of Things) devices and networks may use telnet and can be excluded if\n desired. Some business work-flows may use Telnet for administration of older devices. These\n often have a predictable behavior. Telnet activity involving an unusual source or destination\n may be more suspicious. Telnet activity involving a production server that has no known\n associated Telnet work-flow or business requirement is often suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "Telnet Port Activity", "query": "network.transport: tcp and destination.port: 23", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_tor_activity_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_tor_activity_to_the_internet.json index 80893e9404f021..64397716eded26 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_tor_activity_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_tor_activity_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of Tor traffic\nto the Internet. Tor is a network protocol that sends traffic through a\nseries of encrypted tunnels used to conceal a user's location and usage.\nTor may be used by threat actors as an alternate communication pathway to\nconceal the actor's identity and avoid detection.\n", + "description": "This rule detects network events that may indicate the use of Tor traffic\nto the Internet. Tor is a network protocol that sends traffic through a\nseries of encrypted tunnels used to conceal a user's location and usage.\nTor may be used by threat actors as an alternate communication pathway to\nconceal the actor's identity and avoid detection.\n", "false_positives": [ - "Tor client activity is uncommon in managed enterprise networks but may be common in unmanaged or public networks where few security policies apply. Because these ports are in the ephemeral range, this rule may false under certain conditions such as when a NATed web server replies to a client which has used one of these ports by coincidence. In this case, such servers can be excluded if desired." + "Tor client activity is uncommon in managed enterprise networks but may be common\n in unmanaged or public networks where few security policies apply. Because these ports\n are in the ephemeral range, this rule may false under certain conditions such as when a\n NATed web server replies to a client which has used one of these ports by coincidence.\n In this case, such servers can be excluded if desired." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "Tor Activity to the Internet", "query": "network.transport: tcp and destination.port: (9001 or 9030) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_from_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_from_the_internet.json index e64138dd053fa6..dc4fbb281f7622 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_from_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_from_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of VNC traffic\nfrom the Internet. VNC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of VNC traffic\nfrom the Internet. VNC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", "false_positives": [ - "VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious." + "VNC connections may be received directly to Linux cloud server instances but\n such connections are usually made only by engineers. VNC is less common than SSH\n or RDP but may be required by some work-flows such as remote access and support\n for specialized software products or servers. Such work-flows are usually known\n and not unexpected. Usage that is unfamiliar to server or network owners can be\n unexpected and suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "VNC (Virtual Network Computing) from the Internet", "query": "network.transport: tcp and (destination.port >= 5800 and destination.port <= 5810) and (\n network.direction: inbound or (\n not source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 73, @@ -18,7 +18,7 @@ "severity": "high", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_to_the_internet.json index 8c43419c3ead55..7da5db39d9bfe3 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/network_vnc_virtual_network_computing_to_the_internet.json @@ -1,16 +1,16 @@ { - "description": "This signal detects network events that may indicate the use of VNC traffic\nto the Internet. VNC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.\n", + "description": "This rule detects network events that may indicate the use of VNC traffic\nto the Internet. VNC is commonly used by system administrators to remotely\ncontrol a system for maintenance or to use shared resources. It should almost\nnever be directly exposed to the Internet, as it is frequently targeted and\nexploited by threat actors as an initial access or back-door vector.", "false_positives": [ - "VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious." + "VNC connections may be made directly to Linux cloud server instances but such\n connections are usually made only by engineers. VNC is less common than SSH or RDP\n but may be required by some work flows such as remote access and support for\n specialized software products or servers. Such work-flows are usually known and not\n unexpected. Usage that is unfamiliar to server or network owners can be unexpected\n and suspicious." ], "index": [ "auditbeat-*", - "endgame-*", "filebeat-*", "packetbeat-*", "winlogbeat-*" ], "language": "kuery", + "max_signals": 100, "name": "VNC (Virtual Network Computing) to the Internet", "query": "network.transport: tcp and (destination.port >= 5800 and destination.port <= 5810) and (\n network.direction: outbound or (\n source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n )\n)\n", "risk_score": 47, @@ -18,7 +18,7 @@ "severity": "medium", "tags": [ "Elastic", - "network" + "Network" ], "threat": [ { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/notice.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/notice.ts index cd24d823b8cd62..a597220db752fe 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/notice.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/notice.ts @@ -9,8 +9,6 @@ * - windows_priv_escalation_via_accessibility_features.json * - windows_persistence_via_application_shimming.json * - windows_execution_via_trusted_developer_utilities.json - * - windows_execution_via_net_com_assemblies.json - * - windows_execution_via_connection_manager.json * * MIT License * diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/null_user_agent.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/null_user_agent.json index 7975c30a4ea386..c08d910a3b3557 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/null_user_agent.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/null_user_agent.json @@ -1,7 +1,7 @@ { "description": "A request to a web application server contained no identifying user agent string.", "false_positives": [ - "Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, or the user is unauthorized, or the request is unusual, these may be suspicious or malicious activity." + "Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity." ], "filters": [ { @@ -25,7 +25,7 @@ "apm-*-transaction*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Web Application Suspicious Activity: No User Agent", "query": "url.path: *", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/sqlmap_user_agent.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/sqlmap_user_agent.json index 44e112d09a45b4..5c03c3a76e4a7c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/sqlmap_user_agent.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/sqlmap_user_agent.json @@ -1,12 +1,13 @@ { - "description": "This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11 which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities. ", + "description": "This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.", "false_positives": [ - "This signal does not indicate that a SQL injection attack occurred, only that the sqlmap tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity." + "This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity." ], "index": [ "apm-*-transaction*" ], "language": "kuery", + "max_signals": 100, "name": "Web Application Suspicious Activity: sqlmap User Agent", "query": "user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"", "references": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_background_intelligent_transfer_service_bits_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_background_intelligent_transfer_service_bits_connecting_to_the_internet.json deleted file mode 100644 index 9b3784345b013a..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_background_intelligent_transfer_service_bits_connecting_to_the_internet.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "description": "Adversaries may abuse the Background Intelligent Transfer Service (BITS) to download, execute, or clean up after performing a malicious action.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Background Intelligent Transfer Service (BITS) connecting to the Internet", - "query": "process.name:bitsadmin.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", - "risk_score": 21, - "rule_id": "7edadee3-98ae-472c-b1c4-8c0a2c4877cc", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "name": "Defense Evasion", - "reference": "https://attack.mitre.org/tactics/TA0005/" - }, - "technique": [ - { - "id": "T1197", - "name": "BITS Jobs", - "reference": "https://attack.mitre.org/techniques/T1197/" - } - ] - }, - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0003", - "name": "Persistence", - "reference": "https://attack.mitre.org/tactics/TA0003/" - }, - "technique": [ - { - "id": "T1197", - "name": "BITS Jobs", - "reference": "https://attack.mitre.org/techniques/T1197/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_certutil_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_certutil_connecting_to_the_internet.json deleted file mode 100644 index 0a960fc427d7b2..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_certutil_connecting_to_the_internet.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Certutil Network Connection", - "query": "process.name:certutil.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", - "risk_score": 21, - "rule_id": "1a2cf526-6784-4c51-a2b9-f0adcc05d85c", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0011", - "name": "Command and Control", - "reference": "https://attack.mitre.org/tactics/TA0011/" - }, - "technique": [ - { - "id": "T1105", - "name": "Remote File Copy", - "reference": "https://attack.mitre.org/techniques/T1105/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_prompt_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_prompt_connecting_to_the_internet.json index 87dbd4cd707770..7ab8034ef4083b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_prompt_connecting_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_prompt_connecting_to_the_internet.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Command Prompt Network Connection", "query": "process.name:cmd.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_internet_explorer.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_internet_explorer.json deleted file mode 100644 index a214ab4544b97e..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_internet_explorer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies a suspicious parent child process relationship with cmd.exe spawning form Internet Explorer.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Internet Explorer spawning cmd.exe", - "query": "process.parent.name:iexplore.exe and process.name:cmd.exe", - "risk_score": 21, - "rule_id": "7a6e1e81-deae-4cf6-b807-9a768fff3c06", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1059", - "name": "Command-Line Interface", - "reference": "https://attack.mitre.org/techniques/T1059/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_powershell.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_powershell.json index 187cc9d344902f..d914fd2e91a077 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_powershell.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_powershell.json @@ -4,8 +4,8 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, - "name": "PowerShell spawning cmd.exe", + "max_signals": 100, + "name": "PowerShell spawning Cmd", "query": "process.parent.name:powershell.exe and process.name:cmd.exe", "risk_score": 21, "rule_id": "0f616aee-8161-4120-857e-742366f5eeb3", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_svchost.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_svchost.json index 81114bf8b87668..b7f0c54fedf622 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_svchost.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_command_shell_started_by_svchost.json @@ -4,8 +4,8 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, - "name": "Svchost spawning cmd.exe", + "max_signals": 100, + "name": "Svchost spawning Cmd", "query": "process.parent.name:svchost.exe and process.name:cmd.exe", "risk_score": 21, "rule_id": "fd7a6052-58fa-4397-93c3-4795249ccfa2", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_defense_evasion_via_filter_manager.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_defense_evasion_via_filter_manager.json index 7c999c1fc1e03a..86242fd1081a1a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_defense_evasion_via_filter_manager.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_defense_evasion_via_filter_manager.json @@ -4,15 +4,14 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Potential Evasion via Filter Manager", - "query": "event.code:1 and process.name:fltmc.exe", + "query": "event.code:1 and process.name:fltMC.exe", "risk_score": 21, "rule_id": "06dceabf-adca-48af-ac79-ffdf4c3b1e9a", "severity": "low", "tags": [ "Elastic", - "D-SA", "Windows" ], "threat": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_compiled_html_file.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_compiled_html_file.json index 62c8942dda9c3c..7789b0723b3fc3 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_compiled_html_file.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_compiled_html_file.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Process Activity via Compiled HTML File", "query": "event.code:1 and process.name:hh.exe", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_connection_manager.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_connection_manager.json deleted file mode 100644 index 657487232fe81c..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_connection_manager.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "description": "Various Windows utilities may be used to execute commands, possibly without invoking cmd.exe, including the Program Compatibility Assistant (pcalua.exe) or forfiles.exe.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Indirect Command Execution", - "query": "event.code:1 and process.parent.name:pcalua.exe or (process.name:bash.exe or process.name:forfiles.exe or process.name:pcalua.exe)", - "risk_score": 21, - "rule_id": "f2728299-167a-489c-913c-2e0955ac3c40", - "severity": "low", - "tags": [ - "Elastic", - "D-SA", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "name": "Defense Evasion", - "reference": "https://attack.mitre.org/tactics/TA0005/" - }, - "technique": [ - { - "id": "T1202", - "name": "Indirect Command Execution", - "reference": "https://attack.mitre.org/techniques/T1202/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_net_com_assemblies.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_net_com_assemblies.json deleted file mode 100644 index 80d91fa5153427..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_net_com_assemblies.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "description": "Adversaries can use Regsvcs.exe and Regasm.exe to proxy execution of code through a trusted Windows utility.", - "false_positives": [ - "Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool." - ], - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Execution via Regsvcs/Regasm", - "query": "event.code:1 and (process.name:regasm.exe or process.name:regsvcs.exe)", - "risk_score": 21, - "rule_id": "5c12412f-602c-4120-8c4f-69d723dbba04", - "severity": "low", - "tags": [ - "Elastic", - "D-SA", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1121", - "name": "Regsvcs/Regasm", - "reference": "https://attack.mitre.org/techniques/T1121/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_regsvr32.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_regsvr32.json index 6b2c54d5279630..e8e7ddfc168dcc 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_regsvr32.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_regsvr32.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Suspicious Script Object Execution", "query": "event.code: 1 and scrobj.dll and (process.name:certutil.exe or process.name:regsvr32.exe or process.name:rundll32.exe)", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_trusted_developer_utilities.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_trusted_developer_utilities.json index e722d311b86c7a..bd2376a0897f49 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_trusted_developer_utilities.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_execution_via_trusted_developer_utilities.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Trusted Developer Application Usage", "query": "event.code:1 and (process.name:MSBuild.exe or process.name:msxsl.exe)", "risk_score": 21, @@ -15,7 +15,6 @@ "severity": "low", "tags": [ "Elastic", - "D-SA", "Windows" ], "threat": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_html_help_executable_program_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_html_help_executable_program_connecting_to_the_internet.json index 2b4d774281b847..32fa953388be30 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_html_help_executable_program_connecting_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_html_help_executable_program_connecting_to_the_internet.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Network Connection via Compiled HTML File", "query": "process.name:hh.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_misc_lolbin_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_misc_lolbin_connecting_to_the_internet.json index 8a4cb75588bff5..0015371f030670 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_misc_lolbin_connecting_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_misc_lolbin_connecting_to_the_internet.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Network Connection via Signed Binary", "query": "(process.name:expand.exe or process.name:extrac.exe or process.name:ieexec.exe or process.name:makecab.exe) and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_net_command_activity_by_the_system_account.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_net_command_activity_by_the_system_account.json deleted file mode 100644 index 5b3257daec8fbe..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_net_command_activity_by_the_system_account.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Identifies attempts to create new users via the SYSTEM account.", - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Net command via SYSTEM account", - "query": "process.name: (net.exe or net1.exe) and user.name:SYSTEM", - "risk_score": 21, - "rule_id": "c3f5dc81-a8b4-4144-95a7-d0a818d7355d", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0003", - "name": "Persistence", - "reference": "https://attack.mitre.org/tactics/TA0003/" - }, - "technique": [ - { - "id": "T1136", - "name": "Create Account", - "reference": "https://attack.mitre.org/techniques/T1136/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_persistence_via_application_shimming.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_persistence_via_application_shimming.json index 2c10382cdbc7c0..6eaac7b9e6cabf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_persistence_via_application_shimming.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_persistence_via_application_shimming.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Potential Application Shimming via Sdbinst", "query": "event.code:1 and process.name:sdbinst.exe", "risk_score": 21, @@ -12,7 +12,6 @@ "severity": "low", "tags": [ "Elastic", - "D-SA", "Windows" ], "threat": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_priv_escalation_via_accessibility_features.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_priv_escalation_via_accessibility_features.json index 23d05aaf526e3a..b2463633b0c5da 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_priv_escalation_via_accessibility_features.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_priv_escalation_via_accessibility_features.json @@ -4,7 +4,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Potential Modification of Accessibility Binaries", "query": "event.code:1 and process.parent.name:winlogon.exe and (process.name:atbroker.exe or process.name:displayswitch.exe or process.name:magnify.exe or process.name:narrator.exe or process.name:osk.exe or process.name:sethc.exe or process.name:utilman.exe)", "risk_score": 21, @@ -12,7 +12,6 @@ "severity": "low", "tags": [ "Elastic", - "D-SA", "Windows" ], "threat": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_discovery_via_tasklist_command.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_discovery_via_tasklist_command.json index 5f5215ddff8c63..a0542ef59d8cd3 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_discovery_via_tasklist_command.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_discovery_via_tasklist_command.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Process Discovery via Tasklist", "query": "event.code:1 and process.name:tasklist.exe", "risk_score": 21, @@ -15,7 +15,6 @@ "severity": "low", "tags": [ "Elastic", - "D-SA", "Windows" ], "threat": [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_execution_via_wmi.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_execution_via_wmi.json deleted file mode 100644 index 6d6343330a7ff9..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_process_execution_via_wmi.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "description": "Identifies use of scrcons.exe, which is a Windows Management Instrumentation (WMI) Standard Event Consumer scripting application.", - "false_positives": [ - " Windows Management Instrumentation (WMI) processes can be used for an array of administrative capabilities. It's important to baseline your environment to determine any abnormal use of this tool." - ], - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Execution via Scrcons", - "query": "process.name:scrcons.exe", - "risk_score": 21, - "rule_id": "7e6cd4b9-6346-4683-b3e6-6a3e66f3208f", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1047", - "name": "Windows Management Instrumentation", - "reference": "https://attack.mitre.org/techniques/T1047/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_register_server_program_connecting_to_the_internet.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_register_server_program_connecting_to_the_internet.json index b35e016be15d7a..d0f2e809c1aa7f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_register_server_program_connecting_to_the_internet.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_register_server_program_connecting_to_the_internet.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Network Connection via Regsvr", "query": "(process.name:regsvr32.exe or process.name:regsvr64.exe) and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:169.254.169.254/32 and not destination.ip:10.0.0.0/8 and not destination.ip:172.16.0.0/12 and not destination.ip:192.168.0.0/16", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution.json index cf5135cc490eb0..be4ccef2a0887b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Execution via Signed Binary", "query": "event.code:1 and http and (process.name:certutil.exe or process.name:msiexec.exe)", "risk_score": 21, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution_download.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution_download.json deleted file mode 100644 index 117a40d0fdcee7..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_signed_binary_proxy_execution_download.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "description": "Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application whitelisting and signature validation.", - "false_positives": [ - "Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual." - ], - "index": [ - "winlogbeat-*" - ], - "language": "kuery", - "max_signals": 33, - "name": "Potential Download via Signed Binary", - "query": " event.code:3 and http and (process.name:certutil.exe or process.name:replace.exe)", - "risk_score": 21, - "rule_id": "68ecc190-cce2-4021-b976-c7c846ac0a00", - "severity": "low", - "tags": [ - "Elastic", - "Windows" - ], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "name": "Defense Evasion", - "reference": "https://attack.mitre.org/tactics/TA0005/" - }, - "technique": [ - { - "id": "T1218", - "name": "Signed Binary Proxy Execution", - "reference": "https://attack.mitre.org/techniques/T1218/" - } - ] - }, - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0002", - "name": "Execution", - "reference": "https://attack.mitre.org/tactics/TA0002/" - }, - "technique": [ - { - "id": "T1218", - "name": "Signed Binary Proxy Execution", - "reference": "https://attack.mitre.org/techniques/T1218/" - } - ] - } - ], - "type": "query", - "version": 1 -} diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_suspicious_process_started_by_a_script.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_suspicious_process_started_by_a_script.json index 3691c59d784fb7..235a04f8063fcc 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_suspicious_process_started_by_a_script.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_suspicious_process_started_by_a_script.json @@ -7,8 +7,8 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, - "name": "Suspicious Process Spawning from Script Interpreter", + "max_signals": 100, + "name": "Suspicious Process spawning from Script Interpreter", "query": "(process.parent.name:cmd.exe or process.parent.name:cscript.exe or process.parent.name:mshta.exe or process.parent.name:powershell.exe or process.parent.name:rundll32.exe or process.parent.name:wscript.exe or process.parent.name:wmiprvse.exe) and (process.name:bitsadmin.exe or process.name:certutil.exe or mshta.exe or process.name:nslookup.exe or process.name:schtasks.exe) and event.code:1", "risk_score": 21, "rule_id": "89db767d-99f9-479f-8052-9205fd3090c4", diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_whoami_command_activity.json b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_whoami_command_activity.json index 3618d304dc32a3..678160f945ba0a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_whoami_command_activity.json +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/prepackaged_rules/windows_whoami_command_activity.json @@ -7,7 +7,7 @@ "winlogbeat-*" ], "language": "kuery", - "max_signals": 33, + "max_signals": 100, "name": "Whoami Process Activity", "query": "process.name:whoami.exe and event.code:1", "risk_score": 21, From ff41f4e56f1dfe9a3d2fcd9ccd508de6eb9b1104 Mon Sep 17 00:00:00 2001 From: Corey Robertson Date: Tue, 4 Feb 2020 21:25:43 -0500 Subject: [PATCH 04/33] Only change handlers as the element changes (#56782) Co-authored-by: Elastic Machine --- .../public/components/element_wrapper/index.js | 6 ++---- .../components/element_wrapper/lib/handlers.js | 4 ++-- .../canvas/public/state/actions/elements.js | 4 ++-- .../canvas/public/state/reducers/elements.js | 15 ++++++++++++++- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/x-pack/legacy/plugins/canvas/public/components/element_wrapper/index.js b/x-pack/legacy/plugins/canvas/public/components/element_wrapper/index.js index 60c7e731691fac..85882377b76849 100644 --- a/x-pack/legacy/plugins/canvas/public/components/element_wrapper/index.js +++ b/x-pack/legacy/plugins/canvas/public/components/element_wrapper/index.js @@ -58,12 +58,10 @@ function selectorFactory(dispatch) { export const ElementWrapper = compose( connectAdvanced(selectorFactory), withPropsOnChange( - (props, nextProps) => - !isEqual(props.element, nextProps.element) || - !isEqual(props.selectedPage, nextProps.selectedPage), + (props, nextProps) => !isEqual(props.element, nextProps.element), props => { const { element, createHandlers } = props; - const handlers = createHandlers(element, props.selectedPage); + const handlers = createHandlers(element); // this removes element and createHandlers from passed props return { handlers }; } diff --git a/x-pack/legacy/plugins/canvas/public/components/element_wrapper/lib/handlers.js b/x-pack/legacy/plugins/canvas/public/components/element_wrapper/lib/handlers.js index d71c5ead2c8021..8ea90974e2c53d 100644 --- a/x-pack/legacy/plugins/canvas/public/components/element_wrapper/lib/handlers.js +++ b/x-pack/legacy/plugins/canvas/public/components/element_wrapper/lib/handlers.js @@ -16,7 +16,7 @@ export const createHandlers = dispatch => { let oldElement; let completeFn = () => {}; - return (element, pageId) => { + return element => { // reset isComplete when element changes if (!isEqual(oldElement, element)) { isComplete = false; @@ -25,7 +25,7 @@ export const createHandlers = dispatch => { return { setFilter(text) { - dispatch(setFilter(text, element.id, pageId, true)); + dispatch(setFilter(text, element.id, true)); }, getFilter() { diff --git a/x-pack/legacy/plugins/canvas/public/state/actions/elements.js b/x-pack/legacy/plugins/canvas/public/state/actions/elements.js index 7b7e87b027af53..8b49d16e87b217 100644 --- a/x-pack/legacy/plugins/canvas/public/state/actions/elements.js +++ b/x-pack/legacy/plugins/canvas/public/state/actions/elements.js @@ -254,9 +254,9 @@ export const removeElements = createThunk( export const setFilter = createThunk( 'setFilter', - ({ dispatch }, filter, elementId, pageId, doRender = true) => { + ({ dispatch }, filter, elementId, doRender = true) => { const _setFilter = createAction('setFilter'); - dispatch(_setFilter({ filter, elementId, pageId })); + dispatch(_setFilter({ filter, elementId })); if (doRender === true) { dispatch(fetchAllRenderables()); diff --git a/x-pack/legacy/plugins/canvas/public/state/reducers/elements.js b/x-pack/legacy/plugins/canvas/public/state/reducers/elements.js index c7e8a5c2ff2d81..630694a860aad4 100644 --- a/x-pack/legacy/plugins/canvas/public/state/reducers/elements.js +++ b/x-pack/legacy/plugins/canvas/public/state/reducers/elements.js @@ -87,6 +87,18 @@ const trimElement = ({ id, position, expression, filter }) => ({ ...(filter !== void 0 && { filter }), }); +const getPageWithElementId = (workpad, elementId) => { + const matchingPage = workpad.pages.find(page => + page.elements.map(element => element.id).includes(elementId) + ); + + if (matchingPage) { + return matchingPage.id; + } + + return undefined; +}; + export const elementsReducer = handleActions( { // TODO: This takes the entire element, which is not necessary, it could just take the id. @@ -95,7 +107,8 @@ export const elementsReducer = handleActions( return assignNodeProperties(workpadState, pageId, elementId, { expression }); }, [actions.setFilter]: (workpadState, { payload }) => { - const { filter, pageId, elementId } = payload; + const { filter, elementId } = payload; + const pageId = getPageWithElementId(workpadState, elementId); return assignNodeProperties(workpadState, pageId, elementId, { filter }); }, [actions.setMultiplePositions]: (workpadState, { payload }) => From 117bfb5cc72fdb85afa411fa349b5e1735861147 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 4 Feb 2020 22:07:37 -0600 Subject: [PATCH 05/33] Improve pull request template proposal (#56756) Looking through Kibana PRs many currently ignore the check boxes or just delete them. The goal here is to make the process easier, delete some unused options and align the checkboxes with what's most useful. We've had some discussions on the Uptime team about ways the PR template could be potentially improved. These changes are based on an extended discussion we had on the topic. We'd love to hear if other teams would be OK with these recommended changes. The changes here are: * Allow authors to just delete unnecessary items rather than strike through. Adding all the `~~` in markdown is painful * Remove the unnecessary checkbox for release notes, the build bot catches this and blocks merges without that being set. * Add a checkbox for testing in various browser sizes / mobile responsive devices * Move IE checkbox to the bottom of the list since it's seldom checked and makes the checklist seem daunting --- .github/PULL_REQUEST_TEMPLATE.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5a80a11c5cbea1..4cc0c8016f1d0a 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,16 +4,15 @@ Summarize your PR. If it involves visual changes include a screenshot or gif. ### Checklist -Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR. +Delete any items that are not applicable to this PR. -- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md) - [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios - [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist) +- [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server) +- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process) -- [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process) - From 4d7c7b55f7df813b69b3a75d78f1bf1234ddf384 Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Wed, 5 Feb 2020 10:29:21 +0100 Subject: [PATCH 06/33] Properly handle password change for users authenticated with provider other than `basic`. (#55206) --- .../server/alerts_client_factory.test.ts | 2 +- .../plugins/reporting/server/lib/get_user.ts | 19 +--- .../routes/lib/authorized_user_pre_routing.ts | 2 +- x-pack/legacy/plugins/security/index.js | 2 +- .../common/model/authenticated_user.mock.ts | 1 + .../common/model/authenticated_user.ts | 5 + .../account_management_page.test.tsx | 6 +- .../authentication/authenticator.test.ts | 71 +----------- .../server/authentication/authenticator.ts | 23 ++-- .../server/authentication/index.test.ts | 75 ++++++------- .../security/server/authentication/index.ts | 20 +--- .../server/authentication/providers/base.ts | 17 ++- .../server/authentication/providers/basic.ts | 5 + .../authentication/providers/kerberos.test.ts | 10 +- .../authentication/providers/kerberos.ts | 5 + .../authentication/providers/oidc.test.ts | 6 +- .../server/authentication/providers/oidc.ts | 7 +- .../authentication/providers/pki.test.ts | 12 +- .../server/authentication/providers/pki.ts | 5 + .../authentication/providers/saml.test.ts | 6 +- .../server/authentication/providers/saml.ts | 7 +- .../authentication/providers/token.test.ts | 10 +- .../server/authentication/providers/token.ts | 7 +- .../routes/authentication/common.test.ts | 13 +-- .../server/routes/authentication/common.ts | 8 +- .../routes/users/change_password.test.ts | 106 +++++++++++++++--- .../server/routes/users/change_password.ts | 77 +++++++------ .../apis/security/basic_login.js | 2 + .../apis/security/kerberos_login.ts | 2 + .../apis/authorization_code_flow/oidc_auth.js | 2 + .../apis/implicit_flow/oidc_auth.ts | 1 + .../apis/security/pki_auth.ts | 3 + .../apis/security/saml_login.ts | 2 + 33 files changed, 284 insertions(+), 255 deletions(-) diff --git a/x-pack/legacy/plugins/alerting/server/alerts_client_factory.test.ts b/x-pack/legacy/plugins/alerting/server/alerts_client_factory.test.ts index 754e02a3f1e5ec..14c685237bf92c 100644 --- a/x-pack/legacy/plugins/alerting/server/alerts_client_factory.test.ts +++ b/x-pack/legacy/plugins/alerting/server/alerts_client_factory.test.ts @@ -86,7 +86,7 @@ test('getUserName() returns a name when security is enabled', async () => { factory.create(KibanaRequest.from(fakeRequest), fakeRequest); const constructorCall = jest.requireMock('./alerts_client').AlertsClient.mock.calls[0][0]; - securityPluginSetup.authc.getCurrentUser.mockResolvedValueOnce({ username: 'bob' }); + securityPluginSetup.authc.getCurrentUser.mockReturnValueOnce({ username: 'bob' }); const userNameResult = await constructorCall.getUserName(); expect(userNameResult).toEqual('bob'); }); diff --git a/x-pack/legacy/plugins/reporting/server/lib/get_user.ts b/x-pack/legacy/plugins/reporting/server/lib/get_user.ts index 350004ddb78f80..ab02dfe0743f02 100644 --- a/x-pack/legacy/plugins/reporting/server/lib/get_user.ts +++ b/x-pack/legacy/plugins/reporting/server/lib/get_user.ts @@ -6,27 +6,14 @@ import { Legacy } from 'kibana'; import { KibanaRequest } from '../../../../../../src/core/server'; -import { Logger, ServerFacade } from '../../types'; +import { ServerFacade } from '../../types'; import { ReportingSetupDeps } from '../plugin'; -export function getUserFactory( - server: ServerFacade, - security: ReportingSetupDeps['security'], - logger: Logger -) { +export function getUserFactory(server: ServerFacade, security: ReportingSetupDeps['security']) { /* * Legacy.Request because this is called from routing middleware */ return async (request: Legacy.Request) => { - if (!security) { - return null; - } - - try { - return await security.authc.getCurrentUser(KibanaRequest.from(request)); - } catch (err) { - logger.error(err, ['getUser']); - return null; - } + return security?.authc.getCurrentUser(KibanaRequest.from(request)) ?? null; }; } diff --git a/x-pack/legacy/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts b/x-pack/legacy/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts index 874027251570c3..57c3fcee222da9 100644 --- a/x-pack/legacy/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts +++ b/x-pack/legacy/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts @@ -22,7 +22,7 @@ export const authorizedUserPreRoutingFactory = function authorizedUserPreRouting plugins: ReportingSetupDeps, logger: Logger ) { - const getUser = getUserFactory(server, plugins.security, logger); + const getUser = getUserFactory(server, plugins.security); const config = server.config(); return async function authorizedUserPreRouting(request: Legacy.Request) { diff --git a/x-pack/legacy/plugins/security/index.js b/x-pack/legacy/plugins/security/index.js index 4988c30a1398b0..9016398463b5f7 100644 --- a/x-pack/legacy/plugins/security/index.js +++ b/x-pack/legacy/plugins/security/index.js @@ -130,7 +130,7 @@ export const security = kibana => ); server.expose({ - getUser: request => securityPlugin.authc.getCurrentUser(KibanaRequest.from(request)), + getUser: async request => securityPlugin.authc.getCurrentUser(KibanaRequest.from(request)), }); initLoginView(securityPlugin, server); diff --git a/x-pack/plugins/security/common/model/authenticated_user.mock.ts b/x-pack/plugins/security/common/model/authenticated_user.mock.ts index 3a93efc57b5f60..220b284e76591f 100644 --- a/x-pack/plugins/security/common/model/authenticated_user.mock.ts +++ b/x-pack/plugins/security/common/model/authenticated_user.mock.ts @@ -15,6 +15,7 @@ export function mockAuthenticatedUser(user: Partial = {}) { enabled: true, authentication_realm: { name: 'native1', type: 'native' }, lookup_realm: { name: 'native1', type: 'native' }, + authentication_provider: 'basic', ...user, }; } diff --git a/x-pack/plugins/security/common/model/authenticated_user.ts b/x-pack/plugins/security/common/model/authenticated_user.ts index 1b660ae919c090..6465b4a23eb48a 100644 --- a/x-pack/plugins/security/common/model/authenticated_user.ts +++ b/x-pack/plugins/security/common/model/authenticated_user.ts @@ -26,6 +26,11 @@ export interface AuthenticatedUser extends User { * The name and type of the Realm where the user information were retrieved from. */ lookup_realm: UserRealm; + + /** + * Name of the Kibana authentication provider that used to authenticate user. + */ + authentication_provider: string; } export function canUserChangePassword(user: AuthenticatedUser) { diff --git a/x-pack/plugins/security/public/account_management/account_management_page.test.tsx b/x-pack/plugins/security/public/account_management/account_management_page.test.tsx index b7cf8e6dd14181..4caf3d25e887bb 100644 --- a/x-pack/plugins/security/public/account_management/account_management_page.test.tsx +++ b/x-pack/plugins/security/public/account_management/account_management_page.test.tsx @@ -10,6 +10,7 @@ import { AuthenticatedUser } from '../../common/model'; import { AccountManagementPage } from './account_management_page'; import { coreMock } from 'src/core/public/mocks'; +import { mockAuthenticatedUser } from '../../common/model/authenticated_user.mock'; import { securityMock } from '../mocks'; import { userAPIClientMock } from '../management/users/index.mock'; @@ -19,11 +20,10 @@ interface Options { realm?: string; } const createUser = ({ withFullName = true, withEmail = true, realm = 'native' }: Options = {}) => { - return { + return mockAuthenticatedUser({ full_name: withFullName ? 'Casey Smith' : '', username: 'csmith', email: withEmail ? 'csmith@domain.com' : '', - enabled: true, roles: [], authentication_realm: { type: realm, @@ -33,7 +33,7 @@ const createUser = ({ withFullName = true, withEmail = true, realm = 'native' }: type: realm, name: realm, }, - }; + }); }; function getSecuritySetupMock({ currentUser }: { currentUser: AuthenticatedUser }) { diff --git a/x-pack/plugins/security/server/authentication/authenticator.test.ts b/x-pack/plugins/security/server/authentication/authenticator.test.ts index dd580c890bf94e..8be1762133db67 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.test.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('./providers/basic', () => ({ BasicAuthenticationProvider: jest.fn() })); +jest.mock('./providers/basic'); import Boom from 'boom'; import { duration, Duration } from 'moment'; @@ -225,75 +225,6 @@ describe('Authenticator', () => { expect(mockSessionStorage.set).not.toHaveBeenCalled(); expect(mockSessionStorage.clear).toHaveBeenCalled(); }); - - describe('stateless login', () => { - it('does not create session even if authentication provider returns state', async () => { - const user = mockAuthenticatedUser(); - const request = httpServerMock.createKibanaRequest(); - const authorization = `Basic ${Buffer.from('foo:bar').toString('base64')}`; - - mockBasicAuthenticationProvider.login.mockResolvedValue( - AuthenticationResult.succeeded(user, { state: { authorization } }) - ); - - const authenticationResult = await authenticator.login(request, { - provider: 'basic', - value: {}, - stateless: true, - }); - expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); - - expect(mockBasicAuthenticationProvider.login).toHaveBeenCalledWith(request, {}, null); - expect(mockSessionStorage.get).not.toHaveBeenCalled(); - expect(mockSessionStorage.set).not.toHaveBeenCalled(); - expect(mockSessionStorage.clear).not.toHaveBeenCalled(); - }); - - it('does not clear session even if provider asked to do so.', async () => { - const user = mockAuthenticatedUser(); - const request = httpServerMock.createKibanaRequest(); - - mockBasicAuthenticationProvider.login.mockResolvedValue( - AuthenticationResult.succeeded(user, { state: null }) - ); - - const authenticationResult = await authenticator.login(request, { - provider: 'basic', - value: {}, - stateless: true, - }); - expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); - - expect(mockBasicAuthenticationProvider.login).toHaveBeenCalledWith(request, {}, null); - expect(mockSessionStorage.get).not.toHaveBeenCalled(); - expect(mockSessionStorage.set).not.toHaveBeenCalled(); - expect(mockSessionStorage.clear).not.toHaveBeenCalled(); - }); - - it('does not clear session even if provider failed with 401.', async () => { - const request = httpServerMock.createKibanaRequest(); - - const failureReason = Boom.unauthorized(); - mockBasicAuthenticationProvider.login.mockResolvedValue( - AuthenticationResult.failed(failureReason) - ); - - const authenticationResult = await authenticator.login(request, { - provider: 'basic', - value: {}, - stateless: true, - }); - expect(authenticationResult.failed()).toBe(true); - expect(authenticationResult.error).toBe(failureReason); - - expect(mockBasicAuthenticationProvider.login).toHaveBeenCalledWith(request, {}, null); - expect(mockSessionStorage.get).not.toHaveBeenCalled(); - expect(mockSessionStorage.set).not.toHaveBeenCalled(); - expect(mockSessionStorage.clear).not.toHaveBeenCalled(); - }); - }); }); describe('`authenticate` method', () => { diff --git a/x-pack/plugins/security/server/authentication/authenticator.ts b/x-pack/plugins/security/server/authentication/authenticator.ts index be952a154cee49..ea7792e902ec1c 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.ts @@ -80,13 +80,6 @@ export interface ProviderLoginAttempt { * Login attempt can have any form and defined by the specific provider. */ value: unknown; - - /** - * Indicates whether login attempt should be performed in a "stateless" manner. If `true` provider - * performing login will neither be able to retrieve or update existing state if any nor persist - * any new state it may produce as a result of the login attempt. It's `false` by default. - */ - stateless?: boolean; } export interface AuthenticatorOptions { @@ -107,12 +100,12 @@ const providerMap = new Map< providerSpecificOptions?: AuthenticationProviderSpecificOptions ) => BaseAuthenticationProvider >([ - ['basic', BasicAuthenticationProvider], - ['kerberos', KerberosAuthenticationProvider], - ['saml', SAMLAuthenticationProvider], - ['token', TokenAuthenticationProvider], - ['oidc', OIDCAuthenticationProvider], - ['pki', PKIAuthenticationProvider], + [BasicAuthenticationProvider.type, BasicAuthenticationProvider], + [KerberosAuthenticationProvider.type, KerberosAuthenticationProvider], + [SAMLAuthenticationProvider.type, SAMLAuthenticationProvider], + [TokenAuthenticationProvider.type, TokenAuthenticationProvider], + [OIDCAuthenticationProvider.type, OIDCAuthenticationProvider], + [PKIAuthenticationProvider.type, PKIAuthenticationProvider], ]); function assertRequest(request: KibanaRequest) { @@ -254,7 +247,7 @@ export class Authenticator { // If we detect an existing session that belongs to a different provider than the one requested // to perform a login we should clear such session. - let existingSession = attempt.stateless ? null : await this.getSessionValue(sessionStorage); + let existingSession = await this.getSessionValue(sessionStorage); if (existingSession && existingSession.provider !== attempt.provider) { this.logger.debug( `Clearing existing session of another ("${existingSession.provider}") provider.` @@ -281,7 +274,7 @@ export class Authenticator { (authenticationResult.failed() && getErrorStatusCode(authenticationResult.error) === 401); if (existingSession && shouldClearSession) { sessionStorage.clear(); - } else if (!attempt.stateless && authenticationResult.shouldUpdateState()) { + } else if (authenticationResult.shouldUpdateState()) { const { idleTimeoutExpiration, lifespanExpiration } = this.calculateExpiry(existingSession); sessionStorage.set({ state: authenticationResult.state, diff --git a/x-pack/plugins/security/server/authentication/index.test.ts b/x-pack/plugins/security/server/authentication/index.test.ts index 0c1095b56e6e24..d0de6d571b7a04 100644 --- a/x-pack/plugins/security/server/authentication/index.test.ts +++ b/x-pack/plugins/security/server/authentication/index.test.ts @@ -10,7 +10,6 @@ jest.mock('./api_keys'); jest.mock('./authenticator'); import Boom from 'boom'; -import { errors } from 'elasticsearch'; import { first } from 'rxjs/operators'; import { @@ -27,7 +26,6 @@ import { AuthToolkit, IClusterClient, CoreSetup, - ElasticsearchErrorHelpers, KibanaRequest, LoggerFactory, ScopedClusterClient, @@ -289,67 +287,66 @@ describe('setupAuthentication()', () => { }); describe('getCurrentUser()', () => { - let getCurrentUser: (r: KibanaRequest) => Promise; + let getCurrentUser: (r: KibanaRequest) => AuthenticatedUser | null; beforeEach(async () => { getCurrentUser = (await setupAuthentication(mockSetupAuthenticationParams)).getCurrentUser; }); - it('returns `null` if Security is disabled', async () => { + it('returns `null` if Security is disabled', () => { mockSetupAuthenticationParams.license.isEnabled.mockReturnValue(false); - await expect(getCurrentUser(httpServerMock.createKibanaRequest())).resolves.toBe(null); + expect(getCurrentUser(httpServerMock.createKibanaRequest())).toBe(null); }); - it('fails if `authenticate` call fails', async () => { - const failureReason = new Error('Something went wrong'); - mockScopedClusterClient.callAsCurrentUser.mockRejectedValue(failureReason); + it('returns user from the auth state.', () => { + const mockUser = mockAuthenticatedUser(); - await expect(getCurrentUser(httpServerMock.createKibanaRequest())).rejects.toBe( - failureReason - ); + const mockAuthGet = mockSetupAuthenticationParams.http.auth.get as jest.Mock; + mockAuthGet.mockReturnValue({ state: mockUser }); + + const mockRequest = httpServerMock.createKibanaRequest(); + expect(getCurrentUser(mockRequest)).toBe(mockUser); + expect(mockAuthGet).toHaveBeenCalledTimes(1); + expect(mockAuthGet).toHaveBeenCalledWith(mockRequest); }); - it('returns result of `authenticate` call.', async () => { - const mockUser = mockAuthenticatedUser(); - mockScopedClusterClient.callAsCurrentUser.mockResolvedValue(mockUser); + it('returns null if auth state is not available.', () => { + const mockAuthGet = mockSetupAuthenticationParams.http.auth.get as jest.Mock; + mockAuthGet.mockReturnValue({}); - await expect(getCurrentUser(httpServerMock.createKibanaRequest())).resolves.toBe(mockUser); + const mockRequest = httpServerMock.createKibanaRequest(); + expect(getCurrentUser(mockRequest)).toBeNull(); + expect(mockAuthGet).toHaveBeenCalledTimes(1); + expect(mockAuthGet).toHaveBeenCalledWith(mockRequest); }); }); describe('isAuthenticated()', () => { - let isAuthenticated: (r: KibanaRequest) => Promise; + let isAuthenticated: (r: KibanaRequest) => boolean; beforeEach(async () => { isAuthenticated = (await setupAuthentication(mockSetupAuthenticationParams)).isAuthenticated; }); - it('returns `true` if Security is disabled', async () => { - mockSetupAuthenticationParams.license.isEnabled.mockReturnValue(false); - - await expect(isAuthenticated(httpServerMock.createKibanaRequest())).resolves.toBe(true); - }); + it('returns `true` if request is authenticated', () => { + const mockIsAuthenticated = mockSetupAuthenticationParams.http.auth + .isAuthenticated as jest.Mock; + mockIsAuthenticated.mockReturnValue(true); - it('returns `true` if `authenticate` succeeds.', async () => { - const mockUser = mockAuthenticatedUser(); - mockScopedClusterClient.callAsCurrentUser.mockResolvedValue(mockUser); - - await expect(isAuthenticated(httpServerMock.createKibanaRequest())).resolves.toBe(true); - }); - - it('returns `false` if `authenticate` fails with 401.', async () => { - const failureReason = ElasticsearchErrorHelpers.decorateNotAuthorizedError(new Error()); - mockScopedClusterClient.callAsCurrentUser.mockRejectedValue(failureReason); - - await expect(isAuthenticated(httpServerMock.createKibanaRequest())).resolves.toBe(false); + const mockRequest = httpServerMock.createKibanaRequest(); + expect(isAuthenticated(mockRequest)).toBe(true); + expect(mockIsAuthenticated).toHaveBeenCalledTimes(1); + expect(mockIsAuthenticated).toHaveBeenCalledWith(mockRequest); }); - it('fails if `authenticate` call fails with unknown reason', async () => { - const failureReason = new errors.BadRequest(); - mockScopedClusterClient.callAsCurrentUser.mockRejectedValue(failureReason); + it('returns `false` if request is not authenticated', () => { + const mockIsAuthenticated = mockSetupAuthenticationParams.http.auth + .isAuthenticated as jest.Mock; + mockIsAuthenticated.mockReturnValue(false); - await expect(isAuthenticated(httpServerMock.createKibanaRequest())).rejects.toBe( - failureReason - ); + const mockRequest = httpServerMock.createKibanaRequest(); + expect(isAuthenticated(mockRequest)).toBe(false); + expect(mockIsAuthenticated).toHaveBeenCalledTimes(1); + expect(mockIsAuthenticated).toHaveBeenCalledWith(mockRequest); }); }); diff --git a/x-pack/plugins/security/server/authentication/index.ts b/x-pack/plugins/security/server/authentication/index.ts index 1002ad7709b804..4b73430ff13c48 100644 --- a/x-pack/plugins/security/server/authentication/index.ts +++ b/x-pack/plugins/security/server/authentication/index.ts @@ -55,14 +55,12 @@ export async function setupAuthentication({ * Retrieves currently authenticated user associated with the specified request. * @param request */ - const getCurrentUser = async (request: KibanaRequest) => { + const getCurrentUser = (request: KibanaRequest) => { if (!license.isEnabled()) { return null; } - return (await clusterClient - .asScoped(request) - .callAsCurrentUser('shield.authenticate')) as AuthenticatedUser; + return (http.auth.get(request).state ?? null) as AuthenticatedUser | null; }; const isValid = (sessionValue: ProviderSession) => { @@ -180,18 +178,6 @@ export async function setupAuthentication({ apiKeys.create(request, params), invalidateAPIKey: (request: KibanaRequest, params: InvalidateAPIKeyParams) => apiKeys.invalidate(request, params), - isAuthenticated: async (request: KibanaRequest) => { - try { - await getCurrentUser(request); - } catch (err) { - // Don't swallow server errors. - if (getErrorStatusCode(err) !== 401) { - throw err; - } - return false; - } - - return true; - }, + isAuthenticated: (request: KibanaRequest) => http.auth.isAuthenticated(request), }; } diff --git a/x-pack/plugins/security/server/authentication/providers/base.ts b/x-pack/plugins/security/server/authentication/providers/base.ts index 12253f8d8f548c..a40732768810d9 100644 --- a/x-pack/plugins/security/server/authentication/providers/base.ts +++ b/x-pack/plugins/security/server/authentication/providers/base.ts @@ -11,6 +11,7 @@ import { IClusterClient, Headers, } from '../../../../../../src/core/server'; +import { deepFreeze } from '../../../../../../src/core/utils'; import { AuthenticatedUser } from '../../../common/model'; import { AuthenticationResult } from '../authentication_result'; import { DeauthenticationResult } from '../deauthentication_result'; @@ -35,6 +36,11 @@ export type AuthenticationProviderSpecificOptions = Record; * Base class that all authentication providers should extend. */ export abstract class BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type: string; + /** * Logger instance bound to a specific provider context. */ @@ -85,8 +91,13 @@ export abstract class BaseAuthenticationProvider { * @param [authHeaders] Optional `Headers` dictionary to send with the request. */ protected async getUser(request: KibanaRequest, authHeaders: Headers = {}) { - return (await this.options.client - .asScoped({ headers: { ...request.headers, ...authHeaders } }) - .callAsCurrentUser('shield.authenticate')) as AuthenticatedUser; + return deepFreeze({ + ...(await this.options.client + .asScoped({ headers: { ...request.headers, ...authHeaders } }) + .callAsCurrentUser('shield.authenticate')), + // We use `this.constructor` trick to get access to the static `type` field of the specific + // `BaseAuthenticationProvider` subclass. + authentication_provider: (this.constructor as any).type, + } as AuthenticatedUser); } } diff --git a/x-pack/plugins/security/server/authentication/providers/basic.ts b/x-pack/plugins/security/server/authentication/providers/basic.ts index 07d141b4e1b2b3..a8e4e8705a7a8d 100644 --- a/x-pack/plugins/security/server/authentication/providers/basic.ts +++ b/x-pack/plugins/security/server/authentication/providers/basic.ts @@ -34,6 +34,11 @@ interface ProviderState { * Provider that supports request authentication via Basic HTTP Authentication. */ export class BasicAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'basic'; + /** * Performs initial login request using username and password. * @param request Request instance. diff --git a/x-pack/plugins/security/server/authentication/providers/kerberos.test.ts b/x-pack/plugins/security/server/authentication/providers/kerberos.test.ts index e609afb6ae3f30..e4b4df3feeae21 100644 --- a/x-pack/plugins/security/server/authentication/providers/kerberos.test.ts +++ b/x-pack/plugins/security/server/authentication/providers/kerberos.test.ts @@ -155,7 +155,7 @@ describe('KerberosAuthenticationProvider', () => { expect(request.headers.authorization).toBe('negotiate spnego'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'kerberos' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer some-token' }); expect(authenticationResult.authResponseHeaders).toBeUndefined(); expect(authenticationResult.state).toEqual({ @@ -193,7 +193,7 @@ describe('KerberosAuthenticationProvider', () => { expect(request.headers.authorization).toBe('negotiate spnego'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'kerberos' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer some-token' }); expect(authenticationResult.authResponseHeaders).toEqual({ 'WWW-Authenticate': 'Negotiate response-token', @@ -337,7 +337,7 @@ describe('KerberosAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toEqual({ authorization }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'kerberos' }); expect(authenticationResult.state).toBeUndefined(); }); @@ -370,7 +370,7 @@ describe('KerberosAuthenticationProvider', () => { expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer newfoo' }); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'kerberos' }); expect(authenticationResult.state).toEqual({ accessToken: 'newfoo', refreshToken: 'newbar' }); expect(request.headers).not.toHaveProperty('authorization'); }); @@ -437,7 +437,7 @@ describe('KerberosAuthenticationProvider', () => { expect(request.headers.authorization).toBe('Bearer some-valid-token'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toBeUndefined(); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'kerberos' }); expect(authenticationResult.state).toBeUndefined(); }); diff --git a/x-pack/plugins/security/server/authentication/providers/kerberos.ts b/x-pack/plugins/security/server/authentication/providers/kerberos.ts index 767eab7b4311d9..b8e3b7bc237901 100644 --- a/x-pack/plugins/security/server/authentication/providers/kerberos.ts +++ b/x-pack/plugins/security/server/authentication/providers/kerberos.ts @@ -43,6 +43,11 @@ const WWWAuthenticateHeaderName = 'WWW-Authenticate'; * Provider that supports Kerberos request authentication. */ export class KerberosAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'kerberos'; + /** * Performs Kerberos request authentication. * @param request Request instance. diff --git a/x-pack/plugins/security/server/authentication/providers/oidc.test.ts b/x-pack/plugins/security/server/authentication/providers/oidc.test.ts index dd4f6820f89f32..dae37749558591 100644 --- a/x-pack/plugins/security/server/authentication/providers/oidc.test.ts +++ b/x-pack/plugins/security/server/authentication/providers/oidc.test.ts @@ -311,7 +311,7 @@ describe('OIDCAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toEqual({ authorization }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'oidc' }); expect(authenticationResult.state).toBeUndefined(); }); @@ -380,7 +380,7 @@ describe('OIDCAuthenticationProvider', () => { expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer new-access-token', }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'oidc' }); expect(authenticationResult.state).toEqual({ accessToken: 'new-access-token', refreshToken: 'new-refresh-token', @@ -492,7 +492,7 @@ describe('OIDCAuthenticationProvider', () => { expect(request.headers.authorization).toBe('Bearer some-valid-token'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toBeUndefined(); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'oidc' }); expect(authenticationResult.state).toBeUndefined(); }); diff --git a/x-pack/plugins/security/server/authentication/providers/oidc.ts b/x-pack/plugins/security/server/authentication/providers/oidc.ts index 37371236453796..f13a2ec05231a2 100644 --- a/x-pack/plugins/security/server/authentication/providers/oidc.ts +++ b/x-pack/plugins/security/server/authentication/providers/oidc.ts @@ -6,9 +6,9 @@ import Boom from 'boom'; import type from 'type-detect'; -import { canRedirectRequest } from '../'; import { KibanaRequest } from '../../../../../../src/core/server'; import { AuthenticationResult } from '../authentication_result'; +import { canRedirectRequest } from '../can_redirect_request'; import { DeauthenticationResult } from '../deauthentication_result'; import { Tokens, TokenPair } from '../tokens'; import { @@ -62,6 +62,11 @@ interface ProviderState extends Partial { * Provider that supports authentication using an OpenID Connect realm in Elasticsearch. */ export class OIDCAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'oidc'; + /** * Specifies Elasticsearch OIDC realm name that Kibana should use. */ diff --git a/x-pack/plugins/security/server/authentication/providers/pki.test.ts b/x-pack/plugins/security/server/authentication/providers/pki.test.ts index 76442733e7368e..a2dda88c4680c3 100644 --- a/x-pack/plugins/security/server/authentication/providers/pki.test.ts +++ b/x-pack/plugins/security/server/authentication/providers/pki.test.ts @@ -200,7 +200,7 @@ describe('PKIAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer access-token' }); expect(authenticationResult.authResponseHeaders).toBeUndefined(); expect(authenticationResult.state).toEqual({ @@ -242,7 +242,7 @@ describe('PKIAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer access-token' }); expect(authenticationResult.authResponseHeaders).toBeUndefined(); expect(authenticationResult.state).toEqual({ @@ -287,7 +287,7 @@ describe('PKIAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer access-token' }); expect(authenticationResult.authResponseHeaders).toBeUndefined(); expect(authenticationResult.state).toEqual({ @@ -331,7 +331,7 @@ describe('PKIAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer access-token' }); expect(authenticationResult.authResponseHeaders).toBeUndefined(); expect(authenticationResult.state).toEqual({ @@ -448,7 +448,7 @@ describe('PKIAuthenticationProvider', () => { expect(authenticationResult.authHeaders).toEqual({ authorization: `Bearer ${state.accessToken}`, }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.state).toBeUndefined(); }); @@ -491,7 +491,7 @@ describe('PKIAuthenticationProvider', () => { expect(request.headers.authorization).toBe('Bearer some-valid-token'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toBeUndefined(); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'pki' }); expect(authenticationResult.state).toBeUndefined(); }); diff --git a/x-pack/plugins/security/server/authentication/providers/pki.ts b/x-pack/plugins/security/server/authentication/providers/pki.ts index c7d431422a2485..6d5aa9f01f2ea3 100644 --- a/x-pack/plugins/security/server/authentication/providers/pki.ts +++ b/x-pack/plugins/security/server/authentication/providers/pki.ts @@ -44,6 +44,11 @@ function getRequestAuthenticationScheme(request: KibanaRequest) { * Provider that supports PKI request authentication. */ export class PKIAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'pki'; + /** * Performs PKI request authentication. * @param request Request instance. diff --git a/x-pack/plugins/security/server/authentication/providers/saml.test.ts b/x-pack/plugins/security/server/authentication/providers/saml.test.ts index a5d1010a1bec80..c4fdf0b25061b7 100644 --- a/x-pack/plugins/security/server/authentication/providers/saml.test.ts +++ b/x-pack/plugins/security/server/authentication/providers/saml.test.ts @@ -635,7 +635,7 @@ describe('SAMLAuthenticationProvider', () => { expect(request.headers).not.toHaveProperty('authorization'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toEqual({ authorization }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'saml' }); expect(authenticationResult.state).toBeUndefined(); }); @@ -696,7 +696,7 @@ describe('SAMLAuthenticationProvider', () => { expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer new-access-token', }); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'saml' }); expect(authenticationResult.state).toEqual({ username: 'user', accessToken: 'new-access-token', @@ -842,7 +842,7 @@ describe('SAMLAuthenticationProvider', () => { expect(request.headers.authorization).toBe('Bearer some-valid-token'); expect(authenticationResult.succeeded()).toBe(true); expect(authenticationResult.authHeaders).toBeUndefined(); - expect(authenticationResult.user).toBe(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'saml' }); expect(authenticationResult.state).toBeUndefined(); }); diff --git a/x-pack/plugins/security/server/authentication/providers/saml.ts b/x-pack/plugins/security/server/authentication/providers/saml.ts index faa19239fcc3b1..a817159fcd445c 100644 --- a/x-pack/plugins/security/server/authentication/providers/saml.ts +++ b/x-pack/plugins/security/server/authentication/providers/saml.ts @@ -10,8 +10,8 @@ import { KibanaRequest } from '../../../../../../src/core/server'; import { AuthenticationResult } from '../authentication_result'; import { DeauthenticationResult } from '../deauthentication_result'; import { AuthenticationProviderOptions, BaseAuthenticationProvider } from './base'; +import { canRedirectRequest } from '../can_redirect_request'; import { Tokens, TokenPair } from '../tokens'; -import { canRedirectRequest } from '..'; /** * The state supported by the provider (for the SAML handshake or established session). @@ -66,6 +66,11 @@ export function isSAMLRequestQuery(query: any): query is { SAMLRequest: string } * Provider that supports SAML request authentication. */ export class SAMLAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'saml'; + /** * Specifies Elasticsearch SAML realm name that Kibana should use. */ diff --git a/x-pack/plugins/security/server/authentication/providers/token.test.ts b/x-pack/plugins/security/server/authentication/providers/token.test.ts index 3d377140cb42e2..0a55219e25d910 100644 --- a/x-pack/plugins/security/server/authentication/providers/token.test.ts +++ b/x-pack/plugins/security/server/authentication/providers/token.test.ts @@ -48,7 +48,7 @@ describe('TokenAuthenticationProvider', () => { const authenticationResult = await provider.login(request, credentials); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'token' }); expect(authenticationResult.state).toEqual(tokenPair); expect(authenticationResult.authHeaders).toEqual({ authorization }); }); @@ -140,7 +140,7 @@ describe('TokenAuthenticationProvider', () => { const authenticationResult = await provider.authenticate(request); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'token' }); expect(authenticationResult.authHeaders).toBeUndefined(); expect(authenticationResult.state).toBeUndefined(); }); @@ -158,7 +158,7 @@ describe('TokenAuthenticationProvider', () => { const authenticationResult = await provider.authenticate(request, tokenPair); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'token' }); expect(authenticationResult.state).toBeUndefined(); expect(authenticationResult.authHeaders).toEqual({ authorization }); expect(request.headers).not.toHaveProperty('authorization'); @@ -192,7 +192,7 @@ describe('TokenAuthenticationProvider', () => { sinon.assert.calledOnce(mockOptions.tokens.refresh); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'token' }); expect(authenticationResult.state).toEqual({ accessToken: 'newfoo', refreshToken: 'newbar' }); expect(authenticationResult.authHeaders).toEqual({ authorization: 'Bearer newfoo' }); expect(request.headers).not.toHaveProperty('authorization'); @@ -231,7 +231,7 @@ describe('TokenAuthenticationProvider', () => { const authenticationResult = await provider.authenticate(request, tokenPair); expect(authenticationResult.succeeded()).toBe(true); - expect(authenticationResult.user).toEqual(user); + expect(authenticationResult.user).toEqual({ ...user, authentication_provider: 'token' }); expect(authenticationResult.state).toBeUndefined(); expect(authenticationResult.authHeaders).toBeUndefined(); expect(request.headers.authorization).toEqual('Bearer foo-from-header'); diff --git a/x-pack/plugins/security/server/authentication/providers/token.ts b/x-pack/plugins/security/server/authentication/providers/token.ts index c5f8f07e50b11c..03fd003e2cbde2 100644 --- a/x-pack/plugins/security/server/authentication/providers/token.ts +++ b/x-pack/plugins/security/server/authentication/providers/token.ts @@ -9,8 +9,8 @@ import { KibanaRequest } from '../../../../../../src/core/server'; import { AuthenticationResult } from '../authentication_result'; import { DeauthenticationResult } from '../deauthentication_result'; import { BaseAuthenticationProvider } from './base'; +import { canRedirectRequest } from '../can_redirect_request'; import { Tokens, TokenPair } from '../tokens'; -import { canRedirectRequest } from '..'; /** * Describes the parameters that are required by the provider to process the initial login request. @@ -29,6 +29,11 @@ type ProviderState = TokenPair; * Provider that supports token-based request authentication. */ export class TokenAuthenticationProvider extends BaseAuthenticationProvider { + /** + * Type of the provider. + */ + static readonly type = 'token'; + /** * Performs initial login request using username and password. * @param request Request instance. diff --git a/x-pack/plugins/security/server/routes/authentication/common.test.ts b/x-pack/plugins/security/server/routes/authentication/common.test.ts index 5d5868d4cc5936..4666b5abad756b 100644 --- a/x-pack/plugins/security/server/routes/authentication/common.test.ts +++ b/x-pack/plugins/security/server/routes/authentication/common.test.ts @@ -176,20 +176,9 @@ describe('Common authentication routes', () => { expect(routeConfig.validate).toBe(false); }); - it('returns 500 if cannot retrieve current user due to unhandled exception.', async () => { - const unhandledException = new Error('Something went wrong.'); - authc.getCurrentUser.mockRejectedValue(unhandledException); - - const response = await routeHandler(mockContext, mockRequest, kibanaResponseFactory); - - expect(response.status).toBe(500); - expect(response.payload).toEqual(unhandledException); - expect(authc.getCurrentUser).toHaveBeenCalledWith(mockRequest); - }); - it('returns current user.', async () => { const mockUser = mockAuthenticatedUser(); - authc.getCurrentUser.mockResolvedValue(mockUser); + authc.getCurrentUser.mockReturnValue(mockUser); const response = await routeHandler(mockContext, mockRequest, kibanaResponseFactory); diff --git a/x-pack/plugins/security/server/routes/authentication/common.ts b/x-pack/plugins/security/server/routes/authentication/common.ts index cb4ec196459eee..c9856e9dff7f1e 100644 --- a/x-pack/plugins/security/server/routes/authentication/common.ts +++ b/x-pack/plugins/security/server/routes/authentication/common.ts @@ -59,7 +59,7 @@ export function defineCommonRoutes({ router, authc, basePath, logger }: RouteDef for (const path of ['/internal/security/me', '/api/security/v1/me']) { router.get( { path, validate: false }, - createLicensedRouteHandler(async (context, request, response) => { + createLicensedRouteHandler((context, request, response) => { if (path === '/api/security/v1/me') { logger.warn( `The "${basePath.serverBasePath}${path}" endpoint is deprecated and will be removed in the next major version.`, @@ -67,11 +67,7 @@ export function defineCommonRoutes({ router, authc, basePath, logger }: RouteDef ); } - try { - return response.ok({ body: (await authc.getCurrentUser(request)) as any }); - } catch (error) { - return response.customError(wrapIntoCustomErrorResponse(error)); - } + return response.ok({ body: authc.getCurrentUser(request)! }); }) ); } diff --git a/x-pack/plugins/security/server/routes/users/change_password.test.ts b/x-pack/plugins/security/server/routes/users/change_password.test.ts index 80a25e03ede62a..34509edc2e9d23 100644 --- a/x-pack/plugins/security/server/routes/users/change_password.test.ts +++ b/x-pack/plugins/security/server/routes/users/change_password.test.ts @@ -4,6 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ +import { errors } from 'elasticsearch'; import { ObjectType } from '@kbn/config-schema'; import { IClusterClient, @@ -13,6 +14,7 @@ import { RequestHandler, RequestHandlerContext, RouteConfig, + ScopeableRequest, } from '../../../../../../src/core/server'; import { LICENSE_CHECK_STATE } from '../../../../licensing/server'; import { Authentication, AuthenticationResult } from '../../authentication'; @@ -38,10 +40,7 @@ describe('Change password', () => { let routeConfig: RouteConfig; let mockContext: RequestHandlerContext; - function checkPasswordChangeAPICall( - username: string, - request: ReturnType - ) { + function checkPasswordChangeAPICall(username: string, request: ScopeableRequest) { expect(mockClusterClient.asScoped).toHaveBeenCalledTimes(1); expect(mockClusterClient.asScoped).toHaveBeenCalledWith(request); expect(mockScopedClusterClient.callAsCurrentUser).toHaveBeenCalledTimes(1); @@ -55,8 +54,14 @@ describe('Change password', () => { router = httpServiceMock.createRouter(); authc = authenticationMock.create(); - authc.getCurrentUser.mockResolvedValue(mockAuthenticatedUser({ username: 'user' })); + authc.getCurrentUser.mockReturnValue(mockAuthenticatedUser({ username: 'user' })); authc.login.mockResolvedValue(AuthenticationResult.succeeded(mockAuthenticatedUser())); + authc.getSessionInfo.mockResolvedValue({ + now: Date.now(), + idleTimeoutExpiration: null, + lifespanExpiration: null, + provider: 'basic', + }); mockScopedClusterClient = elasticsearchServiceMock.createScopedClusterClient(); mockClusterClient = elasticsearchServiceMock.createClusterClient(); @@ -122,14 +127,24 @@ describe('Change password', () => { }); it('returns 403 if old password is wrong.', async () => { - const loginFailureReason = new Error('Something went wrong.'); - authc.login.mockResolvedValue(AuthenticationResult.failed(loginFailureReason)); + const changePasswordFailure = new (errors.AuthenticationException as any)('Unauthorized', { + body: { error: { header: { 'WWW-Authenticate': 'Negotiate' } } }, + }); + mockScopedClusterClient.callAsCurrentUser.mockRejectedValue(changePasswordFailure); const response = await routeHandler(mockContext, mockRequest, kibanaResponseFactory); expect(response.status).toBe(403); - expect(response.payload).toEqual(loginFailureReason); - expect(mockScopedClusterClient.callAsCurrentUser).not.toHaveBeenCalled(); + expect(response.payload).toEqual(changePasswordFailure); + + expect(mockScopedClusterClient.callAsCurrentUser).toHaveBeenCalledTimes(1); + expect(mockClusterClient.asScoped).toHaveBeenCalledTimes(1); + expect(mockClusterClient.asScoped).toHaveBeenCalledWith({ + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); }); it(`returns 401 if user can't authenticate with new password.`, async () => { @@ -148,10 +163,15 @@ describe('Change password', () => { expect(response.status).toBe(401); expect(response.payload).toEqual(loginFailureReason); - checkPasswordChangeAPICall(username, mockRequest); + checkPasswordChangeAPICall(username, { + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); }); - it('returns 500 if password update request fails.', async () => { + it('returns 500 if password update request fails with non-401 error.', async () => { const failureReason = new Error('Request failed.'); mockScopedClusterClient.callAsCurrentUser.mockRejectedValue(failureReason); @@ -160,7 +180,12 @@ describe('Change password', () => { expect(response.status).toBe(500); expect(response.payload).toEqual(failureReason); - checkPasswordChangeAPICall(username, mockRequest); + checkPasswordChangeAPICall(username, { + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); }); it('successfully changes own password if provided old password is correct.', async () => { @@ -169,7 +194,62 @@ describe('Change password', () => { expect(response.status).toBe(204); expect(response.payload).toBeUndefined(); - checkPasswordChangeAPICall(username, mockRequest); + checkPasswordChangeAPICall(username, { + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); + + expect(authc.login).toHaveBeenCalledTimes(1); + expect(authc.login).toHaveBeenCalledWith(mockRequest, { + provider: 'basic', + value: { username, password: 'new-password' }, + }); + }); + + it('successfully changes own password if provided old password is correct for non-basic provider.', async () => { + const mockUser = mockAuthenticatedUser({ + username: 'user', + authentication_provider: 'token', + }); + authc.getCurrentUser.mockReturnValue(mockUser); + authc.login.mockResolvedValue(AuthenticationResult.succeeded(mockUser)); + + const response = await routeHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(response.status).toBe(204); + expect(response.payload).toBeUndefined(); + + checkPasswordChangeAPICall(username, { + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); + + expect(authc.login).toHaveBeenCalledTimes(1); + expect(authc.login).toHaveBeenCalledWith(mockRequest, { + provider: 'token', + value: { username, password: 'new-password' }, + }); + }); + + it('successfully changes own password but does not re-login if current session does not exist.', async () => { + authc.getSessionInfo.mockResolvedValue(null); + const response = await routeHandler(mockContext, mockRequest, kibanaResponseFactory); + + expect(response.status).toBe(204); + expect(response.payload).toBeUndefined(); + + checkPasswordChangeAPICall(username, { + headers: { + ...mockRequest.headers, + authorization: `Basic ${Buffer.from(`${username}:old-password`).toString('base64')}`, + }, + }); + + expect(authc.login).not.toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/security/server/routes/users/change_password.ts b/x-pack/plugins/security/server/routes/users/change_password.ts index b9d04b4bd1e0e5..fc3ca4573d5003 100644 --- a/x-pack/plugins/security/server/routes/users/change_password.ts +++ b/x-pack/plugins/security/server/routes/users/change_password.ts @@ -5,7 +5,8 @@ */ import { schema } from '@kbn/config-schema'; -import { wrapIntoCustomErrorResponse } from '../../errors'; +import { canUserChangePassword } from '../../../common/model'; +import { getErrorStatusCode, wrapIntoCustomErrorResponse } from '../../errors'; import { createLicensedRouteHandler } from '../licensed_route_handler'; import { RouteDefinitionParams } from '..'; @@ -13,7 +14,6 @@ export function defineChangeUserPasswordRoutes({ authc, router, clusterClient, - config, }: RouteDefinitionParams) { router.post( { @@ -27,54 +27,65 @@ export function defineChangeUserPasswordRoutes({ }, }, createLicensedRouteHandler(async (context, request, response) => { - const username = request.params.username; - const { password, newPassword } = request.body; - const isCurrentUser = username === (await authc.getCurrentUser(request))!.username; + const { username } = request.params; + const { password: currentPassword, newPassword } = request.body; - // We should prefer `token` over `basic` if possible. - const providerToLoginWith = config.authc.providers.includes('token') ? 'token' : 'basic'; + const currentUser = authc.getCurrentUser(request); + const isUserChangingOwnPassword = + currentUser && currentUser.username === username && canUserChangePassword(currentUser); + const currentSession = isUserChangingOwnPassword ? await authc.getSessionInfo(request) : null; - // If user tries to change own password, let's check if old password is valid first by trying - // to login. - if (isCurrentUser) { - try { - const authenticationResult = await authc.login(request, { - provider: providerToLoginWith, - value: { username, password }, - // We shouldn't alter authentication state just yet. - stateless: true, - }); - - if (!authenticationResult.succeeded()) { - return response.forbidden({ body: authenticationResult.error }); - } - } catch (error) { - return response.customError(wrapIntoCustomErrorResponse(error)); - } - } + // If user is changing their own password they should provide a proof of knowledge their + // current password via sending it in `Authorization: Basic base64(username:current password)` + // HTTP header no matter how they logged in to Kibana. + const scopedClusterClient = clusterClient.asScoped( + isUserChangingOwnPassword + ? { + headers: { + ...request.headers, + authorization: `Basic ${Buffer.from(`${username}:${currentPassword}`).toString( + 'base64' + )}`, + }, + } + : request + ); try { - await clusterClient.asScoped(request).callAsCurrentUser('shield.changePassword', { + await scopedClusterClient.callAsCurrentUser('shield.changePassword', { username, body: { password: newPassword }, }); + } catch (error) { + // This may happen only if user's credentials are rejected meaning that current password + // isn't correct. + if (isUserChangingOwnPassword && getErrorStatusCode(error) === 401) { + return response.forbidden({ body: error }); + } + + return response.customError(wrapIntoCustomErrorResponse(error)); + } - // Now we authenticate user with the new password again updating current session if any. - if (isCurrentUser) { + // If user previously had an active session and changed their own password we should re-login + // user with the new password and update session. We check this since it's possible to update + // password even if user is authenticated via HTTP headers and hence doesn't have an active + // session and in such cases we shouldn't create a new one. + if (isUserChangingOwnPassword && currentSession) { + try { const authenticationResult = await authc.login(request, { - provider: providerToLoginWith, + provider: currentUser!.authentication_provider, value: { username, password: newPassword }, }); if (!authenticationResult.succeeded()) { return response.unauthorized({ body: authenticationResult.error }); } + } catch (error) { + return response.customError(wrapIntoCustomErrorResponse(error)); } - - return response.noContent(); - } catch (error) { - return response.customError(wrapIntoCustomErrorResponse(error)); } + + return response.noContent(); }) ); } diff --git a/x-pack/test/api_integration/apis/security/basic_login.js b/x-pack/test/api_integration/apis/security/basic_login.js index 62deedad6c35c2..d4b41603944f6f 100644 --- a/x-pack/test/api_integration/apis/security/basic_login.js +++ b/x-pack/test/api_integration/apis/security/basic_login.js @@ -126,6 +126,7 @@ export default function({ getService }) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be(validUsername); }); @@ -165,6 +166,7 @@ export default function({ getService }) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be(validUsername); }); diff --git a/x-pack/test/kerberos_api_integration/apis/security/kerberos_login.ts b/x-pack/test/kerberos_api_integration/apis/security/kerberos_login.ts index 203f90c55aa82b..570d7026cf99e0 100644 --- a/x-pack/test/kerberos_api_integration/apis/security/kerberos_login.ts +++ b/x-pack/test/kerberos_api_integration/apis/security/kerberos_login.ts @@ -74,6 +74,7 @@ export default function({ getService }: FtrProviderContext) { expect(user.username).to.eql(username); expect(user.authentication_realm).to.eql({ name: 'reserved', type: 'reserved' }); + expect(user.authentication_provider).to.eql('basic'); }); describe('initiating SPNEGO', () => { @@ -129,6 +130,7 @@ export default function({ getService }: FtrProviderContext) { enabled: true, authentication_realm: { name: 'kerb1', type: 'kerberos' }, lookup_realm: { name: 'kerb1', type: 'kerberos' }, + authentication_provider: 'kerberos', }); }); diff --git a/x-pack/test/oidc_api_integration/apis/authorization_code_flow/oidc_auth.js b/x-pack/test/oidc_api_integration/apis/authorization_code_flow/oidc_auth.js index 57bcd1b041c494..094537fd614366 100644 --- a/x-pack/test/oidc_api_integration/apis/authorization_code_flow/oidc_auth.js +++ b/x-pack/test/oidc_api_integration/apis/authorization_code_flow/oidc_auth.js @@ -173,6 +173,7 @@ export default function({ getService }) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be('user1'); @@ -222,6 +223,7 @@ export default function({ getService }) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be('user2'); diff --git a/x-pack/test/oidc_api_integration/apis/implicit_flow/oidc_auth.ts b/x-pack/test/oidc_api_integration/apis/implicit_flow/oidc_auth.ts index 1f5a64835416aa..7d013e97732f9f 100644 --- a/x-pack/test/oidc_api_integration/apis/implicit_flow/oidc_auth.ts +++ b/x-pack/test/oidc_api_integration/apis/implicit_flow/oidc_auth.ts @@ -142,6 +142,7 @@ export default function({ getService }: FtrProviderContext) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be('user1'); diff --git a/x-pack/test/pki_api_integration/apis/security/pki_auth.ts b/x-pack/test/pki_api_integration/apis/security/pki_auth.ts index 186ed824b3b6c7..1ae7488fcf3790 100644 --- a/x-pack/test/pki_api_integration/apis/security/pki_auth.ts +++ b/x-pack/test/pki_api_integration/apis/security/pki_auth.ts @@ -90,6 +90,7 @@ export default function({ getService }: FtrProviderContext) { expect(user.username).to.eql(username); expect(user.authentication_realm).to.eql({ name: 'reserved', type: 'reserved' }); + expect(user.authentication_provider).to.eql('basic'); }); it('should properly set cookie and authenticate user', async () => { @@ -118,6 +119,7 @@ export default function({ getService }: FtrProviderContext) { }, authentication_realm: { name: 'pki1', type: 'pki' }, lookup_realm: { name: 'pki1', type: 'pki' }, + authentication_provider: 'pki', }); // Cookie should be accepted. @@ -160,6 +162,7 @@ export default function({ getService }: FtrProviderContext) { }, authentication_realm: { name: 'pki1', type: 'pki' }, lookup_realm: { name: 'pki1', type: 'pki' }, + authentication_provider: 'pki', }); checkCookieIsSet(request.cookie(response.headers['set-cookie'][0])!); diff --git a/x-pack/test/saml_api_integration/apis/security/saml_login.ts b/x-pack/test/saml_api_integration/apis/security/saml_login.ts index 0436d59906ea87..6ede8aadeb5a7b 100644 --- a/x-pack/test/saml_api_integration/apis/security/saml_login.ts +++ b/x-pack/test/saml_api_integration/apis/security/saml_login.ts @@ -56,6 +56,7 @@ export default function({ getService }: FtrProviderContext) { 'enabled', 'authentication_realm', 'lookup_realm', + 'authentication_provider', ]); expect(apiResponse.body.username).to.be('a@b.c'); @@ -88,6 +89,7 @@ export default function({ getService }: FtrProviderContext) { expect(user.username).to.eql(username); expect(user.authentication_realm).to.eql({ name: 'reserved', type: 'reserved' }); + expect(user.authentication_provider).to.eql('basic'); }); describe('capture URL fragment', () => { From a0b73cf2996863491b75f002d2eaddc86f26c6a2 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 5 Feb 2020 13:43:09 +0100 Subject: [PATCH 07/33] improve validation on tuncate field formater editor (#56521) Co-authored-by: Elastic Machine --- .../__snapshots__/truncate.test.js.snap | 1 + .../editors/truncate/truncate.js | 11 +++- .../editors/truncate/truncate.test.js | 56 +++++++++++++++++++ .../field_formats/converters/truncate.test.ts | 7 +++ 4 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.js.snap b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.js.snap index c0954491a2a470..729487dfae5d79 100644 --- a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.js.snap +++ b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.js.snap @@ -21,6 +21,7 @@ exports[`TruncateFormatEditor should render normally 1`] = ` > diff --git a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.js b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.js index fdae8627ead69a..9a9b6c954b78d0 100644 --- a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.js +++ b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.js @@ -38,7 +38,7 @@ export class TruncateFormatEditor extends DefaultFormatEditor { } render() { - const { formatParams } = this.props; + const { formatParams, onError } = this.props; const { error, samples } = this.state; return ( @@ -55,8 +55,15 @@ export class TruncateFormatEditor extends DefaultFormatEditor { > { - this.onChange({ fieldLength: e.target.value ? Number(e.target.value) : null }); + if (e.target.checkValidity()) { + this.onChange({ + fieldLength: e.target.value ? Number(e.target.value) : null, + }); + } else { + onError(e.target.validationMessage); + } }} isInvalid={!!error} /> diff --git a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.test.js b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.test.js index e98dd4edca386c..7ab6f2a9cbeb0d 100644 --- a/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.test.js +++ b/src/legacy/ui/public/field_editor/components/field_format_editor/editors/truncate/truncate.test.js @@ -19,6 +19,7 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { EuiFieldNumber } from '@elastic/eui'; import { TruncateFormatEditor } from './truncate'; @@ -34,6 +35,11 @@ const onChange = jest.fn(); const onError = jest.fn(); describe('TruncateFormatEditor', () => { + beforeEach(() => { + onChange.mockClear(); + onError.mockClear(); + }); + it('should have a formatId', () => { expect(TruncateFormatEditor.formatId).toEqual('truncate'); }); @@ -50,4 +56,54 @@ describe('TruncateFormatEditor', () => { ); expect(component).toMatchSnapshot(); }); + + it('should fire error, when input is invalid', async () => { + const component = shallow( + + ); + const input = component.find(EuiFieldNumber); + + const changeEvent = { + target: { + value: '123.3', + checkValidity: () => false, + validationMessage: 'Error!', + }, + }; + await input.invoke('onChange')(changeEvent); + + expect(onError).toBeCalledWith(changeEvent.target.validationMessage); + expect(onChange).not.toBeCalled(); + }); + + it('should fire change, when input changed and is valid', async () => { + const component = shallow( + + ); + const input = component.find(EuiFieldNumber); + + const changeEvent = { + target: { + value: '123', + checkValidity: () => true, + validationMessage: null, + }, + }; + onError.mockClear(); + await input.invoke('onChange')(changeEvent); + expect(onError).not.toBeCalled(); + expect(onChange).toBeCalledWith({ fieldLength: 123 }); + }); }); diff --git a/src/plugins/data/common/field_formats/converters/truncate.test.ts b/src/plugins/data/common/field_formats/converters/truncate.test.ts index 472d9673346d7d..3a0abc918fa98f 100644 --- a/src/plugins/data/common/field_formats/converters/truncate.test.ts +++ b/src/plugins/data/common/field_formats/converters/truncate.test.ts @@ -43,4 +43,11 @@ describe('String TruncateFormat', () => { expect(truncate.convert('This is some text')).toBe('This is some text'); }); + + test('does not truncate whole text when non integer is passed in', () => { + // https://github.com/elastic/kibana/issues/29648 + const truncate = new TruncateFormat({ fieldLength: 3.2 }, jest.fn()); + + expect(truncate.convert('This is some text')).toBe('Thi...'); + }); }); From 3cb85d407027a118103ff02c90747673529f1af1 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Wed, 5 Feb 2020 13:53:34 +0100 Subject: [PATCH 08/33] [Uptime] Kuery Bar Filters break overview page (#56793) * update filter * fix status panel not using filter group --- .../components/connected/charts/ping_histogram.tsx | 9 +++++---- .../connected/charts/snapshot_container.tsx | 11 +++++++---- .../connected/pages/overview_container.ts | 11 ++++++++++- .../uptime/public/hooks/update_kuery_string.ts | 14 -------------- .../plugins/uptime/public/pages/overview.tsx | 14 ++++++++++++-- .../plugins/uptime/public/state/selectors/index.ts | 7 ++++++- 6 files changed, 40 insertions(+), 26 deletions(-) diff --git a/x-pack/legacy/plugins/uptime/public/components/connected/charts/ping_histogram.tsx b/x-pack/legacy/plugins/uptime/public/components/connected/charts/ping_histogram.tsx index cbdd921a36e81b..50f91be4ff09f3 100644 --- a/x-pack/legacy/plugins/uptime/public/components/connected/charts/ping_histogram.tsx +++ b/x-pack/legacy/plugins/uptime/public/components/connected/charts/ping_histogram.tsx @@ -19,7 +19,7 @@ import { useUrlParams } from '../../../hooks'; type Props = ResponsiveWrapperProps & Pick & - DispatchProps & { lastRefresh: number; monitorId?: string }; + DispatchProps & { lastRefresh: number; monitorId?: string; esKuery?: string }; const PingHistogramContainer: React.FC = ({ data, @@ -28,6 +28,7 @@ const PingHistogramContainer: React.FC = ({ lastRefresh, height, loading, + esKuery, }) => { const [getUrlParams] = useUrlParams(); const { @@ -36,12 +37,11 @@ const PingHistogramContainer: React.FC = ({ dateRangeStart: dateStart, dateRangeEnd: dateEnd, statusFilter, - filters, } = getUrlParams(); useEffect(() => { - loadData({ monitorId, dateStart, dateEnd, statusFilter, filters }); - }, [loadData, dateStart, dateEnd, monitorId, filters, statusFilter, lastRefresh]); + loadData({ monitorId, dateStart, dateEnd, statusFilter, filters: esKuery }); + }, [loadData, dateStart, dateEnd, monitorId, statusFilter, lastRefresh, esKuery]); return ( = ({ height, lastRefresh, loading, + esKuery, loadSnapshotCount, }: Props) => { const [getUrlParams] = useUrlParams(); - const { dateRangeStart, dateRangeEnd, statusFilter, filters } = getUrlParams(); + const { dateRangeStart, dateRangeEnd, statusFilter } = getUrlParams(); useEffect(() => { - loadSnapshotCount(dateRangeStart, dateRangeEnd, filters, statusFilter); - }, [dateRangeStart, dateRangeEnd, filters, lastRefresh, loadSnapshotCount, statusFilter]); + loadSnapshotCount(dateRangeStart, dateRangeEnd, esKuery, statusFilter); + }, [dateRangeStart, dateRangeEnd, esKuery, lastRefresh, loadSnapshotCount, statusFilter]); return ; }; @@ -66,11 +68,12 @@ export const Container: React.FC = ({ */ const mapStateToProps = ({ snapshot: { count, loading }, - ui: { lastRefresh }, + ui: { lastRefresh, esKuery }, }: AppState): StoreProps => ({ count, lastRefresh, loading, + esKuery, }); /** diff --git a/x-pack/legacy/plugins/uptime/public/components/connected/pages/overview_container.ts b/x-pack/legacy/plugins/uptime/public/components/connected/pages/overview_container.ts index 406fab8f5bf010..cbd1fae77c5183 100644 --- a/x-pack/legacy/plugins/uptime/public/components/connected/pages/overview_container.ts +++ b/x-pack/legacy/plugins/uptime/public/components/connected/pages/overview_container.ts @@ -8,7 +8,16 @@ import { connect } from 'react-redux'; import { OverviewPageComponent } from '../../../pages/overview'; import { selectIndexPattern } from '../../../state/selectors'; import { AppState } from '../../../state'; +import { setEsKueryString } from '../../../state/actions'; + +interface DispatchProps { + setEsKueryFilters: typeof setEsKueryString; +} + +const mapDispatchToProps = (dispatch: any): DispatchProps => ({ + setEsKueryFilters: (esFilters: string) => dispatch(setEsKueryString(esFilters)), +}); const mapStateToProps = (state: AppState) => ({ indexPattern: selectIndexPattern(state) }); -export const OverviewPage = connect(mapStateToProps)(OverviewPageComponent); +export const OverviewPage = connect(mapStateToProps, mapDispatchToProps)(OverviewPageComponent); diff --git a/x-pack/legacy/plugins/uptime/public/hooks/update_kuery_string.ts b/x-pack/legacy/plugins/uptime/public/hooks/update_kuery_string.ts index 8c9eec3abe2239..8a4ae01a72b4be 100644 --- a/x-pack/legacy/plugins/uptime/public/hooks/update_kuery_string.ts +++ b/x-pack/legacy/plugins/uptime/public/hooks/update_kuery_string.ts @@ -6,20 +6,8 @@ import { combineFiltersAndUserSearch, stringifyKueries } from '../lib/helper'; import { esKuery } from '../../../../../../src/plugins/data/common/es_query'; -import { store } from '../state'; -import { setEsKueryString } from '../state/actions'; import { IIndexPattern } from '../../../../../../src/plugins/data/common/index_patterns'; -const updateEsQueryForFilterGroup = (filterQueryString: string, indexPattern: IIndexPattern) => { - // Update EsQuery in Redux to be used in FilterGroup - const searchDSL: string = filterQueryString - ? JSON.stringify( - esKuery.toElasticsearchQuery(esKuery.fromKueryExpression(filterQueryString), indexPattern) - ) - : ''; - store.dispatch(setEsKueryString(searchDSL)); -}; - const getKueryString = (urlFilters: string): string => { let kueryString = ''; // We are using try/catch here because this is user entered value @@ -56,8 +44,6 @@ export const useUpdateKueryString = ( esFilters = JSON.stringify(elasticsearchQuery); } - updateEsQueryForFilterGroup(filterQueryString, indexPattern); - return [esFilters]; } catch (err) { return [urlFilters, err]; diff --git a/x-pack/legacy/plugins/uptime/public/pages/overview.tsx b/x-pack/legacy/plugins/uptime/public/pages/overview.tsx index df6ffba6154e5c..ce5fb619aca025 100644 --- a/x-pack/legacy/plugins/uptime/public/pages/overview.tsx +++ b/x-pack/legacy/plugins/uptime/public/pages/overview.tsx @@ -5,7 +5,7 @@ */ import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; -import React, { useContext } from 'react'; +import React, { useContext, useEffect } from 'react'; import styled from 'styled-components'; import { EmptyState, @@ -27,6 +27,7 @@ interface OverviewPageProps { autocomplete: DataPublicPluginStart['autocomplete']; setBreadcrumbs: UMUpdateBreadcrumbs; indexPattern: IIndexPattern; + setEsKueryFilters: (esFilters: string) => void; } type Props = OverviewPageProps; @@ -40,7 +41,12 @@ const EuiFlexItemStyled = styled(EuiFlexItem)` } `; -export const OverviewPageComponent = ({ autocomplete, setBreadcrumbs, indexPattern }: Props) => { +export const OverviewPageComponent = ({ + autocomplete, + setBreadcrumbs, + indexPattern, + setEsKueryFilters, +}: Props) => { const { colors } = useContext(UptimeThemeContext); const [getUrlParams] = useUrlParams(); const { absoluteDateRangeStart, absoluteDateRangeEnd, ...params } = getUrlParams(); @@ -60,6 +66,10 @@ export const OverviewPageComponent = ({ autocomplete, setBreadcrumbs, indexPatte const [esFilters, error] = useUpdateKueryString(indexPattern, search, urlFilters); + useEffect(() => { + setEsKueryFilters(esFilters ?? ''); + }, [esFilters, setEsKueryFilters]); + const sharedProps = { dateRangeStart, dateRangeEnd, diff --git a/x-pack/legacy/plugins/uptime/public/state/selectors/index.ts b/x-pack/legacy/plugins/uptime/public/state/selectors/index.ts index fe6a7a1b7eade5..25498cc0cb0eea 100644 --- a/x-pack/legacy/plugins/uptime/public/state/selectors/index.ts +++ b/x-pack/legacy/plugins/uptime/public/state/selectors/index.ts @@ -34,5 +34,10 @@ export const selectIndexPattern = ({ indexPattern }: AppState) => { }; export const selectPingHistogram = ({ ping, ui }: AppState) => { - return { data: ping.pingHistogram, loading: ping.loading, lastRefresh: ui.lastRefresh }; + return { + data: ping.pingHistogram, + loading: ping.loading, + lastRefresh: ui.lastRefresh, + esKuery: ui.esKuery, + }; }; From 2bb46732e19663331a7207df5c015b69a9fc54c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Wed, 5 Feb 2020 14:08:30 +0000 Subject: [PATCH 09/33] [Telemetry] Report Kibana distro in local collectors + Usage Collectors in TS (#55859) * [Telemetry] Report Kibana distro in local collectors + Usage Collectors in TS * Ensure isReady is a function * Move CollectorSet tests to TS + Jest * Fix test Co-authored-by: Elastic Machine --- .../usage/telemetry_usage_collector.test.ts | 2 +- .../{get_kibana.js => get_kibana.ts} | 45 ++++-- .../telemetry_collection/get_local_stats.ts | 11 +- .../collector/{collector.js => collector.ts} | 67 ++++---- ...collector_set.js => collector_set.test.ts} | 145 +++++++++++++----- .../server/collector/collector_set.ts | 27 ++-- .../server/collector/index.ts | 2 - .../server/collector/usage_collector.js | 51 ------ .../server/collector/usage_collector.ts | 37 +++++ .../collectors/cloud_usage_collector.test.ts | 5 +- 10 files changed, 239 insertions(+), 153 deletions(-) rename src/legacy/core_plugins/telemetry/server/telemetry_collection/{get_kibana.js => get_kibana.ts} (62%) rename src/plugins/usage_collection/server/collector/{collector.js => collector.ts} (59%) rename src/plugins/usage_collection/server/collector/{__tests__/collector_set.js => collector_set.test.ts} (53%) delete mode 100644 src/plugins/usage_collection/server/collector/usage_collector.js create mode 100644 src/plugins/usage_collection/server/collector/usage_collector.ts diff --git a/src/legacy/core_plugins/telemetry/server/collectors/usage/telemetry_usage_collector.test.ts b/src/legacy/core_plugins/telemetry/server/collectors/usage/telemetry_usage_collector.test.ts index cf6059faf0c056..78685cd6becc88 100644 --- a/src/legacy/core_plugins/telemetry/server/collectors/usage/telemetry_usage_collector.test.ts +++ b/src/legacy/core_plugins/telemetry/server/collectors/usage/telemetry_usage_collector.test.ts @@ -136,7 +136,7 @@ describe('telemetry_usage_collector', () => { const collectorOptions = createTelemetryUsageCollector(usageCollector, server); expect(collectorOptions.type).toBe('static_telemetry'); - expect(await collectorOptions.fetch()).toEqual(expectedObject); + expect(await collectorOptions.fetch({} as any)).toEqual(expectedObject); // Sending any as the callCluster client because it's not needed in this collector but TS requires it when calling it. }); }); }); diff --git a/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.js b/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.ts similarity index 62% rename from src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.js rename to src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.ts index e65606a83afc81..537d5a85911cd5 100644 --- a/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.js +++ b/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_kibana.ts @@ -17,9 +17,27 @@ * under the License. */ -import { get, omit } from 'lodash'; +import { omit } from 'lodash'; +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { CallCluster } from 'src/legacy/core_plugins/elasticsearch'; -export function handleKibanaStats(server, response) { +export interface KibanaUsageStats { + kibana: { + index: string; + }; + kibana_stats: { + os: { + platform: string; + platformRelease: string; + distro?: string; + distroRelease?: string; + }; + }; + + [plugin: string]: any; +} + +export function handleKibanaStats(server: any, response?: KibanaUsageStats) { if (!response) { server.log( ['warning', 'telemetry', 'local-stats'], @@ -30,8 +48,17 @@ export function handleKibanaStats(server, response) { const { kibana, kibana_stats: kibanaStats, ...plugins } = response; - const platform = get(kibanaStats, 'os.platform', 'unknown'); - const platformRelease = get(kibanaStats, 'os.platformRelease', 'unknown'); + const os = { + platform: 'unknown', + platformRelease: 'unknown', + ...kibanaStats.os, + }; + const formattedOsStats = Object.entries(os).reduce((acc, [key, value]) => { + return { + ...acc, + [`${key}s`]: [{ [key]: value, count: 1 }], + }; + }, {}); const version = server .config() @@ -44,16 +71,16 @@ export function handleKibanaStats(server, response) { ...omit(kibana, 'index'), // discard index count: 1, indices: 1, - os: { - platforms: [{ platform, count: 1 }], - platformReleases: [{ platformRelease, count: 1 }], - }, + os: formattedOsStats, versions: [{ version, count: 1 }], plugins, }; } -export async function getKibana(usageCollection, callWithInternalUser) { +export async function getKibana( + usageCollection: UsageCollectionSetup, + callWithInternalUser: CallCluster +): Promise { const usage = await usageCollection.bulkFetch(callWithInternalUser); return usageCollection.toObject(usage); } diff --git a/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_local_stats.ts b/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_local_stats.ts index a4ea2eb534226e..8adb6d237bee81 100644 --- a/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_local_stats.ts +++ b/src/legacy/core_plugins/telemetry/server/telemetry_collection/get_local_stats.ts @@ -22,18 +22,25 @@ import { get, omit } from 'lodash'; import { getClusterInfo } from './get_cluster_info'; import { getClusterStats } from './get_cluster_stats'; // @ts-ignore -import { getKibana, handleKibanaStats } from './get_kibana'; +import { getKibana, handleKibanaStats, KibanaUsageStats } from './get_kibana'; import { StatsGetter } from '../collection_manager'; /** * Handle the separate local calls by combining them into a single object response that looks like the * "cluster_stats" document from X-Pack monitoring. * + * @param {Object} server ?? * @param {Object} clusterInfo Cluster info (GET /) * @param {Object} clusterStats Cluster stats (GET /_cluster/stats) + * @param {Object} kibana The Kibana Usage stats * @return {Object} A combined object containing the different responses. */ -export function handleLocalStats(server: any, clusterInfo: any, clusterStats: any, kibana: any) { +export function handleLocalStats( + server: any, + clusterInfo: any, + clusterStats: any, + kibana: KibanaUsageStats +) { return { timestamp: new Date().toISOString(), cluster_uuid: get(clusterInfo, 'cluster_uuid'), diff --git a/src/plugins/usage_collection/server/collector/collector.js b/src/plugins/usage_collection/server/collector/collector.ts similarity index 59% rename from src/plugins/usage_collection/server/collector/collector.js rename to src/plugins/usage_collection/server/collector/collector.ts index 54d18ec2b8a7fe..e102dc2a64ee8d 100644 --- a/src/plugins/usage_collection/server/collector/collector.js +++ b/src/plugins/usage_collection/server/collector/collector.ts @@ -17,7 +17,30 @@ * under the License. */ -export class Collector { +import { Logger } from 'kibana/server'; +import { CallCluster } from 'src/legacy/core_plugins/elasticsearch'; + +export type CollectorFormatForBulkUpload = (result: T) => { type: string; payload: U }; + +export interface CollectorOptions { + type: string; + init?: Function; + fetch: (callCluster: CallCluster) => Promise | T; + /* + * A hook for allowing the fetched data payload to be organized into a typed + * data model for internal bulk upload. See defaultFormatterForBulkUpload for + * a generic example. + */ + formatForBulkUpload?: CollectorFormatForBulkUpload; + isReady: () => Promise | boolean; +} + +export class Collector { + public readonly type: CollectorOptions['type']; + public readonly init?: CollectorOptions['init']; + public readonly fetch: CollectorOptions['fetch']; + private readonly _formatForBulkUpload?: CollectorFormatForBulkUpload; + public readonly isReady: CollectorOptions['isReady']; /* * @param {Object} logger - logger object * @param {String} options.type - property name as the key for the data @@ -27,8 +50,8 @@ export class Collector { * @param {Function} options.rest - optional other properties */ constructor( - logger, - { type, init, fetch, formatForBulkUpload = null, isReady = null, ...options } = {} + protected readonly log: Logger, + { type, init, fetch, formatForBulkUpload, isReady, ...options }: CollectorOptions ) { if (type === undefined) { throw new Error('Collector must be instantiated with a options.type string property'); @@ -42,41 +65,27 @@ export class Collector { throw new Error('Collector must be instantiated with a options.fetch function property'); } - this.log = logger; - Object.assign(this, options); // spread in other properties and mutate "this" this.type = type; this.init = init; this.fetch = fetch; - - const defaultFormatterForBulkUpload = result => ({ type, payload: result }); - this._formatForBulkUpload = formatForBulkUpload || defaultFormatterForBulkUpload; - if (typeof isReady === 'function') { - this.isReady = isReady; - } + this.isReady = typeof isReady === 'function' ? isReady : () => true; + this._formatForBulkUpload = formatForBulkUpload; } - /* - * @param {Function} callCluster - callCluster function - */ - fetchInternal(callCluster) { - if (typeof callCluster !== 'function') { - throw new Error('A `callCluster` function must be passed to the fetch methods of collectors'); + public formatForBulkUpload(result: T) { + if (this._formatForBulkUpload) { + return this._formatForBulkUpload(result); + } else { + return this.defaultFormatterForBulkUpload(result); } - return this.fetch(callCluster); - } - - /* - * A hook for allowing the fetched data payload to be organized into a typed - * data model for internal bulk upload. See defaultFormatterForBulkUpload for - * a generic example. - */ - formatForBulkUpload(result) { - return this._formatForBulkUpload(result); } - isReady() { - throw `isReady() must be implemented in ${this.type} collector`; + protected defaultFormatterForBulkUpload(result: T) { + return { + type: this.type, + payload: result, + }; } } diff --git a/src/plugins/usage_collection/server/collector/__tests__/collector_set.js b/src/plugins/usage_collection/server/collector/collector_set.test.ts similarity index 53% rename from src/plugins/usage_collection/server/collector/__tests__/collector_set.js rename to src/plugins/usage_collection/server/collector/collector_set.test.ts index 397499650e0543..c85880c34d72b2 100644 --- a/src/plugins/usage_collection/server/collector/__tests__/collector_set.js +++ b/src/plugins/usage_collection/server/collector/collector_set.test.ts @@ -18,58 +18,62 @@ */ import { noop } from 'lodash'; -import sinon from 'sinon'; -import expect from '@kbn/expect'; -import { Collector } from '../collector'; -import { CollectorSet } from '../collector_set'; -import { UsageCollector } from '../usage_collector'; - -const mockLogger = () => ({ - debug: sinon.spy(), - warn: sinon.spy(), -}); +import { Collector } from './collector'; +import { CollectorSet } from './collector_set'; +import { UsageCollector } from './usage_collector'; +import { loggingServiceMock } from '../../../../core/server/mocks'; + +const logger = loggingServiceMock.createLogger(); + +const loggerSpies = { + debug: jest.spyOn(logger, 'debug'), + warn: jest.spyOn(logger, 'warn'), +}; describe('CollectorSet', () => { describe('registers a collector set and runs lifecycle events', () => { - let init; - let fetch; + let init: Function; + let fetch: Function; beforeEach(() => { init = noop; fetch = noop; + loggerSpies.debug.mockRestore(); + loggerSpies.warn.mockRestore(); }); + const mockCallCluster = () => Promise.resolve({ passTest: 1000 }); + it('should throw an error if non-Collector type of object is registered', () => { - const logger = mockLogger(); const collectors = new CollectorSet({ logger }); const registerPojo = () => { collectors.registerCollector({ type: 'type_collector_test', init, fetch, - }); + } as any); // We are intentionally sending it wrong. }; - expect(registerPojo).to.throwException(({ message }) => { - expect(message).to.be('CollectorSet can only have Collector instances registered'); - }); + expect(registerPojo).toThrowError( + 'CollectorSet can only have Collector instances registered' + ); }); it('should log debug status of fetching from the collector', async () => { - const mockCallCluster = () => Promise.resolve({ passTest: 1000 }); - const logger = mockLogger(); const collectors = new CollectorSet({ logger }); collectors.registerCollector( new Collector(logger, { type: 'MY_TEST_COLLECTOR', - fetch: caller => caller(), + fetch: (caller: any) => caller(), + isReady: () => true, }) ); - const result = await collectors.bulkFetch(mockCallCluster); - const calls = logger.debug.getCalls(); - expect(calls.length).to.be(1); - expect(calls[0].args).to.eql(['Fetching data from MY_TEST_COLLECTOR collector']); - expect(result).to.eql([ + const result = await collectors.bulkFetch(mockCallCluster as any); + expect(loggerSpies.debug).toHaveBeenCalledTimes(1); + expect(loggerSpies.debug).toHaveBeenCalledWith( + 'Fetching data from MY_TEST_COLLECTOR collector' + ); + expect(result).toStrictEqual([ { type: 'MY_TEST_COLLECTOR', result: { passTest: 1000 }, @@ -78,32 +82,90 @@ describe('CollectorSet', () => { }); it('should gracefully handle a collector fetch method throwing an error', async () => { - const mockCallCluster = () => Promise.resolve({ passTest: 1000 }); - const logger = mockLogger(); const collectors = new CollectorSet({ logger }); collectors.registerCollector( new Collector(logger, { type: 'MY_TEST_COLLECTOR', fetch: () => new Promise((_resolve, reject) => reject()), + isReady: () => true, }) ); let result; try { - result = await collectors.bulkFetch(mockCallCluster); + result = await collectors.bulkFetch(mockCallCluster as any); } catch (err) { // Do nothing } // This must return an empty object instead of null/undefined - expect(result).to.eql([]); + expect(result).toStrictEqual([]); + }); + + it('should not break if isReady is not a function', async () => { + const collectors = new CollectorSet({ logger }); + collectors.registerCollector( + new Collector(logger, { + type: 'MY_TEST_COLLECTOR', + fetch: () => ({ test: 1 }), + isReady: true as any, + }) + ); + + const result = await collectors.bulkFetch(mockCallCluster as any); + expect(result).toStrictEqual([ + { + type: 'MY_TEST_COLLECTOR', + result: { test: 1 }, + }, + ]); + }); + + it('should not break if isReady is not provided', async () => { + const collectors = new CollectorSet({ logger }); + collectors.registerCollector( + new Collector(logger, { + type: 'MY_TEST_COLLECTOR', + fetch: () => ({ test: 1 }), + } as any) + ); + + const result = await collectors.bulkFetch(mockCallCluster as any); + expect(result).toStrictEqual([ + { + type: 'MY_TEST_COLLECTOR', + result: { test: 1 }, + }, + ]); + }); + + it('should infer the types from the implementations of fetch and formatForBulkUpload', async () => { + const collectors = new CollectorSet({ logger }); + collectors.registerCollector( + new Collector(logger, { + type: 'MY_TEST_COLLECTOR', + fetch: () => ({ test: 1 }), + formatForBulkUpload: result => ({ + type: 'MY_TEST_COLLECTOR', + payload: { test: result.test * 2 }, + }), + isReady: () => true, + }) + ); + + const result = await collectors.bulkFetch(mockCallCluster as any); + expect(result).toStrictEqual([ + { + type: 'MY_TEST_COLLECTOR', + result: { test: 1 }, // It matches the return of `fetch`. `formatForBulkUpload` is used later on + }, + ]); }); }); describe('toApiFieldNames', () => { - let collectorSet; + let collectorSet: CollectorSet; beforeEach(() => { - const logger = mockLogger(); collectorSet = new CollectorSet({ logger }); }); @@ -126,7 +188,7 @@ describe('CollectorSet', () => { }; const result = collectorSet.toApiFieldNames(apiData); - expect(result).to.eql({ + expect(result).toStrictEqual({ os: { load: { '15m': 2.3525390625, '1m': 2.22412109375, '5m': 2.4462890625 }, memory: { free_bytes: 458280960, total_bytes: 17179869184, used_bytes: 16721588224 }, @@ -155,7 +217,7 @@ describe('CollectorSet', () => { }; const result = collectorSet.toApiFieldNames(apiData); - expect(result).to.eql({ + expect(result).toStrictEqual({ days_of_the_week: [ { day_index: 1, day_name: 'monday' }, { day_index: 2, day_name: 'tuesday' }, @@ -166,21 +228,20 @@ describe('CollectorSet', () => { }); describe('isUsageCollector', () => { - const collectorOptions = { type: 'MY_TEST_COLLECTOR', fetch: () => {} }; + const collectorOptions = { type: 'MY_TEST_COLLECTOR', fetch: () => {}, isReady: () => true }; it('returns true only for UsageCollector instances', () => { - const logger = mockLogger(); const collectors = new CollectorSet({ logger }); const usageCollector = new UsageCollector(logger, collectorOptions); const collector = new Collector(logger, collectorOptions); const randomClass = new (class Random {})(); - expect(collectors.isUsageCollector(usageCollector)).to.be(true); - expect(collectors.isUsageCollector(collector)).to.be(false); - expect(collectors.isUsageCollector(randomClass)).to.be(false); - expect(collectors.isUsageCollector({})).to.be(false); - expect(collectors.isUsageCollector(null)).to.be(false); - expect(collectors.isUsageCollector('')).to.be(false); - expect(collectors.isUsageCollector()).to.be(false); + expect(collectors.isUsageCollector(usageCollector)).toEqual(true); + expect(collectors.isUsageCollector(collector)).toEqual(false); + expect(collectors.isUsageCollector(randomClass)).toEqual(false); + expect(collectors.isUsageCollector({})).toEqual(false); + expect(collectors.isUsageCollector(null)).toEqual(false); + expect(collectors.isUsageCollector('')).toEqual(false); + expect(collectors.isUsageCollector(void 0)).toEqual(false); }); }); }); diff --git a/src/plugins/usage_collection/server/collector/collector_set.ts b/src/plugins/usage_collection/server/collector/collector_set.ts index a87accc47535ec..6cc5d057b080a7 100644 --- a/src/plugins/usage_collection/server/collector/collector_set.ts +++ b/src/plugins/usage_collection/server/collector/collector_set.ts @@ -20,39 +20,37 @@ import { snakeCase } from 'lodash'; import { Logger } from 'kibana/server'; import { CallCluster } from 'src/legacy/core_plugins/elasticsearch'; -// @ts-ignore -import { Collector } from './collector'; -// @ts-ignore +import { Collector, CollectorOptions } from './collector'; import { UsageCollector } from './usage_collector'; interface CollectorSetConfig { logger: Logger; - maximumWaitTimeForAllCollectorsInS: number; - collectors?: Collector[]; + maximumWaitTimeForAllCollectorsInS?: number; + collectors?: Array>; } export class CollectorSet { private _waitingForAllCollectorsTimestamp?: number; private logger: Logger; private readonly maximumWaitTimeForAllCollectorsInS: number; - private collectors: Collector[] = []; + private collectors: Array> = []; constructor({ logger, maximumWaitTimeForAllCollectorsInS, collectors = [] }: CollectorSetConfig) { this.logger = logger; this.collectors = collectors; this.maximumWaitTimeForAllCollectorsInS = maximumWaitTimeForAllCollectorsInS || 60; } - public makeStatsCollector = (options: any) => { + public makeStatsCollector = (options: CollectorOptions) => { return new Collector(this.logger, options); }; - public makeUsageCollector = (options: any) => { + public makeUsageCollector = (options: CollectorOptions) => { return new UsageCollector(this.logger, options); }; /* * @param collector {Collector} collector object */ - public registerCollector = (collector: Collector) => { + public registerCollector = (collector: Collector) => { // check instanceof if (!(collector instanceof Collector)) { throw new Error('CollectorSet can only have Collector instances registered'); @@ -115,7 +113,7 @@ export class CollectorSet { public bulkFetch = async ( callCluster: CallCluster, - collectors: Collector[] = this.collectors + collectors: Array> = this.collectors ) => { const responses = []; for (const collector of collectors) { @@ -123,7 +121,7 @@ export class CollectorSet { try { responses.push({ type: collector.type, - result: await collector.fetchInternal(callCluster), + result: await collector.fetch(callCluster), }); } catch (err) { this.logger.warn(err); @@ -148,14 +146,13 @@ export class CollectorSet { }; // convert an array of fetched stats results into key/object - public toObject = (statsData: any) => { - if (!statsData) return {}; - return statsData.reduce((accumulatedStats: any, { type, result }: any) => { + public toObject = (statsData: Array<{ type: string; result: T }> = []) => { + return statsData.reduce((accumulatedStats, { type, result }) => { return { ...accumulatedStats, [type]: result, }; - }, {}); + }, {} as Result); }; // rename fields to use api conventions diff --git a/src/plugins/usage_collection/server/collector/index.ts b/src/plugins/usage_collection/server/collector/index.ts index 962f61474c250e..0d3939e1dc681b 100644 --- a/src/plugins/usage_collection/server/collector/index.ts +++ b/src/plugins/usage_collection/server/collector/index.ts @@ -18,7 +18,5 @@ */ export { CollectorSet } from './collector_set'; -// @ts-ignore export { Collector } from './collector'; -// @ts-ignore export { UsageCollector } from './usage_collector'; diff --git a/src/plugins/usage_collection/server/collector/usage_collector.js b/src/plugins/usage_collection/server/collector/usage_collector.js deleted file mode 100644 index 54863474dbd01e..00000000000000 --- a/src/plugins/usage_collection/server/collector/usage_collector.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { KIBANA_STATS_TYPE } from '../../common/constants'; -import { Collector } from './collector'; - -export class UsageCollector extends Collector { - /* - * @param {Object} logger - logger object - * @param {String} options.type - property name as the key for the data - * @param {Function} options.init (optional) - initialization function - * @param {Function} options.fetch - function to query data - * @param {Function} options.formatForBulkUpload - optional - * @param {Function} options.rest - optional other properties - */ - constructor(logger, { type, init, fetch, formatForBulkUpload = null, ...options } = {}) { - super(logger, { type, init, fetch, formatForBulkUpload, ...options }); - - /* - * Currently, for internal bulk uploading, usage stats are part of - * `kibana_stats` type, under the `usage` namespace in the document. - */ - const defaultUsageFormatterForBulkUpload = result => { - return { - type: KIBANA_STATS_TYPE, - payload: { - usage: { - [type]: result, - }, - }, - }; - }; - this._formatForBulkUpload = formatForBulkUpload || defaultUsageFormatterForBulkUpload; - } -} diff --git a/src/plugins/usage_collection/server/collector/usage_collector.ts b/src/plugins/usage_collection/server/collector/usage_collector.ts new file mode 100644 index 00000000000000..05c701bd3abf44 --- /dev/null +++ b/src/plugins/usage_collection/server/collector/usage_collector.ts @@ -0,0 +1,37 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { KIBANA_STATS_TYPE } from '../../common/constants'; +import { Collector } from './collector'; + +export class UsageCollector extends Collector< + T, + U +> { + protected defaultUsageFormatterForBulkUpload(result: T) { + return { + type: KIBANA_STATS_TYPE, + payload: { + usage: { + [this.type]: result, + }, + }, + }; + } +} diff --git a/x-pack/plugins/cloud/server/collectors/cloud_usage_collector.test.ts b/x-pack/plugins/cloud/server/collectors/cloud_usage_collector.test.ts index a731de341435cd..7ec3888e4e1e4c 100644 --- a/x-pack/plugins/cloud/server/collectors/cloud_usage_collector.test.ts +++ b/x-pack/plugins/cloud/server/collectors/cloud_usage_collector.test.ts @@ -21,12 +21,13 @@ describe('createCloudUsageCollector', () => { }); describe('Fetched Usage data', () => { - it('return isCloudEnabled boolean', () => { + it('return isCloudEnabled boolean', async () => { const mockConfigs = getMockConfigs(true); const usageCollection = mockUsageCollection() as any; const collector = createCloudUsageCollector(usageCollection, mockConfigs); + const callCluster = {} as any; // Sending any as the callCluster client because it's not needed in this collector but TS requires it when calling it. - expect(collector.fetch().isCloudEnabled).toBe(true); + expect((await collector.fetch(callCluster)).isCloudEnabled).toBe(true); // Adding the await because the fetch can be a Promise or a synchronous method and TS complains in the test if not awaited }); }); }); From 367086b6fa41220ce5eb4e01cc57c7577dfab883 Mon Sep 17 00:00:00 2001 From: Daniil Suleiman <31325372+sulemanof@users.noreply.github.com> Date: Wed, 5 Feb 2020 17:25:01 +0300 Subject: [PATCH 10/33] Remove the editor config provider registry (#56501) * Remove the editor_config_providers * Remove unused translations * Fix eslint errors Co-authored-by: Elastic Machine --- .../public/components/agg_param_props.ts | 3 +- .../public/components/agg_params.test.tsx | 6 +- .../public/components/agg_params.tsx | 18 +- .../components/agg_params_helper.test.ts | 10 +- .../public/components/agg_params_helper.ts | 2 +- .../public/components/controls/test_utils.ts | 3 +- .../components/controls/time_interval.tsx | 2 +- .../public/components/utils/editor_config.ts | 135 +++++++++++ .../public/components/utils}/index.ts | 3 +- .../public/legacy_imports.ts | 1 - .../config/editor_config_providers.test.ts | 210 ------------------ .../vis/config/editor_config_providers.ts | 168 -------------- src/legacy/ui/public/vis/config/types.ts | 57 ----- .../data/public/index_patterns/index.ts | 8 +- .../index_patterns/index_patterns/index.ts | 1 + .../index_patterns/index_pattern.ts | 7 +- .../index_patterns/index_patterns/types.ts | 35 +++ .../lens/public/indexpattern_plugin/loader.ts | 38 ++-- .../operations/definitions/date_histogram.tsx | 2 +- .../lens/public/indexpattern_plugin/types.ts | 13 +- x-pack/legacy/plugins/rollup/public/legacy.ts | 2 - .../plugins/rollup/public/legacy_imports.ts | 1 - x-pack/legacy/plugins/rollup/public/plugin.ts | 11 +- .../rollup/public/visualize/editor_config.js | 84 ------- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 26 files changed, 221 insertions(+), 603 deletions(-) create mode 100644 src/legacy/core_plugins/vis_default_editor/public/components/utils/editor_config.ts rename src/legacy/{ui/public/vis/config => core_plugins/vis_default_editor/public/components/utils}/index.ts (86%) delete mode 100644 src/legacy/ui/public/vis/config/editor_config_providers.test.ts delete mode 100644 src/legacy/ui/public/vis/config/editor_config_providers.ts delete mode 100644 src/legacy/ui/public/vis/config/types.ts create mode 100644 src/plugins/data/public/index_patterns/index_patterns/types.ts delete mode 100644 x-pack/legacy/plugins/rollup/public/visualize/editor_config.js diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts index fc535884c69ffd..c858fb62045ca5 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_param_props.ts @@ -19,8 +19,9 @@ import { Field } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { IAggConfig, AggParam, EditorConfig } from '../legacy_imports'; +import { IAggConfig, AggParam } from '../legacy_imports'; import { ComboBoxGroupedOptions } from '../utils'; +import { EditorConfig } from './utils'; // NOTE: we cannot export the interface with export { InterfaceName } // as there is currently a bug on babel typescript transform plugin for it diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx index 5636059394bacb..af851aa9b4418b 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.test.tsx @@ -36,10 +36,8 @@ const mockEditorConfig = { }; jest.mock('ui/new_platform'); -jest.mock('ui/vis/config', () => ({ - editorConfigProviders: { - getConfigForAgg: jest.fn(() => mockEditorConfig), - }, +jest.mock('./utils', () => ({ + getEditorConfig: jest.fn(() => mockEditorConfig), })); jest.mock('./agg_params_helper', () => ({ getAggParamsToRender: jest.fn(() => ({ diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx index 1b450957f3b26b..e9583ab4cec790 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params.tsx @@ -23,14 +23,7 @@ import { i18n } from '@kbn/i18n'; import useUnmount from 'react-use/lib/useUnmount'; import { IndexPattern } from 'src/plugins/data/public'; -import { - IAggConfig, - AggGroupNames, - editorConfigProviders, - FixedParam, - TimeIntervalParam, - EditorParamConfig, -} from '../legacy_imports'; +import { IAggConfig, AggGroupNames } from '../legacy_imports'; import { DefaultEditorAggSelect } from './agg_select'; import { DefaultEditorAggParam } from './agg_param'; @@ -46,6 +39,7 @@ import { initAggParamsState, } from './agg_params_state'; import { DefaultEditorCommonProps } from './agg_common_props'; +import { EditorParamConfig, TimeIntervalParam, FixedParam, getEditorConfig } from './utils'; const FIXED_VALUE_PROP = 'fixedValue'; const DEFAULT_PROP = 'default'; @@ -93,10 +87,12 @@ function DefaultEditorAggParams({ values: { schema: agg.schema.title }, }) : ''; - - const editorConfig = useMemo(() => editorConfigProviders.getConfigForAgg(indexPattern, agg), [ + const aggTypeName = agg.type?.name; + const fieldName = agg.params?.field?.name; + const editorConfig = useMemo(() => getEditorConfig(indexPattern, aggTypeName, fieldName), [ indexPattern, - agg, + aggTypeName, + fieldName, ]); const params = useMemo(() => getAggParamsToRender({ agg, editorConfig, metricAggs, state }), [ agg, diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts index ec56d22143699a..b9fb81fccd32c9 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts @@ -19,20 +19,14 @@ import { IndexPattern, Field } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { - IAggConfig, - IAggType, - AggGroupNames, - BUCKET_TYPES, - IndexedArray, - EditorConfig, -} from '../legacy_imports'; +import { IAggConfig, IAggType, AggGroupNames, BUCKET_TYPES, IndexedArray } from '../legacy_imports'; import { getAggParamsToRender, getAggTypeOptions, isInvalidParamsTouched, } from './agg_params_helper'; import { FieldParamEditor, OrderByParamEditor } from './controls'; +import { EditorConfig } from './utils'; jest.mock('../utils', () => ({ groupAndSortBy: jest.fn(() => ['indexedFields']), diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts index 5a9d95725c8e46..25aa21fc83b313 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts @@ -33,8 +33,8 @@ import { AggParam, IFieldParamType, IAggType, - EditorConfig, } from '../legacy_imports'; +import { EditorConfig } from './utils'; interface ParamInstanceBase { agg: IAggConfig; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts b/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts index 894bc594a08d77..4280f85c901d74 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/test_utils.ts @@ -18,7 +18,8 @@ */ import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { IAggConfig, AggParam, EditorConfig } from '../../legacy_imports'; +import { IAggConfig, AggParam } from '../../legacy_imports'; +import { EditorConfig } from '../utils'; export const aggParamCommonPropsMock = { agg: {} as IAggConfig, diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx index 6168890c2f2dad..5da0d6462a8baa 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx @@ -107,7 +107,7 @@ function TimeIntervalParamEditor({ const onChange = (opts: EuiComboBoxOptionProps[]) => { const selectedOpt: ComboBoxOption = get(opts, '0'); - setValue(selectedOpt ? selectedOpt.key : selectedOpt); + setValue(selectedOpt ? selectedOpt.key : ''); if (selectedOpt) { agg.write(); diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/utils/editor_config.ts b/src/legacy/core_plugins/vis_default_editor/public/components/utils/editor_config.ts new file mode 100644 index 00000000000000..80a64b7289f8c3 --- /dev/null +++ b/src/legacy/core_plugins/vis_default_editor/public/components/utils/editor_config.ts @@ -0,0 +1,135 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { i18n } from '@kbn/i18n'; +import { IndexPattern } from 'src/plugins/data/public'; + +/** + * A hidden parameter can be hidden from the UI completely. + */ +interface Param { + hidden?: boolean; + help?: string; +} + +/** + * A fixed parameter has a fixed value for a specific field. + * It can optionally also be hidden. + */ +export type FixedParam = Partial & { + fixedValue: any; +}; + +/** + * Numeric interval parameters must always be set in the editor to a multiple of + * the specified base. It can optionally also be hidden. + */ +export type NumericIntervalParam = Partial & { + base: number; +}; + +/** + * Time interval parameters must always be set in the editor to a multiple of + * the specified base. It can optionally also be hidden. + */ +export type TimeIntervalParam = Partial & { + default: string; + timeBase: string; +}; + +export type EditorParamConfig = NumericIntervalParam | TimeIntervalParam | FixedParam | Param; + +export interface EditorConfig { + [paramName: string]: EditorParamConfig; +} + +export function getEditorConfig( + indexPattern: IndexPattern, + aggTypeName: string, + fieldName: string +): EditorConfig { + const aggRestrictions = indexPattern.getAggregationRestrictions(); + + if (!aggRestrictions || !aggTypeName || !fieldName) { + return {}; + } + + // Exclude certain param options for terms: + // otherBucket, missingBucket, orderBy, orderAgg + if (aggTypeName === 'terms') { + return { + otherBucket: { + hidden: true, + }, + missingBucket: { + hidden: true, + }, + }; + } + + const fieldAgg = aggRestrictions[aggTypeName] && aggRestrictions[aggTypeName][fieldName]; + + if (!fieldAgg) { + return {}; + } + + // Set interval and base interval for histograms based on agg restrictions + if (aggTypeName === 'histogram') { + const interval = fieldAgg.interval; + return interval + ? { + intervalBase: { + fixedValue: interval, + }, + interval: { + base: interval, + help: i18n.translate('visDefaultEditor.editorConfig.histogram.interval.helpText', { + defaultMessage: 'Must be a multiple of configuration interval: {interval}', + values: { interval }, + }), + }, + } + : {}; + } + + // Set date histogram time zone based on agg restrictions + if (aggTypeName === 'date_histogram') { + // Interval is deprecated on date_histogram rollups, but may still be present + // See https://github.com/elastic/kibana/pull/36310 + const interval = fieldAgg.calendar_interval || fieldAgg.fixed_interval; + return { + useNormalizedEsInterval: { + fixedValue: false, + }, + interval: { + default: interval, + timeBase: interval, + help: i18n.translate( + 'visDefaultEditor.editorConfig.dateHistogram.customInterval.helpText', + { + defaultMessage: 'Must be a multiple of configuration interval: {interval}', + values: { interval }, + } + ), + }, + }; + } + + return {}; +} diff --git a/src/legacy/ui/public/vis/config/index.ts b/src/legacy/core_plugins/vis_default_editor/public/components/utils/index.ts similarity index 86% rename from src/legacy/ui/public/vis/config/index.ts rename to src/legacy/core_plugins/vis_default_editor/public/components/utils/index.ts index ee7385518a85d4..14570356103b11 100644 --- a/src/legacy/ui/public/vis/config/index.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/utils/index.ts @@ -17,5 +17,4 @@ * under the License. */ -export { editorConfigProviders, EditorConfigProviderRegistry } from './editor_config_providers'; -export * from './types'; +export * from './editor_config'; diff --git a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts index f023b808cb0a72..a700995ec596b9 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts @@ -54,4 +54,3 @@ export { getDocLink } from 'ui/documentation_links'; export { documentationLinks } from 'ui/documentation_links/documentation_links'; export { move } from 'ui/utils/collection'; export * from 'ui/vis/lib'; -export * from 'ui/vis/config'; diff --git a/src/legacy/ui/public/vis/config/editor_config_providers.test.ts b/src/legacy/ui/public/vis/config/editor_config_providers.test.ts deleted file mode 100644 index d52c9119dd76a5..00000000000000 --- a/src/legacy/ui/public/vis/config/editor_config_providers.test.ts +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { IAggConfig } from 'ui/agg_types'; -import { EditorConfigProviderRegistry } from './editor_config_providers'; -import { EditorParamConfig, FixedParam, NumericIntervalParam, TimeIntervalParam } from './types'; - -jest.mock('ui/new_platform'); - -describe('EditorConfigProvider', () => { - let registry: EditorConfigProviderRegistry; - const indexPattern = { - id: '1234', - title: 'logstash-*', - fields: [ - { - name: 'response', - type: 'number', - esTypes: ['integer'], - aggregatable: true, - filterable: true, - searchable: true, - }, - ], - } as any; - - beforeEach(() => { - registry = new EditorConfigProviderRegistry(); - }); - - it('should call registered providers with given parameters', () => { - const provider = jest.fn(() => ({})); - registry.register(provider); - expect(provider).not.toHaveBeenCalled(); - const aggConfig = {} as IAggConfig; - registry.getConfigForAgg(indexPattern, aggConfig); - expect(provider).toHaveBeenCalledWith(indexPattern, aggConfig); - }); - - it('should call all registered providers with given parameters', () => { - const provider = jest.fn(() => ({})); - const provider2 = jest.fn(() => ({})); - registry.register(provider); - registry.register(provider2); - expect(provider).not.toHaveBeenCalled(); - expect(provider2).not.toHaveBeenCalled(); - const aggConfig = {} as IAggConfig; - registry.getConfigForAgg(indexPattern, aggConfig); - expect(provider).toHaveBeenCalledWith(indexPattern, aggConfig); - expect(provider2).toHaveBeenCalledWith(indexPattern, aggConfig); - }); - - describe('merging configs', () => { - function singleConfig(paramConfig: EditorParamConfig) { - return () => ({ singleParam: paramConfig }); - } - - function getOutputConfig(reg: EditorConfigProviderRegistry) { - return reg.getConfigForAgg(indexPattern, {} as IAggConfig).singleParam; - } - - it('should have hidden true if at least one config was hidden true', () => { - registry.register(singleConfig({ hidden: false })); - registry.register(singleConfig({ hidden: true })); - registry.register(singleConfig({ hidden: false })); - const config = getOutputConfig(registry); - expect(config.hidden).toBe(true); - }); - - it('should merge the same fixed values', () => { - registry.register(singleConfig({ fixedValue: 'foo' })); - registry.register(singleConfig({ fixedValue: 'foo' })); - const config = getOutputConfig(registry) as FixedParam; - expect(config).toHaveProperty('fixedValue'); - expect(config.fixedValue).toBe('foo'); - }); - - it('should throw having different fixed values', () => { - registry.register(singleConfig({ fixedValue: 'foo' })); - registry.register(singleConfig({ fixedValue: 'bar' })); - expect(() => { - getOutputConfig(registry); - }).toThrowError(); - }); - - it('should allow same base values', () => { - registry.register(singleConfig({ base: 5 })); - registry.register(singleConfig({ base: 5 })); - const config = getOutputConfig(registry) as NumericIntervalParam; - expect(config).toHaveProperty('base'); - expect(config.base).toBe(5); - }); - - it('should merge multiple base values, using least common multiple', () => { - registry.register(singleConfig({ base: 2 })); - registry.register(singleConfig({ base: 5 })); - registry.register(singleConfig({ base: 8 })); - const config = getOutputConfig(registry) as NumericIntervalParam; - expect(config).toHaveProperty('base'); - expect(config.base).toBe(40); - }); - - it('should throw on combining fixedValue with base', () => { - registry.register(singleConfig({ fixedValue: 'foo' })); - registry.register(singleConfig({ base: 5 })); - expect(() => { - getOutputConfig(registry); - }).toThrowError(); - }); - - it('should allow same timeBase values', () => { - registry.register(singleConfig({ timeBase: '2h', default: '2h' })); - registry.register(singleConfig({ timeBase: '2h', default: '2h' })); - const config = getOutputConfig(registry) as TimeIntervalParam; - expect(config).toHaveProperty('timeBase'); - expect(config).toHaveProperty('default'); - expect(config.timeBase).toBe('2h'); - expect(config.default).toBe('2h'); - }); - - it('should merge multiple compatible timeBase values, using least common interval', () => { - registry.register(singleConfig({ timeBase: '2h', default: '2h' })); - registry.register(singleConfig({ timeBase: '3h', default: '3h' })); - registry.register(singleConfig({ timeBase: '4h', default: '4h' })); - const config = getOutputConfig(registry) as TimeIntervalParam; - expect(config).toHaveProperty('timeBase'); - expect(config).toHaveProperty('default'); - expect(config.timeBase).toBe('12h'); - expect(config.default).toBe('12h'); - }); - - it('should throw on combining incompatible timeBase values', () => { - registry.register(singleConfig({ timeBase: '2h', default: '2h' })); - registry.register(singleConfig({ timeBase: '1d', default: '1d' })); - expect(() => { - getOutputConfig(registry); - }).toThrowError(); - }); - - it('should throw on invalid timeBase values', () => { - registry.register(singleConfig({ timeBase: '2w', default: '2w' })); - expect(() => { - getOutputConfig(registry); - }).toThrowError(); - }); - - it('should throw if timeBase and default are different', () => { - registry.register(singleConfig({ timeBase: '1h', default: '2h' })); - expect(() => { - getOutputConfig(registry); - }).toThrowError(); - }); - - it('should merge hidden together with fixedValue', () => { - registry.register(singleConfig({ fixedValue: 'foo', hidden: true })); - registry.register(singleConfig({ fixedValue: 'foo', hidden: false })); - const config = getOutputConfig(registry) as FixedParam; - expect(config).toHaveProperty('fixedValue'); - expect(config).toHaveProperty('hidden'); - expect(config.fixedValue).toBe('foo'); - expect(config.hidden).toBe(true); - }); - - it('should merge hidden together with base', () => { - registry.register(singleConfig({ base: 2, hidden: false })); - registry.register(singleConfig({ base: 13, hidden: false })); - const config = getOutputConfig(registry) as NumericIntervalParam; - expect(config).toHaveProperty('base'); - expect(config).toHaveProperty('hidden'); - expect(config.base).toBe(26); - expect(config.hidden).toBe(false); - }); - - it('should merge hidden together with timeBase', () => { - registry.register(singleConfig({ timeBase: '2h', default: '2h', hidden: false })); - registry.register(singleConfig({ timeBase: '4h', default: '4h', hidden: false })); - const config = getOutputConfig(registry) as TimeIntervalParam; - expect(config).toHaveProperty('timeBase'); - expect(config).toHaveProperty('default'); - expect(config).toHaveProperty('hidden'); - expect(config.timeBase).toBe('4h'); - expect(config.default).toBe('4h'); - expect(config.hidden).toBe(false); - }); - - it('should merge helps together into one string', () => { - registry.register(singleConfig({ help: 'Warning' })); - registry.register(singleConfig({ help: 'Another help' })); - const config = getOutputConfig(registry); - expect(config).toHaveProperty('help'); - expect(config.help).toBe('Warning\n\nAnother help'); - }); - }); -}); diff --git a/src/legacy/ui/public/vis/config/editor_config_providers.ts b/src/legacy/ui/public/vis/config/editor_config_providers.ts deleted file mode 100644 index ec82597d5fb19b..00000000000000 --- a/src/legacy/ui/public/vis/config/editor_config_providers.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { IndexPattern } from 'src/plugins/data/public'; -import { IAggConfig } from 'ui/agg_types'; -import { parseEsInterval } from '../../../../core_plugins/data/public'; -import { - TimeIntervalParam, - EditorConfig, - EditorParamConfig, - FixedParam, - NumericIntervalParam, -} from './types'; -import { leastCommonInterval, leastCommonMultiple } from '../lib'; - -type EditorConfigProvider = (indexPattern: IndexPattern, aggConfig: IAggConfig) => EditorConfig; - -class EditorConfigProviderRegistry { - private providers: Set = new Set(); - - public register(configProvider: EditorConfigProvider): void { - this.providers.add(configProvider); - } - - public getConfigForAgg(indexPattern: IndexPattern, aggConfig: IAggConfig): EditorConfig { - const configs = Array.from(this.providers).map(provider => provider(indexPattern, aggConfig)); - return this.mergeConfigs(configs); - } - - private isTimeBaseParam(config: EditorParamConfig): config is TimeIntervalParam { - return config.hasOwnProperty('default') && config.hasOwnProperty('timeBase'); - } - - private isBaseParam(config: EditorParamConfig): config is NumericIntervalParam { - return config.hasOwnProperty('base'); - } - - private isFixedParam(config: EditorParamConfig): config is FixedParam { - return config.hasOwnProperty('fixedValue'); - } - - private mergeHidden(current: EditorParamConfig, merged: EditorParamConfig): boolean { - return Boolean(current.hidden || merged.hidden); - } - - private mergeHelp(current: EditorParamConfig, merged: EditorParamConfig): string | undefined { - if (!current.help) { - return merged.help; - } - - return merged.help ? `${merged.help}\n\n${current.help}` : current.help; - } - - private mergeFixedAndBase( - current: EditorParamConfig, - merged: EditorParamConfig, - paramName: string - ): { fixedValue: unknown } | { base: number } | {} { - if ( - this.isFixedParam(current) && - this.isFixedParam(merged) && - current.fixedValue !== merged.fixedValue - ) { - // In case multiple configurations provided a fixedValue, these must all be the same. - // If not we'll throw an error. - throw new Error(`Two EditorConfigProviders provided different fixed values for field ${paramName}: - ${merged.fixedValue} !== ${current.fixedValue}`); - } - - if ( - (this.isFixedParam(current) && this.isBaseParam(merged)) || - (this.isBaseParam(current) && this.isFixedParam(merged)) - ) { - // In case one config tries to set a fixed value and another setting a base value, - // we'll throw an error. This could be solved more elegantly, by allowing fixedValues - // that are the multiple of the specific base value, but since there is no use-case for that - // right now, this isn't implemented. - throw new Error(`Tried to provide a fixedValue and a base for param ${paramName}.`); - } - - if (this.isBaseParam(current) && this.isBaseParam(merged)) { - // In case where both had interval values, just use the least common multiple between both interval - return { - base: leastCommonMultiple(current.base, merged.base), - }; - } - - // In this case we haven't had a fixed value of base for that param yet, we use the one specified - // in the current config - if (this.isFixedParam(current)) { - return { - fixedValue: current.fixedValue, - }; - } - if (this.isBaseParam(current)) { - return { - base: current.base, - }; - } - - return {}; - } - - private mergeTimeBase( - current: TimeIntervalParam, - merged: EditorParamConfig, - paramName: string - ): { timeBase: string; default: string } { - if (current.default !== current.timeBase) { - throw new Error(`Tried to provide differing default and timeBase values for ${paramName}.`); - } - - if (this.isTimeBaseParam(merged)) { - // In case both had where interval values, just use the least common multiple between both intervals - const timeBase = leastCommonInterval(current.timeBase, merged.timeBase); - return { - default: timeBase, - timeBase, - }; - } - - // This code is simply here to throw an error in case the `timeBase` is not a valid ES interval - parseEsInterval(current.timeBase); - return { - default: current.timeBase, - timeBase: current.timeBase, - }; - } - - private mergeConfigs(configs: EditorConfig[]): EditorConfig { - return configs.reduce((output, conf) => { - Object.entries(conf).forEach(([paramName, paramConfig]) => { - if (!output[paramName]) { - output[paramName] = {}; - } - - output[paramName] = { - hidden: this.mergeHidden(paramConfig, output[paramName]), - help: this.mergeHelp(paramConfig, output[paramName]), - ...(this.isTimeBaseParam(paramConfig) - ? this.mergeTimeBase(paramConfig, output[paramName], paramName) - : this.mergeFixedAndBase(paramConfig, output[paramName], paramName)), - }; - }); - return output; - }, {}); - } -} - -const editorConfigProviders = new EditorConfigProviderRegistry(); - -export { editorConfigProviders, EditorConfigProviderRegistry }; diff --git a/src/legacy/ui/public/vis/config/types.ts b/src/legacy/ui/public/vis/config/types.ts deleted file mode 100644 index 61c0ced3cd5198..00000000000000 --- a/src/legacy/ui/public/vis/config/types.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * A hidden parameter can be hidden from the UI completely. - */ -interface Param { - hidden?: boolean; - help?: string; -} - -/** - * A fixed parameter has a fixed value for a specific field. - * It can optionally also be hidden. - */ -export type FixedParam = Partial & { - fixedValue: any; -}; - -/** - * Numeric interval parameters must always be set in the editor to a multiple of - * the specified base. It can optionally also be hidden. - */ -export type NumericIntervalParam = Partial & { - base: number; -}; - -/** - * Time interval parameters must always be set in the editor to a multiple of - * the specified base. It can optionally also be hidden. - */ -export type TimeIntervalParam = Partial & { - default: string; - timeBase: string; -}; - -export type EditorParamConfig = NumericIntervalParam | TimeIntervalParam | FixedParam | Param; - -export interface EditorConfig { - [paramName: string]: EditorParamConfig; -} diff --git a/src/plugins/data/public/index_patterns/index.ts b/src/plugins/data/public/index_patterns/index.ts index 7444126ee6cae0..3d902ebbb7c237 100644 --- a/src/plugins/data/public/index_patterns/index.ts +++ b/src/plugins/data/public/index_patterns/index.ts @@ -47,4 +47,10 @@ export const indexPatterns = { export { Field, FieldList, IFieldList } from './fields'; // TODO: figure out how to replace IndexPatterns in get_inner_angular. -export { IndexPattern, IndexPatterns, IndexPatternsContract } from './index_patterns'; +export { + IndexPattern, + IndexPatterns, + IndexPatternsContract, + TypeMeta, + AggregationRestrictions, +} from './index_patterns'; diff --git a/src/plugins/data/public/index_patterns/index_patterns/index.ts b/src/plugins/data/public/index_patterns/index_patterns/index.ts index 4ca7e053a4492f..fca82025cdc66d 100644 --- a/src/plugins/data/public/index_patterns/index_patterns/index.ts +++ b/src/plugins/data/public/index_patterns/index_patterns/index.ts @@ -22,3 +22,4 @@ export * from './format_hit'; export * from './index_pattern'; export * from './index_patterns'; export * from './index_patterns_api_client'; +export * from './types'; diff --git a/src/plugins/data/public/index_patterns/index_patterns/index_pattern.ts b/src/plugins/data/public/index_patterns/index_patterns/index_pattern.ts index 5c09e22b6dbb4f..c09c9f48287993 100644 --- a/src/plugins/data/public/index_patterns/index_patterns/index_pattern.ts +++ b/src/plugins/data/public/index_patterns/index_patterns/index_pattern.ts @@ -38,6 +38,7 @@ import { formatHitProvider } from './format_hit'; import { flattenHitWrapper } from './flatten_hit'; import { IIndexPatternsApiClient } from './index_patterns_api_client'; import { getNotifications, getFieldFormats } from '../../services'; +import { TypeMeta } from './types'; const MAX_ATTEMPTS_TO_RESOLVE_CONFLICTS = 3; const type = 'index-pattern'; @@ -49,7 +50,7 @@ export class IndexPattern implements IIndexPattern { public title: string = ''; public type?: string; public fieldFormatMap: any; - public typeMeta: any; + public typeMeta?: TypeMeta; public fields: IFieldList; public timeFieldName: string | undefined; public formatHit: any; @@ -336,6 +337,10 @@ export class IndexPattern implements IIndexPattern { return this.fields.getByName(name); } + getAggregationRestrictions() { + return this.typeMeta?.aggs; + } + isWildcard() { return _.includes(this.title, '*'); } diff --git a/src/plugins/data/public/index_patterns/index_patterns/types.ts b/src/plugins/data/public/index_patterns/index_patterns/types.ts new file mode 100644 index 00000000000000..b2060dd1d48bac --- /dev/null +++ b/src/plugins/data/public/index_patterns/index_patterns/types.ts @@ -0,0 +1,35 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export type AggregationRestrictions = Record< + string, + { + agg?: string; + interval?: number; + fixed_interval?: string; + calendar_interval?: string; + delay?: string; + time_zone?: string; + } +>; + +export interface TypeMeta { + aggs?: Record; + [key: string]: any; +} diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts index c9473c18698685..f0692f120f9b5b 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts @@ -15,13 +15,12 @@ import { IndexPatternPersistedState, IndexPatternPrivateState, IndexPatternField, - AggregationRestrictions, } from './types'; import { updateLayerIndexPattern } from './state_helpers'; import { DateRange, ExistingFields } from '../../common/types'; import { BASE_API_URL } from '../../common'; import { documentField } from './document_field'; -import { isNestedField, IFieldType } from '../../../../../../src/plugins/data/public'; +import { isNestedField, IFieldType, TypeMeta } from '../../../../../../src/plugins/data/public'; interface SavedIndexPatternAttributes extends SavedObjectAttributes { title: string; @@ -31,12 +30,7 @@ interface SavedIndexPatternAttributes extends SavedObjectAttributes { typeMeta: string; } -interface SavedRestrictionsObject { - aggs: Record; -} - type SetState = StateSetter; -type SavedRestrictionsInfo = SavedRestrictionsObject | undefined; type SavedObjectsClient = Pick; type ErrorHandler = (err: Error) => void; @@ -275,9 +269,7 @@ function fromSavedObject( fields: (JSON.parse(attributes.fields) as IFieldType[]) .filter(field => !isNestedField(field) && (!!field.aggregatable || !!field.scripted)) .concat(documentField) as IndexPatternField[], - typeMeta: attributes.typeMeta - ? (JSON.parse(attributes.typeMeta) as SavedRestrictionsInfo) - : undefined, + typeMeta: attributes.typeMeta ? (JSON.parse(attributes.typeMeta) as TypeMeta) : undefined, fieldFormatMap: attributes.fieldFormatMap ? JSON.parse(attributes.fieldFormatMap) : undefined, }; @@ -286,21 +278,23 @@ function fromSavedObject( return indexPattern; } - const aggs = Object.keys(typeMeta.aggs); - const newFields = [...(indexPattern.fields as IndexPatternField[])]; - newFields.forEach((field, index) => { - const restrictionsObj: IndexPatternField['aggregationRestrictions'] = {}; - aggs.forEach(agg => { - const restriction = typeMeta.aggs[agg] && typeMeta.aggs[agg][field.name]; - if (restriction) { - restrictionsObj[agg] = restriction; + + if (typeMeta.aggs) { + const aggs = Object.keys(typeMeta.aggs); + newFields.forEach((field, index) => { + const restrictionsObj: IndexPatternField['aggregationRestrictions'] = {}; + aggs.forEach(agg => { + const restriction = typeMeta.aggs && typeMeta.aggs[agg] && typeMeta.aggs[agg][field.name]; + if (restriction) { + restrictionsObj[agg] = restriction; + } + }); + if (Object.keys(restrictionsObj).length) { + newFields[index] = { ...field, aggregationRestrictions: restrictionsObj }; } }); - if (Object.keys(restrictionsObj).length) { - newFields[index] = { ...field, aggregationRestrictions: restrictionsObj }; - } - }); + } return { id: indexPattern.id, diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx index ae12be90ddd058..4cfd7195d1fc0e 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/date_histogram.tsx @@ -27,7 +27,7 @@ import { updateColumnParam } from '../../state_helpers'; import { OperationDefinition } from '.'; import { FieldBasedIndexPatternColumn } from './column_types'; import { autoIntervalFromDateRange } from '../../auto_date'; -import { AggregationRestrictions } from '../../types'; +import { AggregationRestrictions } from '../../../../../../../../src/plugins/data/public'; const autoInterval = 'auto'; const calendarOnlyIntervals = new Set(['w', 'M', 'q', 'y']); diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/types.ts b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/types.ts index e556ddda106796..546d148be1e29d 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/types.ts +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/types.ts @@ -5,6 +5,7 @@ */ import { IndexPatternColumn } from './operations'; +import { AggregationRestrictions } from '../../../../../../src/plugins/data/public'; export interface IndexPattern { id: string; @@ -20,18 +21,6 @@ export interface IndexPattern { >; } -export type AggregationRestrictions = Record< - string, - { - agg?: string; - interval?: number; - fixed_interval?: string; - calendar_interval?: string; - delay?: string; - time_zone?: string; - } ->; - export interface IndexPatternField { name: string; type: string; diff --git a/x-pack/legacy/plugins/rollup/public/legacy.ts b/x-pack/legacy/plugins/rollup/public/legacy.ts index a70f181dc86fb7..17597672a898e4 100644 --- a/x-pack/legacy/plugins/rollup/public/legacy.ts +++ b/x-pack/legacy/plugins/rollup/public/legacy.ts @@ -5,7 +5,6 @@ */ import { npSetup, npStart } from 'ui/new_platform'; -import { editorConfigProviders } from 'ui/vis/config'; import { aggTypeFilters } from 'ui/agg_types'; import { aggTypeFieldFilters } from 'ui/agg_types'; import { addSearchStrategy } from '../../../../../src/plugins/data/public'; @@ -20,7 +19,6 @@ export const setup = plugin.setup(npSetup.core, { __LEGACY: { aggTypeFilters, aggTypeFieldFilters, - editorConfigProviders, addSearchStrategy, addBadgeExtension, addToggleExtension, diff --git a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts b/x-pack/legacy/plugins/rollup/public/legacy_imports.ts index 4fece0fddfa3ef..07155a4b0a60ea 100644 --- a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts +++ b/x-pack/legacy/plugins/rollup/public/legacy_imports.ts @@ -9,4 +9,3 @@ export { findIllegalCharactersInIndexName, INDEX_ILLEGAL_CHARACTERS_VISIBLE } fr export { AggTypeFilters } from 'ui/agg_types'; export { AggTypeFieldFilters } from 'ui/agg_types'; -export { EditorConfigProviderRegistry } from 'ui/vis/config'; diff --git a/x-pack/legacy/plugins/rollup/public/plugin.ts b/x-pack/legacy/plugins/rollup/public/plugin.ts index 97c03fd1fdfc25..4dae078c90f570 100644 --- a/x-pack/legacy/plugins/rollup/public/plugin.ts +++ b/x-pack/legacy/plugins/rollup/public/plugin.ts @@ -6,11 +6,7 @@ import { i18n } from '@kbn/i18n'; import { CoreSetup, CoreStart, Plugin } from 'kibana/public'; -import { - EditorConfigProviderRegistry, - AggTypeFilters, - AggTypeFieldFilters, -} from './legacy_imports'; +import { AggTypeFilters, AggTypeFieldFilters } from './legacy_imports'; import { SearchStrategyProvider } from '../../../../../src/plugins/data/public'; import { ManagementSetup as ManagementSetupLegacy } from '../../../../../src/legacy/core_plugins/management/public/np_ready'; import { rollupBadgeExtension, rollupToggleExtension } from './extend_index_management'; @@ -23,8 +19,6 @@ import { getRollupSearchStrategy } from './search/rollup_search_strategy'; import { initAggTypeFilter } from './visualize/agg_type_filter'; // @ts-ignore import { initAggTypeFieldFilter } from './visualize/agg_type_field_filter'; -// @ts-ignore -import { initEditorConfig } from './visualize/editor_config'; import { CONFIG_ROLLUPS } from '../common'; import { FeatureCatalogueCategory, @@ -42,7 +36,6 @@ export interface RollupPluginSetupDependencies { __LEGACY: { aggTypeFilters: AggTypeFilters; aggTypeFieldFilters: AggTypeFieldFilters; - editorConfigProviders: EditorConfigProviderRegistry; addSearchStrategy: (searchStrategy: SearchStrategyProvider) => void; managementLegacy: ManagementSetupLegacy; addBadgeExtension: (badgeExtension: any) => void; @@ -59,7 +52,6 @@ export class RollupPlugin implements Plugin { __LEGACY: { aggTypeFilters, aggTypeFieldFilters, - editorConfigProviders, addSearchStrategy, managementLegacy, addBadgeExtension, @@ -81,7 +73,6 @@ export class RollupPlugin implements Plugin { addSearchStrategy(getRollupSearchStrategy(core.http.fetch)); initAggTypeFilter(aggTypeFilters); initAggTypeFieldFilter(aggTypeFieldFilters); - initEditorConfig(editorConfigProviders); } if (home) { diff --git a/x-pack/legacy/plugins/rollup/public/visualize/editor_config.js b/x-pack/legacy/plugins/rollup/public/visualize/editor_config.js deleted file mode 100644 index 5c1eb7c8ee3b75..00000000000000 --- a/x-pack/legacy/plugins/rollup/public/visualize/editor_config.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { i18n } from '@kbn/i18n'; - -export function initEditorConfig(editorConfigProviders) { - // Limit agg params based on rollup capabilities - editorConfigProviders.register((indexPattern, aggConfig) => { - if (indexPattern.type !== 'rollup') { - return {}; - } - - const aggTypeName = aggConfig.type && aggConfig.type.name; - - // Exclude certain param options for terms: - // otherBucket, missingBucket, orderBy, orderAgg - if (aggTypeName === 'terms') { - return { - otherBucket: { - hidden: true, - }, - missingBucket: { - hidden: true, - }, - }; - } - - const rollupAggs = indexPattern.typeMeta && indexPattern.typeMeta.aggs; - const field = aggConfig.params && aggConfig.params.field && aggConfig.params.field.name; - const fieldAgg = - rollupAggs && field && rollupAggs[aggTypeName] && rollupAggs[aggTypeName][field]; - - if (!rollupAggs || !field || !fieldAgg) { - return {}; - } - - // Set interval and base interval for histograms based on rollup capabilities - if (aggTypeName === 'histogram') { - const interval = fieldAgg.interval; - return interval - ? { - intervalBase: { - fixedValue: interval, - }, - interval: { - base: interval, - help: i18n.translate('xpack.rollupJobs.editorConfig.histogram.interval.helpText', { - defaultMessage: 'Must be a multiple of rollup configuration interval: {interval}', - values: { interval }, - }), - }, - } - : {}; - } - - // Set date histogram time zone based on rollup capabilities - if (aggTypeName === 'date_histogram') { - // Interval is deprecated on date_histogram rollups, but may still be present - // See https://github.com/elastic/kibana/pull/36310 - const interval = fieldAgg.calendar_interval || fieldAgg.fixed_interval || fieldAgg.interval; - return { - useNormalizedEsInterval: { - fixedValue: false, - }, - interval: { - default: interval, - timeBase: interval, - help: i18n.translate( - 'xpack.rollupJobs.editorConfig.dateHistogram.customInterval.helpText', - { - defaultMessage: 'Must be a multiple of rollup configuration interval: {interval}', - values: { interval }, - } - ), - }, - }; - } - - return {}; - }); -} diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 351bc9def3082f..b98eabad466edd 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10394,8 +10394,6 @@ "xpack.rollupJobs.detailPanel.jobActionMenu.buttonLabel": "管理", "xpack.rollupJobs.detailPanel.loadingLabel": "ロールアップジョブを読み込み中…", "xpack.rollupJobs.detailPanel.notFoundLabel": "ロールアップジョブが見つかりません", - "xpack.rollupJobs.editorConfig.dateHistogram.customInterval.helpText": "ロールアップ構成の間隔の倍数でなければなりません: {interval}", - "xpack.rollupJobs.editorConfig.histogram.interval.helpText": "ロールアップ構成の間隔の倍数でなければなりません: {interval}", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultButtonDescription": "要約データに制限された集約を実行します。", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultButtonText": "ロールアップインデックスパターン", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultTypeName": "ロールアップインデックスパターン", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 066bafd990fe37..1c87541ae107a7 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10393,8 +10393,6 @@ "xpack.rollupJobs.detailPanel.jobActionMenu.buttonLabel": "管理", "xpack.rollupJobs.detailPanel.loadingLabel": "正在加载汇总/打包作业……", "xpack.rollupJobs.detailPanel.notFoundLabel": "未找到汇总/打包作业", - "xpack.rollupJobs.editorConfig.dateHistogram.customInterval.helpText": "必须是汇总/打包配置时间间隔的倍数:{interval}", - "xpack.rollupJobs.editorConfig.histogram.interval.helpText": "必须是汇总/打包配置时间间隔的倍数:{interval}", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultButtonDescription": "针对汇总数据执行有限聚合", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultButtonText": "汇总/打包索引模式", "xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultTypeName": "汇总/打包索引模式", From 625b93a22fa2f667b99abe837d5db49e55f55505 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Wed, 5 Feb 2020 16:14:05 +0100 Subject: [PATCH 11/33] [ML] New Platform server shim: update data visualizer routes to use new platform router (#56739) * [ML] data_visualizer TS refactor, NP router * [ML] fix schema, add apiDoc * [ML] update apiDoc order * [ML] validate_cardinality with NP router * [ML] use mlClient * [ML] remove redundant code * [ML] support legacy callWithRequest for job validation * [ML] fix schema validation --- .../plugins/ml/common/util/job_utils.d.ts | 2 + .../lib/{query_utils.js => query_utils.ts} | 11 +- ...{data_visualizer.js => data_visualizer.ts} | 441 +++++++++++------- .../data_visualizer/{index.js => index.ts} | 0 .../new_platform/data_visualizer_schema.ts | 38 ++ .../plugins/ml/server/routes/apidoc.json | 5 +- .../ml/server/routes/data_visualizer.js | 110 ----- .../ml/server/routes/data_visualizer.ts | 173 +++++++ 8 files changed, 509 insertions(+), 271 deletions(-) rename x-pack/legacy/plugins/ml/server/lib/{query_utils.js => query_utils.ts} (86%) rename x-pack/legacy/plugins/ml/server/models/data_visualizer/{data_visualizer.js => data_visualizer.ts} (75%) rename x-pack/legacy/plugins/ml/server/models/data_visualizer/{index.js => index.ts} (100%) create mode 100644 x-pack/legacy/plugins/ml/server/new_platform/data_visualizer_schema.ts delete mode 100644 x-pack/legacy/plugins/ml/server/routes/data_visualizer.js create mode 100644 x-pack/legacy/plugins/ml/server/routes/data_visualizer.ts diff --git a/x-pack/legacy/plugins/ml/common/util/job_utils.d.ts b/x-pack/legacy/plugins/ml/common/util/job_utils.d.ts index df62d19b6d27b0..cfff15bb97be2e 100644 --- a/x-pack/legacy/plugins/ml/common/util/job_utils.d.ts +++ b/x-pack/legacy/plugins/ml/common/util/job_utils.d.ts @@ -43,3 +43,5 @@ export function processCreatedBy(customSettings: { created_by?: string }): void; export function mlFunctionToESAggregation(functionName: string): string | null; export function isModelPlotEnabled(job: Job, detectorIndex: number, entityFields: any[]): boolean; + +export function getSafeAggregationName(fieldName: string, index: number): string; diff --git a/x-pack/legacy/plugins/ml/server/lib/query_utils.js b/x-pack/legacy/plugins/ml/server/lib/query_utils.ts similarity index 86% rename from x-pack/legacy/plugins/ml/server/lib/query_utils.js rename to x-pack/legacy/plugins/ml/server/lib/query_utils.ts index 806ce324d26d1a..5eff726d6c5c85 100644 --- a/x-pack/legacy/plugins/ml/server/lib/query_utils.js +++ b/x-pack/legacy/plugins/ml/server/lib/query_utils.ts @@ -10,7 +10,12 @@ // Builds the base filter criteria used in queries, // adding criteria for the time range and an optional query. -export function buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query) { +export function buildBaseFilterCriteria( + timeFieldName?: string, + earliestMs?: number, + latestMs?: number, + query?: object +) { const filterCriteria = []; if (timeFieldName && earliestMs && latestMs) { filterCriteria.push({ @@ -34,7 +39,7 @@ export function buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, que // Wraps the supplied aggregations in a sampler aggregation. // A supplied samplerShardSize (the shard_size parameter of the sampler aggregation) // of less than 1 indicates no sampling, and the aggs are returned as-is. -export function buildSamplerAggregation(aggs, samplerShardSize) { +export function buildSamplerAggregation(aggs: object, samplerShardSize: number) { if (samplerShardSize < 1) { return aggs; } @@ -53,6 +58,6 @@ export function buildSamplerAggregation(aggs, samplerShardSize) { // depending on whether sampling is being used. // A supplied samplerShardSize (the shard_size parameter of the sampler aggregation) // of less than 1 indicates no sampling, and an empty array is returned. -export function getSamplerAggregationsResponsePath(samplerShardSize) { +export function getSamplerAggregationsResponsePath(samplerShardSize: number): string[] { return samplerShardSize > 0 ? ['sample'] : []; } diff --git a/x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.js b/x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.ts similarity index 75% rename from x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.js rename to x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.ts index f4ee032ee2dbbe..6186a61c5075fe 100644 --- a/x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.js +++ b/x-pack/legacy/plugins/ml/server/models/data_visualizer/data_visualizer.ts @@ -4,23 +4,118 @@ * you may not use this file except in compliance with the Elastic License. */ +import { CallAPIOptions, RequestHandlerContext } from 'kibana/server'; import _ from 'lodash'; +import { ML_JOB_FIELD_TYPES } from '../../../common/constants/field_types'; +import { getSafeAggregationName } from '../../../common/util/job_utils'; import { buildBaseFilterCriteria, buildSamplerAggregation, getSamplerAggregationsResponsePath, } from '../../lib/query_utils'; -import { ML_JOB_FIELD_TYPES } from '../../../common/constants/field_types'; -import { getSafeAggregationName } from '../../../common/util/job_utils'; const SAMPLER_TOP_TERMS_THRESHOLD = 100000; const SAMPLER_TOP_TERMS_SHARD_SIZE = 5000; const AGGREGATABLE_EXISTS_REQUEST_BATCH_SIZE = 200; const FIELDS_REQUEST_BATCH_SIZE = 10; +interface FieldData { + fieldName: string; + existsInDocs: boolean; + stats?: { + sampleCount?: number; + count?: number; + cardinality?: number; + }; +} + +export interface Field { + fieldName: string; + type: string; + cardinality: number; +} + +interface Distribution { + percentiles: any[]; + minPercentile: number; + maxPercentile: number; +} + +interface Aggs { + [key: string]: any; +} + +interface Bucket { + doc_count: number; +} + +interface NumericFieldStats { + fieldName: string; + count: number; + min: number; + max: number; + avg: number; + isTopValuesSampled: boolean; + topValues: Bucket[]; + topValuesSampleSize: number; + topValuesSamplerShardSize: number; + median?: number; + distribution?: Distribution; +} + +interface StringFieldStats { + fieldName: string; + isTopValuesSampled: boolean; + topValues: Bucket[]; + topValuesSampleSize: number; + topValuesSamplerShardSize: number; +} + +interface DateFieldStats { + fieldName: string; + count: number; + earliest: number; + latest: number; +} + +interface BooleanFieldStats { + fieldName: string; + count: number; + trueCount: number; + falseCount: number; + [key: string]: number | string; +} + +interface DocumentCountStats { + documentCounts: { + interval: number; + buckets: { [key: string]: number }; + }; +} + +interface FieldExamples { + fieldName: string; + examples: any[]; +} + +type BatchStats = + | NumericFieldStats + | StringFieldStats + | BooleanFieldStats + | DateFieldStats + | DocumentCountStats + | FieldExamples; + export class DataVisualizer { - constructor(callWithRequest) { - this.callWithRequest = callWithRequest; + callAsCurrentUser: ( + endpoint: string, + clientParams: Record, + options?: CallAPIOptions + ) => Promise; + + constructor(client: RequestHandlerContext | (() => any)) { + this.callAsCurrentUser = + typeof client === 'object' ? client.ml!.mlClient.callAsCurrentUser : client; } // Obtains overall stats on the fields in the supplied index pattern, returning an object @@ -28,28 +123,28 @@ export class DataVisualizer { // aggregatable and non-aggregatable fields do or do not exist in documents. // Sampling will be used if supplied samplerShardSize > 0. async getOverallStats( - indexPatternTitle, - query, - aggregatableFields, - nonAggregatableFields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: object, + aggregatableFields: string[], + nonAggregatableFields: string[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const stats = { totalCount: 0, - aggregatableExistsFields: [], - aggregatableNotExistsFields: [], - nonAggregatableExistsFields: [], - nonAggregatableNotExistsFields: [], + aggregatableExistsFields: [] as FieldData[], + aggregatableNotExistsFields: [] as FieldData[], + nonAggregatableExistsFields: [] as FieldData[], + nonAggregatableNotExistsFields: [] as FieldData[], }; // To avoid checking for the existence of too many aggregatable fields in one request, // split the check into multiple batches (max 200 fields per request). - const batches = [[]]; + const batches: string[][] = [[]]; _.each(aggregatableFields, field => { - let lastArray = _.last(batches); + let lastArray: string[] = _.last(batches); if (lastArray.length === AGGREGATABLE_EXISTS_REQUEST_BATCH_SIZE) { lastArray = []; batches.push(lastArray); @@ -89,7 +184,7 @@ export class DataVisualizer { latestMs ); - const fieldData = { + const fieldData: FieldData = { fieldName: field, existsInDocs, stats: {}, @@ -110,19 +205,19 @@ export class DataVisualizer { // returned array depend on the type of the field (keyword, number, date etc). // Sampling will be used if supplied samplerShardSize > 0. async getStatsForFields( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs, - interval, - maxExamples - ) { + indexPatternTitle: string, + query: any, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number, + interval: number, + maxExamples: number + ): Promise { // Batch up fields by type, getting stats for multiple fields at a time. - const batches = []; - const batchedFields = {}; + const batches: Field[][] = []; + const batchedFields: { [key: string]: Field[][] } = {}; _.each(fields, field => { if (field.fieldName === undefined) { // undefined fieldName is used for a document count request. @@ -135,7 +230,7 @@ export class DataVisualizer { if (batchedFields[fieldType] === undefined) { batchedFields[fieldType] = [[]]; } - let lastArray = _.last(batchedFields[fieldType]); + let lastArray: Field[] = _.last(batchedFields[fieldType]); if (lastArray.length === FIELDS_REQUEST_BATCH_SIZE) { lastArray = []; batchedFields[fieldType].push(lastArray); @@ -148,10 +243,10 @@ export class DataVisualizer { batches.push(...lists); }); - let results = []; + let results: BatchStats[] = []; await Promise.all( batches.map(async batch => { - let batchStats = []; + let batchStats: BatchStats[] = []; const first = batch[0]; switch (first.type) { case ML_JOB_FIELD_TYPES.NUMBER: @@ -243,13 +338,13 @@ export class DataVisualizer { } async checkAggregatableFieldsExist( - indexPatternTitle, - query, - aggregatableFields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: any, + aggregatableFields: string[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; @@ -257,7 +352,7 @@ export class DataVisualizer { // Value count aggregation faster way of checking if field exists than using // filter aggregation with exists query. - const aggs = {}; + const aggs: Aggs = {}; aggregatableFields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field, i); aggs[`${safeFieldName}_count`] = { @@ -277,7 +372,7 @@ export class DataVisualizer { aggs: buildSamplerAggregation(aggs, samplerShardSize), }; - const resp = await this.callWithRequest('search', { + const resp = await this.callAsCurrentUser('search', { index, rest_total_hits_as_int: true, size, @@ -287,8 +382,8 @@ export class DataVisualizer { const totalCount = _.get(resp, ['hits', 'total'], 0); const stats = { totalCount, - aggregatableExistsFields: [], - aggregatableNotExistsFields: [], + aggregatableExistsFields: [] as FieldData[], + aggregatableNotExistsFields: [] as FieldData[], }; const aggsPath = getSamplerAggregationsResponsePath(samplerShardSize); @@ -324,12 +419,12 @@ export class DataVisualizer { } async checkNonAggregatableFieldExists( - indexPatternTitle, - query, - field, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: any, + field: string, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; @@ -344,7 +439,7 @@ export class DataVisualizer { }; filterCriteria.push({ exists: { field } }); - const resp = await this.callWithRequest('search', { + const resp = await this.callAsCurrentUser('search', { index, rest_total_hits_as_int: true, size, @@ -354,13 +449,13 @@ export class DataVisualizer { } async getDocumentCountStats( - indexPatternTitle, - query, - timeFieldName, - earliestMs, - latestMs, - interval - ) { + indexPatternTitle: string, + query: any, + timeFieldName: string, + earliestMs: number, + latestMs: number, + interval: number + ): Promise { const index = indexPatternTitle; const size = 0; const filterCriteria = buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query); @@ -371,7 +466,7 @@ export class DataVisualizer { eventRate: { date_histogram: { field: timeFieldName, - interval: interval, + interval, min_doc_count: 1, }, }, @@ -383,36 +478,42 @@ export class DataVisualizer { filter: filterCriteria, }, }, - aggs: aggs, + aggs, }; - const resp = await this.callWithRequest('search', { index, size, body }); + const resp = await this.callAsCurrentUser('search', { + index, + size, + body, + }); - const buckets = {}; - const dataByTimeBucket = _.get(resp, ['aggregations', 'eventRate', 'buckets'], []); + const buckets: { [key: string]: number } = {}; + const dataByTimeBucket: Array<{ key: string; doc_count: number }> = _.get( + resp, + ['aggregations', 'eventRate', 'buckets'], + [] + ); _.each(dataByTimeBucket, dataForTime => { const time = dataForTime.key; buckets[time] = dataForTime.doc_count; }); - const stats = { + return { documentCounts: { interval, buckets, }, }; - - return stats; } async getNumericFieldsStats( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: object, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; @@ -429,7 +530,7 @@ export class DataVisualizer { () => (count += PERCENTILE_SPACING) ); - const aggs = {}; + const aggs: { [key: string]: any } = {}; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); aggs[`${safeFieldName}_field_stats`] = { @@ -443,7 +544,7 @@ export class DataVisualizer { aggs[`${safeFieldName}_percentiles`] = { percentiles: { field: field.fieldName, - percents: percents, + percents, keyed: false, }, }; @@ -483,10 +584,14 @@ export class DataVisualizer { aggs: buildSamplerAggregation(aggs, samplerShardSize), }; - const resp = await this.callWithRequest('search', { index, size, body }); + const resp = await this.callAsCurrentUser('search', { + index, + size, + body, + }); const aggregations = resp.aggregations; const aggsPath = getSamplerAggregationsResponsePath(samplerShardSize); - const batchStats = []; + const batchStats: NumericFieldStats[] = []; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); const docCount = _.get( @@ -499,7 +604,15 @@ export class DataVisualizer { [...aggsPath, `${safeFieldName}_field_stats`, 'actual_stats'], {} ); - const stats = { + + const topAggsPath = [...aggsPath, `${safeFieldName}_top`]; + if (samplerShardSize < 1 && field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD) { + topAggsPath.push('top'); + } + + const topValues: Bucket[] = _.get(aggregations, [...topAggsPath, 'buckets'], []); + + const stats: NumericFieldStats = { fieldName: field.fieldName, count: docCount, min: _.get(fieldStatsResp, 'min', 0), @@ -507,31 +620,27 @@ export class DataVisualizer { avg: _.get(fieldStatsResp, 'avg', 0), isTopValuesSampled: field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD || samplerShardSize > 0, + topValues, + topValuesSampleSize: topValues.reduce( + (acc, curr) => acc + curr.doc_count, + _.get(aggregations, [...topAggsPath, 'sum_other_doc_count'], 0) + ), + topValuesSamplerShardSize: + field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD + ? SAMPLER_TOP_TERMS_SHARD_SIZE + : samplerShardSize, }; - const topAggsPath = [...aggsPath, `${safeFieldName}_top`]; - if (samplerShardSize < 1 && field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD) { - topAggsPath.push('top'); - } - - stats.topValues = _.get(aggregations, [...topAggsPath, 'buckets'], []); - stats.topValuesSampleSize = _.get(aggregations, [...topAggsPath, 'sum_other_doc_count'], 0); - stats.topValuesSamplerShardSize = - field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD - ? SAMPLER_TOP_TERMS_SHARD_SIZE - : samplerShardSize; - stats.topValues.forEach(bucket => { - stats.topValuesSampleSize += bucket.doc_count; - }); - if (stats.count > 0) { const percentiles = _.get( aggregations, [...aggsPath, `${safeFieldName}_percentiles`, 'values'], [] ); - const medianPercentile = _.find(percentiles, { key: 50 }); - stats.median = medianPercentile !== undefined ? medianPercentile.value : 0; + const medianPercentile: { value: number; key: number } | undefined = _.find(percentiles, { + key: 50, + }); + stats.median = medianPercentile !== undefined ? medianPercentile!.value : 0; stats.distribution = this.processDistributionData( percentiles, PERCENTILE_SPACING, @@ -546,19 +655,19 @@ export class DataVisualizer { } async getStringFieldsStats( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: object, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; const filterCriteria = buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query); - const aggs = {}; + const aggs: Aggs = {}; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); const top = { @@ -596,32 +705,38 @@ export class DataVisualizer { aggs: buildSamplerAggregation(aggs, samplerShardSize), }; - const resp = await this.callWithRequest('search', { index, size, body }); + const resp = await this.callAsCurrentUser('search', { + index, + size, + body, + }); const aggregations = resp.aggregations; const aggsPath = getSamplerAggregationsResponsePath(samplerShardSize); - const batchStats = []; + const batchStats: StringFieldStats[] = []; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); - const stats = { - fieldName: field.fieldName, - isTopValuesSampled: - field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD || samplerShardSize > 0, - }; const topAggsPath = [...aggsPath, `${safeFieldName}_top`]; if (samplerShardSize < 1 && field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD) { topAggsPath.push('top'); } - stats.topValues = _.get(aggregations, [...topAggsPath, 'buckets'], []); - stats.topValuesSampleSize = _.get(aggregations, [...topAggsPath, 'sum_other_doc_count'], 0); - stats.topValuesSamplerShardSize = - field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD - ? SAMPLER_TOP_TERMS_SHARD_SIZE - : samplerShardSize; - stats.topValues.forEach(bucket => { - stats.topValuesSampleSize += bucket.doc_count; - }); + const topValues: Bucket[] = _.get(aggregations, [...topAggsPath, 'buckets'], []); + + const stats = { + fieldName: field.fieldName, + isTopValuesSampled: + field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD || samplerShardSize > 0, + topValues, + topValuesSampleSize: topValues.reduce( + (acc, curr) => acc + curr.doc_count, + _.get(aggregations, [...topAggsPath, 'sum_other_doc_count'], 0) + ), + topValuesSamplerShardSize: + field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD + ? SAMPLER_TOP_TERMS_SHARD_SIZE + : samplerShardSize, + }; batchStats.push(stats); }); @@ -630,19 +745,19 @@ export class DataVisualizer { } async getDateFieldsStats( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: object, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; const filterCriteria = buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query); - const aggs = {}; + const aggs: Aggs = {}; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); aggs[`${safeFieldName}_field_stats`] = { @@ -664,10 +779,14 @@ export class DataVisualizer { aggs: buildSamplerAggregation(aggs, samplerShardSize), }; - const resp = await this.callWithRequest('search', { index, size, body }); + const resp = await this.callAsCurrentUser('search', { + index, + size, + body, + }); const aggregations = resp.aggregations; const aggsPath = getSamplerAggregationsResponsePath(samplerShardSize); - const batchStats = []; + const batchStats: DateFieldStats[] = []; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); const docCount = _.get( @@ -692,19 +811,19 @@ export class DataVisualizer { } async getBooleanFieldsStats( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs + indexPatternTitle: string, + query: object, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number ) { const index = indexPatternTitle; const size = 0; const filterCriteria = buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query); - const aggs = {}; + const aggs: Aggs = {}; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); aggs[`${safeFieldName}_value_count`] = { @@ -727,20 +846,24 @@ export class DataVisualizer { aggs: buildSamplerAggregation(aggs, samplerShardSize), }; - const resp = await this.callWithRequest('search', { index, size, body }); + const resp = await this.callAsCurrentUser('search', { + index, + size, + body, + }); const aggregations = resp.aggregations; const aggsPath = getSamplerAggregationsResponsePath(samplerShardSize); - const batchStats = []; + const batchStats: BooleanFieldStats[] = []; fields.forEach((field, i) => { const safeFieldName = getSafeAggregationName(field.fieldName, i); - const stats = { + const stats: BooleanFieldStats = { fieldName: field.fieldName, count: _.get(aggregations, [...aggsPath, `${safeFieldName}_value_count`, 'doc_count'], 0), trueCount: 0, falseCount: 0, }; - const valueBuckets = _.get( + const valueBuckets: Array<{ [key: string]: number }> = _.get( aggregations, [...aggsPath, `${safeFieldName}_values`, 'buckets'], [] @@ -756,14 +879,14 @@ export class DataVisualizer { } async getFieldExamples( - indexPatternTitle, - query, - field, - timeFieldName, - earliestMs, - latestMs, - maxExamples - ) { + indexPatternTitle: string, + query: any, + field: string, + timeFieldName: string, + earliestMs: number, + latestMs: number, + maxExamples: number + ): Promise { const index = indexPatternTitle; // Request at least 100 docs so that we have a chance of obtaining @@ -785,7 +908,7 @@ export class DataVisualizer { }, }; - const resp = await this.callWithRequest('search', { + const resp = await this.callAsCurrentUser('search', { index, rest_total_hits_as_int: true, size, @@ -793,7 +916,7 @@ export class DataVisualizer { }); const stats = { fieldName: field, - examples: [], + examples: [] as any[], }; if (resp.hits.total !== 0) { const hits = resp.hits.hits; @@ -803,7 +926,7 @@ export class DataVisualizer { // field is populated using copy_to in the index mapping), // there will be no example to add. // Use lodash _.get() to support field names containing dots. - const example = _.get(hits[i]._source, field); + const example: any = _.get(hits[i]._source, field); if (example !== undefined && stats.examples.indexOf(example) === -1) { stats.examples.push(example); if (stats.examples.length === maxExamples) { @@ -816,13 +939,17 @@ export class DataVisualizer { return stats; } - processDistributionData(percentiles, percentileSpacing, minValue) { - const distribution = { percentiles: [], minPercentile: 0, maxPercentile: 100 }; + processDistributionData( + percentiles: Array<{ value: number }>, + percentileSpacing: number, + minValue: number + ): Distribution { + const distribution: Distribution = { percentiles: [], minPercentile: 0, maxPercentile: 100 }; if (percentiles.length === 0) { return distribution; } - let percentileBuckets = []; + let percentileBuckets: Array<{ value: number }> = []; let lowerBound = minValue; if (lowerBound >= 0) { // By default return results for 0 - 90% percentiles. @@ -853,7 +980,7 @@ export class DataVisualizer { // Add in 0-5 and 95-100% if they don't add more // than 25% to the value range at either end. - const lastValue = _.last(percentileBuckets).value; + const lastValue: number = _.last(percentileBuckets).value; const maxDiff = 0.25 * (lastValue - lowerBound); if (lowerBound - dataMin < maxDiff) { percentileBuckets.splice(0, 0, percentiles[0]); diff --git a/x-pack/legacy/plugins/ml/server/models/data_visualizer/index.js b/x-pack/legacy/plugins/ml/server/models/data_visualizer/index.ts similarity index 100% rename from x-pack/legacy/plugins/ml/server/models/data_visualizer/index.js rename to x-pack/legacy/plugins/ml/server/models/data_visualizer/index.ts diff --git a/x-pack/legacy/plugins/ml/server/new_platform/data_visualizer_schema.ts b/x-pack/legacy/plugins/ml/server/new_platform/data_visualizer_schema.ts new file mode 100644 index 00000000000000..0c10b2d5b4f16d --- /dev/null +++ b/x-pack/legacy/plugins/ml/server/new_platform/data_visualizer_schema.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { schema } from '@kbn/config-schema'; + +export const dataVisualizerFieldStatsSchema = { + params: schema.object({ + indexPatternTitle: schema.string(), + }), + body: schema.object({ + query: schema.any(), + fields: schema.arrayOf(schema.any()), + samplerShardSize: schema.number(), + timeFieldName: schema.maybe(schema.string()), + earliest: schema.maybe(schema.number()), + latest: schema.maybe(schema.number()), + interval: schema.maybe(schema.string()), + maxExamples: schema.number(), + }), +}; + +export const dataVisualizerOverallStatsSchema = { + params: schema.object({ + indexPatternTitle: schema.string(), + }), + body: schema.object({ + query: schema.any(), + aggregatableFields: schema.arrayOf(schema.string()), + nonAggregatableFields: schema.arrayOf(schema.string()), + samplerShardSize: schema.number(), + timeFieldName: schema.maybe(schema.string()), + earliest: schema.maybe(schema.number()), + latest: schema.maybe(schema.number()), + }), +}; diff --git a/x-pack/legacy/plugins/ml/server/routes/apidoc.json b/x-pack/legacy/plugins/ml/server/routes/apidoc.json index 8292e946cd344d..4a3b93b9b866f8 100644 --- a/x-pack/legacy/plugins/ml/server/routes/apidoc.json +++ b/x-pack/legacy/plugins/ml/server/routes/apidoc.json @@ -16,6 +16,9 @@ "DeleteDataFrameAnalytics", "StartDataFrameAnalyticsJob", "StopsDataFrameAnalyticsJob", - "GetDataFrameAnalyticsMessages" + "GetDataFrameAnalyticsMessages", + "DataVisualizer", + "GetOverallStats", + "GetStatsForFields" ] } diff --git a/x-pack/legacy/plugins/ml/server/routes/data_visualizer.js b/x-pack/legacy/plugins/ml/server/routes/data_visualizer.js deleted file mode 100644 index fe11f7f4fd5b27..00000000000000 --- a/x-pack/legacy/plugins/ml/server/routes/data_visualizer.js +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { callWithRequestFactory } from '../client/call_with_request_factory'; -import { wrapError } from '../client/errors'; -import { DataVisualizer } from '../models/data_visualizer'; - -function getOverallStats( - callWithRequest, - indexPatternTitle, - query, - aggregatableFields, - nonAggregatableFields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs -) { - const dv = new DataVisualizer(callWithRequest); - return dv.getOverallStats( - indexPatternTitle, - query, - aggregatableFields, - nonAggregatableFields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs - ); -} - -function getStatsForFields( - callWithRequest, - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs, - interval, - maxExamples -) { - const dv = new DataVisualizer(callWithRequest); - return dv.getStatsForFields( - indexPatternTitle, - query, - fields, - samplerShardSize, - timeFieldName, - earliestMs, - latestMs, - interval, - maxExamples - ); -} - -export function dataVisualizerRoutes({ commonRouteConfig, elasticsearchPlugin, route }) { - route({ - method: 'POST', - path: '/api/ml/data_visualizer/get_field_stats/{indexPatternTitle}', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const indexPatternTitle = request.params.indexPatternTitle; - const payload = request.payload; - return getStatsForFields( - callWithRequest, - indexPatternTitle, - payload.query, - payload.fields, - payload.samplerShardSize, - payload.timeFieldName, - payload.earliest, - payload.latest, - payload.interval, - payload.maxExamples - ).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/data_visualizer/get_overall_stats/{indexPatternTitle}', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const indexPatternTitle = request.params.indexPatternTitle; - const payload = request.payload; - return getOverallStats( - callWithRequest, - indexPatternTitle, - payload.query, - payload.aggregatableFields, - payload.nonAggregatableFields, - payload.samplerShardSize, - payload.timeFieldName, - payload.earliest, - payload.latest - ).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); -} diff --git a/x-pack/legacy/plugins/ml/server/routes/data_visualizer.ts b/x-pack/legacy/plugins/ml/server/routes/data_visualizer.ts new file mode 100644 index 00000000000000..235fc26d78441f --- /dev/null +++ b/x-pack/legacy/plugins/ml/server/routes/data_visualizer.ts @@ -0,0 +1,173 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { RequestHandlerContext } from 'kibana/server'; +import { wrapError } from '../client/error_wrapper'; +import { DataVisualizer } from '../models/data_visualizer'; +import { Field } from '../models/data_visualizer/data_visualizer'; +import { + dataVisualizerFieldStatsSchema, + dataVisualizerOverallStatsSchema, +} from '../new_platform/data_visualizer_schema'; +import { licensePreRoutingFactory } from '../new_platform/licence_check_pre_routing_factory'; +import { RouteInitialization } from '../new_platform/plugin'; + +function getOverallStats( + context: RequestHandlerContext, + indexPatternTitle: string, + query: object, + aggregatableFields: string[], + nonAggregatableFields: string[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number +) { + const dv = new DataVisualizer(context); + return dv.getOverallStats( + indexPatternTitle, + query, + aggregatableFields, + nonAggregatableFields, + samplerShardSize, + timeFieldName, + earliestMs, + latestMs + ); +} + +function getStatsForFields( + context: RequestHandlerContext, + indexPatternTitle: string, + query: any, + fields: Field[], + samplerShardSize: number, + timeFieldName: string, + earliestMs: number, + latestMs: number, + interval: number, + maxExamples: number +) { + const dv = new DataVisualizer(context); + return dv.getStatsForFields( + indexPatternTitle, + query, + fields, + samplerShardSize, + timeFieldName, + earliestMs, + latestMs, + interval, + maxExamples + ); +} + +/** + * Routes for the index data visualizer. + */ +export function dataVisualizerRoutes({ xpackMainPlugin, router }: RouteInitialization) { + /** + * @apiGroup DataVisualizer + * + * @api {post} /api/ml/data_visualizer/get_field_stats/:indexPatternTitle Get stats for fields + * @apiName GetStatsForFields + * @apiDescription Returns fields stats of the index pattern. + * + * @apiParam {String} indexPatternTitle Index pattern title. + */ + router.post( + { + path: '/api/ml/data_visualizer/get_field_stats/{indexPatternTitle}', + validate: dataVisualizerFieldStatsSchema, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { + params: { indexPatternTitle }, + body: { + query, + fields, + samplerShardSize, + timeFieldName, + earliest, + latest, + interval, + maxExamples, + }, + } = request; + + const results = await getStatsForFields( + context, + indexPatternTitle, + query, + fields, + samplerShardSize, + timeFieldName, + earliest, + latest, + interval, + maxExamples + ); + + return response.ok({ + body: results, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup DataVisualizer + * + * @api {post} /api/ml/data_visualizer/get_overall_stats/:indexPatternTitle Get overall stats + * @apiName GetOverallStats + * @apiDescription Returns overall stats of the index pattern. + * + * @apiParam {String} indexPatternTitle Index pattern title. + */ + router.post( + { + path: '/api/ml/data_visualizer/get_overall_stats/{indexPatternTitle}', + validate: dataVisualizerOverallStatsSchema, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { + params: { indexPatternTitle }, + body: { + query, + aggregatableFields, + nonAggregatableFields, + samplerShardSize, + timeFieldName, + earliest, + latest, + }, + } = request; + + const results = await getOverallStats( + context, + indexPatternTitle, + query, + aggregatableFields, + nonAggregatableFields, + samplerShardSize, + timeFieldName, + earliest, + latest + ); + + return response.ok({ + body: results, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); +} From 2814bf6e95c2a5e77a3499f430f66ffafa3c47a2 Mon Sep 17 00:00:00 2001 From: Vadim Dalecky Date: Wed, 5 Feb 2020 07:54:43 -0800 Subject: [PATCH 12/33] UiComponent (#56555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 🎸 add UiComponent and adapters * feat: 🎸 improve UiComponent * feat: 🎸 add MenuItem to IAction * test: 💍 add uiToReactComponent() tests * test: 💍 add reactToUiComponent() tests * feat: 🎸 allow specifying wrapper tag in uiToReactComponent() * style: 💄 format according to ESLint * docs: ✏️ improve JSDocs Co-authored-by: Elastic Machine Co-authored-by: Matthew Kime --- .../kibana_react/public/adapters/index.ts | 21 +++ .../adapters/react_to_ui_component.test.tsx | 86 ++++++++++ .../public/adapters/react_to_ui_component.ts | 49 ++++++ .../adapters/ui_to_react_component.test.tsx | 149 ++++++++++++++++++ .../public/adapters/ui_to_react_component.ts | 48 ++++++ src/plugins/kibana_react/public/index.ts | 1 + src/plugins/kibana_utils/common/index.ts | 1 + src/plugins/kibana_utils/common/ui/index.ts | 20 +++ .../kibana_utils/common/ui/ui_component.ts | 51 ++++++ src/plugins/kibana_utils/public/index.ts | 11 +- .../ui_actions/public/actions/i_action.ts | 8 + ...s.ts => build_eui_context_menu_panels.tsx} | 9 +- .../tests/test_samples/hello_world_action.tsx | 19 ++- 13 files changed, 469 insertions(+), 4 deletions(-) create mode 100644 src/plugins/kibana_react/public/adapters/index.ts create mode 100644 src/plugins/kibana_react/public/adapters/react_to_ui_component.test.tsx create mode 100644 src/plugins/kibana_react/public/adapters/react_to_ui_component.ts create mode 100644 src/plugins/kibana_react/public/adapters/ui_to_react_component.test.tsx create mode 100644 src/plugins/kibana_react/public/adapters/ui_to_react_component.ts create mode 100644 src/plugins/kibana_utils/common/ui/index.ts create mode 100644 src/plugins/kibana_utils/common/ui/ui_component.ts rename src/plugins/ui_actions/public/context_menu/{build_eui_context_menu_panels.ts => build_eui_context_menu_panels.tsx} (89%) diff --git a/src/plugins/kibana_react/public/adapters/index.ts b/src/plugins/kibana_react/public/adapters/index.ts new file mode 100644 index 00000000000000..99129670227934 --- /dev/null +++ b/src/plugins/kibana_react/public/adapters/index.ts @@ -0,0 +1,21 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './react_to_ui_component'; +export * from './ui_to_react_component'; diff --git a/src/plugins/kibana_react/public/adapters/react_to_ui_component.test.tsx b/src/plugins/kibana_react/public/adapters/react_to_ui_component.test.tsx new file mode 100644 index 00000000000000..14fe02c6bf652d --- /dev/null +++ b/src/plugins/kibana_react/public/adapters/react_to_ui_component.test.tsx @@ -0,0 +1,86 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import * as React from 'react'; +import { reactToUiComponent } from './react_to_ui_component'; + +const ReactComp: React.FC<{ cnt?: number }> = ({ cnt = 0 }) => { + return
cnt: {cnt}
; +}; + +describe('reactToUiComponent', () => { + test('can render UI component', () => { + const UiComp = reactToUiComponent(ReactComp); + const div = document.createElement('div'); + + const instance = UiComp(); + instance.render(div, {}); + + expect(div.innerHTML).toBe('
cnt: 0
'); + }); + + test('can pass in props', async () => { + const UiComp = reactToUiComponent(ReactComp); + const div = document.createElement('div'); + + const instance = UiComp(); + instance.render(div, { cnt: 5 }); + + expect(div.innerHTML).toBe('
cnt: 5
'); + }); + + test('can re-render multiple times', async () => { + const UiComp = reactToUiComponent(ReactComp); + const div = document.createElement('div'); + const instance = UiComp(); + + instance.render(div, { cnt: 1 }); + + expect(div.innerHTML).toBe('
cnt: 1
'); + + instance.render(div, { cnt: 2 }); + + expect(div.innerHTML).toBe('
cnt: 2
'); + }); + + test('renders React component only when .render() method is called', () => { + let renderCnt = 0; + const MyReactComp: React.FC<{ cnt?: number }> = ({ cnt = 0 }) => { + renderCnt++; + return
cnt: {cnt}
; + }; + const UiComp = reactToUiComponent(MyReactComp); + const instance = UiComp(); + const div = document.createElement('div'); + + expect(renderCnt).toBe(0); + + instance.render(div, { cnt: 1 }); + + expect(renderCnt).toBe(1); + + instance.render(div, { cnt: 2 }); + + expect(renderCnt).toBe(2); + + instance.render(div, { cnt: 3 }); + + expect(renderCnt).toBe(3); + }); +}); diff --git a/src/plugins/kibana_react/public/adapters/react_to_ui_component.ts b/src/plugins/kibana_react/public/adapters/react_to_ui_component.ts new file mode 100644 index 00000000000000..b4007b30cf8cab --- /dev/null +++ b/src/plugins/kibana_react/public/adapters/react_to_ui_component.ts @@ -0,0 +1,49 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { ComponentType, createElement as h } from 'react'; +import { render as renderReact, unmountComponentAtNode } from 'react-dom'; +import { UiComponent, UiComponentInstance } from '../../../kibana_utils/common'; + +/** + * Transform a React component into a `UiComponent`. + * + * @param ReactComp A React component. + */ +export const reactToUiComponent = ( + ReactComp: ComponentType +): UiComponent => () => { + let lastEl: HTMLElement | undefined; + + const render: UiComponentInstance['render'] = (el, props) => { + lastEl = el; + renderReact(h(ReactComp, props), el); + }; + + const unmount: UiComponentInstance['unmount'] = () => { + if (lastEl) unmountComponentAtNode(lastEl); + }; + + const comp: UiComponentInstance = { + render, + unmount, + }; + + return comp; +}; diff --git a/src/plugins/kibana_react/public/adapters/ui_to_react_component.test.tsx b/src/plugins/kibana_react/public/adapters/ui_to_react_component.test.tsx new file mode 100644 index 00000000000000..939d372b9997f7 --- /dev/null +++ b/src/plugins/kibana_react/public/adapters/ui_to_react_component.test.tsx @@ -0,0 +1,149 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { UiComponent } from '../../../kibana_utils/common'; +import { uiToReactComponent } from './ui_to_react_component'; +import { reactToUiComponent } from './react_to_ui_component'; + +const UiComp: UiComponent<{ cnt?: number }> = () => ({ + render: (el, { cnt = 0 }) => { + el.innerHTML = `cnt: ${cnt}`; + }, +}); + +describe('uiToReactComponent', () => { + test('can render React component', () => { + const ReactComp = uiToReactComponent(UiComp); + const div = document.createElement('div'); + + ReactDOM.render(, div); + + expect(div.innerHTML).toBe('
cnt: 0
'); + }); + + test('can pass in props', async () => { + const ReactComp = uiToReactComponent(UiComp); + const div = document.createElement('div'); + + ReactDOM.render(, div); + + expect(div.innerHTML).toBe('
cnt: 5
'); + }); + + test('re-renders when React component is re-rendered', async () => { + const ReactComp = uiToReactComponent(UiComp); + const div = document.createElement('div'); + + ReactDOM.render(, div); + + expect(div.innerHTML).toBe('
cnt: 1
'); + + ReactDOM.render(, div); + + expect(div.innerHTML).toBe('
cnt: 2
'); + }); + + test('does not crash if .unmount() not provided', () => { + const UiComp2: UiComponent<{ cnt?: number }> = () => ({ + render: (el, { cnt = 0 }) => { + el.innerHTML = `cnt: ${cnt}`; + }, + }); + const ReactComp = uiToReactComponent(UiComp2); + const div = document.createElement('div'); + + ReactDOM.render(, div); + ReactDOM.unmountComponentAtNode(div); + + expect(div.innerHTML).toBe(''); + }); + + test('calls .unmount() method once when component un-mounts', () => { + const unmount = jest.fn(); + const UiComp2: UiComponent<{ cnt?: number }> = () => ({ + render: (el, { cnt = 0 }) => { + el.innerHTML = `cnt: ${cnt}`; + }, + unmount, + }); + const ReactComp = uiToReactComponent(UiComp2); + const div = document.createElement('div'); + + expect(unmount).toHaveBeenCalledTimes(0); + + ReactDOM.render(, div); + + expect(unmount).toHaveBeenCalledTimes(0); + + ReactDOM.unmountComponentAtNode(div); + + expect(unmount).toHaveBeenCalledTimes(1); + }); + + test('calls .render() method only once when components mounts, and once on every re-render', () => { + const render = jest.fn((el, { cnt = 0 }) => { + el.innerHTML = `cnt: ${cnt}`; + }); + const UiComp2: UiComponent<{ cnt?: number }> = () => ({ + render, + }); + const ReactComp = uiToReactComponent(UiComp2); + const div = document.createElement('div'); + + expect(render).toHaveBeenCalledTimes(0); + + ReactDOM.render(, div); + + expect(render).toHaveBeenCalledTimes(1); + + ReactDOM.render(, div); + + expect(render).toHaveBeenCalledTimes(2); + + ReactDOM.render(, div); + + expect(render).toHaveBeenCalledTimes(3); + }); + + test('can specify wrapper element', async () => { + const ReactComp = uiToReactComponent(UiComp, 'span'); + const div = document.createElement('div'); + + ReactDOM.render(, div); + + expect(div.innerHTML).toBe('cnt: 5'); + }); +}); + +test('can adapt component many times', () => { + const ReactComp = uiToReactComponent( + reactToUiComponent(uiToReactComponent(reactToUiComponent(uiToReactComponent(UiComp)))) + ); + const div = document.createElement('div'); + + ReactDOM.render(, div); + + expect(div.textContent).toBe('cnt: 0'); + + ReactDOM.render(, div); + + expect(div.textContent).toBe('cnt: 123'); +}); diff --git a/src/plugins/kibana_react/public/adapters/ui_to_react_component.ts b/src/plugins/kibana_react/public/adapters/ui_to_react_component.ts new file mode 100644 index 00000000000000..9b34880cf4fe3a --- /dev/null +++ b/src/plugins/kibana_react/public/adapters/ui_to_react_component.ts @@ -0,0 +1,48 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { FC, createElement as h, useRef, useLayoutEffect, useMemo } from 'react'; +import { UiComponent, UiComponentInstance } from '../../../kibana_utils/common'; + +/** + * Transforms `UiComponent` into a React component. + */ +export const uiToReactComponent = ( + Comp: UiComponent, + as: string = 'div' +): FC => props => { + const ref = useRef(); + const comp = useMemo>(() => Comp(), [Comp]); + + useLayoutEffect(() => { + if (!ref.current) return; + comp.render(ref.current, props); + }); + + useLayoutEffect(() => { + if (!comp.unmount) return; + return () => { + if (comp.unmount) comp.unmount(); + }; + }, [comp]); + + return h(as, { + ref, + }); +}; diff --git a/src/plugins/kibana_react/public/index.ts b/src/plugins/kibana_react/public/index.ts index 81f2e694e8e5b5..e1f90b9c601993 100644 --- a/src/plugins/kibana_react/public/index.ts +++ b/src/plugins/kibana_react/public/index.ts @@ -26,5 +26,6 @@ export * from './ui_settings'; export * from './field_icon'; export * from './table_list_view'; export * from './split_panel'; +export { reactToUiComponent, uiToReactComponent } from './adapters'; export { useUrlTracker } from './use_url_tracker'; export { toMountPoint } from './util'; diff --git a/src/plugins/kibana_utils/common/index.ts b/src/plugins/kibana_utils/common/index.ts index 444c10194a8e3e..fb608a0db1ac2c 100644 --- a/src/plugins/kibana_utils/common/index.ts +++ b/src/plugins/kibana_utils/common/index.ts @@ -19,6 +19,7 @@ export * from './defer'; export * from './of'; +export * from './ui'; export * from './state_containers'; export { createGetterSetter, Get, Set } from './create_getter_setter'; export { distinctUntilChangedWithInitialValue } from './distinct_until_changed_with_initial_value'; diff --git a/src/plugins/kibana_utils/common/ui/index.ts b/src/plugins/kibana_utils/common/ui/index.ts new file mode 100644 index 00000000000000..0cfb2f13c8a5d2 --- /dev/null +++ b/src/plugins/kibana_utils/common/ui/index.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './ui_component'; diff --git a/src/plugins/kibana_utils/common/ui/ui_component.ts b/src/plugins/kibana_utils/common/ui/ui_component.ts new file mode 100644 index 00000000000000..6984ab9b78e5fa --- /dev/null +++ b/src/plugins/kibana_utils/common/ui/ui_component.ts @@ -0,0 +1,51 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * In many places in Kibana we want to be agnostic to frontend view library, + * i.e. instead of exposing React-specific APIs we want to expose APIs that + * are orthogonal to any rendering library. This interface represents such UI + * components. UI component receives a DOM element and `props` through `render()` + * method, the `render()` method can be called many times. + * + * Although Kibana aims to be library agnostic, Kibana itself is written in React, + * thus here we define `UiComponent` which is an abstract unit of UI that can be + * implemented in any framework, but it maps easily to React components, i.e. + * `UiComponent` is like `React.ComponentType`. + */ +export type UiComponent = () => UiComponentInstance; + +/** + * Instance of an UiComponent, corresponds to React virtual DOM node. + */ +export interface UiComponentInstance { + /** + * Call this method on initial render and on all subsequent updates. + * + * @param el DOM element. + * @param props Component props, same as props in React. + */ + render(el: HTMLElement, props: Props): void; + + /** + * Un-mount UI component. Call it to remove view from DOM. Implementers of this + * interface should clear DOM from this UI component and destroy any internal state. + */ + unmount?(): void; +} diff --git a/src/plugins/kibana_utils/public/index.ts b/src/plugins/kibana_utils/public/index.ts index 5b6d304e14c2e0..9ab7c8cf3f2b79 100644 --- a/src/plugins/kibana_utils/public/index.ts +++ b/src/plugins/kibana_utils/public/index.ts @@ -17,7 +17,16 @@ * under the License. */ -export { defer, Defer, of, createGetterSetter, Get, Set } from '../common'; +export { + defer, + Defer, + of, + createGetterSetter, + Get, + Set, + UiComponent, + UiComponentInstance, +} from '../common'; export * from './core'; export * from './errors'; export * from './field_mapping'; diff --git a/src/plugins/ui_actions/public/actions/i_action.ts b/src/plugins/ui_actions/public/actions/i_action.ts index 20fdda9033f6af..544b66b26c9741 100644 --- a/src/plugins/ui_actions/public/actions/i_action.ts +++ b/src/plugins/ui_actions/public/actions/i_action.ts @@ -17,6 +17,8 @@ * under the License. */ +import { UiComponent } from 'src/plugins/kibana_utils/common'; + export interface IAction { /** * Determined the order when there is more than one action matched to a trigger. @@ -39,6 +41,12 @@ export interface IAction { */ getDisplayName(context: ActionContext): string; + /** + * `UiComponent` to render when displaying this action as a context menu item. + * If not provided, `getDisplayName` will be used instead. + */ + MenuItem?: UiComponent<{ context: ActionContext }>; + /** * Returns a promise that resolves to true if this action is compatible given the context, * otherwise resolves to false. diff --git a/src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.ts b/src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.tsx similarity index 89% rename from src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.ts rename to src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.tsx index 8de447f5acf9cd..3b76ff66f3aea1 100644 --- a/src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.ts +++ b/src/plugins/ui_actions/public/context_menu/build_eui_context_menu_panels.tsx @@ -17,9 +17,11 @@ * under the License. */ +import * as React from 'react'; import { EuiContextMenuPanelDescriptor, EuiContextMenuPanelItemDescriptor } from '@elastic/eui'; import _ from 'lodash'; import { i18n } from '@kbn/i18n'; +import { uiToReactComponent } from '../../../kibana_react/public'; import { IAction } from '../actions'; /** @@ -98,7 +100,12 @@ function convertPanelActionToContextMenuItem({ closeMenu: () => void; }): EuiContextMenuPanelItemDescriptor { const menuPanelItem: EuiContextMenuPanelItemDescriptor = { - name: action.getDisplayName(actionContext), + name: action.MenuItem + ? // Cast to `any` because `name` typed to string. + (React.createElement(uiToReactComponent(action.MenuItem), { + context: actionContext, + }) as any) + : action.getDisplayName(actionContext), icon: action.getIconType(actionContext), panel: _.get(action, 'childContextMenuPanel.id'), 'data-test-subj': `embeddablePanelAction-${action.id}`, diff --git a/src/plugins/ui_actions/public/tests/test_samples/hello_world_action.tsx b/src/plugins/ui_actions/public/tests/test_samples/hello_world_action.tsx index 9e3d206c9a6dc8..4e18b8ec27fb91 100644 --- a/src/plugins/ui_actions/public/tests/test_samples/hello_world_action.tsx +++ b/src/plugins/ui_actions/public/tests/test_samples/hello_world_action.tsx @@ -18,16 +18,31 @@ */ import React from 'react'; -import { EuiFlyout } from '@elastic/eui'; +import { EuiFlyout, EuiFlexGroup, EuiFlexItem, EuiBadge } from '@elastic/eui'; import { CoreStart } from 'src/core/public'; import { createAction, IAction } from '../../actions'; -import { toMountPoint } from '../../../../kibana_react/public'; +import { toMountPoint, reactToUiComponent } from '../../../../kibana_react/public'; + +const ReactMenuItem: React.FC = () => { + return ( + + Hello world! + + {'secret'} + + + ); +}; + +const UiMenuItem = reactToUiComponent(ReactMenuItem); export const HELLO_WORLD_ACTION_ID = 'HELLO_WORLD_ACTION_ID'; export function createHelloWorldAction(overlays: CoreStart['overlays']): IAction { return createAction({ type: HELLO_WORLD_ACTION_ID, + getIconType: () => 'lock', + MenuItem: UiMenuItem, execute: async () => { const flyoutSession = overlays.openFlyout( toMountPoint( From 5884c5ccf75e8894207584b5916e2831fa70ab0b Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Wed, 5 Feb 2020 18:59:31 +0300 Subject: [PATCH 13/33] Rollup index pattern error: must match one rollup index (#56732) Closes: #32765 Co-authored-by: Elastic Machine --- .../rollup_index_pattern_creation_config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js b/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js index 82a4c5a888594e..f0eb21a219442f 100644 --- a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js +++ b/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js @@ -56,7 +56,6 @@ export class RollupIndexPatternCreationConfig extends IndexPatternCreationConfig this.rollupJobs = []; this.rollupIndicesCapabilities = {}; this.rollupIndices = []; - this.settingUp = this.setRollupIndices(); } async setRollupIndices() { @@ -77,7 +76,7 @@ export class RollupIndexPatternCreationConfig extends IndexPatternCreationConfig } async getIndexPatternCreationOption(urlHandler) { - await this.settingUp; + await this.setRollupIndices(); return this.rollupIndices && this.rollupIndices.length ? { text: rollupIndexPatternButtonText, From 152eb9f7a28b4b87468ac5c541d34ba0723c4161 Mon Sep 17 00:00:00 2001 From: Ben Skelker <54019610+benskelker@users.noreply.github.com> Date: Wed, 5 Feb 2020 18:05:30 +0200 Subject: [PATCH 14/33] [Docs][SIEM] 7.6 updates (#56844) * adds detections description * 7.6 updated and screenshots --- docs/siem/images/detections-ui.png | Bin 0 -> 310344 bytes docs/siem/images/hosts-ui.png | Bin 154026 -> 419585 bytes docs/siem/images/network-ui.png | Bin 415975 -> 727366 bytes docs/siem/images/overview-ui.png | Bin 112076 -> 512997 bytes docs/siem/siem-ui.asciidoc | 17 +++++++++++++++++ 5 files changed, 17 insertions(+) create mode 100644 docs/siem/images/detections-ui.png diff --git a/docs/siem/images/detections-ui.png b/docs/siem/images/detections-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..3139ffea0767d85aeb0a41d640cda1f24dc1d3c3 GIT binary patch literal 310344 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%0AZ=y-wqDq1n9i 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

7ua$lDmFaNO@j(r&S>65)iKf(f$ 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¤J5K0>5U#rxknQMPegCy!cv^$);TT7M$(E- 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≶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

lkXYv*l3k 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

5DrAKajcubxSu)7aW4hS)RZ!REZv4zoEo5grP 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

D?J6(&Z5PY(e#r# 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 diff --git a/docs/siem/images/network-ui.png b/docs/siem/images/network-ui.png index 406ac854cd0a2595addffeb725594a2d183aef5e..de8ce89273a022d834a84ea001ffa2722675bfe1 100644 GIT binary patch literal 727366 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]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

bZhBU1KXM##HzC_ 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 YHb3m3uUY)`K>~ght<8 literal 415975 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%0D}-1*ybCM+d|t5t`f%cR!7c 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%0AljY=dc4ua~mKX#{1qK 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

EoYy4R3~SOAnhb6k4byWj5&fp~*hiTnus-rq;Y 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

C+|2POjucZ}hG+<5pow0>WW)*$bqka$ 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 +f#?rR9Nw48aJUoer0~!yhG5+ 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≥O7Xn5U<2T`qv{XX45NHuf7b2zj~Flr(nS8AvuW` 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

P%FDV2FbhU+HliRPe!Eb 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 +rzLHZYR}H^$ zokatCeVB`~SQlRC_Y$!}j-~9IeP;q@lr2LBD|Ir5Bc-3=a6-++LUuXtHn23Qr_FIZuu<*KTDj(Cb3s7?GNA9#M% zT;77a8XJlCln7W^bIg6kU$;o;_W}MTryzvaK1ur#zzs-R)EHtB0kOLz)y*a-id{1| zHOS1+0R#{v4oEg0Y-T<1eLONWUO5z?p`ut^hZbolf-_2<_5MFumr-(N3?V_d>tl**Zr7cgk^cuq42LJGHLUt_dSE9Tu? zDsG+8Pd<5hxWu9<-+iF^;VuQL@fI*g0V71=Uz`63qF#{tUS5z%8j6{HjHFz_miD1w!>y$Ul`Gja8UPB` zwsgx>4Zb0(>+W4@CR8CMFai;6R6e#ZeQENRd7z%`XO@L!)@I@&az%O2F00#&Wh@W! z5lf*lZbUoh=%ccH6_O9WfEQ~6+-(xSXB!2B9?7#^`%?vD2*$0q5+?O4w~ za_C@I_3to>rcd`F zum$d7)2 z$SP{NAtD}X5#iRZ~eYs+Le z^Yc4`Bcka9uos$x$b zF}>as{?T*&kB|Dg#rpXz8I0P^56D*SNUHAep6R>wH};ZNHRP!{bUqk<+RRPa@h{1+ z7&DS^G&iuaaJEy}%Y(`~g_QV)^hL!!^g6Y0oIvCcBiun=(dh-6rKA@kj<2g0X7UVq z_+772&{{B;Xf^8jncp5|^Qyd}Oe9rs>@NEOF>o~twu zR=U%mr50+^%}>8u+gIftRCZZt@BdX+RAQ=zqA7&JESJcaH)XitRc-CL)<1UPUNucQ2Iu`4BORX9)Iv)ya?u-WLWuMgq+BY_u`LZ;*1Ij zNLuAuN6=RnSOZG(lQJVY$0nEJp&Baqdb*O5TQp%{)#=Xon+q{*GrRv6Y2q$*B22UY zv+iQFEFh4gih1|5jgi}kna*pwWT8i|0sYBD!(vhumAc}KnAo)$UTKl{l$zB0DUSO6P|LgnLcK(kxsAFQdtxzVI%X?k zBKy{Q@xS-a?~neu{XS@g2mAlml1fQYNA;4v-oJL_ozokWZ+8BgzvW%-Ouc!RRkRN@ z!d)ivKUv`4zxMF^`G5Z1{8fJN|K5K;PUhDO|9P9g@8{e7|85t%xGcP(*m1Y%hGj== z%ZA&NVxic2W20Zitx&Cap{lCC@GCvOYKfLe0kN^L_-M#l~ zzwiBW`@NZ}Oc_>SWcl{A3U`3{Cz&VRdXk9cTgt1TKCA#WD!Ir~o!lz@TIg&`vP0iUS5B7|7}a zYkM&0n+}{R1B2tB#q}Vt=Dv0SG)@{an^LB{Ts5v-4t6 diff --git a/docs/siem/siem-ui.asciidoc b/docs/siem/siem-ui.asciidoc index 7294cfbc414f49..f01575a21b9f67 100644 --- a/docs/siem/siem-ui.asciidoc +++ b/docs/siem/siem-ui.asciidoc @@ -33,6 +33,23 @@ investigation. [role="screenshot"] image::siem/images/network-ui.png[] +[float] +[[detections-ui]] +=== Detections + +The Detections feature automatically searches for threats and creates +signals when they are detected. Signal detection rules define the conditions +for creating signals. The SIEM app comes with prebuilt rules that search for +suspicious activity on your network and hosts. Additionally, you can +create your own rules. + +See {siem-guide}/detection-engine-overview.html[Detections] in the SIEM +Guide for information on managing detection rules and signals via the UI +or the Detections API. + +[role="screenshot"] +image::siem/images/detections-ui.png[] + [float] [[timelines-ui]] === Timeline From df8fbcc569fda2184b68d4d95b9a655084ae87b4 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Wed, 5 Feb 2020 09:08:14 -0700 Subject: [PATCH 15/33] [Uptime] Refactor adapter classes to individual modules (#56254) * Migrate pings adapter to individual files. * Rename database calls folder to "requests". * Port monitor adapter methods to dedicated files. * Refactor states index adapter to request modules. * Fix a regression. * Update snapshot. --- .../plugins/oss_telemetry/test_utils/index.ts | 2 +- .../graphql/monitor_states/resolvers.ts | 6 +- .../server/graphql/monitors/resolvers.ts | 2 +- .../uptime/server/graphql/pings/resolvers.ts | 4 +- .../plugins/uptime/server/graphql/types.ts | 2 +- .../uptime/server/lib/adapters/index.ts | 4 - .../adapters/monitor_states/adapter_types.ts | 64 --- .../elasticsearch_monitor_states_adapter.ts | 154 ------ .../lib/adapters/monitor_states/index.ts | 8 - .../lib/adapters/monitors/adapter_types.ts | 70 --- .../elasticsearch_monitors_adapter.ts | 385 -------------- .../elasticsearch_pings_adapter.test.ts | 495 ------------------ .../server/lib/adapters/pings/es_pings.ts | 183 ------- .../uptime/server/lib/adapters/pings/index.ts | 8 - .../lib/adapters/stub_index_pattern/index.ts | 7 - .../stub_index_pattern/stub_index_pattern.ts | 54 -- .../uptime/server/lib/compose/kibana.ts | 12 +- .../plugins/uptime/server/lib/helper/index.ts | 1 + .../legacy/plugins/uptime/server/lib/lib.ts | 14 +- .../extract_filter_aggs_results.test.ts.snap | 0 .../generate_filter_aggs.test.ts.snap | 0 .../get_monitor_charts.test.ts.snap} | 0 .../get_ping_histogram.test.ts.snap} | 12 +- .../combine_range_with_filters.test.ts | 2 +- .../extract_filter_aggs_results.test.ts | 2 +- .../__tests__/generate_filter_aggs.test.ts | 0 .../requests/__tests__/get_doc_count.test.ts | 42 ++ .../__tests__/get_latest_monitor.test.ts | 93 ++++ .../__tests__/get_monitor_charts.test.ts} | 11 +- .../__tests__/get_ping_histogram.test.ts | 241 +++++++++ .../lib/requests/__tests__/get_pings.test.ts | 163 ++++++ .../__tests__/monitor_charts_mock.json | 0 .../generate_filter_aggs.ts | 0 .../server/lib/requests/get_doc_count.ts | 15 + .../server/lib/requests/get_filter_bar.ts | 98 ++++ .../server/lib/requests/get_index_pattern.ts | 45 ++ .../server/lib/requests/get_latest_monitor.ts | 78 +++ .../uptime/server/lib/requests/get_monitor.ts | 50 ++ .../server/lib/requests/get_monitor_charts.ts | 176 +++++++ .../lib/requests/get_monitor_details.ts | 76 +++ .../lib/requests/get_monitor_locations.ts | 117 +++++ .../server/lib/requests/get_monitor_states.ts | 68 +++ .../get_ping_histogram.ts} | 36 +- .../uptime/server/lib/requests/get_pings.ts | 108 ++++ .../lib/requests/get_snapshot_counts.ts | 102 ++++ .../lib/requests/get_states_index_status.ts | 24 + .../uptime/server/lib/requests/index.ts | 20 + .../search/__tests__/fetch_page.test.ts | 2 +- .../__tests__/find_potential_matches_test.ts | 0 .../__tests__/monitor_group_iterator.test.ts | 0 .../search/__tests__/query_context.test.ts | 4 +- .../search/__tests__/test_helpers.ts | 4 +- .../search/enrich_monitor_groups.ts | 6 +- .../search/fetch_chunk.ts | 0 .../search/fetch_page.ts | 6 +- .../search/find_potential_matches.ts | 4 +- .../search/index.ts | 1 + .../search/monitor_group_iterator.ts | 4 +- .../search/query_context.ts | 8 +- .../search/refine_potential_matches.ts | 4 +- .../index.ts => requests/search/types.ts} | 9 +- .../lib/{adapters/pings => requests}/types.ts | 17 +- .../server/lib/requests/uptime_requests.ts | 52 ++ .../plugins/uptime/server/rest_api/index.ts | 4 +- .../index_pattern/get_index_pattern.ts | 2 +- .../rest_api/monitors/monitor_locations.ts | 2 +- .../rest_api/monitors/monitors_details.ts | 2 +- .../uptime/server/rest_api/monitors/status.ts | 4 +- .../overview_filters/get_overview_filters.ts | 2 +- .../rest_api/pings/get_ping_histogram.ts | 6 +- .../pings/{get_all.ts => get_pings.ts} | 4 +- .../uptime/server/rest_api/pings/index.ts | 2 +- .../rest_api/snapshot/get_snapshot_count.ts | 2 +- .../plugins/uptime/server/rest_api/types.ts | 2 +- x-pack/test/functional/services/uptime.ts | 5 +- 75 files changed, 1678 insertions(+), 1534 deletions(-) delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/adapter_types.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/elasticsearch_monitor_states_adapter.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/index.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/adapter_types.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/elasticsearch_monitors_adapter.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/elasticsearch_pings_adapter.test.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_pings.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/pings/index.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/index.ts delete mode 100644 x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/stub_index_pattern.ts rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/__snapshots__/extract_filter_aggs_results.test.ts.snap (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/__snapshots__/generate_filter_aggs.test.ts.snap (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors/__tests__/__snapshots__/elasticsearch_monitors_adapter.test.ts.snap => requests/__tests__/__snapshots__/get_monitor_charts.test.ts.snap} (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/pings/__tests__/__snapshots__/elasticsearch_pings_adapter.test.ts.snap => requests/__tests__/__snapshots__/get_ping_histogram.test.ts.snap} (70%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/combine_range_with_filters.test.ts (96%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/extract_filter_aggs_results.test.ts (96%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/generate_filter_aggs.test.ts (100%) create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_doc_count.test.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_latest_monitor.test.ts rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors/__tests__/elasticsearch_monitors_adapter.test.ts => requests/__tests__/get_monitor_charts.test.ts} (88%) create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_ping_histogram.test.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_pings.test.ts rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/__tests__/monitor_charts_mock.json (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors => requests}/generate_filter_aggs.ts (100%) create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_doc_count.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_filter_bar.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_index_pattern.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_latest_monitor.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_charts.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_details.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_locations.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_states.ts rename x-pack/legacy/plugins/uptime/server/lib/{adapters/pings/es_get_ping_historgram.ts => requests/get_ping_histogram.ts} (60%) create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_pings.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_snapshot_counts.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/get_states_index_status.ts create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/index.ts rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/__tests__/fetch_page.test.ts (97%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/__tests__/find_potential_matches_test.ts (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/__tests__/monitor_group_iterator.test.ts (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/__tests__/query_context.test.ts (94%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/__tests__/test_helpers.ts (85%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/enrich_monitor_groups.ts (98%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/fetch_chunk.ts (100%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/fetch_page.ts (97%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/find_potential_matches.ts (96%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/index.ts (89%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/monitor_group_iterator.ts (98%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/query_context.ts (94%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitor_states => requests}/search/refine_potential_matches.ts (97%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/monitors/index.ts => requests/search/types.ts} (55%) rename x-pack/legacy/plugins/uptime/server/lib/{adapters/pings => requests}/types.ts (88%) create mode 100644 x-pack/legacy/plugins/uptime/server/lib/requests/uptime_requests.ts rename x-pack/legacy/plugins/uptime/server/rest_api/pings/{get_all.ts => get_pings.ts} (90%) diff --git a/x-pack/legacy/plugins/oss_telemetry/test_utils/index.ts b/x-pack/legacy/plugins/oss_telemetry/test_utils/index.ts index 0695fda3c2c948..8a8a5d18cd5f7d 100644 --- a/x-pack/legacy/plugins/oss_telemetry/test_utils/index.ts +++ b/x-pack/legacy/plugins/oss_telemetry/test_utils/index.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { APICaller, CoreSetup } from 'kibana/server'; +import { APICaller, CoreSetup } from 'src/core/server'; import { ConcreteTaskInstance, diff --git a/x-pack/legacy/plugins/uptime/server/graphql/monitor_states/resolvers.ts b/x-pack/legacy/plugins/uptime/server/graphql/monitor_states/resolvers.ts index 8ddb07b3093d01..45b073086d2129 100644 --- a/x-pack/legacy/plugins/uptime/server/graphql/monitor_states/resolvers.ts +++ b/x-pack/legacy/plugins/uptime/server/graphql/monitor_states/resolvers.ts @@ -50,8 +50,8 @@ export const createMonitorStatesResolvers: CreateUMGraphQLResolvers = ( totalSummaryCount, { summaries, nextPagePagination, prevPagePagination }, ] = await Promise.all([ - libs.pings.getDocCount({ callES: APICaller }), - libs.monitorStates.getMonitorStates({ + libs.requests.getDocCount({ callES: APICaller }), + libs.requests.getMonitorStates({ callES: APICaller, dateRangeStart, dateRangeEnd, @@ -71,7 +71,7 @@ export const createMonitorStatesResolvers: CreateUMGraphQLResolvers = ( }; }, async getStatesIndexStatus(_resolver, {}, { APICaller }): Promise { - return await libs.monitorStates.statesIndexExists({ callES: APICaller }); + return await libs.requests.getStatesIndexStatus({ callES: APICaller }); }, }, }; diff --git a/x-pack/legacy/plugins/uptime/server/graphql/monitors/resolvers.ts b/x-pack/legacy/plugins/uptime/server/graphql/monitors/resolvers.ts index cc5744eac6ea11..19f23fa1bb9347 100644 --- a/x-pack/legacy/plugins/uptime/server/graphql/monitors/resolvers.ts +++ b/x-pack/legacy/plugins/uptime/server/graphql/monitors/resolvers.ts @@ -29,7 +29,7 @@ export const createMonitorsResolvers: CreateUMGraphQLResolvers = ( { monitorId, dateRangeStart, dateRangeEnd, location }, { APICaller } ): Promise { - return libs.monitors.getMonitorChartsData({ + return await libs.requests.getMonitorCharts({ callES: APICaller, monitorId, dateRangeStart, diff --git a/x-pack/legacy/plugins/uptime/server/graphql/pings/resolvers.ts b/x-pack/legacy/plugins/uptime/server/graphql/pings/resolvers.ts index 373e1467433a28..dea7469ab62178 100644 --- a/x-pack/legacy/plugins/uptime/server/graphql/pings/resolvers.ts +++ b/x-pack/legacy/plugins/uptime/server/graphql/pings/resolvers.ts @@ -38,7 +38,7 @@ export const createPingsResolvers: CreateUMGraphQLResolvers = ( { monitorId, sort, size, status, dateRangeStart, dateRangeEnd, location }, { APICaller } ): Promise { - return await libs.pings.getAll({ + return await libs.requests.getPings({ callES: APICaller, dateRangeStart, dateRangeEnd, @@ -50,7 +50,7 @@ export const createPingsResolvers: CreateUMGraphQLResolvers = ( }); }, async getDocCount(_resolver, _args, { APICaller }): Promise { - return libs.pings.getDocCount({ callES: APICaller }); + return libs.requests.getDocCount({ callES: APICaller }); }, }, }); diff --git a/x-pack/legacy/plugins/uptime/server/graphql/types.ts b/x-pack/legacy/plugins/uptime/server/graphql/types.ts index 529ab41a62b3bd..8508066a71f983 100644 --- a/x-pack/legacy/plugins/uptime/server/graphql/types.ts +++ b/x-pack/legacy/plugins/uptime/server/graphql/types.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RequestHandlerContext, CallAPIOptions } from 'kibana/server'; +import { RequestHandlerContext, CallAPIOptions } from 'src/core/server'; import { UMServerLibs } from '../lib/lib'; export type UMContext = RequestHandlerContext & { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/index.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/index.ts index fbef70f106dd80..9b3b11712b99bb 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/index.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/adapters/index.ts @@ -5,8 +5,4 @@ */ export * from './framework'; -export * from './monitor_states'; -export * from './monitors'; -export * from './pings'; -export * from './stub_index_pattern'; export * from './telemetry'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/adapter_types.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/adapter_types.ts deleted file mode 100644 index 4104a9287a28d1..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/adapter_types.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { - MonitorSummary, - CursorDirection, - SortOrder, - StatesIndexStatus, -} from '../../../../common/graphql/types'; -import { UMElasticsearchQueryFn } from '../framework'; -import { Snapshot } from '../../../../common/runtime_types'; - -export interface MonitorStatesParams { - dateRangeStart: string; - dateRangeEnd: string; - pagination?: CursorPagination; - filters?: string | null; - statusFilter?: string; -} - -export interface GetSnapshotCountParams { - dateRangeStart: string; - dateRangeEnd: string; - filters?: string | null; - statusFilter?: string; -} - -export interface UMMonitorStatesAdapter { - getMonitorStates: UMElasticsearchQueryFn; - getSnapshotCount: UMElasticsearchQueryFn; - statesIndexExists: UMElasticsearchQueryFn<{}, StatesIndexStatus>; -} - -export interface CursorPagination { - cursorKey?: any; - cursorDirection: CursorDirection; - sortOrder: SortOrder; -} - -export interface GetMonitorStatesResult { - summaries: MonitorSummary[]; - nextPagePagination: string | null; - prevPagePagination: string | null; -} - -export interface LegacyMonitorStatesQueryResult { - result: any; - statusFilter?: any; - searchAfter: any; -} - -export interface MonitorStatesCheckGroupsResult { - checkGroups: string[]; - searchAfter: any; -} - -export interface EnrichMonitorStatesResult { - monitors: any[]; - nextPagePagination: any | null; - prevPagePagination: any | null; -} diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/elasticsearch_monitor_states_adapter.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/elasticsearch_monitor_states_adapter.ts deleted file mode 100644 index 7ed973e6f057d2..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/elasticsearch_monitor_states_adapter.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { UMMonitorStatesAdapter } from './adapter_types'; -import { INDEX_NAMES, CONTEXT_DEFAULTS } from '../../../../common/constants'; -import { fetchPage } from './search'; -import { MonitorGroupIterator } from './search/monitor_group_iterator'; -import { Snapshot } from '../../../../common/runtime_types'; -import { QueryContext } from './search/query_context'; - -export const elasticsearchMonitorStatesAdapter: UMMonitorStatesAdapter = { - // Gets a page of monitor states. - getMonitorStates: async ({ - callES, - dateRangeStart, - dateRangeEnd, - pagination, - filters, - statusFilter, - }) => { - pagination = pagination || CONTEXT_DEFAULTS.CURSOR_PAGINATION; - statusFilter = statusFilter === null ? undefined : statusFilter; - const size = 10; - - const queryContext = new QueryContext( - callES, - dateRangeStart, - dateRangeEnd, - pagination, - filters && filters !== '' ? JSON.parse(filters) : null, - size, - statusFilter - ); - - const page = await fetchPage(queryContext); - - return { - summaries: page.items, - nextPagePagination: jsonifyPagination(page.nextPagePagination), - prevPagePagination: jsonifyPagination(page.prevPagePagination), - }; - }, - - getSnapshotCount: async ({ - callES, - dateRangeStart, - dateRangeEnd, - filters, - statusFilter, - }): Promise => { - if (!(statusFilter === 'up' || statusFilter === 'down' || statusFilter === undefined)) { - throw new Error(`Invalid status filter value '${statusFilter}'`); - } - - const context = new QueryContext( - callES, - dateRangeStart, - dateRangeEnd, - CONTEXT_DEFAULTS.CURSOR_PAGINATION, - filters && filters !== '' ? JSON.parse(filters) : null, - Infinity, - statusFilter - ); - - // Calculate the total, up, and down counts. - const counts = await fastStatusCount(context); - - // Check if the last count was accurate, if not, we need to perform a slower count with the - // MonitorGroupsIterator. - if (!(await context.hasTimespan())) { - // Figure out whether 'up' or 'down' is more common. It's faster to count the lower cardinality - // one then use subtraction to figure out its opposite. - const [leastCommonStatus, mostCommonStatus]: Array<'up' | 'down'> = - counts.up > counts.down ? ['down', 'up'] : ['up', 'down']; - counts[leastCommonStatus] = await slowStatusCount(context, leastCommonStatus); - counts[mostCommonStatus] = counts.total - counts[leastCommonStatus]; - } - - return { - total: statusFilter ? counts[statusFilter] : counts.total, - up: statusFilter === 'down' ? 0 : counts.up, - down: statusFilter === 'up' ? 0 : counts.down, - }; - }, - - statesIndexExists: async ({ callES }) => { - // TODO: adapt this to the states index in future release - const { - _shards: { total }, - count, - } = await callES('count', { index: INDEX_NAMES.HEARTBEAT }); - return { - indexExists: total > 0, - docCount: { - count, - }, - }; - }, -}; - -// To simplify the handling of the group of pagination vars they're passed back to the client as a string -const jsonifyPagination = (p: any): string | null => { - if (!p) { - return null; - } - - return JSON.stringify(p); -}; - -const fastStatusCount = async (context: QueryContext): Promise => { - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - size: 0, - query: { bool: { filter: await context.dateAndCustomFilters() } }, - aggs: { - unique: { - // We set the precision threshold to 40k which is the max precision supported by cardinality - cardinality: { field: 'monitor.id', precision_threshold: 40000 }, - }, - down: { - filter: { range: { 'summary.down': { gt: 0 } } }, - aggs: { - unique: { cardinality: { field: 'monitor.id', precision_threshold: 40000 } }, - }, - }, - }, - }, - }; - - const statistics = await context.search(params); - const total = statistics.aggregations.unique.value; - const down = statistics.aggregations.down.unique.value; - - return { - total, - down, - up: total - down, - }; -}; - -const slowStatusCount = async (context: QueryContext, status: string): Promise => { - const downContext = context.clone(); - downContext.statusFilter = status; - const iterator = new MonitorGroupIterator(downContext); - let count = 0; - while (await iterator.next()) { - count++; - } - return count; -}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/index.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/index.ts deleted file mode 100644 index a3fc71ad48cb30..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export * from './adapter_types'; -export { elasticsearchMonitorStatesAdapter } from './elasticsearch_monitor_states_adapter'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/adapter_types.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/adapter_types.ts deleted file mode 100644 index 8523d9c75f51fb..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/adapter_types.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { MonitorChart } from '../../../../common/graphql/types'; -import { UMElasticsearchQueryFn } from '../framework'; -import { - MonitorDetails, - MonitorLocations, - OverviewFilters, -} from '../../../../common/runtime_types'; - -export interface GetMonitorChartsDataParams { - /** @member monitorId ID value for the selected monitor */ - monitorId: string; - /** @member dateRangeStart timestamp bounds */ - dateRangeStart: string; - /** @member dateRangeEnd timestamp bounds */ - dateRangeEnd: string; - /** @member location optional location value for use in filtering*/ - location?: string | null; -} - -export interface GetFilterBarParams { - /** @param dateRangeStart timestamp bounds */ - dateRangeStart: string; - /** @member dateRangeEnd timestamp bounds */ - dateRangeEnd: string; - /** @member search this value should correspond to Elasticsearch DSL - * generated from KQL text the user provided. - */ - search?: Record; - filterOptions: Record; -} - -export interface GetMonitorDetailsParams { - monitorId: string; - dateStart: string; - dateEnd: string; -} - -/** - * Fetch data for the monitor page title. - */ -export interface GetMonitorLocationsParams { - /** - * @member monitorId the ID to query - */ - monitorId: string; - dateStart: string; - dateEnd: string; -} - -export interface UMMonitorsAdapter { - /** - * Fetches data used to populate monitor charts - */ - getMonitorChartsData: UMElasticsearchQueryFn; - - /** - * Fetch options for the filter bar. - */ - getFilterBar: UMElasticsearchQueryFn; - - getMonitorDetails: UMElasticsearchQueryFn; - - getMonitorLocations: UMElasticsearchQueryFn; -} diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/elasticsearch_monitors_adapter.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/elasticsearch_monitors_adapter.ts deleted file mode 100644 index e433931f03c8e6..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/elasticsearch_monitors_adapter.ts +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { get } from 'lodash'; -import { INDEX_NAMES, UNNAMED_LOCATION } from '../../../../common/constants'; -import { MonitorChart, LocationDurationLine } from '../../../../common/graphql/types'; -import { getHistogramIntervalFormatted } from '../../helper'; -import { MonitorError, MonitorLocation } from '../../../../common/runtime_types'; -import { UMMonitorsAdapter } from './adapter_types'; -import { generateFilterAggs } from './generate_filter_aggs'; -import { OverviewFilters } from '../../../../common/runtime_types'; - -export const combineRangeWithFilters = ( - dateRangeStart: string, - dateRangeEnd: string, - filters?: Record -) => { - const range = { - range: { - '@timestamp': { - gte: dateRangeStart, - lte: dateRangeEnd, - }, - }, - }; - if (!filters) return range; - const clientFiltersList = Array.isArray(filters?.bool?.filter ?? {}) - ? // i.e. {"bool":{"filter":{ ...some nested filter objects }}} - filters.bool.filter - : // i.e. {"bool":{"filter":[ ...some listed filter objects ]}} - Object.keys(filters?.bool?.filter ?? {}).map(key => ({ - ...filters?.bool?.filter?.[key], - })); - filters.bool.filter = [...clientFiltersList, range]; - return filters; -}; - -type SupportedFields = 'locations' | 'ports' | 'schemes' | 'tags'; - -export const extractFilterAggsResults = ( - responseAggregations: Record, - keys: SupportedFields[] -): OverviewFilters => { - const values: OverviewFilters = { - locations: [], - ports: [], - schemes: [], - tags: [], - }; - keys.forEach(key => { - const buckets = responseAggregations[key]?.term?.buckets ?? []; - values[key] = buckets.map((item: { key: string | number }) => item.key); - }); - return values; -}; - -const formatStatusBuckets = (time: any, buckets: any, docCount: any) => { - let up = null; - let down = null; - - buckets.forEach((bucket: any) => { - if (bucket.key === 'up') { - up = bucket.doc_count; - } else if (bucket.key === 'down') { - down = bucket.doc_count; - } - }); - - return { - x: time, - up, - down, - total: docCount, - }; -}; - -export const elasticsearchMonitorsAdapter: UMMonitorsAdapter = { - getMonitorChartsData: async ({ callES, dateRangeStart, dateRangeEnd, monitorId, location }) => { - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - query: { - bool: { - filter: [ - { range: { '@timestamp': { gte: dateRangeStart, lte: dateRangeEnd } } }, - { term: { 'monitor.id': monitorId } }, - { term: { 'monitor.status': 'up' } }, - // if location is truthy, add it as a filter. otherwise add nothing - ...(!!location ? [{ term: { 'observer.geo.name': location } }] : []), - ], - }, - }, - size: 0, - aggs: { - timeseries: { - date_histogram: { - field: '@timestamp', - fixed_interval: getHistogramIntervalFormatted(dateRangeStart, dateRangeEnd), - min_doc_count: 0, - }, - aggs: { - location: { - terms: { - field: 'observer.geo.name', - missing: 'N/A', - }, - aggs: { - status: { terms: { field: 'monitor.status', size: 2, shard_size: 2 } }, - duration: { stats: { field: 'monitor.duration.us' } }, - }, - }, - }, - }, - }, - }, - }; - - const result = await callES('search', params); - - const dateHistogramBuckets = get(result, 'aggregations.timeseries.buckets', []); - /** - * The code below is responsible for formatting the aggregation data we fetched above in a way - * that the chart components used by the client understands. - * There are five required values. Two are lists of points that conform to a simple (x,y) structure. - * - * The third list is for an area chart expressing a range, and it requires an (x,y,y0) structure, - * where y0 is the min value for the point and y is the max. - * - * Additionally, we supply the maximum value for duration and status, so the corresponding charts know - * what the domain size should be. - */ - const monitorChartsData: MonitorChart = { - locationDurationLines: [], - status: [], - durationMaxValue: 0, - statusMaxCount: 0, - }; - - /** - * The following section of code enables us to provide buckets per location - * that have a `null` value if there is no data at the given timestamp. - * - * We maintain two `Set`s. One is per bucket, the other is persisted for the - * entire collection. At the end of a bucket's evaluation, if there was no object - * parsed for a given location line that was already started, we insert an element - * to the given line with a null value. Without this, our charts on the client will - * display a continuous line for each of the points they are provided. - */ - - // a set of all the locations found for this result - const resultLocations = new Set(); - const linesByLocation: { [key: string]: LocationDurationLine } = {}; - dateHistogramBuckets.forEach(dateHistogramBucket => { - const x = get(dateHistogramBucket, 'key'); - const docCount = get(dateHistogramBucket, 'doc_count', 0); - // a set of all the locations for the current bucket - const bucketLocations = new Set(); - - dateHistogramBucket.location.buckets.forEach( - (locationBucket: { key: string; duration: { avg: number } }) => { - const locationName = locationBucket.key; - // store the location name in each set - bucketLocations.add(locationName); - resultLocations.add(locationName); - - // create a new line for this location if it doesn't exist - let currentLine: LocationDurationLine = get(linesByLocation, locationName); - if (!currentLine) { - currentLine = { name: locationName, line: [] }; - linesByLocation[locationName] = currentLine; - monitorChartsData.locationDurationLines.push(currentLine); - } - // add the entry for the current location's duration average - currentLine.line.push({ x, y: get(locationBucket, 'duration.avg', null) }); - } - ); - - // if there are more lines in the result than are represented in the current bucket, - // we must add null entries - if (dateHistogramBucket.location.buckets.length < resultLocations.size) { - resultLocations.forEach(resultLocation => { - // the current bucket has a value for this location, do nothing - if (location && location !== resultLocation) return; - // the current bucket had no value for this location, insert a null value - if (!bucketLocations.has(resultLocation)) { - const locationLine = monitorChartsData.locationDurationLines.find( - ({ name }) => name === resultLocation - ); - // in practice, there should always be a line present, but `find` can return `undefined` - if (locationLine) { - // this will create a gap in the line like we desire - locationLine.line.push({ x, y: null }); - } - } - }); - } - - monitorChartsData.status.push( - formatStatusBuckets(x, get(dateHistogramBucket, 'status.buckets', []), docCount) - ); - }); - - return monitorChartsData; - }, - - getFilterBar: async ({ callES, dateRangeStart, dateRangeEnd, search, filterOptions }) => { - const aggs = generateFilterAggs( - [ - { aggName: 'locations', filterName: 'locations', field: 'observer.geo.name' }, - { aggName: 'ports', filterName: 'ports', field: 'url.port' }, - { aggName: 'schemes', filterName: 'schemes', field: 'monitor.type' }, - { aggName: 'tags', filterName: 'tags', field: 'tags' }, - ], - filterOptions - ); - const filters = combineRangeWithFilters(dateRangeStart, dateRangeEnd, search); - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - size: 0, - query: { - ...filters, - }, - aggs, - }, - }; - - const { aggregations } = await callES('search', params); - return extractFilterAggsResults(aggregations, ['tags', 'locations', 'ports', 'schemes']); - }, - - getMonitorDetails: async ({ callES, monitorId, dateStart, dateEnd }) => { - const queryFilters: any = [ - { - range: { - '@timestamp': { - gte: dateStart, - lte: dateEnd, - }, - }, - }, - { - term: { - 'monitor.id': monitorId, - }, - }, - ]; - - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - size: 1, - _source: ['error', '@timestamp'], - query: { - bool: { - must: [ - { - exists: { - field: 'error', - }, - }, - ], - filter: queryFilters, - }, - }, - sort: [ - { - '@timestamp': { - order: 'desc', - }, - }, - ], - }, - }; - - const result = await callES('search', params); - - const data = result.hits.hits[0]?._source; - - const monitorError: MonitorError | undefined = data?.error; - const errorTimeStamp: string | undefined = data?.['@timestamp']; - - return { - monitorId, - error: monitorError, - timestamp: errorTimeStamp, - }; - }, - - getMonitorLocations: async ({ callES, monitorId, dateStart, dateEnd }) => { - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - size: 0, - query: { - bool: { - filter: [ - { - match: { - 'monitor.id': monitorId, - }, - }, - { - exists: { - field: 'summary', - }, - }, - { - range: { - '@timestamp': { - gte: dateStart, - lte: dateEnd, - }, - }, - }, - ], - }, - }, - aggs: { - location: { - terms: { - field: 'observer.geo.name', - missing: '__location_missing__', - }, - aggs: { - most_recent: { - top_hits: { - size: 1, - sort: { - '@timestamp': { - order: 'desc', - }, - }, - _source: ['monitor', 'summary', 'observer', '@timestamp'], - }, - }, - }, - }, - }, - }, - }; - - const result = await callES('search', params); - const locations = result?.aggregations?.location?.buckets ?? []; - - const getGeo = (locGeo: { name: string; location?: string }) => { - if (locGeo) { - const { name, location } = locGeo; - const latLon = location?.trim().split(','); - return { - name, - location: latLon - ? { - lat: latLon[0], - lon: latLon[1], - } - : undefined, - }; - } else { - return { - name: UNNAMED_LOCATION, - }; - } - }; - - const monLocs: MonitorLocation[] = []; - locations.forEach((loc: any) => { - const mostRecentLocation = loc.most_recent.hits.hits[0]._source; - const location: MonitorLocation = { - summary: mostRecentLocation?.summary, - geo: getGeo(mostRecentLocation?.observer?.geo), - timestamp: mostRecentLocation['@timestamp'], - }; - monLocs.push(location); - }); - - return { - monitorId, - locations: monLocs, - }; - }, -}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/elasticsearch_pings_adapter.test.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/elasticsearch_pings_adapter.test.ts deleted file mode 100644 index 866ab110928b49..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/elasticsearch_pings_adapter.test.ts +++ /dev/null @@ -1,495 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { set } from 'lodash'; -import { elasticsearchPingsAdapter as adapter } from '../es_pings'; - -describe('ElasticsearchPingsAdapter class', () => { - let mockHits: any[]; - let mockEsSearchResult: any; - let mockEsCountResult: any; - const standardMockResponse: any = { - aggregations: { - timeseries: { - buckets: [ - { - key: 1, - up: { - doc_count: 2, - }, - down: { - doc_count: 1, - }, - }, - { - key: 2, - up: { - doc_count: 2, - }, - down: { - bucket_count: 1, - }, - }, - ], - interval: '1s', - }, - }, - }; - - beforeEach(() => { - mockHits = [ - { - _source: { - '@timestamp': '2018-10-30T18:51:59.792Z', - }, - }, - { - _source: { - '@timestamp': '2018-10-30T18:53:59.792Z', - }, - }, - { - _source: { - '@timestamp': '2018-10-30T18:55:59.792Z', - }, - }, - ]; - mockEsSearchResult = { - hits: { - total: { - value: mockHits.length, - }, - hits: mockHits, - }, - aggregations: { - locations: { - buckets: [{ key: 'foo' }], - }, - }, - }; - mockEsCountResult = { - count: mockHits.length, - }; - }); - - describe('getPingHistogram', () => { - it('returns a single bucket if array has 1', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue({ - aggregations: { - timeseries: { - buckets: [ - { - key: 1, - up: { - doc_count: 2, - }, - down: { - doc_count: 1, - }, - }, - ], - }, - }, - }); - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: 'now-15m', - dateEnd: 'now', - filters: '', - }); - result.interval = '10s'; - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - - it('returns expected result for no status filter', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - - mockEsClient.mockReturnValue(standardMockResponse); - - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: 'now-15m', - dateEnd: 'now', - filters: '', - }); - result.interval = '1m'; - - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - - it('handles status + additional user queries', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue({ - aggregations: { - timeseries: { - buckets: [ - { - key: 1, - up: { - doc_count: 2, - }, - down: { - doc_count: 1, - }, - }, - { - key: 2, - up: { - doc_count: 2, - }, - down: { - doc_count: 2, - }, - }, - { - key: 3, - up: { - doc_count: 3, - }, - down: { - doc_count: 1, - }, - }, - ], - }, - }, - }); - const searchFilter = { - bool: { - must: [ - { match: { 'monitor.id': { query: 'auto-http-0X89BB0F9A6C81D178', operator: 'and' } } }, - { match: { 'monitor.name': { query: 'my-new-test-site-name', operator: 'and' } } }, - ], - }, - }; - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: '1234', - dateEnd: '5678', - filters: JSON.stringify(searchFilter), - monitorId: undefined, - statusFilter: 'down', - }); - result.interval = '1h'; - - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - - it('handles simple_text_query without issues', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue({ - aggregations: { - timeseries: { - buckets: [ - { - key: 1, - up: { - doc_count: 2, - }, - down: { - doc_count: 1, - }, - }, - { - key: 2, - up: { - doc_count: 1, - }, - down: { - doc_count: 2, - }, - }, - { - key: 3, - up: { - doc_count: 3, - }, - down: { - doc_count: 1, - }, - }, - ], - }, - }, - }); - const filters = `{"bool":{"must":[{"simple_query_string":{"query":"http"}}]}}`; - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: 'now-15m', - dateEnd: 'now', - filters, - }); - - result.interval = '1m'; - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - - it('returns a down-filtered array for when filtered by down status', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(standardMockResponse); - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: '1234', - dateEnd: '5678', - filters: '', - monitorId: undefined, - statusFilter: 'down', - }); - - result.interval = '1d'; - - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - - it('returns a down-filtered array for when filtered by up status', async () => { - expect.assertions(2); - const mockEsClient = jest.fn(); - - mockEsClient.mockReturnValue(standardMockResponse); - - const result = await adapter.getPingHistogram({ - callES: mockEsClient, - dateStart: '1234', - dateEnd: '5678', - filters: '', - monitorId: undefined, - statusFilter: 'up', - }); - - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(result).toMatchSnapshot(); - }); - }); - - describe('getDocCount', () => { - it('returns data in appropriate shape', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsCountResult); - const { count } = await adapter.getDocCount({ callES: mockEsClient }); - expect(count).toEqual(3); - }); - }); - - describe('getAll', () => { - let expectedGetAllParams: any; - beforeEach(() => { - expectedGetAllParams = { - index: 'heartbeat-8*', - body: { - query: { - bool: { - filter: [{ range: { '@timestamp': { gte: 'now-1h', lte: 'now' } } }], - }, - }, - aggregations: { - locations: { - terms: { - field: 'observer.geo.name', - missing: 'N/A', - size: 1000, - }, - }, - }, - sort: [{ '@timestamp': { order: 'desc' } }], - size: 12, - }, - }; - }); - - it('returns data in the appropriate shape', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - const result = await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - sort: 'asc', - size: 12, - }); - const count = 3; - - expect(result.total).toBe(count); - - const pings = result.pings!; - expect(pings).toHaveLength(count); - expect(pings[0].timestamp).toBe('2018-10-30T18:51:59.792Z'); - expect(pings[1].timestamp).toBe('2018-10-30T18:53:59.792Z'); - expect(pings[2].timestamp).toBe('2018-10-30T18:55:59.792Z'); - expect(mockEsClient).toHaveBeenCalledTimes(1); - }); - - it('creates appropriate sort and size parameters', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - sort: 'asc', - size: 12, - }); - set(expectedGetAllParams, 'body.sort[0]', { '@timestamp': { order: 'asc' } }); - - expect(mockEsClient).toHaveBeenCalledTimes(1); - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); - }); - - it('omits the sort param when no sort passed', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - size: 12, - }); - - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); - }); - - it('omits the size param when no size passed', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - sort: 'desc', - }); - delete expectedGetAllParams.body.size; - set(expectedGetAllParams, 'body.sort[0].@timestamp.order', 'desc'); - - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); - }); - - it('adds a filter for monitor ID', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - monitorId: 'testmonitorid', - }); - delete expectedGetAllParams.body.size; - expectedGetAllParams.body.query.bool.filter.push({ term: { 'monitor.id': 'testmonitorid' } }); - - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); - }); - - it('adds a filter for monitor status', async () => { - const mockEsClient = jest.fn(); - mockEsClient.mockReturnValue(mockEsSearchResult); - await adapter.getAll({ - callES: mockEsClient, - dateRangeStart: 'now-1h', - dateRangeEnd: 'now', - status: 'down', - }); - delete expectedGetAllParams.body.size; - expectedGetAllParams.body.query.bool.filter.push({ term: { 'monitor.status': 'down' } }); - - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); - }); - }); - - describe('getLatestMonitorStatus', () => { - let expectedGetLatestSearchParams: any; - beforeEach(() => { - expectedGetLatestSearchParams = { - index: 'heartbeat-8*', - body: { - query: { - bool: { - filter: [ - { - range: { - '@timestamp': { - gte: 'now-1h', - lte: 'now', - }, - }, - }, - { - term: { 'monitor.id': 'testMonitor' }, - }, - ], - }, - }, - aggs: { - by_id: { - terms: { - field: 'monitor.id', - size: 1000, - }, - aggs: { - latest: { - top_hits: { - size: 1, - sort: { - '@timestamp': { order: 'desc' }, - }, - }, - }, - }, - }, - }, - size: 0, - }, - }; - mockEsSearchResult = { - aggregations: { - by_id: { - buckets: [ - { - latest: { - hits: { - hits: [ - { - _source: { - '@timestamp': 123456, - monitor: { - id: 'testMonitor', - }, - }, - }, - ], - }, - }, - }, - ], - }, - }, - }; - }); - - it('returns data in expected shape', async () => { - const mockEsClient = jest.fn(async (_request: any, _params: any) => mockEsSearchResult); - const result = await adapter.getLatestMonitorStatus({ - callES: mockEsClient, - dateStart: 'now-1h', - dateEnd: 'now', - monitorId: 'testMonitor', - }); - expect(result.timestamp).toBe(123456); - expect(result.monitor).not.toBeFalsy(); - // @ts-ignore monitor will be defined - expect(result.monitor.id).toBe('testMonitor'); - expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetLatestSearchParams); - }); - }); -}); diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_pings.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_pings.ts deleted file mode 100644 index 93e3a1bd9397bb..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_pings.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { get } from 'lodash'; -import { INDEX_NAMES } from '../../../../common/constants'; -import { HttpBody, Ping, PingResults } from '../../../../common/graphql/types'; -import { UMPingsAdapter } from './types'; -import { esGetPingHistogram } from './es_get_ping_historgram'; - -export const elasticsearchPingsAdapter: UMPingsAdapter = { - getAll: async ({ - callES, - dateRangeStart, - dateRangeEnd, - monitorId, - status, - sort, - size, - location, - }) => { - const sortParam = { sort: [{ '@timestamp': { order: sort ?? 'desc' } }] }; - const sizeParam = size ? { size } : undefined; - const filter: any[] = [{ range: { '@timestamp': { gte: dateRangeStart, lte: dateRangeEnd } } }]; - if (monitorId) { - filter.push({ term: { 'monitor.id': monitorId } }); - } - if (status) { - filter.push({ term: { 'monitor.status': status } }); - } - - let postFilterClause = {}; - if (location) { - postFilterClause = { post_filter: { term: { 'observer.geo.name': location } } }; - } - const queryContext = { bool: { filter } }; - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - query: { - ...queryContext, - }, - ...sortParam, - ...sizeParam, - aggregations: { - locations: { - terms: { - field: 'observer.geo.name', - missing: 'N/A', - size: 1000, - }, - }, - }, - ...postFilterClause, - }, - }; - - const { - hits: { hits, total }, - aggregations: aggs, - } = await callES('search', params); - - const locations = get(aggs, 'locations', { buckets: [{ key: 'N/A', doc_count: 0 }] }); - - const pings: Ping[] = hits.map(({ _id, _source }: any) => { - const timestamp = _source['@timestamp']; - - // Calculate here the length of the content string in bytes, this is easier than in client JS, where - // we don't have access to Buffer.byteLength. There are some hacky ways to do this in the - // client but this is cleaner. - const httpBody = get(_source, 'http.response.body'); - if (httpBody && httpBody.content) { - httpBody.content_bytes = Buffer.byteLength(httpBody.content); - } - - return { id: _id, timestamp, ..._source }; - }); - - const results: PingResults = { - total: total.value, - locations: locations.buckets.map((bucket: { key: string }) => bucket.key), - pings, - }; - - return results; - }, - - // Get The monitor latest state sorted by timestamp with date range - getLatestMonitorStatus: async ({ callES, dateStart, dateEnd, monitorId }) => { - // TODO: Write tests for this function - - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - query: { - bool: { - filter: [ - { - range: { - '@timestamp': { - gte: dateStart, - lte: dateEnd, - }, - }, - }, - ...(monitorId ? [{ term: { 'monitor.id': monitorId } }] : []), - ], - }, - }, - size: 0, - aggs: { - by_id: { - terms: { - field: 'monitor.id', - size: 1000, - }, - aggs: { - latest: { - top_hits: { - size: 1, - sort: { - '@timestamp': { order: 'desc' }, - }, - }, - }, - }, - }, - }, - }, - }; - - const result = await callES('search', params); - const ping: any = result.aggregations.by_id.buckets?.[0]?.latest.hits?.hits?.[0] ?? {}; - - return { - ...ping?._source, - timestamp: ping?._source?.['@timestamp'], - }; - }, - - // Get the monitor meta info regardless of timestamp - getMonitor: async ({ callES, monitorId }) => { - const params = { - index: INDEX_NAMES.HEARTBEAT, - body: { - size: 1, - _source: ['url', 'monitor', 'observer'], - query: { - bool: { - filter: [ - { - term: { - 'monitor.id': monitorId, - }, - }, - ], - }, - }, - sort: [ - { - '@timestamp': { - order: 'desc', - }, - }, - ], - }, - }; - - const result = await callES('search', params); - - return result.hits.hits[0]?._source; - }, - - getPingHistogram: esGetPingHistogram, - - getDocCount: async ({ callES }) => { - const { count } = await callES('count', { index: INDEX_NAMES.HEARTBEAT }); - - return { count }; - }, -}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/index.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/index.ts deleted file mode 100644 index 37324a8f521f68..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export * from './types'; -export { elasticsearchPingsAdapter } from './es_pings'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/index.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/index.ts deleted file mode 100644 index 4ef6e3fa8a6bdf..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { StubIndexPatternAdapter, stubIndexPatternAdapter } from './stub_index_pattern'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/stub_index_pattern.ts b/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/stub_index_pattern.ts deleted file mode 100644 index 49ec86af250405..00000000000000 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/stub_index_pattern/stub_index_pattern.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { APICaller } from 'kibana/server'; -import { - IndexPatternsFetcher, - IIndexPattern, -} from '../../../../../../../../src/plugins/data/server'; -import { INDEX_NAMES } from '../../../../common/constants'; -import { UMElasticsearchQueryFn } from '../framework'; - -export interface StubIndexPatternAdapter { - getUptimeIndexPattern: UMElasticsearchQueryFn; -} - -export const stubIndexPatternAdapter: StubIndexPatternAdapter = { - getUptimeIndexPattern: async callES => { - const indexPatternsFetcher = new IndexPatternsFetcher((...rest: Parameters) => - callES(...rest) - ); - - // Since `getDynamicIndexPattern` is called in setup_request (and thus by every endpoint) - // and since `getFieldsForWildcard` will throw if the specified indices don't exist, - // we have to catch errors here to avoid all endpoints returning 500 for users without APM data - // (would be a bad first time experience) - try { - const fields = await indexPatternsFetcher.getFieldsForWildcard({ - pattern: INDEX_NAMES.HEARTBEAT, - }); - - const indexPattern: IIndexPattern = { - fields, - title: INDEX_NAMES.HEARTBEAT, - }; - - return indexPattern; - } catch (e) { - const notExists = e.output?.statusCode === 404; - if (notExists) { - // eslint-disable-next-line no-console - console.error( - `Could not get dynamic index pattern because indices "${INDEX_NAMES.HEARTBEAT}" don't exist` - ); - return; - } - - // re-throw - throw e; - } - }, -}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/compose/kibana.ts b/x-pack/legacy/plugins/uptime/server/lib/compose/kibana.ts index b44a890de3819a..875a5d9dc8c5c1 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/compose/kibana.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/compose/kibana.ts @@ -5,23 +5,19 @@ */ import { UMKibanaBackendFrameworkAdapter } from '../adapters/framework'; -import { elasticsearchMonitorsAdapter } from '../adapters/monitors'; -import { elasticsearchPingsAdapter } from '../adapters/pings'; +import * as requests from '../requests'; import { licenseCheck } from '../domains'; import { UMDomainLibs, UMServerLibs } from '../lib'; -import { elasticsearchMonitorStatesAdapter } from '../adapters/monitor_states'; -import { stubIndexPatternAdapter } from '../adapters/stub_index_pattern'; import { UptimeCorePlugins, UptimeCoreSetup } from '../adapters/framework'; export function compose(server: UptimeCoreSetup, plugins: UptimeCorePlugins): UMServerLibs { const framework = new UMKibanaBackendFrameworkAdapter(server); const domainLibs: UMDomainLibs = { + requests: { + ...requests, + }, license: licenseCheck, - monitors: elasticsearchMonitorsAdapter, - monitorStates: elasticsearchMonitorStatesAdapter, - pings: elasticsearchPingsAdapter, - stubIndexPattern: stubIndexPatternAdapter, }; return { diff --git a/x-pack/legacy/plugins/uptime/server/lib/helper/index.ts b/x-pack/legacy/plugins/uptime/server/lib/helper/index.ts index eae8023b66ff4b..0dcbc0a424b5eb 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/helper/index.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/helper/index.ts @@ -5,6 +5,7 @@ */ export { getFilterClause } from './get_filter_clause'; +export { parseRelativeDate } from './get_histogram_interval'; export { getHistogramIntervalFormatted } from './get_histogram_interval_formatted'; export { parseFilterQuery } from './parse_filter_query'; export { assertCloseTo } from './assert_close_to'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/lib.ts b/x-pack/legacy/plugins/uptime/server/lib/lib.ts index e5ab9940d482d4..a7121eaec6679a 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/lib.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/lib.ts @@ -4,21 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - UMBackendFrameworkAdapter, - UMMonitorsAdapter, - UMMonitorStatesAdapter, - UMPingsAdapter, - StubIndexPatternAdapter, -} from './adapters'; +import { UMBackendFrameworkAdapter } from './adapters'; import { UMLicenseCheck } from './domains'; +import { UptimeRequests } from './requests'; export interface UMDomainLibs { + requests: UptimeRequests; license: UMLicenseCheck; - monitors: UMMonitorsAdapter; - monitorStates: UMMonitorStatesAdapter; - pings: UMPingsAdapter; - stubIndexPattern: StubIndexPatternAdapter; } export interface UMServerLibs extends UMDomainLibs { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/extract_filter_aggs_results.test.ts.snap b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/extract_filter_aggs_results.test.ts.snap similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/extract_filter_aggs_results.test.ts.snap rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/extract_filter_aggs_results.test.ts.snap diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/generate_filter_aggs.test.ts.snap b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/generate_filter_aggs.test.ts.snap similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/generate_filter_aggs.test.ts.snap rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/generate_filter_aggs.test.ts.snap diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/elasticsearch_monitors_adapter.test.ts.snap b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/get_monitor_charts.test.ts.snap similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/__snapshots__/elasticsearch_monitors_adapter.test.ts.snap rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/get_monitor_charts.test.ts.snap diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/__snapshots__/elasticsearch_pings_adapter.test.ts.snap b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/get_ping_histogram.test.ts.snap similarity index 70% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/__snapshots__/elasticsearch_pings_adapter.test.ts.snap rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/get_ping_histogram.test.ts.snap index 1b31f44557df04..0dafa5144c25a2 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/__tests__/__snapshots__/elasticsearch_pings_adapter.test.ts.snap +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/__snapshots__/get_ping_histogram.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ElasticsearchPingsAdapter class getPingHistogram handles simple_text_query without issues 1`] = ` +exports[`getPingHistogram handles simple_text_query without issues 1`] = ` Object { "histogram": Array [ Object { @@ -26,7 +26,7 @@ Object { } `; -exports[`ElasticsearchPingsAdapter class getPingHistogram handles status + additional user queries 1`] = ` +exports[`getPingHistogram handles status + additional user queries 1`] = ` Object { "histogram": Array [ Object { @@ -52,7 +52,7 @@ Object { } `; -exports[`ElasticsearchPingsAdapter class getPingHistogram returns a down-filtered array for when filtered by down status 1`] = ` +exports[`getPingHistogram returns a down-filtered array for when filtered by down status 1`] = ` Object { "histogram": Array [ Object { @@ -72,7 +72,7 @@ Object { } `; -exports[`ElasticsearchPingsAdapter class getPingHistogram returns a down-filtered array for when filtered by up status 1`] = ` +exports[`getPingHistogram returns a down-filtered array for when filtered by up status 1`] = ` Object { "histogram": Array [ Object { @@ -92,7 +92,7 @@ Object { } `; -exports[`ElasticsearchPingsAdapter class getPingHistogram returns a single bucket if array has 1 1`] = ` +exports[`getPingHistogram returns a single bucket if array has 1 1`] = ` Object { "histogram": Array [ Object { @@ -106,7 +106,7 @@ Object { } `; -exports[`ElasticsearchPingsAdapter class getPingHistogram returns expected result for no status filter 1`] = ` +exports[`getPingHistogram returns expected result for no status filter 1`] = ` Object { "histogram": Array [ Object { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/combine_range_with_filters.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/combine_range_with_filters.test.ts similarity index 96% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/combine_range_with_filters.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/combine_range_with_filters.test.ts index 2075b3a8fbe0f6..31d19dab290da8 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/combine_range_with_filters.test.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/combine_range_with_filters.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { combineRangeWithFilters } from '../elasticsearch_monitors_adapter'; +import { combineRangeWithFilters } from '../get_filter_bar'; describe('combineRangeWithFilters', () => { it('combines filters that have no filter clause', () => { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/extract_filter_aggs_results.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/extract_filter_aggs_results.test.ts similarity index 96% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/extract_filter_aggs_results.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/extract_filter_aggs_results.test.ts index 954cffd4c9522d..19fd0fda8d83e7 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/extract_filter_aggs_results.test.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/extract_filter_aggs_results.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { extractFilterAggsResults } from '../elasticsearch_monitors_adapter'; +import { extractFilterAggsResults } from '../get_filter_bar'; describe('extractFilterAggsResults', () => { it('extracts the bucket values of the expected filter fields', () => { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/generate_filter_aggs.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/generate_filter_aggs.test.ts similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/generate_filter_aggs.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/generate_filter_aggs.test.ts diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_doc_count.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_doc_count.test.ts new file mode 100644 index 00000000000000..7dfb0314fe8ddb --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_doc_count.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getDocCount } from '../get_doc_count'; + +describe('getDocCount', () => { + let mockHits: any[]; + let mockEsCountResult: any; + + beforeEach(() => { + mockHits = [ + { + _source: { + '@timestamp': '2018-10-30T18:51:59.792Z', + }, + }, + { + _source: { + '@timestamp': '2018-10-30T18:53:59.792Z', + }, + }, + { + _source: { + '@timestamp': '2018-10-30T18:55:59.792Z', + }, + }, + ]; + mockEsCountResult = { + count: mockHits.length, + }; + }); + + it('returns data in appropriate shape', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsCountResult); + const { count } = await getDocCount({ callES: mockEsClient }); + expect(count).toEqual(3); + }); +}); diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_latest_monitor.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_latest_monitor.test.ts new file mode 100644 index 00000000000000..ad0987a7f6faf2 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_latest_monitor.test.ts @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getLatestMonitor } from '../get_latest_monitor'; + +describe('getLatestMonitor', () => { + let expectedGetLatestSearchParams: any; + let mockEsSearchResult: any; + beforeEach(() => { + expectedGetLatestSearchParams = { + index: 'heartbeat-8*', + body: { + query: { + bool: { + filter: [ + { + range: { + '@timestamp': { + gte: 'now-1h', + lte: 'now', + }, + }, + }, + { + term: { 'monitor.id': 'testMonitor' }, + }, + ], + }, + }, + aggs: { + by_id: { + terms: { + field: 'monitor.id', + size: 1000, + }, + aggs: { + latest: { + top_hits: { + size: 1, + sort: { + '@timestamp': { order: 'desc' }, + }, + }, + }, + }, + }, + }, + size: 0, + }, + }; + mockEsSearchResult = { + aggregations: { + by_id: { + buckets: [ + { + latest: { + hits: { + hits: [ + { + _source: { + '@timestamp': 123456, + monitor: { + id: 'testMonitor', + }, + }, + }, + ], + }, + }, + }, + ], + }, + }, + }; + }); + + it('returns data in expected shape', async () => { + const mockEsClient = jest.fn(async (_request: any, _params: any) => mockEsSearchResult); + const result = await getLatestMonitor({ + callES: mockEsClient, + dateStart: 'now-1h', + dateEnd: 'now', + monitorId: 'testMonitor', + }); + expect(result.timestamp).toBe(123456); + expect(result.monitor).not.toBeFalsy(); + expect(result?.monitor?.id).toBe('testMonitor'); + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetLatestSearchParams); + }); +}); diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/elasticsearch_monitors_adapter.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_monitor_charts.test.ts similarity index 88% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/elasticsearch_monitors_adapter.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_monitor_charts.test.ts index e3e81fe360718e..205f9cf745db1a 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/elasticsearch_monitors_adapter.test.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_monitor_charts.test.ts @@ -5,17 +5,16 @@ */ import { get, set } from 'lodash'; -import { elasticsearchMonitorsAdapter as adapter } from '../elasticsearch_monitors_adapter'; import mockChartsData from './monitor_charts_mock.json'; -import { assertCloseTo } from '../../../helper'; +import { assertCloseTo } from '../../helper'; +import { getMonitorCharts } from '../get_monitor_charts'; -// FIXME: there are many untested functions in this adapter. They should be tested. describe('ElasticsearchMonitorsAdapter', () => { it('getMonitorChartsData will run expected parameters when no location is specified', async () => { expect.assertions(3); const searchMock = jest.fn(); const search = searchMock.bind({}); - await adapter.getMonitorChartsData({ + await getMonitorCharts({ callES: search, monitorId: 'fooID', dateRangeStart: 'now-15m', @@ -50,7 +49,7 @@ describe('ElasticsearchMonitorsAdapter', () => { expect.assertions(3); const searchMock = jest.fn(); const search = searchMock.bind({}); - await adapter.getMonitorChartsData({ + await getMonitorCharts({ callES: search, monitorId: 'fooID', dateRangeStart: 'now-15m', @@ -87,7 +86,7 @@ describe('ElasticsearchMonitorsAdapter', () => { searchMock.mockReturnValue(mockChartsData); const search = searchMock.bind({}); expect( - await adapter.getMonitorChartsData({ + await getMonitorCharts({ callES: search, monitorId: 'id', dateRangeStart: 'now-15m', diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_ping_histogram.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_ping_histogram.test.ts new file mode 100644 index 00000000000000..7d98b770692648 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_ping_histogram.test.ts @@ -0,0 +1,241 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getPingHistogram } from '../get_ping_histogram'; + +describe('getPingHistogram', () => { + const standardMockResponse: any = { + aggregations: { + timeseries: { + buckets: [ + { + key: 1, + up: { + doc_count: 2, + }, + down: { + doc_count: 1, + }, + }, + { + key: 2, + up: { + doc_count: 2, + }, + down: { + bucket_count: 1, + }, + }, + ], + }, + }, + }; + + it('returns a single bucket if array has 1', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue({ + aggregations: { + timeseries: { + buckets: [ + { + key: 1, + up: { + doc_count: 2, + }, + down: { + doc_count: 1, + }, + }, + ], + interval: '10s', + }, + }, + }); + + const result = await getPingHistogram({ + callES: mockEsClient, + from: 'now-15m', + to: 'now', + filters: null, + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); + + it('returns expected result for no status filter', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + + standardMockResponse.aggregations.timeseries.interval = '1m'; + mockEsClient.mockReturnValue(standardMockResponse); + + const result = await getPingHistogram({ + callES: mockEsClient, + from: 'now-15m', + to: 'now', + filters: null, + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); + + it('handles status + additional user queries', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + + mockEsClient.mockReturnValue({ + aggregations: { + timeseries: { + buckets: [ + { + key: 1, + up: { + doc_count: 2, + }, + down: { + doc_count: 1, + }, + }, + { + key: 2, + up: { + doc_count: 2, + }, + down: { + doc_count: 2, + }, + }, + { + key: 3, + up: { + doc_count: 3, + }, + down: { + doc_count: 1, + }, + }, + ], + interval: '1h', + }, + }, + }); + + const searchFilter = { + bool: { + must: [ + { match: { 'monitor.id': { query: 'auto-http-0X89BB0F9A6C81D178', operator: 'and' } } }, + { match: { 'monitor.name': { query: 'my-new-test-site-name', operator: 'and' } } }, + ], + }, + }; + + const result = await getPingHistogram({ + callES: mockEsClient, + from: '1234', + to: '5678', + filters: JSON.stringify(searchFilter), + monitorId: undefined, + statusFilter: 'down', + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); + + it('handles simple_text_query without issues', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + + mockEsClient.mockReturnValue({ + aggregations: { + timeseries: { + buckets: [ + { + key: 1, + up: { + doc_count: 2, + }, + down: { + doc_count: 1, + }, + }, + { + key: 2, + up: { + doc_count: 1, + }, + down: { + doc_count: 2, + }, + }, + { + key: 3, + up: { + doc_count: 3, + }, + down: { + doc_count: 1, + }, + }, + ], + interval: '1m', + }, + }, + }); + + const filters = `{"bool":{"must":[{"simple_query_string":{"query":"http"}}]}}`; + const result = await getPingHistogram({ + callES: mockEsClient, + from: 'now-15m', + to: 'now', + filters, + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); + + it('returns a down-filtered array for when filtered by down status', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + standardMockResponse.aggregations.timeseries.interval = '1d'; + mockEsClient.mockReturnValue(standardMockResponse); + const result = await getPingHistogram({ + callES: mockEsClient, + from: '1234', + to: '5678', + filters: '', + monitorId: undefined, + statusFilter: 'down', + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); + + it('returns a down-filtered array for when filtered by up status', async () => { + expect.assertions(2); + const mockEsClient = jest.fn(); + + standardMockResponse.aggregations.timeseries.interval = '1s'; + mockEsClient.mockReturnValue(standardMockResponse); + + const result = await getPingHistogram({ + callES: mockEsClient, + from: '1234', + to: '5678', + filters: '', + monitorId: undefined, + statusFilter: 'up', + }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(result).toMatchSnapshot(); + }); +}); diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_pings.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_pings.test.ts new file mode 100644 index 00000000000000..ab20a958f3d975 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/get_pings.test.ts @@ -0,0 +1,163 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getPings } from '../get_pings'; +import { set } from 'lodash'; + +describe('getAll', () => { + let mockEsSearchResult: any; + let mockHits: any; + let expectedGetAllParams: any; + beforeEach(() => { + mockHits = [ + { + _source: { + '@timestamp': '2018-10-30T18:51:59.792Z', + }, + }, + { + _source: { + '@timestamp': '2018-10-30T18:53:59.792Z', + }, + }, + { + _source: { + '@timestamp': '2018-10-30T18:55:59.792Z', + }, + }, + ]; + mockEsSearchResult = { + hits: { + total: { + value: mockHits.length, + }, + hits: mockHits, + }, + aggregations: { + locations: { + buckets: [{ key: 'foo' }], + }, + }, + }; + expectedGetAllParams = { + index: 'heartbeat-8*', + body: { + query: { + bool: { + filter: [{ range: { '@timestamp': { gte: 'now-1h', lte: 'now' } } }], + }, + }, + aggregations: { + locations: { + terms: { + field: 'observer.geo.name', + missing: 'N/A', + size: 1000, + }, + }, + }, + sort: [{ '@timestamp': { order: 'desc' } }], + size: 12, + }, + }; + }); + + it('returns data in the appropriate shape', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + const result = await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + sort: 'asc', + size: 12, + }); + const count = 3; + + expect(result.total).toBe(count); + + const pings = result.pings!; + expect(pings).toHaveLength(count); + expect(pings[0].timestamp).toBe('2018-10-30T18:51:59.792Z'); + expect(pings[1].timestamp).toBe('2018-10-30T18:53:59.792Z'); + expect(pings[2].timestamp).toBe('2018-10-30T18:55:59.792Z'); + expect(mockEsClient).toHaveBeenCalledTimes(1); + }); + + it('creates appropriate sort and size parameters', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + sort: 'asc', + size: 12, + }); + set(expectedGetAllParams, 'body.sort[0]', { '@timestamp': { order: 'asc' } }); + + expect(mockEsClient).toHaveBeenCalledTimes(1); + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); + }); + + it('omits the sort param when no sort passed', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + size: 12, + }); + + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); + }); + + it('omits the size param when no size passed', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + sort: 'desc', + }); + delete expectedGetAllParams.body.size; + set(expectedGetAllParams, 'body.sort[0].@timestamp.order', 'desc'); + + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); + }); + + it('adds a filter for monitor ID', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + monitorId: 'testmonitorid', + }); + delete expectedGetAllParams.body.size; + expectedGetAllParams.body.query.bool.filter.push({ term: { 'monitor.id': 'testmonitorid' } }); + + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); + }); + + it('adds a filter for monitor status', async () => { + const mockEsClient = jest.fn(); + mockEsClient.mockReturnValue(mockEsSearchResult); + await getPings({ + callES: mockEsClient, + dateRangeStart: 'now-1h', + dateRangeEnd: 'now', + status: 'down', + }); + delete expectedGetAllParams.body.size; + expectedGetAllParams.body.query.bool.filter.push({ term: { 'monitor.status': 'down' } }); + + expect(mockEsClient).toHaveBeenCalledWith('search', expectedGetAllParams); + }); +}); diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/monitor_charts_mock.json b/x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/monitor_charts_mock.json similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/__tests__/monitor_charts_mock.json rename to x-pack/legacy/plugins/uptime/server/lib/requests/__tests__/monitor_charts_mock.json diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/generate_filter_aggs.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/generate_filter_aggs.ts similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/generate_filter_aggs.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/generate_filter_aggs.ts diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_doc_count.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_doc_count.ts new file mode 100644 index 00000000000000..68c122aaaa9fb4 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_doc_count.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { DocCount } from '../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../common/constants'; +import { UMElasticsearchQueryFn } from '../adapters'; + +export const getDocCount: UMElasticsearchQueryFn<{}, DocCount> = async ({ callES }) => { + const { count } = await callES('count', { index: INDEX_NAMES.HEARTBEAT }); + + return { count }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_filter_bar.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_filter_bar.ts new file mode 100644 index 00000000000000..79259afe2b9eb3 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_filter_bar.ts @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { OverviewFilters } from '../../../common/runtime_types'; +import { generateFilterAggs } from './generate_filter_aggs'; +import { INDEX_NAMES } from '../../../common/constants'; + +export interface GetFilterBarParams { + /** @param dateRangeStart timestamp bounds */ + dateRangeStart: string; + /** @member dateRangeEnd timestamp bounds */ + dateRangeEnd: string; + /** @member search this value should correspond to Elasticsearch DSL + * generated from KQL text the user provided. + */ + search?: Record; + filterOptions: Record; +} + +export const combineRangeWithFilters = ( + dateRangeStart: string, + dateRangeEnd: string, + filters?: Record +) => { + const range = { + range: { + '@timestamp': { + gte: dateRangeStart, + lte: dateRangeEnd, + }, + }, + }; + if (!filters) return range; + const clientFiltersList = Array.isArray(filters?.bool?.filter ?? {}) + ? // i.e. {"bool":{"filter":{ ...some nested filter objects }}} + filters.bool.filter + : // i.e. {"bool":{"filter":[ ...some listed filter objects ]}} + Object.keys(filters?.bool?.filter ?? {}).map(key => ({ + ...filters?.bool?.filter?.[key], + })); + filters.bool.filter = [...clientFiltersList, range]; + return filters; +}; + +type SupportedFields = 'locations' | 'ports' | 'schemes' | 'tags'; + +export const extractFilterAggsResults = ( + responseAggregations: Record, + keys: SupportedFields[] +): OverviewFilters => { + const values: OverviewFilters = { + locations: [], + ports: [], + schemes: [], + tags: [], + }; + keys.forEach(key => { + const buckets = responseAggregations[key]?.term?.buckets ?? []; + values[key] = buckets.map((item: { key: string | number }) => item.key); + }); + return values; +}; + +export const getFilterBar: UMElasticsearchQueryFn = async ({ + callES, + dateRangeStart, + dateRangeEnd, + search, + filterOptions, +}) => { + const aggs = generateFilterAggs( + [ + { aggName: 'locations', filterName: 'locations', field: 'observer.geo.name' }, + { aggName: 'ports', filterName: 'ports', field: 'url.port' }, + { aggName: 'schemes', filterName: 'schemes', field: 'monitor.type' }, + { aggName: 'tags', filterName: 'tags', field: 'tags' }, + ], + filterOptions + ); + const filters = combineRangeWithFilters(dateRangeStart, dateRangeEnd, search); + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + size: 0, + query: { + ...filters, + }, + aggs, + }, + }; + + const { aggregations } = await callES('search', params); + return extractFilterAggsResults(aggregations, ['tags', 'locations', 'ports', 'schemes']); +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_index_pattern.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_index_pattern.ts new file mode 100644 index 00000000000000..4b40f800b6779c --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_index_pattern.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { APICaller } from 'src/core/server'; +import { UMElasticsearchQueryFn } from '../adapters'; +import { IndexPatternsFetcher, IIndexPattern } from '../../../../../../../src/plugins/data/server'; +import { INDEX_NAMES } from '../../../common/constants'; + +export const getUptimeIndexPattern: UMElasticsearchQueryFn = async callES => { + const indexPatternsFetcher = new IndexPatternsFetcher((...rest: Parameters) => + callES(...rest) + ); + + // Since `getDynamicIndexPattern` is called in setup_request (and thus by every endpoint) + // and since `getFieldsForWildcard` will throw if the specified indices don't exist, + // we have to catch errors here to avoid all endpoints returning 500 for users without APM data + // (would be a bad first time experience) + try { + const fields = await indexPatternsFetcher.getFieldsForWildcard({ + pattern: INDEX_NAMES.HEARTBEAT, + }); + + const indexPattern: IIndexPattern = { + fields, + title: INDEX_NAMES.HEARTBEAT, + }; + + return indexPattern; + } catch (e) { + const notExists = e.output?.statusCode === 404; + if (notExists) { + // eslint-disable-next-line no-console + console.error( + `Could not get dynamic index pattern because indices "${INDEX_NAMES.HEARTBEAT}" don't exist` + ); + return; + } + + // re-throw + throw e; + } +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_latest_monitor.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_latest_monitor.ts new file mode 100644 index 00000000000000..bfaee3f2bf7eea --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_latest_monitor.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { Ping } from '../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../common/constants'; + +export interface GetLatestMonitorParams { + /** @member dateRangeStart timestamp bounds */ + dateStart: string; + + /** @member dateRangeEnd timestamp bounds */ + dateEnd: string; + + /** @member monitorId optional limit to monitorId */ + monitorId?: string | null; +} + +// Get The monitor latest state sorted by timestamp with date range +export const getLatestMonitor: UMElasticsearchQueryFn = async ({ + callES, + dateStart, + dateEnd, + monitorId, +}) => { + // TODO: Write tests for this function + + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + query: { + bool: { + filter: [ + { + range: { + '@timestamp': { + gte: dateStart, + lte: dateEnd, + }, + }, + }, + ...(monitorId ? [{ term: { 'monitor.id': monitorId } }] : []), + ], + }, + }, + size: 0, + aggs: { + by_id: { + terms: { + field: 'monitor.id', + size: 1000, + }, + aggs: { + latest: { + top_hits: { + size: 1, + sort: { + '@timestamp': { order: 'desc' }, + }, + }, + }, + }, + }, + }, + }, + }; + + const result = await callES('search', params); + const ping: any = result.aggregations.by_id.buckets?.[0]?.latest.hits?.hits?.[0] ?? {}; + + return { + ...ping?._source, + timestamp: ping?._source?.['@timestamp'], + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor.ts new file mode 100644 index 00000000000000..94175616f374e2 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { Ping } from '../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../common/constants'; + +export interface GetMonitorParams { + /** @member monitorId optional limit to monitorId */ + monitorId?: string | null; +} + +// Get the monitor meta info regardless of timestamp +export const getMonitor: UMElasticsearchQueryFn = async ({ + callES, + monitorId, +}) => { + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + size: 1, + _source: ['url', 'monitor', 'observer'], + query: { + bool: { + filter: [ + { + term: { + 'monitor.id': monitorId, + }, + }, + ], + }, + }, + sort: [ + { + '@timestamp': { + order: 'desc', + }, + }, + ], + }, + }; + + const result = await callES('search', params); + + return result.hits.hits[0]?._source; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_charts.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_charts.ts new file mode 100644 index 00000000000000..b97cc7287e921f --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_charts.ts @@ -0,0 +1,176 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { INDEX_NAMES } from '../../../common/constants'; +import { getHistogramIntervalFormatted } from '../helper'; +import { MonitorChart, LocationDurationLine } from '../../../common/graphql/types'; + +export interface GetMonitorChartsParams { + /** @member monitorId ID value for the selected monitor */ + monitorId: string; + /** @member dateRangeStart timestamp bounds */ + dateRangeStart: string; + /** @member dateRangeEnd timestamp bounds */ + dateRangeEnd: string; + /** @member location optional location value for use in filtering*/ + location?: string | null; +} + +const formatStatusBuckets = (time: any, buckets: any, docCount: any) => { + let up = null; + let down = null; + + buckets.forEach((bucket: any) => { + if (bucket.key === 'up') { + up = bucket.doc_count; + } else if (bucket.key === 'down') { + down = bucket.doc_count; + } + }); + + return { + x: time, + up, + down, + total: docCount, + }; +}; + +/** + * Fetches data used to populate monitor charts + */ +export const getMonitorCharts: UMElasticsearchQueryFn< + GetMonitorChartsParams, + MonitorChart +> = async ({ callES, dateRangeStart, dateRangeEnd, monitorId, location }) => { + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + query: { + bool: { + filter: [ + { range: { '@timestamp': { gte: dateRangeStart, lte: dateRangeEnd } } }, + { term: { 'monitor.id': monitorId } }, + { term: { 'monitor.status': 'up' } }, + // if location is truthy, add it as a filter. otherwise add nothing + ...(!!location ? [{ term: { 'observer.geo.name': location } }] : []), + ], + }, + }, + size: 0, + aggs: { + timeseries: { + date_histogram: { + field: '@timestamp', + fixed_interval: getHistogramIntervalFormatted(dateRangeStart, dateRangeEnd), + min_doc_count: 0, + }, + aggs: { + location: { + terms: { + field: 'observer.geo.name', + missing: 'N/A', + }, + aggs: { + status: { terms: { field: 'monitor.status', size: 2, shard_size: 2 } }, + duration: { stats: { field: 'monitor.duration.us' } }, + }, + }, + }, + }, + }, + }, + }; + + const result = await callES('search', params); + + const dateHistogramBuckets: any[] = result?.aggregations?.timeseries?.buckets ?? []; + + /** + * The code below is responsible for formatting the aggregation data we fetched above in a way + * that the chart components used by the client understands. + * There are five required values. Two are lists of points that conform to a simple (x,y) structure. + * + * The third list is for an area chart expressing a range, and it requires an (x,y,y0) structure, + * where y0 is the min value for the point and y is the max. + * + * Additionally, we supply the maximum value for duration and status, so the corresponding charts know + * what the domain size should be. + */ + const monitorChartsData: MonitorChart = { + locationDurationLines: [], + status: [], + durationMaxValue: 0, + statusMaxCount: 0, + }; + + /** + * The following section of code enables us to provide buckets per location + * that have a `null` value if there is no data at the given timestamp. + * + * We maintain two `Set`s. One is per bucket, the other is persisted for the + * entire collection. At the end of a bucket's evaluation, if there was no object + * parsed for a given location line that was already started, we insert an element + * to the given line with a null value. Without this, our charts on the client will + * display a continuous line for each of the points they are provided. + */ + + // a set of all the locations found for this result + const resultLocations = new Set(); + const linesByLocation: { [key: string]: LocationDurationLine } = {}; + dateHistogramBuckets.forEach(dateHistogramBucket => { + const x = dateHistogramBucket.key; + const docCount = dateHistogramBucket?.doc_count ?? 0; + // a set of all the locations for the current bucket + const bucketLocations = new Set(); + + dateHistogramBucket.location.buckets.forEach( + (locationBucket: { key: string; duration: { avg: number } }) => { + const locationName = locationBucket.key; + // store the location name in each set + bucketLocations.add(locationName); + resultLocations.add(locationName); + + // create a new line for this location if it doesn't exist + let currentLine: LocationDurationLine = linesByLocation?.[locationName] ?? undefined; + if (!currentLine) { + currentLine = { name: locationName, line: [] }; + linesByLocation[locationName] = currentLine; + monitorChartsData.locationDurationLines.push(currentLine); + } + // add the entry for the current location's duration average + currentLine.line.push({ x, y: locationBucket?.duration?.avg ?? null }); + } + ); + + // if there are more lines in the result than are represented in the current bucket, + // we must add null entries + if (dateHistogramBucket.location.buckets.length < resultLocations.size) { + resultLocations.forEach(resultLocation => { + // the current bucket has a value for this location, do nothing + if (location && location !== resultLocation) return; + // the current bucket had no value for this location, insert a null value + if (!bucketLocations.has(resultLocation)) { + const locationLine = monitorChartsData.locationDurationLines.find( + ({ name }) => name === resultLocation + ); + // in practice, there should always be a line present, but `find` can return `undefined` + if (locationLine) { + // this will create a gap in the line like we desire + locationLine.line.push({ x, y: null }); + } + } + }); + } + + monitorChartsData.status.push( + formatStatusBuckets(x, dateHistogramBucket?.status?.buckets ?? [], docCount) + ); + }); + + return monitorChartsData; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_details.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_details.ts new file mode 100644 index 00000000000000..b516fde1ce844b --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_details.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { MonitorDetails, MonitorError } from '../../../common/runtime_types'; +import { INDEX_NAMES } from '../../../common/constants'; + +export interface GetMonitorDetailsParams { + monitorId: string; + dateStart: string; + dateEnd: string; +} + +export const getMonitorDetails: UMElasticsearchQueryFn< + GetMonitorDetailsParams, + MonitorDetails +> = async ({ callES, monitorId, dateStart, dateEnd }) => { + const queryFilters: any = [ + { + range: { + '@timestamp': { + gte: dateStart, + lte: dateEnd, + }, + }, + }, + { + term: { + 'monitor.id': monitorId, + }, + }, + ]; + + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + size: 1, + _source: ['error', '@timestamp'], + query: { + bool: { + must: [ + { + exists: { + field: 'error', + }, + }, + ], + filter: queryFilters, + }, + }, + sort: [ + { + '@timestamp': { + order: 'desc', + }, + }, + ], + }, + }; + + const result = await callES('search', params); + + const data = result.hits.hits[0]?._source; + + const monitorError: MonitorError | undefined = data?.error; + const errorTimeStamp: string | undefined = data?.['@timestamp']; + + return { + monitorId, + error: monitorError, + timestamp: errorTimeStamp, + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_locations.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_locations.ts new file mode 100644 index 00000000000000..e1a0e14fe951d5 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_locations.ts @@ -0,0 +1,117 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { INDEX_NAMES, UNNAMED_LOCATION } from '../../../common/constants'; +import { MonitorLocations, MonitorLocation } from '../../../common/runtime_types'; + +/** + * Fetch data for the monitor page title. + */ +export interface GetMonitorLocationsParams { + /** + * @member monitorId the ID to query + */ + monitorId: string; + dateStart: string; + dateEnd: string; +} + +export const getMonitorLocations: UMElasticsearchQueryFn< + GetMonitorLocationsParams, + MonitorLocations +> = async ({ callES, monitorId, dateStart, dateEnd }) => { + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + size: 0, + query: { + bool: { + filter: [ + { + match: { + 'monitor.id': monitorId, + }, + }, + { + exists: { + field: 'summary', + }, + }, + { + range: { + '@timestamp': { + gte: dateStart, + lte: dateEnd, + }, + }, + }, + ], + }, + }, + aggs: { + location: { + terms: { + field: 'observer.geo.name', + missing: '__location_missing__', + }, + aggs: { + most_recent: { + top_hits: { + size: 1, + sort: { + '@timestamp': { + order: 'desc', + }, + }, + _source: ['monitor', 'summary', 'observer', '@timestamp'], + }, + }, + }, + }, + }, + }, + }; + + const result = await callES('search', params); + const locations = result?.aggregations?.location?.buckets ?? []; + + const getGeo = (locGeo: { name: string; location?: string }) => { + if (locGeo) { + const { name, location } = locGeo; + const latLon = location?.trim().split(','); + return { + name, + location: latLon + ? { + lat: latLon[0], + lon: latLon[1], + } + : undefined, + }; + } else { + return { + name: UNNAMED_LOCATION, + }; + } + }; + + const monLocs: MonitorLocation[] = []; + locations.forEach((loc: any) => { + const mostRecentLocation = loc.most_recent.hits.hits[0]._source; + const location: MonitorLocation = { + summary: mostRecentLocation?.summary, + geo: getGeo(mostRecentLocation?.observer?.geo), + timestamp: mostRecentLocation['@timestamp'], + }; + monLocs.push(location); + }); + + return { + monitorId, + locations: monLocs, + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_states.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_states.ts new file mode 100644 index 00000000000000..32c82b1fa2098d --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_monitor_states.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { CONTEXT_DEFAULTS } from '../../../common/constants'; +import { fetchPage } from './search'; +import { UMElasticsearchQueryFn } from '../adapters'; +import { MonitorSummary, SortOrder, CursorDirection } from '../../../common/graphql/types'; +import { QueryContext } from './search'; + +export interface CursorPagination { + cursorKey?: any; + cursorDirection: CursorDirection; + sortOrder: SortOrder; +} + +export interface GetMonitorStatesParams { + dateRangeStart: string; + dateRangeEnd: string; + pagination?: CursorPagination; + filters?: string | null; + statusFilter?: string; +} + +export interface GetMonitorStatesResult { + summaries: MonitorSummary[]; + nextPagePagination: string | null; + prevPagePagination: string | null; +} + +// To simplify the handling of the group of pagination vars they're passed back to the client as a string +const jsonifyPagination = (p: any): string | null => { + if (!p) { + return null; + } + + return JSON.stringify(p); +}; + +// Gets a page of monitor states. +export const getMonitorStates: UMElasticsearchQueryFn< + GetMonitorStatesParams, + GetMonitorStatesResult +> = async ({ callES, dateRangeStart, dateRangeEnd, pagination, filters, statusFilter }) => { + pagination = pagination || CONTEXT_DEFAULTS.CURSOR_PAGINATION; + statusFilter = statusFilter === null ? undefined : statusFilter; + const size = 10; + + const queryContext = new QueryContext( + callES, + dateRangeStart, + dateRangeEnd, + pagination, + filters && filters !== '' ? JSON.parse(filters) : null, + size, + statusFilter + ); + + const page = await fetchPage(queryContext); + + return { + summaries: page.items, + nextPagePagination: jsonifyPagination(page.nextPagePagination), + prevPagePagination: jsonifyPagination(page.prevPagePagination), + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_get_ping_historgram.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_ping_histogram.ts similarity index 60% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_get_ping_historgram.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/get_ping_histogram.ts index 66cae497eb0816..3b448dc31659b7 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/es_get_ping_historgram.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_ping_histogram.ts @@ -4,17 +4,29 @@ * you may not use this file except in compliance with the Elastic License. */ -import { get } from 'lodash'; -import { INDEX_NAMES, QUERY } from '../../../../common/constants'; -import { parseFilterQuery, getFilterClause } from '../../helper'; -import { UMElasticsearchQueryFn } from '../framework'; -import { GetPingHistogramParams, HistogramResult } from '../../../../common/types'; +import { UMElasticsearchQueryFn } from '../adapters'; +import { parseFilterQuery, getFilterClause } from '../helper'; +import { INDEX_NAMES, QUERY } from '../../../common/constants'; import { HistogramQueryResult } from './types'; +import { HistogramResult } from '../../../common/types'; -export const esGetPingHistogram: UMElasticsearchQueryFn< +export interface GetPingHistogramParams { + /** @member dateRangeStart timestamp bounds */ + from: string; + /** @member dateRangeEnd timestamp bounds */ + to: string; + /** @member filters user-defined filters */ + filters?: string | null; + /** @member monitorId optional limit to monitorId */ + monitorId?: string | null; + /** @member statusFilter special filter targeting the latest status of each monitor */ + statusFilter?: string | null; +} + +export const getPingHistogram: UMElasticsearchQueryFn< GetPingHistogramParams, HistogramResult -> = async ({ callES, dateStart, dateEnd, filters, monitorId, statusFilter }) => { +> = async ({ callES, from, to, filters, monitorId, statusFilter }) => { const boolFilters = parseFilterQuery(filters); const additionalFilters = []; if (monitorId) { @@ -23,7 +35,7 @@ export const esGetPingHistogram: UMElasticsearchQueryFn< if (boolFilters) { additionalFilters.push(boolFilters); } - const filter = getFilterClause(dateStart, dateEnd, additionalFilters); + const filter = getFilterClause(from, to, additionalFilters); const params = { index: INDEX_NAMES.HEARTBEAT, @@ -63,11 +75,11 @@ export const esGetPingHistogram: UMElasticsearchQueryFn< const result = await callES('search', params); const interval = result.aggregations.timeseries?.interval; - const buckets: HistogramQueryResult[] = get(result, 'aggregations.timeseries.buckets', []); + const buckets: HistogramQueryResult[] = result?.aggregations?.timeseries?.buckets ?? []; const histogram = buckets.map(bucket => { - const x: number = get(bucket, 'key'); - const downCount: number = get(bucket, 'down.doc_count'); - const upCount: number = get(bucket, 'up.doc_count'); + const x: number = bucket.key; + const downCount: number = bucket.down.doc_count; + const upCount: number = bucket.up.doc_count; return { x, downCount: statusFilter && statusFilter !== 'down' ? 0 : downCount, diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_pings.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_pings.ts new file mode 100644 index 00000000000000..381aca720dc1d9 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_pings.ts @@ -0,0 +1,108 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters/framework'; +import { PingResults, Ping, HttpBody } from '../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../common/constants'; + +export interface GetPingsParams { + /** @member dateRangeStart timestamp bounds */ + dateRangeStart: string; + + /** @member dateRangeEnd timestamp bounds */ + dateRangeEnd: string; + + /** @member monitorId optional limit by monitorId */ + monitorId?: string | null; + + /** @member status optional limit by check statuses */ + status?: string | null; + + /** @member sort optional sort by timestamp */ + sort?: string | null; + + /** @member size optional limit query size */ + size?: number | null; + + /** @member location optional location value for use in filtering*/ + location?: string | null; +} + +export const getPings: UMElasticsearchQueryFn = async ({ + callES, + dateRangeStart, + dateRangeEnd, + monitorId, + status, + sort, + size, + location, +}) => { + const sortParam = { sort: [{ '@timestamp': { order: sort ?? 'desc' } }] }; + const sizeParam = size ? { size } : undefined; + const filter: any[] = [{ range: { '@timestamp': { gte: dateRangeStart, lte: dateRangeEnd } } }]; + if (monitorId) { + filter.push({ term: { 'monitor.id': monitorId } }); + } + if (status) { + filter.push({ term: { 'monitor.status': status } }); + } + + let postFilterClause = {}; + if (location) { + postFilterClause = { post_filter: { term: { 'observer.geo.name': location } } }; + } + const queryContext = { bool: { filter } }; + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + query: { + ...queryContext, + }, + ...sortParam, + ...sizeParam, + aggregations: { + locations: { + terms: { + field: 'observer.geo.name', + missing: 'N/A', + size: 1000, + }, + }, + }, + ...postFilterClause, + }, + }; + + const { + hits: { hits, total }, + aggregations: aggs, + } = await callES('search', params); + + const locations = aggs?.locations ?? { buckets: [{ key: 'N/A', doc_count: 0 }] }; + + const pings: Ping[] = hits.map(({ _id, _source }: any) => { + const timestamp = _source['@timestamp']; + + // Calculate here the length of the content string in bytes, this is easier than in client JS, where + // we don't have access to Buffer.byteLength. There are some hacky ways to do this in the + // client but this is cleaner. + const httpBody: HttpBody | undefined = _source?.http?.response?.body; + if (httpBody && httpBody.content) { + httpBody.content_bytes = Buffer.byteLength(httpBody.content); + } + + return { id: _id, timestamp, ..._source }; + }); + + const results: PingResults = { + total: total.value, + locations: locations.buckets.map((bucket: { key: string }) => bucket.key), + pings, + }; + + return results; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_snapshot_counts.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_snapshot_counts.ts new file mode 100644 index 00000000000000..62369711460159 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_snapshot_counts.ts @@ -0,0 +1,102 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { Snapshot } from '../../../common/runtime_types'; +import { QueryContext, MonitorGroupIterator } from './search'; +import { CONTEXT_DEFAULTS, INDEX_NAMES } from '../../../common/constants'; + +export interface GetSnapshotCountParams { + dateRangeStart: string; + dateRangeEnd: string; + filters?: string | null; + statusFilter?: string; +} + +const fastStatusCount = async (context: QueryContext): Promise => { + const params = { + index: INDEX_NAMES.HEARTBEAT, + body: { + size: 0, + query: { bool: { filter: await context.dateAndCustomFilters() } }, + aggs: { + unique: { + // We set the precision threshold to 40k which is the max precision supported by cardinality + cardinality: { field: 'monitor.id', precision_threshold: 40000 }, + }, + down: { + filter: { range: { 'summary.down': { gt: 0 } } }, + aggs: { + unique: { cardinality: { field: 'monitor.id', precision_threshold: 40000 } }, + }, + }, + }, + }, + }; + + const statistics = await context.search(params); + const total = statistics.aggregations.unique.value; + const down = statistics.aggregations.down.unique.value; + + return { + total, + down, + up: total - down, + }; +}; + +const slowStatusCount = async (context: QueryContext, status: string): Promise => { + const downContext = context.clone(); + downContext.statusFilter = status; + const iterator = new MonitorGroupIterator(downContext); + let count = 0; + while (await iterator.next()) { + count++; + } + return count; +}; + +export const getSnapshotCount: UMElasticsearchQueryFn = async ({ + callES, + dateRangeStart, + dateRangeEnd, + filters, + statusFilter, +}): Promise => { + if (!(statusFilter === 'up' || statusFilter === 'down' || statusFilter === undefined)) { + throw new Error(`Invalid status filter value '${statusFilter}'`); + } + + const context = new QueryContext( + callES, + dateRangeStart, + dateRangeEnd, + CONTEXT_DEFAULTS.CURSOR_PAGINATION, + filters && filters !== '' ? JSON.parse(filters) : null, + Infinity, + statusFilter + ); + + // Calculate the total, up, and down counts. + const counts = await fastStatusCount(context); + + // Check if the last count was accurate, if not, we need to perform a slower count with the + // MonitorGroupsIterator. + if (!(await context.hasTimespan())) { + // Figure out whether 'up' or 'down' is more common. It's faster to count the lower cardinality + // one then use subtraction to figure out its opposite. + const [leastCommonStatus, mostCommonStatus]: Array<'up' | 'down'> = + counts.up > counts.down ? ['down', 'up'] : ['up', 'down']; + counts[leastCommonStatus] = await slowStatusCount(context, leastCommonStatus); + counts[mostCommonStatus] = counts.total - counts[leastCommonStatus]; + } + + return { + total: statusFilter ? counts[statusFilter] : counts.total, + up: statusFilter === 'down' ? 0 : counts.up, + down: statusFilter === 'up' ? 0 : counts.down, + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/get_states_index_status.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/get_states_index_status.ts new file mode 100644 index 00000000000000..5044b9a6932cf0 --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/get_states_index_status.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { StatesIndexStatus } from '../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../common/constants'; + +export const getStatesIndexStatus: UMElasticsearchQueryFn<{}, StatesIndexStatus> = async ({ + callES, +}) => { + const { + _shards: { total }, + count, + } = await callES('count', { index: INDEX_NAMES.HEARTBEAT }); + return { + indexExists: total > 0, + docCount: { + count, + }, + }; +}; diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/index.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/index.ts new file mode 100644 index 00000000000000..f41b7257524fdd --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { getDocCount } from './get_doc_count'; +export { getFilterBar, GetFilterBarParams } from './get_filter_bar'; +export { getUptimeIndexPattern as getIndexPattern } from './get_index_pattern'; +export { getLatestMonitor, GetLatestMonitorParams } from './get_latest_monitor'; +export { getMonitor, GetMonitorParams } from './get_monitor'; +export { getMonitorCharts, GetMonitorChartsParams } from './get_monitor_charts'; +export { getMonitorDetails, GetMonitorDetailsParams } from './get_monitor_details'; +export { getMonitorLocations, GetMonitorLocationsParams } from './get_monitor_locations'; +export { getMonitorStates, GetMonitorStatesParams } from './get_monitor_states'; +export { getPings, GetPingsParams } from './get_pings'; +export { getPingHistogram, GetPingHistogramParams } from './get_ping_histogram'; +export { UptimeRequests } from './uptime_requests'; +export { getSnapshotCount, GetSnapshotCountParams } from './get_snapshot_counts'; +export { getStatesIndexStatus } from './get_states_index_status'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/fetch_page.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/fetch_page.test.ts similarity index 97% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/fetch_page.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/fetch_page.test.ts index 0bbdaa87a5e661..d519a4e75463f2 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/fetch_page.test.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/fetch_page.test.ts @@ -12,7 +12,7 @@ import { MonitorGroupsPage, } from '../fetch_page'; import { QueryContext } from '../query_context'; -import { MonitorSummary } from '../../../../../../common/graphql/types'; +import { MonitorSummary } from '../../../../../common/graphql/types'; import { nextPagination, prevPagination, simpleQueryContext } from './test_helpers'; const simpleFixture: MonitorGroups[] = [ diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/find_potential_matches_test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/find_potential_matches_test.ts similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/find_potential_matches_test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/find_potential_matches_test.ts diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/monitor_group_iterator.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/monitor_group_iterator.test.ts similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/monitor_group_iterator.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/monitor_group_iterator.test.ts diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/query_context.test.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/query_context.test.ts similarity index 94% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/query_context.test.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/query_context.test.ts index 8924d07ac0c4dc..86506c2c4c044d 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/query_context.test.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/query_context.test.ts @@ -5,8 +5,8 @@ */ import { QueryContext } from '../query_context'; -import { CursorPagination } from '../..'; -import { CursorDirection, SortOrder } from '../../../../../../common/graphql/types'; +import { CursorPagination } from '../types'; +import { CursorDirection, SortOrder } from '../../../../../common/graphql/types'; describe(QueryContext, () => { // 10 minute range diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/test_helpers.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/test_helpers.ts similarity index 85% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/test_helpers.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/test_helpers.ts index bb3f3da3e289da..98b192d14f91a6 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/__tests__/test_helpers.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/__tests__/test_helpers.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { CursorPagination } from '../../adapter_types'; -import { CursorDirection, SortOrder } from '../../../../../../common/graphql/types'; +import { CursorPagination } from '../types'; +import { CursorDirection, SortOrder } from '../../../../../common/graphql/types'; import { QueryContext } from '../query_context'; export const prevPagination = (key: any): CursorPagination => { diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/enrich_monitor_groups.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/enrich_monitor_groups.ts similarity index 98% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/enrich_monitor_groups.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/enrich_monitor_groups.ts index b64015424ff401..e37c749e63566f 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/enrich_monitor_groups.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/enrich_monitor_groups.ts @@ -6,15 +6,15 @@ import { get, sortBy } from 'lodash'; import { QueryContext } from './query_context'; -import { getHistogramIntervalFormatted } from '../../../helper'; -import { INDEX_NAMES, STATES } from '../../../../../common/constants'; +import { getHistogramIntervalFormatted } from '../../helper'; +import { INDEX_NAMES, STATES } from '../../../../common/constants'; import { MonitorSummary, SummaryHistogram, Check, CursorDirection, SortOrder, -} from '../../../../../common/graphql/types'; +} from '../../../../common/graphql/types'; import { MonitorEnricher } from './fetch_page'; export const enrichMonitorGroups: MonitorEnricher = async ( diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/fetch_chunk.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/fetch_chunk.ts similarity index 100% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/fetch_chunk.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/fetch_chunk.ts diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/fetch_page.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/fetch_page.ts similarity index 97% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/fetch_page.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/fetch_page.ts index 046bdc8a8d07d8..6440850dc0ffc0 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/fetch_page.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/fetch_page.ts @@ -5,10 +5,10 @@ */ import { flatten } from 'lodash'; -import { CursorPagination } from '../adapter_types'; +import { CursorPagination } from './types'; import { QueryContext } from './query_context'; -import { QUERY } from '../../../../../common/constants'; -import { CursorDirection, MonitorSummary, SortOrder } from '../../../../../common/graphql/types'; +import { QUERY } from '../../../../common/constants'; +import { CursorDirection, MonitorSummary, SortOrder } from '../../../../common/graphql/types'; import { enrichMonitorGroups } from './enrich_monitor_groups'; import { MonitorGroupIterator } from './monitor_group_iterator'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/find_potential_matches.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/find_potential_matches.ts similarity index 96% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/find_potential_matches.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/find_potential_matches.ts index 634d6369531d8c..fc0e35b279e0b0 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/find_potential_matches.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/find_potential_matches.ts @@ -5,8 +5,8 @@ */ import { get, set } from 'lodash'; -import { CursorDirection } from '../../../../../common/graphql/types'; -import { INDEX_NAMES } from '../../../../../common/constants'; +import { CursorDirection } from '../../../../common/graphql/types'; +import { INDEX_NAMES } from '../../../../common/constants'; import { QueryContext } from './query_context'; // This is the first phase of the query. In it, we find the most recent check groups that matched the given query. diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/index.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/index.ts similarity index 89% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/index.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/index.ts index 040c256935692f..8de5687808d611 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/index.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/index.ts @@ -6,3 +6,4 @@ export { fetchPage, MonitorGroups, MonitorLocCheckGroup, MonitorGroupsPage } from './fetch_page'; export { MonitorGroupIterator } from './monitor_group_iterator'; +export { QueryContext } from './query_context'; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/monitor_group_iterator.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/monitor_group_iterator.ts similarity index 98% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/monitor_group_iterator.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/monitor_group_iterator.ts index 27c16863a37ab3..ced557dbf62e08 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/monitor_group_iterator.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/monitor_group_iterator.ts @@ -5,10 +5,10 @@ */ import { QueryContext } from './query_context'; -import { CursorPagination } from '../adapter_types'; import { fetchChunk } from './fetch_chunk'; -import { CursorDirection } from '../../../../../common/graphql/types'; +import { CursorDirection } from '../../../../common/graphql/types'; import { MonitorGroups } from './fetch_page'; +import { CursorPagination } from './types'; // Hardcoded chunk size for how many monitors to fetch at a time when querying export const CHUNK_SIZE = 1000; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/query_context.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/query_context.ts similarity index 94% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/query_context.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/query_context.ts index a51931ba11630b..f5b13c165d87d9 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/query_context.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/query_context.ts @@ -5,10 +5,10 @@ */ import moment from 'moment'; -import { APICaller } from 'kibana/server'; -import { CursorPagination } from '../adapter_types'; -import { INDEX_NAMES } from '../../../../../common/constants'; -import { parseRelativeDate } from '../../../helper/get_histogram_interval'; +import { APICaller } from 'src/core/server'; +import { INDEX_NAMES } from '../../../../common/constants'; +import { CursorPagination } from './types'; +import { parseRelativeDate } from '../../helper'; export class QueryContext { callES: APICaller; diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/refine_potential_matches.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/refine_potential_matches.ts similarity index 97% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/refine_potential_matches.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/refine_potential_matches.ts index f8347d07375218..a55301555c8bf1 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitor_states/search/refine_potential_matches.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/refine_potential_matches.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { INDEX_NAMES } from '../../../../../common/constants'; +import { INDEX_NAMES } from '../../../../common/constants'; import { QueryContext } from './query_context'; -import { CursorDirection } from '../../../../../common/graphql/types'; +import { CursorDirection } from '../../../../common/graphql/types'; import { MonitorGroups, MonitorLocCheckGroup } from './fetch_page'; /** diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/index.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/search/types.ts similarity index 55% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/index.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/search/types.ts index d02068a11e8d8f..dc6021a91146af 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/monitors/index.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/search/types.ts @@ -4,5 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -export * from './adapter_types'; -export { elasticsearchMonitorsAdapter } from './elasticsearch_monitors_adapter'; +import { CursorDirection, SortOrder } from '../../../../common/graphql/types'; + +export interface CursorPagination { + cursorKey?: any; + cursorDirection: CursorDirection; + sortOrder: SortOrder; +} diff --git a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/types.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/types.ts similarity index 88% rename from x-pack/legacy/plugins/uptime/server/lib/adapters/pings/types.ts rename to x-pack/legacy/plugins/uptime/server/lib/requests/types.ts index b1b1589af2ca7b..7f65e80113d8fe 100644 --- a/x-pack/legacy/plugins/uptime/server/lib/adapters/pings/types.ts +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/types.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DocCount, Ping, PingResults } from '../../../../common/graphql/types'; -import { UMElasticsearchQueryFn } from '../framework'; -import { GetPingHistogramParams, HistogramResult } from '../../../../common/types'; +import { DocCount, Ping, PingResults } from '../../../common/graphql/types'; +import { UMElasticsearchQueryFn } from '../adapters'; +import { GetPingHistogramParams, HistogramResult } from '../../../common/types'; export interface GetAllParams { /** @member dateRangeStart timestamp bounds */ @@ -63,13 +63,12 @@ export interface UMPingsAdapter { export interface HistogramQueryResult { key: number; + key_as_string: string; doc_count: number; - bucket_total: { - value: number; - }; down: { - bucket_count: { - value: number; - }; + doc_count: number; + }; + up: { + doc_count: number; }; } diff --git a/x-pack/legacy/plugins/uptime/server/lib/requests/uptime_requests.ts b/x-pack/legacy/plugins/uptime/server/lib/requests/uptime_requests.ts new file mode 100644 index 00000000000000..182c944e8388ad --- /dev/null +++ b/x-pack/legacy/plugins/uptime/server/lib/requests/uptime_requests.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { UMElasticsearchQueryFn } from '../adapters'; +import { + DocCount, + Ping, + MonitorChart, + PingResults, + StatesIndexStatus, +} from '../../../common/graphql/types'; +import { + GetFilterBarParams, + GetLatestMonitorParams, + GetMonitorParams, + GetMonitorChartsParams, + GetMonitorDetailsParams, + GetMonitorLocationsParams, + GetMonitorStatesParams, + GetPingsParams, + GetPingHistogramParams, +} from '.'; +import { + OverviewFilters, + MonitorDetails, + MonitorLocations, + Snapshot, +} from '../../../common/runtime_types'; +import { GetMonitorStatesResult } from './get_monitor_states'; +import { GetSnapshotCountParams } from './get_snapshot_counts'; +import { HistogramResult } from '../../../common/types'; + +type ESQ = UMElasticsearchQueryFn; + +export interface UptimeRequests { + getDocCount: ESQ<{}, DocCount>; + getFilterBar: ESQ; + getIndexPattern: ESQ; + getLatestMonitor: ESQ; + getMonitor: ESQ; + getMonitorCharts: ESQ; + getMonitorDetails: ESQ; + getMonitorLocations: ESQ; + getMonitorStates: ESQ; + getPings: ESQ; + getPingHistogram: ESQ; + getSnapshotCount: ESQ; + getStatesIndexStatus: ESQ<{}, StatesIndexStatus>; +} diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/index.ts b/x-pack/legacy/plugins/uptime/server/rest_api/index.ts index 91936b499d8e62..aa3b36ec7d9194 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/index.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/index.ts @@ -5,7 +5,7 @@ */ import { createGetOverviewFilters } from './overview_filters'; -import { createGetAllRoute } from './pings'; +import { createGetPingsRoute } from './pings'; import { createGetIndexPatternRoute } from './index_pattern'; import { createLogMonitorPageRoute, createLogOverviewPageRoute } from './telemetry'; import { createGetSnapshotCount } from './snapshot'; @@ -23,7 +23,7 @@ export { createRouteWithAuth } from './create_route_with_auth'; export { uptimeRouteWrapper } from './uptime_route_wrapper'; export const restApiRoutes: UMRestApiRouteFactory[] = [ createGetOverviewFilters, - createGetAllRoute, + createGetPingsRoute, createGetIndexPatternRoute, createGetMonitorRoute, createGetMonitorDetailsRoute, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/index_pattern/get_index_pattern.ts b/x-pack/legacy/plugins/uptime/server/rest_api/index_pattern/get_index_pattern.ts index cee8eaf3f9caeb..cc65749153c1d8 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/index_pattern/get_index_pattern.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/index_pattern/get_index_pattern.ts @@ -18,7 +18,7 @@ export const createGetIndexPatternRoute: UMRestApiRouteFactory = (libs: UMServer try { return response.ok({ body: { - ...(await libs.stubIndexPattern.getUptimeIndexPattern(callES)), + ...(await libs.requests.getIndexPattern(callES)), }, }); } catch (e) { diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitor_locations.ts b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitor_locations.ts index b2356ae0a88bf1..f8c7666f53f7d6 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitor_locations.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitor_locations.ts @@ -26,7 +26,7 @@ export const createGetMonitorLocationsRoute: UMRestApiRouteFactory = (libs: UMSe return response.ok({ body: { - ...(await libs.monitors.getMonitorLocations({ + ...(await libs.requests.getMonitorLocations({ callES, monitorId, dateStart, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitors_details.ts b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitors_details.ts index 9e1bc6f0d6a96b..ca88dd965c1ad5 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitors_details.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/monitors_details.ts @@ -25,7 +25,7 @@ export const createGetMonitorDetailsRoute: UMRestApiRouteFactory = (libs: UMServ const { monitorId, dateStart, dateEnd } = request.query; return response.ok({ body: { - ...(await libs.monitors.getMonitorDetails({ + ...(await libs.requests.getMonitorDetails({ callES, monitorId, dateStart, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/status.ts b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/status.ts index 8b1bc04b451109..8dac50c9f5905d 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/monitors/status.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/monitors/status.ts @@ -24,7 +24,7 @@ export const createGetMonitorRoute: UMRestApiRouteFactory = (libs: UMServerLibs) return response.ok({ body: { - ...(await libs.pings.getMonitor({ callES, monitorId })), + ...(await libs.requests.getMonitor({ callES, monitorId })), }, }); }, @@ -45,7 +45,7 @@ export const createGetStatusBarRoute: UMRestApiRouteFactory = (libs: UMServerLib }, handler: async ({ callES }, _context, request, response): Promise => { const { monitorId, dateStart, dateEnd } = request.query; - const result = await libs.pings.getLatestMonitorStatus({ + const result = await libs.requests.getLatestMonitor({ callES, monitorId, dateStart, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/overview_filters/get_overview_filters.ts b/x-pack/legacy/plugins/uptime/server/rest_api/overview_filters/get_overview_filters.ts index ef93253bb5b700..02e54cb4418382 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/overview_filters/get_overview_filters.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/overview_filters/get_overview_filters.ts @@ -43,7 +43,7 @@ export const createGetOverviewFilters: UMRestApiRouteFactory = (libs: UMServerLi } } - const filtersResponse = await libs.monitors.getFilterBar({ + const filtersResponse = await libs.requests.getFilterBar({ callES, dateRangeStart, dateRangeEnd, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts b/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts index c8eb2a1e40ad44..93ba4490fa31f6 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts @@ -26,10 +26,10 @@ export const createGetPingHistogramRoute: UMRestApiRouteFactory = (libs: UMServe handler: async ({ callES }, _context, request, response): Promise => { const { dateStart, dateEnd, statusFilter, monitorId, filters } = request.query; - const result = await libs.pings.getPingHistogram({ + const result = await libs.requests.getPingHistogram({ callES, - dateStart, - dateEnd, + from: dateStart, + to: dateEnd, monitorId, statusFilter, filters, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_all.ts b/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_pings.ts similarity index 90% rename from x-pack/legacy/plugins/uptime/server/rest_api/pings/get_all.ts rename to x-pack/legacy/plugins/uptime/server/rest_api/pings/get_pings.ts index 824035954ea284..e57951c98b6fce 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_all.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/pings/get_pings.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import { UMServerLibs } from '../../lib/lib'; import { UMRestApiRouteFactory } from '../types'; -export const createGetAllRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ +export const createGetPingsRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ method: 'GET', path: '/api/uptime/pings', validate: { @@ -28,7 +28,7 @@ export const createGetAllRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => handler: async ({ callES }, _context, request, response): Promise => { const { dateRangeStart, dateRangeEnd, location, monitorId, size, sort, status } = request.query; - const result = await libs.pings.getAll({ + const result = await libs.requests.getPings({ callES, dateRangeStart, dateRangeEnd, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/pings/index.ts b/x-pack/legacy/plugins/uptime/server/rest_api/pings/index.ts index 43acf5410c8eda..abb7da26f994f0 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/pings/index.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/pings/index.ts @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export { createGetAllRoute } from './get_all'; +export { createGetPingsRoute } from './get_pings'; diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/snapshot/get_snapshot_count.ts b/x-pack/legacy/plugins/uptime/server/rest_api/snapshot/get_snapshot_count.ts index 986ac797d63b62..c51806e3233071 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/snapshot/get_snapshot_count.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/snapshot/get_snapshot_count.ts @@ -24,7 +24,7 @@ export const createGetSnapshotCount: UMRestApiRouteFactory = (libs: UMServerLibs }, handler: async ({ callES }, _context, request, response): Promise => { const { dateRangeStart, dateRangeEnd, filters, statusFilter } = request.query; - const result = await libs.monitorStates.getSnapshotCount({ + const result = await libs.requests.getSnapshotCount({ callES, dateRangeStart, dateRangeEnd, diff --git a/x-pack/legacy/plugins/uptime/server/rest_api/types.ts b/x-pack/legacy/plugins/uptime/server/rest_api/types.ts index e0c8ba4a286cf6..a0566c225eae7f 100644 --- a/x-pack/legacy/plugins/uptime/server/rest_api/types.ts +++ b/x-pack/legacy/plugins/uptime/server/rest_api/types.ts @@ -15,7 +15,7 @@ import { KibanaRequest, KibanaResponseFactory, IKibanaResponse, -} from 'kibana/server'; +} from 'src/core/server'; import { UMServerLibs } from '../lib/lib'; /** diff --git a/x-pack/test/functional/services/uptime.ts b/x-pack/test/functional/services/uptime.ts index 1d8e0c97b99c4d..938be2c71ae743 100644 --- a/x-pack/test/functional/services/uptime.ts +++ b/x-pack/test/functional/services/uptime.ts @@ -9,6 +9,7 @@ import { FtrProviderContext } from '../ftr_provider_context'; export function UptimeProvider({ getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const browser = getService('browser'); + const retry = getService('retry'); return { async assertExists(key: string) { @@ -17,7 +18,9 @@ export function UptimeProvider({ getService }: FtrProviderContext) { } }, async monitorIdExists(key: string) { - await testSubjects.existOrFail(key); + await retry.tryForTime(10000, async () => { + await testSubjects.existOrFail(key); + }); }, async monitorPageLinkExists(monitorId: string) { await testSubjects.existOrFail(`monitor-page-link-${monitorId}`); From 8cca8b9c8c56f21d50301f231e321e9382dbf702 Mon Sep 17 00:00:00 2001 From: Daniil Suleiman <31325372+sulemanof@users.noreply.github.com> Date: Wed, 5 Feb 2020 19:20:19 +0300 Subject: [PATCH 16/33] [Vis Editor] Fix fields filtering in top hit agg (#56367) * Fix top hit agg * Add unit tests * Fix fields filtering in table vis * Resolve merge conflicts Co-authored-by: Elastic Machine --- .../data/public/search/aggs/agg_config.ts | 7 +- .../search/aggs/metrics/metric_agg_type.ts | 3 +- .../public/search/aggs/metrics/top_hit.ts | 17 ++--- .../search/aggs/param_types/field.test.ts | 65 ++++++++++++++++++- .../public/search/aggs/param_types/field.ts | 28 ++++---- .../components/agg_params_helper.test.ts | 10 +-- .../public/components/agg_params_helper.ts | 4 +- .../public/legacy_imports.ts | 1 - .../data/public/index_patterns/index.ts | 2 +- 9 files changed, 98 insertions(+), 39 deletions(-) diff --git a/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts b/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts index 769347a26c34c2..ba7faf8c34b59a 100644 --- a/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/agg_config.ts @@ -58,6 +58,11 @@ const unknownSchema: Schema = { defaults: {}, editor: false, group: AggGroupNames.Metrics, + aggSettings: { + top_hits: { + allowStrings: true, + }, + }, }; const getTypeFromRegistry = (type: string): IAggType => { @@ -438,7 +443,7 @@ export class AggConfig { if (fieldParam) { // @ts-ignore - availableFields = fieldParam.getAvailableFields(this.getIndexPattern().fields); + availableFields = fieldParam.getAvailableFields(this); } // clear out the previous params except for a few special ones diff --git a/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts index e7d286c187ef87..3bae7b92618dcd 100644 --- a/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/metric_agg_type.ts @@ -24,6 +24,7 @@ import { AggParamType } from '../param_types/agg'; import { AggConfig } from '../agg_config'; import { METRIC_TYPES } from './metric_agg_types'; import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; +import { FilterFieldTypes } from '../param_types/field'; export interface IMetricAggConfig extends AggConfig { type: InstanceType; @@ -31,7 +32,7 @@ export interface IMetricAggConfig extends AggConfig { export interface MetricAggParam extends AggParamType { - filterFieldTypes?: KBN_FIELD_TYPES | KBN_FIELD_TYPES[] | '*'; + filterFieldTypes?: FilterFieldTypes; onlyAggregatable?: boolean; } diff --git a/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts index 81bd14ded75b06..3112d882bb87e8 100644 --- a/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/metrics/top_hit.ts @@ -20,7 +20,6 @@ import _ from 'lodash'; import { i18n } from '@kbn/i18n'; import { IMetricAggConfig, MetricAggType } from './metric_agg_type'; -import { aggTypeFieldFilters } from '../param_types/filter'; import { METRIC_TYPES } from './metric_agg_types'; import { KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; @@ -33,17 +32,6 @@ const isNumericFieldSelected = (agg: IMetricAggConfig) => { return field && field.type && field.type === KBN_FIELD_TYPES.NUMBER; }; -aggTypeFieldFilters.addFilter((field, aggConfig) => { - if ( - aggConfig.type.name !== METRIC_TYPES.TOP_HITS || - _.get(aggConfig.schema, 'aggSettings.top_hits.allowStrings', false) - ) { - return true; - } - - return field.type === KBN_FIELD_TYPES.NUMBER; -}); - export const topHitMetricAgg = new MetricAggType({ name: METRIC_TYPES.TOP_HITS, title: i18n.translate('data.search.aggs.metrics.topHitTitle', { @@ -75,7 +63,10 @@ export const topHitMetricAgg = new MetricAggType({ name: 'field', type: 'field', onlyAggregatable: false, - filterFieldTypes: '*', + filterFieldTypes: (aggConfig: IMetricAggConfig) => + _.get(aggConfig.schema, 'aggSettings.top_hits.allowStrings', false) + ? '*' + : KBN_FIELD_TYPES.NUMBER, write(agg, output) { const field = agg.getParam('field'); output.params = {}; diff --git a/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts index d0fa711d89c70f..fa88754ac60b94 100644 --- a/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.test.ts @@ -17,9 +17,13 @@ * under the License. */ +import { get } from 'lodash'; import { BaseParamType } from './base'; import { FieldParamType } from './field'; import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; +import { IAggConfig } from '../agg_config'; +import { IMetricAggConfig } from '../metrics/metric_agg_type'; +import { Schema } from '../schemas'; jest.mock('ui/new_platform'); @@ -45,7 +49,11 @@ describe('Field', () => { searchable: true, }, ], - } as any; + }; + + const agg = ({ + getIndexPattern: jest.fn(() => indexPattern), + } as unknown) as IAggConfig; describe('constructor', () => { it('it is an instance of BaseParamType', () => { @@ -65,7 +73,7 @@ describe('Field', () => { type: 'field', }); - const fields = aggParam.getAvailableFields(indexPattern.fields); + const fields = aggParam.getAvailableFields(agg); expect(fields.length).toBe(1); @@ -82,7 +90,58 @@ describe('Field', () => { aggParam.onlyAggregatable = false; - const fields = aggParam.getAvailableFields(indexPattern.fields); + const fields = aggParam.getAvailableFields(agg); + + expect(fields.length).toBe(2); + }); + + it('should return all fields if filterFieldTypes was not specified', () => { + const aggParam = new FieldParamType({ + name: 'field', + type: 'field', + }); + + indexPattern.fields[1].aggregatable = true; + + const fields = aggParam.getAvailableFields(agg); + + expect(fields.length).toBe(2); + }); + + it('should return only numeric fields if filterFieldTypes was specified as a function', () => { + const aggParam = new FieldParamType({ + name: 'field', + type: 'field', + filterFieldTypes: (aggConfig: IMetricAggConfig) => + get(aggConfig.schema, 'aggSettings.top_hits.allowStrings', false) + ? '*' + : KBN_FIELD_TYPES.NUMBER, + }); + const fields = aggParam.getAvailableFields(agg); + + expect(fields.length).toBe(1); + expect(fields[0].type).toBe(KBN_FIELD_TYPES.NUMBER); + }); + + it('should return all fields if filterFieldTypes was specified as a function and aggSettings allow string type fields', () => { + const aggParam = new FieldParamType({ + name: 'field', + type: 'field', + filterFieldTypes: (aggConfig: IMetricAggConfig) => + get(aggConfig.schema, 'aggSettings.top_hits.allowStrings', false) + ? '*' + : KBN_FIELD_TYPES.NUMBER, + }); + + agg.schema = { + aggSettings: { + top_hits: { + allowStrings: true, + }, + }, + } as Schema; + + const fields = aggParam.getAvailableFields(agg); expect(fields.length).toBe(2); }); diff --git a/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts index c41c159ad0f78a..9a204bb151e2dc 100644 --- a/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts +++ b/src/legacy/core_plugins/data/public/search/aggs/param_types/field.ts @@ -17,24 +17,27 @@ * under the License. */ -// @ts-ignore import { i18n } from '@kbn/i18n'; +import { isFunction } from 'lodash'; import { npStart } from 'ui/new_platform'; -import { AggConfig } from '../agg_config'; +import { IAggConfig } from '../agg_config'; import { SavedObjectNotFound } from '../../../../../../../plugins/kibana_utils/public'; import { BaseParamType } from './base'; import { propFilter } from '../filter'; -import { Field, IFieldList, isNestedField } from '../../../../../../../plugins/data/public'; +import { IMetricAggConfig } from '../metrics/metric_agg_type'; +import { Field, isNestedField, KBN_FIELD_TYPES } from '../../../../../../../plugins/data/public'; const filterByType = propFilter('type'); +type FieldTypes = KBN_FIELD_TYPES | KBN_FIELD_TYPES[] | '*'; +export type FilterFieldTypes = ((aggConfig: IMetricAggConfig) => FieldTypes) | FieldTypes; // TODO need to make a more explicit interface for this export type IFieldParamType = FieldParamType; export class FieldParamType extends BaseParamType { required = true; scriptable = true; - filterFieldTypes: string; + filterFieldTypes: FilterFieldTypes; onlyAggregatable: boolean; constructor(config: Record) { @@ -44,7 +47,7 @@ export class FieldParamType extends BaseParamType { this.onlyAggregatable = config.onlyAggregatable !== false; if (!config.write) { - this.write = (aggConfig: AggConfig, output: Record) => { + this.write = (aggConfig: IAggConfig, output: Record) => { const field = aggConfig.getField(); if (!field) { @@ -73,7 +76,7 @@ export class FieldParamType extends BaseParamType { return field.name; }; - this.deserialize = (fieldName: string, aggConfig?: AggConfig) => { + this.deserialize = (fieldName: string, aggConfig?: IAggConfig) => { if (!aggConfig) { throw new Error('aggConfig was not provided to FieldParamType deserialize function'); } @@ -84,9 +87,7 @@ export class FieldParamType extends BaseParamType { } // @ts-ignore - const validField = this.getAvailableFields(aggConfig.getIndexPattern().fields).find( - (f: any) => f.name === fieldName - ); + const validField = this.getAvailableFields(aggConfig).find((f: any) => f.name === fieldName); if (!validField) { npStart.core.notifications.toasts.addDanger( i18n.translate( @@ -109,7 +110,8 @@ export class FieldParamType extends BaseParamType { /** * filter the fields to the available ones */ - getAvailableFields = (fields: IFieldList) => { + getAvailableFields = (aggConfig: IAggConfig) => { + const fields = aggConfig.getIndexPattern().fields; const filteredFields = fields.filter((field: Field) => { const { onlyAggregatable, scriptable, filterFieldTypes } = this; @@ -120,8 +122,10 @@ export class FieldParamType extends BaseParamType { return false; } - if (!filterFieldTypes) { - return true; + if (isFunction(filterFieldTypes)) { + const filter = filterFieldTypes(aggConfig as IMetricAggConfig); + + return filterByType([field], filter).length !== 0; } return filterByType([field], filterFieldTypes).length !== 0; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts index b9fb81fccd32c9..f3bee80baa1bab 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.test.ts @@ -17,9 +17,9 @@ * under the License. */ -import { IndexPattern, Field } from 'src/plugins/data/public'; +import { IndexPattern } from 'src/plugins/data/public'; import { VisState } from 'src/legacy/core_plugins/visualizations/public'; -import { IAggConfig, IAggType, AggGroupNames, BUCKET_TYPES, IndexedArray } from '../legacy_imports'; +import { IAggConfig, IAggType, AggGroupNames, BUCKET_TYPES } from '../legacy_imports'; import { getAggParamsToRender, getAggTypeOptions, @@ -105,8 +105,10 @@ describe('DefaultEditorAggParams helpers', () => { name: 'field', type: 'field', filterFieldTypes, - getAvailableFields: jest.fn((fields: IndexedArray) => - fields.filter(({ type }) => filterFieldTypes.includes(type)) + getAvailableFields: jest.fn((aggConfig: IAggConfig) => + aggConfig + .getIndexPattern() + .fields.filter(({ type }) => filterFieldTypes.includes(type)) ), }, { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts index 25aa21fc83b313..124c41a50c0df3 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts @@ -73,9 +73,7 @@ function getAggParamsToRender({ agg, editorConfig, metricAggs, state }: ParamIns } // if field param exists, compute allowed fields if (param.type === 'field') { - const availableFields: Field[] = (param as IFieldParamType).getAvailableFields( - agg.getIndexPattern().fields - ); + const availableFields: Field[] = (param as IFieldParamType).getAvailableFields(agg); fields = aggTypeFieldFilters.filter(availableFields, agg); indexedFields = groupAndSortBy(fields, 'type', 'name'); diff --git a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts index a700995ec596b9..b7fd6b1e9ebb60 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/legacy_imports.ts @@ -49,7 +49,6 @@ export { AggParamOption } from 'ui/agg_types'; export { CidrMask } from 'ui/agg_types'; export { PersistedState } from 'ui/persisted_state'; -export { IndexedArray } from 'ui/indexed_array'; export { getDocLink } from 'ui/documentation_links'; export { documentationLinks } from 'ui/documentation_links/documentation_links'; export { move } from 'ui/utils/collection'; diff --git a/src/plugins/data/public/index_patterns/index.ts b/src/plugins/data/public/index_patterns/index.ts index 3d902ebbb7c237..ecddd893d1a54c 100644 --- a/src/plugins/data/public/index_patterns/index.ts +++ b/src/plugins/data/public/index_patterns/index.ts @@ -44,7 +44,7 @@ export const indexPatterns = { isDefault, }; -export { Field, FieldList, IFieldList } from './fields'; +export { Field, FieldList } from './fields'; // TODO: figure out how to replace IndexPatterns in get_inner_angular. export { From 6a4fd9b7729bcee641d49229d2663a35001233a3 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Wed, 5 Feb 2020 17:27:33 +0100 Subject: [PATCH 17/33] Disable url tracking for dashboard (#55818) --- src/legacy/core_plugins/kibana/index.js | 7 +- .../core_plugins/kibana/public/.eslintrc.js | 70 ++++--- .../kibana/public/dashboard/legacy.ts | 1 + .../public/dashboard/np_ready/application.ts | 1 - .../test_utils/get_saved_dashboard_mock.ts | 2 +- .../kibana/public/dashboard/plugin.ts | 65 +++++- .../components/tutorial/instruction_set.js | 2 +- .../local_application_service.ts | 11 + src/legacy/ui/public/chrome/api/nav.ts | 2 +- src/plugins/data/public/mocks.ts | 2 + .../data/public/query/state_sync/index.ts | 2 +- .../query/state_sync/sync_query.test.ts | 67 +++++- .../public/query/state_sync/sync_query.ts | 143 +++++++------ src/plugins/data/public/search/mocks.ts | 2 + .../instruction_variant.ts | 0 src/plugins/home/public/index.ts | 1 + src/plugins/home/server/index.ts | 2 +- .../instructions/auditbeat_instructions.ts | 2 +- .../instructions/filebeat_instructions.ts | 2 +- .../instructions/functionbeat_instructions.ts | 2 +- .../instructions/heartbeat_instructions.ts | 2 +- .../instructions/metricbeat_instructions.ts | 2 +- .../instructions/winlogbeat_instructions.ts | 2 +- .../server/tutorials/netflow/elastic_cloud.ts | 2 +- .../home/server/tutorials/netflow/on_prem.ts | 2 +- .../netflow/on_prem_elastic_cloud.ts | 2 +- src/plugins/kibana_legacy/public/plugin.ts | 26 ++- src/plugins/kibana_utils/public/index.ts | 1 + .../public/state_management/url/index.ts | 1 + .../url/kbn_url_tracker.test.ts | 184 +++++++++++++++++ .../state_management/url/kbn_url_tracker.ts | 192 ++++++++++++++++++ 31 files changed, 681 insertions(+), 121 deletions(-) rename src/plugins/home/{server/tutorials/instructions => common}/instruction_variant.ts (100%) create mode 100644 src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.test.ts create mode 100644 src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts diff --git a/src/legacy/core_plugins/kibana/index.js b/src/legacy/core_plugins/kibana/index.js index 8c35044b52c9e1..395e0da218307e 100644 --- a/src/legacy/core_plugins/kibana/index.js +++ b/src/legacy/core_plugins/kibana/index.js @@ -97,13 +97,8 @@ export default function(kibana) { }), order: -1001, url: `${kbnBaseUrl}#/dashboards`, - // The subUrlBase is the common substring of all urls for this app. If not given, it defaults to the url - // above. This app has to use a different subUrlBase, in addition to the url above, because "#/dashboard" - // routes to a page that creates a new dashboard. When we introduced a landing page, we needed to change - // the url above in order to preserve the original url for BWC. The subUrlBase helps the Chrome api nav - // to determine what url to use for the app link. - subUrlBase: `${kbnBaseUrl}#/dashboard`, euiIconType: 'dashboardApp', + disableSubUrlTracking: true, category: DEFAULT_APP_CATEGORIES.analyze, }, { diff --git a/src/legacy/core_plugins/kibana/public/.eslintrc.js b/src/legacy/core_plugins/kibana/public/.eslintrc.js index 9b45217287dc8c..b3ee0a8fa7b048 100644 --- a/src/legacy/core_plugins/kibana/public/.eslintrc.js +++ b/src/legacy/core_plugins/kibana/public/.eslintrc.js @@ -17,8 +17,15 @@ * under the License. */ +const topLevelConfig = require('../../../../../.eslintrc.js'); const path = require('path'); +const topLevelRestricedZones = topLevelConfig.overrides.find( + override => + override.files[0] === '**/*.{js,ts,tsx}' && + Object.keys(override.rules)[0] === '@kbn/eslint/no-restricted-paths' +).rules['@kbn/eslint/no-restricted-paths'][1].zones; + /** * Builds custom restricted paths configuration for the shimmed plugins within the kibana plugin. * These custom rules extend the default checks in the top level `eslintrc.js` by also checking two other things: @@ -28,34 +35,37 @@ const path = require('path'); * @returns zones configuration for the no-restricted-paths linter */ function buildRestrictedPaths(shimmedPlugins) { - return shimmedPlugins.map(shimmedPlugin => ([{ - target: [ - `src/legacy/core_plugins/kibana/public/${shimmedPlugin}/np_ready/**/*`, - ], - from: [ - 'ui/**/*', - 'src/legacy/ui/**/*', - 'src/legacy/core_plugins/kibana/public/**/*', - 'src/legacy/core_plugins/data/public/**/*', - '!src/legacy/core_plugins/data/public/index.ts', - `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, - ], - allowSameFolder: false, - errorMessage: `${shimmedPlugin} is a shimmed plugin that is not allowed to import modules from the legacy platform. If you need legacy modules for the transition period, import them either in the legacy_imports, kibana_services or index module.`, - }, { - target: [ - 'src/**/*', - `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, - 'x-pack/**/*', - ], - from: [ - `src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, - `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/index.ts`, - `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/legacy.ts`, - ], - allowSameFolder: false, - errorMessage: `kibana/public/${shimmedPlugin} is behaving like a NP plugin and does not allow deep imports. If you need something from within ${shimmedPlugin} in another plugin, consider re-exporting it from the top level index module`, - }])).reduce((acc, part) => [...acc, ...part], []); + return shimmedPlugins + .map(shimmedPlugin => [ + { + target: [`src/legacy/core_plugins/kibana/public/${shimmedPlugin}/np_ready/**/*`], + from: [ + 'ui/**/*', + 'src/legacy/ui/**/*', + 'src/legacy/core_plugins/kibana/public/**/*', + 'src/legacy/core_plugins/data/public/**/*', + '!src/legacy/core_plugins/data/public/index.ts', + `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, + ], + allowSameFolder: false, + errorMessage: `${shimmedPlugin} is a shimmed plugin that is not allowed to import modules from the legacy platform. If you need legacy modules for the transition period, import them either in the legacy_imports, kibana_services or index module.`, + }, + { + target: [ + 'src/**/*', + `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, + 'x-pack/**/*', + ], + from: [ + `src/legacy/core_plugins/kibana/public/${shimmedPlugin}/**/*`, + `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/index.ts`, + `!src/legacy/core_plugins/kibana/public/${shimmedPlugin}/legacy.ts`, + ], + allowSameFolder: false, + errorMessage: `kibana/public/${shimmedPlugin} is behaving like a NP plugin and does not allow deep imports. If you need something from within ${shimmedPlugin} in another plugin, consider re-exporting it from the top level index module`, + }, + ]) + .reduce((acc, part) => [...acc, ...part], []); } module.exports = { @@ -66,7 +76,9 @@ module.exports = { 'error', { basePath: path.resolve(__dirname, '../../../../../'), - zones: buildRestrictedPaths(['visualize', 'discover', 'dashboard', 'devTools', 'home']), + zones: topLevelRestricedZones.concat( + buildRestrictedPaths(['visualize', 'discover', 'dashboard', 'devTools', 'home']) + ), }, ], }, diff --git a/src/legacy/core_plugins/kibana/public/dashboard/legacy.ts b/src/legacy/core_plugins/kibana/public/dashboard/legacy.ts index acbc4c4b6c47ff..ca2dc9d5fb4f5e 100644 --- a/src/legacy/core_plugins/kibana/public/dashboard/legacy.ts +++ b/src/legacy/core_plugins/kibana/public/dashboard/legacy.ts @@ -41,6 +41,7 @@ async function getAngularDependencies(): Promise(() => ({})); + private stopUrlTracking: (() => void) | undefined = undefined; + public setup( core: CoreSetup, - { __LEGACY: { getAngularDependencies }, home, kibana_legacy }: DashboardPluginSetupDependencies + { + __LEGACY: { getAngularDependencies }, + home, + kibana_legacy, + npData, + }: DashboardPluginSetupDependencies ) { + const { querySyncStateContainer, stop: stopQuerySyncStateContainer } = getQueryStateContainer( + npData.query + ); + const { appMounted, appUnMounted, stop: stopUrlTracker } = createKbnUrlTracker({ + baseUrl: core.http.basePath.prepend('/app/kibana'), + defaultSubUrl: '#/dashboards', + storageKey: 'lastUrl:dashboard', + navLinkUpdater$: this.appStateUpdater, + toastNotifications: core.notifications.toasts, + stateParams: [ + { + kbnUrlKey: '_g', + stateUpdate$: querySyncStateContainer.state$, + }, + ], + }); + this.stopUrlTracking = () => { + stopQuerySyncStateContainer(); + stopUrlTracker(); + }; const app: App = { id: '', title: 'Dashboards', @@ -81,6 +119,7 @@ export class DashboardPlugin implements Plugin { if (this.startDependencies === null) { throw new Error('not started yet'); } + appMounted(); const { savedObjectsClient, embeddables, @@ -114,10 +153,20 @@ export class DashboardPlugin implements Plugin { localStorage: new Storage(localStorage), }; const { renderApp } = await import('./np_ready/application'); - return renderApp(params.element, params.appBasePath, deps); + const unmount = renderApp(params.element, params.appBasePath, deps); + return () => { + unmount(); + appUnMounted(); + }; }, }; - kibana_legacy.registerLegacyApp({ ...app, id: 'dashboard' }); + kibana_legacy.registerLegacyApp({ + ...app, + id: 'dashboard', + // only register the updater in once app, otherwise all updates would happen twice + updater$: this.appStateUpdater.asObservable(), + navLinkId: 'kibana:dashboard', + }); kibana_legacy.registerLegacyApp({ ...app, id: 'dashboards' }); home.featureCatalogue.register({ @@ -147,4 +196,10 @@ export class DashboardPlugin implements Plugin { share, }; } + + stop() { + if (this.stopUrlTracking) { + this.stopUrlTracking(); + } + } } diff --git a/src/legacy/core_plugins/kibana/public/home/np_ready/components/tutorial/instruction_set.js b/src/legacy/core_plugins/kibana/public/home/np_ready/components/tutorial/instruction_set.js index 15bda335341858..631ef1d6e0e429 100644 --- a/src/legacy/core_plugins/kibana/public/home/np_ready/components/tutorial/instruction_set.js +++ b/src/legacy/core_plugins/kibana/public/home/np_ready/components/tutorial/instruction_set.js @@ -22,7 +22,7 @@ import PropTypes from 'prop-types'; import { Instruction } from './instruction'; import { ParameterForm } from './parameter_form'; import { Content } from './content'; -import { getDisplayText } from '../../../../../../../../plugins/home/server/tutorials/instructions/instruction_variant'; +import { getDisplayText } from '../../../../../../../../plugins/home/public'; import { EuiTabs, EuiTab, diff --git a/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts b/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts index d52bec8304ff91..c84a3e1eacbd2e 100644 --- a/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts +++ b/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts @@ -79,6 +79,17 @@ export class LocalApplicationService { })(); }, }); + + if (app.updater$) { + app.updater$.subscribe(updater => { + const updatedFields = updater(app); + if (updatedFields && updatedFields.activeUrl) { + npStart.core.chrome.navLinks.update(app.navLinkId || app.id, { + url: updatedFields.activeUrl, + }); + } + }); + } }); npStart.plugins.kibana_legacy.getForwards().forEach(({ legacyAppId, newAppId, keepPrefix }) => { diff --git a/src/legacy/ui/public/chrome/api/nav.ts b/src/legacy/ui/public/chrome/api/nav.ts index 771314d9e14812..ae32473e451b7f 100644 --- a/src/legacy/ui/public/chrome/api/nav.ts +++ b/src/legacy/ui/public/chrome/api/nav.ts @@ -146,7 +146,7 @@ export function initChromeNavApi(chrome: any, internals: NavInternals) { // link.active and link.lastUrl properties coreNavLinks .getAll() - .filter(link => link.subUrlBase) + .filter(link => link.subUrlBase && !link.disableSubUrlTracking) .forEach(link => { coreNavLinks.update(link.id, { subUrlBase: relativeToAbsolute(chrome.addBasePath(link.subUrlBase)), diff --git a/src/plugins/data/public/mocks.ts b/src/plugins/data/public/mocks.ts index 847d79fdc87d1f..726cd6cfb18f04 100644 --- a/src/plugins/data/public/mocks.ts +++ b/src/plugins/data/public/mocks.ts @@ -101,6 +101,8 @@ const createStartContract = (): Start => { return startContract; }; +export { searchSourceMock } from './search/mocks'; + export const dataPluginMock = { createSetupContract, createStartContract, diff --git a/src/plugins/data/public/query/state_sync/index.ts b/src/plugins/data/public/query/state_sync/index.ts index 7eefda0d0aec1e..27e02940765cf7 100644 --- a/src/plugins/data/public/query/state_sync/index.ts +++ b/src/plugins/data/public/query/state_sync/index.ts @@ -17,5 +17,5 @@ * under the License. */ -export { syncQuery } from './sync_query'; +export { syncQuery, getQueryStateContainer } from './sync_query'; export { syncAppFilters } from './sync_app_filters'; diff --git a/src/plugins/data/public/query/state_sync/sync_query.test.ts b/src/plugins/data/public/query/state_sync/sync_query.test.ts index 0973af13cacd51..4796da4f5fd4bb 100644 --- a/src/plugins/data/public/query/state_sync/sync_query.test.ts +++ b/src/plugins/data/public/query/state_sync/sync_query.test.ts @@ -31,7 +31,7 @@ import { import { QueryService, QueryStart } from '../query_service'; import { StubBrowserStorage } from 'test_utils/stub_browser_storage'; import { TimefilterContract } from '../timefilter'; -import { QuerySyncState, syncQuery } from './sync_query'; +import { getQueryStateContainer, QuerySyncState, syncQuery } from './sync_query'; const setupMock = coreMock.createSetup(); const startMock = coreMock.createStart(); @@ -163,4 +163,69 @@ describe('sync_query', () => { expect(spy).not.toBeCalled(); stop(); }); + + describe('getQueryStateContainer', () => { + test('state is initialized with state from query service', () => { + const { stop, querySyncStateContainer, initialState } = getQueryStateContainer( + queryServiceStart + ); + expect(querySyncStateContainer.getState()).toMatchInlineSnapshot(` + Object { + "filters": Array [], + "refreshInterval": Object { + "pause": true, + "value": 0, + }, + "time": Object { + "from": "now-15m", + "to": "now", + }, + } + `); + expect(initialState).toEqual(querySyncStateContainer.getState()); + stop(); + }); + + test('state takes initial overrides into account', () => { + const { stop, querySyncStateContainer, initialState } = getQueryStateContainer( + queryServiceStart, + { + time: { from: 'now-99d', to: 'now' }, + } + ); + expect(querySyncStateContainer.getState().time).toEqual({ + from: 'now-99d', + to: 'now', + }); + expect(initialState).toEqual(querySyncStateContainer.getState()); + stop(); + }); + + test('when filters change, state container contains updated global filters', () => { + const { stop, querySyncStateContainer } = getQueryStateContainer(queryServiceStart); + filterManager.setFilters([gF, aF]); + expect(querySyncStateContainer.getState().filters).toHaveLength(1); + stop(); + }); + + test('when time range changes, state container contains updated time range', () => { + const { stop, querySyncStateContainer } = getQueryStateContainer(queryServiceStart); + timefilter.setTime({ from: 'now-30m', to: 'now' }); + expect(querySyncStateContainer.getState().time).toEqual({ + from: 'now-30m', + to: 'now', + }); + stop(); + }); + + test('when refresh interval changes, state container contains updated refresh interval', () => { + const { stop, querySyncStateContainer } = getQueryStateContainer(queryServiceStart); + timefilter.setRefreshInterval({ pause: true, value: 100 }); + expect(querySyncStateContainer.getState().refreshInterval).toEqual({ + pause: true, + value: 100, + }); + stop(); + }); + }); }); diff --git a/src/plugins/data/public/query/state_sync/sync_query.ts b/src/plugins/data/public/query/state_sync/sync_query.ts index be641e89f9b764..9a4e9cbba2990c 100644 --- a/src/plugins/data/public/query/state_sync/sync_query.ts +++ b/src/plugins/data/public/query/state_sync/sync_query.ts @@ -27,7 +27,7 @@ import { } from '../../../../kibana_utils/public'; import { COMPARE_ALL_OPTIONS, compareFilters } from '../filter_manager/lib/compare_filters'; import { esFilters, RefreshInterval, TimeRange } from '../../../common'; -import { QueryStart } from '../query_service'; +import { QuerySetup, QueryStart } from '../query_service'; const GLOBAL_STATE_STORAGE_KEY = '_g'; @@ -40,16 +40,11 @@ export interface QuerySyncState { /** * Helper utility to set up syncing between query services and url's '_g' query param */ -export const syncQuery = ( - { timefilter: { timefilter }, filterManager }: QueryStart, - urlStateStorage: IKbnUrlStateStorage -) => { - const defaultState: QuerySyncState = { - time: timefilter.getTime(), - refreshInterval: timefilter.getRefreshInterval(), - filters: filterManager.getGlobalFilters(), - }; - +export const syncQuery = (queryStart: QueryStart, urlStateStorage: IKbnUrlStateStorage) => { + const { + timefilter: { timefilter }, + filterManager, + } = queryStart; // retrieve current state from `_g` url const initialStateFromUrl = urlStateStorage.get(GLOBAL_STATE_STORAGE_KEY); @@ -58,10 +53,82 @@ export const syncQuery = ( initialStateFromUrl && Object.keys(initialStateFromUrl).length ); - // prepare initial state, whatever was in URL takes precedences over current state in services + const { + querySyncStateContainer, + stop: stopPullQueryState, + initialState, + } = getQueryStateContainer(queryStart, initialStateFromUrl || {}); + + const pushQueryStateSubscription = querySyncStateContainer.state$.subscribe( + ({ time, filters: globalFilters, refreshInterval }) => { + // cloneDeep is required because services are mutating passed objects + // and state in state container is frozen + if (time && !_.isEqual(time, timefilter.getTime())) { + timefilter.setTime(_.cloneDeep(time)); + } + + if (refreshInterval && !_.isEqual(refreshInterval, timefilter.getRefreshInterval())) { + timefilter.setRefreshInterval(_.cloneDeep(refreshInterval)); + } + + if ( + globalFilters && + !compareFilters(globalFilters, filterManager.getGlobalFilters(), COMPARE_ALL_OPTIONS) + ) { + filterManager.setGlobalFilters(_.cloneDeep(globalFilters)); + } + } + ); + + // if there weren't any initial state in url, + // then put _g key into url + if (!initialStateFromUrl) { + urlStateStorage.set(GLOBAL_STATE_STORAGE_KEY, initialState, { + replace: true, + }); + } + + // trigger initial syncing from state container to services if needed + querySyncStateContainer.set(initialState); + + const { start, stop: stopSyncState } = syncState({ + stateStorage: urlStateStorage, + stateContainer: { + ...querySyncStateContainer, + set: state => { + if (state) { + // syncState utils requires to handle incoming "null" value + querySyncStateContainer.set(state); + } + }, + }, + storageKey: GLOBAL_STATE_STORAGE_KEY, + }); + + start(); + return { + stop: () => { + stopSyncState(); + pushQueryStateSubscription.unsubscribe(); + stopPullQueryState(); + }, + hasInheritedQueryFromUrl, + }; +}; + +export const getQueryStateContainer = ( + { timefilter: { timefilter }, filterManager }: QuerySetup, + initialStateOverrides: Partial = {} +) => { + const defaultState: QuerySyncState = { + time: timefilter.getTime(), + refreshInterval: timefilter.getRefreshInterval(), + filters: filterManager.getGlobalFilters(), + }; + const initialState: QuerySyncState = { ...defaultState, - ...initialStateFromUrl, + ...initialStateOverrides, }; // create state container, which will be used for syncing with syncState() util @@ -109,59 +176,13 @@ export const syncQuery = ( .subscribe(newGlobalFilters => { querySyncStateContainer.transitions.setFilters(newGlobalFilters); }), - querySyncStateContainer.state$.subscribe( - ({ time, filters: globalFilters, refreshInterval }) => { - // cloneDeep is required because services are mutating passed objects - // and state in state container is frozen - if (time && !_.isEqual(time, timefilter.getTime())) { - timefilter.setTime(_.cloneDeep(time)); - } - - if (refreshInterval && !_.isEqual(refreshInterval, timefilter.getRefreshInterval())) { - timefilter.setRefreshInterval(_.cloneDeep(refreshInterval)); - } - - if ( - globalFilters && - !compareFilters(globalFilters, filterManager.getGlobalFilters(), COMPARE_ALL_OPTIONS) - ) { - filterManager.setGlobalFilters(_.cloneDeep(globalFilters)); - } - } - ), ]; - // if there weren't any initial state in url, - // then put _g key into url - if (!initialStateFromUrl) { - urlStateStorage.set(GLOBAL_STATE_STORAGE_KEY, initialState, { - replace: true, - }); - } - - // trigger initial syncing from state container to services if needed - querySyncStateContainer.set(initialState); - - const { start, stop } = syncState({ - stateStorage: urlStateStorage, - stateContainer: { - ...querySyncStateContainer, - set: state => { - if (state) { - // syncState utils requires to handle incoming "null" value - querySyncStateContainer.set(state); - } - }, - }, - storageKey: GLOBAL_STATE_STORAGE_KEY, - }); - - start(); return { + querySyncStateContainer, stop: () => { subs.forEach(s => s.unsubscribe()); - stop(); }, - hasInheritedQueryFromUrl, + initialState, }; }; diff --git a/src/plugins/data/public/search/mocks.ts b/src/plugins/data/public/search/mocks.ts index 81a028007bc943..821bd45f731e8f 100644 --- a/src/plugins/data/public/search/mocks.ts +++ b/src/plugins/data/public/search/mocks.ts @@ -17,6 +17,8 @@ * under the License. */ +export * from './search_source/mocks'; + export const searchSetupMock = { registerSearchStrategyContext: jest.fn(), registerSearchStrategyProvider: jest.fn(), diff --git a/src/plugins/home/server/tutorials/instructions/instruction_variant.ts b/src/plugins/home/common/instruction_variant.ts similarity index 100% rename from src/plugins/home/server/tutorials/instructions/instruction_variant.ts rename to src/plugins/home/common/instruction_variant.ts diff --git a/src/plugins/home/public/index.ts b/src/plugins/home/public/index.ts index 114d442b40943b..2a445cf2427294 100644 --- a/src/plugins/home/public/index.ts +++ b/src/plugins/home/public/index.ts @@ -26,6 +26,7 @@ export { HomePublicPluginStart, } from './plugin'; export { FeatureCatalogueEntry, FeatureCatalogueCategory, Environment } from './services'; +export * from '../common/instruction_variant'; import { HomePublicPlugin } from './plugin'; export const plugin = (initializerContext: PluginInitializerContext) => diff --git a/src/plugins/home/server/index.ts b/src/plugins/home/server/index.ts index 02f4c91a414cc9..75ace843442167 100644 --- a/src/plugins/home/server/index.ts +++ b/src/plugins/home/server/index.ts @@ -36,5 +36,5 @@ export const config: PluginConfigDescriptor = { export const plugin = (initContext: PluginInitializerContext) => new HomeServerPlugin(initContext); -export { INSTRUCTION_VARIANT } from './tutorials/instructions/instruction_variant'; +export { INSTRUCTION_VARIANT } from '../common/instruction_variant'; export { ArtifactsSchema, TutorialsCategory } from './services/tutorials'; diff --git a/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts index 6a9dba69b193f3..4c85ad3985b3de 100644 --- a/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/auditbeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts index 176a3901821f19..66efa36ec9bcdc 100644 --- a/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/filebeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts index 385880ba9780f8..ee13b9c5eefd83 100644 --- a/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/functionbeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts index 406bf55da43218..33f5defc0273f5 100644 --- a/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/heartbeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { Platform, TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts index 77efe0958a6153..9fdc70e0703a4a 100644 --- a/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/metricbeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts b/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts index cc18f2ce9705d2..9d7d0660d3d6cb 100644 --- a/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/winlogbeat_instructions.ts @@ -18,7 +18,7 @@ */ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from './instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createTrycloudOption1, createTrycloudOption2 } from './onprem_cloud_instructions'; import { getSpaceIdForBeatsTutorial } from './get_space_id_for_beats_tutorial'; import { TutorialContext } from '../../services/tutorials/lib/tutorials_registry_types'; diff --git a/src/plugins/home/server/tutorials/netflow/elastic_cloud.ts b/src/plugins/home/server/tutorials/netflow/elastic_cloud.ts index ac64aef7300045..fbedc6abfbb8a8 100644 --- a/src/plugins/home/server/tutorials/netflow/elastic_cloud.ts +++ b/src/plugins/home/server/tutorials/netflow/elastic_cloud.ts @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from '../instructions/instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createLogstashInstructions } from '../instructions/logstash_instructions'; import { createCommonNetflowInstructions } from './common_instructions'; diff --git a/src/plugins/home/server/tutorials/netflow/on_prem.ts b/src/plugins/home/server/tutorials/netflow/on_prem.ts index c7cd36d0736327..ef8c3e172af87e 100644 --- a/src/plugins/home/server/tutorials/netflow/on_prem.ts +++ b/src/plugins/home/server/tutorials/netflow/on_prem.ts @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from '../instructions/instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createLogstashInstructions } from '../instructions/logstash_instructions'; import { createCommonNetflowInstructions } from './common_instructions'; diff --git a/src/plugins/home/server/tutorials/netflow/on_prem_elastic_cloud.ts b/src/plugins/home/server/tutorials/netflow/on_prem_elastic_cloud.ts index c01a9a5382f88e..85aa6949704915 100644 --- a/src/plugins/home/server/tutorials/netflow/on_prem_elastic_cloud.ts +++ b/src/plugins/home/server/tutorials/netflow/on_prem_elastic_cloud.ts @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; -import { INSTRUCTION_VARIANT } from '../instructions/instruction_variant'; +import { INSTRUCTION_VARIANT } from '../../../common/instruction_variant'; import { createLogstashInstructions } from '../instructions/logstash_instructions'; import { createTrycloudOption1, diff --git a/src/plugins/kibana_legacy/public/plugin.ts b/src/plugins/kibana_legacy/public/plugin.ts index b9a61a1c9b2000..7c4b3428cbb6d1 100644 --- a/src/plugins/kibana_legacy/public/plugin.ts +++ b/src/plugins/kibana_legacy/public/plugin.ts @@ -17,8 +17,8 @@ * under the License. */ -import { App, PluginInitializerContext } from 'kibana/public'; - +import { App, AppBase, PluginInitializerContext, AppUpdatableFields } from 'kibana/public'; +import { Observable } from 'rxjs'; import { ConfigSchema } from '../config'; interface ForwardDefinition { @@ -27,8 +27,26 @@ interface ForwardDefinition { keepPrefix: boolean; } +export type AngularRenderedAppUpdater = ( + app: AppBase +) => Partial | undefined; + +export interface AngularRenderedApp extends App { + /** + * Angular rendered apps are able to update the active url in the nav link (which is currently not + * possible for actual NP apps). When regular applications have the same functionality, this type + * override can be removed. + */ + updater$?: Observable; + /** + * If the active url is updated via the updater$ subject, the app id is assumed to be identical with + * the nav link id. If this is not the case, it is possible to provide another nav link id here. + */ + navLinkId?: string; +} + export class KibanaLegacyPlugin { - private apps: App[] = []; + private apps: AngularRenderedApp[] = []; private forwards: ForwardDefinition[] = []; constructor(private readonly initializerContext: PluginInitializerContext) {} @@ -52,7 +70,7 @@ export class KibanaLegacyPlugin { * * @param app The app descriptor */ - registerLegacyApp: (app: App) => { + registerLegacyApp: (app: AngularRenderedApp) => { this.apps.push(app); }, diff --git a/src/plugins/kibana_utils/public/index.ts b/src/plugins/kibana_utils/public/index.ts index 9ab7c8cf3f2b79..883f28da452239 100644 --- a/src/plugins/kibana_utils/public/index.ts +++ b/src/plugins/kibana_utils/public/index.ts @@ -49,6 +49,7 @@ export { unhashUrl, unhashQuery, createUrlTracker, + createKbnUrlTracker, createKbnUrlControls, getStateFromKbnUrl, getStatesFromKbnUrl, diff --git a/src/plugins/kibana_utils/public/state_management/url/index.ts b/src/plugins/kibana_utils/public/state_management/url/index.ts index 40491bf7a274bf..e28d183c6560a2 100644 --- a/src/plugins/kibana_utils/public/state_management/url/index.ts +++ b/src/plugins/kibana_utils/public/state_management/url/index.ts @@ -25,4 +25,5 @@ export { getStatesFromKbnUrl, IKbnUrlControls, } from './kbn_url_storage'; +export { createKbnUrlTracker } from './kbn_url_tracker'; export { createUrlTracker } from './url_tracker'; diff --git a/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.test.ts b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.test.ts new file mode 100644 index 00000000000000..4b17d8517328bf --- /dev/null +++ b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.test.ts @@ -0,0 +1,184 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { StubBrowserStorage } from 'test_utils/stub_browser_storage'; +import { createMemoryHistory, History } from 'history'; +import { createKbnUrlTracker, KbnUrlTracker } from './kbn_url_tracker'; +import { BehaviorSubject, Subject } from 'rxjs'; +import { AppBase, ToastsSetup } from 'kibana/public'; +import { coreMock } from '../../../../../core/public/mocks'; +import { unhashUrl } from './hash_unhash_url'; + +jest.mock('./hash_unhash_url', () => ({ + unhashUrl: jest.fn(x => x), +})); + +describe('kbnUrlTracker', () => { + let storage: StubBrowserStorage; + let history: History; + let urlTracker: KbnUrlTracker; + let state1Subject: Subject<{ key1: string }>; + let state2Subject: Subject<{ key2: string }>; + let navLinkUpdaterSubject: BehaviorSubject<(app: AppBase) => { activeUrl?: string } | undefined>; + let toastService: jest.Mocked; + + function createTracker() { + urlTracker = createKbnUrlTracker({ + baseUrl: '/app/test', + defaultSubUrl: '#/start', + storageKey: 'storageKey', + history, + storage, + stateParams: [ + { + kbnUrlKey: 'state1', + stateUpdate$: state1Subject.asObservable(), + }, + { + kbnUrlKey: 'state2', + stateUpdate$: state2Subject.asObservable(), + }, + ], + navLinkUpdater$: navLinkUpdaterSubject, + toastNotifications: toastService, + }); + } + + function getActiveNavLinkUrl() { + return navLinkUpdaterSubject.getValue()({} as AppBase)?.activeUrl; + } + + beforeEach(() => { + jest.clearAllMocks(); + toastService = coreMock.createSetup().notifications.toasts; + storage = new StubBrowserStorage(); + history = createMemoryHistory(); + state1Subject = new Subject<{ key1: string }>(); + state2Subject = new Subject<{ key2: string }>(); + navLinkUpdaterSubject = new BehaviorSubject< + (app: AppBase) => { activeUrl?: string } | undefined + >(() => undefined); + }); + + test('do not touch nav link to default if nothing else is set', () => { + createTracker(); + expect(getActiveNavLinkUrl()).toEqual(undefined); + }); + + test('set nav link to session storage value if defined', () => { + storage.setItem('storageKey', '#/deep/path'); + createTracker(); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/deep/path'); + }); + + test('set nav link to default if app gets mounted', () => { + storage.setItem('storageKey', '#/deep/path'); + createTracker(); + urlTracker.appMounted(); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/start'); + }); + + test('keep nav link to default if path gets changed while app mounted', () => { + storage.setItem('storageKey', '#/deep/path'); + createTracker(); + urlTracker.appMounted(); + history.push('/deep/path/2'); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/start'); + }); + + test('change nav link to last visited url within app after unmount', () => { + createTracker(); + urlTracker.appMounted(); + history.push('/deep/path/2'); + history.push('/deep/path/3'); + urlTracker.appUnMounted(); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/deep/path/3'); + }); + + test('unhash all urls that are recorded while app is mounted', () => { + (unhashUrl as jest.Mock).mockImplementation(x => x + '?unhashed'); + createTracker(); + urlTracker.appMounted(); + history.push('/deep/path/2'); + history.push('/deep/path/3'); + urlTracker.appUnMounted(); + expect(unhashUrl).toHaveBeenCalledTimes(2); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/deep/path/3?unhashed'); + }); + + test('show warning and use hashed url if unhashing does not work', () => { + (unhashUrl as jest.Mock).mockImplementation(() => { + throw new Error('unhash broke'); + }); + createTracker(); + urlTracker.appMounted(); + history.push('/deep/path/2'); + urlTracker.appUnMounted(); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/deep/path/2'); + expect(toastService.addDanger).toHaveBeenCalledWith('unhash broke'); + }); + + test('change nav link back to default if app gets mounted again', () => { + createTracker(); + urlTracker.appMounted(); + history.push('/deep/path/2'); + history.push('/deep/path/3'); + urlTracker.appUnMounted(); + urlTracker.appMounted(); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/start'); + }); + + test('update state param when app is not mounted', () => { + createTracker(); + state1Subject.next({ key1: 'abc' }); + expect(getActiveNavLinkUrl()).toMatchInlineSnapshot(`"/app/test#/start?state1=(key1:abc)"`); + }); + + test('update state param without overwriting rest of the url when app is not mounted', () => { + storage.setItem('storageKey', '#/deep/path?extrastate=1'); + createTracker(); + state1Subject.next({ key1: 'abc' }); + expect(getActiveNavLinkUrl()).toMatchInlineSnapshot( + `"/app/test#/deep/path?extrastate=1&state1=(key1:abc)"` + ); + }); + + test('not update state param when app is mounted', () => { + createTracker(); + urlTracker.appMounted(); + state1Subject.next({ key1: 'abc' }); + expect(getActiveNavLinkUrl()).toEqual('/app/test#/start'); + }); + + test('update state param multiple times when app is not mounted', () => { + createTracker(); + state1Subject.next({ key1: 'abc' }); + state1Subject.next({ key1: 'def' }); + expect(getActiveNavLinkUrl()).toMatchInlineSnapshot(`"/app/test#/start?state1=(key1:def)"`); + }); + + test('update multiple state params when app is not mounted', () => { + createTracker(); + state1Subject.next({ key1: 'abc' }); + state2Subject.next({ key2: 'def' }); + expect(getActiveNavLinkUrl()).toMatchInlineSnapshot( + `"/app/test#/start?state1=(key1:abc)&state2=(key2:def)"` + ); + }); +}); diff --git a/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts new file mode 100644 index 00000000000000..6f3f64ea7b9419 --- /dev/null +++ b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts @@ -0,0 +1,192 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { createHashHistory, History, UnregisterCallback } from 'history'; +import { BehaviorSubject, Observable, Subscription } from 'rxjs'; +import { AppBase, ToastsSetup } from 'kibana/public'; +import { setStateToKbnUrl } from './kbn_url_storage'; +import { unhashUrl } from './hash_unhash_url'; + +export interface KbnUrlTracker { + /** + * Callback to invoke when the app is mounted + */ + appMounted: () => void; + /** + * Callback to invoke when the app is unmounted + */ + appUnMounted: () => void; + /** + * Unregistering the url tracker. This won't reset the current state of the nav link + */ + stop: () => void; +} + +/** + * Listens to history changes and optionally to global state changes and updates the nav link url of + * a given app to point to the last visited page within the app. + * + * This includes the following parts: + * * When the app is currently active, the nav link points to the configurable default url of the app. + * * When the app is not active the last visited url is set to the nav link. + * * When a provided observable emits a new value, the state parameter in the url of the nav link is updated + * as long as the app is not active. + */ +export function createKbnUrlTracker({ + baseUrl, + defaultSubUrl, + storageKey, + stateParams, + navLinkUpdater$, + toastNotifications, + history, + storage, +}: { + /** + * Base url of the current app. This will be used as a prefix for the + * nav link in the side bar + */ + baseUrl: string; + /** + * Default sub url for this app. If the app is currently active or no sub url is already stored in session storage and the app hasn't been visited yet, the nav link will be set to this url. + */ + defaultSubUrl: string; + /** + * List of URL mapped states that should get updated even when the app is not currently active + */ + stateParams: Array<{ + /** + * Key of the query parameter containing the state + */ + kbnUrlKey: string; + /** + * Observable providing updates to the state + */ + stateUpdate$: Observable; + }>; + /** + * Key used to store the current sub url in session storage. This key should only be used for one active url tracker at any given ntime. + */ + storageKey: string; + /** + * App updater subject passed into the application definition to change nav link url. + */ + navLinkUpdater$: BehaviorSubject<(app: AppBase) => { activeUrl?: string } | undefined>; + /** + * Toast notifications service to show toasts in error cases. + */ + toastNotifications: ToastsSetup; + /** + * History object to use to track url changes. If this isn't provided, a local history instance will be created. + */ + history?: History; + /** + * Storage object to use to persist currently active url. If this isn't provided, the browser wide session storage instance will be used. + */ + storage?: Storage; +}): KbnUrlTracker { + const historyInstance = history || createHashHistory(); + const storageInstance = storage || sessionStorage; + + // local state storing current listeners and active url + let activeUrl: string = ''; + let unsubscribeURLHistory: UnregisterCallback | undefined; + let unsubscribeGlobalState: Subscription[] | undefined; + + function setNavLink(hash: string) { + navLinkUpdater$.next(() => ({ activeUrl: baseUrl + hash })); + } + + function getActiveSubUrl(url: string) { + // remove baseUrl prefix (just storing the sub url part) + return url.substr(baseUrl.length); + } + + function unsubscribe() { + if (unsubscribeURLHistory) { + unsubscribeURLHistory(); + unsubscribeURLHistory = undefined; + } + + if (unsubscribeGlobalState) { + unsubscribeGlobalState.forEach(sub => sub.unsubscribe()); + unsubscribeGlobalState = undefined; + } + } + + function onMountApp() { + unsubscribe(); + // track current hash when within app + unsubscribeURLHistory = historyInstance.listen(location => { + const urlWithHashes = baseUrl + '#' + location.pathname + location.search; + let urlWithStates = ''; + try { + urlWithStates = unhashUrl(urlWithHashes); + } catch (e) { + toastNotifications.addDanger(e.message); + } + + activeUrl = getActiveSubUrl(urlWithStates || urlWithHashes); + storageInstance.setItem(storageKey, activeUrl); + }); + } + + function onUnmountApp() { + unsubscribe(); + // propagate state updates when in other apps + unsubscribeGlobalState = stateParams.map(({ stateUpdate$, kbnUrlKey }) => + stateUpdate$.subscribe(state => { + const updatedUrl = setStateToKbnUrl( + kbnUrlKey, + state, + { useHash: false }, + baseUrl + (activeUrl || defaultSubUrl) + ); + // remove baseUrl prefix (just storing the sub url part) + activeUrl = getActiveSubUrl(updatedUrl); + storageInstance.setItem(storageKey, activeUrl); + setNavLink(activeUrl); + }) + ); + } + + // register listeners for unmounted app initially + onUnmountApp(); + + // initialize nav link and internal state + const storedUrl = storageInstance.getItem(storageKey); + if (storedUrl) { + activeUrl = storedUrl; + setNavLink(storedUrl); + } + + return { + appMounted() { + onMountApp(); + setNavLink(defaultSubUrl); + }, + appUnMounted() { + onUnmountApp(); + setNavLink(activeUrl); + }, + stop() { + unsubscribe(); + }, + }; +} From b79e1b84555ac7ea871a56fc4b07bd692920329c Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Wed, 5 Feb 2020 17:38:21 +0100 Subject: [PATCH 18/33] [ML] replace angular copy (#56855) --- .../application/services/job_service.js | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/x-pack/legacy/plugins/ml/public/application/services/job_service.js b/x-pack/legacy/plugins/ml/public/application/services/job_service.js index 54e0dd1f535f2a..9827d1a5f38a1a 100644 --- a/x-pack/legacy/plugins/ml/public/application/services/job_service.js +++ b/x-pack/legacy/plugins/ml/public/application/services/job_service.js @@ -5,7 +5,6 @@ */ import _ from 'lodash'; -import angular from 'angular'; import moment from 'moment'; import { i18n } from '@kbn/i18n'; @@ -116,8 +115,7 @@ class JobService { ml.getJobs() .then(resp => { - // make deep copy of jobs - angular.copy(resp.jobs, jobs); + jobs = resp.jobs; // load jobs stats ml.getJobStats() @@ -131,14 +129,13 @@ class JobService { job.datafeed_config = {}; for (let j = 0; j < statsResp.jobs.length; j++) { - if (job.job_id === statsResp.jobs[j].job_id) { - const jobStats = angular.copy(statsResp.jobs[j]); - + const jobStats = statsResp.jobs[j]; + if (job.job_id === jobStats.job_id) { job.state = jobStats.state; - job.data_counts = jobStats.data_counts; - job.model_size_stats = jobStats.model_size_stats; + job.data_counts = _.cloneDeep(jobStats.data_counts); + job.model_size_stats = _.cloneDeep(jobStats.model_size_stats); if (jobStats.node) { - job.node = jobStats.node; + job.node = _.cloneDeep(jobStats.node); } if (jobStats.open_time) { job.open_time = jobStats.open_time; @@ -199,9 +196,8 @@ class JobService { return new Promise((resolve, reject) => { ml.getJobs({ jobId }) .then(resp => { - const newJob = {}; if (resp.jobs && resp.jobs.length) { - angular.copy(resp.jobs[0], newJob); + const newJob = resp.jobs[0]; // load jobs stats ml.getJobStats({ jobId }) @@ -213,10 +209,10 @@ class JobService { newJob.state = statsJob.state; newJob.data_counts = {}; newJob.model_size_stats = {}; - angular.copy(statsJob.data_counts, newJob.data_counts); - angular.copy(statsJob.model_size_stats, newJob.model_size_stats); + newJob.data_counts = _.cloneDeep(statsJob.data_counts); + newJob.model_size_stats = _.cloneDeep(statsJob.model_size_stats); if (newJob.node) { - angular.copy(statsJob.node, newJob.node); + newJob.node = _.cloneDeep(statsJob.node); } if (statsJob.open_time) { @@ -273,7 +269,6 @@ class JobService { loadDatafeeds(datafeedId) { return new Promise((resolve, reject) => { - const datafeeds = []; const sId = datafeedId !== undefined ? { datafeed_id: datafeedId } : undefined; ml.getDatafeeds(sId) @@ -281,7 +276,7 @@ class JobService { // console.log('loadDatafeeds query response:', resp); // make deep copy of datafeeds - angular.copy(resp.datafeeds, datafeeds); + const datafeeds = resp.datafeeds; // load datafeeds stats ml.getDatafeedStats() @@ -357,7 +352,7 @@ class JobService { // create a deep copy of a job object // also remove items from the job which are set by the server and not needed // in the future this formatting could be optional - const tempJob = angular.copy(job); + const tempJob = _.cloneDeep(job); // remove all of the items which should not be copied // such as counts, state and times From eb5178fc8a11c005c56d3f7a97cf758dc5e31df3 Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Wed, 5 Feb 2020 10:54:42 -0600 Subject: [PATCH 19/33] Create index pattern / create_index_pattern/lib => typescript (#56811) * Create index pattern / create_index_pattern/lib => typescript --- .../step_index_pattern/step_index_pattern.js | 3 +- .../constants/{index.js => index.ts} | 0 .../lib/__jest__/api/get_indices.error.json | 4 - .../__jest__/api/get_indices.exception.json | 27 --- .../lib/__jest__/api/get_indices.success.json | 20 --- .../lib/__jest__/get_indices.test.js | 117 ------------ ...rd.test.js => can_append_wildcard.test.ts} | 6 +- ...end_wildcard.js => can_append_wildcard.ts} | 2 +- ...ters.js => contains_illegal_characters.ts} | 2 +- ...js => contains_invalid_characters.test.ts} | 2 +- ...me.test.js => ensure_minimum_time.test.ts} | 2 +- ...minimum_time.js => ensure_minimum_time.ts} | 2 +- ...ds.test.js => extract_time_fields.test.ts} | 7 +- ..._time_fields.js => extract_time_fields.ts} | 3 +- .../lib/get_indices.test.ts | 167 ++++++++++++++++++ .../lib/{get_indices.js => get_indices.ts} | 14 +- ...es.test.js => get_matched_indices.test.ts} | 89 ++++++---- ...ched_indices.js => get_matched_indices.ts} | 20 ++- .../lib/{index.js => index.ts} | 0 .../create_index_pattern_wizard/types.ts | 23 +++ .../creation/config.ts | 2 +- 21 files changed, 283 insertions(+), 229 deletions(-) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/constants/{index.js => index.ts} (100%) delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.error.json delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.exception.json delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.success.json delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_indices.test.js rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{__jest__/can_append_wildcard.test.js => can_append_wildcard.test.ts} (89%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{can_append_wildcard.js => can_append_wildcard.ts} (94%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{contains_illegal_characters.js => contains_illegal_characters.ts} (90%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{__jest__/contains_invalid_characters.test.js => contains_invalid_characters.test.ts} (93%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{__jest__/ensure_minimum_time.test.js => ensure_minimum_time.test.ts} (96%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{ensure_minimum_time.js => ensure_minimum_time.ts} (97%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{__jest__/extract_time_fields.test.js => extract_time_fields.test.ts} (89%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{extract_time_fields.js => extract_time_fields.ts} (92%) create mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{get_indices.js => get_indices.ts} (83%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{__jest__/get_matched_indices.test.js => get_matched_indices.test.ts} (53%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{get_matched_indices.js => get_matched_indices.ts} (86%) rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/{index.js => index.ts} (100%) create mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/types.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.js index c990efaf43547f..e10f033ed8165e 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.js @@ -279,13 +279,12 @@ export class StepIndexPattern extends Component { render() { const { isIncludingSystemIndices, allIndices } = this.props; - const { query, partialMatchedIndices, exactMatchedIndices } = this.state; + const { partialMatchedIndices, exactMatchedIndices } = this.state; const matchedIndices = getMatchedIndices( allIndices, partialMatchedIndices, exactMatchedIndices, - query, isIncludingSystemIndices ); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/constants/index.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/constants/index.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/constants/index.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/constants/index.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.error.json b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.error.json deleted file mode 100644 index acb9a9ecd02069..00000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.error.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "statusCode": 400, - "error": "Bad Request" -} diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.exception.json b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.exception.json deleted file mode 100644 index 1406b06813637a..00000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.exception.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "body": { - "error": { - "root_cause": [ - { - "type": "index_not_found_exception", - "reason": "no such index", - "index_uuid": "_na_", - "resource.type": "index_or_alias", - "resource.id": "t", - "index": "t" - } - ], - "type": "transport_exception", - "reason": "unable to communicate with remote cluster [cluster_one]", - "caused_by": { - "type": "index_not_found_exception", - "reason": "no such index", - "index_uuid": "_na_", - "resource.type": "index_or_alias", - "resource.id": "t", - "index": "t" - } - } - }, - "status": 500 -} diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.success.json b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.success.json deleted file mode 100644 index 1b261243ca7286..00000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/api/get_indices.success.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "hits": { - "total": 1, - "max_score": 0.0, - "hits": [] - }, - "aggregations": { - "indices": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [{ - "key": "1", - "doc_count": 1 - },{ - "key": "2", - "doc_count": 1 - }] - } - } -} diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_indices.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_indices.test.js deleted file mode 100644 index 924b0dc46d74de..00000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_indices.test.js +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { getIndices } from '../get_indices'; -import successfulResponse from './api/get_indices.success.json'; -import errorResponse from './api/get_indices.error.json'; -import exceptionResponse from './api/get_indices.exception.json'; -const mockIndexPatternCreationType = { - getIndexPatternType: () => 'default', - getIndexPatternName: () => 'name', - checkIndicesForErrors: () => false, - getShowSystemIndices: () => false, - renderPrompt: () => {}, - getIndexPatternMappings: () => { - return {}; - }, - getIndexTags: () => { - return []; - }, -}; - -describe('getIndices', () => { - it('should work in a basic case', async () => { - const es = { - search: () => new Promise(resolve => resolve(successfulResponse)), - }; - - const result = await getIndices(es, mockIndexPatternCreationType, 'kibana', 1); - expect(result.length).toBe(2); - expect(result[0].name).toBe('1'); - expect(result[1].name).toBe('2'); - }); - - it('should ignore ccs query-all', async () => { - expect((await getIndices(null, mockIndexPatternCreationType, '*:')).length).toBe(0); - }); - - it('should ignore a single comma', async () => { - expect((await getIndices(null, mockIndexPatternCreationType, ',')).length).toBe(0); - expect((await getIndices(null, mockIndexPatternCreationType, ',*')).length).toBe(0); - expect((await getIndices(null, mockIndexPatternCreationType, ',foobar')).length).toBe(0); - }); - - it('should trim the input', async () => { - let index; - const es = { - search: jest.fn().mockImplementation(params => { - index = params.index; - }), - }; - - await getIndices(es, mockIndexPatternCreationType, 'kibana ', 1); - expect(index).toBe('kibana'); - }); - - it('should use the limit', async () => { - let limit; - const es = { - search: jest.fn().mockImplementation(params => { - limit = params.body.aggs.indices.terms.size; - }), - }; - - await getIndices(es, mockIndexPatternCreationType, 'kibana', 10); - expect(limit).toBe(10); - }); - - describe('errors', () => { - it('should handle errors gracefully', async () => { - const es = { - search: () => new Promise(resolve => resolve(errorResponse)), - }; - - const result = await getIndices(es, mockIndexPatternCreationType, 'kibana', 1); - expect(result.length).toBe(0); - }); - - it('should throw exceptions', async () => { - const es = { - search: () => { - throw new Error('Fail'); - }, - }; - - await expect(getIndices(es, mockIndexPatternCreationType, 'kibana', 1)).rejects.toThrow(); - }); - - it('should handle index_not_found_exception errors gracefully', async () => { - const es = { - search: () => new Promise((resolve, reject) => reject(exceptionResponse)), - }; - - const result = await getIndices(es, mockIndexPatternCreationType, 'kibana', 1); - expect(result.length).toBe(0); - }); - - it('should throw an exception if no limit is provided', async () => { - await expect(getIndices({}, mockIndexPatternCreationType, 'kibana')).rejects.toThrow(); - }); - }); -}); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/can_append_wildcard.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.test.ts similarity index 89% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/can_append_wildcard.test.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.test.ts index 055632bdd19e0a..14139c2e08dc02 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/can_append_wildcard.test.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.test.ts @@ -17,13 +17,9 @@ * under the License. */ -import { canAppendWildcard } from '../can_append_wildcard'; +import { canAppendWildcard } from './can_append_wildcard'; describe('canAppendWildcard', () => { - test('ignores no data', () => { - expect(canAppendWildcard({})).toBeFalsy(); - }); - test('ignores symbols', () => { expect(canAppendWildcard('%')).toBeFalsy(); }); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.ts similarity index 94% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.ts index b47e645730aef4..e9c4f75e4313b4 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/can_append_wildcard.ts @@ -17,7 +17,7 @@ * under the License. */ -export const canAppendWildcard = keyPressed => { +export const canAppendWildcard = (keyPressed: string) => { // If it's not a letter, number or is something longer, reject it if (!keyPressed || !/[a-z0-9]/i.test(keyPressed) || keyPressed.length !== 1) { return false; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.ts similarity index 90% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.ts index 31485bb3daaa2b..ca4fc8122903c2 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_illegal_characters.ts @@ -17,6 +17,6 @@ * under the License. */ -export function containsIllegalCharacters(pattern, illegalCharacters) { +export function containsIllegalCharacters(pattern: string, illegalCharacters: string[]) { return illegalCharacters.some(char => pattern.includes(char)); } diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/contains_invalid_characters.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_invalid_characters.test.ts similarity index 93% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/contains_invalid_characters.test.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_invalid_characters.test.ts index 05c4aba2571bd0..640908d3db6d10 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/contains_invalid_characters.test.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/contains_invalid_characters.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { containsIllegalCharacters } from '../contains_illegal_characters'; +import { containsIllegalCharacters } from './contains_illegal_characters'; describe('containsIllegalCharacters', () => { it('returns true with illegal characters', () => { diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/ensure_minimum_time.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.test.ts similarity index 96% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/ensure_minimum_time.test.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.test.ts index 99724cbf3a2a7b..e5fcfe056923a4 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/ensure_minimum_time.test.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { ensureMinimumTime } from '../ensure_minimum_time'; +import { ensureMinimumTime } from './ensure_minimum_time'; describe('ensureMinimumTime', () => { it('resolves single promise', async done => { diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.ts similarity index 97% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.ts index 0a6d3fcfbbdf0d..84852ece485ebd 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/ensure_minimum_time.ts @@ -27,7 +27,7 @@ export const DEFAULT_MINIMUM_TIME_MS = 300; export async function ensureMinimumTime( - promiseOrPromises, + promiseOrPromises: Promise | Array>, minimumTimeMs = DEFAULT_MINIMUM_TIME_MS ) { let returnValue; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/extract_time_fields.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.test.ts similarity index 89% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/extract_time_fields.test.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.test.ts index ec420e19817c7a..4cd28090420a7e 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/extract_time_fields.test.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.test.ts @@ -17,11 +17,14 @@ * under the License. */ -import { extractTimeFields } from '../extract_time_fields'; +import { extractTimeFields } from './extract_time_fields'; describe('extractTimeFields', () => { it('should handle no date fields', () => { - const fields = [{ type: 'text' }, { type: 'text' }]; + const fields = [ + { type: 'text', name: 'name' }, + { type: 'text', name: 'name' }, + ]; expect(extractTimeFields(fields)).toEqual([ { display: `The indices which match this index pattern don't contain any time fields.` }, diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.ts similarity index 92% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.ts index 1a9deefb217f2b..0b95ec0a120da2 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/extract_time_fields.ts @@ -18,8 +18,9 @@ */ import { i18n } from '@kbn/i18n'; +import { IFieldType } from '../../../../../../../../../plugins/data/public'; -export function extractTimeFields(fields) { +export function extractTimeFields(fields: IFieldType[]) { const dateFields = fields.filter(field => field.type === 'date'); const label = i18n.translate('kbn.management.createIndexPattern.stepTime.noTimeFieldsLabel', { defaultMessage: "The indices which match this index pattern don't contain any time fields.", diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts new file mode 100644 index 00000000000000..cd7c8278adcc7c --- /dev/null +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts @@ -0,0 +1,167 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { getIndices } from './get_indices'; +import { IndexPatternCreationConfig } from './../../../../../../../management/public'; +import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public'; + +export const successfulResponse = { + hits: { + total: 1, + max_score: 0.0, + hits: [], + }, + aggregations: { + indices: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '1', + doc_count: 1, + }, + { + key: '2', + doc_count: 1, + }, + ], + }, + }, +}; + +export const exceptionResponse = { + body: { + error: { + root_cause: [ + { + type: 'index_not_found_exception', + reason: 'no such index', + index_uuid: '_na_', + 'resource.type': 'index_or_alias', + 'resource.id': 't', + index: 't', + }, + ], + type: 'transport_exception', + reason: 'unable to communicate with remote cluster [cluster_one]', + caused_by: { + type: 'index_not_found_exception', + reason: 'no such index', + index_uuid: '_na_', + 'resource.type': 'index_or_alias', + 'resource.id': 't', + index: 't', + }, + }, + }, + status: 500, +}; + +export const errorResponse = { + statusCode: 400, + error: 'Bad Request', +}; + +const mockIndexPatternCreationType = new IndexPatternCreationConfig({ + type: 'default', + name: 'name', + showSystemIndices: false, + httpClient: {}, + isBeta: false, +}); + +function esClientFactory(search: (params: any) => any): LegacyApiCaller { + return { + search, + msearch: () => ({ + abort: () => {}, + ...new Promise(resolve => resolve({})), + }), + }; +} + +const es = esClientFactory(() => successfulResponse); + +describe('getIndices', () => { + it('should work in a basic case', async () => { + const result = await getIndices(es, mockIndexPatternCreationType, 'kibana', 1); + expect(result.length).toBe(2); + expect(result[0].name).toBe('1'); + expect(result[1].name).toBe('2'); + }); + + it('should ignore ccs query-all', async () => { + expect((await getIndices(es, mockIndexPatternCreationType, '*:', 10)).length).toBe(0); + }); + + it('should ignore a single comma', async () => { + expect((await getIndices(es, mockIndexPatternCreationType, ',', 10)).length).toBe(0); + expect((await getIndices(es, mockIndexPatternCreationType, ',*', 10)).length).toBe(0); + expect((await getIndices(es, mockIndexPatternCreationType, ',foobar', 10)).length).toBe(0); + }); + + it('should trim the input', async () => { + let index; + const esClient = esClientFactory( + jest.fn().mockImplementation(params => { + index = params.index; + }) + ); + + await getIndices(esClient, mockIndexPatternCreationType, 'kibana ', 1); + expect(index).toBe('kibana'); + }); + + it('should use the limit', async () => { + let limit; + const esClient = esClientFactory( + jest.fn().mockImplementation(params => { + limit = params.body.aggs.indices.terms.size; + }) + ); + await getIndices(esClient, mockIndexPatternCreationType, 'kibana', 10); + expect(limit).toBe(10); + }); + + describe('errors', () => { + it('should handle errors gracefully', async () => { + const esClient = esClientFactory(() => errorResponse); + const result = await getIndices(esClient, mockIndexPatternCreationType, 'kibana', 1); + expect(result.length).toBe(0); + }); + + it('should throw exceptions', async () => { + const esClient = esClientFactory(() => { + throw new Error('Fail'); + }); + + await expect( + getIndices(esClient, mockIndexPatternCreationType, 'kibana', 1) + ).rejects.toThrow(); + }); + + it('should handle index_not_found_exception errors gracefully', async () => { + const esClient = esClientFactory( + () => new Promise((resolve, reject) => reject(exceptionResponse)) + ); + const result = await getIndices(esClient, mockIndexPatternCreationType, 'kibana', 1); + expect(result.length).toBe(0); + }); + }); +}); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.ts similarity index 83% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.ts index 8159fff8220bd5..3848c425e2d495 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.ts @@ -18,8 +18,16 @@ */ import { get, sortBy } from 'lodash'; +import { IndexPatternCreationConfig } from '../../../../../../../management/public'; +import { DataPublicPluginStart } from '../../../../../../../../../plugins/data/public'; +import { MatchedIndex } from '../types'; -export async function getIndices(es, indexPatternCreationType, rawPattern, limit) { +export async function getIndices( + es: DataPublicPluginStart['search']['__LEGACY']['esClient'], + indexPatternCreationType: IndexPatternCreationConfig, + rawPattern: string, + limit: number +): Promise { const pattern = rawPattern.trim(); // Searching for `*:` fails for CCS environments. The search request @@ -70,10 +78,10 @@ export async function getIndices(es, indexPatternCreationType, rawPattern, limit return sortBy( response.aggregations.indices.buckets - .map(bucket => { + .map((bucket: { key: string; doc_count: number }) => { return bucket.key; }) - .map(indexName => { + .map((indexName: string) => { return { name: indexName, tags: indexPatternCreationType.getIndexTags(indexName), diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_matched_indices.test.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.test.ts similarity index 53% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_matched_indices.test.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.test.ts index 625c128181ffe0..7aba50a7ca12b8 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/__jest__/get_matched_indices.test.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.test.ts @@ -17,24 +17,32 @@ * under the License. */ -import { getMatchedIndices } from '../get_matched_indices'; +import { getMatchedIndices } from './get_matched_indices'; -jest.mock('../../constants', () => ({ +jest.mock('./../constants', () => ({ MAX_NUMBER_OF_MATCHING_INDICES: 6, })); +const tags: string[] = []; const indices = [ - { name: 'kibana' }, - { name: 'es' }, - { name: 'logstash' }, - { name: 'packetbeat' }, - { name: 'metricbeat' }, - { name: '.kibana' }, + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: 'logstash', tags }, + { name: 'packetbeat', tags }, + { name: 'metricbeat', tags }, + { name: '.kibana', tags }, ]; -const partialIndices = [{ name: 'kibana' }, { name: 'es' }, { name: '.kibana' }]; +const partialIndices = [ + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: '.kibana', tags }, +]; -const exactIndices = [{ name: 'kibana' }, { name: '.kibana' }]; +const exactIndices = [ + { name: 'kibana', tags }, + { name: '.kibana', tags }, +]; describe('getMatchedIndices', () => { it('should return all indices', () => { @@ -43,26 +51,32 @@ describe('getMatchedIndices', () => { exactMatchedIndices, partialMatchedIndices, visibleIndices, - } = getMatchedIndices(indices, partialIndices, exactIndices, '*', true); + } = getMatchedIndices(indices, partialIndices, exactIndices, true); expect(allIndices).toEqual([ - { name: 'kibana' }, - { name: 'es' }, - { name: 'logstash' }, - { name: 'packetbeat' }, - { name: 'metricbeat' }, - { name: '.kibana' }, + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: 'logstash', tags }, + { name: 'packetbeat', tags }, + { name: 'metricbeat', tags }, + { name: '.kibana', tags }, ]); - expect(exactMatchedIndices).toEqual([{ name: 'kibana' }, { name: '.kibana' }]); + expect(exactMatchedIndices).toEqual([ + { name: 'kibana', tags }, + { name: '.kibana', tags }, + ]); expect(partialMatchedIndices).toEqual([ - { name: 'kibana' }, - { name: 'es' }, - { name: '.kibana' }, + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: '.kibana', tags }, ]); - expect(visibleIndices).toEqual([{ name: 'kibana' }, { name: '.kibana' }]); + expect(visibleIndices).toEqual([ + { name: 'kibana', tags }, + { name: '.kibana', tags }, + ]); }); it('should return all indices except for system indices', () => { @@ -71,31 +85,38 @@ describe('getMatchedIndices', () => { exactMatchedIndices, partialMatchedIndices, visibleIndices, - } = getMatchedIndices(indices, partialIndices, exactIndices, '*', false); + } = getMatchedIndices(indices, partialIndices, exactIndices, false); expect(allIndices).toEqual([ - { name: 'kibana' }, - { name: 'es' }, - { name: 'logstash' }, - { name: 'packetbeat' }, - { name: 'metricbeat' }, + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: 'logstash', tags }, + { name: 'packetbeat', tags }, + { name: 'metricbeat', tags }, ]); - expect(exactMatchedIndices).toEqual([{ name: 'kibana' }]); + expect(exactMatchedIndices).toEqual([{ name: 'kibana', tags }]); - expect(partialMatchedIndices).toEqual([{ name: 'kibana' }, { name: 'es' }]); + expect(partialMatchedIndices).toEqual([ + { name: 'kibana', tags }, + { name: 'es', tags }, + ]); - expect(visibleIndices).toEqual([{ name: 'kibana' }]); + expect(visibleIndices).toEqual([{ name: 'kibana', tags }]); }); it('should return partial matches as visible if there are no exact', () => { - const { visibleIndices } = getMatchedIndices(indices, partialIndices, [], '*', true); + const { visibleIndices } = getMatchedIndices(indices, partialIndices, [], true); - expect(visibleIndices).toEqual([{ name: 'kibana' }, { name: 'es' }, { name: '.kibana' }]); + expect(visibleIndices).toEqual([ + { name: 'kibana', tags }, + { name: 'es', tags }, + { name: '.kibana', tags }, + ]); }); it('should return all indices as visible if there are no exact or partial', () => { - const { visibleIndices } = getMatchedIndices(indices, [], [], '*', true); + const { visibleIndices } = getMatchedIndices(indices, [], [], true); expect(visibleIndices).toEqual(indices); }); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.ts similarity index 86% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.ts index 19a829a83a2b2b..cc3fd4075aa0e6 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_matched_indices.ts @@ -19,19 +19,21 @@ import { MAX_NUMBER_OF_MATCHING_INDICES } from '../constants'; -function isSystemIndex(index) { +function isSystemIndex(index: string): boolean { if (index.startsWith('.')) { return true; } if (index.includes(':')) { - return index.split(':').reduce((isSystem, index) => isSystem || isSystemIndex(index), false); + return index + .split(':') + .reduce((isSystem: boolean, idx) => isSystem || isSystemIndex(idx), false); } return false; } -function filterSystemIndices(indices, isIncludingSystemIndices) { +function filterSystemIndices(indices: MatchedIndex[], isIncludingSystemIndices: boolean) { if (!indices) { return indices; } @@ -62,12 +64,14 @@ function filterSystemIndices(indices, isIncludingSystemIndices) { This is the result of searching against a query that already ends in `*`. We call this `exact` matches because ES is telling us exactly what it matches */ + +import { MatchedIndex } from '../types'; + export function getMatchedIndices( - unfilteredAllIndices, - unfilteredPartialMatchedIndices, - unfilteredExactMatchedIndices, - query, - isIncludingSystemIndices + unfilteredAllIndices: MatchedIndex[], + unfilteredPartialMatchedIndices: MatchedIndex[], + unfilteredExactMatchedIndices: MatchedIndex[], + isIncludingSystemIndices: boolean = false ) { const allIndices = filterSystemIndices(unfilteredAllIndices, isIncludingSystemIndices); const partialMatchedIndices = filterSystemIndices( diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/index.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/index.ts similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/index.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/index.ts diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/types.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/types.ts new file mode 100644 index 00000000000000..93bb6920c6981c --- /dev/null +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/types.ts @@ -0,0 +1,23 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export interface MatchedIndex { + name: string; + tags: string[]; +} diff --git a/src/legacy/core_plugins/management/public/np_ready/services/index_pattern_management/creation/config.ts b/src/legacy/core_plugins/management/public/np_ready/services/index_pattern_management/creation/config.ts index 0598c88c80ba7c..b68b2e40aad9ed 100644 --- a/src/legacy/core_plugins/management/public/np_ready/services/index_pattern_management/creation/config.ts +++ b/src/legacy/core_plugins/management/public/np_ready/services/index_pattern_management/creation/config.ts @@ -102,7 +102,7 @@ export class IndexPatternCreationConfig { return this.showSystemIndices; } - public getIndexTags() { + public getIndexTags(indexName: string) { return []; } From f870120b30512aa9ffbb032d618f541ed8fb9c52 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Wed, 5 Feb 2020 12:16:55 -0500 Subject: [PATCH 20/33] [ML] New Platform server shim: update anomaly detectors routes to use new platform router (#56717) * update job routes to NP * call notify.error properly on mlMessageBarService * add route documentation annotation to job routes * update schema and route doc * update apidoc file with routes --- .../application/services/job_service.js | 14 +- .../new_platform/anomaly_detectors_schema.ts | 93 ++++ .../ml/server/routes/anomaly_detectors.js | 202 -------- .../ml/server/routes/anomaly_detectors.ts | 459 ++++++++++++++++++ .../plugins/ml/server/routes/apidoc.json | 16 +- 5 files changed, 574 insertions(+), 210 deletions(-) create mode 100644 x-pack/legacy/plugins/ml/server/new_platform/anomaly_detectors_schema.ts delete mode 100644 x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.js create mode 100644 x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.ts diff --git a/x-pack/legacy/plugins/ml/public/application/services/job_service.js b/x-pack/legacy/plugins/ml/public/application/services/job_service.js index 9827d1a5f38a1a..fe3663d6a3ddb1 100644 --- a/x-pack/legacy/plugins/ml/public/application/services/job_service.js +++ b/x-pack/legacy/plugins/ml/public/application/services/job_service.js @@ -416,7 +416,7 @@ class JobService { return { success: true }; }) .catch(err => { - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.couldNotUpdateJobErrorMessage', { defaultMessage: 'Could not update job: {jobId}', values: { jobId }, @@ -435,7 +435,7 @@ class JobService { return { success: true, messages }; }) .catch(err => { - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.jobValidationErrorMessage', { defaultMessage: 'Job Validation Error: {errorMessage}', values: { errorMessage: err.message }, @@ -628,7 +628,7 @@ class JobService { return { success: true }; }) .catch(err => { - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.couldNotUpdateDatafeedErrorMessage', { defaultMessage: 'Could not update datafeed: {datafeedId}', values: { datafeedId }, @@ -659,7 +659,7 @@ class JobService { }) .catch(err => { console.log('jobService error starting datafeed:', err); - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.couldNotStartDatafeedErrorMessage', { defaultMessage: 'Could not start datafeed for {jobId}', values: { jobId }, @@ -692,15 +692,15 @@ class JobService { ); if (err.statusCode === 500) { - msgs.error(couldNotStopDatafeedErrorMessage); - msgs.error( + msgs.notify.error(couldNotStopDatafeedErrorMessage); + msgs.notify.error( i18n.translate('xpack.ml.jobService.requestMayHaveTimedOutErrorMessage', { defaultMessage: 'Request may have timed out and may still be running in the background.', }) ); } else { - msgs.error(couldNotStopDatafeedErrorMessage, err); + msgs.notify.error(couldNotStopDatafeedErrorMessage, err); } reject(err); }); diff --git a/x-pack/legacy/plugins/ml/server/new_platform/anomaly_detectors_schema.ts b/x-pack/legacy/plugins/ml/server/new_platform/anomaly_detectors_schema.ts new file mode 100644 index 00000000000000..392d3bfd847684 --- /dev/null +++ b/x-pack/legacy/plugins/ml/server/new_platform/anomaly_detectors_schema.ts @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { schema } from '@kbn/config-schema'; + +const detectorSchema = schema.object({ + identifier: schema.maybe(schema.string()), + function: schema.string(), + field_name: schema.maybe(schema.string()), + by_field_name: schema.maybe(schema.string()), + over_field_name: schema.maybe(schema.string()), + partition_field_name: schema.maybe(schema.string()), + detector_description: schema.maybe(schema.string()), +}); + +const customUrlSchema = { + url_name: schema.string(), + url_value: schema.string(), + time_range: schema.maybe(schema.any()), +}; + +const customSettingsSchema = schema.object({ + created_by: schema.maybe(schema.string()), + custom_urls: schema.maybe(schema.arrayOf(schema.maybe(schema.object({ ...customUrlSchema })))), +}); + +export const anomalyDetectionUpdateJobSchema = { + description: schema.maybe(schema.string()), + detectors: schema.maybe( + schema.arrayOf( + schema.maybe( + schema.object({ + detector_index: schema.number(), + custom_rules: schema.arrayOf( + schema.maybe( + schema.object({ + actions: schema.arrayOf(schema.string()), + conditions: schema.arrayOf(schema.any()), + scope: schema.maybe(schema.any()), + }) + ) + ), + }) + ) + ) + ), + custom_settings: schema.maybe(customSettingsSchema), + analysis_limits: schema.object({ + categorization_examples_limit: schema.maybe(schema.number()), + model_memory_limit: schema.maybe(schema.string()), + }), + groups: schema.maybe(schema.arrayOf(schema.maybe(schema.string()))), +}; + +export const anomalyDetectionJobSchema = { + analysis_config: schema.object({ + bucket_span: schema.maybe(schema.string()), + summary_count_field_name: schema.maybe(schema.string()), + detectors: schema.arrayOf(detectorSchema), + influencers: schema.arrayOf(schema.maybe(schema.string())), + categorization_field_name: schema.maybe(schema.string()), + }), + analysis_limits: schema.object({ + categorization_examples_limit: schema.maybe(schema.number()), + model_memory_limit: schema.maybe(schema.string()), + }), + create_time: schema.maybe(schema.number()), + custom_settings: schema.maybe(customSettingsSchema), + allow_lazy_open: schema.maybe(schema.any()), + data_counts: schema.maybe(schema.any()), + data_description: schema.object({ + time_field: schema.string(), + time_format: schema.maybe(schema.string()), + }), + datafeed_config: schema.maybe(schema.any()), + description: schema.maybe(schema.string()), + established_model_memory: schema.maybe(schema.number()), + finished_time: schema.maybe(schema.number()), + job_id: schema.string(), + job_type: schema.maybe(schema.string()), + job_version: schema.maybe(schema.string()), + groups: schema.arrayOf(schema.maybe(schema.string())), + model_plot_config: schema.maybe(schema.any()), + model_size_stats: schema.maybe(schema.any()), + model_snapshot_id: schema.maybe(schema.string()), + model_snapshot_min_version: schema.maybe(schema.string()), + model_snapshot_retention_days: schema.maybe(schema.number()), + results_index_name: schema.maybe(schema.string()), + state: schema.maybe(schema.string()), +}; diff --git a/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.js b/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.js deleted file mode 100644 index 54d447c2881515..00000000000000 --- a/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.js +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { callWithRequestFactory } from '../client/call_with_request_factory'; -import { wrapError } from '../client/errors'; - -export function jobRoutes({ commonRouteConfig, elasticsearchPlugin, route }) { - route({ - method: 'GET', - path: '/api/ml/anomaly_detectors', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - return callWithRequest('ml.jobs').catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'GET', - path: '/api/ml/anomaly_detectors/{jobId}', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - return callWithRequest('ml.jobs', { jobId }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'GET', - path: '/api/ml/anomaly_detectors/_stats', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - return callWithRequest('ml.jobStats').catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'GET', - path: '/api/ml/anomaly_detectors/{jobId}/_stats', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - return callWithRequest('ml.jobStats', { jobId }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'PUT', - path: '/api/ml/anomaly_detectors/{jobId}', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - const body = request.payload; - return callWithRequest('ml.addJob', { jobId, body }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/{jobId}/_update', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - const body = request.payload; - return callWithRequest('ml.updateJob', { jobId, body }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/{jobId}/_open', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - return callWithRequest('ml.openJob', { jobId }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/{jobId}/_close', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const options = { - jobId: request.params.jobId, - }; - const force = request.query.force; - if (force !== undefined) { - options.force = force; - } - return callWithRequest('ml.closeJob', options).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'DELETE', - path: '/api/ml/anomaly_detectors/{jobId}', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const options = { - jobId: request.params.jobId, - }; - const force = request.query.force; - if (force !== undefined) { - options.force = force; - } - return callWithRequest('ml.deleteJob', options).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/_validate/detector', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const body = request.payload; - return callWithRequest('ml.validateDetector', { body }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/{jobId}/_forecast', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const jobId = request.params.jobId; - const duration = request.payload.duration; - return callWithRequest('ml.forecast', { jobId, duration }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'POST', - path: '/api/ml/anomaly_detectors/{jobId}/results/overall_buckets', - handler(request) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - return callWithRequest('ml.overallBuckets', { - jobId: request.params.jobId, - top_n: request.payload.topN, - bucket_span: request.payload.bucketSpan, - start: request.payload.start, - end: request.payload.end, - }).catch(resp => wrapError(resp)); - }, - config: { - ...commonRouteConfig, - }, - }); - - route({ - method: 'GET', - path: '/api/ml/anomaly_detectors/{jobId}/results/categories/{categoryId}', - handler(request, reply) { - const callWithRequest = callWithRequestFactory(elasticsearchPlugin, request); - const options = { - jobId: request.params.jobId, - categoryId: request.params.categoryId, - }; - return callWithRequest('ml.categories', options) - .then(resp => reply(resp)) - .catch(resp => reply(wrapError(resp))); - }, - config: { - ...commonRouteConfig, - }, - }); -} diff --git a/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.ts b/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.ts new file mode 100644 index 00000000000000..64af1f67bce297 --- /dev/null +++ b/x-pack/legacy/plugins/ml/server/routes/anomaly_detectors.ts @@ -0,0 +1,459 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { schema } from '@kbn/config-schema'; +import { wrapError } from '../client/error_wrapper'; +import { licensePreRoutingFactory } from '../new_platform/licence_check_pre_routing_factory'; +import { RouteInitialization } from '../new_platform/plugin'; +import { + anomalyDetectionJobSchema, + anomalyDetectionUpdateJobSchema, +} from '../new_platform/anomaly_detectors_schema'; + +/** + * Routes for the anomaly detectors + */ +export function jobRoutes({ xpackMainPlugin, router }: RouteInitialization) { + /** + * @apiGroup AnomalyDetectors + * + * @api {get} /api/ml/anomaly_detectors Get anomaly detectors data + * @apiName GetAnomalyDetectors + * @apiDescription Returns the list of anomaly detection jobs. + * + * @apiSuccess {Number} count + * @apiSuccess {Object[]} jobs + */ + router.get( + { + path: '/api/ml/anomaly_detectors', + validate: false, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const results = await context.ml!.mlClient.callAsCurrentUser('ml.jobs'); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {get} /api/ml/anomaly_detectors/:jobId Get anomaly detection data by id + * @apiName GetAnomalyDetectorsById + * @apiDescription Returns the anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.get( + { + path: '/api/ml/anomaly_detectors/{jobId}', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { jobId } = request.params; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.jobs', { jobId }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {get} /api/ml/anomaly_detectors/_stats Get anomaly detection stats + * @apiName GetAnomalyDetectorsStats + * @apiDescription Returns anomaly detection jobs statistics. + * + * @apiSuccess {Number} count + * @apiSuccess {Object[]} jobs + */ + router.get( + { + path: '/api/ml/anomaly_detectors/_stats', + validate: false, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const results = await context.ml!.mlClient.callAsCurrentUser('ml.jobStats'); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {get} /api/ml/anomaly_detectors/:jobId/_stats Get stats for requested anomaly detection job + * @apiName GetAnomalyDetectorsStatsById + * @apiDescription Returns anomaly detection job statistics. + * + * @apiParam {String} jobId Job ID. + */ + router.get( + { + path: '/api/ml/anomaly_detectors/{jobId}/_stats', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { jobId } = request.params; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.jobStats', { jobId }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {put} /api/ml/anomaly_detectors/:jobId Instantiate an anomaly detection job + * @apiName CreateAnomalyDetectors + * @apiDescription Creates an anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.put( + { + path: '/api/ml/anomaly_detectors/{jobId}', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + body: schema.object({ ...anomalyDetectionJobSchema }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { jobId } = request.params; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.addJob', { + jobId, + body: request.body, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/:jobId/_update Update an anomaly detection job + * @apiName UpdateAnomalyDetectors + * @apiDescription Updates certain properties of an anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.post( + { + path: '/api/ml/anomaly_detectors/{jobId}/_update', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + body: schema.object({ ...anomalyDetectionUpdateJobSchema }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { jobId } = request.params; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.updateJob', { + jobId, + body: request.body, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/:jobId/_open Open specified job + * @apiName OpenAnomalyDetectorsJob + * @apiDescription Opens an anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.post( + { + path: '/api/ml/anomaly_detectors/{jobId}/_open', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const { jobId } = request.params; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.openJob', { + jobId, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/:jobId/_close Close specified job + * @apiName CloseAnomalyDetectorsJob + * @apiDescription Closes an anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.post( + { + path: '/api/ml/anomaly_detectors/{jobId}/_close', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const options: { jobId: string; force?: boolean } = { + jobId: request.params.jobId, + }; + const force = request.query.force; + if (force !== undefined) { + options.force = force; + } + const results = await context.ml!.mlClient.callAsCurrentUser('ml.closeJob', options); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {delete} /api/ml/anomaly_detectors/:jobId Delete specified job + * @apiName DeleteAnomalyDetectorsJob + * @apiDescription Deletes specified anomaly detection job. + * + * @apiParam {String} jobId Job ID. + */ + router.delete( + { + path: '/api/ml/anomaly_detectors/{jobId}', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const options: { jobId: string; force?: boolean } = { + jobId: request.params.jobId, + }; + const force = request.query.force; + if (force !== undefined) { + options.force = force; + } + const results = await context.ml!.mlClient.callAsCurrentUser('ml.deleteJob', options); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/_validate/detector Validate detector + * @apiName ValidateAnomalyDetector + * @apiDescription Validates specified detector. + * + * @apiParam {String} jobId Job ID. + */ + router.post( + { + path: '/api/ml/anomaly_detectors/_validate/detector', + validate: { + body: schema.any(), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const results = await context.ml!.mlClient.callAsCurrentUser('ml.validateDetector', { + body: request.body, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/:jobId/_forecast Create forecast for specified job + * @apiName ForecastAnomalyDetector + * @apiDescription Creates a forecast for the specified anomaly detection job, predicting the future behavior of a time series by using its historical behavior. + * + * @apiParam {String} jobId Job ID. + */ + router.post( + { + path: '/api/ml/anomaly_detectors/{jobId}/_forecast', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + body: schema.object({ duration: schema.any() }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const jobId = request.params.jobId; + const duration = request.body.duration; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.forecast', { + jobId, + duration, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {post} /api/ml/anomaly_detectors/:jobId/results/overall_buckets Obtain overall bucket scores for the specified job ID + * @apiName GetOverallBuckets + * @apiDescription Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs. + * + * @apiParam {String} jobId Job ID. + * + * @apiSuccess {Number} count + * @apiSuccess {Object[]} overall_buckets + */ + router.post( + { + path: '/api/ml/anomaly_detectors/{jobId}/results/overall_buckets', + validate: { + params: schema.object({ + jobId: schema.string(), + }), + body: schema.object({ + topN: schema.number(), + bucketSpan: schema.string(), + start: schema.number(), + end: schema.number(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const results = await context.ml!.mlClient.callAsCurrentUser('ml.overallBuckets', { + jobId: request.params.jobId, + top_n: request.body.topN, + bucket_span: request.body.bucketSpan, + start: request.body.start, + end: request.body.end, + }); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); + + /** + * @apiGroup AnomalyDetectors + * + * @api {get} /api/ml/anomaly_detectors/:jobId/results/categories/:categoryId Get results category data by job id and category id + * @apiName GetCategories + * @apiDescription Returns the categories results for the specified job ID and category ID. + * + * @apiParam {String} jobId Job ID. + * @apiParam {String} categoryId Category ID. + */ + router.get( + { + path: '/api/ml/anomaly_detectors/{jobId}/results/categories/{categoryId}', + validate: { + params: schema.object({ + categoryId: schema.string(), + jobId: schema.string(), + }), + }, + }, + licensePreRoutingFactory(xpackMainPlugin, async (context, request, response) => { + try { + const options = { + jobId: request.params.jobId, + categoryId: request.params.categoryId, + }; + const results = await context.ml!.mlClient.callAsCurrentUser('ml.categories', options); + return response.ok({ + body: { ...results }, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + }) + ); +} diff --git a/x-pack/legacy/plugins/ml/server/routes/apidoc.json b/x-pack/legacy/plugins/ml/server/routes/apidoc.json index 4a3b93b9b866f8..f2ed202ae47771 100644 --- a/x-pack/legacy/plugins/ml/server/routes/apidoc.json +++ b/x-pack/legacy/plugins/ml/server/routes/apidoc.json @@ -19,6 +19,20 @@ "GetDataFrameAnalyticsMessages", "DataVisualizer", "GetOverallStats", - "GetStatsForFields" + "GetStatsForFields", + "AnomalyDetectors", + "GetAnomalyDetectors", + "GetAnomalyDetectorsById", + "GetAnomalyDetectorsStats", + "GetAnomalyDetectorsStatsById", + "CreateAnomalyDetectors", + "UpdateAnomalyDetectors", + "OpenAnomalyDetectorsJob", + "CloseAnomalyDetectorsJob", + "DeleteAnomalyDetectorsJob", + "ValidateAnomalyDetector", + "ForecastAnomalyDetector", + "GetOverallBuckets", + "GetCategories" ] } From 950ddf8917c1df04d0ae26036520b55557a14ab1 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Wed, 5 Feb 2020 11:20:15 -0600 Subject: [PATCH 21/33] Don't render map icons in IE 11 (#55848) As reported in #55184, the service map is completely broken in IE. This is because IE has some bugs around SVG that cause a runtime error. This change detects IE 11 and does not render those problematic icons. The result is a map that has the shapes but no SVG icons in them: https://www.dropbox.com/s/o7hp73yv5klpfqd/Screenshot%202020-01-24%2009.27.54.png?dl=0 We'll follow up in a future release with a fix to show the icons, but this makes it so the map is functional in IE. Fixes #55184. Co-authored-by: Elastic Machine --- .../apm/public/components/app/ServiceMap/icons.ts | 13 +++++++++++++ .../components/app/ServiceMap/icons/documents.svg | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons.ts b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons.ts index 722f64c6a7e58f..7d362f92154fbc 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons.ts +++ b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons.ts @@ -46,10 +46,23 @@ const serviceIcons: { [key: string]: string } = { export const defaultIcon = getAvatarIcon(); +// IE 11 does not properly load some SVGs, which causes a runtime error and the +// map to not work at all. We would prefer to do some kind of feature detection +// rather than browser detection, but IE 11 does support SVG, just not well +// enough for our use in loading icons. +// +// This method of detecting IE is from a Stack Overflow answer: +// https://stackoverflow.com/a/21825207 +// +// @ts-ignore `documentMode` is not recognized as a valid property of `document`. +const isIE11 = !!window.MSInputMethodContext && !!document.documentMode; + export function iconForNode(node: cytoscape.NodeSingular) { const type = node.data('type'); if (type === 'service') { return serviceIcons[node.data('agentName') as string]; + } else if (isIE11) { + return defaultIcon; } else { return icons[type]; } diff --git a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons/documents.svg b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons/documents.svg index b0648d14f20ba6..debe180e45661f 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons/documents.svg +++ b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/icons/documents.svg @@ -1 +1 @@ - + From 27dd6dda38d7d30a3a69fa2e0450e48c7f85d547 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Wed, 5 Feb 2020 18:35:40 +0100 Subject: [PATCH 22/33] Move lens server to new platform (#56474) --- .../plugins/apm/common/projections/typings.ts | 7 +- .../util/merge_projection/index.ts | 4 +- .../shared/KueryBar/get_bool_filter.ts | 2 +- .../plugins/apm/public/services/rest/ml.ts | 2 +- .../plugins/apm/public/utils/testHelpers.tsx | 2 +- .../lib/errors/distribution/get_buckets.ts | 2 +- .../apm/server/lib/errors/get_error_groups.ts | 2 +- .../get_environment_ui_filter_es.test.ts | 2 +- .../get_environment_ui_filter_es.ts | 2 +- .../convert_ui_filters/get_ui_filters_es.ts | 2 +- .../apm/server/lib/helpers/es_client.ts | 2 +- .../apm/server/lib/helpers/setup_request.ts | 2 +- .../metrics/fetch_and_transform_metrics.ts | 2 +- .../lib/metrics/transform_metrics_chart.ts | 4 +- .../get_service_map_service_node_info.ts | 2 +- .../lib/service_map/get_trace_sample_ids.ts | 2 +- .../server/lib/services/annotations/index.ts | 2 +- .../settings/agent_configuration/search.ts | 2 +- .../server/lib/transaction_groups/fetcher.ts | 2 +- .../__fixtures__/responses.ts | 2 +- .../avg_duration_by_browser/fetcher.ts | 2 +- .../charts/get_timeseries_data/fetcher.ts | 2 +- .../server/lib/ui_filters/get_environments.ts | 2 +- x-pack/legacy/plugins/lens/index.ts | 35 +----- .../plugins/lens/public/app_plugin/plugin.tsx | 2 +- .../embeddable/embeddable_factory.ts | 2 +- .../public/indexpattern_plugin/auto_date.ts | 2 +- .../dimension_panel/dimension_panel.tsx | 2 +- .../public/indexpattern_plugin/field_item.tsx | 2 +- .../lens/public/indexpattern_plugin/loader.ts | 4 +- .../operations/definitions/index.ts | 2 +- .../lens/public/lens_ui_telemetry/factory.ts | 2 +- .../lens/public/register_vis_type_alias.ts | 2 +- x-pack/legacy/plugins/lens/public/types.ts | 2 +- x-pack/legacy/plugins/lens/server/plugin.tsx | 57 --------- .../lib/tasks/visualizations/task_runner.ts | 2 +- .../apm/typings/elasticsearch/aggregations.ts | 30 +---- .../apm/typings/elasticsearch/index.ts | 13 +-- .../{legacy => }/plugins/lens/common/api.ts | 0 .../plugins/lens/common/constants.ts | 0 .../{legacy => }/plugins/lens/common/index.ts | 0 .../{legacy => }/plugins/lens/common/types.ts | 0 x-pack/plugins/lens/kibana.json | 8 ++ .../{legacy => }/plugins/lens/server/index.ts | 6 +- x-pack/plugins/lens/server/plugin.tsx | 62 ++++++++++ .../server/routes/existing_fields.test.ts | 0 .../lens/server/routes/existing_fields.ts | 3 +- .../plugins/lens/server/routes/field_stats.ts | 0 .../plugins/lens/server/routes/index.ts | 13 +-- .../plugins/lens/server/routes/telemetry.ts | 24 +--- .../plugins/lens/server/usage/collectors.ts | 2 +- .../plugins/lens/server/usage/index.ts | 0 .../plugins/lens/server/usage/task.ts | 108 +++++++----------- .../plugins/lens/server/usage/types.ts | 0 .../lens/server/usage/visualization_counts.ts | 18 +-- .../api_integration/apis/lens/telemetry.ts | 19 +-- 56 files changed, 187 insertions(+), 290 deletions(-) delete mode 100644 x-pack/legacy/plugins/lens/server/plugin.tsx rename x-pack/{legacy => }/plugins/apm/typings/elasticsearch/aggregations.ts (91%) rename x-pack/{legacy => }/plugins/apm/typings/elasticsearch/index.ts (84%) rename x-pack/{legacy => }/plugins/lens/common/api.ts (100%) rename x-pack/{legacy => }/plugins/lens/common/constants.ts (100%) rename x-pack/{legacy => }/plugins/lens/common/index.ts (100%) rename x-pack/{legacy => }/plugins/lens/common/types.ts (100%) create mode 100644 x-pack/plugins/lens/kibana.json rename x-pack/{legacy => }/plugins/lens/server/index.ts (55%) create mode 100644 x-pack/plugins/lens/server/plugin.tsx rename x-pack/{legacy => }/plugins/lens/server/routes/existing_fields.test.ts (100%) rename x-pack/{legacy => }/plugins/lens/server/routes/existing_fields.ts (98%) rename x-pack/{legacy => }/plugins/lens/server/routes/field_stats.ts (100%) rename x-pack/{legacy => }/plugins/lens/server/routes/index.ts (59%) rename x-pack/{legacy => }/plugins/lens/server/routes/telemetry.ts (75%) rename x-pack/{legacy => }/plugins/lens/server/usage/collectors.ts (97%) rename x-pack/{legacy => }/plugins/lens/server/usage/index.ts (100%) rename x-pack/{legacy => }/plugins/lens/server/usage/task.ts (62%) rename x-pack/{legacy => }/plugins/lens/server/usage/types.ts (100%) rename x-pack/{legacy => }/plugins/lens/server/usage/visualization_counts.ts (85%) diff --git a/x-pack/legacy/plugins/apm/common/projections/typings.ts b/x-pack/legacy/plugins/apm/common/projections/typings.ts index 2b55395b70c6ba..08a7bee5412a53 100644 --- a/x-pack/legacy/plugins/apm/common/projections/typings.ts +++ b/x-pack/legacy/plugins/apm/common/projections/typings.ts @@ -4,11 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESSearchRequest, ESSearchBody } from '../../typings/elasticsearch'; +import { + ESSearchRequest, + ESSearchBody +} from '../../../../../plugins/apm/typings/elasticsearch'; import { AggregationOptionsByType, AggregationInputMap -} from '../../typings/elasticsearch/aggregations'; +} from '../../../../../plugins/apm/typings/elasticsearch/aggregations'; export type Projection = Omit & { body: Omit & { diff --git a/x-pack/legacy/plugins/apm/common/projections/util/merge_projection/index.ts b/x-pack/legacy/plugins/apm/common/projections/util/merge_projection/index.ts index 6a5089733bb339..ef6089872b786e 100644 --- a/x-pack/legacy/plugins/apm/common/projections/util/merge_projection/index.ts +++ b/x-pack/legacy/plugins/apm/common/projections/util/merge_projection/index.ts @@ -5,11 +5,11 @@ */ import { merge, isPlainObject, cloneDeep } from 'lodash'; import { DeepPartial } from 'utility-types'; -import { AggregationInputMap } from '../../../../typings/elasticsearch/aggregations'; +import { AggregationInputMap } from '../../../../../../../plugins/apm/typings/elasticsearch/aggregations'; import { ESSearchRequest, ESSearchBody -} from '../../../../typings/elasticsearch'; +} from '../../../../../../../plugins/apm/typings/elasticsearch'; import { Projection } from '../../typings'; type PlainObject = Record; diff --git a/x-pack/legacy/plugins/apm/public/components/shared/KueryBar/get_bool_filter.ts b/x-pack/legacy/plugins/apm/public/components/shared/KueryBar/get_bool_filter.ts index f4628524cced58..23feeed4b04189 100644 --- a/x-pack/legacy/plugins/apm/public/components/shared/KueryBar/get_bool_filter.ts +++ b/x-pack/legacy/plugins/apm/public/components/shared/KueryBar/get_bool_filter.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { TRANSACTION_TYPE, ERROR_GROUP_ID, diff --git a/x-pack/legacy/plugins/apm/public/services/rest/ml.ts b/x-pack/legacy/plugins/apm/public/services/rest/ml.ts index e42b9536362e03..187a051b1b0444 100644 --- a/x-pack/legacy/plugins/apm/public/services/rest/ml.ts +++ b/x-pack/legacy/plugins/apm/public/services/rest/ml.ts @@ -12,7 +12,7 @@ import { } from '../../../common/elasticsearch_fieldnames'; import { getMlJobId, getMlPrefix } from '../../../common/ml_job_constants'; import { callApi } from './callApi'; -import { ESFilter } from '../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../plugins/apm/typings/elasticsearch'; import { createCallApmApi, APMClient } from './createCallApmApi'; interface MlResponseItem { diff --git a/x-pack/legacy/plugins/apm/public/utils/testHelpers.tsx b/x-pack/legacy/plugins/apm/public/utils/testHelpers.tsx index 862c982d6b5ac5..3d34f016c65916 100644 --- a/x-pack/legacy/plugins/apm/public/utils/testHelpers.tsx +++ b/x-pack/legacy/plugins/apm/public/utils/testHelpers.tsx @@ -23,7 +23,7 @@ import { ESFilter, ESSearchResponse, ESSearchRequest -} from '../../typings/elasticsearch'; +} from '../../../../../plugins/apm/typings/elasticsearch'; import { ApmPluginContext, ApmPluginContextValue diff --git a/x-pack/legacy/plugins/apm/server/lib/errors/distribution/get_buckets.ts b/x-pack/legacy/plugins/apm/server/lib/errors/distribution/get_buckets.ts index 9274f96d58d83c..0f6ace39aeca30 100644 --- a/x-pack/legacy/plugins/apm/server/lib/errors/distribution/get_buckets.ts +++ b/x-pack/legacy/plugins/apm/server/lib/errors/distribution/get_buckets.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { ERROR_GROUP_ID, PROCESSOR_EVENT, diff --git a/x-pack/legacy/plugins/apm/server/lib/errors/get_error_groups.ts b/x-pack/legacy/plugins/apm/server/lib/errors/get_error_groups.ts index aaa4ca9fb82230..92ee6a0a71f00e 100644 --- a/x-pack/legacy/plugins/apm/server/lib/errors/get_error_groups.ts +++ b/x-pack/legacy/plugins/apm/server/lib/errors/get_error_groups.ts @@ -20,7 +20,7 @@ import { } from '../helpers/setup_request'; import { getErrorGroupsProjection } from '../../../common/projections/errors'; import { mergeProjection } from '../../../common/projections/util/merge_projection'; -import { SortOptions } from '../../../typings/elasticsearch/aggregations'; +import { SortOptions } from '../../../../../../plugins/apm/typings/elasticsearch/aggregations'; export type ErrorGroupListAPIResponse = PromiseReturnType< typeof getErrorGroups diff --git a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/__test__/get_environment_ui_filter_es.test.ts b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/__test__/get_environment_ui_filter_es.test.ts index 0f0a11a868d6d7..b5061e303a40dd 100644 --- a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/__test__/get_environment_ui_filter_es.test.ts +++ b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/__test__/get_environment_ui_filter_es.test.ts @@ -7,7 +7,7 @@ import { getEnvironmentUiFilterES } from '../get_environment_ui_filter_es'; import { ENVIRONMENT_NOT_DEFINED } from '../../../../../common/environment_filter_values'; import { SERVICE_ENVIRONMENT } from '../../../../../common/elasticsearch_fieldnames'; -import { ESFilter } from '../../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../../plugins/apm/typings/elasticsearch'; describe('getEnvironmentUiFilterES', () => { it('should return undefined, when environment is undefined', () => { diff --git a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_environment_ui_filter_es.ts b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_environment_ui_filter_es.ts index 57feaf6a6fd0ed..dcf2334ab4de23 100644 --- a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_environment_ui_filter_es.ts +++ b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_environment_ui_filter_es.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { ENVIRONMENT_NOT_DEFINED } from '../../../../common/environment_filter_values'; import { SERVICE_ENVIRONMENT } from '../../../../common/elasticsearch_fieldnames'; diff --git a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts index a6f6d36ecfc81a..126ee49fd42189 100644 --- a/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts +++ b/x-pack/legacy/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { UIFilters } from '../../../../typings/ui-filters'; import { getEnvironmentUiFilterES } from './get_environment_ui_filter_es'; import { diff --git a/x-pack/legacy/plugins/apm/server/lib/helpers/es_client.ts b/x-pack/legacy/plugins/apm/server/lib/helpers/es_client.ts index 737eeac95516e9..2795c95a500342 100644 --- a/x-pack/legacy/plugins/apm/server/lib/helpers/es_client.ts +++ b/x-pack/legacy/plugins/apm/server/lib/helpers/es_client.ts @@ -18,7 +18,7 @@ import { OBSERVER_VERSION_MAJOR } from '../../../common/elasticsearch_fieldnames import { ESSearchResponse, ESSearchRequest -} from '../../../typings/elasticsearch'; +} from '../../../../../../plugins/apm/typings/elasticsearch'; import { APMRequestHandlerContext } from '../../routes/typings'; import { pickKeys } from '../../../public/utils/pickKeys'; import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; diff --git a/x-pack/legacy/plugins/apm/server/lib/helpers/setup_request.ts b/x-pack/legacy/plugins/apm/server/lib/helpers/setup_request.ts index 56c92558440094..f8946997e6e18b 100644 --- a/x-pack/legacy/plugins/apm/server/lib/helpers/setup_request.ts +++ b/x-pack/legacy/plugins/apm/server/lib/helpers/setup_request.ts @@ -12,7 +12,7 @@ import { getApmIndices, ApmIndicesConfig } from '../settings/apm_indices/get_apm_indices'; -import { ESFilter } from '../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../plugins/apm/typings/elasticsearch'; import { ESClient } from './es_client'; import { getUiFiltersES } from './convert_ui_filters/get_ui_filters_es'; import { APMRequestHandlerContext } from '../../routes/typings'; diff --git a/x-pack/legacy/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts b/x-pack/legacy/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts index 76460bb40bedb2..410d659a924fdb 100644 --- a/x-pack/legacy/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts +++ b/x-pack/legacy/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts @@ -15,7 +15,7 @@ import { ChartBase } from './types'; import { transformDataToMetricsChart } from './transform_metrics_chart'; import { getMetricsProjection } from '../../../common/projections/metrics'; import { mergeProjection } from '../../../common/projections/util/merge_projection'; -import { AggregationOptionsByType } from '../../../typings/elasticsearch/aggregations'; +import { AggregationOptionsByType } from '../../../../../../plugins/apm/typings/elasticsearch/aggregations'; interface Aggs { [key: string]: Unionize<{ diff --git a/x-pack/legacy/plugins/apm/server/lib/metrics/transform_metrics_chart.ts b/x-pack/legacy/plugins/apm/server/lib/metrics/transform_metrics_chart.ts index 03f21e4f26e7be..8e7c969eec96a7 100644 --- a/x-pack/legacy/plugins/apm/server/lib/metrics/transform_metrics_chart.ts +++ b/x-pack/legacy/plugins/apm/server/lib/metrics/transform_metrics_chart.ts @@ -9,8 +9,8 @@ import { ChartBase } from './types'; import { ESSearchResponse, ESSearchRequest -} from '../../../typings/elasticsearch'; -import { AggregationOptionsByType } from '../../../typings/elasticsearch/aggregations'; +} from '../../../../../../plugins/apm/typings/elasticsearch'; +import { AggregationOptionsByType } from '../../../../../../plugins/apm/typings/elasticsearch/aggregations'; import { getVizColorForIndex } from '../../../common/viz_colors'; export type GenericMetricsChart = ReturnType< diff --git a/x-pack/legacy/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts b/x-pack/legacy/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts index 6c4d540103ceca..cff2d8570349e1 100644 --- a/x-pack/legacy/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts +++ b/x-pack/legacy/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts @@ -5,7 +5,7 @@ */ import { Setup, SetupTimeRange } from '../helpers/setup_request'; -import { ESFilter } from '../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../plugins/apm/typings/elasticsearch'; import { rangeFilter } from '../helpers/range_filter'; import { PROCESSOR_EVENT, diff --git a/x-pack/legacy/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts b/x-pack/legacy/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts index acf113b4266081..bb5fcabb6c9d71 100644 --- a/x-pack/legacy/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts +++ b/x-pack/legacy/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts @@ -10,7 +10,7 @@ import { SetupTimeRange } from '../helpers/setup_request'; import { rangeFilter } from '../helpers/range_filter'; -import { ESFilter } from '../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../plugins/apm/typings/elasticsearch'; import { PROCESSOR_EVENT, SERVICE_NAME, diff --git a/x-pack/legacy/plugins/apm/server/lib/services/annotations/index.ts b/x-pack/legacy/plugins/apm/server/lib/services/annotations/index.ts index c03746ca220ee4..9c8e4f2281b5e3 100644 --- a/x-pack/legacy/plugins/apm/server/lib/services/annotations/index.ts +++ b/x-pack/legacy/plugins/apm/server/lib/services/annotations/index.ts @@ -5,7 +5,7 @@ */ import { isNumber } from 'lodash'; import { Annotation, AnnotationType } from '../../../../common/annotations'; -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { SERVICE_NAME, SERVICE_ENVIRONMENT, diff --git a/x-pack/legacy/plugins/apm/server/lib/settings/agent_configuration/search.ts b/x-pack/legacy/plugins/apm/server/lib/settings/agent_configuration/search.ts index 766baead006b6e..3f4225eaf22d67 100644 --- a/x-pack/legacy/plugins/apm/server/lib/settings/agent_configuration/search.ts +++ b/x-pack/legacy/plugins/apm/server/lib/settings/agent_configuration/search.ts @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { ESSearchHit } from '../../../../typings/elasticsearch'; +import { ESSearchHit } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { SERVICE_NAME, SERVICE_ENVIRONMENT diff --git a/x-pack/legacy/plugins/apm/server/lib/transaction_groups/fetcher.ts b/x-pack/legacy/plugins/apm/server/lib/transaction_groups/fetcher.ts index a4885f2884976b..18c61df0cfa7e7 100644 --- a/x-pack/legacy/plugins/apm/server/lib/transaction_groups/fetcher.ts +++ b/x-pack/legacy/plugins/apm/server/lib/transaction_groups/fetcher.ts @@ -13,7 +13,7 @@ import { import { getTransactionGroupsProjection } from '../../../common/projections/transaction_groups'; import { mergeProjection } from '../../../common/projections/util/merge_projection'; import { PromiseReturnType } from '../../../typings/common'; -import { SortOptions } from '../../../typings/elasticsearch/aggregations'; +import { SortOptions } from '../../../../../../plugins/apm/typings/elasticsearch/aggregations'; import { Transaction } from '../../../typings/es_schemas/ui/Transaction'; import { Setup, diff --git a/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/__fixtures__/responses.ts b/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/__fixtures__/responses.ts index 3f0f8a84dc62ff..9a9bfc31c21d45 100644 --- a/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/__fixtures__/responses.ts +++ b/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/__fixtures__/responses.ts @@ -7,7 +7,7 @@ import { ESSearchResponse, ESSearchRequest -} from '../../../../../typings/elasticsearch'; +} from '../../../../../../../../plugins/apm/typings/elasticsearch'; export const response = ({ hits: { diff --git a/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/fetcher.ts b/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/fetcher.ts index 8a96a25aef50e3..9b0d704dbb43ec 100644 --- a/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/fetcher.ts +++ b/x-pack/legacy/plugins/apm/server/lib/transactions/avg_duration_by_browser/fetcher.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { PromiseReturnType } from '../../../../typings/common'; import { PROCESSOR_EVENT, diff --git a/x-pack/legacy/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts b/x-pack/legacy/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts index 8a2e01c9a78911..67b807da59b9b7 100644 --- a/x-pack/legacy/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts +++ b/x-pack/legacy/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESFilter } from '../../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../../plugins/apm/typings/elasticsearch'; import { PROCESSOR_EVENT, SERVICE_NAME, diff --git a/x-pack/legacy/plugins/apm/server/lib/ui_filters/get_environments.ts b/x-pack/legacy/plugins/apm/server/lib/ui_filters/get_environments.ts index 50c1926d1e4a0b..05985ee95a2075 100644 --- a/x-pack/legacy/plugins/apm/server/lib/ui_filters/get_environments.ts +++ b/x-pack/legacy/plugins/apm/server/lib/ui_filters/get_environments.ts @@ -12,7 +12,7 @@ import { import { rangeFilter } from '../helpers/range_filter'; import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { ENVIRONMENT_NOT_DEFINED } from '../../../common/environment_filter_values'; -import { ESFilter } from '../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../plugins/apm/typings/elasticsearch'; export async function getEnvironments( setup: Setup & SetupTimeRange, diff --git a/x-pack/legacy/plugins/lens/index.ts b/x-pack/legacy/plugins/lens/index.ts index a4eb24d4a4de4f..bb0bf9b67ee2c4 100644 --- a/x-pack/legacy/plugins/lens/index.ts +++ b/x-pack/legacy/plugins/lens/index.ts @@ -7,11 +7,12 @@ import * as Joi from 'joi'; import { resolve } from 'path'; import { LegacyPluginInitializer } from 'src/legacy/types'; -import KbnServer, { Server } from 'src/legacy/server/kbn_server'; import mappings from './mappings.json'; -import { PLUGIN_ID, getEditPath, NOT_INTERNATIONALIZED_PRODUCT_NAME } from './common'; -import { lensServerPlugin } from './server'; -import { getTaskManagerSetup, getTaskManagerStart } from '../task_manager/server'; +import { + PLUGIN_ID, + getEditPath, + NOT_INTERNATIONALIZED_PRODUCT_NAME, +} from '../../../plugins/lens/common'; export const lens: LegacyPluginInitializer = kibana => { return new kibana.Plugin({ @@ -51,31 +52,5 @@ export const lens: LegacyPluginInitializer = kibana => { enabled: Joi.boolean().default(true), }).default(); }, - - init(server: Server) { - const kbnServer = (server as unknown) as KbnServer; - - // Set up with the new platform plugin lifecycle API. - const plugin = lensServerPlugin(); - const { usageCollection } = server.newPlatform.setup.plugins; - - plugin.setup(kbnServer.newPlatform.setup.core, { - usageCollection, - // Legacy APIs - savedObjects: server.savedObjects, - config: server.config(), - server, - taskManager: getTaskManagerSetup(server)!, - }); - - plugin.start(kbnServer.newPlatform.start.core, { - server, - taskManager: getTaskManagerStart(server)!, - }); - - server.events.on('stop', () => { - plugin.stop(); - }); - }, }); }; diff --git a/x-pack/legacy/plugins/lens/public/app_plugin/plugin.tsx b/x-pack/legacy/plugins/lens/public/app_plugin/plugin.tsx index f7d9ae5741afbe..5efbd4b613a3ee 100644 --- a/x-pack/legacy/plugins/lens/public/app_plugin/plugin.tsx +++ b/x-pack/legacy/plugins/lens/public/app_plugin/plugin.tsx @@ -40,7 +40,7 @@ import { stopReportManager, trackUiEvent, } from '../lens_ui_telemetry'; -import { NOT_INTERNATIONALIZED_PRODUCT_NAME } from '../../common'; +import { NOT_INTERNATIONALIZED_PRODUCT_NAME } from '../../../../../plugins/lens/common'; import { KibanaLegacySetup } from '../../../../../../src/plugins/kibana_legacy/public'; import { EditorFrameStart } from '../types'; import { diff --git a/x-pack/legacy/plugins/lens/public/editor_frame_plugin/embeddable/embeddable_factory.ts b/x-pack/legacy/plugins/lens/public/editor_frame_plugin/embeddable/embeddable_factory.ts index 03a21a9b364c10..629efdbdb460bb 100644 --- a/x-pack/legacy/plugins/lens/public/editor_frame_plugin/embeddable/embeddable_factory.ts +++ b/x-pack/legacy/plugins/lens/public/editor_frame_plugin/embeddable/embeddable_factory.ts @@ -19,7 +19,7 @@ import { } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; import { Embeddable } from './embeddable'; import { SavedObjectIndexStore, DOC_TYPE } from '../../persistence'; -import { getEditPath } from '../../../common'; +import { getEditPath } from '../../../../../../plugins/lens/common'; export class EmbeddableFactory extends AbstractEmbeddableFactory { type = DOC_TYPE; diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/auto_date.ts b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/auto_date.ts index b62585f5da09ad..7720af8ee90017 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/auto_date.ts +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/auto_date.ts @@ -10,7 +10,7 @@ import { ExpressionFunction, KibanaContext, } from '../../../../../../src/plugins/expressions/public'; -import { DateRange } from '../../common'; +import { DateRange } from '../../../../../plugins/lens/common'; interface LensAutoDateProps { aggConfigs: string; diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/dimension_panel/dimension_panel.tsx b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/dimension_panel/dimension_panel.tsx index dfeb8632d096e0..972c396f93b430 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/dimension_panel/dimension_panel.tsx +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/dimension_panel/dimension_panel.tsx @@ -19,7 +19,7 @@ import { changeColumn, deleteColumn } from '../state_helpers'; import { isDraggedField, hasField } from '../utils'; import { IndexPatternPrivateState, IndexPatternField } from '../types'; import { trackUiEvent } from '../../lens_ui_telemetry'; -import { DateRange } from '../../../common'; +import { DateRange } from '../../../../../../plugins/lens/common'; export type IndexPatternDimensionPanelProps = DatasourceDimensionPanelProps & { state: IndexPatternPrivateState; diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/field_item.tsx b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/field_item.tsx index 4a58f0354882a6..2aec28181f02b8 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/field_item.tsx +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/field_item.tsx @@ -44,7 +44,7 @@ import { import { DraggedField } from './indexpattern'; import { DragDrop } from '../drag_drop'; import { DatasourceDataPanelProps, DataType } from '../types'; -import { BucketedAggregation, FieldStatsResponse } from '../../common'; +import { BucketedAggregation, FieldStatsResponse } from '../../../../../plugins/lens/common'; import { IndexPattern, IndexPatternField } from './types'; import { getColorForDataType, LensFieldIcon } from './lens_field_icon'; import { trackUiEvent } from '../lens_ui_telemetry'; diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts index f0692f120f9b5b..e37c5db09ca745 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/loader.ts @@ -17,8 +17,8 @@ import { IndexPatternField, } from './types'; import { updateLayerIndexPattern } from './state_helpers'; -import { DateRange, ExistingFields } from '../../common/types'; -import { BASE_API_URL } from '../../common'; +import { DateRange, ExistingFields } from '../../../../../plugins/lens/common/types'; +import { BASE_API_URL } from '../../../../../plugins/lens/common'; import { documentField } from './document_field'; import { isNestedField, IFieldType, TypeMeta } from '../../../../../../src/plugins/data/public'; diff --git a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/index.ts b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/index.ts index 63e4564878e317..f357038be41a49 100644 --- a/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/index.ts +++ b/x-pack/legacy/plugins/lens/public/indexpattern_plugin/operations/definitions/index.ts @@ -14,7 +14,7 @@ import { countOperation } from './count'; import { DimensionPriority, StateSetter, OperationMetadata } from '../../../types'; import { BaseIndexPatternColumn } from './column_types'; import { IndexPatternPrivateState, IndexPattern, IndexPatternField } from '../../types'; -import { DateRange } from '../../../../common'; +import { DateRange } from '../../../../../../../plugins/lens/common'; // List of all operation definitions registered to this data source. // If you want to implement a new operation, add it to this array and diff --git a/x-pack/legacy/plugins/lens/public/lens_ui_telemetry/factory.ts b/x-pack/legacy/plugins/lens/public/lens_ui_telemetry/factory.ts index babc65969afb50..73750a65c50b8b 100644 --- a/x-pack/legacy/plugins/lens/public/lens_ui_telemetry/factory.ts +++ b/x-pack/legacy/plugins/lens/public/lens_ui_telemetry/factory.ts @@ -8,7 +8,7 @@ import moment from 'moment'; import { HttpSetup } from 'src/core/public'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { BASE_API_URL } from '../../common'; +import { BASE_API_URL } from '../../../../../plugins/lens/common'; const STORAGE_KEY = 'lens-ui-telemetry'; diff --git a/x-pack/legacy/plugins/lens/public/register_vis_type_alias.ts b/x-pack/legacy/plugins/lens/public/register_vis_type_alias.ts index 0c4e6d9f7cb10f..f71796268065b1 100644 --- a/x-pack/legacy/plugins/lens/public/register_vis_type_alias.ts +++ b/x-pack/legacy/plugins/lens/public/register_vis_type_alias.ts @@ -6,7 +6,7 @@ import { i18n } from '@kbn/i18n'; import { setup as visualizations } from '../../../../../src/legacy/core_plugins/visualizations/public/np_ready/public/legacy'; -import { getBasePath, getEditPath } from '../common'; +import { getBasePath, getEditPath } from '../../../../plugins/lens/common'; visualizations.types.registerAlias({ aliasUrl: getBasePath(), diff --git a/x-pack/legacy/plugins/lens/public/types.ts b/x-pack/legacy/plugins/lens/public/types.ts index 923e0aff5ae0e8..e2157deb43e499 100644 --- a/x-pack/legacy/plugins/lens/public/types.ts +++ b/x-pack/legacy/plugins/lens/public/types.ts @@ -11,7 +11,7 @@ import { SavedQuery } from 'src/legacy/core_plugins/data/public'; import { KibanaDatatable } from '../../../../../src/plugins/expressions/public'; import { DragContextState } from './drag_drop'; import { Document } from './persistence'; -import { DateRange } from '../common'; +import { DateRange } from '../../../../plugins/lens/common'; import { Query, esFilters } from '../../../../../src/plugins/data/public'; // eslint-disable-next-line diff --git a/x-pack/legacy/plugins/lens/server/plugin.tsx b/x-pack/legacy/plugins/lens/server/plugin.tsx deleted file mode 100644 index f80d52248b4849..00000000000000 --- a/x-pack/legacy/plugins/lens/server/plugin.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { Server, KibanaConfig } from 'src/legacy/server/kbn_server'; -import { Plugin, CoreSetup, CoreStart, SavedObjectsLegacyService } from 'src/core/server'; -import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; -import { Subject } from 'rxjs'; -import { first } from 'rxjs/operators'; -import { - TaskManagerSetupContract, - TaskManagerStartContract, -} from '../../../../plugins/task_manager/server'; -import { setupRoutes } from './routes'; -import { - registerLensUsageCollector, - initializeLensTelemetry, - scheduleLensTelemetry, -} from './usage'; - -export interface PluginSetupContract { - savedObjects: SavedObjectsLegacyService; - usageCollection: UsageCollectionSetup; - config: KibanaConfig; - server: Server; - taskManager: TaskManagerSetupContract; -} - -export interface PluginStartContract { - server: Server; - taskManager: TaskManagerStartContract; -} - -const taskManagerStartContract$ = new Subject(); - -export class LensServer implements Plugin<{}, {}, {}, {}> { - setup(core: CoreSetup, plugins: PluginSetupContract) { - setupRoutes(core, plugins); - registerLensUsageCollector( - plugins.usageCollection, - taskManagerStartContract$.pipe(first()).toPromise() - ); - initializeLensTelemetry(plugins.server, plugins.taskManager); - return {}; - } - - start(core: CoreStart, plugins: PluginStartContract) { - scheduleLensTelemetry(plugins.server, plugins.taskManager); - taskManagerStartContract$.next(plugins.taskManager); - taskManagerStartContract$.complete(); - return {}; - } - - stop() {} -} diff --git a/x-pack/legacy/plugins/oss_telemetry/server/lib/tasks/visualizations/task_runner.ts b/x-pack/legacy/plugins/oss_telemetry/server/lib/tasks/visualizations/task_runner.ts index 0b7b301df12bf8..4c7525645a2c20 100644 --- a/x-pack/legacy/plugins/oss_telemetry/server/lib/tasks/visualizations/task_runner.ts +++ b/x-pack/legacy/plugins/oss_telemetry/server/lib/tasks/visualizations/task_runner.ts @@ -9,7 +9,7 @@ import { APICaller, CoreSetup } from 'kibana/server'; import { getNextMidnight } from '../../get_next_midnight'; import { VisState } from '../../../../../../../../src/legacy/core_plugins/visualizations/public'; import { TaskInstance } from '../../../../../../../plugins/task_manager/server'; -import { ESSearchHit } from '../../../../../apm/typings/elasticsearch'; +import { ESSearchHit } from '../../../../../../../plugins/apm/typings/elasticsearch'; import { LegacyConfig } from '../../../plugin'; interface VisSummary { diff --git a/x-pack/legacy/plugins/apm/typings/elasticsearch/aggregations.ts b/x-pack/plugins/apm/typings/elasticsearch/aggregations.ts similarity index 91% rename from x-pack/legacy/plugins/apm/typings/elasticsearch/aggregations.ts rename to x-pack/plugins/apm/typings/elasticsearch/aggregations.ts index 6d3620f11a87b2..2ee8df7b5d1e1a 100644 --- a/x-pack/legacy/plugins/apm/typings/elasticsearch/aggregations.ts +++ b/x-pack/plugins/apm/typings/elasticsearch/aggregations.ts @@ -147,19 +147,13 @@ type BucketSubAggregationResponse< ? AggregationResponseMap : {}; -interface AggregationResponsePart< - TAggregationOptionsMap extends AggregationOptionsMap, - TDocument -> { +interface AggregationResponsePart { terms: { buckets: Array< { doc_count: number; key: string | number; - } & BucketSubAggregationResponse< - TAggregationOptionsMap['aggs'], - TDocument - > + } & BucketSubAggregationResponse >; }; histogram: { @@ -167,10 +161,7 @@ interface AggregationResponsePart< { doc_count: number; key: number; - } & BucketSubAggregationResponse< - TAggregationOptionsMap['aggs'], - TDocument - > + } & BucketSubAggregationResponse >; }; date_histogram: { @@ -179,10 +170,7 @@ interface AggregationResponsePart< doc_count: number; key: number; key_as_string: string; - } & BucketSubAggregationResponse< - TAggregationOptionsMap['aggs'], - TDocument - > + } & BucketSubAggregationResponse >; }; avg: MetricsAggregationResponsePart; @@ -227,10 +215,7 @@ interface AggregationResponsePart< } & AggregationResponseMap; filters: TAggregationOptionsMap extends { filters: { filters: any[] } } ? Array< - { doc_count: number } & AggregationResponseMap< - TAggregationOptionsMap['aggs'], - TDocument - > + { doc_count: number } & AggregationResponseMap > : TAggregationOptionsMap extends { filters: { @@ -264,10 +249,7 @@ interface AggregationResponsePart< { key: Record, number>; doc_count: number; - } & BucketSubAggregationResponse< - TAggregationOptionsMap['aggs'], - TDocument - > + } & BucketSubAggregationResponse >; }; diversified_sampler: { diff --git a/x-pack/legacy/plugins/apm/typings/elasticsearch/index.ts b/x-pack/plugins/apm/typings/elasticsearch/index.ts similarity index 84% rename from x-pack/legacy/plugins/apm/typings/elasticsearch/index.ts rename to x-pack/plugins/apm/typings/elasticsearch/index.ts index 064b684cf9aa6b..e1d4aaeb597e27 100644 --- a/x-pack/legacy/plugins/apm/typings/elasticsearch/index.ts +++ b/x-pack/plugins/apm/typings/elasticsearch/index.ts @@ -31,10 +31,7 @@ export type ESSearchResponse< > = Omit, 'aggregations' | 'hits'> & (TSearchRequest extends { body: { aggs: AggregationInputMap } } ? { - aggregations?: AggregationResponseMap< - TSearchRequest['body']['aggs'], - TDocument - >; + aggregations?: AggregationResponseMap; } : {}) & { hits: Omit['hits'], 'total'> & @@ -52,12 +49,6 @@ export type ESSearchResponse< export interface ESFilter { [key: string]: { - [key: string]: - | string - | string[] - | number - | boolean - | Record - | ESFilter[]; + [key: string]: string | string[] | number | boolean | Record | ESFilter[]; }; } diff --git a/x-pack/legacy/plugins/lens/common/api.ts b/x-pack/plugins/lens/common/api.ts similarity index 100% rename from x-pack/legacy/plugins/lens/common/api.ts rename to x-pack/plugins/lens/common/api.ts diff --git a/x-pack/legacy/plugins/lens/common/constants.ts b/x-pack/plugins/lens/common/constants.ts similarity index 100% rename from x-pack/legacy/plugins/lens/common/constants.ts rename to x-pack/plugins/lens/common/constants.ts diff --git a/x-pack/legacy/plugins/lens/common/index.ts b/x-pack/plugins/lens/common/index.ts similarity index 100% rename from x-pack/legacy/plugins/lens/common/index.ts rename to x-pack/plugins/lens/common/index.ts diff --git a/x-pack/legacy/plugins/lens/common/types.ts b/x-pack/plugins/lens/common/types.ts similarity index 100% rename from x-pack/legacy/plugins/lens/common/types.ts rename to x-pack/plugins/lens/common/types.ts diff --git a/x-pack/plugins/lens/kibana.json b/x-pack/plugins/lens/kibana.json new file mode 100644 index 00000000000000..867a7454f0448b --- /dev/null +++ b/x-pack/plugins/lens/kibana.json @@ -0,0 +1,8 @@ +{ + "id": "lens", + "version": "8.0.0", + "kibanaVersion": "kibana", + "server": true, + "ui": false, + "optionalPlugins": ["usageCollection", "taskManager"] +} diff --git a/x-pack/legacy/plugins/lens/server/index.ts b/x-pack/plugins/lens/server/index.ts similarity index 55% rename from x-pack/legacy/plugins/lens/server/index.ts rename to x-pack/plugins/lens/server/index.ts index ae14d1c5a0052e..3b9e94986d2477 100644 --- a/x-pack/legacy/plugins/lens/server/index.ts +++ b/x-pack/plugins/lens/server/index.ts @@ -4,8 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { LensServer } from './plugin'; +import { PluginInitializerContext } from 'kibana/server'; +import { LensServerPlugin } from './plugin'; export * from './plugin'; -export const lensServerPlugin = () => new LensServer(); +export const plugin = (initializerContext: PluginInitializerContext) => + new LensServerPlugin(initializerContext); diff --git a/x-pack/plugins/lens/server/plugin.tsx b/x-pack/plugins/lens/server/plugin.tsx new file mode 100644 index 00000000000000..e805f9f7e0a926 --- /dev/null +++ b/x-pack/plugins/lens/server/plugin.tsx @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { Plugin, CoreSetup, CoreStart, PluginInitializerContext, Logger } from 'src/core/server'; +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { Observable } from 'rxjs'; +import { TaskManagerSetupContract, TaskManagerStartContract } from '../../task_manager/server'; +import { setupRoutes } from './routes'; +import { + registerLensUsageCollector, + initializeLensTelemetry, + scheduleLensTelemetry, +} from './usage'; + +export interface PluginSetupContract { + usageCollection?: UsageCollectionSetup; + taskManager?: TaskManagerSetupContract; +} + +export interface PluginStartContract { + taskManager?: TaskManagerStartContract; +} + +export class LensServerPlugin implements Plugin<{}, {}, {}, {}> { + private readonly kibanaIndexConfig: Observable<{ kibana: { index: string } }>; + private readonly telemetryLogger: Logger; + + constructor(initializerContext: PluginInitializerContext) { + this.kibanaIndexConfig = initializerContext.config.legacy.globalConfig$; + this.telemetryLogger = initializerContext.logger.get('telemetry'); + } + setup(core: CoreSetup, plugins: PluginSetupContract) { + setupRoutes(core); + if (plugins.usageCollection && plugins.taskManager) { + registerLensUsageCollector( + plugins.usageCollection, + core + .getStartServices() + .then(([_, { taskManager }]) => taskManager as TaskManagerStartContract) + ); + initializeLensTelemetry( + this.telemetryLogger, + core, + this.kibanaIndexConfig, + plugins.taskManager + ); + } + return {}; + } + + start(core: CoreStart, plugins: PluginStartContract) { + if (plugins.taskManager) { + scheduleLensTelemetry(this.telemetryLogger, plugins.taskManager); + } + return {}; + } + + stop() {} +} diff --git a/x-pack/legacy/plugins/lens/server/routes/existing_fields.test.ts b/x-pack/plugins/lens/server/routes/existing_fields.test.ts similarity index 100% rename from x-pack/legacy/plugins/lens/server/routes/existing_fields.test.ts rename to x-pack/plugins/lens/server/routes/existing_fields.test.ts diff --git a/x-pack/legacy/plugins/lens/server/routes/existing_fields.ts b/x-pack/plugins/lens/server/routes/existing_fields.ts similarity index 98% rename from x-pack/legacy/plugins/lens/server/routes/existing_fields.ts rename to x-pack/plugins/lens/server/routes/existing_fields.ts index 30ded3572cae70..a059e325859094 100644 --- a/x-pack/legacy/plugins/lens/server/routes/existing_fields.ts +++ b/x-pack/plugins/lens/server/routes/existing_fields.ts @@ -6,11 +6,10 @@ import Boom from 'boom'; import { schema } from '@kbn/config-schema'; -import _ from 'lodash'; import { IScopedClusterClient, SavedObject, RequestHandlerContext } from 'src/core/server'; import { CoreSetup } from 'src/core/server'; import { BASE_API_URL } from '../../common'; -import { IndexPatternsFetcher } from '../../../../../../src/plugins/data/server'; +import { IndexPatternsFetcher } from '../../../../../src/plugins/data/server'; /** * The number of docs to sample to determine field empty status. diff --git a/x-pack/legacy/plugins/lens/server/routes/field_stats.ts b/x-pack/plugins/lens/server/routes/field_stats.ts similarity index 100% rename from x-pack/legacy/plugins/lens/server/routes/field_stats.ts rename to x-pack/plugins/lens/server/routes/field_stats.ts diff --git a/x-pack/legacy/plugins/lens/server/routes/index.ts b/x-pack/plugins/lens/server/routes/index.ts similarity index 59% rename from x-pack/legacy/plugins/lens/server/routes/index.ts rename to x-pack/plugins/lens/server/routes/index.ts index 79690b40395d6b..8bc04a56e16d5e 100644 --- a/x-pack/legacy/plugins/lens/server/routes/index.ts +++ b/x-pack/plugins/lens/server/routes/index.ts @@ -4,20 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaConfig } from 'src/legacy/server/kbn_server'; -import { CoreSetup, SavedObjectsLegacyService } from 'src/core/server'; +import { CoreSetup } from 'src/core/server'; import { existingFieldsRoute } from './existing_fields'; import { initFieldsRoute } from './field_stats'; import { initLensUsageRoute } from './telemetry'; -export function setupRoutes( - setup: CoreSetup, - plugins: { - savedObjects: SavedObjectsLegacyService; - config: KibanaConfig; - } -) { +export function setupRoutes(setup: CoreSetup) { existingFieldsRoute(setup); initFieldsRoute(setup); - initLensUsageRoute(setup, plugins); + initLensUsageRoute(setup); } diff --git a/x-pack/legacy/plugins/lens/server/routes/telemetry.ts b/x-pack/plugins/lens/server/routes/telemetry.ts similarity index 75% rename from x-pack/legacy/plugins/lens/server/routes/telemetry.ts rename to x-pack/plugins/lens/server/routes/telemetry.ts index 895b77cfa89788..7925416ff5df29 100644 --- a/x-pack/legacy/plugins/lens/server/routes/telemetry.ts +++ b/x-pack/plugins/lens/server/routes/telemetry.ts @@ -5,29 +5,13 @@ */ import Boom from 'boom'; -import { KibanaConfig } from 'src/legacy/server/kbn_server'; -import { CoreSetup, SavedObjectsLegacyService } from 'src/core/server'; +import { CoreSetup } from 'src/core/server'; import { schema } from '@kbn/config-schema'; import { BASE_API_URL } from '../../common'; -export function getSavedObjectsClient( - savedObjects: SavedObjectsLegacyService, - callAsInternalUser: unknown -) { - const { SavedObjectsClient, getSavedObjectsRepository } = savedObjects; - const internalRepository = getSavedObjectsRepository(callAsInternalUser); - return new SavedObjectsClient(internalRepository); -} - // This route is responsible for taking a batch of click events from the browser // and writing them to saved objects -export async function initLensUsageRoute( - setup: CoreSetup, - plugins: { - savedObjects: SavedObjectsLegacyService; - config: KibanaConfig; - } -) { +export async function initLensUsageRoute(setup: CoreSetup) { const router = setup.http.createRouter(); router.post( { @@ -43,12 +27,10 @@ export async function initLensUsageRoute( }, }, async (context, req, res) => { - const { dataClient } = context.core.elasticsearch; - const { events, suggestionEvents } = req.body; try { - const client = getSavedObjectsClient(plugins.savedObjects, dataClient.callAsCurrentUser); + const client = context.core.savedObjects.client; const allEvents: Array<{ type: 'lens-ui-telemetry'; diff --git a/x-pack/legacy/plugins/lens/server/usage/collectors.ts b/x-pack/plugins/lens/server/usage/collectors.ts similarity index 97% rename from x-pack/legacy/plugins/lens/server/usage/collectors.ts rename to x-pack/plugins/lens/server/usage/collectors.ts index 666b3718d5125d..52de0df6fed132 100644 --- a/x-pack/legacy/plugins/lens/server/usage/collectors.ts +++ b/x-pack/plugins/lens/server/usage/collectors.ts @@ -7,7 +7,7 @@ import moment from 'moment'; import { get } from 'lodash'; import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; -import { TaskManagerStartContract } from '../../../../../plugins/task_manager/server'; +import { TaskManagerStartContract } from '../../../task_manager/server'; import { LensUsage, LensTelemetryState } from './types'; diff --git a/x-pack/legacy/plugins/lens/server/usage/index.ts b/x-pack/plugins/lens/server/usage/index.ts similarity index 100% rename from x-pack/legacy/plugins/lens/server/usage/index.ts rename to x-pack/plugins/lens/server/usage/index.ts diff --git a/x-pack/legacy/plugins/lens/server/usage/task.ts b/x-pack/plugins/lens/server/usage/task.ts similarity index 62% rename from x-pack/legacy/plugins/lens/server/usage/task.ts rename to x-pack/plugins/lens/server/usage/task.ts index 26b44832feaa68..e2462be1497450 100644 --- a/x-pack/legacy/plugins/lens/server/usage/task.ts +++ b/x-pack/plugins/lens/server/usage/task.ts @@ -4,24 +4,17 @@ * you may not use this file except in compliance with the Elastic License. */ +import { APICaller, CoreSetup, Logger } from 'kibana/server'; +import { Observable } from 'rxjs'; import moment from 'moment'; -import KbnServer, { Server } from 'src/legacy/server/kbn_server'; -import { CallClusterOptions } from 'src/legacy/core_plugins/elasticsearch'; -import { - SearchParams, - DeleteDocumentByQueryParams, - SearchResponse, - DeleteDocumentByQueryResponse, -} from 'elasticsearch'; -import { ESSearchResponse } from '../../../apm/typings/elasticsearch'; -import { XPackMainPlugin } from '../../../xpack_main/server/xpack_main'; import { RunContext, TaskManagerSetupContract, TaskManagerStartContract, -} from '../../../../../plugins/task_manager/server'; +} from '../../../task_manager/server'; import { getVisualizationCounts } from './visualization_counts'; +import { ESSearchResponse } from '../../../apm/typings/elasticsearch'; // This task is responsible for running daily and aggregating all the Lens click event objects // into daily rolled-up documents, which will be used in reporting click stats @@ -30,74 +23,53 @@ const TELEMETRY_TASK_TYPE = 'lens_telemetry'; export const TASK_ID = `Lens-${TELEMETRY_TASK_TYPE}`; -type ClusterSearchType = ( - endpoint: 'search', - params: SearchParams & { - rest_total_hits_as_int: boolean; - }, - options?: CallClusterOptions -) => Promise>; -type ClusterDeleteType = ( - endpoint: 'deleteByQuery', - params: DeleteDocumentByQueryParams, - options?: CallClusterOptions -) => Promise; - -export function initializeLensTelemetry(server: Server, taskManager?: TaskManagerSetupContract) { - if (!taskManager) { - server.log(['debug', 'telemetry'], `Task manager is not available`); - } else { - registerLensTelemetryTask(server, taskManager); - } +export function initializeLensTelemetry( + logger: Logger, + core: CoreSetup, + config: Observable<{ kibana: { index: string } }>, + taskManager: TaskManagerSetupContract +) { + registerLensTelemetryTask(logger, core, config, taskManager); } -export function scheduleLensTelemetry(server: Server, taskManager?: TaskManagerStartContract) { +export function scheduleLensTelemetry(logger: Logger, taskManager?: TaskManagerStartContract) { if (taskManager) { - scheduleTasks(server, taskManager); + scheduleTasks(logger, taskManager); } } -function registerLensTelemetryTask(server: Server, taskManager: TaskManagerSetupContract) { +function registerLensTelemetryTask( + logger: Logger, + core: CoreSetup, + config: Observable<{ kibana: { index: string } }>, + taskManager: TaskManagerSetupContract +) { taskManager.registerTaskDefinitions({ [TELEMETRY_TASK_TYPE]: { title: 'Lens telemetry fetch task', type: TELEMETRY_TASK_TYPE, timeout: '1m', - createTaskRunner: telemetryTaskRunner(server), + createTaskRunner: telemetryTaskRunner(logger, core, config), }, }); } -function scheduleTasks(server: Server, taskManager: TaskManagerStartContract) { - const { kbnServer } = (server.plugins.xpack_main as XPackMainPlugin & { - status: { plugin: { kbnServer: KbnServer } }; - }).status.plugin; - - kbnServer.afterPluginsInit(() => { - // The code block below can't await directly within "afterPluginsInit" - // callback due to circular dependency The server isn't "ready" until - // this code block finishes. Migrations wait for server to be ready before - // executing. Saved objects repository waits for migrations to finish before - // finishing the request. To avoid this, we'll await within a separate - // function block. - (async () => { - try { - await taskManager.ensureScheduled({ - id: TASK_ID, - taskType: TELEMETRY_TASK_TYPE, - state: { byDate: {}, suggestionsByDate: {}, saved: {}, runs: 0 }, - params: {}, - }); - } catch (e) { - server.log(['debug', 'telemetry'], `Error scheduling task, received ${e.message}`); - } - })(); - }); +async function scheduleTasks(logger: Logger, taskManager: TaskManagerStartContract) { + try { + await taskManager.ensureScheduled({ + id: TASK_ID, + taskType: TELEMETRY_TASK_TYPE, + state: { byDate: {}, suggestionsByDate: {}, saved: {}, runs: 0 }, + params: {}, + }); + } catch (e) { + logger.debug(`Error scheduling task, received ${e.message}`); + } } export async function getDailyEvents( kibanaIndex: string, - callCluster: ClusterSearchType & ClusterDeleteType + callCluster: APICaller ): Promise<{ byDate: Record>; suggestionsByDate: Record>; @@ -205,18 +177,22 @@ export async function getDailyEvents( }; } -export function telemetryTaskRunner(server: Server) { +export function telemetryTaskRunner( + logger: Logger, + core: CoreSetup, + config: Observable<{ kibana: { index: string } }> +) { return ({ taskInstance }: RunContext) => { const { state } = taskInstance; - const callCluster = server.plugins.elasticsearch.getCluster('admin').callWithInternalUser; + const callCluster = core.elasticsearch.adminClient.callAsInternalUser; return { async run() { - const kibanaIndex = server.config().get('kibana.index'); + const kibanaIndex = (await config.toPromise()).kibana.index; return Promise.all([ getDailyEvents(kibanaIndex, callCluster), - getVisualizationCounts(callCluster, server.config()), + getVisualizationCounts(callCluster, kibanaIndex), ]) .then(([lensTelemetry, lensVisualizations]) => { return { @@ -229,9 +205,7 @@ export function telemetryTaskRunner(server: Server) { runAt: getNextMidnight(), }; }) - .catch(errMsg => - server.log(['warning'], `Error executing lens telemetry task: ${errMsg}`) - ); + .catch(errMsg => logger.warn(`Error executing lens telemetry task: ${errMsg}`)); }, }; }; diff --git a/x-pack/legacy/plugins/lens/server/usage/types.ts b/x-pack/plugins/lens/server/usage/types.ts similarity index 100% rename from x-pack/legacy/plugins/lens/server/usage/types.ts rename to x-pack/plugins/lens/server/usage/types.ts diff --git a/x-pack/legacy/plugins/lens/server/usage/visualization_counts.ts b/x-pack/plugins/lens/server/usage/visualization_counts.ts similarity index 85% rename from x-pack/legacy/plugins/lens/server/usage/visualization_counts.ts rename to x-pack/plugins/lens/server/usage/visualization_counts.ts index 7c1dc5fca6d856..00b84fe100224e 100644 --- a/x-pack/legacy/plugins/lens/server/usage/visualization_counts.ts +++ b/x-pack/plugins/lens/server/usage/visualization_counts.ts @@ -4,22 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaConfig } from 'src/legacy/server/kbn_server'; -import { CallClusterOptions } from 'src/legacy/core_plugins/elasticsearch'; -import { SearchParams, SearchResponse } from 'elasticsearch'; +import { APICaller } from 'kibana/server'; import { LensVisualizationUsage } from './types'; -type ClusterSearchType = ( - endpoint: 'search', - params: SearchParams & { - rest_total_hits_as_int: boolean; - }, - options?: CallClusterOptions -) => Promise>; - export async function getVisualizationCounts( - callCluster: ClusterSearchType, - config: KibanaConfig + callCluster: APICaller, + kibanaIndex: string ): Promise { const scriptedMetric = { scripted_metric: { @@ -53,7 +43,7 @@ export async function getVisualizationCounts( }; const results = await callCluster('search', { - index: config.get('kibana.index'), + index: kibanaIndex, rest_total_hits_as_int: true, body: { query: { diff --git a/x-pack/test/api_integration/apis/lens/telemetry.ts b/x-pack/test/api_integration/apis/lens/telemetry.ts index 5e6830c8f4689b..653df453c25602 100644 --- a/x-pack/test/api_integration/apis/lens/telemetry.ts +++ b/x-pack/test/api_integration/apis/lens/telemetry.ts @@ -6,14 +6,13 @@ import moment from 'moment'; import expect from '@kbn/expect'; -import { KibanaConfig } from 'src/legacy/server/kbn_server'; import { Client, SearchParams } from 'elasticsearch'; +import { APICaller } from 'kibana/server'; -import { CallCluster } from 'src/legacy/core_plugins/elasticsearch'; import { FtrProviderContext } from '../../ftr_provider_context'; -import { getDailyEvents } from '../../../../legacy/plugins/lens/server/usage/task'; -import { getVisualizationCounts } from '../../../../legacy/plugins/lens/server/usage/visualization_counts'; +import { getDailyEvents } from '../../../../plugins/lens/server/usage/task'; +import { getVisualizationCounts } from '../../../../plugins/lens/server/usage/visualization_counts'; const COMMON_HEADERS = { 'kbn-xsrf': 'some-xsrf-token', @@ -23,9 +22,9 @@ const COMMON_HEADERS = { export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertest'); const es: Client = getService('legacyEs'); - const callCluster: CallCluster = (((path: 'search', searchParams: SearchParams) => { + const callCluster: APICaller = (((path: 'search', searchParams: SearchParams) => { return es[path].call(es, searchParams); - }) as unknown) as CallCluster; + }) as unknown) as APICaller; async function assertExpectedSavedObjects(num: number) { // Make sure that new/deleted docs are available to search @@ -189,13 +188,7 @@ export default ({ getService }: FtrProviderContext) => { await esArchiver.loadIfNeeded('lens/basic'); - const results = await getVisualizationCounts(callCluster, { - // Fake KibanaConfig service - get() { - return '.kibana'; - }, - has: () => false, - } as KibanaConfig); + const results = await getVisualizationCounts(callCluster, '.kibana'); expect(results).to.have.keys([ 'saved_overall', From 900af8262be9bec5f778fd326745f5e128a0ca61 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Wed, 5 Feb 2020 12:40:01 -0600 Subject: [PATCH 23/33] [APM] Remove service map fullscreen control (#56351) --- .../components/app/ServiceMap/Controls.tsx | 3 - .../app/ServiceMap/FullscreenPanel.tsx | 57 ------------------- .../translations/translations/ja-JP.json | 3 +- .../translations/translations/zh-CN.json | 3 +- 4 files changed, 2 insertions(+), 64 deletions(-) delete mode 100644 x-pack/legacy/plugins/apm/public/components/app/ServiceMap/FullscreenPanel.tsx diff --git a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/Controls.tsx b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/Controls.tsx index 07ea97f442b7fa..38e86e4a0d1c93 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/Controls.tsx +++ b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/Controls.tsx @@ -11,7 +11,6 @@ import React, { useContext, useEffect, useState } from 'react'; import styled from 'styled-components'; import { CytoscapeContext } from './Cytoscape'; import { animationOptions, nodeHeight } from './cytoscapeOptions'; -import { FullscreenPanel } from './FullscreenPanel'; const ControlsContainer = styled('div')` left: ${theme.gutterTypes.gutterMedium}; @@ -87,7 +86,6 @@ export function Controls() { const minZoom = cy.minZoom(); const isMinZoom = zoom === minZoom; const increment = (maxZoom - minZoom) / steps; - const mapDomElement = cy.container(); const zoomInLabel = i18n.translate('xpack.apm.serviceMap.zoomIn', { defaultMessage: 'Zoom in' }); @@ -127,7 +125,6 @@ export function Controls() { title={centerLabel} /> - ); } diff --git a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/FullscreenPanel.tsx b/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/FullscreenPanel.tsx deleted file mode 100644 index 851bf0ebf56fd7..00000000000000 --- a/x-pack/legacy/plugins/apm/public/components/app/ServiceMap/FullscreenPanel.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { EuiButtonIcon, EuiPanel } from '@elastic/eui'; -import styled from 'styled-components'; -import theme from '@elastic/eui/dist/eui_theme_light.json'; -import { i18n } from '@kbn/i18n'; - -const Button = styled(EuiButtonIcon)` - display: block; - margin: ${theme.paddingSizes.xs}; -`; - -interface FullscreenPanelProps { - element: Element | null; -} - -export function FullscreenPanel({ element }: FullscreenPanelProps) { - const canDoFullscreen = - element && element.ownerDocument && element.ownerDocument.fullscreenEnabled; - - if (!canDoFullscreen) { - return null; - } - - function doFullscreen() { - if (element && element.ownerDocument && canDoFullscreen) { - const isFullscreen = element.ownerDocument.fullscreenElement !== null; - - if (isFullscreen) { - element.ownerDocument.exitFullscreen(); - } else { - element.requestFullscreen(); - } - } - } - - const label = i18n.translate('xpack.apm.serviceMap.fullscreen', { - defaultMessage: 'Full screen' - }); - - return ( - -

=V3xYb^s;?`ZC$HXP1t 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�i=ah>QP$nA9e+0V{+_5@}8N|@q&yW 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 >o}?VU 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