kibana/x-pack/test/functional/config.base.js
Kibana Machine ed40c16ce9
[8.6] [ML] Adds anomaly alerts screenshot test suite (#146552) (#146861)
# Backport

This will backport the following commits from `main` to `8.6`:
- [[ML] Adds anomaly alerts screenshot test suite
(#146552)](https://github.com/elastic/kibana/pull/146552)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"István Zoltán
Szabó","email":"szabosteve@gmail.com"},"sourceCommit":{"committedDate":"2022-12-02T10:01:51Z","message":"[ML]
Adds anomaly alerts screenshot test suite (#146552)\n\n##
Summary\r\n\r\nThis PR adds a new test suite to the screenshot creation
script that\r\ncovers the screenshots on [Generating alerts for anomaly
detection\r\njobs](https://www.elastic.co/guide/en/machine-learning/master/ml-configuring-alerts.html).","sha":"475e47ed993fba0ecd69caa211150f298e1eefe4","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":[":ml","release_note:skip","v8.6.0","v8.7.0","v8.5.3"],"number":146552,"url":"https://github.com/elastic/kibana/pull/146552","mergeCommit":{"message":"[ML]
Adds anomaly alerts screenshot test suite (#146552)\n\n##
Summary\r\n\r\nThis PR adds a new test suite to the screenshot creation
script that\r\ncovers the screenshots on [Generating alerts for anomaly
detection\r\njobs](https://www.elastic.co/guide/en/machine-learning/master/ml-configuring-alerts.html).","sha":"475e47ed993fba0ecd69caa211150f298e1eefe4"}},"sourceBranch":"main","suggestedTargetBranches":["8.6","8.5"],"targetPullRequestStates":[{"branch":"8.6","label":"v8.6.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146552","number":146552,"mergeCommit":{"message":"[ML]
Adds anomaly alerts screenshot test suite (#146552)\n\n##
Summary\r\n\r\nThis PR adds a new test suite to the screenshot creation
script that\r\ncovers the screenshots on [Generating alerts for anomaly
detection\r\njobs](https://www.elastic.co/guide/en/machine-learning/master/ml-configuring-alerts.html).","sha":"475e47ed993fba0ecd69caa211150f298e1eefe4"}},{"branch":"8.5","label":"v8.5.3","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
2022-12-02 04:10:06 -07:00

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:production';
// 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,
'--uiSettings.overrides.observability:enableNewSyntheticsView=true', // for OSS test management/_import_objects,
],
},
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-*'],
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'],
},
};
}