diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 1400d1fdee4cf..b501e8fac5745 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -47,6 +47,9 @@ disabled: - x-pack/plugins/apm/ftr_e2e/ftr_config_open.ts - x-pack/plugins/apm/ftr_e2e/ftr_config_run.ts - x-pack/plugins/apm/ftr_e2e/ftr_config.ts + - x-pack/plugins/profiling/e2e/ftr_config_open.ts + - x-pack/plugins/profiling/e2e/ftr_config_runner.ts + - x-pack/plugins/profiling/e2e/ftr_config.ts # Elastic Synthetics configs - x-pack/plugins/synthetics/e2e/config.ts diff --git a/.buildkite/pipelines/on_merge_unsupported_ftrs.yml b/.buildkite/pipelines/on_merge_unsupported_ftrs.yml index 3244823c6c2e3..935d0ed628ff0 100644 --- a/.buildkite/pipelines/on_merge_unsupported_ftrs.yml +++ b/.buildkite/pipelines/on_merge_unsupported_ftrs.yml @@ -35,6 +35,19 @@ steps: - exit_status: '*' limit: 1 + - command: .buildkite/scripts/steps/functional/profiling_cypress.sh + label: 'Profling Cypress Tests' + agents: + queue: n2-4-spot + depends_on: build + timeout_in_minutes: 120 + parallelism: 4 + retry: + automatic: + - exit_status: '-1' + limit: 3 + - exit_status: '*' + limit: 1 - command: .buildkite/scripts/steps/functional/security_solution.sh label: 'Security Solution Tests' diff --git a/.buildkite/pipelines/pull_request/profiling_cypress.yml b/.buildkite/pipelines/pull_request/profiling_cypress.yml new file mode 100644 index 0000000000000..ca345f2c78dd3 --- /dev/null +++ b/.buildkite/pipelines/pull_request/profiling_cypress.yml @@ -0,0 +1,14 @@ +steps: + - command: .buildkite/scripts/steps/functional/profiling_cypress.sh + label: 'Profiling Cypress Tests' + agents: + queue: n2-4-spot + depends_on: build + timeout_in_minutes: 120 + parallelism: 2 + retry: + automatic: + - exit_status: '-1' + limit: 3 + - exit_status: '*' + limit: 1 diff --git a/.buildkite/scripts/pipelines/pull_request/pipeline.ts b/.buildkite/scripts/pipelines/pull_request/pipeline.ts index 5fb29fc87c228..ac1d5c7ecc077 100644 --- a/.buildkite/scripts/pipelines/pull_request/pipeline.ts +++ b/.buildkite/scripts/pipelines/pull_request/pipeline.ts @@ -115,6 +115,13 @@ const uploadPipeline = (pipelineContent: string | object) => { pipeline.push(getPipeline('.buildkite/pipelines/pull_request/apm_cypress.yml')); } + if ( + (await doAnyChangesMatch([/^x-pack\/plugins\/profiling/])) || + GITHUB_PR_LABELS.includes('ci:all-cypress-suites') + ) { + pipeline.push(getPipeline('.buildkite/pipelines/pull_request/profiling_cypress.yml')); + } + if ( (await doAnyChangesMatch([/^x-pack\/plugins\/fleet/, /^x-pack\/test\/fleet_cypress/])) || GITHUB_PR_LABELS.includes('ci:all-cypress-suites') diff --git a/.buildkite/scripts/steps/functional/profiling_cypress.sh b/.buildkite/scripts/steps/functional/profiling_cypress.sh new file mode 100644 index 0000000000000..38799acc90778 --- /dev/null +++ b/.buildkite/scripts/steps/functional/profiling_cypress.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/common/util.sh + +.buildkite/scripts/bootstrap.sh +.buildkite/scripts/download_build_artifacts.sh + +export JOB=kibana-profiling-cypress + +echo "--- Profiling Cypress Tests" + +cd "$XPACK_DIR" + +node plugins/profiling/scripts/test/e2e.js \ + --kibana-install-dir "$KIBANA_BUILD_LOCATION" \ \ No newline at end of file diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index ba5933dff5be8..a7d2d2d9f8808 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index ddec178a79f34..791f498ed8549 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index 37b93f211523e..5b24f1e078595 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 626c5c6d1bb2b..8da40a6c45b81 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 82c3d641ea6d6..7592382b3458a 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -932,7 +932,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { terms: { label: string; count: number; }[]; }, ", + ", { terms: ", + "MobileTermsByFieldResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/mobile-services/{serviceName}/location/stats\": ", { @@ -1260,7 +1262,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { mobileFilters: MobileFilters; }, ", + ", { mobileFilters: ", + "MobileFiltersResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/agent_instances\": ", { @@ -1320,7 +1324,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { items: { serviceNode?: string | undefined; environments: string[]; agentVersion: string; lastReport: string; }[]; }, ", + ", { items: ", + "AgentExplorerAgentInstancesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/get_agents_per_service\": ", { @@ -1382,9 +1388,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { items: { serviceName: string; environments: string[]; agentName: ", - "AgentName", - "; agentVersion: string[]; agentDocsPageUrl?: string | undefined; instances: number; }[]; }, ", + ", ", + "AgentExplorerAgentsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/settings/labs\": ", { @@ -1810,7 +1816,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { tracesPerMinute: number; numberOfServices: number; totalSize: number; diskSpaceUsedPct: number; estimatedIncrementalSize: number; dailyDataGeneration: number; }, ", + ", ", + "StorageExplorerSummaryStatisticsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/storage_explorer/privileges\": ", { @@ -1908,7 +1916,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { storageTimeSeries: { serviceName: string; timeseries: { x: number; y: number; }[]; }[]; }, ", + ", { storageTimeSeries: ", + "SizeTimeseriesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/storage_details\": ", { @@ -1992,15 +2002,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { processorEventStats: { processorEvent: ", - { - "pluginId": "observability", - "scope": "common", - "docId": "kibObservabilityPluginApi", - "section": "def-common.ProcessorEvent", - "text": "ProcessorEvent" - }, - "; docs: number; size: number; }[]; indicesStats: { indexName: string; numberOfDocs: number; primary?: string | number | undefined; replica?: string | number | undefined; size?: number | undefined; dataStream?: string | undefined; lifecyclePhase?: string | undefined; }[]; }, ", + ", ", + "StorageDetailsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/storage_explorer\": ", { @@ -2080,9 +2084,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { serviceStatistics: { serviceName: string; environments: string[]; size?: number | undefined; agentName: ", - "AgentName", - "; sampling: number; }[]; }, ", + ", { serviceStatistics: ", + "StorageExplorerServiceStatisticsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"POST /api/apm/agent_keys\": ", { @@ -2118,9 +2122,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { agentKey: ", - "SecurityCreateApiKeyResponse", - "; }, ", + ", ", + "CreateAgentKeyResponse", + ", ", "APMRouteCreateOptions", ">; \"POST /internal/apm/api_key/invalidate\": ", { @@ -2144,7 +2148,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { invalidatedAgentKeys: string[]; }, ", + ", ", + "InvalidateAgentKeyResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/agent_keys/privileges\": ", { @@ -2162,7 +2168,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { areApiKeysEnabled: boolean; isAdmin: boolean; canManage: boolean; }, ", + ", ", + "AgentKeysPrivilegesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/agent_keys\": ", { @@ -2180,15 +2188,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { agentKeys: ", - { - "pluginId": "security", - "scope": "common", - "docId": "kibSecurityPluginApi", - "section": "def-common.ApiKey", - "text": "ApiKey" - }, - "[]; }, ", + ", ", + "AgentKeysResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/event_metadata/{processorEvent}/{id}\": ", { @@ -2374,11 +2376,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { failedTransactionsCorrelations: ", - "FailedTransactionsCorrelation", - "[]; ccsWarning: boolean; fallbackResult?: ", - "FailedTransactionsCorrelation", - " | undefined; }, ", + ", ", + "PValuesResponse", + ", ", "APMRouteCreateOptions", ">; \"POST /internal/apm/correlations/significant_correlations/transactions\": ", { @@ -2456,11 +2456,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { latencyCorrelations: ", - "LatencyCorrelation", - "[]; ccsWarning: boolean; totalDocCount: number; fallbackResult?: ", - "LatencyCorrelation", - " | undefined; }, ", + ", ", + "SignificantCorrelationsResponse", + ", ", "APMRouteCreateOptions", ">; \"POST /internal/apm/correlations/field_value_pairs/transactions\": ", { @@ -2526,9 +2524,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { fieldValuePairs: ", - "FieldValuePair", - "[]; errors: any[]; }, ", + ", ", + "FieldValuePairsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/correlations/field_value_stats/transactions\": ", { @@ -2662,7 +2660,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { fieldCandidates: string[]; }, ", + ", ", + "DurationFieldCandidatesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/operations/spans\": ", { @@ -2788,11 +2788,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { allSpansDistribution: ", - "OverallLatencyDistributionResponse", - "; failedSpansDistribution: ", - "OverallLatencyDistributionResponse", - "; }, ", + ", ", + "DependencyLatencyDistributionResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/operations\": ", { @@ -2984,7 +2982,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentTimeseries: { x: number; y: number | null; }[]; comparisonTimeseries: { x: number; y: number | null; }[] | null; }, ", + ", ", + "ThroughputChartsForDependencyResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/charts/latency\": ", { @@ -3048,7 +3048,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentTimeseries: { x: number; y: number; }[]; comparisonTimeseries: { x: number; y: number; }[] | null; }, ", + ", ", + "LatencyChartsDependencyResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/metadata\": ", { @@ -3080,7 +3082,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { metadata: { spanType: string | undefined; spanSubtype: string | undefined; }; }, ", + ", { metadata: ", + "MetadataForDependencyResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/upstream_services\": ", { @@ -3150,25 +3154,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { services: { currentStats: { latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }; previousStats: ({ latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }) | null; location: ", - "Node", - "; }[]; }, ", + ", ", + "UpstreamServicesForDependencyResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/dependencies/top_dependencies\": ", { @@ -3232,25 +3220,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { dependencies: { currentStats: { latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }; previousStats: ({ latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }) | null; location: ", - "Node", - "; }[]; }, ", + ", ", + "TopDependenciesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/fleet/java_agent_versions\": ", { @@ -3312,15 +3284,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { has_cloud_agent_policy: boolean; has_cloud_apm_package_policy: boolean; cloud_apm_migration_enabled: boolean; has_required_role: boolean | undefined; cloud_apm_package_policy: ", - { - "pluginId": "fleet", - "scope": "common", - "docId": "kibFleetPluginApi", - "section": "def-common.PackagePolicy", - "text": "PackagePolicy" - }, - " | undefined; has_apm_integrations: boolean; latest_apm_package_version: string; }, ", + ", ", + "RunMigrationCheckResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/fleet/apm_server_schema/unsupported\": ", { @@ -3338,7 +3304,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { unsupported: { key: string; value: any; }[]; }, ", + ", { unsupported: ", + "UnsupportedApmServerSchema", + "; }, ", "APMRouteCreateOptions", ">; \"POST /api/apm/fleet/apm_server_schema\": ", { @@ -3384,7 +3352,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { cloudStandaloneSetup: { apmServerUrl: string | undefined; secretToken: string | undefined; } | undefined; fleetAgents: never[]; isFleetEnabled: false; } | { cloudStandaloneSetup: { apmServerUrl: string | undefined; secretToken: string | undefined; } | undefined; isFleetEnabled: true; fleetAgents: { id: string; name: string; apmServerUrl: any; secretToken: any; }[]; }, ", + ", ", + "FleetAgentResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/fleet/has_apm_policies\": ", { @@ -3508,9 +3478,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { artifacts: ", - "ArtifactSourceMap", - "[]; total: number; } | undefined, ", + ", ", + "ListSourceMapArtifactsResponse", + " | undefined, ", "APMRouteCreateOptions", ">; \"DELETE /internal/apm/settings/custom_links/{id}\": ", { @@ -3754,9 +3724,7 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", ", - "ApmIndicesConfig", - ", ", + ", Readonly<{ error: string; onboarding: string; span: string; transaction: string; metric: string; }>, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/settings/apm-index-settings\": ", { @@ -3774,7 +3742,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { apmIndexSettings: { configurationName: \"error\" | \"metric\" | \"span\" | \"transaction\" | \"onboarding\"; defaultValue: string; savedValue: string | undefined; }[]; }, ", + ", { apmIndexSettings: ", + "ApmIndexSettingsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"POST /internal/apm/settings/anomaly-detection/update_to_v3\": ", { @@ -3920,7 +3890,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { environments: { name: string; alreadyConfigured: boolean; }[]; }, ", + ", { environments: ", + "EnvironmentsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"POST /api/apm/settings/agent-configuration/search\": ", { @@ -4168,7 +4140,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { latencyChartPreview: { name: string; data: { x: number; y: number | null; }[]; }[]; }, ", + ", { latencyChartPreview: ", + "TransactionDurationChartPreviewResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/rule_types/error_count/chart_preview\": ", { @@ -4312,7 +4286,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { errorRateChartPreview: { x: number; y: number; }[]; }, ", + ", { errorRateChartPreview: ", + "TransactionErrorRateChartPreviewResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\": ", { @@ -4380,13 +4356,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { transactionColdstartRate: ", - "Coordinate", - "[]; average: number | null; }; previousPeriod: { transactionColdstartRate: { x: number; y: ", - "Maybe", - "; }[]; average: number | null; } | { transactionColdstartRate: { x: number; y: ", - "Maybe", - "; }[]; average: null; }; }, ", + ", ", + "ColdstartRateResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\": ", { @@ -4452,13 +4424,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { transactionColdstartRate: ", - "Coordinate", - "[]; average: number | null; }; previousPeriod: { transactionColdstartRate: { x: number; y: ", - "Maybe", - "; }[]; average: number | null; } | { transactionColdstartRate: { x: number; y: ", - "Maybe", - "; }[]; average: null; }; }, ", + ", ", + "ColdstartRateResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\": ", { @@ -4528,13 +4496,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { timeseries: ", - "Coordinate", - "[]; average: number | null; }; previousPeriod: { timeseries: { x: number; y: ", - "Maybe", - "; }[]; average: number | null; } | { timeseries: { x: number; y: ", - "Maybe", - "; }[]; average: null; }; }, ", + ", ", + "FailedTransactionRateResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\": ", { @@ -4598,7 +4562,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { timeseries: { title: string; color: string; type: string; data: { x: number; y: number | null; }[]; hideLegend: boolean; legendValue: string; }[]; }, ", + ", ", + "TransactionBreakdownResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\": ", { @@ -4670,7 +4636,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { traceSamples: { transactionId: string; traceId: string; }[]; }, ", + ", ", + "TransactionTraceSamplesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\": ", { @@ -4754,11 +4722,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { overallAvgDuration: number | null; latencyTimeseries: { x: number; y: number | null; }[]; }; previousPeriod: { latencyTimeseries: { x: number; y: ", - "Maybe", - "; }[]; overallAvgDuration: number | null; } | { latencyTimeseries: { x: number; y: ", - "Maybe", - "; }[]; overallAvgDuration: null; }; }, ", + ", ", + "TransactionLatencyResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\": ", { @@ -4840,23 +4806,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "Dictionary", - "<{ transactionName: string; latency: ", - "Coordinate", - "[]; throughput: ", - "Coordinate", - "[]; errorRate: ", - "Coordinate", - "[]; impact: number; }>; previousPeriod: ", - "Dictionary", - "<{ errorRate: { x: number; y: ", - "Maybe", - "; }[]; throughput: { x: number; y: ", - "Maybe", - "; }[]; latency: { x: number; y: ", - "Maybe", - "; }[]; transactionName: string; impact: number; }>; }, ", + ", ", + "ServiceTransactionGroupDetailedStatisticsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\": ", { @@ -4930,7 +4882,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { transactionGroups: { transactionType: string; name: string; latency: number | null; throughput: number; errorRate: number; impact: number; }[]; transactionOverflowCount: number; maxTransactionGroupsExceeded: boolean; }, ", + ", ", + "ServiceTransactionGroupsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/traces/{traceId}/spans/{spanId}\": ", { @@ -5126,7 +5080,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { traceSamples: { traceId: string; transactionId: string; }[]; }, ", + ", { traceSamples: ", + "TraceSamplesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/transactions/{transactionId}\": ", { @@ -5234,11 +5190,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { items: { key: ", - "BucketKey", - "; serviceName: string; transactionName: string; averageResponseTime: number | null; transactionsPerMinute: number; transactionType: string; impact: number; agentName: ", - "AgentName", - "; }[]; }, ", + ", ", + "TopTracesPrimaryStatsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/traces/{traceId}\": ", { @@ -5366,9 +5320,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { items: { serviceName: string; environments: string[]; agentName: ", - "AgentName", - "; }[]; }, ", + ", { items: ", + "LookupServicesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"DELETE /internal/apm/service-group\": ", { @@ -5652,7 +5606,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { breakdown: { title: string; data: { x: number; y: number; }[]; }[]; }, ", + ", { breakdown: ", + "ServiceDependenciesBreakdownResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/dependencies\": ", { @@ -5712,25 +5668,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { serviceDependencies: { currentStats: { latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }; previousStats: ({ latency: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; throughput: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; errorRate: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; totalTime: { value: number | null; timeseries: ", - "Coordinate", - "[]; }; } & { impact: number; }) | null; location: ", - "Node", - "; }[]; }, ", + ", { serviceDependencies: ", + "ServiceDependenciesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\": ", { @@ -5812,31 +5752,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "Dictionary", - "<{ serviceNodeName: string; errorRate?: ", - "Coordinate", - "[] | undefined; latency?: ", - "Coordinate", - "[] | undefined; throughput?: ", - "Coordinate", - "[] | undefined; cpuUsage?: ", - "Coordinate", - "[] | undefined; memoryUsage?: ", - "Coordinate", - "[] | undefined; }>; previousPeriod: ", - "Dictionary", - "<{ cpuUsage: { x: number; y: ", - "Maybe", - "; }[]; errorRate: { x: number; y: ", - "Maybe", - "; }[]; latency: { x: number; y: ", - "Maybe", - "; }[]; memoryUsage: { x: number; y: ", - "Maybe", - "; }[]; throughput: { x: number; y: ", - "Maybe", - "; }[]; serviceNodeName: string; }>; }, ", + ", ", + "ServiceInstancesDetailedStatisticsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\": ", { @@ -5914,7 +5832,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { serviceNodeName: string; errorRate?: number | undefined; latency?: number | undefined; throughput?: number | undefined; cpuUsage?: number | null | undefined; memoryUsage?: number | null | undefined; }[]; previousPeriod: { serviceNodeName: string; errorRate?: number | undefined; latency?: number | undefined; throughput?: number | undefined; cpuUsage?: number | null | undefined; memoryUsage?: number | null | undefined; }[]; }, ", + ", { currentPeriod: ", + "ServiceInstanceMainStatisticsResponse", + "; previousPeriod: ", + "ServiceInstanceMainStatisticsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/throughput\": ", { @@ -5984,9 +5906,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { x: number; y: number | null; }[]; previousPeriod: { x: number; y: ", - "Maybe", - "; }[]; }, ", + ", { currentPeriod: ", + "ServiceThroughputResponse", + "; previousPeriod: ", + "ServiceThroughputResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\": ", { @@ -6018,29 +5942,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { '@timestamp': string; agent: (", - "Agent", - " & { name: string; version: string; }) | ({ name: string; version: string; } & ", - "Agent", - "); service: ", - "Service", - " | (", - "Service", - " & { name: string; node?: { name: string; } | undefined; environment?: string | undefined; version?: string | undefined; }) | (", - "Service", - " & { node?: { name: string; } | undefined; }) | (", - "Service", - " & { name: string; node?: { name: string; } | undefined; environment?: string | undefined; version?: string | undefined; } & { node?: { name: string; } | undefined; }) | (", - "Service", - " & { node?: { name: string; } | undefined; } & { name: string; node?: { name: string; } | undefined; environment?: string | undefined; version?: string | undefined; }); container: ", - "Container", - " | undefined; kubernetes: ", - "Kubernetes", - " | undefined; host: ", - "Host", - " | undefined; cloud: ", - "Cloud", - " | undefined; }, ", + ", ", + "ServiceInstanceMetadataDetailsResponse", + " & ({} | ", + "ServiceInstanceContainerMetadataDetails", + "), ", "APMRouteCreateOptions", ">; \"POST /api/apm/services/{serviceName}/annotation\": ", { @@ -6142,9 +6048,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { annotations: ", - "Annotation", - "[]; }, ", + ", ", + "ServiceAnnotationResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\": ", { @@ -6202,7 +6108,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { host: string | number; containerId: string | number; }, ", + ", ", + "ServiceNodeMetadataResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/transaction_types\": ", { @@ -6232,7 +6140,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { transactionTypes: string[]; }, ", + ", ", + "ServiceTransactionTypesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/agent\": ", { @@ -6262,9 +6172,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { agentName?: string | undefined; runtimeName?: string | undefined; serverlessType?: ", - "ServerlessType", - " | undefined; }, ", + ", ", + "ServiceAgentResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metadata/icons\": ", { @@ -6432,11 +6342,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "Dictionary", - "<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; previousPeriod: ", - "Dictionary", - "<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; }, ", + ", ", + "ServiceTransactionDetailedStatPeriodsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services\": ", { @@ -6532,21 +6440,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { items: ", - "JoinedReturnType", - "<{ serviceName: string; transactionType: string; environments: string[]; agentName: ", - "AgentName", - "; latency: number | null; transactionErrorRate: number; throughput: number; } | { serviceName: string; environments: string[]; agentName: ", - "AgentName", - "; } | { serviceName: string; healthStatus: ", - "ServiceHealthStatus", - "; } | { serviceName: string; alertsCount: number; }, { serviceName: string; transactionType: string; environments: string[]; agentName: ", - "AgentName", - "; latency: number | null; transactionErrorRate: number; throughput: number; } & { serviceName: string; environments: string[]; agentName: ", - "AgentName", - "; } & { serviceName: string; healthStatus: ", - "ServiceHealthStatus", - "; } & { serviceName: string; alertsCount: number; }>; maxServiceCountExceeded: boolean; serviceOverflowCount: number; }, ", + ", ", + "ServicesItemsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/service-map/dependency\": ", { @@ -6602,11 +6498,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "NodeStats", - "; previousPeriod: ", - "NodeStats", - " | undefined; }, ", + ", ", + "ServiceMapServiceDependencyInfoResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/service-map/service/{serviceName}\": ", { @@ -6662,11 +6556,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "NodeStats", - "; previousPeriod: ", - "NodeStats", - " | undefined; }, ", + ", ", + "ServiceMapServiceNodeInfoResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/service-map\": ", { @@ -6722,11 +6614,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { elements: (", - "ConnectionElement", - " | { data: { id: string; 'span.type': string; label: string; groupedConnections: ({ 'service.name': string; 'service.environment': string | null; 'agent.name': string; serviceAnomalyStats?: ", - "ServiceAnomalyStats", - " | undefined; label: string | undefined; id?: string | undefined; parent?: string | undefined; position?: cytoscape.Position | undefined; } | { 'span.destination.service.resource': string; 'span.type': string; 'span.subtype': string; label: string | undefined; id?: string | undefined; parent?: string | undefined; position?: cytoscape.Position | undefined; } | { id: string; source: string | undefined; target: string | undefined; label: string | undefined; bidirectional?: boolean | undefined; isInverseEdge?: boolean | undefined; } | undefined)[]; }; } | { data: { id: string; source: string; target: string; }; })[]; }, ", + ", ", + "GroupResourceNodesResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/observability_overview/has_data\": ", { @@ -6744,9 +6634,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { hasData: boolean; indices: ", - "ApmIndicesConfig", - "; }, ", + ", ", + "HasDataResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/observability_overview\": ", { @@ -6780,7 +6670,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { serviceCount: number; transactionPerMinute: { value: undefined; timeseries: never[]; } | { value: number; timeseries: { x: number; y: number | null; }[]; }; }, ", + ", ", + "ObservabilityOverviewResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\": ", { @@ -6900,7 +6792,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { serverlessFunctionsOverview: { serverlessId: string; serverlessFunctionName: string; serverlessDurationAvg: number | null; billedDurationAvg: number | null; coldStartCount: number | null; avgMemoryUsed: number | undefined; memorySize: number | null; }[]; }, ", + ", { serverlessFunctionsOverview: ", + "ServerlessFunctionsOverviewResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\": ", { @@ -6960,7 +6854,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { memoryUsageAvgRate: number | undefined; serverlessFunctionsTotal: number | undefined; serverlessDurationAvg: number | null | undefined; billedDurationAvg: number | null | undefined; estimatedCost: number | undefined; }, ", + ", ", + "ServerlessSummaryResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\": ", { @@ -7020,19 +6916,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { charts: [", - "FetchAndTransformMetrics", - ", ", - "FetchAndTransformMetrics", - ", { series: { overallValue: number; data: { x: number; y: number | null | undefined; }[]; title: string; key: string; type: ", - "ChartType", - "; color: string; }[]; title: string; key: string; yUnit: ", - "YUnit", - "; description?: string | undefined; }, ", - "FetchAndTransformMetrics", - ", ", + ", { charts: ", "FetchAndTransformMetrics", - "]; }, ", + "[]; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metrics/nodes\": ", { @@ -7088,7 +6974,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { serviceNodes: { name: string; cpu: number | null; heapMemory: number | null; hostName: string | null | undefined; nonHeapMemory: number | null; threadCount: number | null; }[]; }, ", + ", { serviceNodes: ", + "ServiceNodesResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/metrics/charts\": ", { @@ -7320,7 +7208,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { topErroneousTransactions: { transactionName: string; currentPeriodTimeseries: { x: number; y: number; }[]; previousPeriodTimeseries: { x: number; y: number; }[]; transactionType: string | undefined; occurrences: number; }[]; }, ", + ", ", + "TopErroneousTransactionsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/errors/distribution\": ", { @@ -7384,9 +7274,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: { x: number; y: number; }[]; previousPeriod: { x: number; y: ", - "Maybe", - "; }[]; bucketSize: number; }, ", + ", ", + "ErrorDistributionResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\": ", { @@ -7446,11 +7336,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { transaction: ", - "Transaction", - " | undefined; error: ", - "APMError", - "; }, ", + ", ", + "ErrorSampleDetailsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\": ", { @@ -7508,7 +7396,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { errorSampleIds: string[]; occurrencesCount: number; }, ", + ", ", + "ErrorGroupSampleIdsResponse", + ", ", "APMRouteCreateOptions", ">; \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\": ", { @@ -7576,15 +7466,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: ", - "Dictionary", - "<{ groupId: string; timeseries: ", - "Coordinate", - "[]; }>; previousPeriod: ", - "Dictionary", - "<{ timeseries: { x: number; y: ", - "Maybe", - "; }[]; groupId: string; }>; }, ", + ", ", + "ErrorGroupPeriodsResponse", + ", ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\": ", { @@ -7648,7 +7532,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { errorGroups: { groupId: string; name: string; lastSeen: number; occurrences: number; culprit: string | undefined; handled: boolean | undefined; type: string | undefined; }[]; }, ", + ", { errorGroups: ", + "ErrorGroupMainStatisticsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\": ", { @@ -7714,7 +7600,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { errorGroups: { groupId: string; name: string; lastSeen: number; occurrences: number; culprit: string | undefined; handled: boolean | undefined; type: string | undefined; }[]; }, ", + ", { errorGroups: ", + "ErrorGroupMainStatisticsResponse", + "; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/environments\": ", { diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index c69a4c99e3453..f8809ec432a0c 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for ques | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 42 | 0 | 42 | 65 | +| 42 | 0 | 42 | 108 | ## Client diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index b37814344b85b..00ed896644be1 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index c22d36d92764e..8c1c42cc6d0e3 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 5877bba2f99b5..ba0d86df751ef 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 9ab0c3f14a136..30ddd68f51b32 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 8354dfb0eaaa8..212208add7d9a 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 46203f7f8ad97..7682aa5516400 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index 7d19a1081efe6..25a397ac03094 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 6a9d6854c28bd..9141428c6874d 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index cff17cca199d9..e1ab198864373 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index d0f757a3ee02b..ace71ad4a6fc6 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index 7e6392d39a023..e11f3317dfb60 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 295620dda0ff4..816b29ddbefc7 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index a08a3a5f4b298..8e1c319c19919 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -1690,7 +1690,7 @@ "label": "version", "description": [], "signature": [ - "{ request: `v${number}`; latest: `v${number}`; }" + "{ request: number; latest: number; }" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1837,12 +1837,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.BulkGetIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/bulk_get.ts", "deprecated": false, @@ -1917,12 +1917,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.CreateIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/create.ts", "deprecated": false, @@ -1994,12 +1994,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.DeleteIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/delete.ts", "deprecated": false, @@ -2071,12 +2071,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.GetIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/get.ts", "deprecated": false, @@ -2209,12 +2209,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.SearchIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, @@ -2300,12 +2300,12 @@ { "parentPluginId": "contentManagement", "id": "def-common.UpdateIn.version", - "type": "Uncategorized", + "type": "number", "tags": [], "label": "version", "description": [], "signature": [ - "`v${number}` | undefined" + "number | undefined" ], "path": "src/plugins/content_management/common/rpc/update.ts", "deprecated": false, @@ -2375,21 +2375,6 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false - }, - { - "parentPluginId": "contentManagement", - "id": "def-common.Version", - "type": "Type", - "tags": [], - "label": "Version", - "description": [], - "signature": [ - "`v${number}`" - ], - "path": "src/plugins/content_management/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 1054eb0dd9bc9..b8b67292ff734 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 119 | 0 | 105 | 4 | +| 118 | 0 | 104 | 4 | ## Client diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 16932ee849930..19afef8df6bc3 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -3735,7 +3735,7 @@ "label": "chainingSystem", "description": [], "signature": [ - "\"NONE\" | \"HIERARCHICAL\"" + "\"HIERARCHICAL\" | \"NONE\"" ], "path": "src/plugins/controls/common/control_group/types.ts", "deprecated": false, @@ -5631,7 +5631,7 @@ "label": "chainingSystem", "description": [], "signature": [ - "\"NONE\" | \"HIERARCHICAL\"" + "\"HIERARCHICAL\" | \"NONE\"" ], "path": "src/plugins/controls/common/control_group/types.ts", "deprecated": false, diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 01b27f4d3cad4..a1568e703b807 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index c5ec3ca4f0c2c..8c61127f8a9f5 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 82e3cf0971a7c..141545ec6fa9e 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 5dca53aea322b..a41fceaad878a 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 7cf44eb94b574..8a4e0c2ab614f 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -10990,10 +10990,6 @@ "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, - { - "plugin": "apm", - "path": "x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts" - }, { "plugin": "savedObjectsTaggingOss", "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" @@ -28767,10 +28763,6 @@ "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, - { - "plugin": "apm", - "path": "x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts" - }, { "plugin": "savedObjectsTaggingOss", "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index ca7958685b806..d6d8370faee4d 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 92de7b8a9767b..badcdc788f55c 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 3dd1d98bf4b66..fe9be233ec769 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 4079db9ab9f59..198b1d3332956 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index ff37b704ee7d6..293e7d58087b7 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 4adddc9aae554..6105be7efaa22 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index 2019272ce296a..7478390fc77f8 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -26196,10 +26196,6 @@ "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, - { - "plugin": "apm", - "path": "x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts" - }, { "plugin": "savedObjectsTaggingOss", "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index d53f6a211372a..72cf99381dfaf 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index dc2c0d2827188..3abe3ae30361d 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 38f56cffd0f3a..26586fe5c6e36 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -41,8 +41,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | discover | - | | | data, discover, imageEmbeddable, embeddable | - | | | advancedSettings, discover | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, savedObjectsTagging, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, dashboard | - | -| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, savedObjectsTagging, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-import-export-server-internal, apm, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, data | - | +| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, savedObjectsTagging, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-import-export-server-internal, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, dashboard | - | +| | @kbn/core-saved-objects-common, @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-api-server, @kbn/core, home, dataViews, savedObjectsTagging, fleet, canvas, osquery, securitySolution, synthetics, savedObjects, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-import-export-server-internal, savedObjectsTaggingOss, cases, lists, upgradeAssistant, savedObjectsManagement, @kbn/core-ui-settings-server-internal, data | - | | | securitySolution | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | | | lists, securitySolution, @kbn/securitysolution-io-ts-list-types | - | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index b4c51c06652a7..3025665ccf22b 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -333,8 +333,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject) | - | -| | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts#:~:text=SavedObject) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title), [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title), [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 6a806d05cffee..c485798cc1d60 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 391b1431a86fd..aa6c2b38bc7d2 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index af2ea7fcf51cc..357252f0c0b3d 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index c48962d3e3b27..df20e4c634c2a 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index a2b9d2eacd5f6..09652f9dd406c 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 533fae6de0fef..2ae1f519b1134 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 5f4cccf021517..2bb0184474a70 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 7b09abd09d892..eaa550680781f 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index e9535eb340ada..3721a905ca2ba 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 0eddbc33979eb..3ed054bb99b26 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 21a50d5cf9303..eef05639c97b9 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index e0bdaa48bd824..8e5d09f93f4ae 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1514,7 +1514,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; created?: string | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1534,7 +1534,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; created?: string | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1549,7 +1549,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; name?: string | undefined; description?: string | undefined; category?: string | undefined; version?: string | undefined; uuid?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ outcome?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; code?: string | undefined; url?: string | undefined; severity?: string | number | undefined; duration?: string | number | undefined; created?: string | undefined; original?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 298b9dc686fd2..1f1e41b0434e3 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 0f6516482f642..1d3353e519075 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 2f9c4532b7d30..744b8891ffce1 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 3debd9943e416..5f6a3fdfb7437 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index ce5ebb70887c0..85dcec3ad3c09 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index 2967e9f4af1a0..378ed6c37a0ef 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index b08975c24253c..a77ee59fec2ae 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index bed1843a9f3eb..f744a8a0b18fd 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 6d367855c314a..a5f9b679de6ee 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 4bd7279800fac..ff71e78fae5f0 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index aef8a5170cb62..fbe0c0c3f8aed 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.devdocs.json b/api_docs/expression_shape.devdocs.json index cb0dd0c5e8484..3c6d97d7ce0f4 100644 --- a/api_docs/expression_shape.devdocs.json +++ b/api_docs/expression_shape.devdocs.json @@ -635,7 +635,7 @@ "label": "strokeLinecap", "description": [], "signature": [ - "\"inherit\" | \"square\" | \"butt\" | \"round\" | undefined" + "\"inherit\" | \"butt\" | \"round\" | \"square\" | undefined" ], "path": "src/plugins/expression_shape/public/components/reusable/types.tsx", "deprecated": false, diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index e0aed66d0aca4..5c72c9365495d 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index fbd709751eaa4..9b25a15c98456 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index 78e6aa0828084..81301b9f25a67 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -3402,7 +3402,7 @@ "label": "YScaleType", "description": [], "signature": [ - "\"log\" | \"time\" | \"sqrt\" | \"linear\"" + "\"log\" | \"time\" | \"linear\" | \"sqrt\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 502d46867f15d..1dc52f8360963 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.devdocs.json b/api_docs/expressions.devdocs.json index 3d3855cad3b00..9ac913a878dcb 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -12556,7 +12556,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" + "\"text\" | \"color\" | \"size\" | \"y\" | \"x\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -22374,7 +22374,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" + "\"text\" | \"color\" | \"size\" | \"y\" | \"x\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -37790,7 +37790,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"text\" | \"color\" | \"x\" | \"y\" | \"size\"" + "\"text\" | \"color\" | \"size\" | \"y\" | \"x\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 0354120e38af1..00a77b57f6935 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index 8c7ee2f787f07..5283996b4f408 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -64,7 +64,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -1317,7 +1317,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3082,7 +3082,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3346,7 +3346,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3383,7 +3383,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3427,7 +3427,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; app?: readonly string[] | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; ui: readonly string[]; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 387ae1c0768a5..4c72ddbb687e7 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 39cfd32cf2d15..2c1a2f8bead52 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 4806f6c7aef7d..951a697e25525 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 1786522ea9c9c..06e31af842cfc 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index b92e3462c412d..2fa1c89735339 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index fe6102f44e595..ec721141ff64c 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -4427,7 +4427,7 @@ "section": "def-server.Artifact", "text": "Artifact" }, - ", \"decodedSha256\" | \"identifier\">>({ identifier, decodedSha256, }: T) => string" + ", \"identifier\" | \"decodedSha256\">>({ identifier, decodedSha256, }: T) => string" ], "path": "x-pack/plugins/fleet/server/services/artifacts/mappings.ts", "deprecated": false, diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 70df6fd44e8b7..3718bc4ae7cf3 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 68fb5e0d9d95b..7fe7844639eb9 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index aa95d025faa7b..cfecd856e7768 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 5c5275fd2f32b..9d800a09499f2 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index e0c488a423fbf..bae0bd6cf2869 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 1f689b71abb80..11d57bc8d7353 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 82b117b281564..ecfdd86f06c73 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 201523d17e56e..2cd1702a2754f 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index c824f3f3e5a78..04a2dca27174a 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index cf0b4492f18b7..d4ed87c7f0d40 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 477708d9e2d1d..312da8ae62cf3 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index d6621ea653b45..f512fcb6f4f71 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 5aa9fa4fd7efd..5291d40d7aa35 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 6f2507692459e..d8b1820fc8f3a 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 0dc1260dc24a0..4dc27199538b5 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 6423565c48e2e..75bcb28b7c411 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 786333cfe0378..e2cb2c2eb51f1 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index d3f391099ad35..f28512487de31 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 0d2d4a2ff78d7..ab2d8e51ecbb8 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 68fd53189a7c8..dc5b708abb543 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 5eac4ecc206dc..eff664e24abef 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index e909f2cafd312..fa6e39e2e9fa8 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index d208172ee3a1f..3d9bc359cfb06 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 78d5c7a0cbeca..14ac52476a5d0 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 542d468e2316c..d34b3ba3f1341 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json index ec56227258393..4aeb6fc81e78a 100644 --- a/api_docs/kbn_apm_synthtrace_client.devdocs.json +++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json @@ -2336,7 +2336,7 @@ "section": "def-common.ApmFields", "text": "ApmFields" }, - ", \"@timestamp\" | \"metricset.name\" | \"ecs.version\" | \"event.ingested\" | \"observer.type\" | \"observer.version_major\" | \"observer.version\" | \"processor.event\" | \"processor.name\"> & Partial<{ 'labels.etag': string; agent_config_applied: number; 'event.agent_id_status': string; }>" + ", \"@timestamp\" | \"ecs.version\" | \"event.ingested\" | \"metricset.name\" | \"observer.type\" | \"observer.version_major\" | \"observer.version\" | \"processor.event\" | \"processor.name\"> & Partial<{ 'labels.etag': string; agent_config_applied: number; 'event.agent_id_status': string; }>" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/agent_config/agent_config_fields.ts", "deprecated": false, diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 807d82081bd66..4888b563ab7a7 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 594ab0be12124..4d78eb194bf9e 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 8008d0fd088b5..0ee3713ac222e 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index f50bc72daa73e..244b8e766b09e 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 04b0420ac307a..2815470ae828c 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 51a5af20534eb..f312ce3d9b5a8 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index cb413100b7c6e..919c563a1b7bb 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index c565179a37541..372007cc26a70 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 92dde07a13890..3bdb95e16d8d5 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 919d808d46307..1ed7dbb3b72b5 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 019f4396607b6..dde42f9c7b28e 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 5426b825672e6..64258371c2592 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 3939c0ed6d7ce..75567ffb24366 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 8193fab5fb300..2327223c53ea3 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index a1abf10f92e5c..fef426991d29b 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index af0bf4999b553..c55035961db3b 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index db8a37ee8f35c..7d4bf6c099ab3 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 2da5fe9601c70..873d00e98deca 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 861347282abda..126f37cea103f 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 55c2bae0d1470..67de988ee4b20 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index cd904f008d270..2202b4dbdc4c7 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 1b3d1091c745a..605e9ae016caf 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 1d828946b69aa..91a9e0e0f34c5 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 93c20f8d5d823..26f33e40499b4 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 5f64ca6bfab92..070ded4fadd7c 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 61f8b890f51b1..cc940c491f839 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index d5345d9523443..5b0ab622a6eba 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index b33e42e8da4eb..80a18f5981d28 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index c37b9ba1eb6ce..56a0ab0d2568c 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 0ab2da6ab6418..49ccf0d55bbe9 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index faffad9dd4d28..37d05fd1e848f 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 456d0bfdd3921..f180af7d85b8b 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 80efb8407c7a6..60f2cfd5ab4fb 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 5704a24ed9daa..7c929f9d29b3f 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 14a6fe8f365fe..a452ce47feb37 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 371835b60942f..17ad9d1666d0a 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 171bb2fd4efc2..663b2b5d91ee7 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 9b207fe878f3d..c7598866a4f22 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 2fbfa557998d5..3de83c2fd81e2 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 136cb21b392b1..d8b34d2c1a328 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 9e26d523e2d6e..3e1f5f6395aa7 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 4f1b670aada29..919c68ae6256a 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index fa4c604f593b8..eae73105cc6b5 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index a0a17cb1b9298..55085e8ba5a8f 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index dc97b9a22cee5..b0c787f172b17 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index f6fbd0772411a..c50d27dd8bd0a 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 97f1c025b52dd..6d5c01aa2eea2 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index ca94f47d9fe0e..546d684c4f122 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index ceb1ab93d70df..574c3cd40c051 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 333d570d870b4..830650337b2bc 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 45bd394284dda..cda07b0d16560 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 7478b06dbaa7f..58d40d6c5cd09 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 065a3b98536ec..fbf6b0795578f 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 8eb841a78fc17..d134e9541d4ad 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 34b3517ac07a8..a702eb5818f64 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 5041485e92bb0..b68e161d8d2d3 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 686d3fdfcfb71..0f286e98307a6 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 6ae250686fcb5..b9c3f3b4fd942 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index a69ea286da078..50cf56b2c3dd6 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 1c6843b294d3e..e979c10854b07 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 1944c2112c115..f0fcf588b3439 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.devdocs.json b/api_docs/kbn_core_elasticsearch_client_server_internal.devdocs.json index 4c68d1b3a5c5e..d249733c20b94 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.devdocs.json @@ -225,7 +225,22 @@ "signature": [ "(event: ", "DiagnosticResult", - ") => { url: string; body: string; statusCode: number | null; method: string; }" + ", apisToRedactInLogs: ", + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchApiToRedactInLogs", + "text": "ElasticsearchApiToRedactInLogs" + }, + "[] | undefined) => ", + { + "pluginId": "@kbn/core-elasticsearch-client-server-internal", + "scope": "common", + "docId": "kibKbnCoreElasticsearchClientServerInternalPluginApi", + "section": "def-common.RequestDebugMeta", + "text": "RequestDebugMeta" + } ], "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", "deprecated": false, @@ -246,6 +261,28 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.getRequestDebugMeta.$2", + "type": "Array", + "tags": [], + "label": "apisToRedactInLogs", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchApiToRedactInLogs", + "text": "ElasticsearchApiToRedactInLogs" + }, + "[] | undefined" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], @@ -293,6 +330,77 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.RequestDebugMeta", + "type": "Interface", + "tags": [], + "label": "RequestDebugMeta", + "description": [ + "\nThe logger-relevant request meta of an ES request" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.RequestDebugMeta.method", + "type": "string", + "tags": [], + "label": "method", + "description": [ + "\nThe requested method" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.RequestDebugMeta.url", + "type": "string", + "tags": [], + "label": "url", + "description": [ + "\nThe requested endpoint + querystring" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.RequestDebugMeta.body", + "type": "string", + "tags": [], + "label": "body", + "description": [ + "\nThe request body (it may be redacted)" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-client-server-internal", + "id": "def-common.RequestDebugMeta.statusCode", + "type": "CompoundType", + "tags": [], + "label": "statusCode", + "description": [ + "\nThe status code of the response" + ], + "signature": [ + "number | null" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 3d541c32fd35a..9ab17c9cafa45 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 16 | 0 | 12 | 1 | +| 22 | 0 | 13 | 1 | ## Common diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index d2a90a69620b7..0deafadd42cc1 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.devdocs.json b/api_docs/kbn_core_elasticsearch_server.devdocs.json index 0d13d0516f3f7..b6047b7e4aa1e 100644 --- a/api_docs/kbn_core_elasticsearch_server.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server.devdocs.json @@ -20,6 +20,54 @@ "classes": [], "functions": [], "interfaces": [ + { + "parentPluginId": "@kbn/core-elasticsearch-server", + "id": "def-common.ElasticsearchApiToRedactInLogs", + "type": "Interface", + "tags": [], + "label": "ElasticsearchApiToRedactInLogs", + "description": [ + "\nDefinition of an API that should redact the requested body in the logs" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-elasticsearch-server", + "id": "def-common.ElasticsearchApiToRedactInLogs.path", + "type": "CompoundType", + "tags": [], + "label": "path", + "description": [ + "\nThe ES path.\n- If specified as a string, it'll be checked as `contains`.\n- If specified as a RegExp, it'll be tested against the path." + ], + "signature": [ + "string | RegExp" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-server", + "id": "def-common.ElasticsearchApiToRedactInLogs.method", + "type": "string", + "tags": [], + "label": "method", + "description": [ + "\nHTTP method.\nIf not provided, the path will be checked for all methods." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-elasticsearch-server", "id": "def-common.ElasticsearchClientConfig", @@ -276,6 +324,27 @@ "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-server", + "id": "def-common.ElasticsearchClientConfig.apisToRedactInLogs", + "type": "Array", + "tags": [], + "label": "apisToRedactInLogs", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchApiToRedactInLogs", + "text": "ElasticsearchApiToRedactInLogs" + }, + "[] | undefined" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -2553,6 +2622,29 @@ "path": "packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-elasticsearch-server", + "id": "def-common.IElasticsearchConfig.apisToRedactInLogs", + "type": "Array", + "tags": [], + "label": "apisToRedactInLogs", + "description": [ + "\nExtends the list of APIs that should be redacted in logs." + ], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchApiToRedactInLogs", + "text": "ElasticsearchApiToRedactInLogs" + }, + "[]" + ], + "path": "packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 3d3535dbcfc6b..23113db17fe27 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 103 | 0 | 53 | 0 | +| 108 | 0 | 54 | 0 | ## Common diff --git a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json index 0b19e6e87fab8..186a4717134d3 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json @@ -2949,7 +2949,7 @@ "label": "ElasticsearchConfigType", "description": [], "signature": [ - "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly customHeaders: Record; readonly hosts: string | string[]; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; }" + "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly customHeaders: Record; readonly hosts: string | string[]; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; readonly apisToRedactInLogs: Readonly<{ method?: string | undefined; } & { path: string; }>[]; }" ], "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts", "deprecated": false, @@ -3255,7 +3255,15 @@ "section": "def-common.ConditionalType", "text": "ConditionalType" }, - "; }>" + "; apisToRedactInLogs: ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "[]>; }>" ], "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 3daec4c3a54ce..89adae9427866 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 1527c3894c0b1..54b97b0658be5 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index bd8f97efd4b30..83b7ca5d41af7 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index df7358db716df..578300e614868 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index d5ddef550c503..0be3ba07789ff 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 7023f3f2c51c6..4e3a33daecf3d 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 6965a39ed86d9..5216429270579 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 2ce19c1196b43..a0285f6688b17 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index fff5edbccf9fc..0571f4f6a825a 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index e8f70e11bf56d..cdf7dc418201d 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index b0b3110409e52..8536671643c31 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index e6adf814c2771..1560979c473e0 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index d33261c896cce..511d83e2530e3 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index d6c4df7d4c319..4a2da2cb34120 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 3ae72e9221c50..6c90fc687bcca 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index ff2c8141c1a74..587e10cbe98c6 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index ea3dd130367de..94e7dd66e6a81 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 4f71d859b69fb..c4d6793075b52 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 28674c2ef7b94..cb8d9a241c57a 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 75ad077fa7390..384a3c8bd06bc 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index db3c98dd90590..0039d5d1ad269 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index dacf4f374011f..130ac81fc79bf 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index e83b3136e4a27..82be41009c930 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 13a69e46c1949..1574bdaaea3d7 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 7f04eeeadb8ef..22f063a9ba7e5 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 6113ae810a1b6..f67cdf0197578 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index da8471c154584..9fff830f79c53 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 89c251a087555..295bfe766b5e7 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index 0d7c71616492f..a32bb8c659571 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index d0ca532f569bc..6109a6a78372d 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 06e53be25c41c..457da6beebe0f 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index daa7d65fd2f21..ad14704349da7 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 1a09de5343c1b..08239c8357387 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index 6a2c552205744..14e1fca076d59 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index b534a60d63d9f..b4415a42a1e22 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 59b705f34c069..8c0f7d77a9681 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 966c04d7af5e6..179a5ea6d74d9 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 1d5644cf2df6a..8c16e57fa2b72 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index a43064bf4bc65..945d13d29067b 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 11a07353754a9..a33fa77cbf0e9 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 6ea917670e1cf..877d6ead9dea1 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index bcd85d5ed4df4..53d82a1b4f35f 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 4363a718d000c..f1bc2749fbea0 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index ac69faae5fdb7..b66d8b7edf9b1 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 93bb6063256fa..28bbc3b850915 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index b3ed9fabdf391..bef453322ab60 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index e3d67aa8ad0de..235f43c51c367 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 8c2d5e1ff2f11..97f7880aa69eb 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 0aaeedf9309c9..dc992db20d67c 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 9e384b4477e32..f60ed404e743a 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index de77ea1186b3b..a2bf40a143084 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 3c0900ebdabdc..074698f8edbce 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 6c2e9c41b31c0..38b21a975709d 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 3f2e14a4d0f73..ad42a8225be00 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 112fa5711d162..e2860281064dc 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 02ceae0db8933..f2a67d1a834c8 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 2d6c572746ef9..ecc836de27a7d 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 7f3e9a81f3a3e..fa1a5645391d4 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index e356eb3266e6f..c1009542c9843 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index d1fbc8528d6e0..9b692cc0c331e 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 200a1748e08ed..fff6b1bfdea0f 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index e849ab0ff59cd..9610ea24af312 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index b8ea66762ac3c..257b4c1d82a0d 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index b28008488671c..a34542fefce8e 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 4af16834dd7aa..a77f0c81d3d16 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 7e22a787813eb..9edce5d844953 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index b35c0e4ac4493..810305990562c 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index a1f4c04757c7a..4531b2efe550e 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index b59a7f6b9327e..a10f99079a97c 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 3dbf95fc842e0..6357cdabdcc6f 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 17aebd1d0f7ad..d45b574704a1d 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index 5faa7733a2bf1..f17a557f7d417 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 68252f5b0a30b..7a36e9f5e3656 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 93094a2a11c97..6193ed2622d7c 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index b9ff4a2989107..b4a095d27a5aa 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index e52fc19590419..369ca8b0d8f79 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 640c03c8c8846..bad71fb74b1f9 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 575f10739465a..0814b07baaa2c 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json index b6509642834af..5408ca3f6c8f1 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -1495,10 +1495,6 @@ "plugin": "@kbn/core", "path": "src/core/types/index.ts" }, - { - "plugin": "apm", - "path": "x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts" - }, { "plugin": "savedObjectsTaggingOss", "path": "src/plugins/saved_objects_tagging_oss/public/api.ts" diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 6c71e5013a824..a78ba747b38b9 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index cae12f4a410c8..8e2823344ad04 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 2b27d95cf7945..bffb31a6ae1f6 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 72c1cf468c2fc..21493e646e9d3 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 06804ea962db9..91634253fd5c3 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 89dc98f254fdf..ab650e0517174 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index da6cd7947bf21..5005362500e14 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 4ffa14593ad1c..c24b460963a49 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index b6e89f0af9cdf..138b201b9db74 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 650f17dd538ba..6aa629900c96a 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 0a47f6927e542..b8d1c2bd460fc 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 635d06d9925e8..cef72f5899165 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 8237057c05d01..f68a9ae53f74e 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 6a90b5a3b5bee..7681936d083d8 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 08e369f2d16f6..67828cf25305f 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 9eadc4719f4e2..abdb51de7c6ac 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 5e48bf02d2317..84b582ca1efd1 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 29b7516dae1c3..fe0a8cd11d168 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 62df87d5300b6..5de9ba517107a 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 86e49869e5b1e..cf4285680cffb 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index 9511b139062f7..d27f286354c15 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 2acff607587c0..7337f5fd21379 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 49f1b3ec58bf1..0eea423556fb0 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 9857b1f12dcf6..80b54a78dd631 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 4269c2138f058..cd2bea71efaba 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.devdocs.json b/api_docs/kbn_core_ui_settings_common.devdocs.json index 75913bf8f3cad..7fd88652aec3a 100644 --- a/api_docs/kbn_core_ui_settings_common.devdocs.json +++ b/api_docs/kbn_core_ui_settings_common.devdocs.json @@ -441,7 +441,7 @@ "\nDenotes the scope of the setting" ], "signature": [ - "\"global\" | \"namespace\"" + "\"namespace\" | \"global\"" ], "path": "packages/core/ui-settings/core-ui-settings-common/src/ui_settings.ts", "deprecated": false, diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 6b69b5c7c54a9..e1ae59641bb1a 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 6e78fb8059ad3..e19f6c321b976 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 4041a16661e30..0b72a24083cd1 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 9a190e40678b2..560d23d333097 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 86757e88a4bff..9a69929a83a7f 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 6ffae51b91c49..b9d4ebb93d69e 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index e2234725ee68e..c94f002c7ae6c 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 46bb7812701d4..61402b6ee17a9 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index c431cacb21bd1..397ab0ef8c79c 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 7ab552c53121d..45126e0796159 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 0f341dafc4e28..740cc3bf21022 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 019f94349e923..876c8ab1ae737 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 7ec48170458d9..41bcfcfa69a08 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 8eb90f20c7094..6da58dd7f74e6 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index c9b5f544975ae..4b95ce90c7437 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index cc88c16d9a1f2..e3b27cbd5ce6a 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index fb91d72ff6904..096b8641af1df 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 4b27d266cc81f..4e062027a4509 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 43b1b7764a1cf..9c07c2a0d48c9 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 084630a51927e..3625a5968307c 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 8bf82e1c77ff0..6a1ea3b0716e6 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index ff633fa7da20e..32027372b9cd7 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index c3e914166f359..5c26aef79dd2e 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 773e375452e46..7a3b95eea478c 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.devdocs.json b/api_docs/kbn_es_types.devdocs.json index fc197d24736da..32c29543af11a 100644 --- a/api_docs/kbn_es_types.devdocs.json +++ b/api_docs/kbn_es_types.devdocs.json @@ -393,7 +393,7 @@ "signature": [ "Omit<", "SearchHit", - ", \"fields\" | \"_source\"> & (TSource extends false ? {} : { _source: TSource; }) & (TFields extends (string | ", + ", \"_source\" | \"fields\"> & (TSource extends false ? {} : { _source: TSource; }) & (TFields extends (string | ", "QueryDslFieldAndFormat", ")[] ? { fields: Partial, unknown[]>>; } : {}) & (TDocValueFields extends DocValueFields ? { fields: Partial, unknown[]>>; } : {})" ], diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index c816f1c3588d6..31e15d158b0b5 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index d138bd202e554..503393329c94d 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 10e0a5ce3f027..28fc849d1845d 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 510ad816bc1b5..464d658d1c18c 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index a89625a66ce1d..7cc16615fa623 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index aa64e41997155..358d56d544d7c 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index b928cb63fa06c..754884d467abd 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index bf5cf4edd7fa3..05960a1261404 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 0d51843402b73..03529ef9d34c5 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 6ae1c33324202..13ea38ab25012 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 077973e2f9723..fd939f88beb24 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index d6bc41f1236ea..595d965318c20 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index 5dc4a6f787cbe..3a2ee4aeee1a4 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index fb2603d51d5c5..1630114b5d7b1 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index e088b91eb5afc..8ab979a57069b 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 636cc1e3644e7..f22074ec6699a 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index e4eacaa1c9250..0344dfc69ab7e 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 1313656fd227c..682074879acbf 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 1551148040e85..8eec17ebe8162 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 601c879da3a94..fecfab47857e4 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 163a16e187d89..1933175ece3d4 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 62dcace509982..74dd0f449865c 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index babc1f3b9d13f..8818ebd521969 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 7415c73b624ec..ab31dd2db2466 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 9c3c24d1c3970..7cd8fc5edc7f7 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index d659e68d056ee..fe5a01b83f106 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 83864686836a6..fe2789cc507f3 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index e26c860dca47e..3429a21af80ee 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index e8b6b363c57e5..a8c8c18333de7 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 68f2a7b9895fe..f5b6ececf6394 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 0e84d0d377c81..906fad67a4d08 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 71ee61d27ef2d..b2b982a7db770 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index aa5c89ce0f0a2..2b7c02ed7a303 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 0549e36d244c3..1529767f38ae4 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index b3047874fb68d..b732609fac27d 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index de4ae92032768..ff203a014352e 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.devdocs.json b/api_docs/kbn_monaco.devdocs.json index 364fa6046fc99..2b0acc3ca3903 100644 --- a/api_docs/kbn_monaco.devdocs.json +++ b/api_docs/kbn_monaco.devdocs.json @@ -588,7 +588,7 @@ "label": "kind", "description": [], "signature": [ - "\"type\" | \"keyword\" | \"property\" | \"field\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"keyword\" | \"property\" | \"method\" | \"field\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, @@ -756,7 +756,7 @@ "label": "PainlessCompletionKind", "description": [], "signature": [ - "\"type\" | \"keyword\" | \"property\" | \"field\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"keyword\" | \"property\" | \"method\" | \"field\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 5289ac4498b56..3c1efcd4853b3 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 9039574ab8599..68d51a9d411c6 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index ac7edf936967b..339534cb806f9 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index c8a4342733a4d..a4daf0acbf5af 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index 39c55249e94eb..b8303f854dce2 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 29eb467c74180..9f744721d12fc 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 79f70c644b80d..0ea019433c76d 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 330074393cd82..d14f8cd06996c 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 796fd749e9ef0..6b56205e52957 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index f12b9c7f505fe..2f6734692d1f5 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 08c3b457b8d13..4c0cd8dab7fe9 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 6152cec00432f..c24987e9bff77 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 49e45b238a9a5..f16bcd4b692b9 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index e82cdca7d1d3f..7779613550729 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 689f594f3d3b4..5303c62b647b4 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 0efa9fe39180a..ba5c5fe35bc2f 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 77737eb92ab78..6646ef9ab7020 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 001c80121f180..216800bf3543b 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 6a3fa2ce90895..11d34d1d079f2 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index bc83a423e3328..153778c1915a8 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index c799bb5c42352..09cb79a4a8bd3 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index efaf63377b41a..a44f7550dfa3e 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index c216aaaf13743..428f20720d5c8 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 9bb07f2c69a56..439e140e0aaec 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index b6f2b962cc889..7c718048e2854 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index ff8dcb5f4fc82..dc3b566a931bb 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 5824b7b7c0dd0..c65d34e8f5213 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 640a2d0376273..d43fe41b321c2 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 5c8780e0511a1..ade3124310c1d 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 77cb57b8dc6b8..7229ba62bb66f 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 8c96935043866..3feda05a642af 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index a3465d2aecff4..2c6d44ff975e5 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 57923ef9b082c..3410be4665697 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index a15222ce59be2..e24975a17aa5b 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 2fc45051c149a..c056900e0a4d4 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index e5e8e6bade07f..978f04b22211b 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index b1c634365261e..4b0d44d296efb 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 8e31588912ae4..e99335ddc30e9 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index f92a7ae2a4931..48958bcf23652 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index c440e89428b03..b01b1c4657f25 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 877a7c136c5a3..47a242a0b0942 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 35be0f522aadc..ccb2a7b2297c1 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.devdocs.json b/api_docs/kbn_shared_ux_card_no_data.devdocs.json index 8c7dec127aee0..91eb01bd27caf 100644 --- a/api_docs/kbn_shared_ux_card_no_data.devdocs.json +++ b/api_docs/kbn_shared_ux_card_no_data.devdocs.json @@ -340,7 +340,7 @@ "DisambiguateSet", " & ", "DisambiguateSet", - "<{ tooltipContent: React.ReactNode; title?: string | undefined; }, { title: string; tooltipContent?: React.ReactNode; }> & { title: string; tooltipContent?: React.ReactNode; } & { label: React.ReactNode; }) | undefined; display?: \"warning\" | \"success\" | \"plain\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | undefined; selectable?: (", + "<{ tooltipContent: React.ReactNode; title?: string | undefined; }, { title: string; tooltipContent?: React.ReactNode; }> & { title: string; tooltipContent?: React.ReactNode; } & { label: React.ReactNode; }) | undefined; display?: \"warning\" | \"success\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | \"plain\" | undefined; selectable?: (", "DisambiguateSet", "<", "EuiButtonPropsForAnchor", diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index d05d0fcee9432..4f0954d5fcd83 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 9e19459f1f5e6..a9641f5122834 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 4bed057895b70..7f0f72c0147c6 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 0aa65dc712807..56134e5498e2e 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index fac9fb4918703..63bc587401cd8 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index d9966892ba7c4..5d61cc45e3097 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 90ee4f6e9cf2f..d6a90a87b6ccb 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 08d562c0cbcf2..721bdc17ab341 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index ed0f085df73d7..4aba20a7daefd 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 6d85ac5e3db4e..457b501f6b995 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index da9adaa44c3fd..4e2170878c6eb 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 893ecd84727f1..41e17aad9f519 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index d2ee4e2e1d64d..fc32438eb6bed 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index e77e3041fc26c..4f346decf51ea 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 4786631860de3..0a20ecbf2d347 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 37546920e0327..2a344a59a3750 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 64e02f692f5f1..305699a83b2d1 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index e9eb0da1f07ba..d557c18da2190 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index c6a59ae0f2600..f66537d9ca754 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index 16d499d566996..bfe82ece2dd23 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index c42ab3aa973c2..8664bf3dfcb07 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 50affcf534bc1..1819155e86b5f 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 07010e373b97a..b9e6950ff8045 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index 705375b7e0af4..e4479a29ba1ca 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index 306dd13ddb23c..a7903fb15be2a 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json index 348accba9641d..241bf46504f01 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json @@ -241,7 +241,7 @@ "The background color of the prompt; defaults to `plain`." ], "signature": [ - "\"warning\" | \"success\" | \"plain\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | undefined" + "\"warning\" | \"success\" | \"subdued\" | \"primary\" | \"accent\" | \"danger\" | \"transparent\" | \"plain\" | undefined" ], "path": "packages/shared-ux/prompt/no_data_views/types/index.d.ts", "deprecated": false, diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 00e1a2b1a2760..9aa959b98505e 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index 2b48e8168613d..bf17c9ec159bf 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 59c719581d26b..d788f700abe3d 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index e152e20c9c4d2..9e805b0de00f0 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 9a016cb25c3e7..d064cde3a6340 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index f060dd4251dcf..73dd066ecf392 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 4bf5f3493efcb..5a33823eb7213 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index a107274dab5bc..8c08e6a90ad04 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 8eaa9c5d2f39f..d16b001ef5308 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 087ec76cc8d90..261ac8ee0a272 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index a5fa6445b232c..2cad4c060d2cf 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 5c5e0ecd16109..e5df359263e80 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 86a341f543edd..be34b650ab6ff 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 11070d35766c2..507cf222719a8 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index a59675b84774f..155ebbbd20ba4 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index f6a440d659b94..a07c5cb658a26 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 057cd23178c63..eac35b572ef00 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 0b9efdc4e2a54..622bdcfeb8853 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index f5a10a8848d92..67888e564e609 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 7da629c3d01ba..b7b00876cf7bc 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 460ea4a0beb12..3a76316c827b1 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index ccd79001f912f..ac9394afe16c3 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index b5424caf59a78..4e86af9853613 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index dab36905babb4..aeae758b7b469 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 5cf6cce22c2bd..c57af9411996d 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 3372f3e73a1bd..a01c54d441702 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 6dca23f23d740..cb1ed67e15fe1 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 5bd6b89076da4..074a335c2df08 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index 52381cee20c46..54eea5ac3e31e 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 8436cc03d3f79..ab3526c32bfcf 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 13e5f732cf665..4d3a5badc1e55 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 8cced1d509fb6..d6d24e611f690 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index def9e6a6371e5..b51e8d542f4a6 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -9722,7 +9722,7 @@ "label": "YScaleType", "description": [], "signature": [ - "\"log\" | \"time\" | \"sqrt\" | \"linear\"" + "\"log\" | \"time\" | \"linear\" | \"sqrt\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -11178,7 +11178,7 @@ "label": "OperationTypePost712", "description": [], "signature": [ - "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"cumulative_sum\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"moving_average\" | \"unique_count\" | \"last_value\" | \"counter_rate\" | \"differences\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"filters\" | \"date_histogram\" | \"percentile\" | \"average\" | \"terms\" | \"cumulative_sum\" | \"moving_average\" | \"unique_count\" | \"last_value\" | \"counter_rate\" | \"differences\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, @@ -11193,7 +11193,7 @@ "label": "OperationTypePre712", "description": [], "signature": [ - "\"min\" | \"max\" | \"sum\" | \"avg\" | \"median\" | \"count\" | \"range\" | \"cardinality\" | \"cumulative_sum\" | \"date_histogram\" | \"derivative\" | \"filters\" | \"terms\" | \"percentile\" | \"moving_average\" | \"last_value\" | \"counter_rate\"" + "\"min\" | \"max\" | \"sum\" | \"avg\" | \"median\" | \"count\" | \"range\" | \"filters\" | \"date_histogram\" | \"percentile\" | \"terms\" | \"cumulative_sum\" | \"derivative\" | \"moving_average\" | \"last_value\" | \"counter_rate\" | \"cardinality\"" ], "path": "x-pack/plugins/lens/server/migrations/types.ts", "deprecated": false, diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 6ba53d8e76d41..e35a18e4c985f 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 6f22d61e80486..81485e41947e8 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 69bf0bf1905a7..61cef6b5444c5 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 5b055a69136f4..3e683ef7b87bb 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index e09b0f16d9a05..a1c2420c6b62a 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index c178ed02f55de..cba150a442ec5 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index a6f5119a94576..47eb57b566172 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 60ceb8d4030b7..2885b7d2eee39 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 28d6f650f62ee..2409334b00a22 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index a2891afe5d198..8cad705a6647a 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 54fb5e5280b0f..7718ec709c7d7 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index 0fdac2358d2eb..9d3da60e499e9 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index d02ea4acaf6b4..f881d8dd106c1 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index e397f50ffcd7a..b8a63e2356e0b 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index c77657bd8221b..0ca693245468e 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index c412da08f4c08..f8ea7bb8a7607 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index abd21dab54dba..e7273c764ad65 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 68185 | 517 | 58871 | 1244 | +| 68195 | 517 | 58872 | 1287 | ## Plugin Directory @@ -31,7 +31,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 36 | 1 | 32 | 2 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 12 | 0 | 1 | 2 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 534 | 1 | 518 | 41 | -| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 65 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 108 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | @@ -47,7 +47,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 119 | 0 | 105 | 4 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 118 | 0 | 104 | 4 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 272 | 0 | 268 | 11 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | @@ -271,9 +271,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 2 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 12 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 13 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 1 | 33 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 103 | 0 | 53 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 108 | 0 | 54 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 0 | 33 | 3 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 1 | 15 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 1 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index cef1e4e4477a5..b354b34984b32 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 16a69933c632d..d4b82cd198f16 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index 3f9d7480bf95c..8eec3c07dd4cc 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 50997b8ba2ab4..2fc90344675c8 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 8cda416cc1bf2..214d73089e568 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 77543a87abc92..c1e0d36c1d2fd 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index a5221e629e44a..f054562557d94 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index a118b599c7add..f4f9df3f48b73 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index a1fe4806e1b41..740943c51d797 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index 62057eb5bdb1c..5545411afce83 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -308,7 +308,7 @@ "Interpolation", "<", "Theme", - ">; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; security?: string | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"all\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"ascending\" | \"descending\" | \"other\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChange?: React.FormEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; field: (string & {}) | keyof ", + ">; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; security?: string | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"all\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"ascending\" | \"descending\" | \"other\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChange?: React.FormEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; width?: string | undefined; field: (string & {}) | keyof ", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -316,7 +316,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - "; width?: string | undefined; headers?: string | undefined; height?: string | number | undefined; readOnly?: boolean | undefined; render?: ((value: any, record: ", + "; headers?: string | undefined; height?: string | number | undefined; readOnly?: boolean | undefined; render?: ((value: any, record: ", { "pluginId": "savedObjectsManagement", "scope": "public", diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 8417bc3026b9d..d8cf9072a648c 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index bdea172e2fc56..c646452412e2f 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index c954fd3b8e81c..650778aae4685 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 610b35eb3796c..432819dc958f0 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 8705f70cfa038..c763bf90ca913 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index e41364276049e..4daad2c6f49aa 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index d17d034303083..dd5d669636916 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 18b2b17318a4e..fbfbb2053984d 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 478239e50c359..1014ad49c035d 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 1ef8d8cb3b202..7fcd2129e9be3 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 072d0088498e9..3760eb6e64025 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 87e7e26fb502b..e1c1e5b46f425 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 5045332e50984..11680d52d1422 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 777f3f2cd2474..65caa2629fb52 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 75203f0d86d18..c532ded539b90 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index f0d386cdc91c3..1e827ae9d9956 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index d95ed9d912e53..e30d26bfafcd6 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index c096a07d60621..c0a24bea9fdee 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index f9d333348fa49..00d32ab788246 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 029d6c24bb779..1e5ff46fc4b95 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index e42e600471a65..5c1e2a3480026 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -4155,7 +4155,7 @@ "label": "EntityType", "description": [], "signature": [ - "\"alerts\" | \"events\" | \"sessions\"" + "\"alerts\" | \"sessions\" | \"events\"" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/index.ts", "deprecated": false, diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index af92ce3760c64..6820ce59ef1e8 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 96e7b51af30e2..9d8ccf9a399b9 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index e900c9eb5f350..573f73426f516 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 886cd04d5e0ef..5d6d0231a8fa0 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 1ababb847dbe7..99db050152c50 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 46b2d3d7e0ef4..08de9368b8bb2 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 67a98838e2a3d..7a3c9899b622e 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 1e2e9fc12f0b1..4cd1716e48b0d 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index b9a1230c93e89..8d8dd15480a47 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index b04af2344e3a8..11d9e96185648 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index c02ba4e3750e6..cb3e9a6248dd2 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index ba792551e4a82..f45ef55b56bc3 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 58901250a8844..2dbcc74496ed7 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 8968fa1c0e8e8..945be76059785 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 40cd72c83b0d3..2b56a8cbefca4 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index eefb5f00928b2..3338f012588d5 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index f060dce54094b..522184e06a261 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 94b0f3b3666c1..c54885b86c1db 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 96b3042f13ca0..aae0969ee094d 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index ab6b4033c7b97..86c4e8752148d 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index f3eaed22cf2e7..0857e01754e07 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index d7a53ba32d9a2..4436877114b83 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index 06dd95c48d277..91f6ff2cb98a6 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -12503,7 +12503,7 @@ "label": "yLeftScale", "description": [], "signature": [ - "\"log\" | \"time\" | \"sqrt\" | \"linear\" | undefined" + "\"log\" | \"time\" | \"linear\" | \"sqrt\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -12517,7 +12517,7 @@ "label": "yRightScale", "description": [], "signature": [ - "\"log\" | \"time\" | \"sqrt\" | \"linear\" | undefined" + "\"log\" | \"time\" | \"linear\" | \"sqrt\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14529,7 +14529,7 @@ "label": "Operation", "description": [], "signature": [ - "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"cumulative_sum\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"moving_average\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\" | \"counter_rate\" | \"differences\" | \"formula\" | \"static_value\" | \"normalize_by_unit\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"filters\" | \"date_histogram\" | \"percentile\" | \"average\" | \"terms\" | \"cumulative_sum\" | \"moving_average\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\" | \"counter_rate\" | \"differences\" | \"formula\" | \"static_value\" | \"normalize_by_unit\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/operations.ts", "deprecated": false, @@ -14559,7 +14559,7 @@ "label": "OperationWithSourceField", "description": [], "signature": [ - "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"date_histogram\" | \"filters\" | \"terms\" | \"percentile\" | \"average\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\"" + "\"min\" | \"max\" | \"sum\" | \"median\" | \"count\" | \"range\" | \"filters\" | \"date_histogram\" | \"percentile\" | \"average\" | \"terms\" | \"unique_count\" | \"standard_deviation\" | \"percentile_rank\" | \"last_value\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/operations.ts", "deprecated": false, diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 1963c0f1bbea9..e82c7ca160215 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-03-16 +date: 2023-03-20 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx b/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx index 7ebfb02f64a45..9a37ac2816f6c 100644 --- a/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx +++ b/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx @@ -22,7 +22,7 @@ export default { const todosClient = new TodosClient(); const contentTypeRegistry = new ContentTypeRegistry(); -contentTypeRegistry.register({ id: 'todos', version: { latest: 'v1' } }); +contentTypeRegistry.register({ id: 'todos', version: { latest: 1 } }); const contentClient = new ContentClient((contentType: string) => { switch (contentType) { diff --git a/examples/content_management_examples/public/plugin.ts b/examples/content_management_examples/public/plugin.ts index 6e3aa020b4e0b..fddb1ff657c49 100644 --- a/examples/content_management_examples/public/plugin.ts +++ b/examples/content_management_examples/public/plugin.ts @@ -34,7 +34,7 @@ export class ContentManagementExamplesPlugin contentManagement.registry.register({ id: 'todos', version: { - latest: 'v1', + latest: 1, }, }); diff --git a/examples/content_management_examples/server/examples/todos/todos.ts b/examples/content_management_examples/server/examples/todos/todos.ts index 0526aacd85bf6..6addc5ed50148 100644 --- a/examples/content_management_examples/server/examples/todos/todos.ts +++ b/examples/content_management_examples/server/examples/todos/todos.ts @@ -34,7 +34,7 @@ export const registerTodoContentType = ({ id: TODO_CONTENT_ID, storage: new TodosStorage(), version: { - latest: 'v1', + latest: 1, }, }); }; diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts index 9f50cdee84e3f..d9b92518a39dd 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts @@ -10,7 +10,11 @@ export { ScopedClusterClient } from './src/scoped_cluster_client'; export { ClusterClient } from './src/cluster_client'; export { configureClient } from './src/configure_client'; export { type AgentStatsProvider, AgentManager, type NetworkAgent } from './src/agent_manager'; -export { getRequestDebugMeta, getErrorMessage } from './src/log_query_and_deprecation'; +export { + type RequestDebugMeta, + getRequestDebugMeta, + getErrorMessage, +} from './src/log_query_and_deprecation'; export { PRODUCT_RESPONSE_HEADER, DEFAULT_HEADERS, diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts index 1784fa7a08662..ad86ffb10ebfd 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts @@ -212,6 +212,7 @@ describe('configureClient', () => { logger, client, type: 'test', + apisToRedactInLogs: [], }); }); }); diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts index 2fd7a4d4a74bb..5f8d793b0a426 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts @@ -45,7 +45,8 @@ export const configureClient = ( ConnectionPool: ClusterConnectionPool, }); - instrumentEsQueryAndDeprecationLogger({ logger, client, type }); + const { apisToRedactInLogs = [] } = config; + instrumentEsQueryAndDeprecationLogger({ logger, client, type, apisToRedactInLogs }); return client; }; diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.test.ts index 3b5a28eb1e016..0bf8d61e8f465 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.test.ts @@ -96,13 +96,23 @@ describe('instrumentQueryAndDeprecationLogger', () => { } it('creates a query logger context based on the `type` parameter', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test123' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test123', + apisToRedactInLogs: [], + }); expect(logger.get).toHaveBeenCalledWith('query', 'test123'); }); describe('logs each query', () => { it('when request body is an object', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody({ seq_no_primary_term: true, @@ -120,7 +130,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('when request body is a string', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody( JSON.stringify({ @@ -140,7 +155,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('when request body is a buffer', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody( Buffer.from( @@ -162,7 +182,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('when request body is a readable stream', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody( Readable.from( @@ -184,7 +209,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('when request body is not defined', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody(); @@ -196,7 +226,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('properly encode queries', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ body: {}, @@ -217,7 +252,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs queries even in case of errors', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 500, @@ -248,7 +288,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs debug when the client emits an @elastic/elasticsearch error', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ body: {} }); client.diagnostic.emit('response', new errors.TimeoutError('message', response), response); @@ -259,7 +304,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs debug when the client emits an ResponseError returned by elasticsearch', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 400, @@ -285,7 +335,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs default error info when the error response body is empty', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); let response: DiagnosticResult = createApiResponse({ statusCode: 400, @@ -325,7 +380,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('adds meta information to logs', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); let response = createApiResponse({ statusCode: 400, @@ -407,7 +467,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs response size', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createResponseWithBody( { @@ -432,7 +497,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { describe('deprecation warnings from response headers', () => { it('does not log when no deprecation warning header is returned', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 200, @@ -458,7 +528,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('does not log when warning header comes from a warn-agent that is not elasticsearch', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 200, @@ -487,7 +562,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs error when the client receives an Elasticsearch error response for a deprecated request originating from a user', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 400, @@ -519,7 +599,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs warning when the client receives an Elasticsearch error response for a deprecated request originating from kibana', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 400, @@ -552,7 +637,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs error when the client receives an Elasticsearch success response for a deprecated request originating from a user', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 200, @@ -584,7 +674,12 @@ describe('instrumentQueryAndDeprecationLogger', () => { }); it('logs warning when the client receives an Elasticsearch success response for a deprecated request originating from kibana', () => { - instrumentEsQueryAndDeprecationLogger({ logger, client, type: 'test type' }); + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); const response = createApiResponse({ statusCode: 200, @@ -616,5 +711,287 @@ describe('instrumentQueryAndDeprecationLogger', () => { /Query:\n.*200\n.*GET \/_path\?hello\=dolly/ ); }); + + describe('Request body redaction on some APIs', () => { + it('redacts for an API in the extended list (path only)', () => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [{ path: '/foo' }], + }); + + const response = createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method: 'GET', + path: '/foo', + querystring: { hello: 'dolly' }, + body: { + seq_no_primary_term: true, + query: { + term: { user: 'kimchy' }, + }, + }, + }, + }); + + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + GET /foo?hello=dolly + [redacted]" + `); + }); + + it('redacts for an API that is contained by the declared path (path only)', () => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [{ path: '/foo' }], + }); + + const response = createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method: 'GET', + path: '/foo/something/something-else', + querystring: { hello: 'dolly' }, + body: { + seq_no_primary_term: true, + query: { + term: { user: 'kimchy' }, + }, + }, + }, + }); + + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + GET /foo/something/something-else?hello=dolly + [redacted]" + `); + }); + + it('redacts for an API in the extended list (method and path)', () => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [{ method: 'GET', path: '/foo' }], + }); + + const response = createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method: 'GET', + path: '/foo', + querystring: { hello: 'dolly' }, + body: { + seq_no_primary_term: true, + query: { + term: { user: 'kimchy' }, + }, + }, + }, + }); + + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + GET /foo?hello=dolly + [redacted]" + `); + }); + + it('does not redact for an API in the extended list when method does not match', () => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [{ method: 'PUT', path: '/foo' }], + }); + + const response = createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method: 'GET', + path: '/foo', + querystring: { hello: 'dolly' }, + body: { + seq_no_primary_term: true, + query: { + term: { user: 'kimchy' }, + }, + }, + }, + }); + + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + GET /foo?hello=dolly + {\\"seq_no_primary_term\\":true,\\"query\\":{\\"term\\":{\\"user\\":\\"kimchy\\"}}}" + `); + }); + + it('does not redact for an API in the extended list when path does not match', () => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [{ path: '/foo' }], + }); + + const response = createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method: 'GET', + path: '/bar', + querystring: { hello: 'dolly' }, + body: { + seq_no_primary_term: true, + query: { + term: { user: 'kimchy' }, + }, + }, + }, + }); + + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + GET /bar?hello=dolly + {\\"seq_no_primary_term\\":true,\\"query\\":{\\"term\\":{\\"user\\":\\"kimchy\\"}}}" + `); + }); + + describe('Known list', () => { + beforeEach(() => { + instrumentEsQueryAndDeprecationLogger({ + logger, + client, + type: 'test type', + apisToRedactInLogs: [], + }); + }); + + function createResponseWithPath(path: string, method: string = '*') { + return createApiResponse({ + body: {}, + statusCode: 200, + headers: {}, + params: { + method, + path, + querystring: { hello: 'dolly' }, + body: { super_secret: 'stuff' }, + }, + }); + } + + it('[*] /_security/', () => { + const response = createResponseWithPath('/_security/something'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + * /_security/something?hello=dolly + [redacted]" + `); + }); + + it('[*] /_xpack/security/', () => { + const response = createResponseWithPath('/_xpack/security/something'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + * /_xpack/security/something?hello=dolly + [redacted]" + `); + }); + + it('[POST] /_reindex', () => { + const response = createResponseWithPath('/_reindex', 'POST'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + POST /_reindex?hello=dolly + [redacted]" + `); + }); + + it('[PUT] /_watcher/watch', () => { + const response = createResponseWithPath('/_watcher/watch', 'PUT'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + PUT /_watcher/watch?hello=dolly + [redacted]" + `); + }); + + it('[PUT] /_xpack/watcher/watch', () => { + const response = createResponseWithPath('/_xpack/watcher/watch', 'PUT'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + PUT /_xpack/watcher/watch?hello=dolly + [redacted]" + `); + }); + + it('[PUT] /_snapshot/something', () => { + const response = createResponseWithPath('/_snapshot/something', 'PUT'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + PUT /_snapshot/something?hello=dolly + [redacted]" + `); + }); + + it('[PUT] /_logstash/pipeline/something', () => { + const response = createResponseWithPath('/_logstash/pipeline/something', 'PUT'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + PUT /_logstash/pipeline/something?hello=dolly + [redacted]" + `); + }); + + it('[POST] /_nodes/reload_secure_settings', () => { + const response = createResponseWithPath('/_nodes/reload_secure_settings', 'POST'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + POST /_nodes/reload_secure_settings?hello=dolly + [redacted]" + `); + }); + + it('[POST] /_nodes/*/reload_secure_settings', () => { + const response = createResponseWithPath('/_nodes/node-id/reload_secure_settings', 'POST'); + client.diagnostic.emit('response', null, response); + expect(loggingSystemMock.collect(logger).debug[0][0]).toMatchInlineSnapshot(` + "200 + POST /_nodes/node-id/reload_secure_settings?hello=dolly + [redacted]" + `); + }); + }); + }); }); }); diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts index 460ca0446f0fc..954baec201e45 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/log_query_and_deprecation.ts @@ -13,8 +13,62 @@ import { errors, DiagnosticResult, RequestBody, Client } from '@elastic/elastics import numeral from '@elastic/numeral'; import type { Logger } from '@kbn/logging'; import type { ElasticsearchErrorDetails } from '@kbn/es-errors'; +import type { ElasticsearchApiToRedactInLogs } from '@kbn/core-elasticsearch-server'; import { getEcsResponseLog } from './get_ecs_response_log'; +/** + * The logger-relevant request meta of an ES request + */ +export interface RequestDebugMeta { + /** + * The requested method + */ + method: string; + /** + * The requested endpoint + querystring + */ + url: string; + /** + * The request body (it may be redacted) + */ + body: string; + /** + * The status code of the response + */ + statusCode: number | null; +} + +/** + * Known list of APIs that should redact the request body in the logs + */ +const APIS_TO_REDACT_IN_LOGS: ElasticsearchApiToRedactInLogs[] = [ + { path: '/_security/' }, + { path: '/_xpack/security/' }, + { method: 'POST', path: '/_reindex' }, + { method: 'PUT', path: '/_watcher/watch' }, + { method: 'PUT', path: '/_xpack/watcher/watch' }, + { method: 'PUT', path: '/_snapshot/' }, + { method: 'PUT', path: '/_logstash/pipeline/' }, + { method: 'POST', path: '/_nodes/reload_secure_settings' }, + { method: 'POST', path: /\/_nodes\/.+\/reload_secure_settings/ }, +]; + +function shouldRedactBodyInLogs( + requestDebugMeta: RequestDebugMeta, + extendedList: ElasticsearchApiToRedactInLogs[] = [] +) { + return [...APIS_TO_REDACT_IN_LOGS, ...extendedList].some(({ path, method }) => { + if (!method || method === requestDebugMeta.method) { + if (typeof path === 'string') { + return requestDebugMeta.url.includes(path); + } else { + return path.test(requestDebugMeta.url); + } + } + return false; + }); +} + const convertQueryString = (qs: string | Record | undefined): string => { if (qs === undefined || typeof qs === 'string') { return qs ?? ''; @@ -58,35 +112,43 @@ function getContentLength(headers?: IncomingHttpHeaders): number | undefined { * * so it could be copy-pasted into the Dev console */ -function getResponseMessage(event: DiagnosticResult, bytesMsg: string): string { - const errorMeta = getRequestDebugMeta(event); - const body = errorMeta.body ? `\n${errorMeta.body}` : ''; - return `${errorMeta.statusCode}${bytesMsg}\n${errorMeta.method} ${errorMeta.url}${body}`; +function getResponseMessage( + event: DiagnosticResult, + bytesMsg: string, + apisToRedactInLogs: ElasticsearchApiToRedactInLogs[] +): string { + const debugMeta = getRequestDebugMeta(event, apisToRedactInLogs); + const body = debugMeta.body ? `\n${debugMeta.body}` : ''; + return `${debugMeta.statusCode}${bytesMsg}\n${debugMeta.method} ${debugMeta.url}${body}`; } /** * Returns stringified debug information from an Elasticsearch request event * useful for logging in case of an unexpected failure. */ -export function getRequestDebugMeta(event: DiagnosticResult): { - url: string; - body: string; - statusCode: number | null; - method: string; -} { +export function getRequestDebugMeta( + event: DiagnosticResult, + apisToRedactInLogs?: ElasticsearchApiToRedactInLogs[] +): RequestDebugMeta { const params = event.meta.request.params; // definition is wrong, `params.querystring` can be either a string or an object const querystring = convertQueryString(params.querystring); - return { + + const debugMeta: RequestDebugMeta = { url: `${params.path}${querystring ? `?${querystring}` : ''}`, body: params.body ? `${ensureString(params.body)}` : '', method: params.method, statusCode: event.statusCode!, }; + + // Some known APIs may contain sensitive information in the request body that we don't want to expose to the logs. + return shouldRedactBodyInLogs(debugMeta, apisToRedactInLogs) + ? { ...debugMeta, body: '[redacted]' } + : debugMeta; } /** HTTP Warning headers have the following syntax: - * (where warn-code is a three digit number) + * (where warn-code is a three-digit number) * This function tests if a warning comes from an Elasticsearch warn-agent * */ const isEsWarning = (warning: string) => /\d\d\d Elasticsearch-/.test(warning); @@ -95,10 +157,12 @@ export const instrumentEsQueryAndDeprecationLogger = ({ logger, client, type, + apisToRedactInLogs, }: { logger: Logger; client: Client; type: string; + apisToRedactInLogs: ElasticsearchApiToRedactInLogs[]; }) => { const queryLogger = logger.get('query', type); const deprecationLogger = logger.get('deprecation'); @@ -111,12 +175,14 @@ export const instrumentEsQueryAndDeprecationLogger = ({ let queryMsg = ''; if (error) { if (error instanceof errors.ResponseError) { - queryMsg = `${getResponseMessage(event, bytesMsg)} ${getErrorMessage(error)}`; + queryMsg = `${getResponseMessage(event, bytesMsg, apisToRedactInLogs)} ${getErrorMessage( + error + )}`; } else { queryMsg = getErrorMessage(error); } } else { - queryMsg = getResponseMessage(event, bytesMsg); + queryMsg = getResponseMessage(event, bytesMsg, apisToRedactInLogs); } queryLogger.debug(queryMsg, meta); @@ -137,7 +203,7 @@ export const instrumentEsQueryAndDeprecationLogger = ({ ? 'kibana' : 'user'; - // Strip the first 5 stack trace lines as these are irrelavent to finding the call site + // Strip the first 5 stack trace lines as these are irrelevant to finding the call site const stackTrace = new Error().stack?.split('\n').slice(5).join('\n'); deprecationLogger.debug( diff --git a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.test.ts b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.test.ts index b81683d1cc11f..45d88445df419 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.test.ts @@ -30,6 +30,7 @@ test('set correct defaults', () => { expect(configValue).toMatchInlineSnapshot(` ElasticsearchConfig { "apiVersion": "master", + "apisToRedactInLogs": Array [], "compression": false, "customHeaders": Object {}, "healthCheckDelay": "PT2.5S", diff --git a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts index bc2ec78acac06..bb022a22a63e8 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts @@ -13,7 +13,11 @@ import { Duration } from 'moment'; import { readFileSync } from 'fs'; import type { ServiceConfigDescriptor } from '@kbn/core-base-server-internal'; import type { ConfigDeprecationProvider } from '@kbn/config'; -import type { IElasticsearchConfig, ElasticsearchSslConfig } from '@kbn/core-elasticsearch-server'; +import type { + IElasticsearchConfig, + ElasticsearchSslConfig, + ElasticsearchApiToRedactInLogs, +} from '@kbn/core-elasticsearch-server'; import { getReservedHeaders } from './default_headers'; const hostURISchema = schema.uri({ scheme: ['http', 'https'] }); @@ -169,6 +173,13 @@ export const configSchema = schema.object({ }), schema.boolean({ defaultValue: false }) ), + apisToRedactInLogs: schema.arrayOf( + schema.object({ + path: schema.string(), + method: schema.maybe(schema.string()), + }), + { defaultValue: [] } + ), }); const deprecations: ConfigDeprecationProvider = () => [ @@ -402,6 +413,11 @@ export class ElasticsearchConfig implements IElasticsearchConfig { */ public readonly customHeaders: ElasticsearchConfigType['customHeaders']; + /** + * Extends the list of APIs that should be redacted in logs. + */ + public readonly apisToRedactInLogs: ElasticsearchApiToRedactInLogs[]; + constructor(rawConfig: ElasticsearchConfigType) { this.ignoreVersionMismatch = rawConfig.ignoreVersionMismatch; this.apiVersion = rawConfig.apiVersion; @@ -425,6 +441,7 @@ export class ElasticsearchConfig implements IElasticsearchConfig { this.idleSocketTimeout = rawConfig.idleSocketTimeout; this.compression = rawConfig.compression; this.skipStartupConnectionCheck = rawConfig.skipStartupConnectionCheck; + this.apisToRedactInLogs = rawConfig.apisToRedactInLogs; const { alwaysPresentCertificate, verificationMode } = rawConfig.ssl; const { key, keyPassphrase, certificate, certificateAuthorities } = readKeyAndCerts(rawConfig); diff --git a/packages/core/elasticsearch/core-elasticsearch-server/index.ts b/packages/core/elasticsearch/core-elasticsearch-server/index.ts index 0a810a0b65895..da71ac13c8ac0 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server/index.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server/index.ts @@ -22,6 +22,7 @@ export type { FakeRequest, ElasticsearchClientSslConfig, ElasticsearchClientConfig, + ElasticsearchApiToRedactInLogs, } from './src/client'; export type { diff --git a/packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts b/packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts index 8bd5003e903a6..4f61e4b07a864 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server/src/client/client_config.ts @@ -8,6 +8,23 @@ import type { Duration } from 'moment'; +/** + * Definition of an API that should redact the requested body in the logs + */ +export interface ElasticsearchApiToRedactInLogs { + /** + * The ES path. + * - If specified as a string, it'll be checked as `contains`. + * - If specified as a RegExp, it'll be tested against the path. + */ + path: string | RegExp; + /** + * HTTP method. + * If not provided, the path will be checked for all methods. + */ + method?: string; +} + /** * Configuration options to be used to create a {@link IClusterClient | cluster client} * @@ -32,6 +49,7 @@ export interface ElasticsearchClientConfig { requestTimeout?: Duration | number; caFingerprint?: string; ssl?: ElasticsearchClientSslConfig; + apisToRedactInLogs?: ElasticsearchApiToRedactInLogs[]; } /** diff --git a/packages/core/elasticsearch/core-elasticsearch-server/src/client/index.ts b/packages/core/elasticsearch/core-elasticsearch-server/src/client/index.ts index 377d836508989..b7901645a9d9b 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server/src/client/index.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server/src/client/index.ts @@ -19,4 +19,8 @@ export type { UnauthorizedErrorHandlerRetryResult, UnauthorizedErrorHandlerNotHandledResult, } from './unauthorized_error_handler'; -export type { ElasticsearchClientConfig, ElasticsearchClientSslConfig } from './client_config'; +export type { + ElasticsearchClientConfig, + ElasticsearchClientSslConfig, + ElasticsearchApiToRedactInLogs, +} from './client_config'; diff --git a/packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts b/packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts index ae1dc281b29fb..8ad2faff90249 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server/src/elasticsearch_config.ts @@ -7,6 +7,7 @@ */ import type { Duration } from 'moment'; +import type { ElasticsearchApiToRedactInLogs } from './client'; /** * @public @@ -139,6 +140,11 @@ export interface IElasticsearchConfig { * either `certificate` or `full`. */ readonly ssl: ElasticsearchSslConfig; + + /** + * Extends the list of APIs that should be redacted in logs. + */ + readonly apisToRedactInLogs: ElasticsearchApiToRedactInLogs[]; } /** diff --git a/packages/kbn-object-versioning/lib/index.ts b/packages/kbn-object-versioning/lib/index.ts index 0def44895f82e..9e5c1c3cdbf12 100644 --- a/packages/kbn-object-versioning/lib/index.ts +++ b/packages/kbn-object-versioning/lib/index.ts @@ -7,6 +7,7 @@ */ export { initTransform } from './object_transform'; + export { getTransforms as getContentManagmentServicesTransforms, compile as compileServiceDefinitions, diff --git a/packages/kbn-object-versioning/lib/utils.test.ts b/packages/kbn-object-versioning/lib/utils.test.ts index d69d880af6da6..a10bc8e84a7dd 100644 --- a/packages/kbn-object-versioning/lib/utils.test.ts +++ b/packages/kbn-object-versioning/lib/utils.test.ts @@ -12,6 +12,8 @@ describe('utils', () => { describe('validateVersion()', () => { [ { input: '123', isValid: true, expected: 123 }, + { input: '1111111111111111111111111', isValid: true, expected: 1111111111111111111111111 }, + { input: '111111111111.1111111111111', isValid: false, expected: null }, { input: 123, isValid: true, expected: 123 }, { input: 1.23, isValid: false, expected: null }, { input: '123a', isValid: false, expected: null }, diff --git a/packages/kbn-object-versioning/lib/utils.ts b/packages/kbn-object-versioning/lib/utils.ts index 70c6eaee0054c..e5531578c55bb 100644 --- a/packages/kbn-object-versioning/lib/utils.ts +++ b/packages/kbn-object-versioning/lib/utils.ts @@ -29,7 +29,9 @@ export const validateObj = (obj: unknown, objSchema?: Type): ValidationErro } }; -export const validateVersion = (version: unknown): { result: boolean; value: Version | null } => { +export const validateVersion = ( + version: unknown +): { result: true; value: Version } | { result: false; value: null } => { if (typeof version === 'string') { const isValid = /^\d+$/.test(version); if (isValid) { @@ -42,9 +44,15 @@ export const validateVersion = (version: unknown): { result: boolean; value: Ver return { result: false, value: null }; } else { const isValid = Number.isInteger(version); + if (isValid) { + return { + result: true, + value: version as Version, + }; + } return { - result: isValid, - value: isValid ? (version as Version) : null, + result: false, + value: null, }; } }; diff --git a/src/plugins/content_management/common/index.ts b/src/plugins/content_management/common/index.ts index d7d8a93c1209b..5cdb5ba06f4c7 100644 --- a/src/plugins/content_management/common/index.ts +++ b/src/plugins/content_management/common/index.ts @@ -18,5 +18,3 @@ export type { DeleteIn, SearchIn, } from './rpc'; - -export type { Version } from './types'; diff --git a/src/plugins/content_management/common/rpc/bulk_get.ts b/src/plugins/content_management/common/rpc/bulk_get.ts index c3fff0ba6a804..06971c0e1c799 100644 --- a/src/plugins/content_management/common/rpc/bulk_get.ts +++ b/src/plugins/content_management/common/rpc/bulk_get.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/rpc/constants.ts b/src/plugins/content_management/common/rpc/constants.ts index 8a0e3871f13bd..e88ab0f6df689 100644 --- a/src/plugins/content_management/common/rpc/constants.ts +++ b/src/plugins/content_management/common/rpc/constants.ts @@ -6,19 +6,17 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; - -import { validateVersion } from '../utils'; +import { validateVersion } from '@kbn/object-versioning/lib/utils'; export const procedureNames = ['get', 'bulkGet', 'create', 'update', 'delete', 'search'] as const; export type ProcedureName = typeof procedureNames[number]; -export const versionSchema = schema.string({ +export const versionSchema = schema.number({ validate: (value) => { - try { - validateVersion(value); - } catch (e) { - return 'must follow the pattern [v${number}]'; + const { result } = validateVersion(value); + if (!result) { + return 'must be an integer'; } }, }); diff --git a/src/plugins/content_management/common/rpc/create.ts b/src/plugins/content_management/common/rpc/create.ts index d8dfd308bec79..90d797603d16d 100644 --- a/src/plugins/content_management/common/rpc/create.ts +++ b/src/plugins/content_management/common/rpc/create.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/rpc/delete.ts b/src/plugins/content_management/common/rpc/delete.ts index b76d97c399f93..83f72b7e541c2 100644 --- a/src/plugins/content_management/common/rpc/delete.ts +++ b/src/plugins/content_management/common/rpc/delete.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/rpc/get.ts b/src/plugins/content_management/common/rpc/get.ts index ab885c4966b25..895e4a25de792 100644 --- a/src/plugins/content_management/common/rpc/get.ts +++ b/src/plugins/content_management/common/rpc/get.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/rpc/search.ts b/src/plugins/content_management/common/rpc/search.ts index 4172930bd0830..05305b092f0ae 100644 --- a/src/plugins/content_management/common/rpc/search.ts +++ b/src/plugins/content_management/common/rpc/search.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/rpc/update.ts b/src/plugins/content_management/common/rpc/update.ts index a21cc24a358be..8d1c74cf706f3 100644 --- a/src/plugins/content_management/common/rpc/update.ts +++ b/src/plugins/content_management/common/rpc/update.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { schema } from '@kbn/config-schema'; -import type { Version } from '../types'; +import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; diff --git a/src/plugins/content_management/common/types.ts b/src/plugins/content_management/common/types.ts deleted file mode 100644 index 87eb98158b6df..0000000000000 --- a/src/plugins/content_management/common/types.ts +++ /dev/null @@ -1,9 +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 - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export type Version = `v${number}`; diff --git a/src/plugins/content_management/common/utils.test.ts b/src/plugins/content_management/common/utils.test.ts deleted file mode 100644 index 7a4e1c1098b41..0000000000000 --- a/src/plugins/content_management/common/utils.test.ts +++ /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 - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { validateVersion } from './utils'; - -describe('utils', () => { - describe('validateVersion', () => { - const isValid = (version: unknown): boolean => { - try { - validateVersion(version); - return true; - } catch (e) { - return false; - } - }; - - [ - { - version: 'v1', - expected: true, - }, - { - version: 'v689584563', - expected: true, - }, - { - version: 'v0', // Invalid: must be >= 1 - expected: false, - }, - { - version: 'av0', - expected: false, - }, - { - version: '1', - expected: false, - }, - { - version: 'vv1', - expected: false, - }, - ].forEach(({ version, expected }) => { - test(`should validate [${version}] version`, () => { - expect(isValid(version)).toBe(expected); - }); - }); - - test('should return the version number', () => { - expect(validateVersion('v7')).toBe(7); - }); - }); -}); diff --git a/src/plugins/content_management/common/utils.ts b/src/plugins/content_management/common/utils.ts deleted file mode 100644 index 9c4d25a6194cf..0000000000000 --- a/src/plugins/content_management/common/utils.ts +++ /dev/null @@ -1,26 +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 - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -/** Utility to validate that a content version follows the pattern `v${number}` */ -export const validateVersion = (version: unknown): number => { - if (typeof version !== 'string') { - throw new Error(`Invalid version [${version}]. Must follow the pattern [v$\{number\}]`); - } - - if (/^v\d+$/.test(version) === false) { - throw new Error(`Invalid version [${version}]. Must follow the pattern [v$\{number\}]`); - } - - const versionNumber = parseInt(version.substring(1), 10); - - if (versionNumber < 1) { - throw new Error(`Version must be >= 1`); - } - - return versionNumber; -}; diff --git a/src/plugins/content_management/public/content_client/content_client.test.ts b/src/plugins/content_management/public/content_client/content_client.test.ts index ec733f7c8d331..a654314fd1533 100644 --- a/src/plugins/content_management/public/content_client/content_client.test.ts +++ b/src/plugins/content_management/public/content_client/content_client.test.ts @@ -18,7 +18,7 @@ const setup = () => { const contentTypeRegistry = new ContentTypeRegistry(); contentTypeRegistry.register({ id: 'testType', - version: { latest: 'v3' }, + version: { latest: 3 }, }); const contentClient = new ContentClient(() => crudClient, contentTypeRegistry); return { crudClient, contentClient, contentTypeRegistry }; @@ -31,27 +31,28 @@ describe('#get', () => { const output = { test: 'test' }; crudClient.get.mockResolvedValueOnce(output); expect(await contentClient.get(input)).toEqual(output); - expect(crudClient.get).toBeCalledWith({ ...input, version: 'v3' }); // latest version added + expect(crudClient.get).toBeCalledWith({ ...input, version: 3 }); // latest version added }); it('does not add the latest version if one is passed', async () => { const { crudClient, contentClient } = setup(); - const input: GetIn = { id: 'test', contentTypeId: 'testType', version: 'v1' }; + const input: GetIn = { id: 'test', contentTypeId: 'testType', version: 1 }; await contentClient.get(input); expect(crudClient.get).toBeCalledWith(input); }); it('throws if version is not valid', async () => { const { contentClient } = setup(); - let input = { id: 'test', contentTypeId: 'testType', version: 'vv' }; // Invalid format + let input = { id: 'test', contentTypeId: 'testType', version: 'foo' }; // Invalid format await expect(async () => { contentClient.get(input as any); - }).rejects.toThrowError('Invalid version [vv]. Must follow the pattern [v${number}]'); + }).rejects.toThrowError('Invalid version [foo]. Must be an integer.'); - input = { id: 'test', contentTypeId: 'testType', version: 'v4' }; // Latest version is v3 + // @ts-expect-error + input = { id: 'test', contentTypeId: 'testType', version: 4 }; // Latest version is 3 await expect(async () => { contentClient.get(input as any); - }).rejects.toThrowError('Invalid version [v4]. Latest version is [v3]'); + }).rejects.toThrowError('Invalid version [4]. Latest version is [3]'); }); it('calls rpcClient.get$ with input and returns output', async () => { @@ -84,12 +85,12 @@ describe('#create', () => { crudClient.create.mockResolvedValueOnce(output); expect(await contentClient.create(input)).toEqual(output); - expect(crudClient.create).toBeCalledWith({ ...input, version: 'v3' }); // latest version added + expect(crudClient.create).toBeCalledWith({ ...input, version: 3 }); // latest version added }); it('does not add the latest version if one is passed', async () => { const { crudClient, contentClient } = setup(); - const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' }, version: 'v1' }; + const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' }, version: 1 }; await contentClient.create(input); expect(crudClient.create).toBeCalledWith(input); }); @@ -107,7 +108,7 @@ describe('#update', () => { crudClient.update.mockResolvedValueOnce(output); expect(await contentClient.update(input)).toEqual(output); - expect(crudClient.update).toBeCalledWith({ ...input, version: 'v3' }); // latest version added + expect(crudClient.update).toBeCalledWith({ ...input, version: 3 }); // latest version added }); it('does not add the latest version if one is passed', async () => { @@ -117,7 +118,7 @@ describe('#update', () => { contentTypeId: 'testType', id: 'test', data: { foo: 'bar' }, - version: 'v1', + version: 1, }; await contentClient.update(input); expect(crudClient.update).toBeCalledWith(input); @@ -132,12 +133,12 @@ describe('#delete', () => { crudClient.delete.mockResolvedValueOnce(output); expect(await contentClient.delete(input)).toEqual(output); - expect(crudClient.delete).toBeCalledWith({ ...input, version: 'v3' }); // latest version added + expect(crudClient.delete).toBeCalledWith({ ...input, version: 3 }); // latest version added }); it('does not add the latest version if one is passed', async () => { const { crudClient, contentClient } = setup(); - const input: DeleteIn = { contentTypeId: 'testType', id: 'test', version: 'v1' }; + const input: DeleteIn = { contentTypeId: 'testType', id: 'test', version: 1 }; await contentClient.delete(input); expect(crudClient.delete).toBeCalledWith(input); }); @@ -150,12 +151,12 @@ describe('#search', () => { const output = { hits: [{ id: 'test' }] }; crudClient.search.mockResolvedValueOnce(output); expect(await contentClient.search(input)).toEqual(output); - expect(crudClient.search).toBeCalledWith({ ...input, version: 'v3' }); // latest version added + expect(crudClient.search).toBeCalledWith({ ...input, version: 3 }); // latest version added }); it('does not add the latest version if one is passed', async () => { const { crudClient, contentClient } = setup(); - const input: SearchIn = { contentTypeId: 'testType', query: {}, version: 'v1' }; + const input: SearchIn = { contentTypeId: 'testType', query: {}, version: 1 }; await contentClient.search(input); expect(crudClient.search).toBeCalledWith(input); }); diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 8e3a1e4aa462e..ae8240ccf5562 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -7,10 +7,11 @@ */ import { QueryClient } from '@tanstack/react-query'; +import { validateVersion } from '@kbn/object-versioning/lib/utils'; +import type { Version } from '@kbn/object-versioning'; import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; -import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn, Version } from '../../common'; -import { validateVersion } from '../../common/utils'; +import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; import type { ContentTypeRegistry } from '../registry'; export const queryKeyBuilder = { @@ -35,9 +36,13 @@ const addVersion = ( const version = input.version ?? contentType.version.latest; - const versionNumber = validateVersion(version); + const { result, value } = validateVersion(version); - if (versionNumber > parseInt(contentType.version.latest.substring(1), 10)) { + if (!result) { + throw new Error(`Invalid version [${version}]. Must be an integer.`); + } + + if (value > contentType.version.latest) { throw new Error( `Invalid version [${version}]. Latest version is [${contentType.version.latest}]` ); diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx index 8e1a1fecd32d3..6f19801c2c376 100644 --- a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx @@ -24,7 +24,7 @@ const setup = () => { const contentTypeRegistry = new ContentTypeRegistry(); contentTypeRegistry.register({ id: 'testType', - version: { latest: 'v3' }, + version: { latest: 3 }, }); const contentClient = new ContentClient(() => crudClient, contentTypeRegistry); @@ -42,7 +42,7 @@ const setup = () => { describe('useCreateContentMutation', () => { test('should call rpcClient.create with input and resolve with output', async () => { const { Wrapper, crudClient } = setup(); - const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' }, version: 'v2' }; + const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' }, version: 2 }; const output = { test: 'test' }; crudClient.create.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useCreateContentMutation(), { wrapper: Wrapper }); @@ -61,7 +61,7 @@ describe('useUpdateContentMutation', () => { contentTypeId: 'testType', id: 'test', data: { foo: 'bar' }, - version: 'v2', + version: 2, }; const output = { test: 'test' }; crudClient.update.mockResolvedValueOnce(output); @@ -77,7 +77,7 @@ describe('useUpdateContentMutation', () => { describe('useDeleteContentMutation', () => { test('should call rpcClient.delete with input and resolve with output', async () => { const { Wrapper, crudClient } = setup(); - const input: DeleteIn = { contentTypeId: 'testType', id: 'test', version: 'v2' }; + const input: DeleteIn = { contentTypeId: 'testType', id: 'test', version: 2 }; const output = { test: 'test' }; crudClient.delete.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useDeleteContentMutation(), { wrapper: Wrapper }); diff --git a/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx index 10a291e486030..59c04ede3ab42 100644 --- a/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx +++ b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx @@ -20,7 +20,7 @@ const setup = () => { const contentTypeRegistry = new ContentTypeRegistry(); contentTypeRegistry.register({ id: 'testType', - version: { latest: 'v2' }, + version: { latest: 2 }, }); const contentClient = new ContentClient(() => crudClient, contentTypeRegistry); @@ -38,7 +38,7 @@ const setup = () => { describe('useGetContentQuery', () => { test('should call rpcClient.get with input and resolve with output', async () => { const { crudClient, Wrapper } = setup(); - const input: GetIn = { id: 'test', contentTypeId: 'testType', version: 'v2' }; + const input: GetIn = { id: 'test', contentTypeId: 'testType', version: 2 }; const output = { test: 'test' }; crudClient.get.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useGetContentQuery(input), { wrapper: Wrapper }); @@ -50,7 +50,7 @@ describe('useGetContentQuery', () => { describe('useSearchContentQuery', () => { test('should call rpcClient.search with input and resolve with output', async () => { const { crudClient, Wrapper } = setup(); - const input: SearchIn = { contentTypeId: 'testType', query: {}, version: 'v2' }; + const input: SearchIn = { contentTypeId: 'testType', query: {}, version: 2 }; const output = { hits: [{ id: 'test' }] }; crudClient.search.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useSearchContentQuery(input), { diff --git a/src/plugins/content_management/public/registry/content_type.test.ts b/src/plugins/content_management/public/registry/content_type.test.ts index ba7d43941bdc3..096144319a996 100644 --- a/src/plugins/content_management/public/registry/content_type.test.ts +++ b/src/plugins/content_management/public/registry/content_type.test.ts @@ -10,7 +10,7 @@ import { ContentType } from './content_type'; import type { ContentTypeDefinition } from './content_type_definition'; test('create a content type with just an id', () => { - const type = new ContentType({ id: 'test', version: { latest: 'v1' } }); + const type = new ContentType({ id: 'test', version: { latest: 1 } }); expect(type.id).toBe('test'); expect(type.name).toBe('test'); @@ -24,7 +24,7 @@ test('create a content type with all the full definition', () => { name: 'Test', icon: 'test', description: 'Test description', - version: { latest: 'v1' }, + version: { latest: 1 }, }; const type = new ContentType(definition); diff --git a/src/plugins/content_management/public/registry/content_type_definition.ts b/src/plugins/content_management/public/registry/content_type_definition.ts index 96560b64ed7b7..792cd589f67e2 100644 --- a/src/plugins/content_management/public/registry/content_type_definition.ts +++ b/src/plugins/content_management/public/registry/content_type_definition.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { Version } from '../../common'; +import type { Version } from '@kbn/object-versioning'; import type { CrudClient } from '../crud_client'; /** diff --git a/src/plugins/content_management/public/registry/registry.test.ts b/src/plugins/content_management/public/registry/registry.test.ts index 33f3531b79060..4ac29a2b19486 100644 --- a/src/plugins/content_management/public/registry/registry.test.ts +++ b/src/plugins/content_management/public/registry/registry.test.ts @@ -15,7 +15,7 @@ beforeEach(() => { }); const versionInfo = { - latest: 'v2', + latest: 2, } as const; test('registering a content type', () => { @@ -45,12 +45,21 @@ test('registering already registered content type throws', () => { ).toThrowErrorMatchingInlineSnapshot(`"Content type with id \\"test\\" already registered."`); }); +test('registering string number version converts it to number', () => { + registry.register({ + id: 'test', + version: { latest: '123' }, + } as any); + + expect(registry.get('test')?.version).toEqual({ latest: 123 }); +}); + test('registering without version throws', () => { expect(() => { registry.register({ id: 'test', } as any); - }).toThrowError('Invalid version [undefined]. Must follow the pattern [v${number}]'); + }).toThrowError('Invalid version [undefined]. Must be an integer.'); }); test('registering invalid version throws', () => { @@ -61,13 +70,13 @@ test('registering invalid version throws', () => { latest: 'bad', }, } as any); - }).toThrowError('Invalid version [bad]. Must follow the pattern [v${number}]'); + }).toThrowError('Invalid version [bad]. Must be an integer.'); expect(() => { registry.register({ id: 'test', version: { - latest: 'v0', + latest: 0, }, }); }).toThrowError('Version must be >= 1'); diff --git a/src/plugins/content_management/public/registry/registry.ts b/src/plugins/content_management/public/registry/registry.ts index 1573455021d77..97020f205843f 100644 --- a/src/plugins/content_management/public/registry/registry.ts +++ b/src/plugins/content_management/public/registry/registry.ts @@ -6,9 +6,10 @@ * Side Public License, v 1. */ +import { validateVersion } from '@kbn/object-versioning/lib/utils'; + import type { ContentTypeDefinition } from './content_type_definition'; import { ContentType } from './content_type'; -import { validateVersion } from '../../common/utils'; export class ContentTypeRegistry { private readonly types: Map = new Map(); @@ -18,9 +19,19 @@ export class ContentTypeRegistry { throw new Error(`Content type with id "${definition.id}" already registered.`); } - validateVersion(definition.version?.latest); + const { result, value } = validateVersion(definition.version?.latest); + if (!result) { + throw new Error(`Invalid version [${definition.version?.latest}]. Must be an integer.`); + } + + if (value < 1) { + throw new Error(`Version must be >= 1`); + } - const type = new ContentType(definition); + const type = new ContentType({ + ...definition, + version: { ...definition.version, latest: value }, + }); this.types.set(type.id, type); return type; diff --git a/src/plugins/content_management/server/core/content_type.ts b/src/plugins/content_management/server/core/content_type.ts index 5853cd3e77556..407bb945dd724 100644 --- a/src/plugins/content_management/server/core/content_type.ts +++ b/src/plugins/content_management/server/core/content_type.ts @@ -36,4 +36,8 @@ export class ContentType { public get crud() { return this.contentCrud; } + + public get version() { + return this._definition.version; + } } diff --git a/src/plugins/content_management/server/core/core.test.ts b/src/plugins/content_management/server/core/core.test.ts index a988bd20b9839..220f33e009333 100644 --- a/src/plugins/content_management/server/core/core.test.ts +++ b/src/plugins/content_management/server/core/core.test.ts @@ -40,8 +40,8 @@ const setup = ({ registerFooType = false }: { registerFooType?: boolean } = {}) const ctx: StorageContext = { requestHandlerContext: {} as any, version: { - latest: 'v1', - request: 'v1', + latest: 1, + request: 1, }, utils: { getTransforms: jest.fn(), @@ -54,7 +54,7 @@ const setup = ({ registerFooType = false }: { registerFooType?: boolean } = {}) id: FOO_CONTENT_ID, storage: createMemoryStorage(), version: { - latest: 'v2', + latest: 2, }, }; const cleanUp = () => { @@ -107,7 +107,24 @@ describe('Content Core', () => { // Make sure the "register" exposed by the api is indeed registring // the content into our "contentRegistry" instance expect(contentRegistry.isContentRegistered(FOO_CONTENT_ID)).toBe(true); - expect(contentRegistry.getDefinition(FOO_CONTENT_ID)).toBe(contentDefinition); + expect(contentRegistry.getDefinition(FOO_CONTENT_ID)).toEqual(contentDefinition); + + cleanUp(); + }); + + test('should convert the latest version to number if string is passed', () => { + const { coreSetup, cleanUp, contentDefinition } = setup(); + + const { + contentRegistry, + api: { register }, + } = coreSetup; + + register({ ...contentDefinition, version: { latest: '123' } } as any); + + expect(contentRegistry.getContentType(contentDefinition.id).version).toEqual({ + latest: 123, + }); cleanUp(); }); @@ -124,10 +141,10 @@ describe('Content Core', () => { expect(() => { register({ ...contentDefinition, version: undefined } as any); - }).toThrowError('Invalid version [undefined]. Must follow the pattern [v${number}]'); + }).toThrowError('Invalid version [undefined]. Must be an integer.'); expect(() => { - register({ ...contentDefinition, version: { latest: 'v0' } }); + register({ ...contentDefinition, version: { latest: 0 } }); }).toThrowError('Version must be >= 1'); cleanUp(); diff --git a/src/plugins/content_management/server/core/registry.ts b/src/plugins/content_management/server/core/registry.ts index f75005c7c2b59..6537dae320455 100644 --- a/src/plugins/content_management/server/core/registry.ts +++ b/src/plugins/content_management/server/core/registry.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { validateVersion } from '../../common/utils'; +import { validateVersion } from '@kbn/object-versioning/lib/utils'; import { ContentType } from './content_type'; import { EventBus } from './event_bus'; import type { ContentStorage, ContentTypeDefinition } from './types'; @@ -27,9 +27,19 @@ export class ContentRegistry { throw new Error(`Content [${definition.id}] is already registered`); } - validateVersion(definition.version?.latest); + const { result, value } = validateVersion(definition.version?.latest); + if (!result) { + throw new Error(`Invalid version [${definition.version?.latest}]. Must be an integer.`); + } + + if (value < 1) { + throw new Error(`Version must be >= 1`); + } - const contentType = new ContentType(definition, this.eventBus); + const contentType = new ContentType( + { ...definition, version: { ...definition.version, latest: value } }, + this.eventBus + ); this.types.set(contentType.id, contentType); } diff --git a/src/plugins/content_management/server/core/types.ts b/src/plugins/content_management/server/core/types.ts index fad08ca6f6c1e..2489c6f3a3def 100644 --- a/src/plugins/content_management/server/core/types.ts +++ b/src/plugins/content_management/server/core/types.ts @@ -7,15 +7,14 @@ */ import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; -import type { ContentManagementGetTransformsFn } from '@kbn/object-versioning'; -import type { Version as LegacyVersion } from '../../common'; +import type { ContentManagementGetTransformsFn, Version } from '@kbn/object-versioning'; /** Context that is sent to all storage instance methods */ export interface StorageContext { requestHandlerContext: RequestHandlerContext; version: { - request: LegacyVersion; - latest: LegacyVersion; + request: Version; + latest: Version; }; utils: { getTransforms: ContentManagementGetTransformsFn; @@ -48,6 +47,6 @@ export interface ContentTypeDefinition bulkGet()', () => { describe('Input/Output validation', () => { const ids = ['123', '456']; - const validInput = { contentTypeId: 'foo', ids, version: 'v1' }; + const validInput = { contentTypeId: 'foo', ids, version: 1 }; /** * These tests are for the procedure call itself. Every RPC needs to declare in/out schema @@ -50,11 +50,10 @@ describe('RPC -> bulkGet()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK }, { input: omit(validInput, 'ids'), @@ -96,7 +95,7 @@ describe('RPC -> bulkGet()', () => { { contentTypeId: 'foo', ids: ['123'], - version: 'v1', + version: 1, options: { any: 'object' }, }, inputSchema @@ -107,7 +106,7 @@ describe('RPC -> bulkGet()', () => { error = validate( { contentTypeId: 'foo', - version: 'v1', + version: 1, ids: ['123'], options: 123, // Not an object }, @@ -157,7 +156,7 @@ describe('RPC -> bulkGet()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -179,7 +178,7 @@ describe('RPC -> bulkGet()', () => { const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, - version: 'v1', + version: 1, ids: ['123', '456'], }); @@ -192,8 +191,8 @@ describe('RPC -> bulkGet()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -218,16 +217,16 @@ describe('RPC -> bulkGet()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, ids: ['123', '456'], - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, ids: ['1234'], version: 'v1' }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, ids: ['1234'], version: 1 }); const [[storageContext]] = storage.bulkGet.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/create.test.ts b/src/plugins/content_management/server/rpc/procedures/create.test.ts index 2552f023e8364..6e92501b70c25 100644 --- a/src/plugins/content_management/server/rpc/procedures/create.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/create.test.ts @@ -34,7 +34,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> create()', () => { describe('Input/Output validation', () => { - const validInput = { contentTypeId: 'foo', version: 'v1', data: { title: 'hello' } }; + const validInput = { contentTypeId: 'foo', version: 1, data: { title: 'hello' } }; test('should validate the input', () => { [ @@ -45,11 +45,10 @@ describe('RPC -> create()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK }, { input: omit(validInput, 'data'), @@ -83,7 +82,7 @@ describe('RPC -> create()', () => { { contentTypeId: 'foo', data: { title: 'hello' }, - version: 'v1', + version: 1, options: { any: 'object' }, }, inputSchema @@ -95,7 +94,7 @@ describe('RPC -> create()', () => { { contentTypeId: 'foo', data: { title: 'hello' }, - version: 'v1', + version: 1, options: 123, // Not an object }, inputSchema @@ -130,7 +129,7 @@ describe('RPC -> create()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -152,7 +151,7 @@ describe('RPC -> create()', () => { const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, - version: 'v1', + version: 1, data: { title: 'Hello' }, }); @@ -165,8 +164,8 @@ describe('RPC -> create()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -191,16 +190,16 @@ describe('RPC -> create()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: { title: 'Hello' }, - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: { title: 'Hello' }, version: 'v1' }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: { title: 'Hello' }, version: 1 }); const [[storageContext]] = storage.create.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/delete.test.ts b/src/plugins/content_management/server/rpc/procedures/delete.test.ts index 1463410aae9c3..0d227be530453 100644 --- a/src/plugins/content_management/server/rpc/procedures/delete.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/delete.test.ts @@ -34,7 +34,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> delete()', () => { describe('Input/Output validation', () => { - const validInput = { contentTypeId: 'foo', id: '123', version: 'v1' }; + const validInput = { contentTypeId: 'foo', id: '123', version: 1 }; test('should validate that a contentTypeId and an id is passed', () => { [ @@ -53,11 +53,10 @@ describe('RPC -> delete()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); @@ -79,7 +78,7 @@ describe('RPC -> delete()', () => { { contentTypeId: 'foo', id: '123', - version: 'v1', + version: 1, options: { any: 'object' }, }, inputSchema @@ -91,7 +90,7 @@ describe('RPC -> delete()', () => { { contentTypeId: 'foo', id: '123', - version: 'v1', + version: 1, options: 123, // Not an object }, inputSchema @@ -126,7 +125,7 @@ describe('RPC -> delete()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -146,7 +145,7 @@ describe('RPC -> delete()', () => { const expected = 'DeleteResult'; storage.delete.mockResolvedValueOnce(expected); - const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, version: 'v1', id: '1234' }); + const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, version: 1, id: '1234' }); expect(result).toEqual({ contentTypeId: FOO_CONTENT_ID, @@ -157,8 +156,8 @@ describe('RPC -> delete()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -183,16 +182,16 @@ describe('RPC -> delete()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 'v1' }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 1 }); const [[storageContext]] = storage.delete.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/get.test.ts b/src/plugins/content_management/server/rpc/procedures/get.test.ts index 53b0f0596485d..e6934fb7123a0 100644 --- a/src/plugins/content_management/server/rpc/procedures/get.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/get.test.ts @@ -34,7 +34,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> get()', () => { describe('Input/Output validation', () => { - const validInput = { contentTypeId: 'foo', id: '123', version: 'v1' }; + const validInput = { contentTypeId: 'foo', id: '123', version: 1 }; test('should validate that a contentTypeId and an id is passed', () => { [ @@ -53,11 +53,10 @@ describe('RPC -> get()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); @@ -79,7 +78,7 @@ describe('RPC -> get()', () => { { contentTypeId: 'foo', id: '123', - version: 'v1', + version: 1, options: { any: 'object' }, }, inputSchema @@ -91,7 +90,7 @@ describe('RPC -> get()', () => { { contentTypeId: 'foo', id: '123', - version: 'v1', + version: 1, options: 123, // Not an object }, inputSchema @@ -126,7 +125,7 @@ describe('RPC -> get()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -146,7 +145,7 @@ describe('RPC -> get()', () => { const expected = 'GetResult'; storage.get.mockResolvedValueOnce(expected); - const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 'v1' }); + const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 1 }); expect(result).toEqual({ contentTypeId: FOO_CONTENT_ID, @@ -157,8 +156,8 @@ describe('RPC -> get()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -183,16 +182,16 @@ describe('RPC -> get()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 'v1' }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 1 }); const [[storageContext]] = storage.get.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/search.test.ts b/src/plugins/content_management/server/rpc/procedures/search.test.ts index b23a4b401a44b..c96a9f304aa55 100644 --- a/src/plugins/content_management/server/rpc/procedures/search.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/search.test.ts @@ -35,7 +35,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> search()', () => { describe('Input/Output validation', () => { const query = { title: 'hello' }; - const validInput = { contentTypeId: 'foo', version: 'v1', query }; + const validInput = { contentTypeId: 'foo', version: 1, query }; test('should validate that a contentTypeId and "query" object is passed', () => { [ @@ -46,11 +46,14 @@ describe('RPC -> search()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK + }, + { + input: { ...validInput, version: 'foo' }, // invalid version format + expectedError: '[version]: expected value of type [number] but got [string]', }, { input: omit(validInput, 'query'), @@ -84,7 +87,7 @@ describe('RPC -> search()', () => { { contentTypeId: 'foo', query: { title: 'hello' }, - version: 'v1', + version: 1, options: { any: 'object' }, }, inputSchema @@ -95,7 +98,7 @@ describe('RPC -> search()', () => { error = validate( { contentTypeId: 'foo', - version: 'v1', + version: 1, query: { title: 'hello' }, options: 123, // Not an object }, @@ -145,7 +148,7 @@ describe('RPC -> search()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -167,7 +170,7 @@ describe('RPC -> search()', () => { const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, - version: 'v1', // version in request + version: 1, // version in request query: { title: 'Hello' }, }); @@ -180,8 +183,8 @@ describe('RPC -> search()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -206,16 +209,16 @@ describe('RPC -> search()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, query: { title: 'Hello' }, - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, query: { title: 'Hello' }, version: 'v1' }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, query: { title: 'Hello' }, version: 1 }); const [[storageContext]] = storage.search.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/update.test.ts b/src/plugins/content_management/server/rpc/procedures/update.test.ts index 4aca000bd73d7..ef00f2bbe1435 100644 --- a/src/plugins/content_management/server/rpc/procedures/update.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/update.test.ts @@ -35,7 +35,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> update()', () => { describe('Input/Output validation', () => { const data = { title: 'hello' }; - const validInput = { contentTypeId: 'foo', id: '123', version: 'v1', data }; + const validInput = { contentTypeId: 'foo', id: '123', version: 1, data }; test('should validate that a "contentTypeId", an "id" and "data" object is passed', () => { [ @@ -54,11 +54,10 @@ describe('RPC -> update()', () => { }, { input: omit(validInput, 'version'), - expectedError: '[version]: expected value of type [string] but got [undefined]', + expectedError: '[version]: expected value of type [number] but got [undefined]', }, { - input: { ...validInput, version: '1' }, // invalid version format - expectedError: '[version]: must follow the pattern [v${number}]', + input: { ...validInput, version: '1' }, // string number is OK }, { input: omit(validInput, 'data'), @@ -88,7 +87,7 @@ describe('RPC -> update()', () => { { contentTypeId: 'foo', id: '123', - version: 'v1', + version: 1, data: { title: 'hello' }, options: { any: 'object' }, }, @@ -102,7 +101,7 @@ describe('RPC -> update()', () => { contentTypeId: 'foo', data: { title: 'hello' }, id: '123', - version: 'v1', + version: 1, options: 123, // Not an object }, inputSchema @@ -137,7 +136,7 @@ describe('RPC -> update()', () => { id: FOO_CONTENT_ID, storage, version: { - latest: 'v2', + latest: 2, }, }); @@ -160,7 +159,7 @@ describe('RPC -> update()', () => { const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '123', - version: 'v1', + version: 1, data: { title: 'Hello' }, }); @@ -173,8 +172,8 @@ describe('RPC -> update()', () => { { requestHandlerContext: ctx.requestHandlerContext, version: { - request: 'v1', - latest: 'v2', // from the registry + request: 1, + latest: 2, // from the registry }, utils: { getTransforms: expect.any(Function), @@ -201,9 +200,9 @@ describe('RPC -> update()', () => { contentTypeId: FOO_CONTENT_ID, id: '123', data: { title: 'Hello' }, - version: 'v7', + version: 7, }) - ).rejects.toEqual(new Error('Invalid version. Latest version is [v2].')); + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); }); }); @@ -213,7 +212,7 @@ describe('RPC -> update()', () => { fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '123', - version: 'v1', + version: 1, data: { title: 'Hello' }, }); const [[storageContext]] = storage.update.mock.calls; diff --git a/src/plugins/content_management/server/rpc/procedures/utils.ts b/src/plugins/content_management/server/rpc/procedures/utils.ts index a33d4f6ec761d..df0f4315257e7 100644 --- a/src/plugins/content_management/server/rpc/procedures/utils.ts +++ b/src/plugins/content_management/server/rpc/procedures/utils.ts @@ -6,8 +6,8 @@ * Side Public License, v 1. */ -import { validateVersion } from '../../../common/utils'; -import type { Version } from '../../../common'; +import { validateVersion } from '@kbn/object-versioning/lib/utils'; +import type { Version } from '@kbn/object-versioning'; export const validateRequestVersion = ( requestVersion: Version | undefined, @@ -18,12 +18,15 @@ export const validateRequestVersion = ( throw new Error('Request version missing'); } - const requestVersionNumber = validateVersion(requestVersion); - const latestVersionNumber = parseInt(latestVersion.substring(1), 10); + const { result, value: requestVersionNumber } = validateVersion(requestVersion); - if (requestVersionNumber > latestVersionNumber) { + if (!result) { + throw new Error(`Invalid version [${requestVersion}]. Must be an integer.`); + } + + if (requestVersionNumber > latestVersion) { throw new Error(`Invalid version. Latest version is [${latestVersion}].`); } - return requestVersion; + return requestVersionNumber; }; diff --git a/src/plugins/discover/public/application/context/context_app_content.tsx b/src/plugins/discover/public/application/context/context_app_content.tsx index e6e6e995069ae..6b65bec06bdcf 100644 --- a/src/plugins/discover/public/application/context/context_app_content.tsx +++ b/src/plugins/discover/public/application/context/context_app_content.tsx @@ -24,6 +24,7 @@ import { DocTableContext } from '../../components/doc_table/doc_table_context'; import { useDiscoverServices } from '../../hooks/use_discover_services'; import type { DataTableRecord } from '../../types'; import { DiscoverGridFlyout } from '../../components/discover_grid/discover_grid_flyout'; +import { DocViewer } from '../../services/doc_views/components/doc_viewer'; export interface ContextAppContentProps { columns: string[]; @@ -139,6 +140,7 @@ export function ContextAppContent({ sort={sort} useNewFieldsApi={useNewFieldsApi} dataTestSubj="contextDocTable" + DocViewer={DocViewer} /> )} {!isLegacy && ( diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx index 2a9698050eade..85718c3f7247f 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx @@ -39,6 +39,7 @@ import { DiscoverTourProvider } from '../../../../components/discover_tour'; import { DataTableRecord } from '../../../../types'; import { getRawRecordType } from '../../utils/get_raw_record_type'; import { DiscoverGridFlyout } from '../../../../components/discover_grid/discover_grid_flyout'; +import { DocViewer } from '../../../../services/doc_views/components/doc_viewer'; const DocTableInfiniteMemoized = React.memo(DocTableInfinite); const DataGridMemoized = React.memo(DiscoverGrid); @@ -200,6 +201,7 @@ function DiscoverDocumentsComponent({ onSort={!isPlainRecord ? onSort : undefined} useNewFieldsApi={useNewFieldsApi} dataTestSubj="discoverDocTable" + DocViewer={DocViewer} /> )} diff --git a/src/plugins/discover/public/components/doc_table/components/table_row.test.tsx b/src/plugins/discover/public/components/doc_table/components/table_row.test.tsx index 9644223d98c7f..0ada6a3c09ed5 100644 --- a/src/plugins/discover/public/components/doc_table/components/table_row.test.tsx +++ b/src/plugins/discover/public/components/doc_table/components/table_row.test.tsx @@ -15,6 +15,7 @@ import { dataViewWithTimefieldMock } from '../../../__mocks__/data_view_with_tim import { DocViewsRegistry } from '../../../services/doc_views/doc_views_registry'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { discoverServiceMock } from '../../../__mocks__/services'; +import { DocViewer } from '../../../services/doc_views/components/doc_viewer'; import { DOC_HIDE_TIME_COLUMN_SETTING, MAX_DOC_FIELDS_DISPLAYED } from '../../../../common'; import { buildDataTableRecord } from '../../../utils/build_data_record'; @@ -80,6 +81,7 @@ describe('Doc table row component', () => { useNewFieldsApi: true, filterManager: mockFilterManager, addBasePath: (path: string) => path, + DocViewer, } as unknown as TableRowProps; beforeEach(() => { diff --git a/src/plugins/discover/public/components/doc_table/components/table_row.tsx b/src/plugins/discover/public/components/doc_table/components/table_row.tsx index c86d7eef57294..ba743ce392ba9 100644 --- a/src/plugins/discover/public/components/doc_table/components/table_row.tsx +++ b/src/plugins/discover/public/components/doc_table/components/table_row.tsx @@ -13,7 +13,7 @@ import { EuiButtonEmpty, EuiIcon } from '@elastic/eui'; import { DataView } from '@kbn/data-views-plugin/public'; import { Filter } from '@kbn/es-query'; import { formatFieldValue } from '../../../utils/format_value'; -import { DocViewer } from '../../../services/doc_views/components/doc_viewer'; +import { DocViewRenderProps } from '../../../services/doc_views/doc_views_types'; import { TableCell } from './table_row/table_cell'; import { formatRow, formatTopLevelObject } from '../utils/row_formatter'; import { DocViewFilterFn } from '../../../services/doc_views/doc_views_types'; @@ -38,6 +38,7 @@ export interface TableRowProps { shouldShowFieldHandler: ShouldShowFieldInTableHandler; onAddColumn?: (column: string) => void; onRemoveColumn?: (column: string) => void; + DocViewer: React.ComponentType; } export const TableRow = ({ @@ -51,6 +52,7 @@ export const TableRow = ({ shouldShowFieldHandler, onAddColumn, onRemoveColumn, + DocViewer, }: TableRowProps) => { const { uiSettings, fieldFormats } = useDiscoverServices(); const [maxEntries, hideTimeColumn] = useMemo( diff --git a/src/plugins/discover/public/components/doc_table/create_doc_table_embeddable.tsx b/src/plugins/discover/public/components/doc_table/create_doc_table_embeddable.tsx index c6312a5515076..d629c6f61f469 100644 --- a/src/plugins/discover/public/components/doc_table/create_doc_table_embeddable.tsx +++ b/src/plugins/discover/public/components/doc_table/create_doc_table_embeddable.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { I18nProvider } from '@kbn/i18n-react'; import { DocTableEmbeddable, DocTableEmbeddableProps } from './doc_table_embeddable'; +import { DocViewer } from '../../services/doc_views/components/doc_viewer'; export function DiscoverDocTableEmbeddable(renderProps: DocTableEmbeddableProps) { return ( @@ -32,6 +33,7 @@ export function DiscoverDocTableEmbeddable(renderProps: DocTableEmbeddableProps) sharedItemTitle={renderProps.sharedItemTitle} isLoading={renderProps.isLoading} dataTestSubj="embeddedSavedSearchDocTable" + DocViewer={DocViewer} /> ); diff --git a/src/plugins/discover/public/components/doc_table/doc_table_wrapper.test.tsx b/src/plugins/discover/public/components/doc_table/doc_table_wrapper.test.tsx index 62fdccc0f4642..a111476fce9f5 100644 --- a/src/plugins/discover/public/components/doc_table/doc_table_wrapper.test.tsx +++ b/src/plugins/discover/public/components/doc_table/doc_table_wrapper.test.tsx @@ -15,6 +15,7 @@ import { discoverServiceMock } from '../../__mocks__/services'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { buildDataTableRecord } from '../../utils/build_data_record'; import { EsHitRecord } from '../../types'; +import { DocViewer } from '../../services/doc_views/components/doc_viewer'; describe('Doc table component', () => { const mountComponent = (customProps?: Partial) => { @@ -47,6 +48,7 @@ describe('Doc table component', () => { render: () => { return
mock
; }, + DocViewer, ...(customProps || {}), }; diff --git a/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx b/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx index 9d4d40242ab25..23558a4979490 100644 --- a/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx +++ b/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx @@ -15,7 +15,7 @@ import { Filter } from '@kbn/es-query'; import { TableHeader } from './components/table_header/table_header'; import { SHOW_MULTIFIELDS } from '../../../common'; import { TableRow } from './components/table_row'; -import { DocViewFilterFn } from '../../services/doc_views/doc_views_types'; +import { DocViewFilterFn, DocViewRenderProps } from '../../services/doc_views/doc_views_types'; import { getShouldShowFieldHandler } from '../../utils/get_should_show_field_handler'; import { useDiscoverServices } from '../../hooks/use_discover_services'; import type { DataTableRecord } from '../../types'; @@ -85,6 +85,10 @@ export interface DocTableProps { * Remove column callback */ onRemoveColumn?: (column: string) => void; + /** + * Doc viewer component + */ + DocViewer: React.ComponentType; } export interface DocTableRenderProps { @@ -124,6 +128,7 @@ export const DocTableWrapper = forwardRef( sharedItemTitle, dataTestSubj, isLoading, + DocViewer, }: DocTableWrapperProps, ref ) => { @@ -181,6 +186,7 @@ export const DocTableWrapper = forwardRef( shouldShowFieldHandler={shouldShowFieldHandler} onAddColumn={onAddColumn} onRemoveColumn={onRemoveColumn} + DocViewer={DocViewer} /> )); }, @@ -194,6 +200,7 @@ export const DocTableWrapper = forwardRef( shouldShowFieldHandler, onAddColumn, onRemoveColumn, + DocViewer, ] ); diff --git a/x-pack/plugins/apm/common/connections.ts b/x-pack/plugins/apm/common/connections.ts index ca040c73afc59..78c0f5bedca5b 100644 --- a/x-pack/plugins/apm/common/connections.ts +++ b/x-pack/plugins/apm/common/connections.ts @@ -32,26 +32,28 @@ export interface DependencyNode extends NodeBase { export type Node = ServiceNode | DependencyNode; +export interface ConnectionStats { + latency: { + value: number | null; + timeseries: Coordinate[]; + }; + throughput: { + value: number | null; + timeseries: Coordinate[]; + }; + errorRate: { + value: number | null; + timeseries: Coordinate[]; + }; + totalTime: { + value: number | null; + timeseries: Coordinate[]; + }; +} + export interface ConnectionStatsItem { location: Node; - stats: { - latency: { - value: number | null; - timeseries: Coordinate[]; - }; - throughput: { - value: number | null; - timeseries: Coordinate[]; - }; - errorRate: { - value: number | null; - timeseries: Coordinate[]; - }; - totalTime: { - value: number | null; - timeseries: Coordinate[]; - }; - }; + stats: ConnectionStats; } export interface ConnectionStatsItemWithImpact extends ConnectionStatsItem { diff --git a/x-pack/plugins/apm/common/environment_filter_values.ts b/x-pack/plugins/apm/common/environment_filter_values.ts index ebc106a609e9f..24bc00658a7d4 100644 --- a/x-pack/plugins/apm/common/environment_filter_values.ts +++ b/x-pack/plugins/apm/common/environment_filter_values.ts @@ -20,7 +20,7 @@ export const allOptionText = i18n.translate( } ); -export function getEnvironmentLabel(environment: string) { +export function getEnvironmentLabel(environment: string): string { if (!environment || environment === ENVIRONMENT_NOT_DEFINED_VALUE) { return i18n.translate('xpack.apm.filter.environment.notDefinedLabel', { defaultMessage: 'Not defined', diff --git a/x-pack/plugins/apm/common/utils/offset_previous_period_coordinate.ts b/x-pack/plugins/apm/common/utils/offset_previous_period_coordinate.ts index 9300ec61fe42d..a84a19ab14778 100644 --- a/x-pack/plugins/apm/common/utils/offset_previous_period_coordinate.ts +++ b/x-pack/plugins/apm/common/utils/offset_previous_period_coordinate.ts @@ -14,7 +14,7 @@ export function offsetPreviousPeriodCoordinates({ }: { currentPeriodTimeseries?: Coordinate[]; previousPeriodTimeseries?: Coordinate[]; -}) { +}): Coordinate[] { if (!previousPeriodTimeseries?.length) { return []; } diff --git a/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact.ts b/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact.ts index c5502e0e30b97..14ce2a376b94c 100644 --- a/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact.ts +++ b/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact.ts @@ -13,7 +13,7 @@ import { export function getConnectionStatsItemsWithRelativeImpact( items: ConnectionStatsItem[] -) { +): ConnectionStatsItemWithImpact[] { const latencySums = items .map( ({ stats }) => (stats.latency.value ?? 0) * (stats.throughput.value ?? 0) diff --git a/x-pack/plugins/apm/server/lib/helpers/get_error_name.ts b/x-pack/plugins/apm/server/lib/helpers/get_error_name.ts index 1c4a86d8a26e2..2b74a977d62cf 100644 --- a/x-pack/plugins/apm/server/lib/helpers/get_error_name.ts +++ b/x-pack/plugins/apm/server/lib/helpers/get_error_name.ts @@ -9,7 +9,11 @@ import { NOT_AVAILABLE_LABEL } from '../../../common/i18n'; import { Maybe } from '../../../typings/common'; import { APMError } from '../../../typings/es_schemas/ui/apm_error'; -export function getErrorName({ error }: { error: Maybe }) { +export function getErrorName({ + error, +}: { + error: Maybe; +}): string { return ( error?.log?.message || error?.exception?.[0]?.message || NOT_AVAILABLE_LABEL ); diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/get_coldstart_rate.ts b/x-pack/plugins/apm/server/lib/transaction_groups/get_coldstart_rate.ts index 8c8c2be00dd4b..e4e0cc1685615 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/get_coldstart_rate.ts +++ b/x-pack/plugins/apm/server/lib/transaction_groups/get_coldstart_rate.ts @@ -123,6 +123,17 @@ export async function getColdstartRate({ return { transactionColdstartRate, average }; } +export interface ColdstartRateResponse { + currentPeriod: { + transactionColdstartRate: Coordinate[]; + average: number | null; + }; + previousPeriod: { + transactionColdstartRate: Coordinate[]; + average: number | null; + }; +} + export async function getColdstartRatePeriods({ environment, kuery, @@ -145,7 +156,7 @@ export async function getColdstartRatePeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const commonProps = { environment, kuery, diff --git a/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_instances.ts b/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_instances.ts index 2a9bfcda1977c..5840152c3e77f 100644 --- a/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_instances.ts +++ b/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_instances.ts @@ -24,6 +24,13 @@ import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_ev const MAX_NUMBER_OF_SERVICE_NODES = 500; +export type AgentExplorerAgentInstancesResponse = Array<{ + serviceNode: string; + environments: string[]; + agentVersion: string; + lastReport: string; +}>; + export async function getAgentInstances({ environment, serviceName, @@ -38,7 +45,7 @@ export async function getAgentInstances({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { const response = await apmEventClient.search('get_agent_instances', { apm: { events: [ProcessorEvent.metric], diff --git a/x-pack/plugins/apm/server/routes/agent_explorer/get_agents.ts b/x-pack/plugins/apm/server/routes/agent_explorer/get_agents.ts index 160d6384f7df3..077040950cb7e 100644 --- a/x-pack/plugins/apm/server/routes/agent_explorer/get_agents.ts +++ b/x-pack/plugins/apm/server/routes/agent_explorer/get_agents.ts @@ -22,6 +22,17 @@ const getOtelAgentVersion = (item: { : item.agentVersion; }; +export interface AgentExplorerAgentsResponse { + items: Array<{ + agentDocsPageUrl: string | undefined; + serviceName: string; + environments: string[]; + agentName: AgentName; + agentVersion: string[]; + instances: number; + }>; +} + export async function getAgents({ environment, serviceName, @@ -40,7 +51,7 @@ export async function getAgents({ start: number; end: number; randomSampler: RandomSampler; -}) { +}): Promise { const items = await getAgentsItems({ environment, serviceName, diff --git a/x-pack/plugins/apm/server/routes/agent_explorer/route.ts b/x-pack/plugins/apm/server/routes/agent_explorer/route.ts index ad55723be9aef..09eed8277cae7 100644 --- a/x-pack/plugins/apm/server/routes/agent_explorer/route.ts +++ b/x-pack/plugins/apm/server/routes/agent_explorer/route.ts @@ -15,8 +15,11 @@ import { probabilityRt, rangeRt, } from '../default_api_types'; -import { getAgents } from './get_agents'; -import { getAgentInstances } from './get_agent_instances'; +import { AgentExplorerAgentsResponse, getAgents } from './get_agents'; +import { + AgentExplorerAgentInstancesResponse, + getAgentInstances, +} from './get_agent_instances'; const agentExplorerRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/get_agents_per_service', @@ -33,16 +36,7 @@ const agentExplorerRoute = createApmServerRoute({ }), ]), }), - async handler(resources): Promise<{ - items: Array<{ - serviceName: string; - environments: string[]; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - agentVersion: string[]; - agentDocsPageUrl?: string; - instances: number; - }>; - }> { + async handler(resources): Promise { const { params, request, @@ -85,12 +79,7 @@ const agentExplorerInstanceRoute = createApmServerRoute({ query: t.intersection([environmentRt, kueryRt, rangeRt, probabilityRt]), }), async handler(resources): Promise<{ - items: Array<{ - serviceNode?: string; - environments: string[]; - agentVersion: string; - lastReport: string; - }>; + items: AgentExplorerAgentInstancesResponse; }> { const { params } = resources; diff --git a/x-pack/plugins/apm/server/routes/agent_keys/create_agent_key.ts b/x-pack/plugins/apm/server/routes/agent_keys/create_agent_key.ts index 0bcd85a88ce8c..cdbaa85aa5750 100644 --- a/x-pack/plugins/apm/server/routes/agent_keys/create_agent_key.ts +++ b/x-pack/plugins/apm/server/routes/agent_keys/create_agent_key.ts @@ -5,11 +5,16 @@ * 2.0. */ +import { SecurityCreateApiKeyResponse } from '@elastic/elasticsearch/lib/api/types'; import Boom from '@hapi/boom'; import { ApmPluginRequestHandlerContext } from '../typings'; const resource = '*'; +export interface CreateAgentKeyResponse { + agentKey: SecurityCreateApiKeyResponse; +} + export async function createAgentKey({ context, requestBody, diff --git a/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys.ts b/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys.ts index 4748fba3eadec..7666d5a304614 100644 --- a/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys.ts +++ b/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys.ts @@ -7,11 +7,15 @@ import { ApiKey } from '@kbn/security-plugin/common/model'; import { ApmPluginRequestHandlerContext } from '../typings'; +export interface AgentKeysResponse { + agentKeys: ApiKey[]; +} + export async function getAgentKeys({ context, }: { context: ApmPluginRequestHandlerContext; -}) { +}): Promise { const body = { size: 1000, query: { diff --git a/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys_privileges.ts b/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys_privileges.ts index c9fba5d6ec71e..b87efdafd302d 100644 --- a/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys_privileges.ts +++ b/x-pack/plugins/apm/server/routes/agent_keys/get_agent_keys_privileges.ts @@ -8,13 +8,19 @@ import { ApmPluginRequestHandlerContext } from '../typings'; import { APMPluginStartDependencies } from '../../types'; +export interface AgentKeysPrivilegesResponse { + areApiKeysEnabled: boolean; + isAdmin: boolean; + canManage: boolean; +} + export async function getAgentKeysPrivileges({ context, securityPluginStart, }: { context: ApmPluginRequestHandlerContext; securityPluginStart: NonNullable; -}) { +}): Promise { const esClient = (await context.core).elasticsearch.client; const [securityHasPrivilegesResponse, areApiKeysEnabled] = await Promise.all([ esClient.asCurrentUser.security.hasPrivileges({ diff --git a/x-pack/plugins/apm/server/routes/agent_keys/invalidate_agent_key.ts b/x-pack/plugins/apm/server/routes/agent_keys/invalidate_agent_key.ts index 95ee67f0dff37..0f54ab1ea05a8 100644 --- a/x-pack/plugins/apm/server/routes/agent_keys/invalidate_agent_key.ts +++ b/x-pack/plugins/apm/server/routes/agent_keys/invalidate_agent_key.ts @@ -6,6 +6,10 @@ */ import { ApmPluginRequestHandlerContext } from '../typings'; +export interface InvalidateAgentKeyResponse { + invalidatedAgentKeys: string[]; +} + export async function invalidateAgentKey({ context, id, @@ -14,7 +18,7 @@ export async function invalidateAgentKey({ context: ApmPluginRequestHandlerContext; id: string; isAdmin: boolean; -}) { +}): Promise { const esClient = (await context.core).elasticsearch.client; const { invalidated_api_keys: invalidatedAgentKeys } = await esClient.asCurrentUser.security.invalidateApiKey({ diff --git a/x-pack/plugins/apm/server/routes/agent_keys/route.ts b/x-pack/plugins/apm/server/routes/agent_keys/route.ts index 9b01153f73910..712fbd47434ec 100644 --- a/x-pack/plugins/apm/server/routes/agent_keys/route.ts +++ b/x-pack/plugins/apm/server/routes/agent_keys/route.ts @@ -9,21 +9,23 @@ import Boom from '@hapi/boom'; import { i18n } from '@kbn/i18n'; import * as t from 'io-ts'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getAgentKeys } from './get_agent_keys'; -import { getAgentKeysPrivileges } from './get_agent_keys_privileges'; -import { invalidateAgentKey } from './invalidate_agent_key'; -import { createAgentKey } from './create_agent_key'; +import { AgentKeysResponse, getAgentKeys } from './get_agent_keys'; +import { + AgentKeysPrivilegesResponse, + getAgentKeysPrivileges, +} from './get_agent_keys_privileges'; +import { + invalidateAgentKey, + InvalidateAgentKeyResponse, +} from './invalidate_agent_key'; +import { createAgentKey, CreateAgentKeyResponse } from './create_agent_key'; import { privilegesTypeRt } from '../../../common/privilege_type'; const agentKeysRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/agent_keys', options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - agentKeys: Array; - }> => { + handler: async (resources): Promise => { const { context } = resources; const agentKeys = await getAgentKeys({ context, @@ -37,13 +39,7 @@ const agentKeysPrivilegesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/agent_keys/privileges', options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - areApiKeysEnabled: boolean; - isAdmin: boolean; - canManage: boolean; - }> => { + handler: async (resources): Promise => { const { plugins: { security }, context, @@ -69,7 +65,7 @@ const invalidateAgentKeyRoute = createApmServerRoute({ params: t.type({ body: t.type({ id: t.string }), }), - handler: async (resources): Promise<{ invalidatedAgentKeys: string[] }> => { + handler: async (resources): Promise => { const { context, params, @@ -108,11 +104,7 @@ const createAgentKeyRoute = createApmServerRoute({ privileges: privilegesTypeRt, }), }), - handler: async ( - resources - ): Promise<{ - agentKey: import('./../../../../../../node_modules/@elastic/elasticsearch/lib/api/types').SecurityCreateApiKeyResponse; - }> => { + handler: async (resources): Promise => { const { context, params } = resources; const { body: requestBody } = params; diff --git a/x-pack/plugins/apm/server/routes/alerts/route.ts b/x-pack/plugins/apm/server/routes/alerts/route.ts index c040c00387d07..b03fe65560ec8 100644 --- a/x-pack/plugins/apm/server/routes/alerts/route.ts +++ b/x-pack/plugins/apm/server/routes/alerts/route.ts @@ -6,9 +6,15 @@ */ import * as t from 'io-ts'; -import { getTransactionDurationChartPreview } from './rule_types/transaction_duration/get_transaction_duration_chart_preview'; +import { + getTransactionDurationChartPreview, + TransactionDurationChartPreviewResponse, +} from './rule_types/transaction_duration/get_transaction_duration_chart_preview'; import { getTransactionErrorCountChartPreview } from './rule_types/error_count/get_error_count_chart_preview'; -import { getTransactionErrorRateChartPreview } from './rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview'; +import { + getTransactionErrorRateChartPreview, + TransactionErrorRateChartPreviewResponse, +} from './rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, rangeRt } from '../default_api_types'; import { AggregationType } from '../../../common/rules/apm_rule_types'; @@ -39,7 +45,9 @@ const transactionErrorRateChartPreview = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ errorRateChartPreview: Array<{ x: number; y: number }> }> => { + ): Promise<{ + errorRateChartPreview: TransactionErrorRateChartPreviewResponse; + }> => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; const { _inspect, ...alertParams } = params.query; @@ -82,10 +90,7 @@ const transactionDurationChartPreview = createApmServerRoute({ handler: async ( resources ): Promise<{ - latencyChartPreview: Array<{ - name: string; - data: Array<{ x: number; y: number | null }>; - }>; + latencyChartPreview: TransactionDurationChartPreviewResponse; }> => { const apmEventClient = await getApmEventClient(resources); diff --git a/x-pack/plugins/apm/server/routes/alerts/rule_types/error_count/get_error_count_chart_preview.ts b/x-pack/plugins/apm/server/routes/alerts/rule_types/error_count/get_error_count_chart_preview.ts index 4dfdf665e3d08..6175b2578a236 100644 --- a/x-pack/plugins/apm/server/routes/alerts/rule_types/error_count/get_error_count_chart_preview.ts +++ b/x-pack/plugins/apm/server/routes/alerts/rule_types/error_count/get_error_count_chart_preview.ts @@ -12,13 +12,18 @@ import { AlertParams } from '../../route'; import { environmentQuery } from '../../../../../common/utils/environment_query'; import { APMEventClient } from '../../../../lib/helpers/create_es_client/create_apm_event_client'; +export type TransactionErrorCountChartPreviewResponse = Array<{ + x: number; + y: number; +}>; + export async function getTransactionErrorCountChartPreview({ apmEventClient, alertParams, }: { apmEventClient: APMEventClient; alertParams: AlertParams; -}) { +}): Promise { const { serviceName, environment, interval, start, end } = alertParams; const query = { diff --git a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/get_transaction_duration_chart_preview.ts b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/get_transaction_duration_chart_preview.ts index 0b4add4c316c3..e18ad1fc187a5 100644 --- a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/get_transaction_duration_chart_preview.ts +++ b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_duration/get_transaction_duration_chart_preview.ts @@ -29,6 +29,11 @@ import { averageOrPercentileAgg } from './average_or_percentile_agg'; import { APMConfig } from '../../../..'; import { APMEventClient } from '../../../../lib/helpers/create_es_client/create_apm_event_client'; +export type TransactionDurationChartPreviewResponse = Array<{ + name: string; + data: Array<{ x: number; y: number | null }>; +}>; + export async function getTransactionDurationChartPreview({ alertParams, config, @@ -37,7 +42,7 @@ export async function getTransactionDurationChartPreview({ alertParams: AlertParams; config: APMConfig; apmEventClient: APMEventClient; -}) { +}): Promise { const { aggregationType = AggregationType.Avg, environment, diff --git a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview.ts b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview.ts index e6200025abc1a..ad27b5680b15c 100644 --- a/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview.ts +++ b/x-pack/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/get_transaction_error_rate_chart_preview.ts @@ -25,6 +25,11 @@ import { APMConfig } from '../../../..'; import { APMEventClient } from '../../../../lib/helpers/create_es_client/create_apm_event_client'; import { ApmDocumentType } from '../../../../../common/document_type'; +export type TransactionErrorRateChartPreviewResponse = Array<{ + x: number; + y: number; +}>; + export async function getTransactionErrorRateChartPreview({ config, apmEventClient, @@ -33,7 +38,7 @@ export async function getTransactionErrorRateChartPreview({ config: APMConfig; apmEventClient: APMEventClient; alertParams: AlertParams; -}) { +}): Promise { const { serviceName, environment, transactionType, interval, start, end } = alertParams; diff --git a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_duration_field_candidates.ts b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_duration_field_candidates.ts index c15f40d78d2c1..350e54f9789cc 100644 --- a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_duration_field_candidates.ts +++ b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_duration_field_candidates.ts @@ -34,7 +34,11 @@ export const shouldBeExcluded = (fieldName: string) => { ); }; -export const fetchDurationFieldCandidates = async ({ +export interface DurationFieldCandidatesResponse { + fieldCandidates: string[]; +} + +export async function fetchDurationFieldCandidates({ apmEventClient, eventType, query, @@ -46,9 +50,7 @@ export const fetchDurationFieldCandidates = async ({ query: estypes.QueryDslQueryContainer; apmEventClient: APMEventClient; eventType: ProcessorEvent.transaction | ProcessorEvent.span; -}): Promise<{ - fieldCandidates: string[]; -}> => { +}): Promise { // Get all supported fields const [respMapping, respRandomDoc] = await Promise.all([ apmEventClient.fieldCaps('get_field_caps', { @@ -110,4 +112,4 @@ export const fetchDurationFieldCandidates = async ({ return { fieldCandidates: [...finalFieldCandidates], }; -}; +} diff --git a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_field_value_pairs.ts b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_field_value_pairs.ts index 72ffea93e2cae..0cc64a59d0abe 100644 --- a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_field_value_pairs.ts +++ b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_field_value_pairs.ts @@ -16,6 +16,11 @@ import { splitAllSettledPromises } from '../utils'; import { getCommonCorrelationsQuery } from './get_common_correlations_query'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +export interface FieldValuePairsResponse { + fieldValuePairs: FieldValuePair[]; + errors: any[]; +} + export const fetchFieldValuePairs = async ({ apmEventClient, fieldCandidates, diff --git a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_p_values.ts b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_p_values.ts index 2c94473ccaa41..72fd1d59568a9 100644 --- a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_p_values.ts +++ b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_p_values.ts @@ -15,6 +15,12 @@ import { splitAllSettledPromises, getEventType } from '../utils'; import { fetchDurationHistogramRangeSteps } from './fetch_duration_histogram_range_steps'; import { fetchFailedEventsCorrelationPValues } from './fetch_failed_events_correlation_p_values'; +export interface PValuesResponse { + failedTransactionsCorrelations: FailedTransactionsCorrelation[]; + ccsWarning: boolean; + fallbackResult?: FailedTransactionsCorrelation; +} + export const fetchPValues = async ({ apmEventClient, start, @@ -30,7 +36,7 @@ export const fetchPValues = async ({ durationMin?: number; durationMax?: number; fieldCandidates: string[]; -}) => { +}): Promise => { const chartType = LatencyDistributionChartType.failedTransactionsCorrelations; const searchMetrics = false; // failed transactions correlations does not search metrics documents const eventType = getEventType(chartType, searchMetrics); diff --git a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_significant_correlations.ts b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_significant_correlations.ts index 82e91167f19d2..f9e02170b1c65 100644 --- a/x-pack/plugins/apm/server/routes/correlations/queries/fetch_significant_correlations.ts +++ b/x-pack/plugins/apm/server/routes/correlations/queries/fetch_significant_correlations.ts @@ -27,6 +27,13 @@ import { fetchDurationRanges } from './fetch_duration_ranges'; import { getEventType } from '../utils'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +export interface SignificantCorrelationsResponse { + latencyCorrelations: LatencyCorrelation[]; + ccsWarning: boolean; + totalDocCount: number; + fallbackResult?: LatencyCorrelation; +} + export const fetchSignificantCorrelations = async ({ apmEventClient, start, @@ -42,7 +49,7 @@ export const fetchSignificantCorrelations = async ({ durationMinOverride?: number; durationMaxOverride?: number; fieldValuePairs: FieldValuePair[]; -}) => { +}): Promise => { // Create an array of ranges [2, 4, 6, ..., 98] const percentileAggregationPercents = range(2, 100, 2); const chartType = LatencyDistributionChartType.latencyCorrelations; diff --git a/x-pack/plugins/apm/server/routes/correlations/route.ts b/x-pack/plugins/apm/server/routes/correlations/route.ts index 1957da0d7caba..19eb380af2cc4 100644 --- a/x-pack/plugins/apm/server/routes/correlations/route.ts +++ b/x-pack/plugins/apm/server/routes/correlations/route.ts @@ -17,17 +17,27 @@ import { isActivePlatinumLicense } from '../../../common/license_check'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; -import { fetchDurationFieldCandidates } from './queries/fetch_duration_field_candidates'; +import { + DurationFieldCandidatesResponse, + fetchDurationFieldCandidates, +} from './queries/fetch_duration_field_candidates'; import { SERVICE_NAME, TRANSACTION_NAME, TRANSACTION_TYPE, } from '../../../common/es_fields/apm'; import { fetchFieldValueFieldStats } from './queries/field_stats/fetch_field_value_field_stats'; -import { fetchFieldValuePairs } from './queries/fetch_field_value_pairs'; -import { fetchSignificantCorrelations } from './queries/fetch_significant_correlations'; -import { fetchPValues } from './queries/fetch_p_values'; +import { + fetchFieldValuePairs, + FieldValuePairsResponse, +} from './queries/fetch_field_value_pairs'; +import { + fetchSignificantCorrelations, + SignificantCorrelationsResponse, +} from './queries/fetch_significant_correlations'; +import { fetchPValues, PValuesResponse } from './queries/fetch_p_values'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { TopValuesStats } from '../../../common/correlations/field_stats_types'; const INVALID_LICENSE = i18n.translate('xpack.apm.correlations.license.text', { defaultMessage: @@ -49,7 +59,7 @@ const fieldCandidatesTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async (resources): Promise<{ fieldCandidates: string[] }> => { + handler: async (resources): Promise => { const { context } = resources; const { license } = await context.licensing; if (!isActivePlatinumLicense(license)) { @@ -110,11 +120,7 @@ const fieldValueStatsTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise< - import('./../../../common/correlations/field_stats_types').TopValuesStats - > => { + handler: async (resources): Promise => { const { context } = resources; const { license } = await context.licensing; if (!isActivePlatinumLicense(license)) { @@ -184,14 +190,7 @@ const fieldValuePairsTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - fieldValuePairs: Array< - import('./../../../common/correlations/types').FieldValuePair - >; - errors: any[]; - }> => { + handler: async (resources): Promise => { const { context } = resources; const { license } = await context.licensing; if (!isActivePlatinumLicense(license)) { @@ -260,16 +259,7 @@ const significantCorrelationsTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - latencyCorrelations: Array< - import('./../../../common/correlations/latency_correlations/types').LatencyCorrelation - >; - ccsWarning: boolean; - totalDocCount: number; - fallbackResult?: import('./../../../common/correlations/latency_correlations/types').LatencyCorrelation; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { body: { @@ -328,15 +318,7 @@ const pValuesTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - failedTransactionsCorrelations: Array< - import('./../../../common/correlations/failed_transactions_correlations/types').FailedTransactionsCorrelation - >; - ccsWarning: boolean; - fallbackResult?: import('./../../../common/correlations/failed_transactions_correlations/types').FailedTransactionsCorrelation; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { diff --git a/x-pack/plugins/apm/server/routes/data_view/route.ts b/x-pack/plugins/apm/server/routes/data_view/route.ts index 12055e32337ca..53f4b3d68566f 100644 --- a/x-pack/plugins/apm/server/routes/data_view/route.ts +++ b/x-pack/plugins/apm/server/routes/data_view/route.ts @@ -46,7 +46,6 @@ const dataViewTitleRoute = createApmServerRoute({ handler: async ({ context, config, - logger, }): Promise<{ apmDataViewTitle: string }> => { const coreContext = await context.core; const apmIndicies = await getApmIndices({ diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_dependency_latency_distribution.ts b/x-pack/plugins/apm/server/routes/dependencies/get_dependency_latency_distribution.ts index 72945e44df1a2..f4ec943b78d01 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_dependency_latency_distribution.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_dependency_latency_distribution.ts @@ -18,6 +18,11 @@ import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_ev import { getOverallLatencyDistribution } from '../latency_distribution/get_overall_latency_distribution'; import { OverallLatencyDistributionResponse } from '../latency_distribution/types'; +export interface DependencyLatencyDistributionResponse { + allSpansDistribution: OverallLatencyDistributionResponse; + failedSpansDistribution: OverallLatencyDistributionResponse; +} + export async function getDependencyLatencyDistribution({ apmEventClient, dependencyName, @@ -36,10 +41,7 @@ export async function getDependencyLatencyDistribution({ start: number; end: number; percentileThreshold: number; -}): Promise<{ - allSpansDistribution: OverallLatencyDistributionResponse; - failedSpansDistribution: OverallLatencyDistributionResponse; -}> { +}): Promise { const commonParams = { chartType: LatencyDistributionChartType.dependencyLatency, apmEventClient, diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_error_rate_charts_for_dependency.ts b/x-pack/plugins/apm/server/routes/dependencies/get_error_rate_charts_for_dependency.ts index 81395df6ca491..8f181e4072b0e 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_error_rate_charts_for_dependency.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_error_rate_charts_for_dependency.ts @@ -26,17 +26,7 @@ import { } from '../../lib/helpers/spans/get_is_using_service_destination_metrics'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getErrorRateChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - environment, - kuery, - searchServiceDestinationMetrics, - offset, -}: { +interface Options { dependencyName: string; spanName: string; apmEventClient: APMEventClient; @@ -46,7 +36,19 @@ export async function getErrorRateChartsForDependency({ kuery: string; searchServiceDestinationMetrics: boolean; offset?: string; -}) { +} + +async function getErrorRateChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + offset, +}: Options) { const { offsetInMs, startWithOffset, endWithOffset } = getOffsetInMs({ start, end, @@ -145,3 +147,43 @@ export async function getErrorRateChartsForDependency({ }) ?? [] ); } + +export async function getErrorRateChartsForDependency({ + apmEventClient, + dependencyName, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + spanName, + offset, +}: Options) { + const [currentTimeseries, comparisonTimeseries] = await Promise.all([ + getErrorRateChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + kuery, + environment, + searchServiceDestinationMetrics, + }), + offset + ? getErrorRateChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + kuery, + environment, + offset, + searchServiceDestinationMetrics, + }) + : null, + ]); + + return { currentTimeseries, comparisonTimeseries }; +} diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_latency_charts_for_dependency.ts b/x-pack/plugins/apm/server/routes/dependencies/get_latency_charts_for_dependency.ts index 0127c0db380c0..0e085af7fa79f 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_latency_charts_for_dependency.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_latency_charts_for_dependency.ts @@ -25,17 +25,7 @@ import { } from '../../lib/helpers/spans/get_is_using_service_destination_metrics'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getLatencyChartsForDependency({ - dependencyName, - spanName, - searchServiceDestinationMetrics, - apmEventClient, - start, - end, - environment, - kuery, - offset, -}: { +interface Options { dependencyName: string; spanName: string; searchServiceDestinationMetrics: boolean; @@ -45,7 +35,19 @@ export async function getLatencyChartsForDependency({ environment: string; kuery: string; offset?: string; -}) { +} + +async function getLatencyChartsForDependencyForTimeRange({ + dependencyName, + spanName, + searchServiceDestinationMetrics, + apmEventClient, + start, + end, + environment, + kuery, + offset, +}: Options) { const { offsetInMs, startWithOffset, endWithOffset } = getOffsetInMs({ start, end, @@ -120,3 +122,48 @@ export async function getLatencyChartsForDependency({ }) ?? [] ); } + +export interface LatencyChartsDependencyResponse { + currentTimeseries: Array<{ x: number; y: number }>; + comparisonTimeseries: Array<{ x: number; y: number }> | null; +} + +export async function getLatencyChartsForDependency({ + apmEventClient, + dependencyName, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + spanName, + offset, +}: Options): Promise { + const [currentTimeseries, comparisonTimeseries] = await Promise.all([ + getLatencyChartsForDependencyForTimeRange({ + dependencyName, + spanName, + searchServiceDestinationMetrics, + apmEventClient, + start, + end, + kuery, + environment, + }), + offset + ? getLatencyChartsForDependencyForTimeRange({ + dependencyName, + spanName, + searchServiceDestinationMetrics, + apmEventClient, + start, + end, + kuery, + environment, + offset, + }) + : null, + ]); + + return { currentTimeseries, comparisonTimeseries }; +} diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_metadata_for_dependency.ts b/x-pack/plugins/apm/server/routes/dependencies/get_metadata_for_dependency.ts index ef3d532ee97b0..8f4ab8d70eef3 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_metadata_for_dependency.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_metadata_for_dependency.ts @@ -11,6 +11,11 @@ import { maybe } from '../../../common/utils/maybe'; import { SPAN_DESTINATION_SERVICE_RESOURCE } from '../../../common/es_fields/apm'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export interface MetadataForDependencyResponse { + spanType: string | undefined; + spanSubtype: string | undefined; +} + export async function getMetadataForDependency({ apmEventClient, dependencyName, @@ -21,7 +26,7 @@ export async function getMetadataForDependency({ dependencyName: string; start: number; end: number; -}) { +}): Promise { const sampleResponse = await apmEventClient.search( 'get_metadata_for_dependency', { diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_throughput_charts_for_dependency.ts b/x-pack/plugins/apm/server/routes/dependencies/get_throughput_charts_for_dependency.ts index 8cd832ecc2118..44da3fc5f46aa 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_throughput_charts_for_dependency.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_throughput_charts_for_dependency.ts @@ -24,17 +24,7 @@ import { } from '../../lib/helpers/spans/get_is_using_service_destination_metrics'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getThroughputChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - environment, - kuery, - searchServiceDestinationMetrics, - offset, -}: { +interface Options { dependencyName: string; spanName: string; apmEventClient: APMEventClient; @@ -44,7 +34,24 @@ export async function getThroughputChartsForDependency({ kuery: string; searchServiceDestinationMetrics: boolean; offset?: string; -}) { +} + +export interface ThroughputChartsForDependencyResponse { + currentTimeseries: Array<{ x: number; y: number | null }>; + comparisonTimeseries: Array<{ x: number; y: number | null }> | null; +} + +async function getThroughputChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + offset, +}: Options) { const { offsetInMs, startWithOffset, endWithOffset } = getOffsetInMs({ start, end, @@ -121,3 +128,43 @@ export async function getThroughputChartsForDependency({ }) ?? [] ); } + +export async function getThroughputChartsForDependency({ + dependencyName, + spanName, + apmEventClient, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + offset, +}: Options): Promise { + const [currentTimeseries, comparisonTimeseries] = await Promise.all([ + getThroughputChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + kuery, + environment, + searchServiceDestinationMetrics, + }), + offset + ? getThroughputChartsForDependencyForTimeRange({ + dependencyName, + spanName, + apmEventClient, + start, + end, + kuery, + environment, + offset, + searchServiceDestinationMetrics, + }) + : null, + ]); + + return { currentTimeseries, comparisonTimeseries }; +} diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_top_dependencies.ts b/x-pack/plugins/apm/server/routes/dependencies/get_top_dependencies.ts index d8ee73af18e87..76db0f23d65e9 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_top_dependencies.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_top_dependencies.ts @@ -6,21 +6,18 @@ */ import { kqlQuery } from '@kbn/observability-plugin/server'; -import { NodeType } from '../../../common/connections'; +import { + ConnectionStats, + ConnectionStatsItemWithImpact, + Node, + NodeType, +} from '../../../common/connections'; import { environmentQuery } from '../../../common/utils/environment_query'; import { getConnectionStats } from '../../lib/connections/get_connection_stats'; import { getConnectionStatsItemsWithRelativeImpact } from '../../lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getTopDependencies({ - apmEventClient, - start, - end, - numBuckets, - environment, - offset, - kuery, -}: { +interface Options { apmEventClient: APMEventClient; start: number; end: number; @@ -28,7 +25,17 @@ export async function getTopDependencies({ environment: string; offset?: string; kuery: string; -}) { +} + +async function getTopDependenciesForTimeRange({ + apmEventClient, + start, + end, + numBuckets, + environment, + offset, + kuery, +}: Options): Promise { const statsItems = await getConnectionStats({ apmEventClient, start, @@ -43,3 +50,43 @@ export async function getTopDependencies({ statsItems.filter((item) => item.location.type !== NodeType.service) ); } + +export interface TopDependenciesResponse { + dependencies: Array<{ + currentStats: ConnectionStats & { + impact: number; + }; + previousStats: + | (ConnectionStats & { + impact: number; + }) + | null; + location: Node; + }>; +} + +export async function getTopDependencies( + options: Options +): Promise { + const { offset, ...otherOptions } = options; + const [currentDependencies, previousDependencies] = await Promise.all([ + getTopDependenciesForTimeRange(otherOptions), + offset + ? getTopDependenciesForTimeRange({ ...otherOptions, offset }) + : Promise.resolve([]), + ]); + + return { + dependencies: currentDependencies.map((dependency) => { + const { stats, ...rest } = dependency; + const prev = previousDependencies.find( + (item): boolean => item.location.id === dependency.location.id + ); + return { + ...rest, + currentStats: stats, + previousStats: prev?.stats ?? null, + }; + }), + }; +} diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_top_dependency_operations.ts b/x-pack/plugins/apm/server/routes/dependencies/get_top_dependency_operations.ts index bc01a0b0220a4..de3abb9725837 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_top_dependency_operations.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_top_dependency_operations.ts @@ -64,7 +64,7 @@ export async function getTopDependencyOperations({ environment: Environment; kuery: string; searchServiceDestinationMetrics: boolean; -}) { +}): Promise { const { startWithOffset, endWithOffset, offsetInMs } = getOffsetInMs({ start, end, diff --git a/x-pack/plugins/apm/server/routes/dependencies/get_upstream_services_for_dependency.ts b/x-pack/plugins/apm/server/routes/dependencies/get_upstream_services_for_dependency.ts index 0beda0afa4e13..21ae20b045098 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/get_upstream_services_for_dependency.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/get_upstream_services_for_dependency.ts @@ -6,22 +6,14 @@ */ import { kqlQuery } from '@kbn/observability-plugin/server'; +import { ConnectionStats, Node } from '../../../common/connections'; import { SPAN_DESTINATION_SERVICE_RESOURCE } from '../../../common/es_fields/apm'; import { environmentQuery } from '../../../common/utils/environment_query'; import { getConnectionStats } from '../../lib/connections/get_connection_stats'; import { getConnectionStatsItemsWithRelativeImpact } from '../../lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getUpstreamServicesForDependency({ - apmEventClient, - start, - end, - dependencyName, - numBuckets, - kuery, - environment, - offset, -}: { +interface Options { apmEventClient: APMEventClient; start: number; end: number; @@ -30,7 +22,18 @@ export async function getUpstreamServicesForDependency({ kuery: string; environment: string; offset?: string; -}) { +} + +async function getUpstreamServicesForDependencyForTimeRange({ + apmEventClient, + start, + end, + dependencyName, + numBuckets, + kuery, + environment, + offset, +}: Options) { const statsItems = await getConnectionStats({ apmEventClient, start, @@ -47,3 +50,41 @@ export async function getUpstreamServicesForDependency({ return getConnectionStatsItemsWithRelativeImpact(statsItems); } + +export interface UpstreamServicesForDependencyResponse { + services: Array<{ + location: Node; + currentStats: ConnectionStats & { impact: number }; + previousStats: (ConnectionStats & { impact: number }) | null; + }>; +} + +export async function getUpstreamServicesForDependency( + options: Options +): Promise { + const { offset, ...otherOptions } = options; + + const [currentServices, previousServices] = await Promise.all([ + getUpstreamServicesForDependencyForTimeRange(otherOptions), + offset + ? getUpstreamServicesForDependencyForTimeRange({ + ...otherOptions, + offset, + }) + : Promise.resolve([]), + ]); + + return { + services: currentServices.map((service) => { + const { stats, ...rest } = service; + const prev = previousServices.find( + (item) => item.location.id === service.location.id + ); + return { + ...rest, + currentStats: stats, + previousStats: prev?.stats ?? null, + }; + }), + }; +} diff --git a/x-pack/plugins/apm/server/routes/dependencies/route.ts b/x-pack/plugins/apm/server/routes/dependencies/route.ts index 964e1ed95834a..cf577a4d11fbd 100644 --- a/x-pack/plugins/apm/server/routes/dependencies/route.ts +++ b/x-pack/plugins/apm/server/routes/dependencies/route.ts @@ -5,29 +5,45 @@ * 2.0. */ -import * as t from 'io-ts'; import { toBooleanRt, toNumberRt } from '@kbn/io-ts-utils'; -import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; +import * as t from 'io-ts'; +import { offsetRt } from '../../../common/comparison_rt'; +import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getMetadataForDependency } from './get_metadata_for_dependency'; -import { getLatencyChartsForDependency } from './get_latency_charts_for_dependency'; -import { getTopDependencies } from './get_top_dependencies'; -import { getUpstreamServicesForDependency } from './get_upstream_services_for_dependency'; -import { getThroughputChartsForDependency } from './get_throughput_charts_for_dependency'; +import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; +import { + DependencyLatencyDistributionResponse, + getDependencyLatencyDistribution, +} from './get_dependency_latency_distribution'; import { getErrorRateChartsForDependency } from './get_error_rate_charts_for_dependency'; -import { ConnectionStatsItemWithImpact } from '../../../common/connections'; -import { offsetRt } from '../../../common/comparison_rt'; +import { + getLatencyChartsForDependency, + LatencyChartsDependencyResponse, +} from './get_latency_charts_for_dependency'; +import { + getMetadataForDependency, + MetadataForDependencyResponse, +} from './get_metadata_for_dependency'; +import { + getThroughputChartsForDependency, + ThroughputChartsForDependencyResponse, +} from './get_throughput_charts_for_dependency'; +import { + getTopDependencies, + TopDependenciesResponse, +} from './get_top_dependencies'; import { DependencyOperation, getTopDependencyOperations, } from './get_top_dependency_operations'; -import { getDependencyLatencyDistribution } from './get_dependency_latency_distribution'; -import { OverallLatencyDistributionResponse } from '../latency_distribution/types'; import { DependencySpan, getTopDependencySpans, } from './get_top_dependency_spans'; -import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { + getUpstreamServicesForDependency, + UpstreamServicesForDependencyResponse, +} from './get_upstream_services_for_dependency'; const topDependenciesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/dependencies/top_dependencies', @@ -47,84 +63,20 @@ const topDependenciesRoute = createApmServerRoute({ options: { tags: ['access:apm'], }, - handler: async ( - resources - ): Promise<{ - dependencies: Array<{ - currentStats: { - latency: { - value: number | null; - timeseries: Array; - }; - throughput: { - value: number | null; - timeseries: Array; - }; - errorRate: { - value: number | null; - timeseries: Array; - }; - totalTime: { - value: number | null; - timeseries: Array; - }; - } & { impact: number }; - previousStats: - | ({ - latency: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - throughput: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - errorRate: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - totalTime: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - } & { impact: number }) - | null; - location: import('./../../../common/connections').Node; - }>; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { environment, offset, numBuckets, kuery, start, end } = resources.params.query; - const opts = { apmEventClient, start, end, numBuckets, environment, kuery }; - - const [currentDependencies, previousDependencies] = await Promise.all([ - getTopDependencies(opts), - offset ? getTopDependencies({ ...opts, offset }) : Promise.resolve([]), - ]); - - return { - // eslint-disable-next-line @typescript-eslint/explicit-function-return-type - dependencies: currentDependencies.map((dependency) => { - const { stats, ...rest } = dependency; - const prev = previousDependencies.find( - (item): boolean => item.location.id === dependency.location.id - ); - return { - ...rest, - currentStats: stats, - previousStats: prev?.stats ?? null, - }; - }), - }; + return getTopDependencies({ + apmEventClient, + start, + end, + numBuckets, + environment, + kuery, + offset, + }); }, }); @@ -147,57 +99,7 @@ const upstreamServicesForDependencyRoute = createApmServerRoute({ }, handler: async ( resources - ): Promise<{ - services: Array<{ - currentStats: { - latency: { - value: number | null; - timeseries: Array; - }; - throughput: { - value: number | null; - timeseries: Array; - }; - errorRate: { - value: number | null; - timeseries: Array; - }; - totalTime: { - value: number | null; - timeseries: Array; - }; - } & { impact: number }; - previousStats: - | ({ - latency: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - throughput: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - errorRate: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - totalTime: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - } & { impact: number }) - | null; - location: import('./../../../common/connections').Node; - }>; - }> => { + ): Promise => { const apmEventClient = await getApmEventClient(resources); const { query: { @@ -211,7 +113,7 @@ const upstreamServicesForDependencyRoute = createApmServerRoute({ }, } = resources.params; - const opts = { + return getUpstreamServicesForDependency({ dependencyName, apmEventClient, start, @@ -219,35 +121,8 @@ const upstreamServicesForDependencyRoute = createApmServerRoute({ numBuckets, environment, kuery, - }; - - const [currentServices, previousServices] = await Promise.all([ - getUpstreamServicesForDependency(opts), - offset - ? getUpstreamServicesForDependency({ ...opts, offset }) - : Promise.resolve([]), - ]); - - return { - services: currentServices.map( - ( - service - ): Omit & { - currentStats: ConnectionStatsItemWithImpact['stats']; - previousStats: ConnectionStatsItemWithImpact['stats'] | null; - } => { - const { stats, ...rest } = service; - const prev = previousServices.find( - (item): boolean => item.location.id === service.location.id - ); - return { - ...rest, - currentStats: stats, - previousStats: prev?.stats ?? null, - }; - } - ), - }; + offset, + }); }, }); @@ -262,7 +137,7 @@ const dependencyMetadataRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - metadata: { spanType: string | undefined; spanSubtype: string | undefined }; + metadata: MetadataForDependencyResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; @@ -298,12 +173,7 @@ const dependencyLatencyChartsRoute = createApmServerRoute({ options: { tags: ['access:apm'], }, - handler: async ( - resources - ): Promise<{ - currentTimeseries: Array<{ x: number; y: number }>; - comparisonTimeseries: Array<{ x: number; y: number }> | null; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { @@ -317,33 +187,17 @@ const dependencyLatencyChartsRoute = createApmServerRoute({ end, } = params.query; - const [currentTimeseries, comparisonTimeseries] = await Promise.all([ - getLatencyChartsForDependency({ - dependencyName, - spanName, - searchServiceDestinationMetrics, - apmEventClient, - start, - end, - kuery, - environment, - }), - offset - ? getLatencyChartsForDependency({ - dependencyName, - spanName, - searchServiceDestinationMetrics, - apmEventClient, - start, - end, - kuery, - environment, - offset, - }) - : null, - ]); - - return { currentTimeseries, comparisonTimeseries }; + return getLatencyChartsForDependency({ + apmEventClient, + dependencyName, + searchServiceDestinationMetrics, + spanName, + kuery, + environment, + offset, + start, + end, + }); }, }); @@ -367,10 +221,7 @@ const dependencyThroughputChartsRoute = createApmServerRoute({ }, handler: async ( resources - ): Promise<{ - currentTimeseries: Array<{ x: number; y: number | null }>; - comparisonTimeseries: Array<{ x: number; y: number | null }> | null; - }> => { + ): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { @@ -384,33 +235,17 @@ const dependencyThroughputChartsRoute = createApmServerRoute({ end, } = params.query; - const [currentTimeseries, comparisonTimeseries] = await Promise.all([ - getThroughputChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - kuery, - environment, - searchServiceDestinationMetrics, - }), - offset - ? getThroughputChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - kuery, - environment, - offset, - searchServiceDestinationMetrics, - }) - : null, - ]); - - return { currentTimeseries, comparisonTimeseries }; + return getThroughputChartsForDependency({ + apmEventClient, + dependencyName, + searchServiceDestinationMetrics, + spanName, + kuery, + environment, + offset, + start, + end, + }); }, }); @@ -451,33 +286,17 @@ const dependencyFailedTransactionRateChartsRoute = createApmServerRoute({ end, } = params.query; - const [currentTimeseries, comparisonTimeseries] = await Promise.all([ - getErrorRateChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - kuery, - environment, - searchServiceDestinationMetrics, - }), - offset - ? getErrorRateChartsForDependency({ - dependencyName, - spanName, - apmEventClient, - start, - end, - kuery, - environment, - offset, - searchServiceDestinationMetrics, - }) - : null, - ]); - - return { currentTimeseries, comparisonTimeseries }; + return getErrorRateChartsForDependency({ + apmEventClient, + dependencyName, + start, + end, + environment, + kuery, + searchServiceDestinationMetrics, + spanName, + offset, + }); }, }); @@ -549,10 +368,7 @@ const dependencyLatencyDistributionChartsRoute = createApmServerRoute({ }, handler: async ( resources - ): Promise<{ - allSpansDistribution: OverallLatencyDistributionResponse; - failedSpansDistribution: OverallLatencyDistributionResponse; - }> => { + ): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { diff --git a/x-pack/plugins/apm/server/routes/environments/get_environments.ts b/x-pack/plugins/apm/server/routes/environments/get_environments.ts index 056bfa731880b..3175d42de9f88 100644 --- a/x-pack/plugins/apm/server/routes/environments/get_environments.ts +++ b/x-pack/plugins/apm/server/routes/environments/get_environments.ts @@ -34,7 +34,7 @@ export async function getEnvironments({ size: number; start: number; end: number; -}) { +}): Promise { const operationName = serviceName ? 'get_environments_for_service' : 'get_environments'; diff --git a/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts index 9d7116a03226d..1e048caafe9dd 100644 --- a/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts +++ b/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts @@ -10,11 +10,21 @@ import { BUCKET_TARGET_COUNT } from '../../transactions/constants'; import { getBuckets } from './get_buckets'; import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { Maybe } from '../../../../typings/common'; function getBucketSize({ start, end }: { start: number; end: number }) { return Math.floor((end - start) / BUCKET_TARGET_COUNT); } +export interface ErrorDistributionResponse { + currentPeriod: Array<{ x: number; y: number }>; + previousPeriod: Array<{ + x: number; + y: Maybe; + }>; + bucketSize: number; +} + export async function getErrorDistribution({ environment, kuery, @@ -33,7 +43,7 @@ export async function getErrorDistribution({ start: number; end: number; offset?: string; -}) { +}): Promise { const { startWithOffset, endWithOffset } = getOffsetInMs({ start, end, diff --git a/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts b/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts index 1c2b8804d7cb3..31695c0a127d2 100644 --- a/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts +++ b/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts @@ -127,6 +127,16 @@ async function getTopErroneousTransactions({ ); } +export interface TopErroneousTransactionsResponse { + topErroneousTransactions: Array<{ + transactionName: string; + currentPeriodTimeseries: Array<{ x: number; y: number }>; + previousPeriodTimeseries: Array<{ x: number; y: number }>; + transactionType: string | undefined; + occurrences: number; + }>; +} + export async function getTopErroneousTransactionsPeriods({ kuery, serviceName, @@ -147,7 +157,7 @@ export async function getTopErroneousTransactionsPeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const [currentPeriod, previousPeriod] = await Promise.all([ getTopErroneousTransactions({ environment, diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_detailed_statistics.ts index 790508027e0c0..21e7331d099b2 100644 --- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_detailed_statistics.ts @@ -20,6 +20,11 @@ import { getBucketSize } from '../../../../common/utils/get_bucket_size'; import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +interface ErrorGroupDetailedStat { + groupId: string; + timeseries: Coordinate[]; +} + export async function getErrorGroupDetailedStatistics({ kuery, serviceName, @@ -40,7 +45,7 @@ export async function getErrorGroupDetailedStatistics({ start: number; end: number; offset?: string; -}): Promise> { +}): Promise { const { startWithOffset, endWithOffset } = getOffsetInMs({ start, end, @@ -116,6 +121,11 @@ export async function getErrorGroupDetailedStatistics({ }); } +export interface ErrorGroupPeriodsResponse { + currentPeriod: Record; + previousPeriod: Record; +} + export async function getErrorGroupPeriods({ kuery, serviceName, @@ -136,7 +146,7 @@ export async function getErrorGroupPeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const commonProps = { environment, kuery, diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts index 176534c57be4a..cf799a47f7dc4 100644 --- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts @@ -27,6 +27,16 @@ import { environmentQuery } from '../../../../common/utils/environment_query'; import { getErrorName } from '../../../lib/helpers/get_error_name'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +export type ErrorGroupMainStatisticsResponse = Array<{ + groupId: string; + name: string; + lastSeen: number; + occurrences: number; + culprit: string | undefined; + handled: boolean | undefined; + type: string | undefined; +}>; + export async function getErrorGroupMainStatistics({ kuery, serviceName, @@ -51,7 +61,7 @@ export async function getErrorGroupMainStatistics({ maxNumberOfErrorGroups?: number; transactionName?: string; transactionType?: string; -}) { +}): Promise { // sort buckets by last occurrence of error const sortByLatestOccurrence = sortField === 'lastSeen'; diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts index 695210e9e4a85..1947da3832c42 100644 --- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts @@ -19,6 +19,11 @@ import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm const ERROR_SAMPLES_SIZE = 10000; +export interface ErrorGroupSampleIdsResponse { + errorSampleIds: string[]; + occurrencesCount: number; +} + export async function getErrorGroupSampleIds({ environment, kuery, @@ -35,7 +40,7 @@ export async function getErrorGroupSampleIds({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { const params = { apm: { events: [ProcessorEvent.error as const], diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts index de54e24f39468..cb11c0154be61 100644 --- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts @@ -11,6 +11,13 @@ import { ERROR_ID, SERVICE_NAME } from '../../../../common/es_fields/apm'; import { environmentQuery } from '../../../../common/utils/environment_query'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { getTransaction } from '../../transactions/get_transaction'; +import { Transaction } from '../../../../typings/es_schemas/ui/transaction'; +import { APMError } from '../../../../typings/es_schemas/ui/apm_error'; + +export interface ErrorSampleDetailsResponse { + transaction: Transaction | undefined; + error: APMError; +} export async function getErrorSampleDetails({ environment, @@ -28,7 +35,7 @@ export async function getErrorSampleDetails({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { const params = { apm: { events: [ProcessorEvent.error as const], diff --git a/x-pack/plugins/apm/server/routes/errors/route.ts b/x-pack/plugins/apm/server/routes/errors/route.ts index 8a75ee69a41ce..a3e11887f1caf 100644 --- a/x-pack/plugins/apm/server/routes/errors/route.ts +++ b/x-pack/plugins/apm/server/routes/errors/route.ts @@ -8,14 +8,32 @@ import { jsonRt, toNumberRt } from '@kbn/io-ts-utils'; import * as t from 'io-ts'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getErrorDistribution } from './distribution/get_distribution'; +import { + ErrorDistributionResponse, + getErrorDistribution, +} from './distribution/get_distribution'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; -import { getErrorGroupMainStatistics } from './get_error_groups/get_error_group_main_statistics'; -import { getErrorGroupPeriods } from './get_error_groups/get_error_group_detailed_statistics'; -import { getErrorGroupSampleIds } from './get_error_groups/get_error_group_sample_ids'; -import { getErrorSampleDetails } from './get_error_groups/get_error_sample_details'; +import { + ErrorGroupMainStatisticsResponse, + getErrorGroupMainStatistics, +} from './get_error_groups/get_error_group_main_statistics'; +import { + ErrorGroupPeriodsResponse, + getErrorGroupPeriods, +} from './get_error_groups/get_error_group_detailed_statistics'; +import { + ErrorGroupSampleIdsResponse, + getErrorGroupSampleIds, +} from './get_error_groups/get_error_group_sample_ids'; +import { + ErrorSampleDetailsResponse, + getErrorSampleDetails, +} from './get_error_groups/get_error_sample_details'; import { offsetRt } from '../../../common/comparison_rt'; -import { getTopErroneousTransactionsPeriods } from './erroneous_transactions/get_top_erroneous_transactions'; +import { + getTopErroneousTransactionsPeriods, + TopErroneousTransactionsResponse, +} from './erroneous_transactions/get_top_erroneous_transactions'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; const errorsMainStatisticsRoute = createApmServerRoute({ @@ -38,17 +56,7 @@ const errorsMainStatisticsRoute = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - errorGroups: Array<{ - groupId: string; - name: string; - lastSeen: number; - occurrences: number; - culprit: string | undefined; - handled: boolean | undefined; - type: string | undefined; - }>; - }> => { + ): Promise<{ errorGroups: ErrorGroupMainStatisticsResponse }> => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); const { serviceName } = params.path; @@ -92,15 +100,7 @@ const errorsMainStatisticsByTransactionNameRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - errorGroups: Array<{ - groupId: string; - name: string; - lastSeen: number; - occurrences: number; - culprit: string | undefined; - handled: boolean | undefined; - type: string | undefined; - }>; + errorGroups: ErrorGroupMainStatisticsResponse; }> => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); @@ -150,21 +150,7 @@ const errorsDetailedStatisticsRoute = createApmServerRoute({ body: t.type({ groupIds: jsonRt.pipe(t.array(t.string)) }), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - groupId: string; - timeseries: Array; - }>; - previousPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - timeseries: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - groupId: string; - }>; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; @@ -198,12 +184,7 @@ const errorGroupsSamplesRoute = createApmServerRoute({ query: t.intersection([environmentRt, kueryRt, rangeRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - errorSampleIds: string[]; - occurrencesCount: number; - }> => { + handler: async (resources): Promise => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); const { serviceName, groupId } = params.path; @@ -233,14 +214,7 @@ const errorGroupSampleDetailsRoute = createApmServerRoute({ query: t.intersection([environmentRt, kueryRt, rangeRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - transaction: - | import('./../../../typings/es_schemas/ui/transaction').Transaction - | undefined; - error: import('./../../../typings/es_schemas/ui/apm_error').APMError; - }> => { + handler: async (resources): Promise => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); const { serviceName, errorId } = params.path; @@ -275,16 +249,7 @@ const errorDistributionRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: Array<{ x: number; y: number }>; - previousPeriod: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - bucketSize: number; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; @@ -321,17 +286,7 @@ const topErroneousTransactionsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - topErroneousTransactions: Array<{ - transactionName: string; - currentPeriodTimeseries: Array<{ x: number; y: number }>; - previousPeriodTimeseries: Array<{ x: number; y: number }>; - transactionType: string | undefined; - occurrences: number; - }>; - }> => { + handler: async (resources): Promise => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); @@ -340,7 +295,7 @@ const topErroneousTransactionsRoute = createApmServerRoute({ query: { environment, kuery, numBuckets, start, end, offset }, } = params; - return await getTopErroneousTransactionsPeriods({ + return getTopErroneousTransactionsPeriods({ environment, groupId, kuery, diff --git a/x-pack/plugins/apm/server/routes/fleet/get_agents.ts b/x-pack/plugins/apm/server/routes/fleet/get_agents.ts index 92b94b6af3066..81d8e47488a09 100644 --- a/x-pack/plugins/apm/server/routes/fleet/get_agents.ts +++ b/x-pack/plugins/apm/server/routes/fleet/get_agents.ts @@ -6,10 +6,14 @@ */ import { CoreStart, SavedObjectsClientContract } from '@kbn/core/server'; +import { FleetStartContract } from '@kbn/fleet-plugin/server'; +import { CloudSetup } from '@kbn/cloud-plugin/server'; +import { keyBy } from 'lodash'; import { APMPluginStartDependencies } from '../../types'; import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { getApmPackagePolicies } from './get_apm_package_policies'; -export async function getFleetAgents({ +async function getFleetAgentByIds({ policyIds, coreStart, fleetPluginStart, @@ -27,3 +31,67 @@ export async function getFleetAgents({ policyIds ); } + +export interface FleetAgentResponse { + cloudStandaloneSetup: + | { apmServerUrl: string | undefined; secretToken: string | undefined } + | undefined; + isFleetEnabled: boolean; + fleetAgents: Array<{ + id: string; + name: string; + apmServerUrl: any; + secretToken: any; + }>; +} + +export async function getFleetAgents({ + fleetPluginStart, + cloudPluginSetup, + coreStart, +}: { + fleetPluginStart?: FleetStartContract; + cloudPluginSetup?: CloudSetup; + coreStart: CoreStart; +}): Promise { + const cloudStandaloneSetup = cloudPluginSetup + ? { + apmServerUrl: cloudPluginSetup?.apm.url, + secretToken: cloudPluginSetup?.apm.secretToken, + } + : undefined; + + if (!fleetPluginStart) { + return { cloudStandaloneSetup, fleetAgents: [], isFleetEnabled: false }; + } + + // fetches package policies that contains APM integrations + const packagePolicies = await getApmPackagePolicies({ + coreStart, + fleetPluginStart, + }); + + const policiesGroupedById = keyBy(packagePolicies.items, 'policy_id'); + + // fetches all agents with the found package policies + const fleetAgents = await getFleetAgentByIds({ + policyIds: Object.keys(policiesGroupedById), + coreStart, + fleetPluginStart, + }); + + return { + cloudStandaloneSetup, + isFleetEnabled: true, + fleetAgents: fleetAgents.map((agent) => { + const packagePolicy = policiesGroupedById[agent.id]; + const packagePolicyVars = packagePolicy.inputs[0]?.vars; + return { + id: agent.id, + name: agent.name, + apmServerUrl: packagePolicyVars?.url?.value, + secretToken: packagePolicyVars?.secret_token?.value, + }; + }), + }; +} diff --git a/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts b/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts index 2a9e4b9b08dbb..99cddebcf0d91 100644 --- a/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts +++ b/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts @@ -13,11 +13,13 @@ import { } from '../../../common/apm_saved_object_constants'; import { translateLegacySchemaPaths } from './translate_legacy_schema_paths'; +export type UnsupportedApmServerSchema = Array<{ key: string; value: unknown }>; + export async function getUnsupportedApmServerSchema({ savedObjectsClient, }: { savedObjectsClient: SavedObjectsClientContract; -}) { +}): Promise { const { attributes } = await savedObjectsClient.get( APM_SERVER_SCHEMA_SAVED_OBJECT_TYPE, APM_SERVER_SCHEMA_SAVED_OBJECT_ID diff --git a/x-pack/plugins/apm/server/routes/fleet/route.ts b/x-pack/plugins/apm/server/routes/fleet/route.ts index dbc2485eb843e..44233e12eeb2d 100644 --- a/x-pack/plugins/apm/server/routes/fleet/route.ts +++ b/x-pack/plugins/apm/server/routes/fleet/route.ts @@ -8,25 +8,27 @@ import Boom from '@hapi/boom'; import { i18n } from '@kbn/i18n'; import * as t from 'io-ts'; -import { keyBy } from 'lodash'; +import { PackagePolicy } from '@kbn/fleet-plugin/common'; import { APM_SERVER_SCHEMA_SAVED_OBJECT_ID, APM_SERVER_SCHEMA_SAVED_OBJECT_TYPE, } from '../../../common/apm_saved_object_constants'; +import { createInternalESClientWithContext } from '../../lib/helpers/create_es_client/create_internal_es_client'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { createCloudApmPackgePolicy } from './create_cloud_apm_package_policy'; -import { getFleetAgents } from './get_agents'; +import { FleetAgentResponse, getFleetAgents } from './get_agents'; import { getApmPackagePolicies } from './get_apm_package_policies'; +import { getJavaAgentVersionsFromRegistry } from './get_java_agent_versions'; import { - getApmPackagePolicy, - getCloudAgentPolicy, -} from './get_cloud_apm_package_policy'; -import { getUnsupportedApmServerSchema } from './get_unsupported_apm_server_schema'; + getUnsupportedApmServerSchema, + UnsupportedApmServerSchema, +} from './get_unsupported_apm_server_schema'; import { isSuperuser } from './is_superuser'; -import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getLatestApmPackage } from './get_latest_apm_package'; -import { getJavaAgentVersionsFromRegistry } from './get_java_agent_versions'; -import { createInternalESClientWithContext } from '../../lib/helpers/create_es_client/create_internal_es_client'; +import { + runMigrationCheck, + RunMigrationCheckResponse, +} from './run_migration_check'; const hasFleetDataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fleet/has_apm_policies', @@ -48,87 +50,12 @@ const hasFleetDataRoute = createApmServerRoute({ const fleetAgentsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fleet/agents', options: { tags: [] }, - handler: async ({ - core, - plugins, - }): Promise< - | { - cloudStandaloneSetup: - | { - apmServerUrl: string | undefined; - secretToken: string | undefined; - } - | undefined; - fleetAgents: never[]; - isFleetEnabled: false; - } - | { - cloudStandaloneSetup: - | { - apmServerUrl: string | undefined; - secretToken: string | undefined; - } - | undefined; - isFleetEnabled: true; - fleetAgents: Array<{ - id: string; - name: string; - apmServerUrl: any; - secretToken: any; - }>; - } - > => { - const cloudSetup = plugins.cloud?.setup; - const cloudStandaloneSetup = cloudSetup - ? { - apmServerUrl: cloudSetup?.apm.url, - secretToken: cloudSetup?.apm.secretToken, - } - : undefined; - - const fleetPluginStart = await plugins.fleet?.start(); - if (!fleetPluginStart) { - return { cloudStandaloneSetup, fleetAgents: [], isFleetEnabled: false }; - } - // fetches package policies that contains APM integrations - const coreStart = await core.start(); - const packagePolicies = await getApmPackagePolicies({ - coreStart, - fleetPluginStart, - }); - - const policiesGroupedById = keyBy(packagePolicies.items, 'policy_id'); - - // fetches all agents with the found package policies - const fleetAgents = await getFleetAgents({ - policyIds: Object.keys(policiesGroupedById), - coreStart, - fleetPluginStart, + handler: async ({ core, plugins }): Promise => { + return getFleetAgents({ + coreStart: await core.start(), + cloudPluginSetup: plugins.cloud?.setup, + fleetPluginStart: await plugins.fleet?.start(), }); - - return { - cloudStandaloneSetup, - isFleetEnabled: true, - fleetAgents: fleetAgents.map( - ( - agent - ): { - id: string; - name: string; - apmServerUrl: string | undefined; - secretToken: string | undefined; - } => { - const packagePolicy = policiesGroupedById[agent.id]; - const packagePolicyVars = packagePolicy.inputs[0]?.vars; - return { - id: agent.id, - name: agent.name, - apmServerUrl: packagePolicyVars?.url?.value, - secretToken: packagePolicyVars?.secret_token?.value, - }; - } - ), - }; }, }); @@ -159,7 +86,7 @@ const getUnsupportedApmServerSchemaRoute = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ unsupported: Array<{ key: string; value: any }> }> => { + ): Promise<{ unsupported: UnsupportedApmServerSchema }> => { const { context } = resources; const savedObjectsClient = (await context.core).savedObjects.client; return { @@ -171,55 +98,26 @@ const getUnsupportedApmServerSchemaRoute = createApmServerRoute({ const getMigrationCheckRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fleet/migration_check', options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - has_cloud_agent_policy: boolean; - has_cloud_apm_package_policy: boolean; - cloud_apm_migration_enabled: boolean; - has_required_role: boolean | undefined; - cloud_apm_package_policy: - | import('./../../../../fleet/common/index').PackagePolicy - | undefined; - has_apm_integrations: boolean; - latest_apm_package_version: string; - }> => { + handler: async (resources): Promise => { const { core, plugins, context, config, request } = resources; - const cloudApmMigrationEnabled = config.agent.migrations.enabled; - if (!plugins.fleet || !plugins.security) { + + const { fleet, security } = plugins; + + if (!fleet || !security) { throw Boom.internal(FLEET_SECURITY_REQUIRED_MESSAGE); } - const savedObjectsClient = (await context.core).savedObjects.client; - const [fleetPluginStart, securityPluginStart] = await Promise.all([ - plugins.fleet.start(), - plugins.security.start(), - ]); - const hasRequiredRole = isSuperuser({ securityPluginStart, request }); - const cloudAgentPolicy = hasRequiredRole - ? await getCloudAgentPolicy({ - savedObjectsClient, - fleetPluginStart, - }) - : undefined; - const apmPackagePolicy = getApmPackagePolicy(cloudAgentPolicy); - const coreStart = await core.start(); - const packagePolicies = await getApmPackagePolicies({ - coreStart, - fleetPluginStart, - }); - const latestApmPackage = await getLatestApmPackage({ - fleetPluginStart, + + return runMigrationCheck({ + core, + plugins: { + ...plugins, + fleet, + security, + }, + context, + config, request, }); - return { - has_cloud_agent_policy: !!cloudAgentPolicy, - has_cloud_apm_package_policy: !!apmPackagePolicy, - cloud_apm_migration_enabled: cloudApmMigrationEnabled, - has_required_role: hasRequiredRole, - cloud_apm_package_policy: apmPackagePolicy, - has_apm_integrations: packagePolicies.total > 0, - latest_apm_package_version: latestApmPackage.package.version, - }; }, }); @@ -229,21 +127,32 @@ const createCloudApmPackagePolicyRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - cloudApmPackagePolicy: import('./../../../../fleet/common/index').PackagePolicy; + cloudApmPackagePolicy: PackagePolicy; }> => { const { plugins, context, config, request, logger } = resources; const cloudApmMigrationEnabled = config.agent.migrations.enabled; + if (!plugins.fleet || !plugins.security) { throw Boom.internal(FLEET_SECURITY_REQUIRED_MESSAGE); } - const savedObjectsClient = (await context.core).savedObjects.client; - const coreStart = await resources.core.start(); + + const [ + savedObjectsClient, + coreStart, + fleetPluginStart, + securityPluginStart, + ] = await Promise.all([ + (await context.core).savedObjects.client, + resources.core.start(), + plugins.fleet.start(), + plugins.security.start(), + ]); + const esClient = coreStart.elasticsearch.client.asScoped( resources.request ).asCurrentUser; const cloudPluginSetup = plugins.cloud?.setup; - const fleetPluginStart = await plugins.fleet.start(); - const securityPluginStart = await plugins.security.start(); + const hasRequiredRole = isSuperuser({ securityPluginStart, request }); if (!hasRequiredRole || !cloudApmMigrationEnabled) { throw Boom.forbidden(CLOUD_SUPERUSER_REQUIRED_MESSAGE); diff --git a/x-pack/plugins/apm/server/routes/fleet/run_migration_check.ts b/x-pack/plugins/apm/server/routes/fleet/run_migration_check.ts new file mode 100644 index 0000000000000..3d1a2d740df6e --- /dev/null +++ b/x-pack/plugins/apm/server/routes/fleet/run_migration_check.ts @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PackagePolicy } from '@kbn/fleet-plugin/common'; +import { APMRouteHandlerResources } from '../typings'; +import { getApmPackagePolicies } from './get_apm_package_policies'; +import { + getApmPackagePolicy, + getCloudAgentPolicy, +} from './get_cloud_apm_package_policy'; +import { getLatestApmPackage } from './get_latest_apm_package'; +import { isSuperuser } from './is_superuser'; + +export interface RunMigrationCheckResponse { + has_cloud_agent_policy: boolean; + has_cloud_apm_package_policy: boolean; + cloud_apm_migration_enabled: boolean; + has_required_role: boolean | undefined; + cloud_apm_package_policy: PackagePolicy | undefined; + has_apm_integrations: boolean; + latest_apm_package_version: string; +} + +export async function runMigrationCheck({ + config, + plugins, + context, + core, + request, +}: Pick< + APMRouteHandlerResources, + 'plugins' | 'context' | 'core' | 'request' | 'config' +> & { + plugins: Pick< + Required, + 'fleet' | 'security' + >; +}): Promise { + const cloudApmMigrationEnabled = config.agent.migrations.enabled; + + const savedObjectsClient = (await context.core).savedObjects.client; + const [fleetPluginStart, securityPluginStart] = await Promise.all([ + plugins.fleet.start(), + plugins.security.start(), + ]); + + const hasRequiredRole = isSuperuser({ securityPluginStart, request }); + const cloudAgentPolicy = hasRequiredRole + ? await getCloudAgentPolicy({ + savedObjectsClient, + fleetPluginStart, + }) + : undefined; + const apmPackagePolicy = getApmPackagePolicy(cloudAgentPolicy); + const coreStart = await core.start(); + const packagePolicies = await getApmPackagePolicies({ + coreStart, + fleetPluginStart, + }); + const latestApmPackage = await getLatestApmPackage({ + fleetPluginStart, + request, + }); + return { + has_cloud_agent_policy: !!cloudAgentPolicy, + has_cloud_apm_package_policy: !!apmPackagePolicy, + cloud_apm_migration_enabled: cloudApmMigrationEnabled, + has_required_role: hasRequiredRole, + cloud_apm_package_policy: apmPackagePolicy, + has_apm_integrations: packagePolicies.total > 0, + latest_apm_package_version: latestApmPackage.package.version, + }; +} diff --git a/x-pack/plugins/apm/server/routes/fleet/source_maps.ts b/x-pack/plugins/apm/server/routes/fleet/source_maps.ts index 7a3850c534d96..ad2bc870c7f33 100644 --- a/x-pack/plugins/apm/server/routes/fleet/source_maps.ts +++ b/x-pack/plugins/apm/server/routes/fleet/source_maps.ts @@ -40,6 +40,25 @@ export function getApmArtifactClient(fleetPluginStart: FleetPluginStart) { return fleetPluginStart.createArtifactsClient('apm'); } +export interface ListSourceMapArtifactsResponse { + artifacts: Array<{ + body: ApmSourceMapArtifactBody; + id: string; + created: string; + compressionAlgorithm: 'none' | 'zlib'; + encryptionAlgorithm: 'none'; + decodedSha256: string; + decodedSize: number; + encodedSha256: string; + encodedSize: number; + identifier: string; + packageName: string; + relative_url: string; + type?: string | undefined; + }>; + total: number; +} + export async function listSourceMapArtifacts({ fleetPluginStart, perPage = 20, @@ -48,7 +67,7 @@ export async function listSourceMapArtifacts({ fleetPluginStart: FleetPluginStart; perPage?: number; page?: number; -}) { +}): Promise { const apmArtifactClient = getApmArtifactClient(fleetPluginStart); const artifactsResponse = await apmArtifactClient.listArtifacts({ kuery: 'type: sourcemap', diff --git a/x-pack/plugins/apm/server/routes/latency_distribution/route.ts b/x-pack/plugins/apm/server/routes/latency_distribution/route.ts index 0ef6ba54f9877..73c5e0c8a69b1 100644 --- a/x-pack/plugins/apm/server/routes/latency_distribution/route.ts +++ b/x-pack/plugins/apm/server/routes/latency_distribution/route.ts @@ -23,6 +23,7 @@ import { LatencyDistributionChartType, } from '../../../common/latency_distribution_chart_types'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { OverallLatencyDistributionResponse } from './types'; const latencyOverallTransactionDistributionRoute = createApmServerRoute({ endpoint: 'POST /internal/apm/latency/overall_distribution/transactions', @@ -51,9 +52,7 @@ const latencyOverallTransactionDistributionRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { diff --git a/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts b/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts index 46a6610759e53..7f58663ced92b 100644 --- a/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts +++ b/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts @@ -46,7 +46,7 @@ export type GenericMetricsRequest = APMEventESSearchRequest & { }; }; -export type GenericMetricsChart = Awaited; +export type GenericMetricsChart = FetchAndTransformMetrics; export interface FetchAndTransformMetrics { title: string; diff --git a/x-pack/plugins/apm/server/routes/metrics/get_service_nodes.ts b/x-pack/plugins/apm/server/routes/metrics/get_service_nodes.ts index c59da62d0c815..edf7f76bd39e1 100644 --- a/x-pack/plugins/apm/server/routes/metrics/get_service_nodes.ts +++ b/x-pack/plugins/apm/server/routes/metrics/get_service_nodes.ts @@ -20,7 +20,16 @@ import { SERVICE_NAME, SERVICE_NODE_NAME } from '../../../common/es_fields/apm'; import { environmentQuery } from '../../../common/utils/environment_query'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -const getServiceNodes = async ({ +export type ServiceNodesResponse = Array<{ + name: string; + cpu: number | null; + heapMemory: number | null; + hostName: string | null | undefined; + nonHeapMemory: number | null; + threadCount: number | null; +}>; + +async function getServiceNodes({ kuery, apmEventClient, serviceName, @@ -34,7 +43,7 @@ const getServiceNodes = async ({ environment: string; start: number; end: number; -}) => { +}): Promise { const params = { apm: { events: [ProcessorEvent.metric], @@ -119,6 +128,6 @@ const getServiceNodes = async ({ item.nonHeapMemory !== null || item.threadCount != null ); -}; +} export { getServiceNodes }; diff --git a/x-pack/plugins/apm/server/routes/metrics/route.ts b/x-pack/plugins/apm/server/routes/metrics/route.ts index c8fb71c3455f9..74aac4f77b6e9 100644 --- a/x-pack/plugins/apm/server/routes/metrics/route.ts +++ b/x-pack/plugins/apm/server/routes/metrics/route.ts @@ -11,7 +11,7 @@ import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; import { FetchAndTransformMetrics } from './fetch_and_transform_metrics'; import { getMetricsChartDataByAgent } from './get_metrics_chart_data_by_agent'; -import { getServiceNodes } from './get_service_nodes'; +import { getServiceNodes, ServiceNodesResponse } from './get_service_nodes'; import { metricsServerlessRouteRepository } from './serverless/route'; const metricsChartsRoute = createApmServerRoute({ @@ -71,16 +71,7 @@ const serviceMetricsJvm = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - serviceNodes: Array<{ - name: string; - cpu: number | null; - heapMemory: number | null; - hostName: string | null | undefined; - nonHeapMemory: number | null; - threadCount: number | null; - }>; - }> => { + ): Promise<{ serviceNodes: ServiceNodesResponse }> => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/get_active_instances_overview.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/get_active_instances_overview.ts index 509f565403a16..594c92c8de02a 100644 --- a/x-pack/plugins/apm/server/routes/metrics/serverless/get_active_instances_overview.ts +++ b/x-pack/plugins/apm/server/routes/metrics/serverless/get_active_instances_overview.ts @@ -59,7 +59,7 @@ export async function getServerlessActiveInstancesOverview({ end: number; serverlessId?: string; apmEventClient: APMEventClient; -}) { +}): Promise { const { intervalString } = getBucketSize({ start, end, diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_agent_metrics_chart.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_agent_metrics_chart.ts index 1d1bf19b635be..f2da5e65b3e07 100644 --- a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_agent_metrics_chart.ts +++ b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_agent_metrics_chart.ts @@ -14,6 +14,7 @@ import { getComputeUsageChart } from './get_compute_usage_chart'; import { getServerlessFunctionLatencyChart } from './get_serverless_function_latency_chart'; import { APMConfig } from '../../..'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { FetchAndTransformMetrics } from '../fetch_and_transform_metrics'; export function getServerlessAgentMetricsCharts({ environment, @@ -33,7 +34,7 @@ export function getServerlessAgentMetricsCharts({ start: number; end: number; serverlessId?: string; -}) { +}): Promise { return withApmSpan('get_serverless_agent_metric_charts', async () => { const searchAggregatedTransactions = await getSearchTransactionsEvents({ config, diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_functions_overview.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_functions_overview.ts index d253b6bc63f85..de44a840f9dd7 100644 --- a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_functions_overview.ts +++ b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_functions_overview.ts @@ -25,6 +25,16 @@ import { environmentQuery } from '../../../../common/utils/environment_query'; import { calcMemoryUsed } from './helper'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +export type ServerlessFunctionsOverviewResponse = Array<{ + serverlessId: string; + serverlessFunctionName: string; + serverlessDurationAvg: number | null; + billedDurationAvg: number | null; + coldStartCount: number | null; + avgMemoryUsed: number | undefined; + memorySize: number | null; +}>; + export async function getServerlessFunctionsOverview({ end, environment, @@ -39,7 +49,7 @@ export async function getServerlessFunctionsOverview({ start: number; end: number; apmEventClient: APMEventClient; -}) { +}): Promise { const params = { apm: { events: [ProcessorEvent.metric], diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts index c8d3a1db23dce..8deb85264e019 100644 --- a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts +++ b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts @@ -79,6 +79,14 @@ async function getServerlessTransactionThroughput({ return response.hits.total.value; } +export interface ServerlessSummaryResponse { + memoryUsageAvgRate: number | undefined; + serverlessFunctionsTotal: number | undefined; + serverlessDurationAvg: number | null | undefined; + billedDurationAvg: number | null | undefined; + estimatedCost: number | undefined; +} + export async function getServerlessSummary({ end, environment, @@ -99,7 +107,7 @@ export async function getServerlessSummary({ apmEventClient: APMEventClient; awsLambdaPriceFactor?: AWSLambdaPriceFactor; awsLambdaRequestCostPerMillion?: number; -}) { +}): Promise { const params = { apm: { events: [ProcessorEvent.metric], diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/route.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/route.ts index af907851623b5..dd63eaf542783 100644 --- a/x-pack/plugins/apm/server/routes/metrics/serverless/route.ts +++ b/x-pack/plugins/apm/server/routes/metrics/serverless/route.ts @@ -13,14 +13,23 @@ import { import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../../default_api_types'; import { getServerlessAgentMetricsCharts } from './get_serverless_agent_metrics_chart'; -import { getServerlessActiveInstancesOverview } from './get_active_instances_overview'; -import { getServerlessFunctionsOverview } from './get_serverless_functions_overview'; +import { + ActiveInstanceOverview, + getServerlessActiveInstancesOverview, +} from './get_active_instances_overview'; +import { + getServerlessFunctionsOverview, + ServerlessFunctionsOverviewResponse, +} from './get_serverless_functions_overview'; import { AWSLambdaPriceFactor, getServerlessSummary, + ServerlessSummaryResponse, } from './get_serverless_summary'; import { getActiveInstancesTimeseries } from './get_active_instances_timeseries'; import { getApmEventClient } from '../../../lib/helpers/get_apm_event_client'; +import { FetchAndTransformMetrics } from '../fetch_and_transform_metrics'; +import { Coordinate } from '../../../../typings/timeseries'; const serverlessMetricsChartsRoute = createApmServerRoute({ endpoint: @@ -40,7 +49,7 @@ const serverlessMetricsChartsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - charts: Awaited>; + charts: FetchAndTransformMetrics[]; }> => { const { params, config } = resources; const apmEventClient = await getApmEventClient(resources); @@ -80,10 +89,8 @@ const serverlessMetricsActiveInstancesRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - activeInstances: Awaited< - ReturnType - >; - timeseries: Awaited>; + activeInstances: ActiveInstanceOverview[]; + timeseries: Coordinate[]; }> => { const { params, config } = resources; const apmEventClient = await getApmEventClient(resources); @@ -122,9 +129,7 @@ const serverlessMetricsFunctionsOverviewRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - serverlessFunctionsOverview: Awaited< - ReturnType - >; + serverlessFunctionsOverview: ServerlessFunctionsOverviewResponse; }> => { const { params } = resources; const apmEventClient = await getApmEventClient(resources); @@ -159,9 +164,7 @@ const serverlessMetricsSummaryRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise>> => { + handler: async (resources): Promise => { const { params, context } = resources; const { uiSettings: { client: uiSettingsClient }, diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts index ff6292eddb27a..a0a33db27274c 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts @@ -28,7 +28,7 @@ type MobileFiltersTypes = | 'osVersion' | 'netConnectionType'; -type MobileFilters = Array<{ +export type MobileFiltersResponse = Array<{ key: MobileFiltersTypes; options: string[]; }>; @@ -49,7 +49,7 @@ export async function getMobileFilters({ environment: string; start: number; end: number; -}): Promise { +}): Promise { const response = await apmEventClient.search('get_mobile_filters', { apm: { events: [ProcessorEvent.transaction], diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_terms_by_field.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_terms_by_field.ts index 6f8fcbf040624..d97173c333f44 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_terms_by_field.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_terms_by_field.ts @@ -15,6 +15,11 @@ import { SERVICE_NAME } from '../../../common/es_fields/apm'; import { environmentQuery } from '../../../common/utils/environment_query'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export type MobileTermsByFieldResponse = Array<{ + label: string; + count: number; +}>; + export async function getMobileTermsByField({ kuery, apmEventClient, @@ -33,7 +38,7 @@ export async function getMobileTermsByField({ end: number; size: number; fieldName: string; -}): Promise> { +}): Promise { const response = await apmEventClient.search( `get_mobile_terms_by_${fieldName}`, { diff --git a/x-pack/plugins/apm/server/routes/mobile/route.ts b/x-pack/plugins/apm/server/routes/mobile/route.ts index b0ead6be216a1..b86223e4f1bca 100644 --- a/x-pack/plugins/apm/server/routes/mobile/route.ts +++ b/x-pack/plugins/apm/server/routes/mobile/route.ts @@ -15,14 +15,17 @@ import { getMobileHttpRequests, HttpRequestsTimeseries, } from './get_mobile_http_requests'; -import { getMobileFilters } from './get_mobile_filters'; +import { getMobileFilters, MobileFiltersResponse } from './get_mobile_filters'; import { getMobileSessions, SessionsTimeseries } from './get_mobile_sessions'; import { getMobileStatsPeriods, MobilePeriodStats } from './get_mobile_stats'; import { getMobileLocationStatsPeriods, MobileLocationStats, } from './get_mobile_location_stats'; -import { getMobileTermsByField } from './get_mobile_terms_by_field'; +import { + getMobileTermsByField, + MobileTermsByFieldResponse, +} from './get_mobile_terms_by_field'; const mobileFiltersRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/mobile/filters', @@ -43,7 +46,7 @@ const mobileFiltersRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - mobileFilters: Awaited>; + mobileFilters: MobileFiltersResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; @@ -241,7 +244,7 @@ const mobileTermsByFieldRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - terms: Awaited>; + terms: MobileTermsByFieldResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; diff --git a/x-pack/plugins/apm/server/routes/observability_overview/get_observability_overview_data.ts b/x-pack/plugins/apm/server/routes/observability_overview/get_observability_overview_data.ts new file mode 100644 index 0000000000000..4af9253b2fe1d --- /dev/null +++ b/x-pack/plugins/apm/server/routes/observability_overview/get_observability_overview_data.ts @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { withApmSpan } from '../../utils/with_apm_span'; +import { getServiceCount } from './get_service_count'; +import { getTransactionsPerMinute } from './get_transactions_per_minute'; + +export interface ObservabilityOverviewResponse { + serviceCount: number; + transactionPerMinute: { + value: number | undefined; + timeseries: Array<{ x: number; y: number | null }>; + }; +} + +export function getObservabilityOverviewData({ + apmEventClient, + start, + end, + searchAggregatedTransactions, + bucketSize, + intervalString, +}: { + apmEventClient: APMEventClient; + start: number; + end: number; + searchAggregatedTransactions: boolean; + bucketSize: number; + intervalString: string; +}): Promise { + return withApmSpan( + 'observability_overview', + async (): Promise<{ + serviceCount: number; + transactionPerMinute: + | { value: undefined; timeseries: never[] } + | { + value: number; + timeseries: Array<{ x: number; y: number | null }>; + }; + }> => { + const [serviceCount, transactionPerMinute] = await Promise.all([ + getServiceCount({ + apmEventClient, + searchAggregatedTransactions, + start, + end, + }), + getTransactionsPerMinute({ + apmEventClient, + bucketSize, + searchAggregatedTransactions, + start, + end, + intervalString, + }), + ]); + return { serviceCount, transactionPerMinute }; + } + ); +} diff --git a/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts b/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts index 66436caa7a405..01cb73ebeedf9 100644 --- a/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts @@ -9,13 +9,24 @@ import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; import { ApmIndicesConfig } from '../settings/apm_indices/get_apm_indices'; +export interface HasDataResponse { + hasData: boolean; + indices: Readonly<{ + error: string; + onboarding: string; + span: string; + transaction: string; + metric: string; + }>; +} + export async function getHasData({ indices, apmEventClient, }: { indices: ApmIndicesConfig; apmEventClient: APMEventClient; -}) { +}): Promise { try { const params = { apm: { diff --git a/x-pack/plugins/apm/server/routes/observability_overview/route.ts b/x-pack/plugins/apm/server/routes/observability_overview/route.ts index 600b3929d7e6e..882c4615e91c1 100644 --- a/x-pack/plugins/apm/server/routes/observability_overview/route.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/route.ts @@ -5,26 +5,22 @@ * 2.0. */ -import * as t from 'io-ts'; import { toNumberRt } from '@kbn/io-ts-utils'; -import { getServiceCount } from './get_service_count'; -import { getTransactionsPerMinute } from './get_transactions_per_minute'; -import { getHasData } from './has_data'; -import { rangeRt } from '../default_api_types'; +import * as t from 'io-ts'; +import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; -import { withApmSpan } from '../../utils/with_apm_span'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { rangeRt } from '../default_api_types'; +import { + getObservabilityOverviewData, + ObservabilityOverviewResponse, +} from './get_observability_overview_data'; +import { getHasData, HasDataResponse } from './has_data'; const observabilityOverviewHasDataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/observability_overview/has_data', options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - hasData: boolean; - indices: import('./../../../../observability/common/typings').ApmIndicesConfig; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); return await getHasData({ indices: apmEventClient.indices, @@ -42,14 +38,7 @@ const observabilityOverviewRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - serviceCount: number; - transactionPerMinute: - | { value: undefined; timeseries: never[] } - | { value: number; timeseries: Array<{ x: number; y: number | null }> }; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { bucketSize, intervalString, start, end } = resources.params.query; @@ -61,36 +50,14 @@ const observabilityOverviewRoute = createApmServerRoute({ kuery: '', }); - return withApmSpan( - 'observability_overview', - async (): Promise<{ - serviceCount: number; - transactionPerMinute: - | { value: undefined; timeseries: never[] } - | { - value: number; - timeseries: Array<{ x: number; y: number | null }>; - }; - }> => { - const [serviceCount, transactionPerMinute] = await Promise.all([ - getServiceCount({ - apmEventClient, - searchAggregatedTransactions, - start, - end, - }), - getTransactionsPerMinute({ - apmEventClient, - bucketSize, - searchAggregatedTransactions, - start, - end, - intervalString, - }), - ]); - return { serviceCount, transactionPerMinute }; - } - ); + return getObservabilityOverviewData({ + apmEventClient, + start, + end, + bucketSize, + intervalString, + searchAggregatedTransactions, + }); }, }); diff --git a/x-pack/plugins/apm/server/routes/service_groups/lookup_services.ts b/x-pack/plugins/apm/server/routes/service_groups/lookup_services.ts index 734cb3ddd6251..ebf1a29ca5a77 100644 --- a/x-pack/plugins/apm/server/routes/service_groups/lookup_services.ts +++ b/x-pack/plugins/apm/server/routes/service_groups/lookup_services.ts @@ -15,6 +15,12 @@ import { } from '../../../common/es_fields/apm'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export type LookupServicesResponse = Array<{ + serviceName: string; + environments: string[]; + agentName: AgentName; +}>; + export async function lookupServices({ apmEventClient, kuery, @@ -27,7 +33,7 @@ export async function lookupServices({ start: number; end: number; maxNumberOfServices: number; -}) { +}): Promise { const response = await apmEventClient.search('lookup_services', { apm: { events: [ diff --git a/x-pack/plugins/apm/server/routes/service_groups/route.ts b/x-pack/plugins/apm/server/routes/service_groups/route.ts index 881092134700f..7974d3762eb25 100644 --- a/x-pack/plugins/apm/server/routes/service_groups/route.ts +++ b/x-pack/plugins/apm/server/routes/service_groups/route.ts @@ -15,7 +15,7 @@ import { getServiceGroups } from './get_service_groups'; import { getServiceGroup } from './get_service_group'; import { saveServiceGroup } from './save_service_group'; import { deleteServiceGroup } from './delete_service_group'; -import { lookupServices } from './lookup_services'; +import { lookupServices, LookupServicesResponse } from './lookup_services'; import { validateServiceGroupKuery, SavedServiceGroup, @@ -84,7 +84,7 @@ const serviceGroupSaveRoute = createApmServerRoute({ }), }), options: { tags: ['access:apm', 'access:apm_write'] }, - handler: async (resources): ReturnType => { + handler: async (resources): Promise => { const { context, params } = resources; const { serviceGroupId } = params.query; const { @@ -132,9 +132,7 @@ const serviceGroupServicesRoute = createApmServerRoute({ options: { tags: ['access:apm'], }, - handler: async ( - resources - ): Promise<{ items: Awaited> }> => { + handler: async (resources): Promise<{ items: LookupServicesResponse }> => { const { params, context } = resources; const { kuery = '', start, end } = params.query; const { diff --git a/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts index d3314b609f148..66556a7e32e50 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts @@ -7,19 +7,21 @@ import { Logger } from '@kbn/core/server'; import { chunk } from 'lodash'; - -import { withApmSpan } from '../../utils/with_apm_span'; +import { APMConfig } from '../..'; +import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; import { MlClient } from '../../lib/helpers/get_ml_client'; +import { withApmSpan } from '../../utils/with_apm_span'; import { DEFAULT_ANOMALIES, getServiceAnomalies, } from './get_service_anomalies'; import { getServiceMapFromTraceIds } from './get_service_map_from_trace_ids'; -import { getTraceSampleIds } from './get_trace_sample_ids'; -import { transformServiceMapResponses } from './transform_service_map_responses'; -import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -import { APMConfig } from '../..'; import { getServiceStats } from './get_service_stats'; +import { getTraceSampleIds } from './get_trace_sample_ids'; +import { + TransformServiceMapResponse, + transformServiceMapResponses, +} from './transform_service_map_responses'; export interface IEnvOptions { mlClient?: MlClient; @@ -99,7 +101,7 @@ export type ServicesResponse = Awaited>; export function getServiceMap( options: IEnvOptions & { maxNumberOfServices: number } -) { +): Promise { return withApmSpan('get_service_map', async () => { const { logger } = options; const anomaliesPromise = getServiceAnomalies( @@ -118,9 +120,11 @@ export function getServiceMap( anomaliesPromise, ]); return transformServiceMapResponses({ - ...connectionData, - services: servicesData, - anomalies, + response: { + ...connectionData, + services: servicesData, + anomalies, + }, }); }); } diff --git a/x-pack/plugins/apm/server/routes/service_map/get_service_map_dependency_node_info.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_dependency_node_info.ts index fabd2eabcb827..a4a09ee63df67 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_service_map_dependency_node_info.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_dependency_node_info.ts @@ -36,7 +36,7 @@ interface Options { offset?: string; } -export function getServiceMapDependencyNodeInfo({ +function getServiceMapDependencyNodeInfoForTimeRange({ environment, dependencyName, apmEventClient, @@ -167,3 +167,34 @@ export function getServiceMapDependencyNodeInfo({ }; }); } + +export interface ServiceMapServiceDependencyInfoResponse { + currentPeriod: NodeStats; + previousPeriod: NodeStats | undefined; +} + +export async function getServiceMapDependencyNodeInfo({ + apmEventClient, + dependencyName, + start, + end, + environment, + offset, +}: Options): Promise { + const commonProps = { + environment, + apmEventClient, + dependencyName, + start, + end, + }; + + const [currentPeriod, previousPeriod] = await Promise.all([ + getServiceMapDependencyNodeInfoForTimeRange(commonProps), + offset + ? getServiceMapDependencyNodeInfoForTimeRange({ ...commonProps, offset }) + : undefined, + ]); + + return { currentPeriod, previousPeriod }; +} diff --git a/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts index 9c7665ed97e2b..78a544c70b4d2 100644 --- a/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts @@ -59,7 +59,7 @@ interface TaskParameters { offsetInMs: number; } -export function getServiceMapServiceNodeInfo({ +function getServiceMapServiceNodeInfoForTimeRange({ environment, serviceName, apmEventClient, @@ -362,3 +362,36 @@ function getMemoryStats({ return memoryUsage; }); } + +export interface ServiceMapServiceNodeInfoResponse { + currentPeriod: NodeStats; + previousPeriod: NodeStats | undefined; +} + +export async function getServiceMapServiceNodeInfo({ + environment, + apmEventClient, + serviceName, + searchAggregatedTransactions, + start, + end, + offset, +}: Options): Promise { + const commonProps = { + environment, + apmEventClient, + serviceName, + searchAggregatedTransactions, + start, + end, + }; + + const [currentPeriod, previousPeriod] = await Promise.all([ + getServiceMapServiceNodeInfoForTimeRange(commonProps), + offset + ? getServiceMapServiceNodeInfoForTimeRange({ ...commonProps, offset }) + : undefined, + ]); + + return { currentPeriod, previousPeriod }; +} diff --git a/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts b/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts index 6b5bd0f761806..07c21847f063c 100644 --- a/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts +++ b/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts @@ -6,19 +6,44 @@ */ import { i18n } from '@kbn/i18n'; -import { groupBy } from 'lodash'; +import { compact, groupBy } from 'lodash'; import { ValuesType } from 'utility-types'; import { SPAN_TYPE, SPAN_SUBTYPE } from '../../../common/es_fields/apm'; import { + ConnectionEdge, ConnectionElement, + ConnectionNode, isSpanGroupingSupported, } from '../../../common/service_map'; const MINIMUM_GROUP_SIZE = 4; +type GroupedConnection = ConnectionNode | ConnectionEdge; + +interface GroupedNode { + data: { + id: string; + 'span.type': string; + label: string; + groupedConnections: GroupedConnection[]; + }; +} + +interface GroupedEdge { + data: { + id: string; + source: string; + target: string; + }; +} + +export interface GroupResourceNodesResponse { + elements: Array; +} + export function groupResourceNodes(responseData: { elements: ConnectionElement[]; -}) { +}): GroupResourceNodesResponse { type ElementDefinition = ValuesType; const isEdge = (el: ElementDefinition) => Boolean(el.data.source && el.data.target); @@ -84,28 +109,30 @@ export function groupResourceNodes(responseData: { }); // add in a composite node for each new group - const groupedNodes = nodeGroups.map(({ id, targets }) => ({ - data: { - id, - 'span.type': 'external', - label: i18n.translate('xpack.apm.serviceMap.resourceCountLabel', { - defaultMessage: '{count} resources', - values: { count: targets.length }, - }), - groupedConnections: targets - .map((targetId) => { - const targetElement = nodes.find( - (element) => element.data.id === targetId - ); - if (!targetElement) { - return; - } - const { data } = targetElement; - return { label: data.label || data.id, ...data }; - }) - .filter((node) => !!node), - }, - })); + const groupedNodes = nodeGroups.map( + ({ id, targets }): GroupedNode => ({ + data: { + id, + 'span.type': 'external', + label: i18n.translate('xpack.apm.serviceMap.resourceCountLabel', { + defaultMessage: '{count} resources', + values: { count: targets.length }, + }), + groupedConnections: compact( + targets.map((targetId) => { + const targetElement = nodes.find( + (element) => element.data.id === targetId + ); + if (!targetElement) { + return undefined; + } + const { data } = targetElement; + return { label: data.label || data.id, ...data }; + }) + ), + }, + }) + ); // add new edges from source to new groups const groupedEdges: Array<{ diff --git a/x-pack/plugins/apm/server/routes/service_map/route.ts b/x-pack/plugins/apm/server/routes/service_map/route.ts index c65dca01c4385..23773517ee289 100644 --- a/x-pack/plugins/apm/server/routes/service_map/route.ts +++ b/x-pack/plugins/apm/server/routes/service_map/route.ts @@ -14,13 +14,20 @@ import { notifyFeatureUsage } from '../../feature'; import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { getMlClient } from '../../lib/helpers/get_ml_client'; import { getServiceMap } from './get_service_map'; -import { getServiceMapDependencyNodeInfo } from './get_service_map_dependency_node_info'; -import { getServiceMapServiceNodeInfo } from './get_service_map_service_node_info'; +import { + getServiceMapDependencyNodeInfo, + ServiceMapServiceDependencyInfoResponse, +} from './get_service_map_dependency_node_info'; +import { + getServiceMapServiceNodeInfo, + ServiceMapServiceNodeInfoResponse, +} from './get_service_map_service_node_info'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, rangeRt, kueryRt } from '../default_api_types'; import { getServiceGroup } from '../service_groups/get_service_group'; import { offsetRt } from '../../../common/comparison_rt'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { TransformServiceMapResponse } from './transform_service_map_responses'; const serviceMapRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/service-map', @@ -36,57 +43,7 @@ const serviceMapRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - elements: Array< - | import('./../../../common/service_map').ConnectionElement - | { - data: { - id: string; - 'span.type': string; - label: string; - groupedConnections: Array< - | { - 'service.name': string; - 'service.environment': string | null; - 'agent.name': string; - serviceAnomalyStats?: - | import('./../../../common/anomaly_detection/index').ServiceAnomalyStats - | undefined; - label: string | undefined; - id?: string | undefined; - parent?: string | undefined; - position?: - | import('./../../../../../../node_modules/@types/cytoscape/index').Position - | undefined; - } - | { - 'span.destination.service.resource': string; - 'span.type': string; - 'span.subtype': string; - label: string | undefined; - id?: string | undefined; - parent?: string | undefined; - position?: - | import('./../../../../../../node_modules/@types/cytoscape/index').Position - | undefined; - } - | { - id: string; - source: string | undefined; - target: string | undefined; - label: string | undefined; - bidirectional?: boolean | undefined; - isInverseEdge?: boolean | undefined; - } - | undefined - >; - }; - } - | { data: { id: string; source: string; target: string } } - >; - }> => { + handler: async (resources): Promise => { const { config, context, params, logger } = resources; if (!config.serviceMapEnabled) { throw Boom.notFound(); @@ -163,14 +120,7 @@ const serviceMapServiceNodeRoute = createApmServerRoute({ query: t.intersection([environmentRt, rangeRt, offsetRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: import('./../../../common/service_map').NodeStats; - previousPeriod: - | import('./../../../common/service_map').NodeStats - | undefined; - }> => { + handler: async (resources): Promise => { const { config, context, params } = resources; if (!config.serviceMapEnabled) { @@ -195,23 +145,15 @@ const serviceMapServiceNodeRoute = createApmServerRoute({ end, }); - const commonProps = { + return getServiceMapServiceNodeInfo({ environment, apmEventClient, serviceName, searchAggregatedTransactions, start, end, - }; - - const [currentPeriod, previousPeriod] = await Promise.all([ - getServiceMapServiceNodeInfo(commonProps), - offset - ? getServiceMapServiceNodeInfo({ ...commonProps, offset }) - : undefined, - ]); - - return { currentPeriod, previousPeriod }; + offset, + }); }, }); @@ -228,12 +170,7 @@ const serviceMapDependencyNodeRoute = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - currentPeriod: import('./../../../common/service_map').NodeStats; - previousPeriod: - | import('./../../../common/service_map').NodeStats - | undefined; - }> => { + ): Promise => { const { config, context, params } = resources; if (!config.serviceMapEnabled) { @@ -249,22 +186,14 @@ const serviceMapDependencyNodeRoute = createApmServerRoute({ query: { dependencyName, environment, start, end, offset }, } = params; - const commonProps = { - environment, + return getServiceMapDependencyNodeInfo({ apmEventClient, dependencyName, start, end, - }; - - const [currentPeriod, previousPeriod] = await Promise.all([ - getServiceMapDependencyNodeInfo(commonProps), - offset - ? getServiceMapDependencyNodeInfo({ ...commonProps, offset }) - : undefined, - ]); - - return { currentPeriod, previousPeriod }; + environment, + offset, + }); }, }); diff --git a/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts index f33f1fdf28094..2a61baf923e83 100644 --- a/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts +++ b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts @@ -71,7 +71,7 @@ describe('transformServiceMapResponses', () => { anomalies, }; - const { elements } = transformServiceMapResponses(response); + const { elements } = transformServiceMapResponses({ response }); const connection = elements.find( (element) => 'source' in element.data && 'target' in element.data @@ -113,7 +113,7 @@ describe('transformServiceMapResponses', () => { anomalies, }; - const { elements } = transformServiceMapResponses(response); + const { elements } = transformServiceMapResponses({ response }); const connections = elements.filter((element) => 'source' in element.data); @@ -151,7 +151,7 @@ describe('transformServiceMapResponses', () => { anomalies, }; - const { elements } = transformServiceMapResponses(response); + const { elements } = transformServiceMapResponses({ response }); const nodes = elements.filter((element) => !('source' in element.data)); @@ -176,7 +176,7 @@ describe('transformServiceMapResponses', () => { anomalies, }; - const { elements } = transformServiceMapResponses(response); + const { elements } = transformServiceMapResponses({ response }); expect(elements.length).toBe(3); }); diff --git a/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts index 54299848473bb..7ed09d9eb4f65 100644 --- a/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts +++ b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts @@ -22,7 +22,10 @@ import { } from '../../../common/service_map'; import { ConnectionsResponse, ServicesResponse } from './get_service_map'; import { ServiceAnomaliesResponse } from './get_service_anomalies'; -import { groupResourceNodes } from './group_resource_nodes'; +import { + groupResourceNodes, + GroupResourceNodesResponse, +} from './group_resource_nodes'; function getConnectionNodeId(node: ConnectionNode): string { if ('span.destination.service.resource' in node) { @@ -71,7 +74,13 @@ export type ServiceMapResponse = ConnectionsResponse & { anomalies: ServiceAnomaliesResponse; }; -export function transformServiceMapResponses(response: ServiceMapResponse) { +export type TransformServiceMapResponse = GroupResourceNodesResponse; + +export function transformServiceMapResponses({ + response, +}: { + response: ServiceMapResponse; +}): TransformServiceMapResponse { const { discoveredServices, services, connections, anomalies } = response; const allNodes = getAllNodes(services, connections); diff --git a/x-pack/plugins/apm/server/routes/services/annotations/index.ts b/x-pack/plugins/apm/server/routes/services/annotations/index.ts index 41f199f456d7d..e50d2202ca979 100644 --- a/x-pack/plugins/apm/server/routes/services/annotations/index.ts +++ b/x-pack/plugins/apm/server/routes/services/annotations/index.ts @@ -7,10 +7,15 @@ import { ElasticsearchClient, Logger } from '@kbn/core/server'; import { ScopedAnnotationsClient } from '@kbn/observability-plugin/server'; +import { Annotation } from '../../../../common/annotations'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { getDerivedServiceAnnotations } from './get_derived_service_annotations'; import { getStoredAnnotations } from './get_stored_annotations'; +export interface ServiceAnnotationResponse { + annotations: Annotation[]; +} + export async function getServiceAnnotations({ apmEventClient, searchAggregatedTransactions, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_agent.ts b/x-pack/plugins/apm/server/routes/services/get_service_agent.ts index 24f22da416b6c..6bfa7baccef06 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_agent.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_agent.ts @@ -15,7 +15,10 @@ import { CLOUD_SERVICE_NAME, } from '../../../common/es_fields/apm'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -import { getServerlessTypeFromCloudData } from '../../../common/serverless'; +import { + getServerlessTypeFromCloudData, + ServerlessType, +} from '../../../common/serverless'; interface ServiceAgent { agent?: { @@ -34,6 +37,12 @@ interface ServiceAgent { }; } +export interface ServiceAgentResponse { + agentName?: string; + runtimeName?: string; + serverlessType?: ServerlessType; +} + export async function getServiceAgent({ serviceName, apmEventClient, @@ -44,7 +53,7 @@ export async function getServiceAgent({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { const params = { terminate_after: 1, apm: { diff --git a/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts b/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts index 45bc74a5d0c71..00c6339f06cf8 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts @@ -5,21 +5,14 @@ * 2.0. */ +import { ConnectionStatsItemWithImpact } from '../../../common/connections'; import { SERVICE_NAME } from '../../../common/es_fields/apm'; import { environmentQuery } from '../../../common/utils/environment_query'; import { getConnectionStats } from '../../lib/connections/get_connection_stats'; import { getConnectionStatsItemsWithRelativeImpact } from '../../lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getServiceDependencies({ - apmEventClient, - start, - end, - serviceName, - numBuckets, - environment, - offset, -}: { +interface Options { apmEventClient: APMEventClient; start: number; end: number; @@ -27,7 +20,17 @@ export async function getServiceDependencies({ numBuckets: number; environment: string; offset?: string; -}) { +} + +async function getServiceDependenciesForTimeRange({ + apmEventClient, + start, + end, + serviceName, + numBuckets, + environment, + offset, +}: Options) { const statsItems = await getConnectionStats({ apmEventClient, start, @@ -43,3 +46,36 @@ export async function getServiceDependencies({ return getConnectionStatsItemsWithRelativeImpact(statsItems); } + +export type ServiceDependenciesResponse = Array< + Omit & { + currentStats: ConnectionStatsItemWithImpact['stats']; + previousStats: ConnectionStatsItemWithImpact['stats'] | null; + } +>; + +export async function getServiceDependencies( + opts: Options +): Promise { + const { offset, ...sharedOptions } = opts; + + const [currentPeriod, previousPeriod] = await Promise.all([ + getServiceDependenciesForTimeRange(sharedOptions), + ...(offset + ? [getServiceDependenciesForTimeRange({ ...sharedOptions, offset })] + : [[]]), + ]); + + return currentPeriod.map((item) => { + const { stats, ...rest } = item; + const previousPeriodItem = previousPeriod.find( + (prevItem): boolean => item.location.id === prevItem.location.id + ); + + return { + ...rest, + currentStats: stats, + previousStats: previousPeriodItem?.stats || null, + }; + }); +} diff --git a/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts b/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts index defe47c0bd61c..2f74792d5df43 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts @@ -12,6 +12,11 @@ import { environmentQuery } from '../../../common/utils/environment_query'; import { getConnectionStats } from '../../lib/connections/get_connection_stats'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export type ServiceDependenciesBreakdownResponse = Array<{ + title: string; + data: Array<{ x: number; y: number }>; +}>; + export async function getServiceDependenciesBreakdown({ apmEventClient, start, @@ -26,7 +31,7 @@ export async function getServiceDependenciesBreakdown({ serviceName: string; environment: string; kuery: string; -}) { +}): Promise { const items = await getConnectionStats({ apmEventClient, start, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_instance_container_metadata.ts b/x-pack/plugins/apm/server/routes/services/get_service_instance_container_metadata.ts index 049a01c55fb12..ba00f6f756d12 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_instance_container_metadata.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instance_container_metadata.ts @@ -23,7 +23,7 @@ import { Kubernetes } from '../../../typings/es_schemas/raw/fields/kubernetes'; import { maybe } from '../../../common/utils/maybe'; import { InfraMetricsClient } from '../../lib/helpers/create_es_client/create_infra_metrics_client/create_infra_metrics_client'; -type ServiceInstanceContainerMetadataDetails = +export type ServiceInstanceContainerMetadataDetails = | { kubernetes: Kubernetes; } diff --git a/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts b/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts index 9ff813c6cd1b5..237677ae64efc 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts @@ -18,6 +18,22 @@ import { getProcessorEventForTransactions, } from '../../lib/helpers/transactions'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { Agent } from '../../../typings/es_schemas/ui/fields/agent'; +import { Service } from '../../../typings/es_schemas/raw/fields/service'; +import { Container } from '../../../typings/es_schemas/raw/fields/container'; +import { Kubernetes } from '../../../typings/es_schemas/raw/fields/kubernetes'; +import { Host } from '../../../typings/es_schemas/raw/fields/host'; +import { Cloud } from '../../../typings/es_schemas/raw/fields/cloud'; + +export interface ServiceInstanceMetadataDetailsResponse { + '@timestamp': string; + agent?: Agent; + service?: Service; + container?: Container; + kubernetes?: Kubernetes; + host?: Host; + cloud?: Cloud; +} export async function getServiceInstanceMetadataDetails({ serviceName, @@ -31,7 +47,7 @@ export async function getServiceInstanceMetadataDetails({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { const filter = [ { term: { [SERVICE_NAME]: serviceName } }, { term: { [SERVICE_NODE_NAME]: serviceNodeName } }, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts index 2d23345c3ba1b..28401dd0b46b5 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts @@ -30,18 +30,23 @@ interface ServiceInstanceDetailedStatisticsParams { offset?: string; } +interface ServiceInstancesDetailedStat { + serviceNodeName: string; + errorRate?: Coordinate[]; + latency?: Coordinate[]; + throughput?: Coordinate[]; + cpuUsage?: Coordinate[]; + memoryUsage?: Coordinate[]; +} + +export interface ServiceInstancesDetailedStatisticsResponse { + currentPeriod: Record; + previousPeriod: Record; +} + async function getServiceInstancesDetailedStatistics( params: ServiceInstanceDetailedStatisticsParams -): Promise< - Array<{ - serviceNodeName: string; - errorRate?: Coordinate[]; - latency?: Coordinate[]; - throughput?: Coordinate[]; - cpuUsage?: Coordinate[]; - memoryUsage?: Coordinate[]; - }> -> { +): Promise { return withApmSpan('get_service_instances_detailed_statistics', async () => { const [transactionStats, systemMetricStats = []] = await Promise.all([ getServiceInstancesTransactionStatistics({ @@ -89,7 +94,7 @@ export async function getServiceInstancesDetailedStatisticsPeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { return withApmSpan( 'get_service_instances_detailed_statistics_periods', async () => { diff --git a/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts index 095f3c981a689..16a9499979561 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts @@ -26,18 +26,18 @@ interface ServiceInstanceMainStatisticsParams { offset?: string; } +export type ServiceInstanceMainStatisticsResponse = Array<{ + serviceNodeName: string; + errorRate?: number; + latency?: number; + throughput?: number; + cpuUsage?: number | null; + memoryUsage?: number | null; +}>; + export async function getServiceInstancesMainStatistics( params: Omit -): Promise< - Array<{ - serviceNodeName: string; - errorRate?: number; - latency?: number; - throughput?: number; - cpuUsage?: number | null; - memoryUsage?: number | null; - }> -> { +): Promise { return withApmSpan('get_service_instances_main_statistics', async () => { const paramsForSubQueries = { ...params, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts index 0a1e4c113168d..e327bf1e7cdb7 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts @@ -16,6 +16,11 @@ import { } from '../../../common/utils/environment_query'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export interface ServiceNodeMetadataResponse { + host: string | number; + containerId: string | number; +} + export async function getServiceNodeMetadata({ kuery, serviceName, @@ -32,7 +37,7 @@ export async function getServiceNodeMetadata({ start: number; end: number; environment: string; -}) { +}): Promise { const params = { apm: { events: [ProcessorEvent.metric], diff --git a/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts index 73ce572c2ff6d..5ff2ed1a5e02e 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts @@ -34,7 +34,15 @@ import { getOutcomeAggregation, } from '../../lib/helpers/transaction_error_rate'; -export async function getServiceTransactionGroupDetailedStatistics({ +interface ServiceTransactionGroupDetailedStat { + transactionName: string; + latency: Coordinate[]; + throughput: Coordinate[]; + errorRate: Coordinate[]; + impact: number; +} + +async function getServiceTransactionGroupDetailedStatistics({ environment, kuery, serviceName, @@ -60,15 +68,7 @@ export async function getServiceTransactionGroupDetailedStatistics({ start: number; end: number; offset?: string; -}): Promise< - Array<{ - transactionName: string; - latency: Coordinate[]; - throughput: Coordinate[]; - errorRate: Coordinate[]; - impact: number; - }> -> { +}): Promise { const { startWithOffset, endWithOffset } = getOffsetInMs({ start, end, @@ -181,6 +181,11 @@ export async function getServiceTransactionGroupDetailedStatistics({ }); } +export interface ServiceTransactionGroupDetailedStatisticsResponse { + currentPeriod: Record; + previousPeriod: Record; +} + export async function getServiceTransactionGroupDetailedStatisticsPeriods({ serviceName, transactionNames, @@ -207,7 +212,7 @@ export async function getServiceTransactionGroupDetailedStatisticsPeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const commonProps = { apmEventClient, serviceName, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts index 859eddf898ce2..c82bfd788bcb8 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts @@ -6,7 +6,6 @@ */ import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; -import { APMConfig } from '../..'; import { ApmDocumentType } from '../../../common/document_type'; import { SERVICE_NAME, @@ -41,11 +40,23 @@ export type ServiceOverviewTransactionGroupSortField = | 'errorRate' | 'impact'; +export interface ServiceTransactionGroupsResponse { + transactionGroups: Array<{ + transactionType: string; + name: string; + latency: number | null; + throughput: number; + errorRate: number; + impact: number; + }>; + maxTransactionGroupsExceeded: boolean; + transactionOverflowCount: number; +} + export async function getServiceTransactionGroups({ environment, kuery, serviceName, - config, apmEventClient, searchAggregatedTransactions, transactionType, @@ -56,14 +67,13 @@ export async function getServiceTransactionGroups({ environment: string; kuery: string; serviceName: string; - config: APMConfig; apmEventClient: APMEventClient; searchAggregatedTransactions: boolean; transactionType: string; latencyAggregationType: LatencyAggregationType; start: number; end: number; -}) { +}): Promise { const field = getDurationFieldForTransactions(searchAggregatedTransactions); const response = await apmEventClient.search( diff --git a/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts index 884ce3b00023d..a4e305fc44ad3 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts @@ -13,6 +13,10 @@ import { getProcessorEventForTransactions, } from '../../lib/helpers/transactions'; +export interface ServiceTransactionTypesResponse { + transactionTypes: string[]; +} + export async function getServiceTransactionTypes({ apmEventClient, serviceName, @@ -25,7 +29,7 @@ export async function getServiceTransactionTypes({ searchAggregatedTransactions: boolean; start: number; end: number; -}) { +}): Promise { const params = { apm: { events: [getProcessorEventForTransactions(searchAggregatedTransactions)], diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts index 1c3ed953122a0..0b8a252da9a76 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts @@ -20,14 +20,17 @@ interface AggregationParams { end: number; } -export const getHealthStatuses = async ({ +export type ServiceHealthStatusesResponse = Array<{ + serviceName: string; + healthStatus: ServiceHealthStatus; +}>; + +export async function getHealthStatuses({ environment, mlClient, start, end, -}: AggregationParams): Promise< - Array<{ serviceName: string; healthStatus: ServiceHealthStatus }> -> => { +}: AggregationParams): Promise { if (!mlClient) { return []; } @@ -47,4 +50,4 @@ export const getHealthStatuses = async ({ healthStatus, }; }); -}; +} diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_service_alerts.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_service_alerts.ts index 16675afc9d74a..f212172364f2e 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_service_alerts.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_service_alerts.ts @@ -36,6 +36,11 @@ interface ServiceAggResponse { >; } +export type ServiceAlertsResponse = Array<{ + serviceName: string; + alertsCount: number; +}>; + export async function getServicesAlerts({ apmAlertsClient, kuery, @@ -54,7 +59,7 @@ export async function getServicesAlerts({ start: number; end: number; environment?: string; -}) { +}): Promise { const params = { size: 0, query: { diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts index 9d26304e57c6e..85d212baa5b8e 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts @@ -45,6 +45,19 @@ interface AggregationParams { rollupInterval: RollupInterval; } +export interface ServiceTransactionStatsResponse { + serviceStats: Array<{ + serviceName: string; + transactionType: string; + environments: string[]; + agentName: AgentName; + latency: number | null; + transactionErrorRate: number; + throughput: number; + }>; + serviceOverflowCount: number; +} + export async function getServiceTransactionStats({ environment, kuery, @@ -56,7 +69,7 @@ export async function getServiceTransactionStats({ randomSampler, documentType, rollupInterval, -}: AggregationParams) { +}: AggregationParams): Promise { const outcomes = getOutcomeAggregation(documentType); const metrics = { diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts index 5fddc6a3d6f5e..a2fdd0a4d6712 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts @@ -18,10 +18,16 @@ import { getHealthStatuses } from './get_health_statuses'; import { getServicesWithoutTransactions } from './get_services_without_transactions'; import { getServicesAlerts } from './get_service_alerts'; import { getServiceTransactionStats } from './get_service_transaction_stats'; -import { mergeServiceStats } from './merge_service_stats'; +import { MergedServiceStat, mergeServiceStats } from './merge_service_stats'; export const MAX_NUMBER_OF_SERVICES = 1_000; +export interface ServicesItemsResponse { + items: MergedServiceStat[]; + maxServiceCountExceeded: boolean; + serviceOverflowCount: number; +} + export async function getServicesItems({ environment, kuery, @@ -48,7 +54,7 @@ export async function getServicesItems({ randomSampler: RandomSampler; documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; -}) { +}): Promise { return withApmSpan('get_services_items', async () => { const commonParams = { environment, diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts index 60d3bc0d7df18..05af47e61e8ec 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_without_transactions.ts @@ -21,6 +21,15 @@ import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm import { ApmDocumentType } from '../../../../common/document_type'; import { RollupInterval } from '../../../../common/rollup'; +export interface ServicesWithoutTransactionsResponse { + services: Array<{ + serviceName: string; + environments: string[]; + agentName: AgentName; + }>; + maxServiceCountExceeded: boolean; +} + export async function getServicesWithoutTransactions({ environment, apmEventClient, @@ -43,7 +52,7 @@ export async function getServicesWithoutTransactions({ randomSampler: RandomSampler; documentType: ApmDocumentType; rollupInterval: RollupInterval; -}) { +}): Promise { const isServiceTransactionMetric = documentType === ApmDocumentType.ServiceTransactionMetric; diff --git a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts index a5c867b4f69dd..f77b8fda5b3b6 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts @@ -7,10 +7,24 @@ import { uniq } from 'lodash'; import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { joinByKey } from '../../../../common/utils/join_by_key'; -import { getServicesAlerts } from './get_service_alerts'; -import { getHealthStatuses } from './get_health_statuses'; -import { getServicesWithoutTransactions } from './get_services_without_transactions'; -import { getServiceTransactionStats } from './get_service_transaction_stats'; +import { ServiceHealthStatusesResponse } from './get_health_statuses'; +import { ServicesWithoutTransactionsResponse } from './get_services_without_transactions'; +import { ServiceAlertsResponse } from './get_service_alerts'; +import { ServiceTransactionStatsResponse } from './get_service_transaction_stats'; +import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent'; +import { ServiceHealthStatus } from '../../../../common/service_health_status'; + +export interface MergedServiceStat { + serviceName: string; + transactionType?: string; + environments?: string[]; + agentName?: AgentName; + latency?: number | null; + transactionErrorRate?: number; + throughput?: number; + healthStatus?: ServiceHealthStatus; + alertsCount?: number; +} export function mergeServiceStats({ serviceStats, @@ -18,15 +32,11 @@ export function mergeServiceStats({ healthStatuses, alertCounts, }: { - serviceStats: Awaited< - ReturnType - >['serviceStats']; - servicesWithoutTransactions: Awaited< - ReturnType - >['services']; - healthStatuses: Awaited>; - alertCounts: Awaited>; -}) { + serviceStats: ServiceTransactionStatsResponse['serviceStats']; + servicesWithoutTransactions: ServicesWithoutTransactionsResponse['services']; + healthStatuses: ServiceHealthStatusesResponse; + alertCounts: ServiceAlertsResponse; +}): MergedServiceStat[] { const foundServiceNames = serviceStats.map(({ serviceName }) => serviceName); const servicesWithOnlyMetricDocuments = servicesWithoutTransactions.filter( diff --git a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts index 5e6d84039266e..abb319a911982 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts @@ -26,6 +26,13 @@ import { } from '../../../lib/helpers/transaction_error_rate'; import { withApmSpan } from '../../../utils/with_apm_span'; +interface ServiceTransactionDetailedStat { + serviceName: string; + latency: Array<{ x: number; y: number | null }>; + transactionErrorRate: Array<{ x: number; y: number }>; + throughput: Array<{ x: number; y: number }>; +} + export async function getServiceTransactionDetailedStats({ serviceNames, environment, @@ -167,7 +174,12 @@ export async function getServiceTransactionDetailedStats({ ); } -export async function getServiceDetailedStatsPeriods({ +export interface ServiceTransactionDetailedStatPeriodsResponse { + currentPeriod: Record; + previousPeriod: Record; +} + +export async function getServiceTransactionDetailedStatsPeriods({ serviceNames, environment, kuery, @@ -191,7 +203,7 @@ export async function getServiceDetailedStatsPeriods({ start: number; end: number; randomSampler: RandomSampler; -}) { +}): Promise { return withApmSpan('get_service_detailed_statistics', async () => { const commonProps = { serviceNames, diff --git a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts index 932d727ee6987..2820c80d72ba2 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts @@ -9,7 +9,7 @@ import { ApmServiceTransactionDocumentType } from '../../../../common/document_t import { RollupInterval } from '../../../../common/rollup'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { RandomSampler } from '../../../lib/helpers/get_random_sampler'; -import { getServiceDetailedStatsPeriods } from './get_service_transaction_detailed_statistics'; +import { getServiceTransactionDetailedStatsPeriods } from './get_service_transaction_detailed_statistics'; export async function getServicesDetailedStatistics({ serviceNames, @@ -36,7 +36,7 @@ export async function getServicesDetailedStatistics({ end: number; randomSampler: RandomSampler; }) { - return getServiceDetailedStatsPeriods({ + return getServiceTransactionDetailedStatsPeriods({ serviceNames, environment, kuery, diff --git a/x-pack/plugins/apm/server/routes/services/get_throughput.ts b/x-pack/plugins/apm/server/routes/services/get_throughput.ts index 12b819ae4e32d..c73a6856a1104 100644 --- a/x-pack/plugins/apm/server/routes/services/get_throughput.ts +++ b/x-pack/plugins/apm/server/routes/services/get_throughput.ts @@ -23,6 +23,7 @@ import { import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms'; import { getBucketSizeForAggregatedTransactions } from '../../lib/helpers/get_bucket_size_for_aggregated_transactions'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { Maybe } from '../../../typings/common'; interface Options { environment: string; @@ -37,6 +38,8 @@ interface Options { offset?: string; } +export type ServiceThroughputResponse = Array<{ x: number; y: Maybe }>; + export async function getThroughput({ environment, kuery, @@ -48,7 +51,7 @@ export async function getThroughput({ start, end, offset, -}: Options) { +}: Options): Promise { const { startWithOffset, endWithOffset } = getOffsetInMs({ start, end, diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts index d8647bf981e34..2db05a6846735 100644 --- a/x-pack/plugins/apm/server/routes/services/route.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -17,10 +17,9 @@ import { ScopedAnnotationsClient } from '@kbn/observability-plugin/server'; import * as t from 'io-ts'; import { mergeWith, uniq } from 'lodash'; import { ML_ERRORS } from '../../../common/anomaly_detection'; +import { ServiceAnomalyTimeseries } from '../../../common/anomaly_detection/service_anomaly_timeseries'; import { offsetRt } from '../../../common/comparison_rt'; -import { ConnectionStatsItemWithImpact } from '../../../common/connections'; import { latencyAggregationTypeRt } from '../../../common/latency_aggregation_types'; -import { ServerlessType } from '../../../common/serverless'; import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate'; import { getAnomalyTimeseries } from '../../lib/anomaly_detection/get_anomaly_timeseries'; import { createInfraMetricsClient } from '../../lib/helpers/create_es_client/create_infra_metrics_client/create_infra_metrics_client'; @@ -32,30 +31,72 @@ import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { withApmSpan } from '../../utils/with_apm_span'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { - serviceTransactionDataSourceRt, environmentRt, kueryRt, probabilityRt, rangeRt, + serviceTransactionDataSourceRt, } from '../default_api_types'; import { getServiceGroup } from '../service_groups/get_service_group'; -import { getServiceAnnotations } from './annotations'; -import { getServicesItems } from './get_services/get_services_items'; -import { getServicesAlerts } from './get_services/get_service_alerts'; -import { getServicesDetailedStatistics } from './get_services_detailed_statistics'; -import { getServiceAgent } from './get_service_agent'; -import { getServiceDependencies } from './get_service_dependencies'; -import { getServiceDependenciesBreakdown } from './get_service_dependencies_breakdown'; -import { getServiceInstancesDetailedStatisticsPeriods } from './get_service_instances/detailed_statistics'; -import { getServiceInstancesMainStatistics } from './get_service_instances/main_statistics'; -import { getServiceInstanceContainerMetadata } from './get_service_instance_container_metadata'; -import { getServiceInstanceMetadataDetails } from './get_service_instance_metadata_details'; -import { getServiceMetadataDetails } from './get_service_metadata_details'; -import { getServiceMetadataIcons } from './get_service_metadata_icons'; -import { getServiceNodeMetadata } from './get_service_node_metadata'; +import { + getServiceAnnotations, + ServiceAnnotationResponse, +} from './annotations'; +import { + getServicesItems, + ServicesItemsResponse, +} from './get_services/get_services_items'; +import { + getServicesAlerts, + ServiceAlertsResponse, +} from './get_services/get_service_alerts'; +import { + getServiceTransactionDetailedStatsPeriods, + ServiceTransactionDetailedStatPeriodsResponse, +} from './get_services_detailed_statistics/get_service_transaction_detailed_statistics'; +import { getServiceAgent, ServiceAgentResponse } from './get_service_agent'; +import { + getServiceDependencies, + ServiceDependenciesResponse, +} from './get_service_dependencies'; +import { + getServiceDependenciesBreakdown, + ServiceDependenciesBreakdownResponse, +} from './get_service_dependencies_breakdown'; +import { + getServiceInstancesDetailedStatisticsPeriods, + ServiceInstancesDetailedStatisticsResponse, +} from './get_service_instances/detailed_statistics'; +import { + getServiceInstancesMainStatistics, + ServiceInstanceMainStatisticsResponse, +} from './get_service_instances/main_statistics'; +import { + getServiceInstanceContainerMetadata, + ServiceInstanceContainerMetadataDetails, +} from './get_service_instance_container_metadata'; +import { + getServiceInstanceMetadataDetails, + ServiceInstanceMetadataDetailsResponse, +} from './get_service_instance_metadata_details'; +import { + getServiceMetadataDetails, + ServiceMetadataDetails, +} from './get_service_metadata_details'; +import { + getServiceMetadataIcons, + ServiceMetadataIcons, +} from './get_service_metadata_icons'; +import { + getServiceNodeMetadata, + ServiceNodeMetadataResponse, +} from './get_service_node_metadata'; import { getServiceOverviewContainerMetadata } from './get_service_overview_container_metadata'; -import { getServiceTransactionTypes } from './get_service_transaction_types'; -import { getThroughput } from './get_throughput'; +import { + getServiceTransactionTypes, + ServiceTransactionTypesResponse, +} from './get_service_transaction_types'; +import { getThroughput, ServiceThroughputResponse } from './get_throughput'; const servicesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services', @@ -72,53 +113,7 @@ const servicesRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - async handler(resources): Promise<{ - items: import('./../../../common/utils/join_by_key/index').JoinedReturnType< - | { - serviceName: string; - transactionType: string; - environments: string[]; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - latency: number | null; - transactionErrorRate: number; - throughput: number; - } - | { - serviceName: string; - environments: string[]; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - } - | { - serviceName: string; - healthStatus: import('./../../../common/service_health_status').ServiceHealthStatus; - } - | { - serviceName: string; - alertsCount: number; - }, - { - serviceName: string; - transactionType: string; - environments: string[]; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - latency: number | null; - transactionErrorRate: number; - throughput: number; - } & { - serviceName: string; - environments: string[]; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - } & { - serviceName: string; - healthStatus: import('./../../../common/service_health_status').ServiceHealthStatus; - } & { - serviceName: string; - alertsCount: number; - } - >; - maxServiceCountExceeded: boolean; - serviceOverflowCount: number; - }> { + async handler(resources): Promise { const { context, params, @@ -189,38 +184,7 @@ const servicesDetailedStatisticsRoute = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - currentPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - serviceName: string; - latency: Array<{ - x: number; - y: number | null; - }>; - transactionErrorRate: Array<{ - x: number; - y: number; - }>; - throughput: Array<{ - x: number; - y: number; - }>; - }>; - previousPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - serviceName: string; - latency: Array<{ - x: number; - y: number | null; - }>; - transactionErrorRate: Array<{ - x: number; - y: number; - }>; - throughput: Array<{ - x: number; - y: number; - }>; - }>; - }> => { + ): Promise => { const { params, request, @@ -250,7 +214,7 @@ const servicesDetailedStatisticsRoute = createApmServerRoute({ throw Boom.badRequest(`serviceNames cannot be empty`); } - return getServicesDetailedStatistics({ + return getServiceTransactionDetailedStatsPeriods({ environment, kuery, apmEventClient, @@ -273,11 +237,7 @@ const serviceMetadataDetailsRoute = createApmServerRoute({ query: rangeRt, }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise< - import('./get_service_metadata_details').ServiceMetadataDetails - > => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const infraMetricsClient = createInfraMetricsClient(resources); const { params, config } = resources; @@ -322,9 +282,7 @@ const serviceMetadataIconsRoute = createApmServerRoute({ query: rangeRt, }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; const { serviceName } = params.path; @@ -357,13 +315,7 @@ const serviceAgentRoute = createApmServerRoute({ query: rangeRt, }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - agentName?: string; - runtimeName?: string; - serverlessType?: ServerlessType; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; @@ -387,7 +339,7 @@ const serviceTransactionTypesRoute = createApmServerRoute({ query: rangeRt, }), options: { tags: ['access:apm'] }, - handler: async (resources): Promise<{ transactionTypes: string[] }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; const { serviceName } = params.path; @@ -420,9 +372,7 @@ const serviceNodeMetadataRoute = createApmServerRoute({ query: t.intersection([kueryRt, rangeRt, environmentRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ host: string | number; containerId: string | number }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName, serviceNodeName } = params.path; @@ -449,11 +399,7 @@ const serviceAnnotationsRoute = createApmServerRoute({ query: t.intersection([environmentRt, rangeRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - annotations: Array; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, plugins, context, request, logger, config } = resources; const { serviceName } = params.path; @@ -527,7 +473,7 @@ const serviceAnnotationsCreateRoute = createApmServerRoute({ ): Promise<{ _id: string; _index: string; - _source: import('./../../../../observability/common/annotations').Annotation; + _source: Annotation; }> => { const { request, @@ -586,11 +532,8 @@ const serviceThroughputRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - currentPeriod: Array<{ x: number; y: number | null }>; - previousPeriod: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; + currentPeriod: ServiceThroughputResponse; + previousPeriod: ServiceThroughputResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -670,22 +613,8 @@ const serviceInstancesMainStatisticsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - currentPeriod: Array<{ - serviceNodeName: string; - errorRate?: number | undefined; - latency?: number | undefined; - throughput?: number | undefined; - cpuUsage?: number | null | undefined; - memoryUsage?: number | null | undefined; - }>; - previousPeriod: Array<{ - serviceNodeName: string; - errorRate?: number | undefined; - latency?: number | undefined; - throughput?: number | undefined; - cpuUsage?: number | null | undefined; - memoryUsage?: number | null | undefined; - }>; + currentPeriod: ServiceInstanceMainStatisticsResponse; + previousPeriod: ServiceInstanceMainStatisticsResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -765,49 +694,7 @@ const serviceInstancesDetailedStatisticsRoute = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - currentPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - serviceNodeName: string; - errorRate?: - | Array - | undefined; - latency?: - | Array - | undefined; - throughput?: - | Array - | undefined; - cpuUsage?: - | Array - | undefined; - memoryUsage?: - | Array - | undefined; - }>; - previousPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - cpuUsage: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - errorRate: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - latency: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - memoryUsage: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - throughput: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - serviceNodeName: string; - }>; - }> => { + ): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; const { serviceName } = params.path; @@ -861,55 +748,10 @@ export const serviceInstancesMetadataDetails = createApmServerRoute({ options: { tags: ['access:apm'] }, handler: async ( resources - ): Promise<{ - '@timestamp': string; - agent: - | (import('./../../../typings/es_schemas/ui/fields/agent').Agent & { - name: string; - version: string; - }) - | ({ - name: string; - version: string; - } & import('./../../../typings/es_schemas/ui/fields/agent').Agent); - service: - | import('./../../../typings/es_schemas/raw/fields/service').Service - | (import('./../../../typings/es_schemas/raw/fields/service').Service & { - name: string; - node?: { name: string } | undefined; - environment?: string | undefined; - version?: string | undefined; - }) - | (import('./../../../typings/es_schemas/raw/fields/service').Service & { - node?: { name: string } | undefined; - }) - | (import('./../../../typings/es_schemas/raw/fields/service').Service & { - name: string; - node?: { name: string } | undefined; - environment?: string | undefined; - version?: string | undefined; - } & { node?: { name: string } | undefined }) - | (import('./../../../typings/es_schemas/raw/fields/service').Service & { - node?: { name: string } | undefined; - } & { - name: string; - node?: { name: string } | undefined; - environment?: string | undefined; - version?: string | undefined; - }); - container: - | import('./../../../typings/es_schemas/raw/fields/container').Container - | undefined; - kubernetes: - | import('./../../../typings/es_schemas/raw/fields/kubernetes').Kubernetes - | undefined; - host: - | import('./../../../typings/es_schemas/raw/fields/host').Host - | undefined; - cloud: - | import('./../../../typings/es_schemas/raw/fields/cloud').Cloud - | undefined; - }> => { + ): Promise< + ServiceInstanceMetadataDetailsResponse & + (ServiceInstanceContainerMetadataDetails | {}) + > => { const apmEventClient = await getApmEventClient(resources); const infraMetricsClient = createInfraMetricsClient(resources); const { params } = resources; @@ -958,98 +800,24 @@ export const serviceDependenciesRoute = createApmServerRoute({ options: { tags: ['access:apm'], }, - handler: async ( + async handler( resources - ): Promise<{ - serviceDependencies: Array<{ - currentStats: { - latency: { - value: number | null; - timeseries: Array; - }; - throughput: { - value: number | null; - timeseries: Array; - }; - errorRate: { - value: number | null; - timeseries: Array; - }; - totalTime: { - value: number | null; - timeseries: Array; - }; - } & { impact: number }; - previousStats: - | ({ - latency: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - throughput: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - errorRate: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - totalTime: { - value: number | null; - timeseries: Array< - import('./../../../typings/timeseries').Coordinate - >; - }; - } & { impact: number }) - | null; - location: import('./../../../common/connections').Node; - }>; - }> => { + ): Promise<{ serviceDependencies: ServiceDependenciesResponse }> { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; const { environment, numBuckets, start, end, offset } = params.query; - const opts = { - apmEventClient, - start, - end, - serviceName, - environment, - numBuckets, - }; - - const [currentPeriod, previousPeriod] = await Promise.all([ - getServiceDependencies(opts), - ...(offset ? [getServiceDependencies({ ...opts, offset })] : [[]]), - ]); - return { - serviceDependencies: currentPeriod.map( - ( - item - ): Omit & { - currentStats: ConnectionStatsItemWithImpact['stats']; - previousStats: ConnectionStatsItemWithImpact['stats'] | null; - } => { - const { stats, ...rest } = item; - const previousPeriodItem = previousPeriod.find( - (prevItem): boolean => item.location.id === prevItem.location.id - ); - - return { - ...rest, - currentStats: stats, - previousStats: previousPeriodItem?.stats || null, - }; - } - ), + serviceDependencies: await getServiceDependencies({ + apmEventClient, + start, + end, + serviceName, + environment, + numBuckets, + offset, + }), }; }, }); @@ -1068,7 +836,7 @@ export const serviceDependenciesBreakdownRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - breakdown: Array<{ title: string; data: Array<{ x: number; y: number }> }>; + breakdown: ServiceDependenciesBreakdownResponse; }> => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; @@ -1108,9 +876,7 @@ const serviceAnomalyChartsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - allAnomalyTimeseries: Array< - import('./../../../common/anomaly_detection/service_anomaly_timeseries').ServiceAnomalyTimeseries - >; + allAnomalyTimeseries: ServiceAnomalyTimeseries[]; }> => { const mlClient = await getMlClient(resources); @@ -1159,12 +925,7 @@ const serviceAlertsRoute = createApmServerRoute({ query: t.intersection([rangeRt, environmentRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - serviceName: string; - alertsCount: number; - }> => { + handler: async (resources): Promise => { const { params } = resources; const { query: { start, end, environment }, diff --git a/x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts index 777a0f7737264..0da0bbcf4fdf3 100644 --- a/x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts @@ -12,7 +12,7 @@ import { AgentConfiguration } from '../../../../common/agent_configuration/confi // All settings except `transaction_sample_rate` and `transaction_max_spans` are stored as strings (they are stored as float and integer respectively) export function convertConfigSettingsToString( hit: SearchHit -) { +): SearchHit { const { settings } = hit._source; const convertedConfigSettings = { diff --git a/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts index 298d7d5817388..98964d3b2927d 100644 --- a/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts @@ -12,6 +12,11 @@ import { ALL_OPTION_VALUE } from '../../../../../common/agent_configuration/all_ import { APMEventClient } from '../../../../lib/helpers/create_es_client/create_apm_event_client'; import { APMInternalESClient } from '../../../../lib/helpers/create_es_client/create_internal_es_client'; +export type EnvironmentsResponse = Array<{ + name: string; + alreadyConfigured: boolean; +}>; + export async function getEnvironments({ serviceName, internalESClient, @@ -24,7 +29,7 @@ export async function getEnvironments({ apmEventClient: APMEventClient; searchAggregatedTransactions: boolean; size: number; -}) { +}): Promise { return withApmSpan('get_environments_for_agent_configuration', async () => { const [allEnvironments, existingEnvironments] = await Promise.all([ getAllEnvironments({ diff --git a/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts index 4984b422ea259..b95dd79fc9013 100644 --- a/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts @@ -9,11 +9,12 @@ import * as t from 'io-ts'; import Boom from '@hapi/boom'; import { toBooleanRt } from '@kbn/io-ts-utils'; import { maxSuggestions } from '@kbn/observability-plugin/common'; +import { SearchHit } from '@kbn/es-types'; import { createOrUpdateConfiguration } from './create_or_update_configuration'; import { searchConfigurations } from './search_configurations'; import { findExactConfiguration } from './find_exact_configuration'; import { listConfigurations } from './list_configurations'; -import { getEnvironments } from './get_environments'; +import { EnvironmentsResponse, getEnvironments } from './get_environments'; import { deleteConfiguration } from './delete_configuration'; import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; import { getAgentNameByService } from './get_agent_name_by_service'; @@ -26,6 +27,7 @@ import { getSearchTransactionsEvents } from '../../../lib/helpers/transactions'; import { syncAgentConfigsToApmPackagePolicies } from '../../fleet/sync_agent_configs_to_apm_package_policies'; import { getApmEventClient } from '../../../lib/helpers/get_apm_event_client'; import { createInternalESClientWithContext } from '../../../lib/helpers/create_es_client/create_internal_es_client'; +import { AgentConfiguration } from '../../../../common/agent_configuration/configuration_types'; // get list of configurations const agentConfigurationRoute = createApmServerRoute({ @@ -34,9 +36,7 @@ const agentConfigurationRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - configurations: Array< - import('./../../../../common/agent_configuration/configuration_types').AgentConfiguration - >; + configurations: AgentConfiguration[]; }> => { const { context, request, params, config } = resources; const internalESClient = await createInternalESClientWithContext({ @@ -59,11 +59,7 @@ const getSingleAgentConfigurationRoute = createApmServerRoute({ query: serviceRt, }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise< - import('./../../../../common/agent_configuration/configuration_types').AgentConfiguration - > => { + handler: async (resources): Promise => { const { params, logger, context, request, config } = resources; const { name, environment, _inspect } = params.query; const service = { name, environment }; @@ -242,14 +238,7 @@ const agentConfigurationSearchRoute = createApmServerRoute({ options: { tags: ['access:apm'], disableTelemetry: true }, handler: async ( resources - ): Promise< - | import('@kbn/es-types').SearchHit< - import('./../../../../common/agent_configuration/configuration_types').AgentConfiguration, - undefined, - undefined - > - | null - > => { + ): Promise | null> => { const { params, logger, context, config, request } = resources; const { @@ -319,7 +308,7 @@ const listAgentConfigurationEnvironmentsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - environments: Array<{ name: string; alreadyConfigured: boolean }>; + environments: EnvironmentsResponse; }> => { const { context, request, params, config } = resources; const [internalESClient, apmEventClient] = await Promise.all([ diff --git a/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts b/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts index 76314a112a10d..451ec87bc3670 100644 --- a/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts +++ b/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts @@ -22,6 +22,7 @@ import { environmentStringRt } from '../../../../common/environment_rt'; import { getMlJobsWithAPMGroup } from '../../../lib/anomaly_detection/get_ml_jobs_with_apm_group'; import { getApmEventClient } from '../../../lib/helpers/get_apm_event_client'; import { getApmIndices } from '../apm_indices/get_apm_indices'; +import { ApmMlJob } from '../../../../common/anomaly_detection/apm_ml_job'; // get ML anomaly detection jobs for each environment const anomalyDetectionJobsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/settings/anomaly-detection/jobs', @@ -31,9 +32,7 @@ const anomalyDetectionJobsRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - jobs: Array< - import('./../../../../common/anomaly_detection/apm_ml_job').ApmMlJob - >; + jobs: ApmMlJob[]; hasLegacyJobs: boolean; }> => { const mlClient = await getMlClient(resources); diff --git a/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts index 9153c7113ccba..b652fcde39d13 100644 --- a/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts +++ b/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts @@ -71,10 +71,19 @@ export async function getApmIndices({ } } +export type ApmIndexSettingsResponse = Array<{ + configurationName: 'transaction' | 'span' | 'error' | 'metric' | 'onboarding'; + defaultValue: string; // value defined in kibana[.dev].yml + savedValue: string | undefined; +}>; + export async function getApmIndexSettings({ context, config, -}: Pick) { +}: Pick< + APMRouteHandlerResources, + 'context' | 'config' +>): Promise { let apmIndicesSavedObject: Awaited< ReturnType >; diff --git a/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts index 4217fd7c19d6e..24b6d48e92314 100644 --- a/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts +++ b/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts @@ -6,8 +6,14 @@ */ import * as t from 'io-ts'; +import { SavedObject } from '@kbn/core/server'; import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; -import { getApmIndices, getApmIndexSettings } from './get_apm_indices'; +import { + getApmIndices, + getApmIndexSettings, + ApmIndexSettingsResponse, + ApmIndicesConfig, +} from './get_apm_indices'; import { saveApmIndices } from './save_apm_indices'; import { APMConfig } from '../../..'; @@ -19,16 +25,7 @@ const apmIndexSettingsRoute = createApmServerRoute({ config, context, }): Promise<{ - apmIndexSettings: Array<{ - configurationName: - | 'transaction' - | 'span' - | 'error' - | 'metric' - | 'onboarding'; - defaultValue: string; - savedValue: string | undefined; - }>; + apmIndexSettings: ApmIndexSettingsResponse; }> => { const apmIndexSettings = await getApmIndexSettings({ config, context }); return { apmIndexSettings }; @@ -39,11 +36,7 @@ const apmIndexSettingsRoute = createApmServerRoute({ const apmIndicesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/settings/apm-indices', options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise< - import('./../../../../../observability/common/typings').ApmIndicesConfig - > => { + handler: async (resources): Promise => { const { context, config } = resources; const savedObjectsClient = (await context.core).savedObjects.client; return await getApmIndices({ @@ -72,11 +65,7 @@ const saveApmIndicesRoute = createApmServerRoute({ metric: t.string, } as SaveApmIndicesBodySchema), }), - handler: async ( - resources - ): Promise< - import('./../../../../../../../src/core/types').SavedObject<{}> - > => { + handler: async (resources): Promise> => { const { params, context } = resources; const { body } = params; const savedObjectsClient = (await context.core).savedObjects.client; diff --git a/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts index 110e1fc0dc484..7e79a2d241224 100644 --- a/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts @@ -20,6 +20,8 @@ import { listCustomLinks } from './list_custom_links'; import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; import { getApmEventClient } from '../../../lib/helpers/get_apm_event_client'; import { createInternalESClientWithContext } from '../../../lib/helpers/create_es_client/create_internal_es_client'; +import { Transaction } from '../../../../typings/es_schemas/ui/transaction'; +import { CustomLink } from '../../../../common/custom_link/custom_link_types'; const customLinkTransactionRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/settings/custom_links/transaction', @@ -27,11 +29,7 @@ const customLinkTransactionRoute = createApmServerRoute({ params: t.partial({ query: filterOptionsRt, }), - handler: async ( - resources - ): Promise< - import('./../../../../typings/es_schemas/ui/transaction').Transaction - > => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { query } = params; @@ -50,9 +48,7 @@ const listCustomLinksRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - customLinks: Array< - import('./../../../../common/custom_link/custom_link_types').CustomLink - >; + customLinks: CustomLink[]; }> => { const { context, params, request, config } = resources; const licensingContext = await context.licensing; diff --git a/x-pack/plugins/apm/server/routes/source_maps/route.ts b/x-pack/plugins/apm/server/routes/source_maps/route.ts index 27a3520a56b7b..8e538cebe1841 100644 --- a/x-pack/plugins/apm/server/routes/source_maps/route.ts +++ b/x-pack/plugins/apm/server/routes/source_maps/route.ts @@ -5,21 +5,21 @@ * 2.0. */ import Boom from '@hapi/boom'; -import * as t from 'io-ts'; import { SavedObjectsClientContract } from '@kbn/core/server'; -import { jsonRt, toNumberRt } from '@kbn/io-ts-utils'; import { Artifact } from '@kbn/fleet-plugin/server'; +import { jsonRt, toNumberRt } from '@kbn/io-ts-utils'; +import * as t from 'io-ts'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { stringFromBufferRt } from '../../utils/string_from_buffer_rt'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { createFleetSourceMapArtifact, deleteFleetSourcemapArtifact, + getCleanedBundleFilePath, listSourceMapArtifacts, + ListSourceMapArtifactsResponse, updateSourceMapsOnFleetPolicies, - getCleanedBundleFilePath, - ArtifactSourceMap, } from '../fleet/source_maps'; -import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { stringFromBufferRt } from '../../utils/string_from_buffer_rt'; import { createApmSourceMap } from './create_apm_source_map'; import { deleteApmSourceMap } from './delete_apm_sourcemap'; import { runFleetSourcemapArtifactsMigration } from './schedule_source_map_migration'; @@ -52,7 +52,7 @@ const listSourceMapRoute = createApmServerRoute({ async handler({ params, plugins, - }): Promise<{ artifacts: ArtifactSourceMap[]; total: number } | undefined> { + }): Promise { const { page, perPage } = params.query; try { diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/get_service_statistics.ts b/x-pack/plugins/apm/server/routes/storage_explorer/get_service_statistics.ts index 7d6cb304e0547..ad6b1e1632805 100644 --- a/x-pack/plugins/apm/server/routes/storage_explorer/get_service_statistics.ts +++ b/x-pack/plugins/apm/server/routes/storage_explorer/get_service_statistics.ts @@ -172,6 +172,14 @@ async function getMainServiceStatistics({ return serviceStats ?? []; } +export type StorageExplorerServiceStatisticsResponse = Array<{ + serviceName: string; + sampling: number; + environments: string[]; + size: number; + agentName: AgentName; +}>; + export async function getServiceStatistics({ apmEventClient, context, @@ -192,7 +200,7 @@ export async function getServiceStatistics({ environment: string; kuery: string; searchAggregatedTransactions: boolean; -}) { +}): Promise { const [docCountPerProcessorEvent, totalTransactionsPerService] = await Promise.all([ getMainServiceStatistics({ diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/get_size_timeseries.ts b/x-pack/plugins/apm/server/routes/storage_explorer/get_size_timeseries.ts index e5246d7c45c92..f61f4a64001e8 100644 --- a/x-pack/plugins/apm/server/routes/storage_explorer/get_size_timeseries.ts +++ b/x-pack/plugins/apm/server/routes/storage_explorer/get_size_timeseries.ts @@ -26,6 +26,11 @@ import { } from './indices_stats_helpers'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export type SizeTimeseriesResponse = Array<{ + serviceName: string; + timeseries: Array<{ x: number; y: number }>; +}>; + export async function getSizeTimeseries({ environment, kuery, @@ -46,7 +51,7 @@ export async function getSizeTimeseries({ indexLifecyclePhase: IndexLifecyclePhaseSelectOption; randomSampler: RandomSampler; context: ApmPluginRequestHandlerContext; -}) { +}): Promise { const { intervalString } = getBucketSizeForAggregatedTransactions({ start, end, diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details.ts b/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details.ts new file mode 100644 index 0000000000000..570e0f2aa2d6f --- /dev/null +++ b/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details.ts @@ -0,0 +1,83 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProcessorEvent } from '@kbn/observability-plugin/common'; +import { Environment } from '../../../common/environment_rt'; +import { IndexLifecyclePhaseSelectOption } from '../../../common/storage_explorer_types'; +import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { RandomSampler } from '../../lib/helpers/get_random_sampler'; +import { ApmPluginRequestHandlerContext } from '../typings'; +import { + getStorageDetailsPerIndex, + getStorageDetailsPerProcessorEvent, +} from './get_storage_details_per_service'; + +export interface StorageDetailsResponse { + processorEventStats: Array<{ + processorEvent: ProcessorEvent; + docs: number; + size: number; + }>; + indicesStats: Array<{ + indexName: string; + numberOfDocs: number; + primary: string | number | undefined; + replica: string | number | undefined; + size: number | undefined; + dataStream: string | undefined; + lifecyclePhase: string | undefined; + }>; +} + +export async function getStorageDetails({ + apmEventClient, + context, + indexLifecyclePhase, + randomSampler, + environment, + kuery, + start, + end, + serviceName, +}: { + apmEventClient: APMEventClient; + context: ApmPluginRequestHandlerContext; + indexLifecyclePhase: IndexLifecyclePhaseSelectOption; + randomSampler: RandomSampler; + environment: Environment; + kuery: string; + start: number; + end: number; + serviceName: string; +}): Promise { + const [processorEventStats, indicesStats] = await Promise.all([ + getStorageDetailsPerProcessorEvent({ + apmEventClient, + context, + indexLifecyclePhase, + randomSampler, + environment, + kuery, + start, + end, + serviceName, + }), + getStorageDetailsPerIndex({ + apmEventClient, + context, + indexLifecyclePhase, + randomSampler, + environment, + kuery, + start, + end, + serviceName, + }), + ]); + + return { processorEventStats, indicesStats }; +} diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/get_summary_statistics.ts b/x-pack/plugins/apm/server/routes/storage_explorer/get_summary_statistics.ts index eb506170966c0..56ec4baf447bb 100644 --- a/x-pack/plugins/apm/server/routes/storage_explorer/get_summary_statistics.ts +++ b/x-pack/plugins/apm/server/routes/storage_explorer/get_summary_statistics.ts @@ -33,23 +33,28 @@ import { import { calculateThroughputWithRange } from '../../lib/helpers/calculate_throughput'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -export async function getTracesPerMinute({ - apmEventClient, - indexLifecyclePhase, - start, - end, - environment, - kuery, - searchAggregatedTransactions, -}: { +interface SharedOptions { apmEventClient: APMEventClient; indexLifecyclePhase: IndexLifecyclePhaseSelectOption; start: number; end: number; environment: string; kuery: string; +} + +type TracesPerMinuteOptions = SharedOptions & { searchAggregatedTransactions: boolean; -}) { +}; + +async function getTracesPerMinute({ + apmEventClient, + indexLifecyclePhase, + start, + end, + environment, + kuery, + searchAggregatedTransactions, +}: TracesPerMinuteOptions) { const response = await apmEventClient.search('get_traces_per_minute', { apm: { events: [getProcessorEventForTransactions(searchAggregatedTransactions)], @@ -95,7 +100,13 @@ export async function getTracesPerMinute({ }); } -export async function getMainSummaryStats({ +type MainSummaryStatsOptions = SharedOptions & { + context: ApmPluginRequestHandlerContext; + indexLifecyclePhase: IndexLifecyclePhaseSelectOption; + randomSampler: RandomSampler; +}; + +async function getMainSummaryStats({ apmEventClient, context, indexLifecyclePhase, @@ -104,16 +115,7 @@ export async function getMainSummaryStats({ end, environment, kuery, -}: { - apmEventClient: APMEventClient; - context: ApmPluginRequestHandlerContext; - indexLifecyclePhase: IndexLifecyclePhaseSelectOption; - randomSampler: RandomSampler; - start: number; - end: number; - environment: string; - kuery: string; -}) { +}: MainSummaryStatsOptions) { const [totalIndicesStats, totalDiskSpace, res] = await Promise.all([ getTotalIndicesStats({ context, apmEventClient }), getApmDiskSpacedUsedPct(context), @@ -198,3 +200,52 @@ export async function getMainSummaryStats({ dailyDataGeneration: estimatedIncrementalSize / durationAsDays, }; } + +export interface StorageExplorerSummaryStatisticsResponse { + tracesPerMinute: number; + totalSize: number; + diskSpaceUsedPct: number; + numberOfServices: number; + estimatedIncrementalSize: number; + dailyDataGeneration: number; +} + +export async function getSummaryStatistics({ + apmEventClient, + context, + start, + end, + environment, + kuery, + randomSampler, + indexLifecyclePhase, + searchAggregatedTransactions, +}: TracesPerMinuteOptions & + MainSummaryStatsOptions): Promise { + const [mainSummaryStats, tracesPerMinute] = await Promise.all([ + getMainSummaryStats({ + apmEventClient, + context, + indexLifecyclePhase, + randomSampler, + start, + end, + environment, + kuery, + }), + getTracesPerMinute({ + apmEventClient, + indexLifecyclePhase, + start, + end, + environment, + kuery, + searchAggregatedTransactions, + }), + ]); + + return { + ...mainSummaryStats, + tracesPerMinute, + }; +} diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/route.ts b/x-pack/plugins/apm/server/routes/storage_explorer/route.ts index 3870f321e0616..3a862ab90aca4 100644 --- a/x-pack/plugins/apm/server/routes/storage_explorer/route.ts +++ b/x-pack/plugins/apm/server/routes/storage_explorer/route.ts @@ -5,39 +5,43 @@ * 2.0. */ -import * as t from 'io-ts'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; import Boom from '@hapi/boom'; import { i18n } from '@kbn/i18n'; +import * as t from 'io-ts'; import { ENVIRONMENT_ALL } from '../../../common/environment_filter_values'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { indexLifecyclePhaseRt, IndexLifecyclePhaseSelectOption, } from '../../../common/storage_explorer_types'; -import { getServiceStatistics } from './get_service_statistics'; +import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { getRandomSampler } from '../../lib/helpers/get_random_sampler'; +import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { - probabilityRt, environmentRt, kueryRt, + probabilityRt, rangeRt, } from '../default_api_types'; -import { AgentName } from '../../../typings/es_schemas/ui/fields/agent'; +import { getServiceNamesFromTermsEnum } from '../services/get_services/get_service_names_from_terms_enum'; import { - getStorageDetailsPerIndex, - getStorageDetailsPerProcessorEvent, -} from './get_storage_details_per_service'; -import { getRandomSampler } from '../../lib/helpers/get_random_sampler'; -import { getSizeTimeseries } from './get_size_timeseries'; -import { hasStorageExplorerPrivileges } from './has_storage_explorer_privileges'; + getServiceStatistics, + StorageExplorerServiceStatisticsResponse, +} from './get_service_statistics'; +import { + getSizeTimeseries, + SizeTimeseriesResponse, +} from './get_size_timeseries'; +import { + getStorageDetails, + StorageDetailsResponse, +} from './get_storage_details'; import { - getMainSummaryStats, - getTracesPerMinute, + getSummaryStatistics, + StorageExplorerSummaryStatisticsResponse, } from './get_summary_statistics'; -import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; +import { hasStorageExplorerPrivileges } from './has_storage_explorer_privileges'; import { isCrossClusterSearch } from './is_cross_cluster_search'; -import { getServiceNamesFromTermsEnum } from '../services/get_services/get_service_names_from_terms_enum'; const storageExplorerRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/storage_explorer', @@ -54,13 +58,7 @@ const storageExplorerRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - serviceStatistics: Array<{ - serviceName: string; - environments: string[]; - size?: number; - agentName: AgentName; - sampling: number; - }>; + serviceStatistics: StorageExplorerServiceStatisticsResponse; }> => { const { config, @@ -125,28 +123,7 @@ const storageExplorerServiceDetailsRoute = createApmServerRoute({ rangeRt, ]), }), - handler: async ( - resources - ): Promise<{ - processorEventStats: Array<{ - processorEvent: - | ProcessorEvent.transaction - | ProcessorEvent.error - | ProcessorEvent.metric - | ProcessorEvent.span; - docs: number; - size: number; - }>; - indicesStats: Array<{ - indexName: string; - numberOfDocs: number; - primary?: number | string; - replica?: number | string; - size?: number; - dataStream?: string; - lifecyclePhase?: string; - }>; - }> => { + handler: async (resources): Promise => { const { params, context, @@ -171,32 +148,17 @@ const storageExplorerServiceDetailsRoute = createApmServerRoute({ getRandomSampler({ security, request, probability }), ]); - const [processorEventStats, indicesStats] = await Promise.all([ - getStorageDetailsPerProcessorEvent({ - apmEventClient, - context, - indexLifecyclePhase, - randomSampler, - environment, - kuery, - start, - end, - serviceName, - }), - getStorageDetailsPerIndex({ - apmEventClient, - context, - indexLifecyclePhase, - randomSampler, - environment, - kuery, - start, - end, - serviceName, - }), - ]); - - return { processorEventStats, indicesStats }; + return getStorageDetails({ + apmEventClient, + context, + start, + end, + environment, + kuery, + indexLifecyclePhase, + randomSampler, + serviceName, + }); }, }); @@ -215,10 +177,7 @@ const storageChartRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - storageTimeSeries: Array<{ - serviceName: string; - timeseries: Array<{ x: number; y: number }>; - }>; + storageTimeSeries: SizeTimeseriesResponse; }> => { const { config, @@ -304,14 +263,7 @@ const storageExplorerSummaryStatsRoute = createApmServerRoute({ }), handler: async ( resources - ): Promise<{ - tracesPerMinute: number; - numberOfServices: number; - totalSize: number; - diskSpaceUsedPct: number; - estimatedIncrementalSize: number; - dailyDataGeneration: number; - }> => { + ): Promise => { const { config, params, @@ -342,32 +294,17 @@ const storageExplorerSummaryStatsRoute = createApmServerRoute({ kuery, }); - const [mainSummaryStats, tracesPerMinute] = await Promise.all([ - getMainSummaryStats({ - apmEventClient, - context, - indexLifecyclePhase, - randomSampler, - start, - end, - environment, - kuery, - }), - getTracesPerMinute({ - apmEventClient, - indexLifecyclePhase, - start, - end, - environment, - kuery, - searchAggregatedTransactions, - }), - ]); - - return { - ...mainSummaryStats, - tracesPerMinute, - }; + return getSummaryStatistics({ + apmEventClient, + start, + end, + environment, + kuery, + context, + indexLifecyclePhase, + randomSampler, + searchAggregatedTransactions, + }); }, }); diff --git a/x-pack/plugins/apm/server/routes/traces/get_top_traces_primary_stats.ts b/x-pack/plugins/apm/server/routes/traces/get_top_traces_primary_stats.ts index 6026d3e517cfd..6a4b9ce0edbfa 100644 --- a/x-pack/plugins/apm/server/routes/traces/get_top_traces_primary_stats.ts +++ b/x-pack/plugins/apm/server/routes/traces/get_top_traces_primary_stats.ts @@ -47,6 +47,20 @@ interface TopTracesParams { apmEventClient: APMEventClient; randomSampler: RandomSampler; } + +export interface TopTracesPrimaryStatsResponse { + // sort by impact by default so most impactful services are not cut off + items: Array<{ + key: BucketKey; + serviceName: string; + transactionName: string; + averageResponseTime: number | null; + transactionsPerMinute: number; + transactionType: string; + impact: number; + agentName: AgentName; + }>; +} export async function getTopTracesPrimaryStats({ environment, kuery, @@ -56,7 +70,7 @@ export async function getTopTracesPrimaryStats({ end, apmEventClient, randomSampler, -}: TopTracesParams) { +}: TopTracesParams): Promise { return withApmSpan('get_top_traces_primary_stats', async () => { const response = await apmEventClient.search( 'get_transaction_group_stats', diff --git a/x-pack/plugins/apm/server/routes/traces/get_trace_samples_by_query.ts b/x-pack/plugins/apm/server/routes/traces/get_trace_samples_by_query.ts index 66334b80a1ac7..dbce6c466c033 100644 --- a/x-pack/plugins/apm/server/routes/traces/get_trace_samples_by_query.ts +++ b/x-pack/plugins/apm/server/routes/traces/get_trace_samples_by_query.ts @@ -23,6 +23,11 @@ import { import { asMutableArray } from '../../../common/utils/as_mutable_array'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +export type TraceSamplesResponse = Array<{ + traceId: string; + transactionId: string; +}>; + export async function getTraceSamplesByQuery({ apmEventClient, start, @@ -37,7 +42,7 @@ export async function getTraceSamplesByQuery({ environment: Environment; query: string; type: TraceSearchType; -}) { +}): Promise { const size = 500; let traceIds: string[] = []; diff --git a/x-pack/plugins/apm/server/routes/traces/route.ts b/x-pack/plugins/apm/server/routes/traces/route.ts index ab7b6a69c18df..77e9e336966e2 100644 --- a/x-pack/plugins/apm/server/routes/traces/route.ts +++ b/x-pack/plugins/apm/server/routes/traces/route.ts @@ -18,9 +18,15 @@ import { } from '../default_api_types'; import { getTransaction } from '../transactions/get_transaction'; import { getRootTransactionByTraceId } from '../transactions/get_transaction_by_trace'; -import { getTopTracesPrimaryStats } from './get_top_traces_primary_stats'; +import { + getTopTracesPrimaryStats, + TopTracesPrimaryStatsResponse, +} from './get_top_traces_primary_stats'; import { getTraceItems, TraceItems } from './get_trace_items'; -import { getTraceSamplesByQuery } from './get_trace_samples_by_query'; +import { + getTraceSamplesByQuery, + TraceSamplesResponse, +} from './get_trace_samples_by_query'; import { getRandomSampler } from '../../lib/helpers/get_random_sampler'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; import { @@ -28,6 +34,8 @@ import { getAggregatedCriticalPath, } from './get_aggregated_critical_path'; import { getSpan } from '../transactions/get_span'; +import { Transaction } from '../../../typings/es_schemas/ui/transaction'; +import { Span } from '../../../typings/es_schemas/ui/span'; const tracesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/traces', @@ -35,20 +43,7 @@ const tracesRoute = createApmServerRoute({ query: t.intersection([environmentRt, kueryRt, rangeRt, probabilityRt]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - items: Array<{ - key: import('./get_top_traces_primary_stats').BucketKey; - serviceName: string; - transactionName: string; - averageResponseTime: number | null; - transactionsPerMinute: number; - transactionType: string; - impact: number; - agentName: import('./../../../typings/es_schemas/ui/fields/agent').AgentName; - }>; - }> => { + handler: async (resources): Promise => { const { config, params, @@ -96,7 +91,7 @@ const tracesByIdRoute = createApmServerRoute({ resources ): Promise<{ traceItems: TraceItems; - entryTransaction?: import('./../../../typings/es_schemas/ui/transaction').Transaction; + entryTransaction?: Transaction; }> => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -128,7 +123,7 @@ const rootTransactionByTraceIdRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - transaction: import('./../../../typings/es_schemas/ui/transaction').Transaction; + transaction: Transaction; }> => { const { params } = resources; const { traceId } = params.path; @@ -148,7 +143,7 @@ const transactionByIdRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - transaction: import('./../../../typings/es_schemas/ui/transaction').Transaction; + transaction: Transaction; }> => { const { params } = resources; const { transactionId } = params.path; @@ -180,7 +175,7 @@ const findTracesRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - traceSamples: Array<{ traceId: string; transactionId: string }>; + traceSamples: TraceSamplesResponse; }> => { const { start, end, environment, query, type } = resources.params.query; @@ -246,11 +241,7 @@ const transactionFromTraceByIdRoute = createApmServerRoute({ }), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise< - import('./../../../typings/es_schemas/ui/transaction').Transaction - > => { + handler: async (resources): Promise => { const { params } = resources; const { transactionId, traceId } = params.path; const apmEventClient = await getApmEventClient(resources); @@ -275,8 +266,8 @@ const spanFromTraceByIdRoute = createApmServerRoute({ handler: async ( resources ): Promise<{ - span?: import('./../../../typings/es_schemas/ui/span').Span; - parentTransaction?: import('./../../../typings/es_schemas/ui/transaction').Transaction; + span?: Span; + parentTransaction?: Transaction; }> => { const { params } = resources; const { spanId, traceId } = params.path; diff --git a/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts index 74dcf54a30b62..69a79aac13bba 100644 --- a/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts @@ -24,6 +24,17 @@ import { getVizColorForIndex } from '../../../../common/viz_colors'; import { APMConfig } from '../../..'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +export interface TransactionBreakdownResponse { + timeseries: Array<{ + title: string; + color: string; + type: string; + data: Array<{ x: number; y: number | null }>; + hideLegend: boolean; + legendValue: any; + }>; +} + export async function getTransactionBreakdown({ environment, kuery, @@ -44,7 +55,7 @@ export async function getTransactionBreakdown({ transactionType: string; start: number; end: number; -}) { +}): Promise { const subAggs = { sum_all_self_times: { sum: { diff --git a/x-pack/plugins/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts b/x-pack/plugins/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts index 8a5ec8c83814d..3b0bc38d1ad8d 100644 --- a/x-pack/plugins/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts @@ -7,6 +7,18 @@ import { getFailedTransactionRate } from '../../lib/transaction_groups/get_failed_transaction_rate'; import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { Coordinate } from '../../../typings/timeseries'; + +export interface FailedTransactionRateResponse { + currentPeriod: { + timeseries: Coordinate[]; + average: number | null; + }; + previousPeriod: { + timeseries: Coordinate[]; + average: number | null; + }; +} export async function getFailedTransactionRatePeriods({ environment, @@ -30,7 +42,7 @@ export async function getFailedTransactionRatePeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const commonProps = { environment, kuery, diff --git a/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts index 5e6176d9f3f90..818ccd233d515 100644 --- a/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts @@ -31,6 +31,7 @@ import { } from '../../../lib/helpers/latency_aggregation_type'; import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms'; import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { Coordinate } from '../../../../typings/timeseries'; export type LatencyChartsSearchResponse = Awaited< ReturnType @@ -186,6 +187,17 @@ export async function getLatencyTimeseries({ }; } +export interface TransactionLatencyResponse { + currentPeriod: { + overallAvgDuration: number | null; + latencyTimeseries: Coordinate[]; + }; + previousPeriod: { + overallAvgDuration: number | null; + latencyTimeseries: Coordinate[]; + }; +} + export async function getLatencyPeriods({ serviceName, transactionType, @@ -210,7 +222,7 @@ export async function getLatencyPeriods({ start: number; end: number; offset?: string; -}) { +}): Promise { const options = { serviceName, transactionType, diff --git a/x-pack/plugins/apm/server/routes/transactions/route.ts b/x-pack/plugins/apm/server/routes/transactions/route.ts index 1385ad72351c7..afdeb87777786 100644 --- a/x-pack/plugins/apm/server/routes/transactions/route.ts +++ b/x-pack/plugins/apm/server/routes/transactions/route.ts @@ -12,16 +12,37 @@ import { latencyAggregationTypeRt, } from '../../../common/latency_aggregation_types'; import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; -import { getServiceTransactionGroups } from '../services/get_service_transaction_groups'; -import { getServiceTransactionGroupDetailedStatisticsPeriods } from '../services/get_service_transaction_group_detailed_statistics'; -import { getTransactionBreakdown } from './breakdown'; -import { getLatencyPeriods } from './get_latency_charts'; -import { getFailedTransactionRatePeriods } from './get_failed_transaction_rate_periods'; -import { getColdstartRatePeriods } from '../../lib/transaction_groups/get_coldstart_rate'; +import { + getServiceTransactionGroups, + ServiceTransactionGroupsResponse, +} from '../services/get_service_transaction_groups'; +import { + getServiceTransactionGroupDetailedStatisticsPeriods, + ServiceTransactionGroupDetailedStatisticsResponse, +} from '../services/get_service_transaction_group_detailed_statistics'; +import { + getTransactionBreakdown, + TransactionBreakdownResponse, +} from './breakdown'; +import { + getLatencyPeriods, + TransactionLatencyResponse, +} from './get_latency_charts'; +import { + FailedTransactionRateResponse, + getFailedTransactionRatePeriods, +} from './get_failed_transaction_rate_periods'; +import { + ColdstartRateResponse, + getColdstartRatePeriods, +} from '../../lib/transaction_groups/get_coldstart_rate'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; import { offsetRt } from '../../../common/comparison_rt'; -import { getTraceSamples } from './trace_samples'; +import { + getTraceSamples, + TransactionTraceSamplesResponse, +} from './trace_samples'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; const transactionGroupsMainStatisticsRoute = createApmServerRoute({ @@ -42,20 +63,7 @@ const transactionGroupsMainStatisticsRoute = createApmServerRoute({ options: { tags: ['access:apm'], }, - handler: async ( - resources - ): Promise<{ - transactionGroups: Array<{ - transactionType: string; - name: string; - latency: number | null; - throughput: number; - errorRate: number; - impact: number; - }>; - transactionOverflowCount: number; - maxTransactionGroupsExceeded: boolean; - }> => { + handler: async (resources): Promise => { const { params, config } = resources; const apmEventClient = await getApmEventClient(resources); const { @@ -80,7 +88,6 @@ const transactionGroupsMainStatisticsRoute = createApmServerRoute({ return getServiceTransactionGroups({ environment, kuery, - config, apmEventClient, serviceName, searchAggregatedTransactions, @@ -115,31 +122,7 @@ const transactionGroupsDetailedStatisticsRoute = createApmServerRoute({ }, handler: async ( resources - ): Promise<{ - currentPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - transactionName: string; - latency: Array; - throughput: Array; - errorRate: Array; - impact: number; - }>; - previousPeriod: import('./../../../../../../node_modules/@types/lodash/ts3.1/index').Dictionary<{ - errorRate: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - throughput: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - latency: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - transactionName: string; - impact: number; - }>; - }> => { + ): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -166,7 +149,7 @@ const transactionGroupsDetailedStatisticsRoute = createApmServerRoute({ end, }); - return await getServiceTransactionGroupDetailedStatisticsPeriods({ + return getServiceTransactionGroupDetailedStatisticsPeriods({ environment, kuery, apmEventClient, @@ -200,29 +183,7 @@ const transactionLatencyChartsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: { - overallAvgDuration: number | null; - latencyTimeseries: Array<{ x: number; y: number | null }>; - }; - previousPeriod: - | { - latencyTimeseries: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - overallAvgDuration: number | null; - } - | { - latencyTimeseries: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - overallAvgDuration: null; - }; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, logger, config } = resources; @@ -259,16 +220,11 @@ const transactionLatencyChartsRoute = createApmServerRoute({ end, }; - const { currentPeriod, previousPeriod } = await getLatencyPeriods({ + return getLatencyPeriods({ ...options, latencyAggregationType: latencyAggregationType as LatencyAggregationType, offset, }); - - return { - currentPeriod, - previousPeriod, - }; }, }); @@ -296,11 +252,7 @@ const transactionTraceSamplesRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - traceSamples: Array<{ transactionId: string; traceId: string }>; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; @@ -350,18 +302,7 @@ const transactionChartsBreakdownRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - timeseries: Array<{ - title: string; - color: string; - type: string; - data: Array<{ x: number; y: number | null }>; - hideLegend: boolean; - legendValue: string; - }>; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -397,29 +338,7 @@ const transactionChartsErrorRateRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: { - timeseries: Array; - average: number | null; - }; - previousPeriod: - | { - timeseries: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - average: number | null; - } - | { - timeseries: Array<{ - x: number; - y: import('./../../../typings/common').Maybe; - }>; - average: null; - }; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -470,31 +389,7 @@ const transactionChartsColdstartRateRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: { - transactionColdstartRate: Array< - import('../../../typings/timeseries').Coordinate - >; - average: number | null; - }; - previousPeriod: - | { - transactionColdstartRate: Array<{ - x: number; - y: import('../../../typings/common').Maybe; - }>; - average: number | null; - } - | { - transactionColdstartRate: Array<{ - x: number; - y: import('../../../typings/common').Maybe; - }>; - average: null; - }; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; @@ -538,31 +433,7 @@ const transactionChartsColdstartRateByTransactionNameRoute = ]), }), options: { tags: ['access:apm'] }, - handler: async ( - resources - ): Promise<{ - currentPeriod: { - transactionColdstartRate: Array< - import('../../../typings/timeseries').Coordinate - >; - average: number | null; - }; - previousPeriod: - | { - transactionColdstartRate: Array<{ - x: number; - y: import('../../../typings/common').Maybe; - }>; - average: number | null; - } - | { - transactionColdstartRate: Array<{ - x: number; - y: import('../../../typings/common').Maybe; - }>; - average: null; - }; - }> => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params, config } = resources; diff --git a/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts b/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts index 80cf5fdd4760f..b3cf49c8c4ef6 100644 --- a/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts @@ -22,6 +22,15 @@ import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm const TRACE_SAMPLES_SIZE = 500; +export interface TransactionTraceSamplesResponse { + traceSamples: Array<{ + score: number | null | undefined; + timestamp: string; + transactionId: string; + traceId: string; + }>; +} + export async function getTraceSamples({ environment, kuery, @@ -48,7 +57,7 @@ export async function getTraceSamples({ apmEventClient: APMEventClient; start: number; end: number; -}) { +}): Promise { return withApmSpan('get_trace_samples', async () => { const commonFilters = [ { term: { [SERVICE_NAME]: serviceName } }, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx index 61a340c0cc0f3..c7c5041849988 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx @@ -195,7 +195,13 @@ export const BenchmarksSection = ({ } viewAllButtonTitle={i18n.translate( 'xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle', - { defaultMessage: 'View all failed findings for this cluster' } + { + defaultMessage: 'View all failed findings for this {postureAsset}', + values: { + postureAsset: + dashboardType === CSPM_POLICY_TEMPLATE ? 'cloud account' : 'cluster', + }, + } )} onViewAllClick={() => navToFailedFindingsByCluster(cluster)} /> diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.test.tsx index 8de39503a9644..75ef4b8e4cbae 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.test.tsx @@ -88,12 +88,12 @@ describe('', () => { ); - data.forEach((item, i) => { + data.forEach((item) => { const row = screen.getByTestId( TEST_SUBJECTS.getFindingsByResourceTableRowTestId(getResourceId(item)) ); expect(row).toBeInTheDocument(); - expect(within(row).getByText(item.resource_id)).toBeInTheDocument(); + expect(within(row).getByText(item.resource_id || '')).toBeInTheDocument(); if (item['resource.name']) expect(within(row).getByText(item['resource.name'])).toBeInTheDocument(); if (item['resource.sub_type']) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx index b25149208ce1a..41a18e743f305 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx @@ -44,7 +44,8 @@ interface Props { } export const getResourceId = (resource: FindingsByResourcePage) => { - return [resource.resource_id, ...resource['rule.section']].join('/'); + const sections = resource['rule.section'] || []; + return [resource.resource_id, ...sections].join('/'); }; const FindingsByResourceTableComponent = ({ @@ -81,9 +82,7 @@ const FindingsByResourceTableComponent = ({ getNonSortableColumn(findingsByResourceColumns['rule.benchmark.name']), { onAddFilter } ), - createColumnWithFilters(getNonSortableColumn(findingsByResourceColumns.belongs_to), { - onAddFilter, - }), + getNonSortableColumn(findingsByResourceColumns.belongs_to), findingsByResourceColumns.compliance_score, ], [onAddFilter] @@ -124,17 +123,21 @@ const baseColumns: Array> = ...baseFindingsColumns['resource.id'], field: 'resource_id', width: '15%', - render: (resourceId: FindingsByResourcePage['resource_id']) => ( - - {resourceId} - - ), + render: (resourceId: FindingsByResourcePage['resource_id']) => { + if (!resourceId) return; + + return ( + + {resourceId} + + ); + }, }, baseFindingsColumns['resource.sub_type'], baseFindingsColumns['resource.name'], diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/use_findings_by_resource.ts b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/use_findings_by_resource.ts index 0442ff3424ad8..446eb7ab6c281 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/use_findings_by_resource.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/use_findings_by_resource.ts @@ -7,8 +7,17 @@ import { useQuery } from '@tanstack/react-query'; import { lastValueFrom } from 'rxjs'; import { IKibanaSearchRequest, IKibanaSearchResponse } from '@kbn/data-plugin/common'; -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Pagination } from '@elastic/eui'; +import { + AggregationsCardinalityAggregate, + AggregationsMultiBucketAggregateBase, + AggregationsMultiBucketBase, + AggregationsScriptedMetricAggregate, + AggregationsStringRareTermsBucketKeys, + AggregationsStringTermsBucketKeys, + SearchRequest, + SearchResponse, +} from '@elastic/elasticsearch/lib/api/types'; import { getBelongsToRuntimeMapping } from '../../../../common/runtime_mappings/get_belongs_to_runtime_mapping'; import { MAX_FINDINGS_TO_LOAD } from '../../../common/constants'; import { useKibana } from '../../../common/hooks/use_kibana'; @@ -30,10 +39,8 @@ export interface FindingsByResourceQuery { sortDirection: Sort['direction']; } -type FindingsAggRequest = IKibanaSearchRequest; -type FindingsAggResponse = IKibanaSearchResponse< - estypes.SearchResponse<{}, FindingsByResourceAggs> ->; +type FindingsAggRequest = IKibanaSearchRequest; +type FindingsAggResponse = IKibanaSearchResponse>; export interface FindingsByResourcePage { findings: { @@ -43,88 +50,86 @@ export interface FindingsByResourcePage { total_findings: number; }; compliance_score: number; - resource_id: string; - belongs_to: string; - 'resource.name': string; - 'resource.sub_type': string; - 'rule.benchmark.name': string; - 'rule.section': string[]; + resource_id?: string; + belongs_to?: string; + 'resource.name'?: string; + 'resource.sub_type'?: string; + 'rule.benchmark.name'?: string; + 'rule.section'?: string[]; } interface FindingsByResourceAggs { - resource_total: estypes.AggregationsCardinalityAggregate; - resources: estypes.AggregationsMultiBucketAggregateBase; - count: estypes.AggregationsMultiBucketAggregateBase; + resource_total: AggregationsCardinalityAggregate; + resources: AggregationsMultiBucketAggregateBase; + count: AggregationsMultiBucketAggregateBase; } -interface FindingsAggBucket extends estypes.AggregationsStringRareTermsBucketKeys { - failed_findings: estypes.AggregationsMultiBucketBase; - compliance_score: estypes.AggregationsScriptedMetricAggregate; - passed_findings: estypes.AggregationsMultiBucketBase; - name: estypes.AggregationsMultiBucketAggregateBase; - subtype: estypes.AggregationsMultiBucketAggregateBase; - belongs_to: estypes.AggregationsMultiBucketAggregateBase; - benchmarkName: estypes.AggregationsMultiBucketAggregateBase; - cis_sections: estypes.AggregationsMultiBucketAggregateBase; +interface FindingsAggBucket extends AggregationsStringRareTermsBucketKeys { + failed_findings: AggregationsMultiBucketBase; + compliance_score: AggregationsScriptedMetricAggregate; + passed_findings: AggregationsMultiBucketBase; + name: AggregationsMultiBucketAggregateBase; + subtype: AggregationsMultiBucketAggregateBase; + belongs_to: AggregationsMultiBucketAggregateBase; + benchmarkName: AggregationsMultiBucketAggregateBase; + cis_sections: AggregationsMultiBucketAggregateBase; } export const getFindingsByResourceAggQuery = ({ query, sortDirection, -}: UseFindingsByResourceOptions): estypes.SearchRequest => ({ +}: UseFindingsByResourceOptions): SearchRequest => ({ index: CSP_LATEST_FINDINGS_DATA_VIEW, - body: { - query, - size: 0, - runtime_mappings: getBelongsToRuntimeMapping(), - aggs: { - ...getFindingsCountAggQuery(), - resource_total: { cardinality: { field: 'resource.id' } }, - resources: { - terms: { field: 'resource.id', size: MAX_BUCKETS }, - aggs: { - name: { - terms: { field: 'resource.name', size: 1 }, - }, - subtype: { - terms: { field: 'resource.sub_type', size: 1 }, - }, - benchmarkName: { - terms: { field: 'rule.benchmark.name' }, - }, - cis_sections: { - terms: { field: 'rule.section' }, - }, - failed_findings: { - filter: { term: { 'result.evaluation': 'failed' } }, - }, - passed_findings: { - filter: { term: { 'result.evaluation': 'passed' } }, - }, - // this field is runtime generated - belongs_to: { - terms: { field: 'belongs_to', size: 1 }, - }, - compliance_score: { - bucket_script: { - buckets_path: { - passed: 'passed_findings>_count', - failed: 'failed_findings>_count', - }, - script: 'params.passed / (params.passed + params.failed)', + query, + size: 0, + runtime_mappings: getBelongsToRuntimeMapping(), + aggs: { + ...getFindingsCountAggQuery(), + resource_total: { cardinality: { field: 'resource.id' } }, + resources: { + terms: { field: 'resource.id', size: MAX_BUCKETS }, + aggs: { + name: { + terms: { field: 'resource.name', size: 1 }, + }, + subtype: { + terms: { field: 'resource.sub_type', size: 1 }, + }, + benchmarkName: { + terms: { field: 'rule.benchmark.name' }, + }, + cis_sections: { + terms: { field: 'rule.section' }, + }, + failed_findings: { + filter: { term: { 'result.evaluation': 'failed' } }, + }, + passed_findings: { + filter: { term: { 'result.evaluation': 'passed' } }, + }, + // this field is runtime generated + belongs_to: { + terms: { field: 'belongs_to', size: 1 }, + }, + compliance_score: { + bucket_script: { + buckets_path: { + passed: 'passed_findings>_count', + failed: 'failed_findings>_count', }, + script: 'params.passed / (params.passed + params.failed)', }, - sort_by_compliance_score: { - bucket_sort: { - size: MAX_FINDINGS_TO_LOAD, - sort: [ - { - compliance_score: { order: sortDirection }, - _count: { order: 'desc' }, - _key: { order: 'asc' }, - }, - ], - }, + }, + sort_by_compliance_score: { + bucket_sort: { + size: MAX_FINDINGS_TO_LOAD, + sort: [ + { + compliance_score: { order: sortDirection }, + _count: { order: 'desc' }, + _key: { order: 'asc' }, + }, + ], }, }, }, @@ -133,6 +138,35 @@ export const getFindingsByResourceAggQuery = ({ ignore_unavailable: false, }); +const getFirstKey = ( + buckets: AggregationsMultiBucketAggregateBase['buckets'] +): undefined | string => { + if (!!Array.isArray(buckets) && !!buckets.length) return buckets[0].key; +}; + +const getKeysList = ( + buckets: AggregationsMultiBucketAggregateBase['buckets'] +): undefined | string[] => { + if (!!Array.isArray(buckets) && !!buckets.length) return buckets.map((v) => v.key); +}; + +const createFindingsByResource = (resource: FindingsAggBucket): FindingsByResourcePage => ({ + resource_id: resource.key, + ['resource.name']: getFirstKey(resource.name.buckets), + ['resource.sub_type']: getFirstKey(resource.subtype.buckets), + ['rule.section']: getKeysList(resource.cis_sections.buckets), + ['rule.benchmark.name']: getFirstKey(resource.benchmarkName.buckets), + belongs_to: getFirstKey(resource.belongs_to.buckets), + compliance_score: resource.compliance_score.value, + findings: { + failed_findings: resource.failed_findings.doc_count, + normalized: + resource.doc_count > 0 ? resource.failed_findings.doc_count / resource.doc_count : 0, + total_findings: resource.doc_count, + passed_findings: resource.passed_findings.doc_count, + }, +}); + export const useFindingsByResource = (options: UseFindingsByResourceOptions) => { const { data, @@ -152,16 +186,18 @@ export const useFindingsByResource = (options: UseFindingsByResourceOptions) => }) ); - if (!aggregations) throw new Error('expected aggregations to be defined'); + if (!aggregations) throw new Error('Failed to aggregate by, missing resource id'); if ( !Array.isArray(aggregations.resources.buckets) || !Array.isArray(aggregations.count.buckets) ) - throw new Error('expected buckets to be an array'); + throw new Error('Failed to group by, missing resource id'); + + const page = aggregations.resources.buckets.map(createFindingsByResource); return { - page: aggregations.resources.buckets.map(createFindingsByResource), + page, total: aggregations.resource_total.value, count: getAggregationCount(aggregations.count.buckets), }; @@ -173,36 +209,3 @@ export const useFindingsByResource = (options: UseFindingsByResourceOptions) => } ); }; - -const createFindingsByResource = (resource: FindingsAggBucket): FindingsByResourcePage => { - if ( - !Array.isArray(resource.benchmarkName.buckets) || - !Array.isArray(resource.cis_sections.buckets) || - !Array.isArray(resource.name.buckets) || - !Array.isArray(resource.subtype.buckets) || - !Array.isArray(resource.belongs_to.buckets) || - !resource.benchmarkName.buckets.length || - !resource.cis_sections.buckets.length || - !resource.name.buckets.length || - !resource.subtype.buckets.length || - !resource.belongs_to.buckets.length - ) - throw new Error('expected buckets to be an array'); - - return { - resource_id: resource.key, - ['resource.name']: resource.name.buckets[0]?.key, - ['resource.sub_type']: resource.subtype.buckets[0]?.key, - ['rule.section']: resource.cis_sections.buckets.map((v) => v.key), - ['rule.benchmark.name']: resource.benchmarkName.buckets[0]?.key, - belongs_to: resource.belongs_to.buckets[0]?.key, - compliance_score: resource.compliance_score.value, - findings: { - failed_findings: resource.failed_findings.doc_count, - normalized: - resource.doc_count > 0 ? resource.failed_findings.doc_count / resource.doc_count : 0, - total_findings: resource.doc_count, - passed_findings: resource.passed_findings.doc_count, - }, - }; -}; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx index 6b46eba1a87bc..fecc0327b68ff 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx @@ -21,6 +21,7 @@ import { i18n } from '@kbn/i18n'; import { euiThemeVars } from '@kbn/ui-theme'; import type { Serializable } from '@kbn/utility-types'; import { FormattedMessage } from '@kbn/i18n-react'; +import { FindingsByResourcePage } from '../latest_findings_by_resource/use_findings_by_resource'; import { MAX_FINDINGS_TO_LOAD } from '../../../common/constants'; import { TimestampTableCell } from '../../../components/timestamp_table_cell'; import { ColumnNameWithTooltip } from '../../../components/column_name_with_tooltip'; @@ -117,11 +118,15 @@ const baseColumns = [ ), sortable: true, truncateText: true, - render: (name: string) => ( - - <>{name} - - ), + render: (name: FindingsByResourcePage['resource.name']) => { + if (!name) return; + + return ( + + <>{name} + + ); + }, }, { field: 'rule.name', diff --git a/x-pack/plugins/monitoring/server/config.test.ts b/x-pack/plugins/monitoring/server/config.test.ts index 98aa22f2134fd..0b4a4e1bb57db 100644 --- a/x-pack/plugins/monitoring/server/config.test.ts +++ b/x-pack/plugins/monitoring/server/config.test.ts @@ -55,6 +55,7 @@ describe('config schema', () => { "debug_mode": false, "elasticsearch": Object { "apiVersion": "master", + "apisToRedactInLogs": Array [], "compression": false, "customHeaders": Object {}, "healthCheck": Object { diff --git a/x-pack/plugins/observability/kibana.jsonc b/x-pack/plugins/observability/kibana.jsonc index 4026d9f41088d..de3927c6cb729 100644 --- a/x-pack/plugins/observability/kibana.jsonc +++ b/x-pack/plugins/observability/kibana.jsonc @@ -6,10 +6,7 @@ "id": "observability", "server": true, "browser": true, - "configPath": [ - "xpack", - "observability" - ], + "configPath": ["xpack", "observability"], "requiredPlugins": [ "alerting", "cases", @@ -25,7 +22,7 @@ "unifiedSearch", "security", "guidedOnboarding", - "share", + "share" ], "optionalPlugins": [ "discover", @@ -44,11 +41,8 @@ "kibanaReact", "kibanaUtils", "lens", - "usageCollection", "visualizations" ], - "extraPublicDirs": [ - "common" - ] + "extraPublicDirs": ["common"] } } diff --git a/x-pack/plugins/observability/public/application/index.tsx b/x-pack/plugins/observability/public/application/index.tsx index bce6ad7918632..3ce797054819d 100644 --- a/x-pack/plugins/observability/public/application/index.tsx +++ b/x-pack/plugins/observability/public/application/index.tsx @@ -25,7 +25,6 @@ import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; import type { LazyObservabilityPageTemplateProps } from '../components/shared/page_template/lazy_page_template'; import { HasDataContextProvider } from '../context/has_data_context'; import { PluginContext } from '../context/plugin_context'; -import { useRouteParams } from '../hooks/use_route_params'; import { ConfigSchema, ObservabilityPublicPluginsStart } from '../plugin'; import { routes } from '../routes'; import { ObservabilityRuleTypeRegistry } from '../rules/create_observability_rule_type_registry'; @@ -38,8 +37,7 @@ function App() { const path = key as keyof typeof routes; const { handler, exact } = routes[path]; const Wrapper = () => { - const params = useRouteParams(path); - return handler(params); + return handler(); }; return ; })} diff --git a/x-pack/plugins/observability/public/components/alerts_flyout_body.tsx b/x-pack/plugins/observability/public/components/alerts_flyout_body.tsx index 323e9c46a5cea..8f1b290b439d2 100644 --- a/x-pack/plugins/observability/public/components/alerts_flyout_body.tsx +++ b/x-pack/plugins/observability/public/components/alerts_flyout_body.tsx @@ -31,7 +31,8 @@ import moment from 'moment-timezone'; import { useUiSetting } from '@kbn/kibana-react-plugin/public'; import { useKibana } from '../utils/kibana_react'; import { asDuration } from '../../common/utils/formatters'; -import { translations, paths } from '../config'; +import { paths } from '../config/paths'; +import { translations } from '../config/translations'; import { formatAlertEvaluationValue } from '../utils/format_alert_evaluation_value'; import { RULE_DETAILS_PAGE_ID } from '../pages/rule_details/constants'; import type { TopAlert } from '../typings/alerts'; diff --git a/x-pack/plugins/observability/public/components/alerts_flyout_footer.tsx b/x-pack/plugins/observability/public/components/alerts_flyout_footer.tsx index e19a981402925..5b82d5b6339f6 100644 --- a/x-pack/plugins/observability/public/components/alerts_flyout_footer.tsx +++ b/x-pack/plugins/observability/public/components/alerts_flyout_footer.tsx @@ -9,7 +9,8 @@ import { EuiFlyoutFooter, EuiFlexGroup, EuiFlexItem, EuiButton } from '@elastic/ import { useKibana } from '../utils/kibana_react'; import { usePluginContext } from '../hooks/use_plugin_context'; import { isAlertDetailsEnabledPerApp } from '../utils/is_alert_details_enabled'; -import { translations, paths } from '../config'; +import { translations } from '../config/translations'; +import { paths } from '../config/paths'; import type { TopAlert } from '../typings/alerts'; interface FlyoutProps { diff --git a/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.test.tsx b/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.test.tsx index 3e6d32d6a569c..1e89ed5bf54a6 100644 --- a/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.test.tsx @@ -10,7 +10,7 @@ import { waitFor } from '@testing-library/react'; import { timefilterServiceMock } from '@kbn/data-plugin/public/query/timefilter/timefilter_service.mock'; import { ObservabilityAlertSearchBarProps } from './types'; import { ObservabilityAlertSearchBar } from './alert_search_bar'; -import { observabilityAlertFeatureIds } from '../../../config'; +import { observabilityAlertFeatureIds } from '../../../config/alert_feature_ids'; import { render } from '../../../utils/test_helper'; const getAlertsSearchBarMock = jest.fn(); diff --git a/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.tsx b/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.tsx index aec17127b8dd9..6abf6017cc0c2 100644 --- a/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.tsx +++ b/x-pack/plugins/observability/public/components/shared/alert_search_bar/alert_search_bar.tsx @@ -11,7 +11,7 @@ import React, { useCallback, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { Query } from '@kbn/es-query'; import { AlertsStatusFilter } from './components'; -import { observabilityAlertFeatureIds } from '../../../config'; +import { observabilityAlertFeatureIds } from '../../../config/alert_feature_ids'; import { ALERT_STATUS_QUERY, DEFAULT_QUERIES, DEFAULT_QUERY_STRING } from './constants'; import { ObservabilityAlertSearchBarProps } from './types'; import { buildEsQuery } from '../../../utils/build_es_query'; diff --git a/x-pack/plugins/observability/public/pages/alerts/alerts.tsx b/x-pack/plugins/observability/public/pages/alerts/alerts.tsx index 251bee51c15dd..06218a37ad6b2 100644 --- a/x-pack/plugins/observability/public/pages/alerts/alerts.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/alerts.tsx @@ -31,7 +31,7 @@ import { calculateTimeRangeBucketSize } from '../overview/helpers/calculate_buck import { getNoDataConfig } from '../../utils/no_data_config'; import { getAlertSummaryTimeRange } from '../../utils/alert_summary_widget'; import { observabilityFeatureId } from '../../../common'; -import { observabilityAlertFeatureIds } from '../../config'; +import { observabilityAlertFeatureIds } from '../../config/alert_feature_ids'; import type { ObservabilityAppServices } from '../../application/types'; const ALERTS_SEARCH_BAR_ID = 'alerts-search-bar-o11y'; diff --git a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx index 2a79ef49e1fe1..b99e18819b97c 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx @@ -25,9 +25,9 @@ import { useKibana } from '../../../utils/kibana_react'; import { useGetUserCasesPermissions } from '../../../hooks/use_get_user_cases_permissions'; import { isAlertDetailsEnabledPerApp } from '../../../utils/is_alert_details_enabled'; import { parseAlert } from '../helpers/parse_alert'; -import { paths } from '../../../config'; +import { paths } from '../../../config/paths'; import { RULE_DETAILS_PAGE_ID } from '../../rule_details/constants'; -import { ObservabilityRuleTypeRegistry } from '../../..'; +import type { ObservabilityRuleTypeRegistry } from '../../..'; import type { ConfigSchema } from '../../../plugin'; import type { TopAlert } from '../../../typings/alerts'; diff --git a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx b/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx deleted file mode 100644 index bab4397a49a75..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx +++ /dev/null @@ -1,62 +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 - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { ComponentType } from 'react'; -import { MemoryRouter } from 'react-router-dom'; -import { AppMountParameters } from '@kbn/core/public'; -import { CoreStart } from '@kbn/core/public'; -import { KibanaPageTemplate } from '@kbn/shared-ux-page-kibana-template'; -import { createKibanaReactContext } from '@kbn/kibana-react-plugin/public'; -import { casesFeatureId } from '../../../common'; -import { PluginContext, PluginContextValue } from '../../context/plugin_context'; -import { CasesPage } from '.'; - -export default { - title: 'app/Cases', - component: CasesPage, - decorators: [ - (Story: ComponentType) => { - const KibanaReactContext = createKibanaReactContext({ - application: { - capabilities: { [casesFeatureId]: { read_cases: true } }, - getUrlForApp: () => '', - }, - http: { - basePath: { prepend: (link: string) => `http://localhost:5601${link}` }, - }, - cases: { getAllCases: () => <> }, - chrome: { docTitle: { change: () => {} }, setBadge: () => {} }, - docLinks: { - DOC_LINK_VERSION: '0', - ELASTIC_WEBSITE_URL: 'https://www.elastic.co/', - }, - uiSettings: { get: () => true }, - } as unknown as Partial); - - const pluginContextValue = { - ObservabilityPageTemplate: KibanaPageTemplate, - appMountParameters: { - setHeaderActionMenu: () => {}, - } as unknown as AppMountParameters, - } as unknown as PluginContextValue; - - return ( - - - - - - - - ); - }, - ], -}; - -export function EmptyState() { - return ; -} diff --git a/x-pack/plugins/observability/public/pages/cases/cases.tsx b/x-pack/plugins/observability/public/pages/cases/cases.tsx index abb01f3ff25f3..44ff25d30e654 100644 --- a/x-pack/plugins/observability/public/pages/cases/cases.tsx +++ b/x-pack/plugins/observability/public/pages/cases/cases.tsx @@ -5,75 +5,46 @@ * 2.0. */ -import React, { Suspense, useCallback, useState } from 'react'; +import React from 'react'; -import { CasesPermissions } from '@kbn/cases-plugin/common'; -import { useKibana } from '@kbn/kibana-react-plugin/public'; -import { CASES_OWNER, CASES_PATH } from './constants'; +import { useKibana } from '../../utils/kibana_react'; +import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; import { usePluginContext } from '../../hooks/use_plugin_context'; -import { LazyAlertsFlyout } from '../..'; -import { useFetchAlertDetail } from '../../hooks/use_fetch_alert_detail'; -import { useFetchAlertData } from '../../hooks/use_fetch_alert_data'; -import { paths } from '../../config'; -import { ObservabilityAppServices } from '../../application/types'; - -interface CasesProps { - permissions: CasesPermissions; -} -export const Cases = React.memo(({ permissions }) => { - const { - cases, - http: { - basePath: { prepend }, - }, - application: { navigateToUrl }, - } = useKibana().services; - const { observabilityRuleTypeRegistry } = usePluginContext(); - const [selectedAlertId, setSelectedAlertId] = useState(''); - - const handleFlyoutClose = useCallback(() => { - setSelectedAlertId(''); - }, []); - - const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); - - return ( - <> - {alertLoading === false && alert && selectedAlertId !== '' && ( - - - - )} - {cases.ui.getCases({ - basePath: CASES_PATH, - permissions, - owner: [CASES_OWNER], - features: { alerts: { sync: false, isExperimental: false } }, - useFetchAlertData, - showAlertDetails: (alertId: string) => { - setSelectedAlertId(alertId); - }, - ruleDetailsNavigation: { - href: (ruleId) => { - return prepend(paths.observability.ruleDetails(ruleId)); - }, - onClick: async (ruleId, ev) => { - const ruleLink = prepend(paths.observability.ruleDetails(ruleId)); - - if (ev != null) { - ev.preventDefault(); - } - - return navigateToUrl(ruleLink); - }, - }, - })} - +import { useHasData } from '../../hooks/use_has_data'; +import { Cases } from './components/cases'; +import { LoadingObservability } from '../../components/loading_observability'; +import { CaseFeatureNoPermissions } from './components/feature_no_permissions'; +import { getNoDataConfig } from '../../utils/no_data_config'; + +export function CasesPage() { + const userCasesPermissions = useGetUserCasesPermissions(); + const { docLinks, http } = useKibana().services; + const { ObservabilityPageTemplate } = usePluginContext(); + + const { hasAnyData, isAllRequestsComplete } = useHasData(); + + if (!hasAnyData && !isAllRequestsComplete) { + return ; + } + + // If there is any data, set hasData to true otherwise we need to wait till all the data is loaded before setting hasData to true or false; undefined indicates the data is still loading. + const hasData = hasAnyData === true || (isAllRequestsComplete === false ? undefined : false); + + const noDataConfig = getNoDataConfig({ + hasData, + basePath: http.basePath, + docsLink: docLinks.links.observability.guide, + }); + + return userCasesPermissions.read ? ( + + + + ) : ( + ); -}); - -Cases.displayName = 'Cases'; +} diff --git a/x-pack/plugins/observability/public/pages/cases/components/cases.stories.tsx b/x-pack/plugins/observability/public/pages/cases/components/cases.stories.tsx new file mode 100644 index 0000000000000..ab490670f63ee --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/components/cases.stories.tsx @@ -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 + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { ComponentStory } from '@storybook/react'; +import { KibanaReactStorybookDecorator } from '../../../utils/kibana_react.storybook_decorator'; +import { Cases as Component, CasesProps } from './cases'; + +export default { + title: 'app/Cases', + component: Component, + decorators: [KibanaReactStorybookDecorator], +}; + +const Template: ComponentStory = (props: CasesProps) => ; + +const defaultProps: CasesProps = { + permissions: { read: true, all: true, create: true, delete: true, push: true, update: true }, +}; + +export const CasesPageWithAllPermissions = Template.bind({}); +CasesPageWithAllPermissions.args = defaultProps; + +export const CasesPageWithNoPermissions = Template.bind({}); +CasesPageWithNoPermissions.args = { + permissions: { + read: false, + all: false, + create: false, + delete: false, + push: false, + update: false, + }, +}; diff --git a/x-pack/plugins/observability/public/pages/cases/components/cases.tsx b/x-pack/plugins/observability/public/pages/cases/components/cases.tsx new file mode 100644 index 0000000000000..02ad7cb0b6ee9 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/components/cases.tsx @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Suspense, useState } from 'react'; +import { CasesPermissions } from '@kbn/cases-plugin/common'; +import { casesPath, observabilityFeatureId } from '../../../../common'; +import { useKibana } from '../../../utils/kibana_react'; +import { usePluginContext } from '../../../hooks/use_plugin_context'; +import { useFetchAlertDetail } from '../../../hooks/use_fetch_alert_detail'; +import { useFetchAlertData } from '../../../hooks/use_fetch_alert_data'; +import { LazyAlertsFlyout } from '../../..'; +import { paths } from '../../../config/paths'; + +export interface CasesProps { + permissions: CasesPermissions; +} + +export function Cases({ permissions }: CasesProps) { + const { + application: { navigateToUrl }, + cases: { + ui: { getCases: CasesList }, + }, + http: { + basePath: { prepend }, + }, + } = useKibana().services; + + const { observabilityRuleTypeRegistry } = usePluginContext(); + + const [selectedAlertId, setSelectedAlertId] = useState(''); + + const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); + + const handleFlyoutClose = () => setSelectedAlertId(''); + + const handleShowAlertDetails = (alertId: string) => { + setSelectedAlertId(alertId); + }; + + return ( + <> + prepend(paths.observability.ruleDetails(ruleId)), + onClick: (ruleId, ev) => { + const ruleLink = prepend(paths.observability.ruleDetails(ruleId)); + + if (ev != null) { + ev.preventDefault(); + } + + return navigateToUrl(ruleLink); + }, + }} + showAlertDetails={handleShowAlertDetails} + useFetchAlertData={useFetchAlertData} + /> + + {alert && selectedAlertId !== '' && alertLoading === false ? ( + + + + ) : null} + + ); +} diff --git a/x-pack/plugins/observability/public/pages/cases/empty_page.tsx b/x-pack/plugins/observability/public/pages/cases/components/empty_page.tsx similarity index 100% rename from x-pack/plugins/observability/public/pages/cases/empty_page.tsx rename to x-pack/plugins/observability/public/pages/cases/components/empty_page.tsx diff --git a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx b/x-pack/plugins/observability/public/pages/cases/components/feature_no_permissions.tsx similarity index 53% rename from x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx rename to x-pack/plugins/observability/public/pages/cases/components/feature_no_permissions.tsx index 1fb9403fb5ef3..fd297998ea991 100644 --- a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx +++ b/x-pack/plugins/observability/public/pages/cases/components/feature_no_permissions.tsx @@ -6,20 +6,23 @@ */ import React, { useMemo } from 'react'; +import { i18n } from '@kbn/i18n'; import { EmptyPage } from './empty_page'; -import * as i18n from './translations'; -import { useKibana } from '../../utils/kibana_react'; +import { useKibana } from '../../../utils/kibana_react'; export const CaseFeatureNoPermissions = React.memo(() => { - const docLinks = useKibana().services.docLinks; + const { docLinks } = useKibana().services; + const actions = useMemo( () => ({ savedObject: { icon: 'documents', - label: i18n.GO_TO_DOCUMENTATION, - url: `${docLinks.ELASTIC_WEBSITE_URL}guide/en/security/${docLinks.DOC_LINK_VERSION}s`, + label: i18n.translate('xpack.observability.cases.caseView.goToDocumentationButton', { + defaultMessage: 'View documentation', + }), target: '_blank', + url: `${docLinks.ELASTIC_WEBSITE_URL}guide/en/security/${docLinks.DOC_LINK_VERSION}s`, }, }), [docLinks] @@ -28,9 +31,14 @@ export const CaseFeatureNoPermissions = React.memo(() => { return ( ); }); diff --git a/x-pack/plugins/observability/public/pages/cases/index.tsx b/x-pack/plugins/observability/public/pages/cases/index.tsx deleted file mode 100644 index 6713aaef7f12f..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/index.tsx +++ /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 - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; - -import { useKibana } from '@kbn/kibana-react-plugin/public'; -import { Cases } from './cases'; - -import { CaseFeatureNoPermissions } from './feature_no_permissions'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { useHasData } from '../../hooks/use_has_data'; -import { LoadingObservability } from '../../components/loading_observability'; -import { getNoDataConfig } from '../../utils/no_data_config'; -import { ObservabilityAppServices } from '../../application/types'; - -export const CasesPage = React.memo(() => { - const userCasesPermissions = useGetUserCasesPermissions(); - const { docLinks, http } = useKibana().services; - const { ObservabilityPageTemplate } = usePluginContext(); - - const { hasAnyData, isAllRequestsComplete } = useHasData(); - - if (!hasAnyData && !isAllRequestsComplete) { - return ; - } - - // If there is any data, set hasData to true otherwise we need to wait till all the data is loaded before setting hasData to true or false; undefined indicates the data is still loading. - const hasData = hasAnyData === true || (isAllRequestsComplete === false ? undefined : false); - - const noDataConfig = getNoDataConfig({ - hasData, - basePath: http.basePath, - docsLink: docLinks.links.observability.guide, - }); - - return userCasesPermissions.read ? ( - - - - ) : ( - - ); -}); - -CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/plugins/observability/public/pages/cases/translations.ts b/x-pack/plugins/observability/public/pages/cases/translations.ts deleted file mode 100644 index 24c03f65f4521..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/translations.ts +++ /dev/null @@ -1,30 +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 - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsTitle', - { - defaultMessage: 'Kibana feature privileges required', - } -); - -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); - -export const GO_TO_DOCUMENTATION = i18n.translate( - 'xpack.observability.cases.caseView.goToDocumentationButton', - { - defaultMessage: 'View documentation', - } -); diff --git a/x-pack/plugins/observability/public/pages/overview/overview.tsx b/x-pack/plugins/observability/public/pages/overview/overview.tsx index 75d838e0a8c9b..aa447310bf2e8 100644 --- a/x-pack/plugins/observability/public/pages/overview/overview.tsx +++ b/x-pack/plugins/observability/public/pages/overview/overview.tsx @@ -22,7 +22,8 @@ import { HeaderMenu } from './components/header_menu'; import { Resources } from './components/resources'; import { NewsFeed } from './components/news_feed'; import { ObservabilityStatusProgress } from '../../components/app/observability_status/observability_status_progress'; -import { observabilityAlertFeatureIds, paths } from '../../config'; +import { observabilityAlertFeatureIds } from '../../config/alert_feature_ids'; +import { paths } from '../../config/paths'; import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; import { useDatePickerContext } from '../../hooks/use_date_picker_context'; import { useFetcher } from '../../hooks/use_fetcher'; diff --git a/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx b/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx index fdd0beb82fce9..9dd60d8800488 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx @@ -10,7 +10,7 @@ import React, { useState } from 'react'; import { i18n } from '@kbn/i18n'; import { SLOWithSummaryResponse } from '@kbn/slo-schema'; -import { paths } from '../../../config'; +import { paths } from '../../../config/paths'; import { useKibana } from '../../../utils/kibana_react'; import { ObservabilityAppServices } from '../../../application/types'; import { useCapabilities } from '../../../hooks/slo/use_capabilities'; diff --git a/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx b/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx index 028ad44ee7710..55eb42ec95654 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx @@ -15,7 +15,7 @@ import { useFetchSloDetails } from '../../hooks/slo/use_fetch_slo_details'; import { render } from '../../utils/test_helper'; import { SloDetailsPage } from './slo_details'; import { buildSlo } from '../../data/slo/slo'; -import { paths } from '../../config'; +import { paths } from '../../config/paths'; import { useFetchHistoricalSummary } from '../../hooks/slo/use_fetch_historical_summary'; import { useCapabilities } from '../../hooks/slo/use_capabilities'; import { diff --git a/x-pack/plugins/observability/public/pages/slo_details/slo_details.tsx b/x-pack/plugins/observability/public/pages/slo_details/slo_details.tsx index 1604b1fb9cf9f..dc745ec353459 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/slo_details.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/slo_details.tsx @@ -23,7 +23,7 @@ import { SloDetails } from './components/slo_details'; import { HeaderTitle } from './components/header_title'; import { HeaderControl } from './components/header_control'; import { convertSliApmParamsToApmAppDeeplinkUrl } from './helpers/convert_sli_apm_params_to_apm_app_deeplink_url'; -import { paths } from '../../config'; +import { paths } from '../../config/paths'; import type { SloDetailsPathParams } from './types'; import type { ObservabilityAppServices } from '../../application/types'; diff --git a/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx b/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx index ebd8f6a25f1c5..490c7d5c120d8 100644 --- a/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx +++ b/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx @@ -35,7 +35,7 @@ import { transformSloResponseToCreateSloInput, transformValuesToUpdateSLOInput, } from '../helpers/process_slo_form_values'; -import { paths } from '../../../config'; +import { paths } from '../../../config/paths'; import { SLI_OPTIONS, SLO_EDIT_FORM_DEFAULT_VALUES } from '../constants'; import { ApmLatencyIndicatorTypeForm } from './apm_latency/apm_latency_indicator_type_form'; import { ApmAvailabilityIndicatorTypeForm } from './apm_availability/apm_availability_indicator_type_form'; diff --git a/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.test.tsx b/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.test.tsx index 6adbfc4f0589e..c7412495debb2 100644 --- a/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.test.tsx +++ b/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.test.tsx @@ -21,7 +21,7 @@ import { useUpdateSlo } from '../../hooks/slo/use_update_slo'; import { kibanaStartMock } from '../../utils/kibana_react.mock'; import { SLO_EDIT_FORM_DEFAULT_VALUES } from './constants'; import { buildSlo } from '../../data/slo/slo'; -import { paths } from '../../config'; +import { paths } from '../../config/paths'; import { SloEditPage } from './slo_edit'; jest.mock('react-router-dom', () => ({ diff --git a/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.tsx b/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.tsx index 6239b265ed732..238ec6c29a576 100644 --- a/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.tsx +++ b/x-pack/plugins/observability/public/pages/slo_edit/slo_edit.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useParams } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; -import { paths } from '../../config'; +import { paths } from '../../config/paths'; import { useKibana } from '../../utils/kibana_react'; import { usePluginContext } from '../../hooks/use_plugin_context'; import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx index 5261516e13018..1ad2a8892ae28 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx +++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx @@ -11,12 +11,12 @@ import { SLOWithSummaryResponse } from '@kbn/slo-schema'; import { i18n } from '@kbn/i18n'; import { useKibana } from '../../../../utils/kibana_react'; -import { paths } from '../../../../config'; -import { ActiveAlerts } from '../../../../hooks/slo/use_fetch_active_alerts'; -import { SloStatusBadge } from '../../../../components/slo/slo_status_badge'; import { SloIndicatorTypeBadge } from './slo_indicator_type_badge'; +import { SloStatusBadge } from '../../../../components/slo/slo_status_badge'; import { SloTimeWindowBadge } from './slo_time_window_badge'; import { toAlertsPageQueryFilter } from '../../helpers/alerts_page_query_filter'; +import { paths } from '../../../../config/paths'; +import type { ActiveAlerts } from '../../../../hooks/slo/use_fetch_active_alerts'; export interface Props { slo: SLOWithSummaryResponse; diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx index df2b62e0d5848..5f147133bfc3a 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx +++ b/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx @@ -32,7 +32,7 @@ import { transformSloResponseToCreateSloInput, transformValuesToCreateSLOInput, } from '../../slo_edit/helpers/process_slo_form_values'; -import { paths } from '../../../config'; +import { paths } from '../../../config/paths'; export interface SloListItemProps { slo: SLOWithSummaryResponse; diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_list_welcome_prompt.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_list_welcome_prompt.tsx index 8ab49befd627c..3abb93c5639b2 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/slo_list_welcome_prompt.tsx +++ b/x-pack/plugins/observability/public/pages/slos/components/slo_list_welcome_prompt.tsx @@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n'; import { useKibana } from '../../../utils/kibana_react'; import { useLicense } from '../../../hooks/use_license'; import { usePluginContext } from '../../../hooks/use_plugin_context'; -import { paths } from '../../../config'; +import { paths } from '../../../config/paths'; import illustration from './assets/illustration.svg'; export function SloListWelcomePrompt() { diff --git a/x-pack/plugins/observability/public/pages/slos/slos.tsx b/x-pack/plugins/observability/public/pages/slos/slos.tsx index df2e6c125951b..e224158ef9c2a 100644 --- a/x-pack/plugins/observability/public/pages/slos/slos.tsx +++ b/x-pack/plugins/observability/public/pages/slos/slos.tsx @@ -18,7 +18,7 @@ import { useFetchSloList } from '../../hooks/slo/use_fetch_slo_list'; import { SloList } from './components/slo_list'; import { SloListWelcomePrompt } from './components/slo_list_welcome_prompt'; import { AutoRefreshButton } from './components/auto_refresh_button'; -import { paths } from '../../config'; +import { paths } from '../../config/paths'; import type { ObservabilityAppServices } from '../../application/types'; import { HeaderTitle } from './components/header_title'; diff --git a/x-pack/plugins/observability/public/routes/index.tsx b/x-pack/plugins/observability/public/routes/index.tsx index 7ab14f60648d8..f28ea3bd2393b 100644 --- a/x-pack/plugins/observability/public/routes/index.tsx +++ b/x-pack/plugins/observability/public/routes/index.tsx @@ -8,21 +8,19 @@ import * as t from 'io-ts'; import React from 'react'; import { useHistory } from 'react-router-dom'; -import { TrackApplicationView } from '@kbn/usage-collection-plugin/public'; -import { casesPath } from '../../common'; -import { CasesPage } from '../pages/cases'; +import { DatePickerContextProvider } from '../context/date_picker_context'; +import { jsonRt } from './json_rt'; import { AlertsPage } from '../pages/alerts/alerts'; +import { AlertDetails } from '../pages/alert_details/alert_details'; +import { CasesPage } from '../pages/cases/cases'; import { OverviewPage } from '../pages/overview/overview'; -import { jsonRt } from './json_rt'; -import { ObservabilityExploratoryView } from '../components/shared/exploratory_view/obsv_exploratory_view'; import { RulesPage } from '../pages/rules'; import { RuleDetailsPage } from '../pages/rule_details'; -import { AlertingPages } from '../config'; -import { AlertDetails } from '../pages/alert_details/alert_details'; -import { DatePickerContextProvider } from '../context/date_picker_context'; import { SlosPage } from '../pages/slos/slos'; import { SloDetailsPage } from '../pages/slo_details/slo_details'; import { SloEditPage } from '../pages/slo_edit/slo_edit'; +import { ObservabilityExploratoryView } from '../components/shared/exploratory_view/obsv_exploratory_view'; +import { casesPath } from '../../common'; export type RouteParams = DecodeParams; @@ -59,7 +57,7 @@ export const routes = { exact: true, }, '/overview': { - handler: ({ query }: any) => { + handler: () => { return ( @@ -71,22 +69,14 @@ export const routes = { }, [casesPath]: { handler: () => { - return ( - - - - ); + return ; }, params: {}, exact: false, }, '/alerts': { handler: () => { - return ( - - - - ); + return ; }, params: { // Technically gets a '_a' param by using Kibana URL state sync helpers @@ -109,11 +99,7 @@ export const routes = { }, '/alerts/rules': { handler: () => { - return ( - - - - ); + return ; }, params: {}, exact: true, diff --git a/x-pack/plugins/observability/public/utils/kibana_react.storybook_decorator.tsx b/x-pack/plugins/observability/public/utils/kibana_react.storybook_decorator.tsx index 88b7817892317..0aca7a0645b65 100644 --- a/x-pack/plugins/observability/public/utils/kibana_react.storybook_decorator.tsx +++ b/x-pack/plugins/observability/public/utils/kibana_react.storybook_decorator.tsx @@ -5,11 +5,13 @@ * 2.0. */ import React, { ComponentType } from 'react'; +import { of } from 'rxjs'; import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { AppMountParameters } from '@kbn/core-application-browser'; import { KibanaPageTemplate } from '@kbn/shared-ux-page-kibana-template'; -import { sloFeatureId } from '../../common'; +import { CoreTheme } from '@kbn/core-theme-browser'; +import { casesFeatureId, sloFeatureId } from '../../common'; import { PluginContext } from '../context/plugin_context'; import { createObservabilityRuleTypeRegistryMock } from '../rules/observability_rule_type_registry_mock'; import { ConfigSchema } from '../plugin'; @@ -30,6 +32,15 @@ export function KibanaReactStorybookDecorator(Story: ComponentType) { }, }, }; + + const mockTheme: CoreTheme = { + darkMode: false, + }; + + const createTheme$Mock = () => { + return of({ ...mockTheme }); + }; + return ( <>Get All Cases component from Cases app, + helpers: { getUICapabilities: () => ({ read_cases: true }) }, + ui: { + getCases: () => <>Get Cases component from Cases app, }, }, charts: { @@ -70,6 +89,9 @@ export function KibanaReactStorybookDecorator(Story: ComponentType) { storage: { get: () => {}, }, + theme: { + theme$: createTheme$Mock(), + }, uiSettings: { get: (setting: string) => { if (setting === 'dateFormat') { diff --git a/x-pack/plugins/observability/tsconfig.json b/x-pack/plugins/observability/tsconfig.json index 5839d4d715d17..a4f56eea4f135 100644 --- a/x-pack/plugins/observability/tsconfig.json +++ b/x-pack/plugins/observability/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../../tsconfig.base.json", "compilerOptions": { - "outDir": "target/types", + "outDir": "target/types" }, "include": [ "common/**/*", @@ -9,7 +9,7 @@ "public/**/*.json", "server/**/*", "typings/**/*", - "../../../typings/**/*", + "../../../typings/**/*" ], "kbn_references": [ "@kbn/core", @@ -73,9 +73,8 @@ "@kbn/alerts-as-data-utils", "@kbn/core-application-browser", "@kbn/files-plugin", - "@kbn/core-elasticsearch-server", + "@kbn/core-theme-browser", + "@kbn/core-elasticsearch-server" ], - "exclude": [ - "target/**/*", - ] + "exclude": ["target/**/*"] } diff --git a/x-pack/plugins/profiling/e2e/README.md b/x-pack/plugins/profiling/e2e/README.md new file mode 100644 index 0000000000000..d6324be09ea67 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/README.md @@ -0,0 +1,51 @@ +# Profiling E2E tests + +Profiling uses [FTR](../../../../packages/kbn-test/README.md) (functional test runner) and [Cypress](https://www.cypress.io/) to run the e2e tests. The tests are located at `kibana/x-pack/plugins/profiling/e2e/cypress/e2e`. + +## E2E Tests (Cypress) + +The E2E tests are located in [`x-pack/plugins/profiling/e2e`](../e2e). + +Tests run on buildkite PR pipeline are parallelized (4 parallel jobs) and are orchestrated by the Cypress dashboard service. It can be configured in [.buildkite/pipelines/pull_request/profiling_cypress.yml](https://github.com/elastic/kibana/blob/main/.buildkite/pipelines/pull_request/profiling_cypress.yml) with the property `parallelism`. + +```yml + ... + depends_on: build + parallelism: 4 + ... +``` + +## Running it locally + +### Start test server + +``` +node x-pack/plugins/profiling/scripts/test/e2e --server +``` + +### Run tests +Runs all tests in the terminal + +``` +node x-pack/plugins/profiling/scripts/test/e2e --runner +``` + +### Open cypress dashboard +Opens cypress dashboard, there it's possible to select what test you want to run. + +``` +node x-pack/plugins/profiling/scripts/test/e2e --open +``` +### Arguments + +| Option | Description | +| ------------ | ----------------------------------------------- | +| --server | Only start ES and Kibana | +| --runner | Only run tests | +| --spec | Specify the specs to run | +| --times | Repeat the test n number of times | +| --bail | stop tests after the first failure | + +``` +node x-pack/plugins/profiling/scripts/test/e2e.js --runner --spec cypress/e2e/profiling.cy.ts --times 2 +``` \ No newline at end of file diff --git a/x-pack/plugins/profiling/e2e/cypress.config.ts b/x-pack/plugins/profiling/e2e/cypress.config.ts new file mode 100644 index 0000000000000..93a2a543528c3 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/cypress.config.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { defineCypressConfig } from '@kbn/cypress-config'; + +export default defineCypressConfig({ + fileServerFolder: './cypress', + fixturesFolder: './cypress/fixtures', + screenshotsFolder: './cypress/screenshots', + videosFolder: './cypress/videos', + requestTimeout: 10000, + responseTimeout: 40000, + defaultCommandTimeout: 30000, + execTimeout: 120000, + pageLoadTimeout: 120000, + viewportHeight: 1800, + viewportWidth: 1440, + video: false, + videoUploadOnPasses: false, + screenshotOnRunFailure: false, + retries: { + runMode: 1, + }, + e2e: { + baseUrl: 'http://localhost:5601', + supportFile: './cypress/support/e2e.ts', + specPattern: './cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', + }, +}); diff --git a/x-pack/plugins/profiling/e2e/cypress/e2e/profiling.cy.ts b/x-pack/plugins/profiling/e2e/cypress/e2e/profiling.cy.ts new file mode 100644 index 0000000000000..69be02ea1a163 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/cypress/e2e/profiling.cy.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +const start = '2021-10-10T00:00:00.000Z'; +const end = '2021-10-10T00:15:00.000Z'; + +describe('Profiling', () => { + before(() => { + cy.loginAsElastic(); + }); + it('Shows profiling empty prompt', () => { + cy.visitKibana('/app/profiling'); + cy.contains('Universal Profiling (now in Beta)'); + }); +}); diff --git a/x-pack/plugins/profiling/e2e/cypress/support/commands.ts b/x-pack/plugins/profiling/e2e/cypress/support/commands.ts new file mode 100644 index 0000000000000..8252de57d8779 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/cypress/support/commands.ts @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +Cypress.Commands.add( + 'loginAs', + ({ username, password }: { username: string; password: string }) => { + const kibanaUrl = Cypress.env('KIBANA_URL'); + cy.log(`Logging in as ${username} on ${kibanaUrl}`); + cy.visit('/'); + cy.request({ + log: true, + method: 'POST', + url: `${kibanaUrl}/internal/security/login`, + body: { + providerType: 'basic', + providerName: 'basic', + currentURL: `${kibanaUrl}/login`, + params: { username, password }, + }, + headers: { + 'kbn-xsrf': 'e2e_test', + }, + }); + cy.visit('/'); + } +); + +Cypress.Commands.add('loginAsElastic', () => { + return cy.loginAs({ + username: 'elastic', + password: 'changeme', + }); +}); + +Cypress.Commands.add('getByTestSubj', (selector: string) => { + return cy.get(`[data-test-subj="${selector}"]`); +}); + +Cypress.Commands.add('visitKibana', (url: string) => { + cy.visit(url); + cy.getByTestSubj('kbnLoadingMessage').should('exist'); + cy.getByTestSubj('kbnLoadingMessage').should('not.exist', { + timeout: 50000, + }); +}); diff --git a/x-pack/plugins/observability/public/pages/cases/constants.ts b/x-pack/plugins/profiling/e2e/cypress/support/e2e.ts similarity index 61% rename from x-pack/plugins/observability/public/pages/cases/constants.ts rename to x-pack/plugins/profiling/e2e/cypress/support/e2e.ts index ce1e601690e62..93daa0bc7ed2a 100644 --- a/x-pack/plugins/observability/public/pages/cases/constants.ts +++ b/x-pack/plugins/profiling/e2e/cypress/support/e2e.ts @@ -5,7 +5,9 @@ * 2.0. */ -import { observabilityFeatureId, casesPath } from '../../../common'; +Cypress.on('uncaught:exception', (err, runnable) => { + return false; +}); -export const CASES_OWNER = observabilityFeatureId; -export const CASES_PATH = casesPath; +import './commands'; +// import './output_command_timings'; diff --git a/x-pack/plugins/profiling/e2e/cypress/support/types.d.ts b/x-pack/plugins/profiling/e2e/cypress/support/types.d.ts new file mode 100644 index 0000000000000..9f71c34f4422d --- /dev/null +++ b/x-pack/plugins/profiling/e2e/cypress/support/types.d.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +declare namespace Cypress { + interface Chainable { + loginAs(params: { + username: string; + password: string; + }): Cypress.Chainable>; + loginAsElastic(): Cypress.Chainable>; + getByTestSubj(selector: string): Chainable>; + visitKibana(url: string): void; + } +} diff --git a/x-pack/plugins/profiling/e2e/cypress/videos/profiling.cy.ts.mp4 b/x-pack/plugins/profiling/e2e/cypress/videos/profiling.cy.ts.mp4 new file mode 100644 index 0000000000000..aa1d61eca29f4 Binary files /dev/null and b/x-pack/plugins/profiling/e2e/cypress/videos/profiling.cy.ts.mp4 differ diff --git a/x-pack/plugins/profiling/e2e/cypress_test_runner.ts b/x-pack/plugins/profiling/e2e/cypress_test_runner.ts new file mode 100644 index 0000000000000..567b36cd9a3a2 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/cypress_test_runner.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 + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import cypress from 'cypress'; +import path from 'path'; +import Url from 'url'; +import { FtrProviderContext } from './ftr_provider_context'; + +export async function cypressTestRunner({ + ftrProviderContext: { getService }, + cypressExecution, +}: { + ftrProviderContext: FtrProviderContext; + cypressExecution: typeof cypress.run | typeof cypress.open; +}) { + const config = getService('config'); + + const username = config.get('servers.elasticsearch.username'); + const password = config.get('servers.elasticsearch.password'); + + const esNode = Url.format({ + protocol: config.get('servers.elasticsearch.protocol'), + port: config.get('servers.elasticsearch.port'), + hostname: config.get('servers.elasticsearch.hostname'), + auth: `${username}:${password}`, + }); + + const esRequestTimeout = config.get('timeouts.esRequestTimeout'); + + const kibanaUrlWithoutAuth = Url.format({ + protocol: config.get('servers.kibana.protocol'), + hostname: config.get('servers.kibana.hostname'), + port: config.get('servers.kibana.port'), + }); + + const cypressProjectPath = path.join(__dirname); + const { open, ...cypressCliArgs } = getCypressCliArgs(); + // const cypressExecution = cypress.open; // open ? cypress.open : cypress.run; + const res = await cypressExecution({ + ...cypressCliArgs, + project: cypressProjectPath, + config: { + e2e: { + baseUrl: kibanaUrlWithoutAuth, + }, + }, + env: { + KIBANA_URL: kibanaUrlWithoutAuth, + ES_NODE: esNode, + ES_REQUEST_TIMEOUT: esRequestTimeout, + TEST_CLOUD: process.env.TEST_CLOUD, + }, + }); + + return res; +} + +function getCypressCliArgs(): Record { + if (!process.env.CYPRESS_CLI_ARGS) { + return {}; + } + + const { $0, _, ...cypressCliArgs } = JSON.parse(process.env.CYPRESS_CLI_ARGS) as Record< + string, + unknown + >; + + const spec = + typeof cypressCliArgs.spec === 'string' && !cypressCliArgs.spec.includes('**') + ? `**/${cypressCliArgs.spec}*` + : cypressCliArgs.spec; + + return { ...cypressCliArgs, spec }; +} diff --git a/x-pack/plugins/profiling/e2e/ftr_config.ts b/x-pack/plugins/profiling/e2e/ftr_config.ts new file mode 100644 index 0000000000000..ce78dda81621f --- /dev/null +++ b/x-pack/plugins/profiling/e2e/ftr_config.ts @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; +import { CA_CERT_PATH } from '@kbn/dev-utils'; + +async function ftrConfig({ readConfigFile }: FtrConfigProviderContext) { + const kibanaCommonTestsConfig = await readConfigFile( + require.resolve('../../../../test/common/config.js') + ); + const xpackFunctionalTestsConfig = await readConfigFile( + require.resolve('../../../test/functional/config.base.js') + ); + + return { + ...kibanaCommonTestsConfig.getAll(), + + esTestCluster: { + ...xpackFunctionalTestsConfig.get('esTestCluster'), + serverArgs: [ + ...xpackFunctionalTestsConfig.get('esTestCluster.serverArgs'), + // define custom es server here + // API Keys is enabled at the top level + 'xpack.security.enabled=true', + ], + }, + + kbnTestServer: { + ...xpackFunctionalTestsConfig.get('kbnTestServer'), + serverArgs: [ + ...xpackFunctionalTestsConfig.get('kbnTestServer.serverArgs'), + '--home.disableWelcomeScreen=true', + '--csp.strict=false', + '--csp.warnLegacyBrowsers=false', + // define custom kibana server args here + `--elasticsearch.ssl.certificateAuthorities=${CA_CERT_PATH}`, + '--xpack.profiling.enabled=true', + ], + }, + }; +} + +// eslint-disable-next-line import/no-default-export +export default ftrConfig; diff --git a/x-pack/plugins/profiling/e2e/ftr_config_open.ts b/x-pack/plugins/profiling/e2e/ftr_config_open.ts new file mode 100644 index 0000000000000..6e8a7282cf664 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/ftr_config_open.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; +import cypress from 'cypress'; +import { FtrProviderContext } from './ftr_provider_context'; +import { cypressTestRunner } from './cypress_test_runner'; + +async function ftrConfigOpen({ readConfigFile }: FtrConfigProviderContext) { + const kibanaConfig = await readConfigFile(require.resolve('./ftr_config.ts')); + return { + ...kibanaConfig.getAll(), + testRunner, + }; +} + +export async function testRunner(ftrProviderContext: FtrProviderContext) { + await cypressTestRunner({ ftrProviderContext, cypressExecution: cypress.open }); +} + +// eslint-disable-next-line import/no-default-export +export default ftrConfigOpen; diff --git a/x-pack/plugins/profiling/e2e/ftr_config_runner.ts b/x-pack/plugins/profiling/e2e/ftr_config_runner.ts new file mode 100644 index 0000000000000..2b0bf611ceda5 --- /dev/null +++ b/x-pack/plugins/profiling/e2e/ftr_config_runner.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; +import cypress from 'cypress'; +import { cypressTestRunner } from './cypress_test_runner'; +import { FtrProviderContext } from './ftr_provider_context'; + +async function ftrConfigRun({ readConfigFile }: FtrConfigProviderContext) { + const kibanaConfig = await readConfigFile(require.resolve('./ftr_config.ts')); + + return { + ...kibanaConfig.getAll(), + testRunner, + }; +} + +async function testRunner(ftrProviderContext: FtrProviderContext) { + const result = await cypressTestRunner({ ftrProviderContext, cypressExecution: cypress.run }); + + if (result && (result.status === 'failed' || result.totalFailed > 0)) { + process.exit(1); + } +} + +// eslint-disable-next-line import/no-default-export +export default ftrConfigRun; diff --git a/x-pack/plugins/observability/public/config/index.ts b/x-pack/plugins/profiling/e2e/ftr_provider_context.d.ts similarity index 51% rename from x-pack/plugins/observability/public/config/index.ts rename to x-pack/plugins/profiling/e2e/ftr_provider_context.d.ts index f9f975c4c8245..b87f35adcccf2 100644 --- a/x-pack/plugins/observability/public/config/index.ts +++ b/x-pack/plugins/profiling/e2e/ftr_provider_context.d.ts @@ -5,12 +5,6 @@ * 2.0. */ -export { paths } from './paths'; -export { translations } from './translations'; -export { observabilityAlertFeatureIds } from './alert_feature_ids'; +import { GenericFtrProviderContext } from '@kbn/test'; -export enum AlertingPages { - alerts = 'alerts', - cases = 'cases', - rules = 'rules', -} +export type FtrProviderContext = GenericFtrProviderContext<{}, {}>; diff --git a/x-pack/plugins/profiling/e2e/tsconfig.json b/x-pack/plugins/profiling/e2e/tsconfig.json new file mode 100644 index 0000000000000..c4de3fff85cfd --- /dev/null +++ b/x-pack/plugins/profiling/e2e/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../../../tsconfig.base.json", + "include": [ + "**/*" + ], + "exclude": [ + "tmp", + "target/**/*" + ], + "compilerOptions": { + "outDir": "target/types", + "types": [ + "cypress", + "node", + "cypress-real-events" + ], + "isolatedModules": false + }, + "kbn_references": [ + { "path": "../../../test/tsconfig.json" }, + { "path": "../../../../test/tsconfig.json" }, + "@kbn/test", + "@kbn/dev-utils", + "@kbn/cypress-config", + ] +} diff --git a/x-pack/plugins/profiling/scripts/test/e2e.js b/x-pack/plugins/profiling/scripts/test/e2e.js new file mode 100644 index 0000000000000..d5cd56175d223 --- /dev/null +++ b/x-pack/plugins/profiling/scripts/test/e2e.js @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* eslint-disable no-console */ +const { times } = require('lodash'); +const path = require('path'); +const yargs = require('yargs'); +const childProcess = require('child_process'); + +const { argv } = yargs(process.argv.slice(2)) + .parserConfiguration({ 'unknown-options-as-args': true }) + .option('kibana-install-dir', { + default: '', + type: 'string', + description: 'Path to the Kibana install directory', + }) + .option('server', { + default: false, + type: 'boolean', + description: 'Start Elasticsearch and Kibana', + }) + .option('runner', { + default: false, + type: 'boolean', + description: + 'Run all tests (an instance of Elasticsearch and kibana are needs to be available)', + }) + .option('open', { + default: false, + type: 'boolean', + description: + 'Open cypress dashboard (an instance of Elasticsearch and kibana are needs to be available)', + }) + .option('times', { + type: 'number', + description: 'Repeat the test n number of times', + }) + .option('bail', { + default: false, + type: 'boolean', + description: 'stop tests after the first failure', + }) + .help(); + +const e2eDir = path.join(__dirname, '../../e2e'); + +let ftrScript = 'functional_tests.js'; +if (argv.server) { + ftrScript = 'functional_tests_server.js'; +} else if (argv.runner || argv.open) { + ftrScript = 'functional_test_runner.js'; +} + +const cypressCliArgs = yargs(argv._).parserConfiguration({ + 'boolean-negation': false, +}).argv; + +if (cypressCliArgs.grep) { + throw new Error('--grep is not supported. Please use --spec instead'); +} + +const ftrConfig = argv.open ? './ftr_config_open.ts' : './ftr_config_runner.ts'; +const spawnArgs = [ + `../../../../scripts/${ftrScript}`, + `--config=${ftrConfig}`, + `--kibana-install-dir=${argv.kibanaInstallDir}`, + ...(argv.bail ? [`--bail`] : []), +]; + +function runTests() { + console.log(`Running e2e tests: "node ${spawnArgs.join(' ')}"`); + + return childProcess.spawnSync('node', spawnArgs, { + cwd: e2eDir, + env: { ...process.env, CYPRESS_CLI_ARGS: JSON.stringify(cypressCliArgs) }, + encoding: 'utf8', + stdio: 'inherit', + }); +} + +const runCounter = { succeeded: 0, failed: 0, remaining: argv.times }; +let exitStatus = 0; +times(argv.times ?? 1, () => { + const child = runTests(); + if (child.status === 0) { + runCounter.succeeded++; + } else { + exitStatus = child.status; + runCounter.failed++; + } + + runCounter.remaining--; + + if (argv.times > 1) { + console.log(runCounter); + } +}); + +process.exitCode = exitStatus; +console.log(`Quitting with exit code ${exitStatus}`); diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts b/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts index ff5f973df53e2..5a61660bd8234 100644 --- a/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts +++ b/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts @@ -15,6 +15,7 @@ const baseAllowlistFields: AllowlistFields = { executable: true, code_signature: true, command_line: true, + env_vars: true, hash: true, pid: true, pe: true, diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts index 958355aaf477a..a52b7c6e9d143 100644 --- a/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts +++ b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts @@ -178,6 +178,7 @@ describe('TelemetryEventsSender', () => { executable: null, // null fields are never allowlisted working_directory: '/some/usr/dir', entity_id: 'some_entity_id', + env_vars: [{ name: 'foo', value: 'bar' }], Ext: { protection: 'PsProtectedSignerAntimalware-Light', relative_file_creation_time: 48628704.4029488, @@ -355,6 +356,7 @@ describe('TelemetryEventsSender', () => { name: 'foo.exe', working_directory: '/some/usr/dir', entity_id: 'some_entity_id', + env_vars: [{ name: 'foo', value: 'bar' }], Ext: { protection: 'PsProtectedSignerAntimalware-Light', relative_file_creation_time: 48628704.4029488, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 20fc7bd776ea8..00e8a9054e9cc 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10036,7 +10036,6 @@ "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "Gérer les règles", "xpack.csp.dashboard.cspPageTemplate.pageTitle": "Niveau du cloud", "xpack.csp.dashboard.risksTable.cisSectionColumnLabel": "Section CIS", - "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "Afficher tous les échecs des résultats pour ce cluster", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "Conformité", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "Afficher tous les échecs des résultats", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "Conformité par section CIS", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 9e5e7bf984ed3..a992f9035ba45 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10025,7 +10025,6 @@ "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "ルールの管理", "xpack.csp.dashboard.cspPageTemplate.pageTitle": "クラウド態勢", "xpack.csp.dashboard.risksTable.cisSectionColumnLabel": "CISセクション", - "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "このクラスターの失敗した調査結果をすべて表示", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "コンプライアンス", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "すべてのフィールド調査結果を表示", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "CISセクション別のコンプライアンス", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e12dddbfe5468..cd2fd87cef7f5 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10040,7 +10040,6 @@ "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "管理规则", "xpack.csp.dashboard.cspPageTemplate.pageTitle": "云态势", "xpack.csp.dashboard.risksTable.cisSectionColumnLabel": "CIS 部分", - "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "查看此集群的所有失败结果", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "合规性", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "查看所有失败的结果", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "合规性(按 CIS 部分)", diff --git a/x-pack/test/functional/apps/infra/hosts_view.ts b/x-pack/test/functional/apps/infra/hosts_view.ts index 1f1773505ffef..e1293f56da3e5 100644 --- a/x-pack/test/functional/apps/infra/hosts_view.ts +++ b/x-pack/test/functional/apps/infra/hosts_view.ts @@ -231,7 +231,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { expect(alertsCount).to.be('6'); }); - describe('#FilterButtonGroup', () => { + // FLAKY: https://github.com/elastic/kibana/issues/153236 + describe.skip('#FilterButtonGroup', () => { it('can be filtered to only show "active" alerts using the filter button', async () => { await pageObjects.infraHostsView.setAlertStatusFilter(ALERT_STATUS_ACTIVE); await retry.try(async () => {