Merge branch 'master' of github.com:elastic/kibana into merge-upstream-master

This commit is contained in:
John Schulz 2019-10-28 16:13:10 -04:00
commit f3e36f5d49
2460 changed files with 54471 additions and 81461 deletions

113
.ci/Jenkinsfile_flaky Normal file
View file

@ -0,0 +1,113 @@
#!/bin/groovy
library 'kibana-pipeline-library'
kibanaLibrary.load()
// Looks like 'oss:ciGroup:1' or 'oss:firefoxSmoke'
def JOB_PARTS = params.CI_GROUP.split(':')
def IS_XPACK = JOB_PARTS[0] == 'xpack'
def JOB = JOB_PARTS[1]
def CI_GROUP = JOB_PARTS.size() > 2 ? JOB_PARTS[2] : ''
def worker = getWorkerFromParams(IS_XPACK, JOB, CI_GROUP)
def workerFailures = []
currentBuild.displayName += trunc(" ${params.GITHUB_OWNER}:${params.branch_specifier}", 24)
currentBuild.description = "${params.CI_GROUP}<br />Executions: ${params.NUMBER_EXECUTIONS}"
// Note: If you increase agent count, it will execute NUMBER_EXECUTIONS per agent. It will not divide them up amongst the agents
// e.g. NUMBER_EXECUTIONS = 25, agentCount = 4 results in 100 total executions
def agentCount = 1
stage("Kibana Pipeline") {
timeout(time: 180, unit: 'MINUTES') {
timestamps {
ansiColor('xterm') {
def agents = [:]
for(def agentNumber = 1; agentNumber <= agentCount; agentNumber++) {
agents["agent-${agentNumber}"] = {
catchError {
kibanaPipeline.withWorkers('flaky-test-runner', {
if (!IS_XPACK) {
kibanaPipeline.buildOss()
if (CI_GROUP == '1') {
runbld "./test/scripts/jenkins_build_kbn_tp_sample_panel_action.sh"
}
} else {
kibanaPipeline.buildXpack()
}
}, getWorkerMap(agentNumber, params.NUMBER_EXECUTIONS.toInteger(), worker, workerFailures))()
}
}
}
parallel(agents)
currentBuild.description += ", Failures: ${workerFailures.size()}"
if (workerFailures.size() > 0) {
print "There were ${workerFailures.size()} test suite failures."
print "The executions that failed were:"
print workerFailures.join("\n")
print "Please check 'Test Result' and 'Pipeline Steps' pages for more info"
}
}
}
}
}
def getWorkerFromParams(isXpack, job, ciGroup) {
if (!isXpack) {
if (job == 'firefoxSmoke') {
return kibanaPipeline.getPostBuildWorker('firefoxSmoke', { runbld './test/scripts/jenkins_firefox_smoke.sh' })
} else if(job == 'visualRegression') {
return kibanaPipeline.getPostBuildWorker('visualRegression', { runbld './test/scripts/jenkins_visual_regression.sh' })
} else {
return kibanaPipeline.getOssCiGroupWorker(ciGroup)
}
}
if (job == 'firefoxSmoke') {
return kibanaPipeline.getPostBuildWorker('xpack-firefoxSmoke', { runbld './test/scripts/jenkins_xpack_firefox_smoke.sh' })
} else if(job == 'visualRegression') {
return kibanaPipeline.getPostBuildWorker('xpack-visualRegression', { runbld './test/scripts/jenkins_xpack_visual_regression.sh' })
} else {
return kibanaPipeline.getXpackCiGroupWorker(ciGroup)
}
}
def getWorkerMap(agentNumber, numberOfExecutions, worker, workerFailures, maxWorkers = 14) {
def workerMap = [:]
def numberOfWorkers = Math.min(numberOfExecutions, maxWorkers)
for(def i = 1; i <= numberOfWorkers; i++) {
def workerExecutions = numberOfExecutions/numberOfWorkers + (i <= numberOfExecutions%numberOfWorkers ? 1 : 0)
workerMap["agent-${agentNumber}-worker-${i}"] = { workerNumber ->
for(def j = 0; j < workerExecutions; j++) {
print "Execute agent-${agentNumber} worker-${workerNumber}: ${j}"
withEnv(["JOB=agent-${agentNumber}-worker-${workerNumber}-${j}"]) {
catchError {
try {
worker(workerNumber)
} catch (ex) {
workerFailures << "agent-${agentNumber} worker-${workerNumber}-${j}"
throw ex
}
}
}
}
}
}
return workerMap
}
def trunc(str, length) {
if (str.size() >= length) {
return str.take(length) + "..."
}
return str;
}

View file

@ -40,6 +40,7 @@ bower_components
/x-pack/legacy/plugins/infra/public/graphql/types.ts
/x-pack/legacy/plugins/infra/server/graphql/types.ts
/x-pack/legacy/plugins/apm/cypress/**/snapshots.js
/src/legacy/plugin_discovery/plugin_pack/__tests__/fixtures/plugins/broken
**/graphql/types.ts
**/*.js.snap
!/.eslintrc.js

View file

@ -1,3 +1,22 @@
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const { readdirSync } = require('fs');
const { resolve } = require('path');
@ -622,7 +641,6 @@ module.exports = {
// will introduced after the other warns are fixed
// 'react/sort-comp': 'error',
'react/void-dom-elements-no-children': 'error',
'react/jsx-boolean-value': ['error', 'warn'],
// will introduced after the other warns are fixed
// 'react/jsx-no-bind': 'error',
'react/jsx-no-comment-textnodes': 'error',

10
.github/CODEOWNERS vendored
View file

@ -10,6 +10,7 @@
/src/plugins/data/ @elastic/kibana-app-arch
/src/plugins/kibana_utils/ @elastic/kibana-app-arch
/src/plugins/kibana_react/ @elastic/kibana-app-arch
/src/plugins/navigation/ @elastic/kibana-app-arch
# APM
/x-pack/legacy/plugins/apm/ @elastic/apm-ui
@ -43,6 +44,12 @@
/src/dev/ @elastic/kibana-operations
/src/setup_node_env/ @elastic/kibana-operations
/src/optimize/ @elastic/kibana-operations
/packages/*eslint*/ @elastic/kibana-operations
/packages/*babel*/ @elastic/kibana-operations
/packages/kbn-dev-utils*/ @elastic/kibana-operations
/packages/kbn-es/ @elastic/kibana-operations
/packages/kbn-pm/ @elastic/kibana-operations
/packages/kbn-test/ @elastic/kibana-operations
# Platform
/src/core/ @elastic/kibana-platform
@ -81,6 +88,9 @@
/x-pack/legacy/plugins/rollup/ @elastic/es-ui
/x-pack/legacy/plugins/searchprofiler/ @elastic/es-ui
/x-pack/legacy/plugins/snapshot_restore/ @elastic/es-ui
# ML team owns the transform plugin, ES team added here for visibility
# because the plugin lives in Kibana's Elasticsearch management section.
/x-pack/legacy/plugins/transform/ @elastic/es-ui
/x-pack/legacy/plugins/watcher/ @elastic/es-ui
# Kibana TSVB external contractors

1
.github/labeler.yml vendored
View file

@ -2,6 +2,7 @@
- src/plugins/data/**/*
- src/plugins/embeddable/**/*
- src/plugins/kibana_react/**/*
- src/plugins/navigation/**/*
- src/plugins/kibana_utils/**/*
- src/legacy/core_plugins/dashboard_embeddable_container/**/*
- src/legacy/core_plugins/data/**/*

View file

