mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 18:51:07 -04:00
## Summary https://github.com/elastic/kibana/pull/151788 established that data views would no longer error when they failed to retrieve a field list. This index pattern validation code exists since previously ALL index pattern segments needed to match in order to avoid an error response from field caps, rather than just one. Now we can remove the validation code and simply pass the index pattern to field caps directly. ### Checklist Delete any items that are not applicable to this PR. - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: shahzad31 <shahzad31comp@gmail.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
648 lines
16 KiB
JavaScript
648 lines
16 KiB
JavaScript
/*
|
|
* 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 { resolve } from 'path';
|
|
|
|
import { services } from './services';
|
|
import { pageObjects } from './page_objects';
|
|
|
|
// Docker image to use for Fleet API integration tests.
|
|
// This hash comes from the latest successful build of the Production Distribution of the Package Registry, for
|
|
// example: https://internal-ci.elastic.co/blue/organizations/jenkins/package_storage%2Findexing-job/detail/main/1884/pipeline/147.
|
|
// It should be updated any time there is a new package published.
|
|
export const dockerImage = 'docker.elastic.co/package-registry/distribution:lite';
|
|
|
|
// the default export of config files must be a config provider
|
|
// that returns an object with the projects config values
|
|
export default async function ({ readConfigFile }) {
|
|
const kibanaCommonConfig = await readConfigFile(
|
|
require.resolve('../../../test/common/config.js')
|
|
);
|
|
const kibanaFunctionalConfig = await readConfigFile(
|
|
require.resolve('../../../test/functional/config.base.js')
|
|
);
|
|
|
|
return {
|
|
services,
|
|
pageObjects,
|
|
|
|
servers: kibanaFunctionalConfig.get('servers'),
|
|
|
|
esTestCluster: {
|
|
license: 'trial',
|
|
from: 'snapshot',
|
|
serverArgs: [
|
|
'path.repo=/tmp/',
|
|
'xpack.security.authc.api_key.enabled=true',
|
|
'cluster.routing.allocation.disk.threshold_enabled=true', // make sure disk thresholds are enabled for UA cluster testing
|
|
],
|
|
},
|
|
|
|
kbnTestServer: {
|
|
...kibanaCommonConfig.get('kbnTestServer'),
|
|
serverArgs: [
|
|
...kibanaCommonConfig.get('kbnTestServer.serverArgs'),
|
|
'--status.allowAnonymous=true',
|
|
'--server.uuid=5b2de169-2785-441b-ae8c-186a1936b17d',
|
|
'--xpack.maps.showMapsInspectorAdapter=true',
|
|
'--xpack.maps.preserveDrawingBuffer=true',
|
|
'--xpack.security.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"', // server restarts should not invalidate active sessions
|
|
'--xpack.encryptedSavedObjects.encryptionKey="DkdXazszSCYexXqz4YktBGHCRkV6hyNK"',
|
|
'--xpack.discoverEnhanced.actions.exploreDataInContextMenu.enabled=true',
|
|
'--savedObjects.maxImportPayloadBytes=10485760', // for OSS test management/_import_objects,
|
|
'--savedObjects.allowHttpApiAccess=false', // override default to not allow hiddenFromHttpApis saved objects access to the http APIs see https://github.com/elastic/dev/issues/2200
|
|
],
|
|
},
|
|
uiSettings: {
|
|
defaults: {
|
|
'accessibility:disableAnimations': true,
|
|
'dateFormat:tz': 'UTC',
|
|
},
|
|
},
|
|
// the apps section defines the urls that
|
|
// `PageObjects.common.navigateTo(appKey)` will use.
|
|
// Merge urls for your plugin with the urls defined in
|
|
// Kibana's config in order to use this helper
|
|
apps: {
|
|
...kibanaFunctionalConfig.get('apps'),
|
|
lens: {
|
|
pathname: '/app/lens',
|
|
},
|
|
login: {
|
|
pathname: '/login',
|
|
},
|
|
monitoring: {
|
|
pathname: '/app/monitoring',
|
|
},
|
|
logstashPipelines: {
|
|
pathname: '/app/management/ingest/pipelines',
|
|
},
|
|
cases: {
|
|
pathname: '/app/management/insightsAndAlerting/cases/',
|
|
},
|
|
maps: {
|
|
pathname: '/app/maps',
|
|
},
|
|
graph: {
|
|
pathname: '/app/graph',
|
|
},
|
|
grokDebugger: {
|
|
pathname: '/app/dev_tools',
|
|
hash: '/grokdebugger',
|
|
},
|
|
searchProfiler: {
|
|
pathname: '/app/dev_tools',
|
|
hash: '/searchprofiler',
|
|
},
|
|
painlessLab: {
|
|
pathname: '/app/dev_tools',
|
|
hash: '/painless_lab',
|
|
},
|
|
spaceSelector: {
|
|
pathname: '/',
|
|
},
|
|
infraOps: {
|
|
pathname: '/app/metrics',
|
|
},
|
|
infraLogs: {
|
|
pathname: '/app/logs',
|
|
},
|
|
canvas: {
|
|
pathname: '/app/canvas',
|
|
hash: '/',
|
|
},
|
|
uptime: {
|
|
pathname: '/app/uptime',
|
|
},
|
|
fleet: {
|
|
pathname: '/app/fleet',
|
|
},
|
|
ml: {
|
|
pathname: '/app/ml',
|
|
},
|
|
roleMappings: {
|
|
pathname: '/app/management/security/role_mappings',
|
|
},
|
|
rollupJob: {
|
|
pathname: '/app/management/data/rollup_jobs',
|
|
},
|
|
apiKeys: {
|
|
pathname: '/app/management/security/api_keys',
|
|
},
|
|
licenseManagement: {
|
|
pathname: '/app/management/stack/license_management',
|
|
},
|
|
indexManagement: {
|
|
pathname: '/app/management/data/index_management',
|
|
},
|
|
indexLifecycleManagement: {
|
|
pathname: '/app/management/data/index_lifecycle_management',
|
|
},
|
|
ingestPipelines: {
|
|
pathname: '/app/management/ingest/ingest_pipelines',
|
|
},
|
|
snapshotRestore: {
|
|
pathname: '/app/management/data/snapshot_restore',
|
|
},
|
|
remoteClusters: {
|
|
pathname: '/app/management/data/remote_clusters',
|
|
},
|
|
crossClusterReplication: {
|
|
pathname: '/app/management/data/cross_cluster_replication',
|
|
},
|
|
apm: {
|
|
pathname: '/app/apm',
|
|
},
|
|
watcher: {
|
|
pathname: '/app/management/insightsAndAlerting/watcher/watches',
|
|
},
|
|
transform: {
|
|
pathname: '/app/management/data/transform',
|
|
},
|
|
reporting: {
|
|
pathname: '/app/management/insightsAndAlerting/reporting',
|
|
},
|
|
securitySolution: {
|
|
pathname: '/app/security',
|
|
},
|
|
observability: {
|
|
pathname: '/app/observability',
|
|
},
|
|
connectors: {
|
|
pathname: '/app/management/insightsAndAlerting/triggersActionsConnectors/',
|
|
},
|
|
triggersActions: {
|
|
pathname: '/app/management/insightsAndAlerting/triggersActions',
|
|
},
|
|
},
|
|
|
|
// choose where screenshots should be saved
|
|
screenshots: {
|
|
directory: resolve(__dirname, 'screenshots'),
|
|
},
|
|
|
|
junit: {
|
|
reportName: 'Chrome X-Pack UI Functional Tests',
|
|
},
|
|
security: {
|
|
roles: {
|
|
test_monitoring: {
|
|
elasticsearch: {
|
|
cluster: ['monitor'],
|
|
},
|
|
},
|
|
test_logstash_reader: {
|
|
elasticsearch: {
|
|
cluster: [],
|
|
indices: [
|
|
{
|
|
names: ['logstash*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
field_security: { grant: ['*'], except: [] },
|
|
},
|
|
],
|
|
run_as: [],
|
|
},
|
|
kibana: [],
|
|
},
|
|
|
|
global_canvas_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
canvas: ['all'],
|
|
visualize: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_discover_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
discover: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_dashboard_read: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
dashboard: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_discover_read: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
discover: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
global_visualize_read: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
visualize: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
global_visualize_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
visualize: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
global_dashboard_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
dashboard: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
global_maps_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
maps: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_maps_read: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
maps: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
geoshape_data_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['geo_shapes*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
antimeridian_points_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['antimeridian_points*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
antimeridian_shapes_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['antimeridian_shapes*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
meta_for_geoshape_data_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['meta_for_geo_shapes*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
geoconnections_data_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['connections*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
test_logs_data_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['test_data_stream'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
geoall_data_writer: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['*'],
|
|
privileges: ['create', 'read', 'view_index_metadata', 'monitor', 'create_index'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
global_index_pattern_management_all: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
indexPatterns: ['all'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_devtools_read: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['*'],
|
|
privileges: ['read', 'all'],
|
|
},
|
|
],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
dev_tools: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
global_upgrade_assistant_role: {
|
|
elasticsearch: {
|
|
cluster: ['manage'],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
discover: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
// using this role even for remote clusters
|
|
global_ccr_role: {
|
|
elasticsearch: {
|
|
cluster: ['manage', 'manage_ccr'],
|
|
},
|
|
kibana: [
|
|
{
|
|
base: ['all'],
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
manage_rollups_role: {
|
|
elasticsearch: {
|
|
cluster: ['manage', 'manage_rollup'],
|
|
indices: [
|
|
{
|
|
names: ['*'],
|
|
privileges: ['read', 'delete', 'create_index', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
discover: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
test_rollup_reader: {
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['rollup-*', 'regular-index*'],
|
|
privileges: ['read', 'view_index_metadata'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
// Kibana feature privilege isn't specific to advancedSetting. It can be anything. https://github.com/elastic/kibana/issues/35965
|
|
test_api_keys: {
|
|
elasticsearch: {
|
|
cluster: ['manage_security', 'manage_api_key'],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['default'],
|
|
},
|
|
],
|
|
},
|
|
|
|
manage_security: {
|
|
elasticsearch: {
|
|
cluster: ['manage_security'],
|
|
},
|
|
},
|
|
|
|
cluster_security_manager: {
|
|
elasticsearch: {
|
|
cluster: ['manage_security'],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
ccr_user: {
|
|
elasticsearch: {
|
|
cluster: ['manage', 'manage_ccr'],
|
|
},
|
|
},
|
|
// There is an issue open for follower_index_user permissions not working correctly
|
|
// in kibana.
|
|
// https://github.com/elastic/kibana/issues/143720
|
|
// follower_index_user: {
|
|
// elasticsearch: {
|
|
// cluster: ['monitor', 'manage', 'manage_ccr', 'transport_client', 'read_ccr', 'all'],
|
|
// indices: [
|
|
// {
|
|
// names: ['*'],
|
|
// privileges: [
|
|
// 'write',
|
|
// 'monitor',
|
|
// 'manage_follow_index',
|
|
// 'manage_leader_index',
|
|
// 'read',
|
|
// 'view_index_metadata',
|
|
// ],
|
|
// },
|
|
// ],
|
|
// },
|
|
// kibana: [
|
|
// {
|
|
// base: ['all'],
|
|
// spaces: ['*'],
|
|
// },
|
|
// ],
|
|
// },
|
|
|
|
manage_ilm: {
|
|
elasticsearch: {
|
|
cluster: ['manage_ilm'],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['default'],
|
|
},
|
|
],
|
|
},
|
|
|
|
index_management_user: {
|
|
elasticsearch: {
|
|
cluster: ['monitor', 'manage_index_templates'],
|
|
indices: [
|
|
{
|
|
names: ['*'],
|
|
privileges: ['all'],
|
|
},
|
|
],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
// https://www.elastic.co/guide/en/elasticsearch/reference/master/snapshots-register-repository.html#snapshot-repo-prereqs
|
|
snapshot_restore_user: {
|
|
elasticsearch: {
|
|
cluster: [
|
|
'monitor',
|
|
'manage_slm',
|
|
'cluster:admin/snapshot',
|
|
'cluster:admin/repository',
|
|
],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
ingest_pipelines_user: {
|
|
elasticsearch: {
|
|
cluster: ['manage_pipeline', 'cluster:monitor/nodes/info'],
|
|
},
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
advancedSettings: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
},
|
|
|
|
license_management_user: {
|
|
elasticsearch: {
|
|
cluster: ['manage'],
|
|
},
|
|
},
|
|
|
|
logstash_read_user: {
|
|
elasticsearch: {
|
|
cluster: ['manage_logstash_pipelines'],
|
|
},
|
|
},
|
|
|
|
remote_clusters_user: {
|
|
elasticsearch: {
|
|
cluster: ['manage'],
|
|
},
|
|
},
|
|
|
|
global_alerts_logs_all_else_read: {
|
|
kibana: [
|
|
{
|
|
feature: {
|
|
apm: ['read'],
|
|
logs: ['all'],
|
|
infrastructure: ['read'],
|
|
},
|
|
spaces: ['*'],
|
|
},
|
|
],
|
|
elasticsearch: {
|
|
indices: [
|
|
{
|
|
names: ['*'],
|
|
privileges: ['all'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
defaultRoles: ['superuser'],
|
|
},
|
|
};
|
|
}
|