Merge branch 'master' of github.com:elastic/kibana into merge-upstream-master
113
.ci/Jenkinsfile_flaky
Normal 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;
|
||||
}
|
|
@ -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
|
||||
|
|
20
.eslintrc.js
|
@ -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
|
@ -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
|
@ -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/**/*
|
||||
|
|
|
@ -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
|
@ -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
|
||||
"""
|
||||
}
|
||||
|
|
112
NOTICE.txt
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
--------------------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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 column’s 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 don’t 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 aren’t `“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 don’t 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*^<"]
|
||||
|
|
|
@ -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[]
|
|
@ -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[]
|
|
@ -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[]
|
|
@ -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.
|
|
@ -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[]
|
|
@ -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 don’t 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[]
|
|
@ -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[]
|
|
@ -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[]
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md) > [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 | 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'])
|
||||
|
||||
```
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [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()
|
||||
|
||||
```
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [ChromeDocTitle](./kibana-plugin-public.chromedoctitle.md) > [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`
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [ChromeStart](./kibana-plugin-public.chromestart.md) > [docTitle](./kibana-plugin-public.chromestart.doctitle.md)
|
||||
|
||||
## ChromeStart.docTitle property
|
||||
|
||||
APIs for accessing and updating the document title.
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
docTitle: ChromeDocTitle;
|
||||
```
|
|
@ -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. |
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) > [body](./kibana-plugin-public.httperrorresponse.body.md)
|
||||
|
||||
## HttpErrorResponse.body property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
body?: HttpBody;
|
||||
```
|
|
@ -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 | IHttpFetchError</code> | |
|
||||
| [request](./kibana-plugin-public.httperrorresponse.request.md) | <code>Request</code> | |
|
||||
| [response](./kibana-plugin-public.httperrorresponse.response.md) | <code>Response</code> | |
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) > [request](./kibana-plugin-public.httperrorresponse.request.md)
|
||||
|
||||
## HttpErrorResponse.request property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
request?: Request;
|
||||
```
|
|
@ -1,11 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) > [response](./kibana-plugin-public.httperrorresponse.response.md)
|
||||
|
||||
## HttpErrorResponse.response property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
response?: Response;
|
||||
```
|
|
@ -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`
|
||||
|
||||
|
|
|
@ -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`
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpResponse](./kibana-plugin-public.httpresponse.md) > [body](./kibana-plugin-public.httpresponse.body.md)
|
||||
|
||||
## HttpResponse.body property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
body?: HttpBody;
|
||||
```
|
|
@ -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<Request></code> | |
|
||||
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
request?: Request;
|
||||
request: Readonly<Request>;
|
||||
```
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpResponse](./kibana-plugin-public.httpresponse.md) > [response](./kibana-plugin-public.httpresponse.response.md)
|
||||
|
||||
## HttpResponse.response property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
response?: Response;
|
||||
```
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [HttpServiceBase](./kibana-plugin-public.httpservicebase.md) > [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;
|
||||
```
|
|
@ -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. |
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md) > [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`
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [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. |
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [IAnonymousPaths](./kibana-plugin-public.ianonymouspaths.md) > [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`
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md) > [body](./kibana-plugin-public.interceptedhttpresponse.body.md)
|
||||
|
||||
## InterceptedHttpResponse.body property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
body?: HttpBody;
|
||||
```
|
|
@ -0,0 +1,20 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [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> | |
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [InterceptedHttpResponse](./kibana-plugin-public.interceptedhttpresponse.md) > [response](./kibana-plugin-public.interceptedhttpresponse.response.md)
|
||||
|
||||
## InterceptedHttpResponse.response property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
response?: Response;
|
||||
```
|
|
@ -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) |
|
||||
|
||||
|
|
|
@ -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>>`
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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) |
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [CoreSetup](./kibana-plugin-server.coresetup.md) > [uiSettings](./kibana-plugin-server.coresetup.uisettings.md)
|
||||
|
||||
## CoreSetup.uiSettings property
|
||||
|
||||
[UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md)
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
uiSettings: UiSettingsServiceSetup;
|
||||
```
|
|
@ -1,13 +0,0 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) > [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>;
|
||||
```
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [IUiSettingsClient](./kibana-plugin-server.iuisettingsclient.md) > [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>>;
|
||||
```
|
|
@ -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>>>;
|
||||
```
|
||||
|
|
|
@ -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><T extends SavedObjectAttribute = any>(key: string) => Promise<T></code> | Retrieves uiSettings values set by the user with fallbacks to default values if not specified. |
|
||||
| [getAll](./kibana-plugin-server.iuisettingsclient.getall.md) | <code><T extends SavedObjectAttribute = any>() => Promise<Record<string, T>></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>() => Record<string, UiSettingsParams></code> | Returns uiSettings default values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md) |
|
||||
| [getUserProvided](./kibana-plugin-server.iuisettingsclient.getuserprovided.md) | <code><T extends SavedObjectAttribute = any>() => Promise<Record<string, {</code><br/><code> userValue?: T;</code><br/><code> isOverridden?: boolean;</code><br/><code> }>></code> | Retrieves a set of all uiSettings values set by the user. |
|
||||
| [getRegistered](./kibana-plugin-server.iuisettingsclient.getregistered.md) | <code>() => Readonly<Record<string, UiSettingsParams>></code> | Returns registered uiSettings values [UiSettingsParams](./kibana-plugin-server.uisettingsparams.md) |
|
||||
| [getUserProvided](./kibana-plugin-server.iuisettingsclient.getuserprovided.md) | <code><T extends SavedObjectAttribute = any>() => Promise<Record<string, UserProvidedValues<T>>></code> | Retrieves a set of all uiSettings values set by the user. |
|
||||
| [isOverridden](./kibana-plugin-server.iuisettingsclient.isoverridden.md) | <code>(key: string) => boolean</code> | Shows whether the uiSettings value set by the user. |
|
||||
| [remove](./kibana-plugin-server.iuisettingsclient.remove.md) | <code>(key: string) => Promise<void></code> | Removes uiSettings value by key. |
|
||||
| [removeMany](./kibana-plugin-server.iuisettingsclient.removemany.md) | <code>(keys: string[]) => Promise<void></code> | Removes multiple uiSettings values by keys. |
|
||||
|
|
|
@ -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. |
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [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';
|
||||
```
|
|
@ -15,5 +15,8 @@ core: {
|
|||
dataClient: IScopedClusterClient;
|
||||
adminClient: IScopedClusterClient;
|
||||
};
|
||||
uiSettings: {
|
||||
client: IUiSettingsClient;
|
||||
};
|
||||
};
|
||||
```
|
||||
|
|
|
@ -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> | |
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [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 |
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsBulkUpdateOptions](./kibana-plugin-server.savedobjectsbulkupdateoptions.md) > [refresh](./kibana-plugin-server.savedobjectsbulkupdateoptions.refresh.md)
|
||||
|
||||
## SavedObjectsBulkUpdateOptions.refresh property
|
||||
|
||||
The Elasticsearch Refresh setting for this operation
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
refresh?: MutatingOperationRefreshSetting;
|
||||
```
|
|
@ -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<SavedObjectsBulkUpdateObject<T>></code> | |
|
||||
| options | <code>SavedObjectsBaseOptions</code> | |
|
||||
| options | <code>SavedObjectsBulkUpdateOptions</code> | |
|
||||
|
||||
<b>Returns:</b>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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 |
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsCreateOptions](./kibana-plugin-server.savedobjectscreateoptions.md) > [refresh](./kibana-plugin-server.savedobjectscreateoptions.refresh.md)
|
||||
|
||||
## SavedObjectsCreateOptions.refresh property
|
||||
|
||||
The Elasticsearch Refresh setting for this operation
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
refresh?: MutatingOperationRefreshSetting;
|
||||
```
|
|
@ -0,0 +1,19 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [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 |
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsDeleteOptions](./kibana-plugin-server.savedobjectsdeleteoptions.md) > [refresh](./kibana-plugin-server.savedobjectsdeleteoptions.refresh.md)
|
||||
|
||||
## SavedObjectsDeleteOptions.refresh property
|
||||
|
||||
The Elasticsearch Refresh setting for this operation
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
refresh?: MutatingOperationRefreshSetting;
|
||||
```
|
|
@ -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. |
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsUpdateOptions](./kibana-plugin-server.savedobjectsupdateoptions.md) > [refresh](./kibana-plugin-server.savedobjectsupdateoptions.refresh.md)
|
||||
|
||||
## SavedObjectsUpdateOptions.refresh property
|
||||
|
||||
The Elasticsearch Refresh setting for this operation
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
refresh?: MutatingOperationRefreshSetting;
|
||||
```
|
|
@ -9,5 +9,5 @@ used to group the configured setting in the UI
|
|||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
category: string[];
|
||||
category?: string[];
|
||||
```
|
||||
|
|
|
@ -9,5 +9,5 @@ description provided to a user in UI
|
|||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
description: string;
|
||||
description?: string;
|
||||
```
|
||||
|
|
|
@ -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<string, string></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) |
|
||||
|
|
|
@ -9,5 +9,5 @@ title in the UI
|
|||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
name: string;
|
||||
name?: string;
|
||||
```
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## UiSettingsParams.options property
|
||||
|
||||
a range of valid values
|
||||
array of permitted values for this setting
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
|
|
|
@ -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;
|
||||
```
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [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. |
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [UiSettingsServiceSetup](./kibana-plugin-server.uisettingsservicesetup.md) > [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<string, UiSettingsParams></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', }<!-- -->, }<!-- -->\]); }
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md) > [isOverridden](./kibana-plugin-server.userprovidedvalues.isoverridden.md)
|
||||
|
||||
## UserProvidedValues.isOverridden property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
isOverridden?: boolean;
|
||||
```
|
|
@ -0,0 +1,21 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [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> | |
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [UserProvidedValues](./kibana-plugin-server.userprovidedvalues.md) > [userValue](./kibana-plugin-server.userprovidedvalues.uservalue.md)
|
||||
|
||||
## UserProvidedValues.userValue property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
userValue?: T;
|
||||
```
|
|
@ -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
|
||||
|
||||
|
|
Before Width: | Height: | Size: 611 KiB |
Before Width: | Height: | Size: 531 KiB |
Before Width: | Height: | Size: 628 KiB |
Before Width: | Height: | Size: 267 KiB |
Before Width: | Height: | Size: 217 KiB |
Before Width: | Height: | Size: 457 KiB |
Before Width: | Height: | Size: 901 KiB |
Before Width: | Height: | Size: 328 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 698 KiB |
Before Width: | Height: | Size: 382 KiB |
Before Width: | Height: | Size: 607 KiB |
|
@ -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]
|
||||
|
|