@ -1,9 +1,10 @@
{
"paths": {
"common.ui": "src/legacy/ui",
"data": "src/legacy/core_plugins/data",
"data": ["src/legacy/core_plugins/data", "src/plugins/data"],
"expressions": "src/legacy/core_plugins/expressions",
"kibana_react": "src/legacy/core_plugins/kibana_react",
"navigation": "src/legacy/core_plugins/navigation",
"server": "src/legacy/server",
"console": "src/legacy/core_plugins/console",
"core": "src/core",

313
Jenkinsfile vendored
View file

@ -1,6 +1,7 @@
#!/bin/groovy
library 'kibana-pipeline-library'
kibanaLibrary.load()
stage("Kibana Pipeline") { // This stage is just here to help the BlueOcean UI a little bit
timeout(time: 180, unit: 'MINUTES') {
@ -8,292 +9,42 @@ stage("Kibana Pipeline") { // This stage is just here to help the BlueOcean UI a
ansiColor('xterm') {
catchError {
parallel([
'kibana-intake-agent': legacyJobRunner('kibana-intake'),
'x-pack-intake-agent': legacyJobRunner('x-pack-intake'),
'kibana-oss-agent': withWorkers('kibana-oss-tests', { buildOss() }, [
'oss-ciGroup1': getOssCiGroupWorker(1),
'oss-ciGroup2': getOssCiGroupWorker(2),
'oss-ciGroup3': getOssCiGroupWorker(3),
'oss-ciGroup4': getOssCiGroupWorker(4),
'oss-ciGroup5': getOssCiGroupWorker(5),
'oss-ciGroup6': getOssCiGroupWorker(6),
'kibana-intake-agent': kibanaPipeline.legacyJobRunner('kibana-intake'),
'x-pack-intake-agent': kibanaPipeline.legacyJobRunner('x-pack-intake'),
'kibana-oss-agent': kibanaPipeline.withWorkers('kibana-oss-tests', { kibanaPipeline.buildOss() }, [
'oss-ciGroup1': kibanaPipeline.getOssCiGroupWorker(1),
'oss-ciGroup2': kibanaPipeline.getOssCiGroupWorker(2),
'oss-ciGroup3': kibanaPipeline.getOssCiGroupWorker(3),
'oss-ciGroup4': kibanaPipeline.getOssCiGroupWorker(4),
'oss-ciGroup5': kibanaPipeline.getOssCiGroupWorker(5),
'oss-ciGroup6': kibanaPipeline.getOssCiGroupWorker(6),
'oss-ciGroup7': kibanaPipeline.getOssCiGroupWorker(7),
'oss-ciGroup8': kibanaPipeline.getOssCiGroupWorker(8),
'oss-ciGroup9': kibanaPipeline.getOssCiGroupWorker(9),
'oss-ciGroup10': kibanaPipeline.getOssCiGroupWorker(10),
'oss-ciGroup11': kibanaPipeline.getOssCiGroupWorker(11),
'oss-ciGroup12': kibanaPipeline.getOssCiGroupWorker(12),
'oss-firefoxSmoke': kibanaPipeline.getPostBuildWorker('firefoxSmoke', { runbld './test/scripts/jenkins_firefox_smoke.sh' }),
// 'oss-visualRegression': kibanaPipeline.getPostBuildWorker('visualRegression', { runbld './test/scripts/jenkins_visual_regression.sh' }),
]),
'kibana-oss-agent2': withWorkers('kibana-oss-tests2', { buildOss() }, [
'oss-ciGroup7': getOssCiGroupWorker(7),
'oss-ciGroup8': getOssCiGroupWorker(8),
'oss-ciGroup9': getOssCiGroupWorker(9),
'oss-ciGroup10': getOssCiGroupWorker(10),
'oss-ciGroup11': getOssCiGroupWorker(11),
'oss-ciGroup12': getOssCiGroupWorker(12),
'oss-firefoxSmoke': getPostBuildWorker('firefoxSmoke', { runbld './test/scripts/jenkins_firefox_smoke.sh' }),
// 'oss-visualRegression': getPostBuildWorker('visualRegression', { runbld './test/scripts/jenkins_visual_regression.sh' }),
]),
'kibana-xpack-agent': withWorkers('kibana-xpack-tests', { buildXpack() }, [
'xpack-ciGroup1': getXpackCiGroupWorker(1),
'xpack-ciGroup2': getXpackCiGroupWorker(2),
'xpack-ciGroup3': getXpackCiGroupWorker(3),
'xpack-ciGroup4': getXpackCiGroupWorker(4),
'xpack-ciGroup5': getXpackCiGroupWorker(5),
]),
'kibana-xpack-agent2': withWorkers('kibana-xpack-tests2', { buildXpack() }, [
'xpack-ciGroup6': getXpackCiGroupWorker(6),
'xpack-ciGroup7': getXpackCiGroupWorker(7),
'xpack-ciGroup8': getXpackCiGroupWorker(8),
'xpack-ciGroup9': getXpackCiGroupWorker(9),
'xpack-ciGroup10': getXpackCiGroupWorker(10),
'xpack-firefoxSmoke': getPostBuildWorker('xpack-firefoxSmoke', { runbld './test/scripts/jenkins_xpack_firefox_smoke.sh' }),
// 'xpack-visualRegression': getPostBuildWorker('xpack-visualRegression', { runbld './test/scripts/jenkins_xpack_visual_regression.sh' }),
'kibana-xpack-agent': kibanaPipeline.withWorkers('kibana-xpack-tests', { kibanaPipeline.buildXpack() }, [
'xpack-ciGroup1': kibanaPipeline.getXpackCiGroupWorker(1),
'xpack-ciGroup2': kibanaPipeline.getXpackCiGroupWorker(2),
'xpack-ciGroup3': kibanaPipeline.getXpackCiGroupWorker(3),
'xpack-ciGroup4': kibanaPipeline.getXpackCiGroupWorker(4),
'xpack-ciGroup5': kibanaPipeline.getXpackCiGroupWorker(5),
'xpack-ciGroup6': kibanaPipeline.getXpackCiGroupWorker(6),
'xpack-ciGroup7': kibanaPipeline.getXpackCiGroupWorker(7),
'xpack-ciGroup8': kibanaPipeline.getXpackCiGroupWorker(8),
'xpack-ciGroup9': kibanaPipeline.getXpackCiGroupWorker(9),
'xpack-ciGroup10': kibanaPipeline.getXpackCiGroupWorker(10),
'xpack-firefoxSmoke': kibanaPipeline.getPostBuildWorker('xpack-firefoxSmoke', { runbld './test/scripts/jenkins_xpack_firefox_smoke.sh' }),
// 'xpack-visualRegression': kibanaPipeline.getPostBuildWorker('xpack-visualRegression', { runbld './test/scripts/jenkins_xpack_visual_regression.sh' }),
]),
])
}
node('flyweight') {
// If the build doesn't have a result set by this point, there haven't been any errors and it can be marked as a success
// The e-mail plugin for the infra e-mail depends upon this being set
currentBuild.result = currentBuild.result ?: 'SUCCESS'
sendMail()
}
kibanaPipeline.sendMail()
}
}
}
}
def withWorkers(name, preWorkerClosure = {}, workerClosures = [:]) {
return {
jobRunner('tests-xl') {
try {
doSetup()
preWorkerClosure()
def nextWorker = 1
def worker = { workerClosure ->
def workerNumber = nextWorker
nextWorker++
return {
workerClosure(workerNumber)
}
}
def workers = [:]
workerClosures.each { workerName, workerClosure ->
workers[workerName] = worker(workerClosure)
}
parallel(workers)
} finally {
catchError {
uploadAllGcsArtifacts(name)
}
catchError {
runbldJunit()
}
catchError {
publishJunit()
}
catchError {
runErrorReporter()
}
}
}
}
}
def getPostBuildWorker(name, closure) {
return { workerNumber ->
def kibanaPort = "61${workerNumber}1"
def esPort = "61${workerNumber}2"
def esTransportPort = "61${workerNumber}3"
withEnv([
"CI_WORKER_NUMBER=${workerNumber}",
"TEST_KIBANA_HOST=localhost",
"TEST_KIBANA_PORT=${kibanaPort}",
"TEST_KIBANA_URL=http://elastic:changeme@localhost:${kibanaPort}",
"TEST_ES_URL=http://elastic:changeme@localhost:${esPort}",
"TEST_ES_TRANSPORT_PORT=${esTransportPort}",
"IS_PIPELINE_JOB=1",
]) {
closure()
}
}
}
def getOssCiGroupWorker(ciGroup) {
return getPostBuildWorker("ciGroup" + ciGroup, {
withEnv([
"CI_GROUP=${ciGroup}",
"JOB=kibana-ciGroup${ciGroup}",
]) {
runbld "./test/scripts/jenkins_ci_group.sh"
}
})
}
def getXpackCiGroupWorker(ciGroup) {
return getPostBuildWorker("xpack-ciGroup" + ciGroup, {
withEnv([
"CI_GROUP=${ciGroup}",
"JOB=xpack-kibana-ciGroup${ciGroup}",
]) {
runbld "./test/scripts/jenkins_xpack_ci_group.sh"
}
})
}
def legacyJobRunner(name) {
return {
parallel([
"${name}": {
withEnv([
"JOB=${name}",
]) {
jobRunner('linux && immutable') {
try {
runbld('.ci/run.sh', true)
} finally {
catchError {
uploadAllGcsArtifacts(name)
}
catchError {
publishJunit()
}
catchError {
runErrorReporter()
}
}
}
}
}
])
}
}
def jobRunner(label, closure) {
node(label) {
def scmVars = checkout scm
withEnv([
"CI=true",
"HOME=${env.JENKINS_HOME}",
"PR_SOURCE_BRANCH=${env.ghprbSourceBranch ?: ''}",
"PR_TARGET_BRANCH=${env.ghprbTargetBranch ?: ''}",
"PR_AUTHOR=${env.ghprbPullAuthorLogin ?: ''}",
"TEST_BROWSER_HEADLESS=1",
"GIT_BRANCH=${scmVars.GIT_BRANCH}",
]) {
withCredentials([
string(credentialsId: 'vault-addr', variable: 'VAULT_ADDR'),
string(credentialsId: 'vault-role-id', variable: 'VAULT_ROLE_ID'),
string(credentialsId: 'vault-secret-id', variable: 'VAULT_SECRET_ID'),
]) {
// scm is configured to check out to the ./kibana directory
dir('kibana') {
closure()
}
}
}
}
}
// TODO what should happen if GCS, Junit, or email publishing fails? Unstable build? Failed build?
def uploadGcsArtifact(workerName, pattern) {
def storageLocation = "gs://kibana-ci-artifacts/jobs/${env.JOB_NAME}/${BUILD_NUMBER}/${workerName}" // TODO
// def storageLocation = "gs://kibana-pipeline-testing/jobs/pipeline-test/${BUILD_NUMBER}/${workerName}"
googleStorageUpload(
credentialsId: 'kibana-ci-gcs-plugin',
bucket: storageLocation,
pattern: pattern,
sharedPublicly: true,
showInline: true,
)
}
def uploadAllGcsArtifacts(workerName) {
def ARTIFACT_PATTERNS = [
'target/kibana-*',
'target/junit/**/*',
'test/**/screenshots/**/*.png',
'test/functional/failure_debug/html/*.html',
'x-pack/test/**/screenshots/**/*.png',
'x-pack/test/functional/failure_debug/html/*.html',
'x-pack/test/functional/apps/reporting/reports/session/*.pdf',
]
ARTIFACT_PATTERNS.each { pattern ->
uploadGcsArtifact(workerName, pattern)
}
}
def publishJunit() {
junit(testResults: 'target/junit/**/*.xml', allowEmptyResults: true, keepLongStdio: true)
}
def sendMail() {
sendInfraMail()
sendKibanaMail()
}
def sendInfraMail() {
catchError {
step([
$class: 'Mailer',
notifyEveryUnstableBuild: true,
recipients: 'infra-root+build@elastic.co',
sendToIndividuals: false
])
}
}
def sendKibanaMail() {
catchError {
def buildStatus = buildUtils.getBuildStatus()
if(params.NOTIFY_ON_FAILURE && buildStatus != 'SUCCESS' && buildStatus != 'ABORTED') {
emailext(
to: 'build-kibana@elastic.co',
subject: "${env.JOB_NAME} - Build # ${env.BUILD_NUMBER} - ${buildStatus}",
body: '${SCRIPT,template="groovy-html.template"}',
mimeType: 'text/html',
)
}
}
}
def runbld(script, enableJunitProcessing = false) {
def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml"
sh "/usr/local/bin/runbld -d '${pwd()}' ${extraConfig} ${script}"
}
def runbldJunit() {
sh "/usr/local/bin/runbld -d '${pwd()}' ${env.WORKSPACE}/kibana/test/scripts/jenkins_runbld_junit.sh"
}
def bash(script) {
sh "#!/bin/bash\n${script}"
}
def doSetup() {
runbld "./test/scripts/jenkins_setup.sh"
}
def buildOss() {
runbld "./test/scripts/jenkins_build_kibana.sh"
}
def buildXpack() {
runbld "./test/scripts/jenkins_xpack_build_kibana.sh"
}
def runErrorReporter() {
bash """
source src/dev/ci_setup/setup_env.sh
node scripts/report_failed_tests
"""
}

View file

@ -1,9 +1,55 @@
Kibana source code with Kibana X-Pack source code
Copyright 2012-2019 Elasticsearch B.V.
---
Pretty handling of logarithmic axes.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Created by Arne de Laat
Set axis.mode to "log" and make the axis logarithmic using transform:
axis: {
mode: 'log',
transform: function(v) {v <= 0 ? Math.log(v) / Math.LN10 : null},
inverseTransform: function(v) {Math.pow(10, v)}
}
The transform filters negative and zero values, because those are
invalid on logarithmic scales.
This plugin tries to create good looking logarithmic ticks, using
unicode superscript characters. If all data to be plotted is between two
powers of ten then the default flot tick generator and renderer are
used. Logarithmic ticks are places at powers of ten and at half those
values if there are not to many ticks already (e.g. [1, 5, 10, 50, 100]).
For details, see https://github.com/flot/flot/pull/1328
---
This product has relied on ASTExplorer that is licensed under MIT.
---
This product includes code that is based on flot-charts, which was available
under a "MIT" license.
The MIT License (MIT)
Copyright (c) 2007-2014 IOLA and Ole Laursen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---
This product uses Noto fonts that are licensed under the SIL Open
Font License, Version 1.1.
@ -34,26 +80,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
Pretty handling of logarithmic axes.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Created by Arne de Laat
Set axis.mode to "log" and make the axis logarithmic using transform:
axis: {
mode: 'log',
transform: function(v) {v <= 0 ? Math.log(v) / Math.LN10 : null},
inverseTransform: function(v) {Math.pow(10, v)}
}
The transform filters negative and zero values, because those are
invalid on logarithmic scales.
This plugin tries to create good looking logarithmic ticks, using
unicode superscript characters. If all data to be plotted is between two
powers of ten then the default flot tick generator and renderer are
used. Logarithmic ticks are places at powers of ten and at half those
values if there are not to many ticks already (e.g. [1, 5, 10, 50, 100]).
For details, see https://github.com/flot/flot/pull/1328
---
This product bundles bootstrap@3.3.6 which is available under a
"MIT" license.
@ -107,6 +133,26 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---
This product bundles code based on probot-metadata@1.0.0 which is
available under a "MIT" license.
ISC License
Copyright (c) 2017 Brandon Keepers
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---
This product includes code that is adapted from mapbox-gl-js, which is
available under a "BSD-3-Clause" license.
@ -166,32 +212,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
This product includes code that is based on flot-charts, which was available
under a "MIT" license.
The MIT License (MIT)
Copyright (c) 2007-2014 IOLA and Ole Laursen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---
This product includes code that was extracted from angular@1.3.
Original license:

View file

@ -50,7 +50,8 @@
#server.ssl.key: /path/to/your/server.key
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files validate that your Elasticsearch backend uses the same key files.
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.ssl.verification_mode in Elasticsearch is set to either certificate or full.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key

View file

@ -11,6 +11,15 @@ experimental[] Create multiple {kib} saved objects.
`POST /api/saved_objects/_bulk_create`
`POST /s/<space_id>/api/saved_objects/_bulk_create`
[[saved-objects-api-bulk-create-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL the default space is used.
[[saved-objects-api-bulk-create-query-params]]
==== Query parameters
@ -38,7 +47,7 @@ experimental[] Create multiple {kib} saved objects.
[[saved-objects-api-bulk-create-response-body]]
==== Response body
`saved_objects`::
`saved_objects`::
(array) Top-level property the contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request.
Saved objects that are unable to persist are replaced with an error object.
@ -46,13 +55,13 @@ Saved objects that are unable to persist are replaced with an error object.
[[saved-objects-api-bulk-create-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[saved-objects-api-bulk-create-example]]
==== Example
Create an index pattern with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID:
Create an index pattern with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID:
[source,js]
--------------------------------------------------
@ -67,7 +76,7 @@ POST api/saved_objects/_bulk_create
},
{
"type": "dashboard",
"id": "my-dashboard",
"id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
"attributes": {
"title": "Look at my dashboard"
}
@ -91,7 +100,7 @@ The API returns the following:
}
},
{
"id": "my-dashboard",
"id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
"type": "dashboard",
"error": {
"statusCode": 409,

View file

@ -11,6 +11,14 @@ experimental[] Retrieve multiple {kib} saved objects by ID.
`POST /api/saved_objects/_bulk_get`
`POST /s/<space_id>/api/saved_objects/_bulk_get`
[[saved-objects-api-bulk-get-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
[[saved-objects-api-bulk-get-request-body]]
==== Request Body
@ -18,15 +26,15 @@ experimental[] Retrieve multiple {kib} saved objects by ID.
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.
`id`::
(Required, string) ID of the retrieved object.
(Required, string) ID of the retrieved object. The ID includes the {kib} unique identifier or a custom identifier.
`fields`::
(Optional, array) The fields returned in the object response.
[[saved-objects-api-bulk-get-response-body]]
==== Response body
`saved_objects`::
`saved_objects`::
(array) Top-level property the contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request.
Saved objects that are unable to persist are replaced with an error object.
@ -34,13 +42,13 @@ Saved objects that are unable to persist are replaced with an error object.
[[saved-objects-api-bulk-get-body-codes]]
==== Response code
`200`::
Indicates a successfully call.
`200`::
Indicates a successful call.
[[saved-objects-api-bulk-get-body-example]]
==== Example
Retrieve an index pattern with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID:
Retrieve an index pattern with the `my-pattern` ID, and a dashboard with the `my-dashboard` ID:
[source,js]
--------------------------------------------------
@ -52,7 +60,7 @@ POST api/saved_objects/_bulk_get
},
{
"type": "dashboard",
"id": "my-dashboard"
"id": "be3733a0-9efe-11e7-acb3-3dab96693fab"
}
]
--------------------------------------------------

View file

@ -13,9 +13,14 @@ experimental[] Create {kib} saved objects.
`POST /api/saved_objects/<type>/<id>`
`POST /s/<space_id>/saved_objects/<type>`
[[saved-objects-api-create-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
`<type>`::
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.
@ -44,9 +49,9 @@ any data that you send to the API is properly formed.
[[saved-objects-api-create-request-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[saved-objects-api-create-example]]
==== Example

View file

@ -13,9 +13,14 @@ WARNING: Once you delete a saved object, _it cannot be recovered_.
`DELETE /api/saved_objects/<type>/<id>`
`DELETE /s/<space_id>/api/saved_objects/<type>/<id>`
[[saved-objects-api-delete-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
`type`::
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.
@ -25,7 +30,7 @@ WARNING: Once you delete a saved object, _it cannot be recovered_.
[[saved-objects-api-delete-response-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
==== Examples

View file

@ -11,15 +11,23 @@ experimental[] Retrieve sets of saved objects that you want to import into {kib}
`POST /api/saved_objects/_export`
`POST /s/<space_id>/api/saved_objects/_export`
[[saved-objects-api-export-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
[[saved-objects-api-export-request-request-body]]
==== Request body
`type`::
(Optional, array|string) The saved object types to include in the export.
`objects`::
(Optional, array) A list of objects to export.
`includeReferencesDeep`::
(Optional, boolean) Includes all of the referenced objects in the exported objects.
@ -50,7 +58,7 @@ When `excludeExportDetails=false` (the default) we append an export result detai
[[export-objects-api-create-request-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[ssaved-objects-api-create-example]]

View file

@ -11,33 +11,41 @@ experimental[] Retrieve a paginated set of {kib} saved objects by various condit
`GET /api/saved_objects/_find`
`GET /s/<space_id>/api/saved_objects/_find`
[[saved-objects-api-find-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
[[saved-objects-api-find-query-params]]
==== Query Parameters
`type`::
(Required, array|string) The saved object types to include in the export.
`per_page`::
(Optional, number) The number of objects to return per page.
`page`::
(Optional, number) The page of objects to return.
`search`::
(Optional, string) An Elasticsearch {ref}/query-dsl-simple-query-string-query.html[simple_query_string] query that filters the objects in the response.
`default_search_operator`::
(Optional, string) The default operator to use for the `simple_query_string`.
`search_fields`::
(Optional, array|string) The fields to perform the `simple_query_string` parsed query against.
`fields`::
(Optional, array|string) The fields to return in the response.
`sort_field`::
(Optional, string) The field that sorts the response.
`has_reference`::
(Optional, object) Filters to objects that have a relationship with the type and ID combination.
@ -52,7 +60,7 @@ change. Use the find API for traditional paginated results, but avoid using it t
[[saved-objects-api-find-request-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
==== Examples
@ -92,4 +100,3 @@ query parameter for each value:
GET api/saved_objects/_find?fields=id&fields=title
--------------------------------------------------
// KIBANA

View file

@ -11,9 +11,15 @@ experimental[] Retrieve a single {kib} saved object by ID.
`GET /api/saved_objects/<type>/<id>`
`GET /s/<space_id>/api/saved_objects/<type>/<id>`
[[saved-objects-api-get-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
`type`::
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.
@ -23,10 +29,10 @@ experimental[] Retrieve a single {kib} saved object by ID.
[[saved-objects-api-get-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[saved-objects-api-get-example]]
[[saved-objects-api-get-example]]
==== Example
Retrieve the index pattern object with the `my-pattern` ID:
@ -50,3 +56,59 @@ The API returns the following:
}
}
--------------------------------------------------
The following example retrieves a dashboard object in the `testspace` by id.
[source,js]
--------------------------------------------------
GET /s/testspace/api/saved_objects/dashboard/7adfa750-4c81-11e8-b3d7-01146121b73d
--------------------------------------------------
// KIBANA
The API returns the following:
[source,js]
--------------------------------------------------
{
"id": "7adfa750-4c81-11e8-b3d7-01146121b73d",
"type": "dashboard",
"updated_at": "2019-07-23T00:11:07.059Z",
"version": "WzQ0LDFd",
"attributes": {
"title": "[Flights] Global Flight Dashboard",
"hits": 0,
"description": "Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats",
"panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":0,\"w\":32,\"h\":7,\"i\":\"1\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_0\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":17,\"y\":7,\"w\":23,\"h\":12,\"i\":\"3\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"Average Ticket Price\":\"#0A50A1\",\"Flight Count\":\"#82B5D8\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_1\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":85,\"w\":48,\"h\":15,\"i\":\"4\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_2\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":0,\"y\":7,\"w\":17,\"h\":12,\"i\":\"5\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"ES-Air\":\"#447EBC\",\"JetBeats\":\"#65C5DB\",\"Kibana Airlines\":\"#BA43A9\",\"Logstash Airways\":\"#E5AC0E\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_3\"},{\"panelIndex\":\"6\",\"gridData\":{\"x\":24,\"y\":33,\"w\":24,\"h\":14,\"i\":\"6\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"Carrier Delay\":\"#5195CE\",\"Late Aircraft Delay\":\"#1F78C1\",\"NAS Delay\":\"#70DBED\",\"No Delay\":\"#BADFF4\",\"Security Delay\":\"#052B51\",\"Weather Delay\":\"#6ED0E0\"}}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_4\"},{\"panelIndex\":\"7\",\"gridData\":{\"x\":24,\"y\":19,\"w\":24,\"h\":14,\"i\":\"7\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_5\"},{\"panelIndex\":\"10\",\"gridData\":{\"x\":0,\"y\":35,\"w\":24,\"h\":12,\"i\":\"10\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"Count\":\"#1F78C1\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_6\"},{\"panelIndex\":\"13\",\"gridData\":{\"x\":10,\"y\":19,\"w\":14,\"h\":8,\"i\":\"13\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"Count\":\"#1F78C1\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_7\"},{\"panelIndex\":\"14\",\"gridData\":{\"x\":10,\"y\":27,\"w\":14,\"h\":8,\"i\":\"14\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"Count\":\"#1F78C1\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_8\"},{\"panelIndex\":\"18\",\"gridData\":{\"x\":24,\"y\":70,\"w\":24,\"h\":15,\"i\":\"18\"},\"embeddableConfig\":{\"mapCenter\":[27.421687059550266,15.371002131141724],\"mapZoom\":1},\"version\":\"6.3.0\",\"panelRefName\":\"panel_9\"},{\"panelIndex\":\"21\",\"gridData\":{\"x\":0,\"y\":62,\"w\":48,\"h\":8,\"i\":\"21\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_10\"},{\"panelIndex\":\"22\",\"gridData\":{\"x\":32,\"y\":0,\"w\":16,\"h\":7,\"i\":\"22\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_11\"},{\"panelIndex\":\"23\",\"gridData\":{\"x\":0,\"y\":70,\"w\":24,\"h\":15,\"i\":\"23\"},\"embeddableConfig\":{\"mapCenter\":[42.19556096274418,9.536742995308601e-7],\"mapZoom\":1},\"version\":\"6.3.0\",\"panelRefName\":\"panel_12\"},{\"panelIndex\":\"25\",\"gridData\":{\"x\":0,\"y\":19,\"w\":10,\"h\":8,\"i\":\"25\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(247,251,255)\",\"100 - 150\":\"rgb(107,174,214)\",\"150 - 200\":\"rgb(33,113,181)\",\"200 - 250\":\"rgb(8,48,107)\",\"50 - 100\":\"rgb(198,219,239)\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_13\"},{\"panelIndex\":\"27\",\"gridData\":{\"x\":0,\"y\":27,\"w\":10,\"h\":8,\"i\":\"27\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(247,251,255)\",\"100 - 150\":\"rgb(107,174,214)\",\"150 - 200\":\"rgb(33,113,181)\",\"200 - 250\":\"rgb(8,48,107)\",\"50 - 100\":\"rgb(198,219,239)\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_14\"},{\"panelIndex\":\"28\",\"gridData\":{\"x\":0,\"y\":47,\"w\":24,\"h\":15,\"i\":\"28\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 -* Connection #0 to host 69c72adb58fa46c69a01afdf4a6cbfd3.us-west1.gcp.cloud.es.io left intact\n 11\":\"rgb(247,251,255)\",\"11 - 22\":\"rgb(208,225,242)\",\"22 - 33\":\"rgb(148,196,223)\",\"33 - 44\":\"rgb(74,152,201)\",\"44 - 55\":\"rgb(23,100,171)\"},\"legendOpen\":false}},\"version\":\"6.3.0\",\"panelRefName\":\"panel_15\"},{\"panelIndex\":\"29\",\"gridData\":{\"x\":40,\"y\":7,\"w\":8,\"h\":6,\"i\":\"29\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_16\"},{\"panelIndex\":\"30\",\"gridData\":{\"x\":40,\"y\":13,\"w\":8,\"h\":6,\"i\":\"30\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_17\"},{\"panelIndex\":\"31\",\"gridData\":{\"x\":24,\"y\":47,\"w\":24,\"h\":15,\"i\":\"31\"},\"embeddableConfig\":{},\"version\":\"6.3.0\",\"panelRefName\":\"panel_18\"}]",
"optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}",
"version": 1,
"timeRestore": true,
"timeTo": "now",
"timeFrom": "now-24h",
"refreshInterval": {
"display": "15 minutes",
"pause": false,
"section": 2,
"value": 900000
},
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
},
"references": [
{
"name": "panel_0",
"type": "visualization",
"id": "aeb212e0-4c84-11e8-b3d7-01146121b73d"
},
. . .
{
"name": "panel_18",
"type": "visualization",
"id": "ed78a660-53a0-11e8-acbd-0be0ad9d822b"
}
],
"migrationVersion": {
"dashboard": "7.0.0"
}
}
--------------------------------------------------

View file

@ -11,8 +11,16 @@ experimental[] Create sets of {kib} saved objects from a file created by the exp
`POST /api/saved_objects/_import`
`POST /s/<space_id>/api/saved_objects/_import`
[[saved-objects-api-import-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
[[saved-objects-api-import-query-params]]
==== Query parameter
==== Query parameters
`overwrite`::
(Optional, boolean) Overwrites saved objects.
@ -28,19 +36,19 @@ The request body must include the multipart/form-data type.
[[saved-objects-api-import-response-body]]
==== Response body
`success`::
Top-level property that indicates if the import was successful.
`success`::
Top-level property that indicates if the import was successful.
`successCount`::
`successCount`::
Indicates the number of successfully imported records.
`errors`::
(array) Indicates the import was unsuccessful and specifies the objects that failed to import.
[[saved-objects-api-import-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
==== Examples

View file

@ -4,9 +4,9 @@
<titleabbrev>Resolve import errors</titleabbrev>
++++
experimental[] Resolve errors from the import API.
experimental[] Resolve errors from the import API.
To resolve errors, you can:
To resolve errors, you can:
* Retry certain saved objects
@ -19,6 +19,14 @@ To resolve errors, you can:
`POST /api/saved_objects/_resolve_import_errors`
`POST /s/<space_id>/api/saved_objects/_resolve_import_errors`
[[saved-objects-api-resolve-import-errors-path-params]]
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
[[saved-objects-api-resolve-import-errors-request-body]]
==== Request body
@ -33,19 +41,19 @@ The request body must include the multipart/form-data type.
[[saved-objects-api-resolve-import-errors-response-body]]
==== Response body
`success`::
`success`::
Top-level property that indicates if the errors successfully resolved.
`successCount`::
`successCount`::
Indicates the number of successfully resolved records.
`errors`::
(array) Specifies the objects that failed to resolve.
[[saved-objects-api-resolve-import-errors-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[saved-objects-api-resolve-import-errors-example]]

View file

@ -11,8 +11,13 @@ experimental[] Update the attributes for existing {kib} saved objects.
`PUT /api/saved_objects/<type>/<id>`
`PUT /s/<space_id>/api/saved_objects/<type>/<id>`
[[saved-objects-api-update-path-params]]
==== Path Parameters
==== Path parameters
`space_id`::
(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
`type`::
(Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.
@ -21,7 +26,7 @@ experimental[] Update the attributes for existing {kib} saved objects.
(Required, string) The object ID to update.
[[saved-objects-api-update-request-body]]
==== Request Body
==== Request body
`attributes`::
(Required, object) The data to persist.
@ -30,11 +35,11 @@ WARNING: When you update, attributes are not validated, which allows you to pass
`references`::
(Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects this object references. To refer to the other saved object, use `name` in the attributes, but never the `id`, which automatically updates during migrations or import/export.
[[saved-objects-api-update-errors-codes]]
==== Response code
`200`::
`200`::
Indicates a successful call.
[[saved-objects-api-update-example]]

View file

@ -25,6 +25,32 @@ A † denotes an argument can be passed multiple times.
Returns `true` if all of the conditions are met. See also <<any_fn>>.
*Expression syntax*
[source,js]
----
all {neq “foo”} {neq “bar”} {neq “fizz”}
all condition={gt 10} condition={lt 20}
----
*Code example*
[source,text]
----
filters
| demodata
| math "mean(percent_uptime)"
| formatnumber "0.0%"
| metric "Average uptime"
metricFont={
font size=48 family="'Open Sans', Helvetica, Arial, sans-serif"
color={
if {all {gte 0} {lt 0.8}} then="red" else="green"
}
align="center" lHeight=48
}
| render
----
This sets the color of the metric text to `”red”` if the context passed into `metric` is greater than or equal to 0 and less than 0.8. Otherwise, the color is set to `"green"`.
*Accepts:* `null`
[cols="3*^<"]
@ -47,6 +73,24 @@ Alias: `condition`
Converts between core types, including `string`, `number`, `null`, `boolean`, and `date`, and renames columns. See also <<mapColumn_fn>> and <<staticColumn_fn>>.
*Expression syntax*
[source,js]
----
alterColumn “cost” type=”string”
alterColumn column=”@timestamp” name=”foo”
----
*Code example*
[source,text]
----
filters
| demodata
| alterColumn “time” name=”time_in_ms” type=”number”
| table
| render
----
This renames the `time` column to `time_in_ms` and converts the type of the columns values from `date` to `number`.
*Accepts:* `datatable`
[cols="3*^<"]
@ -77,6 +121,27 @@ Alias: `column`
Returns `true` if at least one of the conditions is met. See also <<all_fn>>.
*Expression syntax*
[source,js]
----
any {eq “foo”} {eq “bar”} {eq “fizz”}
any condition={lte 10} condition={gt 30}
----
*Code example*
[source,text]
----
filters
| demodata
| filterrows {
getCell "project" | any {eq "elasticsearch"} {eq "kibana"} {eq "x-pack"}
}
| pointseries color="project" size="max(price)"
| pie
| render
----
This filters out any rows that dont contain `“elasticsearch”`, `“kibana”` or `“x-pack”` in the `project` field.
*Accepts:* `null`
[cols="3*^<"]
@ -99,6 +164,28 @@ Alias: `condition`
Creates a `datatable` with a single value. See also <<getCell_fn>>.
*Expression syntax*
[source,js]
----
as
as “foo”
as name=”bar”
----
*Code example*
[source,text]
----
filters
| demodata
| ply by="project" fn={math "count(username)" | as "num_users"} fn={math "mean(price)" | as "price"}
| pointseries x="project" y="num_users" size="price" color="project"
| plot
| render
----
`as` casts any primitive value (`string`, `number`, `date`, `null`) into a `datatable` with a single row and a single column with the given name (or defaults to `"value"` if no name is provided). This is useful when piping a primitive value into a function that only takes `datatable` as an input.
In the example above, `ply` expects each `fn` subexpression to return a `datatable` in order to merge the results of each `fn` back into a `datatable`, but using a `math` aggregation in the subexpressions returns a single `math` value, which is then cast into a `datatable` using `as`.
*Accepts:* `string`, `boolean`, `number`, `null`
[cols="3*^<"]
@ -123,6 +210,21 @@ Default: `"value"`
Retrieves Canvas workpad asset objects to provide as argument values. Usually images.
*Expression syntax*
[source,js]
----
asset "asset-52f14f2b-fee6-4072-92e8-cd2642665d02"
asset id="asset-498f7429-4d56-42a2-a7e4-8bf08d98d114"
----
*Code example*
[source,text]
----
image dataurl={asset "asset-c661a7cc-11be-45a1-a401-d7592ea7917a"} mode="contain"
| render
----
The image asset stored with the ID `“asset-c661a7cc-11be-45a1-a401-d7592ea7917a”` is passed into the `dataurl` argument of the `image` function to display the stored asset.
*Accepts:* `null`
[cols="3*^<"]
@ -145,6 +247,27 @@ Alias: `id`
Configures the axis of a visualization. Only used with <<plot_fn>>.
*Expression syntax*
[source,js]
----
axisConfig show=false
axisConfig position=”right” min=0 max=10 tickSize=1
----
*Code example*
[source,text]
----
filters
| demodata
| pointseries x="size(cost)" y="project" color="project"
| plot defaultStyle={seriesStyle bars=0.75 horizontalBars=true}
legend=false
xaxis={axisConfig position="top" min=0 max=400 tickSize=100}
yaxis={axisConfig position="right"}
| render
----
This sets the `x-axis` to display on the top of the chart and sets the range of values to `0-400` with ticks displayed at `100` intervals. The `y-axis` is configured to display on the `right`.
*Accepts:* `null`
[cols="3*^<"]
@ -188,6 +311,34 @@ Default: `true`
Builds a `case` (including a condition/result) to pass to the <<switch_fn>> function.
*Expression syntax*
[source,js]
----
case 0 then=”red”
case when=5 then=”yellow”
case if={lte 50} then=”green”
----
*Code example*
[source,text]
----
math "random()"
| progress shape="gauge" label={formatnumber "0%"}
font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" align="center"
color={
switch {case if={lte 0.5} then="green"}
{case if={all {gt 0.5} {lte 0.75}} then="orange"}
default="red"
}}
valueColor={
switch {case if={lte 0.5} then="green"}
{case if={all {gt 0.5} {lte 0.75}} then="orange"}
default="red"
}
| render
----
This sets the color of the progress indicator and the color of the label to `"green"` if the value is less than or equal to `0.5`, `"orange"` if the value is greater than `0.5` and less than or equal to `0.75`, and `"red"` if `none` of the case conditions are met.
*Accepts:* `any`
[cols="3*^<"]
@ -229,6 +380,24 @@ Clears the _context_, and returns `null`.
Includes or excludes columns from a data table. If you specify both, this will exclude first.
*Expression syntax*
[source,js]
----
columns include=”@timestamp, projects, cost”
columns exclude=”username, country, age”
----
*Code example*
[source,text]
----
filters
| demodata
| columns include="price, cost, state, project"
| table
| render
----
This only keeps the `price`, `cost`, `state`, and `project` columns from the `demodata` data source and removes all other columns.
*Accepts:* `datatable`
[cols="3*^<"]
@ -257,6 +426,31 @@ Compares the _context_ to specified value to determine `true` or `false`.
Usually used in combination with <<if_fn>> or <<case_fn>>. This only works with primitive types,
such as `number`, `string`, and `boolean`. See also <<eq_fn>>, <<gt_fn>>, <<gte_fn>>, <<lt_fn>>, <<lte_fn>>, and <<neq_fn>>.
*Expression syntax*
[source,js]
----
compare “neq” to=”elasticsearch”
compare op=”lte” to=100
----
*Code example*
[source,text]
----
filters
| demodata
| mapColumn project
fn=${getCell project |
switch
{case if={compare eq to=kibana} then=kibana}
{case if={compare eq to=elasticsearch} then=elasticsearch}
default="other"
}
| pointseries size="size(cost)" color="project"
| pie
| render
----
This maps all `project` values that arent `“kibana”` and `“elasticsearch”` to `“other”`. Alternatively, you can use the individual comparator functions instead of compare. See <<eq_fn>>, <<neq_fn>>, <<lt_fn>>, <<lte_fn>>, <<gt_fn>>, and <<gte_fn>>.
*Accepts:* `string`, `number`, `boolean`, `null`
[cols="3*^<"]
@ -287,6 +481,35 @@ Alias: `this`, `b`
Creates an object used for styling an element's container, including background, border, and opacity.
*Expression syntax*
[source,js]
----
containerStyle backgroundColor=”red”
containerStyle borderRadius=”50px”
containerStyle border=”1px solid black”
containerStyle padding=”5px”
containerStyle opacity=”0.5”
containerStyle overflow=”hidden”
containerStyle backgroundImage={asset id=asset-f40d2292-cf9e-4f2c-8c6f-a504a25e949c}
backgroundRepeat="no-repeat"
backgroundSize="cover"
----
*Code example*
[source,text]
----
shape "star" fill="#E61D35" maintainAspect=true
| render
containerStyle={
containerStyle backgroundColor="#F8D546"
borderRadius="200px"
border="4px solid #05509F"
padding="0px"
opacity="0.9"
overflow="hidden"
}
----
*Accepts:* `null`
[cols="3*^<"]
@ -346,6 +569,22 @@ Default: `"hidden"`
Returns whatever you pass into it. This can be useful when you need to use the
_context_ as an argument to a function as a sub-expression.
*Expression syntax*
[source,js]
----
context
----
*Code example*
[source,text]
----
date
| formatdate "LLLL"
| markdown "Last updated: " {context}
| render
----
Using the `context` function allows us to pass the output, or _context_, of the previous function as a value to an argument in the next function. Here we get the formatted date string from the previous function and pass it as `content` for the markdown element.
*Accepts:* `any`
*Returns:* Original _context_
@ -356,6 +595,26 @@ _context_ as an argument to a function as a sub-expression.
Creates a `datatable` from CSV input.
*Expression syntax*
[source,js]
----
csv “fruit, stock
kiwi, 10
Banana, 5”
----
*Code example*
[source,text]
----
csv "fruit,stock
kiwi,10
banana,5"
| pointseries color=fruit size=stock
| pie
| render
----
This is useful for quickly mocking data.
*Accepts:* `null`
[cols="3*^<"]
@ -390,6 +649,30 @@ Alias: `data`
Returns the current time, or a time parsed from a `string`, as milliseconds since epoch.
*Expression syntax*
[source,js]
----
date
date value=1558735195
date “2019-05-24T21:59:55+0000”
date “01/31/2019” format=”MM/DD/YYYY”
----
*Code example*
[source,text]
----
date
| formatdate "LLL"
| markdown {context}
font={font family="Arial, sans-serif" size=30 align="left"
color="#000000"
weight="normal"
underline=false
italic=false}
| render
----
Using `date` without passing any arguments will return the current date and time.
*Accepts:* `null`
[cols="3*^<"]
@ -418,6 +701,24 @@ using the `format` argument. Must be an ISO8601 string or you must provide the f
A mock data set that includes project CI times with usernames, countries, and run phases.
*Expression syntax*
[source,js]
----
demodata
demodata “ci”
demodata type=”shirts”
----
*Code example*
[source,text]
----
filters
| demodata
| table
| render
----
`demodata` is a mock data set that you can use to start playing around in Canvas.
*Accepts:* `filter`
[cols="3*^<"]
@ -442,6 +743,23 @@ Default: `"ci"`
Executes multiple sub-expressions, then returns the original _context_. Use for running functions that produce an action or side effect without changing the original _context_.
*Expression syntax*
[source,js]
----
do fn={something cool}
----
*Code example*
[source,text]
----
filters
| demodata
| do fn={something cool}
| table
| render
----
`do` should be used to invoke a function that produces as a side effect without changing the `context`.
*Accepts:* `any`
[cols="3*^<"]
@ -464,6 +782,22 @@ Aliases: `expression`, `exp`, `fn`, `function`
Configures a dropdown filter control element.
*Expression syntax*
[source,js]
----
dropdownControl valueColumn=project filterColumn=project
dropdownControl valueColumn=agent filterColumn=agent.keyword filterGroup=group1
----
*Code example*
[source,text]
----
demodata
| dropdownControl valueColumn=project filterColumn=project
| render
----
This creates a dropdown filter element. It requires a data source and uses the unique values from the given `valueColumn` (i.e. `project`) and applies the filter to the `project` column. Note: `filterColumn` should point to a keyword type field for Elasticsearch data sources.
*Accepts:* `datatable`
[cols="3*^<"]
@ -496,6 +830,33 @@ Configures a dropdown filter control element.
Returns whether the _context_ is equal to the argument.
*Expression syntax*
[source,js]
----
eq true
eq null
eq 10
eq “foo”
----
*Code example*
[source,text]
----
filters
| demodata
| mapColumn project
fn=${getCell project |
switch
{case if={eq kibana} then=kibana}
{case if={eq elasticsearch} then=elasticsearch}
default="other"
}
| pointseries size="size(cost)" color="project"
| pie
| render
----
This changes all values in the project column that dont equal `“kibana”` or `“elasticsearch”` to `“other”`.
*Accepts:* `boolean`, `number`, `string`, `null`
[cols="3*^<"]
@ -518,6 +879,28 @@ Alias: `value`
Queries {es} for the number of hits matching the specified query.
*Expression syntax*
[source,js]
----
escount index=”logstash-*”
escount "currency:\"EUR\"" index=”kibana_sample_data_ecommerce”
escount query="response:404" index=”kibana_sample_data_logs”
----
*Code example*
[source,text]
----
filters
| escount "Cancelled:true" index="kibana_sample_data_flights"
| math "value"
| progress shape="semicircle"
label={formatnumber 0,0}
font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}
max={filters | escount index="kibana_sample_data_flights"}
| render
----
The first `escount` expression retrieves the number of flights that were cancelled. The second `escount` expression retrieves the total number of flights.
*Accepts:* `filter`
[cols="3*^<"]
@ -549,6 +932,34 @@ Default: `_all`
Queries {es} for raw documents. Specify the fields you want to retrieve,
especially if you are asking for a lot of rows.
*Expression syntax*
[source,js]
----
esdocs index=”logstash-*”
esdocs "currency:\"EUR\"" index=”kibana_sample_data_ecommerce”
esdocs query="response:404" index=”kibana_sample_data_logs”
esdocs index=”kibana_sample_data_flights” count=100
esdocs index="kibana_sample_data_flights" sort="AvgTicketPrice, asc"
----
*Code example*
[source,text]
----
filters
| esdocs index="kibana_sample_data_ecommerce"
fields="customer_gender, taxful_total_price, order_date"
sort="order_date, asc"
count=10000
| mapColumn "order_date"
fn={getCell "order_date" | date {context} | rounddate "YYYY-MM-DD"}
| alterColumn "order_date" type="date"
| pointseries x="order_date" y="sum(taxful_total_price)" color="customer_gender"
| plot defaultStyle={seriesStyle lines=3}
palette={palette "#7ECAE3" "#003A4D" gradient=true}
| render
----
This retrieves the latest 10000 documents data from the `kibana_sample_data_ecommerce` index sorted by `order_date` in ascending order and only requests the `customer_gender`, `taxful_total_price`, and `order_date` fields.
*Accepts:* `filter`
[cols="3*^<"]
@ -593,6 +1004,21 @@ Default: `"_all"`
Queries {es} using {es} SQL.
*Expression syntax*
[source,js]
----
essql query=”SELECT * FROM \”logstash*\””
essql “SELECT * FROM \”apm*\”” count=10000
----
*Code example*
[source,text]
----
filters
| essql query="SELECT Carrier, FlightDelayMin, AvgTicketPrice FROM \"kibana_sample_data_flights\""
----
This retrieves the `Carrier`, `FlightDelayMin`, and `AvgTicketPrice` fields from the “kibana_sample_data_flights” index.
*Accepts:* `filter`
[cols="3*^<"]
@ -627,6 +1053,26 @@ Default: `UTC`
Creates a filter that matches a given column to an exact value.
*Expression syntax*
[source,js]
----
exactly “state” value=”running”
exactly “age” value=50 filterGroup=”group2”
exactly column=“project” value=”beats”
----
*Code example*
[source,text]
----
filters
| exactly column=project value=elasticsearch
| demodata
| pointseries x=project y="mean(age)"
| plot defaultStyle={seriesStyle bars=1}
| render
----
The `exactly` filter here is added to existing filters retrieved by the `filters` function and further filters down the data to only have `”elasticsearch”` data. The `exactly` filter only applies to this one specific element and will not affect other elements in the workpad.
*Accepts:* `filter`
[cols="3*^<"]
@ -664,6 +1110,29 @@ capitalization.
Filters rows in a `datatable` based on the return value of a sub-expression.
*Expression syntax*
[source,js]
----
filterrows {getCell “project” | eq “kibana”}
filterrows fn={getCell “age” | gt 50}
----
*Code example*
[source,text]
----
filters
| demodata
| filterrows {getCell "country" | any {eq "IN"} {eq "US"} {eq "CN"}}
| mapColumn "@timestamp"
fn={getCell "@timestamp" | rounddate "YYYY-MM"}
| alterColumn "@timestamp" type="date"
| pointseries x="@timestamp" y="mean(cost)" color="country"
| plot defaultStyle={seriesStyle points="2" lines="1"}
palette={palette "#01A4A4" "#CC6666" "#D0D102" "#616161" "#00A1CB" "#32742C" "#F18D05" "#113F8C" "#61AE24" "#D70060" gradient=false}
| render
----
This uses `filterrows` to only keep data from India (`IN`), the United States (`US`), and China (`CN`).
*Accepts:* `datatable`
[cols="3*^<"]
@ -688,6 +1157,34 @@ and a `false` value removes it.
Aggregates element filters from the workpad for use elsewhere, usually a data source.
*Expression syntax*
[source,js]
----
filters
filters group=”timefilter1”
filters group=”timefilter2” group=”dropdownfilter1” ungrouped=true
----
*Code example*
[source,text]
----
filters group=group2 ungrouped=true
| demodata
| pointseries x="project" y="size(cost)" color="project"
| plot defaultStyle={seriesStyle bars=0.75} legend=false
font={
font size=14
family="'Open Sans', Helvetica, Arial, sans-serif"
align="left"
color="#FFFFFF"
weight="lighter"
underline=true
italic=true
}
| render
----
`filters` sets the existing filters as context and accepts `group` parameter to create filter groups.
*Accepts:* `null`
[cols="3*^<"]
@ -718,6 +1215,38 @@ Default: `false`
Creates a font style.
*Expression syntax*
[source,js]
----
font size=12
font family=Arial
font align=middle
font color=pink
font weight=lighter
font underline=true
font italic=false
font lHeight=32
----
*Code example*
[source,text]
----
filters
| demodata
| pointseries x="project" y="size(cost)" color="project"
| plot defaultStyle={seriesStyle bars=0.75} legend=false
font={
font size=14
family="'Open Sans', Helvetica, Arial, sans-serif"
align="left"
color="#FFFFFF"
weight="lighter"
underline=true
italic=true
}
| render
----
*Accepts:* `null`
[cols="3*^<"]
@ -781,6 +1310,25 @@ Default: `"normal"`
Formats an ISO8601 date string or a date in milliseconds since epoch using MomentJS. See https://momentjs.com/docs/#/displaying/.
*Expression syntax*
[source,js]
----
formatdate format=”YYYY-MM-DD”
formatdate “MM/DD/YYYY”
----
*Code example*
[source,text]
----
filters
| demodata
| mapColumn "time" fn={getCell time | formatdate "MMM 'YY"}
| pointseries x="time" y="sum(price)" color="state"
| plot defaultStyle={seriesStyle points=5}
| render
----
This transforms the dates in the `time` field into strings that look like `“Jan 19”`, `“Feb 19”`, etc. using a MomentJS format.
*Accepts:* `number`, `string`
[cols="3*^<"]
@ -803,6 +1351,26 @@ Alias: `format`
Formats a `number` into a formatted `string` using NumeralJS. See http://numeraljs.com/#format.
*Expression syntax*
[source,js]
----
formatnumber format=”$0,0.00”
formatnumber “0.0a”
----
*Code example*
[source,text]
----
filters
| demodata
| math "mean(percent_uptime)"
| progress shape="gauge"
label={formatnumber "0%"}
font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align="center"}
| render
----
The `formatnumber` subexpression receives the same `context` as the `progress` function, which is the output of the `math` function. It formats the value into a percentage.
*Accepts:* `number`
[cols="3*^<"]

View file

@ -1,25 +0,0 @@
[[code-basic-nav]]
== Basic navigation
[float]
==== View file structure and information
The *File* tree on the left is the primary way to navigate through your folder structure. When you are in a directory, *Code* also presents a finder-like view on the right. Additionally, a file path breadcrumb makes it easy to go back to any parent directory.
[float]
==== Git History and Blame
The *Directory* view shows the most recent commits. Clicking *View More* or *History* shows the complete commit history of the current folder or file.
[role="screenshot"]
image::images/code-history.png[]
Clicking *Blame* shows the most recent commit per line.
[role="screenshot"]
image::images/code-blame.png[]
[float]
==== Branch selector
You can use the Branch selector to view different branches of a repo. Note that code intelligence and search index are not available for any branch other than the master branch.
include::code-semantic-nav.asciidoc[]

View file

@ -1,48 +0,0 @@
[[code-import-first-repo]]
== Import your first repo
The easiest way to get started with *Code* is to import a real-world repository.
[float]
==== Before you begin
You must have a {kib} instance up and running.
If you are in an environment where you have multiple {kib} instances in a cluster, see the <<code-multiple-kibana-instances-config, config instructions for multiple Kibana instances>>.
[float]
==== Enable Code app
While in beta, you can turn on *Code* by adding the following line to `kibana.yaml`:
[source,yaml]
----
xpack.code.ui.enabled: true
----
[float]
==== Import your first repository
. In {Kib}, navigate to *Code*.
. In the *Repository URL* field, paste the following GitHub clone URL:
+
[source,bash]
----
https://github.com/Microsoft/TypeScript-Node-Starter
----
`https` is recommend for cloning most git repositories. To clone a private repository, <<code-repo-management, use SSH>>.
. Click *Import*.
+
A new item in the list displays the cloning and indexing progress of the `TypeScript-Node-Starter` repo.
+
[role="screenshot"]
image::images/code-import-repo.png[]
. After the indexing is complete, navigate to the repo by clicking its name in the list.
+
[role="screenshot"]
image::images/code-starter-root.png[]
+
Congratulations! You just imported your first repo into *Code*.
include::code-repo-management.asciidoc[]

View file

@ -1,25 +0,0 @@
[[code-install-lang-server]]
== Install language server
*Code* comes with built-in language support for TypeScript. You can install additional languages as a {kib} plugin. Plugin's reduce the distribution size to run Code inside {kib}. Install only the languages needed for your indexed repositories.
[role="screenshot"]
image::images/code-lang-server-tab.png[]
For the current version, *Code* supports the following languages in addition to TypeScript:
* `Java`
* `GO`
You can check the status of the language servers and get installation instructions on the *Language Servers* tab. Make sure the status of the language server is `INSTALLED` or `RUNNING` after you restart the {kib} instance.
[role="screenshot"]
image::images/code-lang-server-status.png[]
////
[float]
=== Ctag language server
*Code* also uses a Ctag language server to generate symbol information and code intelligence when a dedicated language server is not available. The code intelligence information generated by the Ctag language server is less accurate but covers more languages.
////
include::code-basic-nav.asciidoc[]

View file

@ -1,10 +0,0 @@
[[code-multiple-kibana-instances-config]]
== Config for multiple {kib} instances
If you are using multiple instances of {kib}, you must manually assign at least one {kib} instance as a *Code* `node`. Add the following line of code to your `kibana.yml` file for each {kib} instance you wish to use and restart the instances:
[source,yaml]
----
xpack.code.codeNodeUrl: 'http://$YourCodeNodeAddress'
----
`$YourCodeNoteAddress` is the URL of your assigned *Code* node accessible by other {kib} instances.

View file

@ -1,76 +0,0 @@
[[code-repo-management]]
== Repo management
Code starts with an overview of your repositories. You can then use the UI to add, delete, and reindex a repo.
[role="screenshot"]
image::images/code-repo-management.png[]
[float]
[[add-delete-a-repo]]
==== Add and delete a repo
The <<code-import-first-repo, Import your first repository>> page provides step-by-step instructions for adding a GitHub repo to *Code*. You can fine-tune the hostname of the git clone URL in your `kibana.yml` file.
For security reasons, Code allows only a few <<clone-url-management,trusted hostnames>>, such as github.com. To clone private repositories see <<clone-private-repo,add an SSH key>>.
To delete a repository, go to the **Repositories** tab, find the name of the repo, and click *Delete*.
[float]
[[clone-private-repo]]
==== Clone private repo with an SSH key
Clones of private repos require an SSH key for authentication. The username associated with your host must have write access to the repository you want to clone.
The following section provides links for generating your ssh key through GitHub. If you already have an SSH key added through your host, skip to step 4.
1. https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key[Generate an ssh key].
2. https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent[Add the ssh key to your ssh-agent.]
3. https://help.github.com/en/articles/adding-a-new-ssh-key-to-your-github-account[Add the ssh key to your host].
4. Copy the ssh key into `data/code/credentials/` under the {kib} folder.
You can now copy private Git repositories into Code.
To delete a repository, find the go to the **Repositories** tab, find the name of the repo and click *Delete*.
[float]
[[reindex-a-repo]]
==== Reindex a repo
*Code* automatically reindexes an imported repo at set intervals, but in some cases, you might need to refresh the index manually. For example, you might refresh an index after a new language server installs. Or, you might want to update the index to the HEAD revision immediately. Click *Reindex* to initiate a reindex.
[float]
[[clone-url-management]]
==== Clone URL management
For security reasons, *Code* only allows the following hostnames in the git clone URL by default:
- `github.com`
- `gitlab.com`
- `bitbucket.org`
- `gitbox.apache.org`
- `eclipse.org`
You can add your own hostname (for example, acme.com) to the whitelist by adding the following line to your `config/kibana.yaml` file:
[source,yaml]
----
xpack.code.security.gitHostWhitelist: [ "github.com", "gitlab.com", "bitbucket.org", "gitbox.apache.org", "eclipse.org", "acme.com" ]
----
Set `xpack.code.security.gitHostWhitelist` to [] (empty list) allow any hostname.
You can also control the protocol to use for the clone address. By default, the following protocols are supported: `[ 'https', 'git', 'ssh' ]`. You can change this value by adding the following line to your `config/kibana.yaml` file. In this example, the user only wants to support the `https` protocol:
[source,yaml]
----
xpack.code.security.gitProtocolWhitelist: [ "https" ]
----
[float]
[[repo-limitations]]
==== Limitations
Consider the following limitations before cloning repositories:
- Only Git is supported. Other version control systems, such as Mercurial and SVN, are not supported.
- Your disk might not have enough space to clone repositories due to {kib} watermark settings. To update your watermark settings, contact your system administrator and request additional disk space.
include::code-install-lang-server.asciidoc[]

View file

@ -1,24 +0,0 @@
[[code-search]]
== Search
[float]
==== Typeahead search
The search bar is designed to help you find what you're looking for as quickly as possible. It shows `Symbols`, `Files`, and `Repos` results as you type. Clicking on any result takes you to the definition. You can use the search type dropdown to show all types of results or limit it to a specific search type.
[role="screenshot"]
image::images/code-quick-search.png[]
[float]
==== Full-text search
If the quick search results dont contain what you are looking for, you can press Enter to conduct a full-text search.
[role="screenshot"]
image::images/code-full-text-search.png[]
You can further refine the results by using the repo and language filters on the left.
[float]
==== Search filter
You can also use the Search Filters to limit the search scope to certain repos before issuing a query. To search across all repos, remove any applied repo filters. By default, search results are limited to the repo you're currently viewing.
[role="screenshot"]
image::images/code-search-filter.png[]
include::code-multiple-kibana-instances-config.asciidoc[]

View file

@ -1,28 +0,0 @@
[[code-semantic-nav]]
== Semantic code navigation
You can navigate a file with semantic code navigation features if:
- *Code* supports the file's <<code-install-lang-server, language>>
- You have installed the corresponding <<code-install-lang-server, language server>>
[float]
==== Goto definition and find reference
Hovering your cursor over a symbol in a file opens information about the symbol, including its qualified name and documentation, when available. You can perform two actions:
* *Goto Definition* navigates to the symbol definition. Definitions defined in a different repo can be found, provided that you have imported the repo with the definition.
* *Find Reference* opens a panel that lists all references to the symbol.
[role="screenshot"]
image::images/code-semantic-nav.png[]
[float]
==== View symbol table
From the *Structure* tab, you can open a symbol table that details the structure of the current class. Clicking on a member function or variable jumps to its definition.
[role="screenshot"]
image::images/code-symbol-table.png[]
include::code-search.asciidoc[]

View file

@ -1,21 +0,0 @@
[[code]]
= Code
[partintro]
--
beta[]
Interaction with source code is pervasive and essential for any technology company. Speed of innovation is limited by how easy it is to search, navigate, and gain insight into your source code.
Elastic *Code* provides an easy-to-use code search solution that scales with your organization and empowers your team to understand your codebase faster than ever before.
*Code* offers the following functions:
* Find references and definitions for any object or symbol
* Typeahead search for symbol definition, file, and repo
* Symbol table
* Full-text search with repo and language filters
<<code-import-first-repo, Get Started>> with *Code* by importing your first repo.
--
include::code-import-first-repo.asciidoc[]

View file

@ -13,15 +13,6 @@ To prevent this from being an issue the ui module provides "autoloading"
modules. The sole purpose of these modules is to extend the environment with
certain components. Here is a breakdown of those modules:
- *`import 'ui/autoload/styles'`*
Imports all styles at the root of `src/legacy/ui/public/styles`
- *`import 'ui/autoload/directives'`*
Imports all directives in `src/legacy/ui/public/directives`
- *`import 'ui/autoload/filters'`*
Imports all filters in `src/legacy/ui/public/filters`
- *`import 'ui/autoload/modules'`*
Imports angular and several ui services and "components" which Kibana
depends on without importing. The full list of imports is hard coded in the

View file

@ -0,0 +1,34 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md) &gt; [change](./kibana-plugin-public.chromedoctitle.change.md)
## ChromeDocTitle.change() method
Changes the current document title.
<b>Signature:</b>
```typescript
change(newTitle: string | string[]): void;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| newTitle | <code>string &#124; string[]</code> | |
<b>Returns:</b>
`void`
## Example
How to change the title of the document
```ts
chrome.docTitle.change('My application title')
chrome.docTitle.change(['My application', 'My section'])
```

View file

@ -0,0 +1,39 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md)
## ChromeDocTitle interface
APIs for accessing and updating the document title.
<b>Signature:</b>
```typescript
export interface ChromeDocTitle
```
## Methods
| Method | Description |
| --- | --- |
| [change(newTitle)](./kibana-plugin-public.chromedoctitle.change.md) | Changes the current document title. |
| [reset()](./kibana-plugin-public.chromedoctitle.reset.md) | Resets the document title to it's initial value. (meaning the one present in the title meta at application load.) |
## Example 1
How to change the title of the document
```ts
chrome.docTitle.change('My application')
```
## Example 2
How to reset the title of the document to it's initial value
```ts
chrome.docTitle.reset()
```

View file

@ -0,0 +1,17 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md) &gt; [reset](./kibana-plugin-public.chromedoctitle.reset.md)
## ChromeDocTitle.reset() method
Resets the document title to it's initial value. (meaning the one present in the title meta at application load.)
<b>Signature:</b>
```typescript
reset(): void;
```
<b>Returns:</b>
`void`

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [ChromeStart](./kibana-plugin-public.chromestart.md) &gt; [docTitle](./kibana-plugin-public.chromestart.doctitle.md)
## ChromeStart.docTitle property
APIs for accessing and updating the document title.
<b>Signature:</b>
```typescript
docTitle: ChromeDocTitle;
```

View file

@ -16,6 +16,7 @@ export interface ChromeStart
| Property | Type | Description |
| --- | --- | --- |
| [docTitle](./kibana-plugin-public.chromestart.doctitle.md) | <code>ChromeDocTitle</code> | APIs for accessing and updating the document title. |
| [navControls](./kibana-plugin-public.chromestart.navcontrols.md) | <code>ChromeNavControls</code> | [APIs](./kibana-plugin-public.chromenavcontrols.md) for registering new controls to be displayed in the navigation bar. |
| [navLinks](./kibana-plugin-public.chromestart.navlinks.md) | <code>ChromeNavLinks</code> | [APIs](./kibana-plugin-public.chromenavlinks.md) for manipulating nav links. |
| [recentlyAccessed](./kibana-plugin-public.chromestart.recentlyaccessed.md) | <code>ChromeRecentlyAccessed</code> | [APIs](./kibana-plugin-public.chromerecentlyaccessed.md) for recently accessed history. |

View file

@ -1,11 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) &gt; [body](./kibana-plugin-public.httperrorresponse.body.md)
## HttpErrorResponse.body property
<b>Signature:</b>
```typescript
body?: HttpBody;
```

View file

@ -8,15 +8,12 @@
<b>Signature:</b>
```typescript
export interface HttpErrorResponse
export interface HttpErrorResponse extends HttpResponse
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-public.httperrorresponse.body.md) | <code>HttpBody</code> | |
| [error](./kibana-plugin-public.httperrorresponse.error.md) | <code>Error &#124; IHttpFetchError</code> | |
| [request](./kibana-plugin-public.httperrorresponse.request.md) | <code>Request</code> | |
| [response](./kibana-plugin-public.httperrorresponse.response.md) | <code>Response</code> | |

View file

@ -1,11 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) &gt; [request](./kibana-plugin-public.httperrorresponse.request.md)
## HttpErrorResponse.request property
<b>Signature:</b>
```typescript
request?: Request;
```

View file

@ -1,11 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) &gt; [response](./kibana-plugin-public.httperrorresponse.response.md)
## HttpErrorResponse.response property
<b>Signature:</b>
```typescript
response?: Response;
```

View file

@ -9,7 +9,7 @@ Define an interceptor to be executed after a response is received.
<b>Signature:</b>
```typescript
response?(httpResponse: HttpResponse, controller: IHttpInterceptController): Promise<HttpResponse> | HttpResponse | void;
response?(httpResponse: HttpResponse, controller: IHttpInterceptController): Promise<InterceptedHttpResponse> | InterceptedHttpResponse | void;
```
## Parameters
@ -21,5 +21,5 @@ response?(httpResponse: HttpResponse, controller: IHttpInterceptController): Pro
<b>Returns:</b>
`Promise<HttpResponse> | HttpResponse | void`
`Promise<InterceptedHttpResponse> | InterceptedHttpResponse | void`

View file

@ -9,7 +9,7 @@ Define an interceptor to be executed if a response interceptor throws an error o
<b>Signature:</b>
```typescript
responseError?(httpErrorResponse: HttpErrorResponse, controller: IHttpInterceptController): Promise<HttpResponse> | HttpResponse | void;
responseError?(httpErrorResponse: HttpErrorResponse, controller: IHttpInterceptController): Promise<InterceptedHttpResponse> | InterceptedHttpResponse | void;
```
## Parameters
@ -21,5 +21,5 @@ responseError?(httpErrorResponse: HttpErrorResponse, controller: IHttpInterceptC
<b>Returns:</b>
`Promise<HttpResponse> | HttpResponse | void`
`Promise<InterceptedHttpResponse> | InterceptedHttpResponse | void`

View file

@ -1,11 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md) &gt; [body](./kibana-plugin-public.httpresponse.body.md)
## HttpResponse.body property
<b>Signature:</b>
```typescript
body?: HttpBody;
```

View file

@ -8,14 +8,12 @@
<b>Signature:</b>
```typescript
export interface HttpResponse
export interface HttpResponse extends InterceptedHttpResponse
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-public.httpresponse.body.md) | <code>HttpBody</code> | |
| [request](./kibana-plugin-public.httpresponse.request.md) | <code>Request</code> | |
| [response](./kibana-plugin-public.httpresponse.response.md) | <code>Response</code> | |
| [request](./kibana-plugin-public.httpresponse.request.md) | <code>Readonly&lt;Request&gt;</code> | |

View file

@ -7,5 +7,5 @@
<b>Signature:</b>
```typescript
request?: Request;
request: Readonly<Request>;
```

View file

@ -1,11 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md) &gt; [response](./kibana-plugin-public.httpresponse.response.md)
## HttpResponse.response property
<b>Signature:</b>
```typescript
response?: Response;
```

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpServiceBase](./kibana-plugin-public.httpservicebase.md) &gt; [anonymousPaths](./kibana-plugin-public.httpservicebase.anonymouspaths.md)
## HttpServiceBase.anonymousPaths property
APIs for denoting certain paths for not requiring authentication
<b>Signature:</b>
```typescript
anonymousPaths: IAnonymousPaths;
```

View file

@ -15,6 +15,7 @@ export interface HttpServiceBase
| Property | Type | Description |
| --- | --- | --- |
| [anonymousPaths](./kibana-plugin-public.httpservicebase.anonymouspaths.md) | <code>IAnonymousPaths</code> | APIs for denoting certain paths for not requiring authentication |
| [basePath](./kibana-plugin-public.httpservicebase.basepath.md) | <code>IBasePath</code> | APIs for manipulating the basePath on URL segments. |
| [delete](./kibana-plugin-public.httpservicebase.delete.md) | <code>HttpHandler</code> | Makes an HTTP request with the DELETE method. See [HttpHandler](./kibana-plugin-public.httphandler.md) for options. |
| [fetch](./kibana-plugin-public.httpservicebase.fetch.md) | <code>HttpHandler</code> | Makes an HTTP request. Defaults to a GET request unless overriden. See [HttpHandler](./kibana-plugin-public.httphandler.md) for options. |

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md) &gt; [isAnonymous](./kibana-plugin-public.ianonymouspaths.isanonymous.md)
## IAnonymousPaths.isAnonymous() method
Determines whether the provided path doesn't require authentication. `path` should include the current basePath.
<b>Signature:</b>
```typescript
isAnonymous(path: string): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| path | <code>string</code> | |
<b>Returns:</b>
`boolean`

View file

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md)
## IAnonymousPaths interface
APIs for denoting paths as not requiring authentication
<b>Signature:</b>
```typescript
export interface IAnonymousPaths
```
## Methods
| Method | Description |
| --- | --- |
| [isAnonymous(path)](./kibana-plugin-public.ianonymouspaths.isanonymous.md) | Determines whether the provided path doesn't require authentication. <code>path</code> should include the current basePath. |
| [register(path)](./kibana-plugin-public.ianonymouspaths.register.md) | Register <code>path</code> as not requiring authentication. <code>path</code> should not include the current basePath. |

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md) &gt; [register](./kibana-plugin-public.ianonymouspaths.register.md)
## IAnonymousPaths.register() method
Register `path` as not requiring authentication. `path` should not include the current basePath.
<b>Signature:</b>
```typescript
register(path: string): void;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| path | <code>string</code> | |
<b>Returns:</b>
`void`

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md) &gt; [body](./kibana-plugin-public.interceptedhttpresponse.body.md)
## InterceptedHttpResponse.body property
<b>Signature:</b>
```typescript
body?: HttpBody;
```

View file

@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md)
## InterceptedHttpResponse interface
<b>Signature:</b>
```typescript
export interface InterceptedHttpResponse
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-public.interceptedhttpresponse.body.md) | <code>HttpBody</code> | |
| [response](./kibana-plugin-public.interceptedhttpresponse.response.md) | <code>Response</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md) &gt; [response](./kibana-plugin-public.interceptedhttpresponse.response.md)
## InterceptedHttpResponse.response property
<b>Signature:</b>
```typescript
response?: Response;
```

View file

@ -32,6 +32,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [Capabilities](./kibana-plugin-public.capabilities.md) | The read-only set of capabilities available for the current UI session. Capabilities are simple key-value pairs of (string, boolean), where the string denotes the capability ID, and the boolean is a flag indicating if the capability is enabled or disabled. |
| [ChromeBadge](./kibana-plugin-public.chromebadge.md) | |
| [ChromeBrand](./kibana-plugin-public.chromebrand.md) | |
| [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md) | APIs for accessing and updating the document title. |
| [ChromeNavControl](./kibana-plugin-public.chromenavcontrol.md) | |
| [ChromeNavControls](./kibana-plugin-public.chromenavcontrols.md) | [APIs](./kibana-plugin-public.chromenavcontrols.md) for registering new controls to be displayed in the navigation bar. |
| [ChromeNavLink](./kibana-plugin-public.chromenavlink.md) | |
@ -57,10 +58,12 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [HttpResponse](./kibana-plugin-public.httpresponse.md) | |
| [HttpServiceBase](./kibana-plugin-public.httpservicebase.md) | |
| [I18nStart](./kibana-plugin-public.i18nstart.md) | I18nStart.Context is required by any localizable React component from @<!-- -->kbn/i18n and @<!-- -->elastic/eui packages and is supposed to be used as the topmost component for any i18n-compatible React tree. |
| [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md) | APIs for denoting paths as not requiring authentication |
| [IBasePath](./kibana-plugin-public.ibasepath.md) | APIs for manipulating the basePath on URL segments. |
| [IContextContainer](./kibana-plugin-public.icontextcontainer.md) | An object that handles registration of context providers and configuring handlers with context. |
| [IHttpFetchError](./kibana-plugin-public.ihttpfetcherror.md) | |
| [IHttpInterceptController](./kibana-plugin-public.ihttpinterceptcontroller.md) | Used to halt a request Promise chain in a [HttpInterceptor](./kibana-plugin-public.httpinterceptor.md)<!-- -->. |
| [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md) | |
| [LegacyCoreSetup](./kibana-plugin-public.legacycoresetup.md) | Setup interface exposed to the legacy platform via the <code>ui/new_platform</code> module. |
| [LegacyCoreStart](./kibana-plugin-public.legacycorestart.md) | Start interface exposed to the legacy platform via the <code>ui/new_platform</code> module. |
| [LegacyNavLink](./kibana-plugin-public.legacynavlink.md) | |
@ -118,5 +121,5 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [ToastInputFields](./kibana-plugin-public.toastinputfields.md) | Allowed fields for [ToastInput](./kibana-plugin-public.toastinput.md)<!-- -->. |
| [ToastsSetup](./kibana-plugin-public.toastssetup.md) | [IToasts](./kibana-plugin-public.itoasts.md) |
| [ToastsStart](./kibana-plugin-public.toastsstart.md) | [IToasts](./kibana-plugin-public.itoasts.md) |
| [UiSettingsClientContract](./kibana-plugin-public.uisettingsclientcontract.md) | [UiSettingsClient](./kibana-plugin-public.uisettingsclient.md) |
| [UiSettingsClientContract](./kibana-plugin-public.uisettingsclientcontract.md) | Client-side client that provides access to the advanced settings stored in elasticsearch. The settings provide control over the behavior of the Kibana application. For example, a user can specify how to display numeric or date fields. Users can adjust the settings via Management UI. [UiSettingsClient](./kibana-plugin-public.uisettingsclient.md) |

View file

@ -9,9 +9,9 @@ Gets the metadata about all uiSettings, including the type, default value, and u
<b>Signature:</b>
```typescript
getAll(): UiSettingsState;
getAll(): Record<string, UiSettingsParams & UserProvidedValues<any>>;
```
<b>Returns:</b>
`UiSettingsState`
`Record<string, UiSettingsParams & UserProvidedValues<any>>`

View file

@ -4,7 +4,7 @@
## UiSettingsClientContract type
[UiSettingsClient](./kibana-plugin-public.uisettingsclient.md)
Client-side client that provides access to the advanced settings stored in elasticsearch. The settings provide control over the behavior of the Kibana application. For example, a user can specify how to display numeric or date fields. Users can adjust the settings via Management UI. [UiSettingsClient](./kibana-plugin-public.uisettingsclient.md)
<b>Signature:</b>

View file

@ -19,4 +19,5 @@ export interface CoreSetup
| [context](./kibana-plugin-server.coresetup.context.md) | <code>ContextSetup</code> | [ContextSetup](./kibana-plugin-server.contextsetup.md) |
| [elasticsearch](./kibana-plugin-server.coresetup.elasticsearch.md) | <code>ElasticsearchServiceSetup</code> | [ElasticsearchServiceSetup](./kibana-plugin-server.elasticsearchservicesetup.md) |
| [http](./kibana-plugin-server.coresetup.http.md) | <code>HttpServiceSetup</code> | [HttpServiceSetup](./kibana-plugin-server.httpservicesetup.md) |
| [uiSettings](./kibana-plugin-server.coresetup.uisettings.md) | <code>UiSettingsServiceSetup</code> | [UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md) |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [CoreSetup](./kibana-plugin-server.coresetup.md) &gt; [uiSettings](./kibana-plugin-server.coresetup.uisettings.md)
## CoreSetup.uiSettings property
[UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md)
<b>Signature:</b>
```typescript
uiSettings: UiSettingsServiceSetup;
```

View file

@ -1,13 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) &gt; [getDefaults](./kibana-plugin-server.iuisettingsclient.getdefaults.md)
## IUiSettingsClient.getDefaults property
Returns uiSettings default values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md)
<b>Signature:</b>
```typescript
getDefaults: () => Record<string, UiSettingsParams>;
```

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) &gt; [getRegistered](./kibana-plugin-server.iuisettingsclient.getregistered.md)
## IUiSettingsClient.getRegistered property
Returns registered uiSettings values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md)
<b>Signature:</b>
```typescript
getRegistered: () => Readonly<Record<string, UiSettingsParams>>;
```

View file

@ -9,8 +9,5 @@ Retrieves a set of all uiSettings values set by the user.
<b>Signature:</b>
```typescript
getUserProvided: <T extends SavedObjectAttribute = any>() => Promise<Record<string, {
userValue?: T;
isOverridden?: boolean;
}>>;
getUserProvided: <T extends SavedObjectAttribute = any>() => Promise<Record<string, UserProvidedValues<T>>>;
```

View file

@ -4,7 +4,7 @@
## IUiSettingsClient interface
Service that provides access to the UiSettings stored in elasticsearch.
Server-side client that provides access to the advanced settings stored in elasticsearch. The settings provide control over the behavior of the Kibana application. For example, a user can specify how to display numeric or date fields. Users can adjust the settings via Management UI.
<b>Signature:</b>
@ -18,8 +18,8 @@ export interface IUiSettingsClient
| --- | --- | --- |
| [get](./kibana-plugin-server.iuisettingsclient.get.md) | <code>&lt;T extends SavedObjectAttribute = any&gt;(key: string) =&gt; Promise&lt;T&gt;</code> | Retrieves uiSettings values set by the user with fallbacks to default values if not specified. |
| [getAll](./kibana-plugin-server.iuisettingsclient.getall.md) | <code>&lt;T extends SavedObjectAttribute = any&gt;() =&gt; Promise&lt;Record&lt;string, T&gt;&gt;</code> | Retrieves a set of all uiSettings values set by the user with fallbacks to default values if not specified. |
| [getDefaults](./kibana-plugin-server.iuisettingsclient.getdefaults.md) | <code>() =&gt; Record&lt;string, UiSettingsParams&gt;</code> | Returns uiSettings default values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md) |
| [getUserProvided](./kibana-plugin-server.iuisettingsclient.getuserprovided.md) | <code>&lt;T extends SavedObjectAttribute = any&gt;() =&gt; Promise&lt;Record&lt;string, {</code><br/><code> userValue?: T;</code><br/><code> isOverridden?: boolean;</code><br/><code> }&gt;&gt;</code> | Retrieves a set of all uiSettings values set by the user. |
| [getRegistered](./kibana-plugin-server.iuisettingsclient.getregistered.md) | <code>() =&gt; Readonly&lt;Record&lt;string, UiSettingsParams&gt;&gt;</code> | Returns registered uiSettings values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md) |
| [getUserProvided](./kibana-plugin-server.iuisettingsclient.getuserprovided.md) | <code>&lt;T extends SavedObjectAttribute = any&gt;() =&gt; Promise&lt;Record&lt;string, UserProvidedValues&lt;T&gt;&gt;&gt;</code> | Retrieves a set of all uiSettings values set by the user. |
| [isOverridden](./kibana-plugin-server.iuisettingsclient.isoverridden.md) | <code>(key: string) =&gt; boolean</code> | Shows whether the uiSettings value set by the user. |
| [remove](./kibana-plugin-server.iuisettingsclient.remove.md) | <code>(key: string) =&gt; Promise&lt;void&gt;</code> | Removes uiSettings value by key. |
| [removeMany](./kibana-plugin-server.iuisettingsclient.removemany.md) | <code>(keys: string[]) =&gt; Promise&lt;void&gt;</code> | Removes multiple uiSettings values by keys. |

View file

@ -63,7 +63,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [IKibanaSocket](./kibana-plugin-server.ikibanasocket.md) | A tiny abstraction for TCP socket. |
| [IndexSettingsDeprecationInfo](./kibana-plugin-server.indexsettingsdeprecationinfo.md) | |
| [IRouter](./kibana-plugin-server.irouter.md) | Registers route handlers for specified resource path and method. See [RouteConfig](./kibana-plugin-server.routeconfig.md) and [RequestHandler](./kibana-plugin-server.requesthandler.md) for more information about arguments to route registrations. |
| [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) | Service that provides access to the UiSettings stored in elasticsearch. |
| [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) | Server-side client that provides access to the advanced settings stored in elasticsearch. The settings provide control over the behavior of the Kibana application. For example, a user can specify how to display numeric or date fields. Users can adjust the settings via Management UI. |
| [KibanaRequestRoute](./kibana-plugin-server.kibanarequestroute.md) | Request specific route information exposed to a handler. |
| [LegacyRequest](./kibana-plugin-server.legacyrequest.md) | |
| [LegacyServiceSetupDeps](./kibana-plugin-server.legacyservicesetupdeps.md) | |
@ -90,10 +90,12 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [SavedObjectsBulkGetObject](./kibana-plugin-server.savedobjectsbulkgetobject.md) | |
| [SavedObjectsBulkResponse](./kibana-plugin-server.savedobjectsbulkresponse.md) | |
| [SavedObjectsBulkUpdateObject](./kibana-plugin-server.savedobjectsbulkupdateobject.md) | |
| [SavedObjectsBulkUpdateOptions](./kibana-plugin-server.savedobjectsbulkupdateoptions.md) | |
| [SavedObjectsBulkUpdateResponse](./kibana-plugin-server.savedobjectsbulkupdateresponse.md) | |
| [SavedObjectsClientProviderOptions](./kibana-plugin-server.savedobjectsclientprovideroptions.md) | Options to control the creation of the Saved Objects Client. |
| [SavedObjectsClientWrapperOptions](./kibana-plugin-server.savedobjectsclientwrapperoptions.md) | Options passed to each SavedObjectsClientWrapperFactory to aid in creating the wrapper instance. |
| [SavedObjectsCreateOptions](./kibana-plugin-server.savedobjectscreateoptions.md) | |
| [SavedObjectsDeleteOptions](./kibana-plugin-server.savedobjectsdeleteoptions.md) | |
| [SavedObjectsExportOptions](./kibana-plugin-server.savedobjectsexportoptions.md) | Options controlling the export operation. |
| [SavedObjectsExportResultDetails](./kibana-plugin-server.savedobjectsexportresultdetails.md) | Structure of the export result details entry |
| [SavedObjectsFindOptions](./kibana-plugin-server.savedobjectsfindoptions.md) | |
@ -116,6 +118,8 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [SessionStorageCookieOptions](./kibana-plugin-server.sessionstoragecookieoptions.md) | Configuration used to create HTTP session storage based on top of cookie mechanism. |
| [SessionStorageFactory](./kibana-plugin-server.sessionstoragefactory.md) | SessionStorage factory to bind one to an incoming request |
| [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md) | UiSettings parameters defined by the plugins. |
| [UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md) | |
| [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md) | Describes the values explicitly set by user. |
## Variables
@ -149,6 +153,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [LifecycleResponseFactory](./kibana-plugin-server.lifecycleresponsefactory.md) | Creates an object containing redirection or error response with error details, HTTP headers, and other data transmitted to the client. |
| [MIGRATION\_ASSISTANCE\_INDEX\_ACTION](./kibana-plugin-server.migration_assistance_index_action.md) | |
| [MIGRATION\_DEPRECATION\_LEVEL](./kibana-plugin-server.migration_deprecation_level.md) | |
| [MutatingOperationRefreshSetting](./kibana-plugin-server.mutatingoperationrefreshsetting.md) | Elasticsearch Refresh setting for mutating operation |
| [OnPostAuthHandler](./kibana-plugin-server.onpostauthhandler.md) | See [OnPostAuthToolkit](./kibana-plugin-server.onpostauthtoolkit.md)<!-- -->. |
| [OnPreAuthHandler](./kibana-plugin-server.onpreauthhandler.md) | See [OnPreAuthToolkit](./kibana-plugin-server.onpreauthtoolkit.md)<!-- -->. |
| [PluginInitializer](./kibana-plugin-server.plugininitializer.md) | The <code>plugin</code> export at the root of a plugin's <code>server</code> directory should conform to this interface. |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [MutatingOperationRefreshSetting](./kibana-plugin-server.mutatingoperationrefreshsetting.md)
## MutatingOperationRefreshSetting type
Elasticsearch Refresh setting for mutating operation
<b>Signature:</b>
```typescript
export declare type MutatingOperationRefreshSetting = boolean | 'wait_for';
```

View file

@ -15,5 +15,8 @@ core: {
dataClient: IScopedClusterClient;
adminClient: IScopedClusterClient;
};
uiSettings: {
client: IUiSettingsClient;
};
};
```

View file

@ -18,5 +18,5 @@ export interface RequestHandlerContext
| Property | Type | Description |
| --- | --- | --- |
| [core](./kibana-plugin-server.requesthandlercontext.core.md) | <code>{</code><br/><code> savedObjects: {</code><br/><code> client: SavedObjectsClientContract;</code><br/><code> };</code><br/><code> elasticsearch: {</code><br/><code> dataClient: IScopedClusterClient;</code><br/><code> adminClient: IScopedClusterClient;</code><br/><code> };</code><br/><code> }</code> | |
| [core](./kibana-plugin-server.requesthandlercontext.core.md) | <code>{</code><br/><code> savedObjects: {</code><br/><code> client: SavedObjectsClientContract;</code><br/><code> };</code><br/><code> elasticsearch: {</code><br/><code> dataClient: IScopedClusterClient;</code><br/><code> adminClient: IScopedClusterClient;</code><br/><code> };</code><br/><code> uiSettings: {</code><br/><code> client: IUiSettingsClient;</code><br/><code> };</code><br/><code> }</code> | |

View file

@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsBulkUpdateOptions](./kibana-plugin-server.savedobjectsbulkupdateoptions.md)
## SavedObjectsBulkUpdateOptions interface
<b>Signature:</b>
```typescript
export interface SavedObjectsBulkUpdateOptions extends SavedObjectsBaseOptions
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [refresh](./kibana-plugin-server.savedobjectsbulkupdateoptions.refresh.md) | <code>MutatingOperationRefreshSetting</code> | The Elasticsearch Refresh setting for this operation |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsBulkUpdateOptions](./kibana-plugin-server.savedobjectsbulkupdateoptions.md) &gt; [refresh](./kibana-plugin-server.savedobjectsbulkupdateoptions.refresh.md)
## SavedObjectsBulkUpdateOptions.refresh property
The Elasticsearch Refresh setting for this operation
<b>Signature:</b>
```typescript
refresh?: MutatingOperationRefreshSetting;
```

View file

@ -9,7 +9,7 @@ Bulk Updates multiple SavedObject at once
<b>Signature:</b>
```typescript
bulkUpdate<T extends SavedObjectAttributes = any>(objects: Array<SavedObjectsBulkUpdateObject<T>>, options?: SavedObjectsBaseOptions): Promise<SavedObjectsBulkUpdateResponse<T>>;
bulkUpdate<T extends SavedObjectAttributes = any>(objects: Array<SavedObjectsBulkUpdateObject<T>>, options?: SavedObjectsBulkUpdateOptions): Promise<SavedObjectsBulkUpdateResponse<T>>;
```
## Parameters
@ -17,7 +17,7 @@ bulkUpdate<T extends SavedObjectAttributes = any>(objects: Array<SavedObjectsBul
| Parameter | Type | Description |
| --- | --- | --- |
| objects | <code>Array&lt;SavedObjectsBulkUpdateObject&lt;T&gt;&gt;</code> | |
| options | <code>SavedObjectsBaseOptions</code> | |
| options | <code>SavedObjectsBulkUpdateOptions</code> | |
<b>Returns:</b>

View file

@ -9,7 +9,7 @@ Deletes a SavedObject
<b>Signature:</b>
```typescript
delete(type: string, id: string, options?: SavedObjectsBaseOptions): Promise<{}>;
delete(type: string, id: string, options?: SavedObjectsDeleteOptions): Promise<{}>;
```
## Parameters
@ -18,7 +18,7 @@ delete(type: string, id: string, options?: SavedObjectsBaseOptions): Promise<{}>
| --- | --- | --- |
| type | <code>string</code> | |
| id | <code>string</code> | |
| options | <code>SavedObjectsBaseOptions</code> | |
| options | <code>SavedObjectsDeleteOptions</code> | |
<b>Returns:</b>

View file

@ -19,4 +19,5 @@ export interface SavedObjectsCreateOptions extends SavedObjectsBaseOptions
| [migrationVersion](./kibana-plugin-server.savedobjectscreateoptions.migrationversion.md) | <code>SavedObjectsMigrationVersion</code> | Information about the migrations that have been applied to this SavedObject. When Kibana starts up, KibanaMigrator detects outdated documents and migrates them based on this value. For each migration that has been applied, the plugin's name is used as a key and the latest migration version as the value. |
| [overwrite](./kibana-plugin-server.savedobjectscreateoptions.overwrite.md) | <code>boolean</code> | Overwrite existing documents (defaults to false) |
| [references](./kibana-plugin-server.savedobjectscreateoptions.references.md) | <code>SavedObjectReference[]</code> | |
| [refresh](./kibana-plugin-server.savedobjectscreateoptions.refresh.md) | <code>MutatingOperationRefreshSetting</code> | The Elasticsearch Refresh setting for this operation |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsCreateOptions](./kibana-plugin-server.savedobjectscreateoptions.md) &gt; [refresh](./kibana-plugin-server.savedobjectscreateoptions.refresh.md)
## SavedObjectsCreateOptions.refresh property
The Elasticsearch Refresh setting for this operation
<b>Signature:</b>
```typescript
refresh?: MutatingOperationRefreshSetting;
```

View file

@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsDeleteOptions](./kibana-plugin-server.savedobjectsdeleteoptions.md)
## SavedObjectsDeleteOptions interface
<b>Signature:</b>
```typescript
export interface SavedObjectsDeleteOptions extends SavedObjectsBaseOptions
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [refresh](./kibana-plugin-server.savedobjectsdeleteoptions.refresh.md) | <code>MutatingOperationRefreshSetting</code> | The Elasticsearch Refresh setting for this operation |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsDeleteOptions](./kibana-plugin-server.savedobjectsdeleteoptions.md) &gt; [refresh](./kibana-plugin-server.savedobjectsdeleteoptions.refresh.md)
## SavedObjectsDeleteOptions.refresh property
The Elasticsearch Refresh setting for this operation
<b>Signature:</b>
```typescript
refresh?: MutatingOperationRefreshSetting;
```

View file

@ -16,5 +16,6 @@ export interface SavedObjectsUpdateOptions extends SavedObjectsBaseOptions
| Property | Type | Description |
| --- | --- | --- |
| [references](./kibana-plugin-server.savedobjectsupdateoptions.references.md) | <code>SavedObjectReference[]</code> | A reference to another saved object. |
| [refresh](./kibana-plugin-server.savedobjectsupdateoptions.refresh.md) | <code>MutatingOperationRefreshSetting</code> | The Elasticsearch Refresh setting for this operation |
| [version](./kibana-plugin-server.savedobjectsupdateoptions.version.md) | <code>string</code> | An opaque version number which changes on each successful write operation. Can be used for implementing optimistic concurrency control. |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsUpdateOptions](./kibana-plugin-server.savedobjectsupdateoptions.md) &gt; [refresh](./kibana-plugin-server.savedobjectsupdateoptions.refresh.md)
## SavedObjectsUpdateOptions.refresh property
The Elasticsearch Refresh setting for this operation
<b>Signature:</b>
```typescript
refresh?: MutatingOperationRefreshSetting;
```

View file

@ -9,5 +9,5 @@ used to group the configured setting in the UI
<b>Signature:</b>
```typescript
category: string[];
category?: string[];
```

View file

@ -9,5 +9,5 @@ description provided to a user in UI
<b>Signature:</b>
```typescript
description: string;
description?: string;
```

View file

@ -20,7 +20,7 @@ export interface UiSettingsParams
| [description](./kibana-plugin-server.uisettingsparams.description.md) | <code>string</code> | description provided to a user in UI |
| [name](./kibana-plugin-server.uisettingsparams.name.md) | <code>string</code> | title in the UI |
| [optionLabels](./kibana-plugin-server.uisettingsparams.optionlabels.md) | <code>Record&lt;string, string&gt;</code> | text labels for 'select' type UI element |
| [options](./kibana-plugin-server.uisettingsparams.options.md) | <code>string[]</code> | a range of valid values |
| [options](./kibana-plugin-server.uisettingsparams.options.md) | <code>string[]</code> | array of permitted values for this setting |
| [readonly](./kibana-plugin-server.uisettingsparams.readonly.md) | <code>boolean</code> | a flag indicating that value cannot be changed |
| [requiresPageReload](./kibana-plugin-server.uisettingsparams.requirespagereload.md) | <code>boolean</code> | a flag indicating whether new value applying requires page reloading |
| [type](./kibana-plugin-server.uisettingsparams.type.md) | <code>UiSettingsType</code> | defines a type of UI element [UiSettingsType](./kibana-plugin-server.uisettingstype.md) |

View file

@ -9,5 +9,5 @@ title in the UI
<b>Signature:</b>
```typescript
name: string;
name?: string;
```

View file

@ -4,7 +4,7 @@
## UiSettingsParams.options property
a range of valid values
array of permitted values for this setting
<b>Signature:</b>

View file

@ -9,5 +9,5 @@ default value to fall back to if a user doesn't provide any
<b>Signature:</b>
```typescript
value: SavedObjectAttribute;
value?: SavedObjectAttribute;
```

View file

@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md)
## UiSettingsServiceSetup interface
<b>Signature:</b>
```typescript
export interface UiSettingsServiceSetup
```
## Methods
| Method | Description |
| --- | --- |
| [register(settings)](./kibana-plugin-server.uisettingsservicesetup.register.md) | Sets settings with default values for the uiSettings. |

View file

@ -0,0 +1,28 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md) &gt; [register](./kibana-plugin-server.uisettingsservicesetup.register.md)
## UiSettingsServiceSetup.register() method
Sets settings with default values for the uiSettings.
<b>Signature:</b>
```typescript
register(settings: Record<string, UiSettingsParams>): void;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| settings | <code>Record&lt;string, UiSettingsParams&gt;</code> | |
<b>Returns:</b>
`void`
## Example
setup(core: CoreSetup)<!-- -->{ core.uiSettings.register(\[{ foo: { name: i18n.translate('my foo settings'), value: true, description: 'add some awesomeness', }<!-- -->, }<!-- -->\]); }

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md) &gt; [isOverridden](./kibana-plugin-server.userprovidedvalues.isoverridden.md)
## UserProvidedValues.isOverridden property
<b>Signature:</b>
```typescript
isOverridden?: boolean;
```

View file

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md)
## UserProvidedValues interface
Describes the values explicitly set by user.
<b>Signature:</b>
```typescript
export interface UserProvidedValues<T extends SavedObjectAttribute = any>
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [isOverridden](./kibana-plugin-server.userprovidedvalues.isoverridden.md) | <code>boolean</code> | |
| [userValue](./kibana-plugin-server.userprovidedvalues.uservalue.md) | <code>T</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md) &gt; [userValue](./kibana-plugin-server.userprovidedvalues.uservalue.md)
## UserProvidedValues.userValue property
<b>Signature:</b>
```typescript
userValue?: T;
```

View file

@ -183,7 +183,7 @@ At this point, you're ready to use the Elasticsearch {ref}/docs-bulk.html[bulk]
API to load the data sets:
[source,shell]
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/bank/_bulk?pretty' --data-binary @accounts.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/shakespeare/_bulk?pretty' --data-binary @shakespeare.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/_bulk?pretty' --data-binary @logs.jsonl

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 KiB

View file

@ -5,7 +5,7 @@
To get started with the Metrics app in Kibana, you need to start collecting metrics data for your infrastructure.
Kibana provides step-by-step instructions to help you add metrics data.
The {infra-guide}[Infrastructure Monitoring Guide] is a good source for more detailed information and instructions.
The {metrics-guide}[Metrics Monitoring Guide] is a good source for more detailed information and instructions.
[role="screenshot"]
image::infrastructure/images/metrics-add-data.png[Screenshot showing Add metric data to Kibana UI]

Some files were not shown because too many files have changed in this diff Show more