diff --git a/examples/bfetch_explorer/public/plugin.tsx b/examples/bfetch_explorer/public/plugin.tsx index 09c26bc889cc..86a58172d7a5 100644 --- a/examples/bfetch_explorer/public/plugin.tsx +++ b/examples/bfetch_explorer/public/plugin.tsx @@ -63,7 +63,8 @@ export class BfetchExplorerPlugin implements Plugin { links: [ { label: 'README', - href: 'https://github.com/elastic/kibana/blob/master/src/plugins/bfetch/README.md', + href: + 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/src/plugins/bfetch/README.md', iconType: 'logoGithub', size: 's', target: '_blank', diff --git a/package.json b/package.json index 8164dc15a5cb..244e3335ca3c 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,9 @@ "number": 8467, "sha": "6cb7fec4e154faa0a4a3fee4b33dfef91b9870d9" }, - "homepage": "https://www.elastic.co/products/kibana", + "homepage": "https://www.opensearch.co/products/kibana", "bugs": { - "url": "http://github.com/elastic/kibana/issues" + "url": "http://github.com/opensearch-project/OpenSearch-Dashboards/issues" }, "opensearchDashboards": { "clean": { diff --git a/packages/osd-plugin-generator/template/README.md.ejs b/packages/osd-plugin-generator/template/README.md.ejs index c102b6a2071f..ee1184e7e238 100755 --- a/packages/osd-plugin-generator/template/README.md.ejs +++ b/packages/osd-plugin-generator/template/README.md.ejs @@ -6,7 +6,7 @@ ## Development - See the [kibana contributing + See the [OpenSearch Dashboards contributing guide](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/CONTRIBUTING.md) for instructions setting up your development environment. diff --git a/packages/osd-storybook/README.md b/packages/osd-storybook/README.md index ae7562a239e9..e82fb918cd35 100644 --- a/packages/osd-storybook/README.md +++ b/packages/osd-storybook/README.md @@ -1,8 +1,8 @@ -# Kibana Storybook +# OpenSearch Dashboards Storybook -This package provides ability to add [Storybook](https://storybook.js.org/) to any Kibana plugin. +This package provides ability to add [Storybook](https://storybook.js.org/) to any OpenSearch Dashboards plugin. -- [Kibana Storybook](#opensearch-dashboards-storybook) +- [OpenSearch Dashboards Storybook](#opensearch-dashboards-storybook) - [Setup Instructions](#setup-instructions) - [Customizing configuration](#customizing-configuration) diff --git a/packages/osd-storybook/lib/templates/index.ejs b/packages/osd-storybook/lib/templates/index.ejs index 1089deb5a282..c6a761ce0e1b 100644 --- a/packages/osd-storybook/lib/templates/index.ejs +++ b/packages/osd-storybook/lib/templates/index.ejs @@ -4,56 +4,67 @@ We use this one instead because we want to add the @osd/ui-shared-deps tags here. --> - - - <%= options.title || 'Storybook'%> - <% if (files.favicon) { %> + + + + <%= options.title || 'Storybook' %> + + + <% if (files.favicon) { %> <% } %> - - - - - - - - - - - <% if (typeof headHtmlSnippet !== 'undefined') { %> <%= headHtmlSnippet %> <% } %> <% - files.css.forEach(file => { %> - - <% }); %> - - - - - <% if (typeof bodyHtmlSnippet !== 'undefined') { %> <%= bodyHtmlSnippet %> <% } %> - -
-
- - <% if (typeof globals !== 'undefined' && Object.keys(globals).length) { %> - + + + + + + + <% if (typeof headHtmlSnippet !=='undefined' ) { %> + <%= headHtmlSnippet %> + <% } %> + <% files.css.forEach(file=> { %> + + <% }); %> + + + + + + <% if (typeof bodyHtmlSnippet !=='undefined' ) { %> + <%= bodyHtmlSnippet %> + <% } %> + +
+
+ + <% if (typeof globals !=='undefined' && Object.keys(globals).length) { %> + - <% } %> <% dlls.forEach(file => { %> - - <% }); %> <% files.js.forEach(file => { %> - - <% }); %> - - + + <% } %> + <% dlls.forEach(file=> { %> + + <% }); %> + <% files.js.forEach(file=> { %> + + <% }); %> + + + \ No newline at end of file diff --git a/src/dev/build/README.md b/src/dev/build/README.md index f6e11af67da3..356c83ba2cc1 100644 --- a/src/dev/build/README.md +++ b/src/dev/build/README.md @@ -1,6 +1,6 @@ # dev/build -Build the default and OSS distributables of Kibana. +Build the default and OSS distributables of OpenSearch Dashboards. # Quick Start @@ -18,7 +18,7 @@ node scripts/build --skip-node-download --debug --no-oss # Fixing out of memory issues -Building Kibana and its distributables can take a lot of memory to finish successfully. Builds do make use of child processes, which means you can increase the amount of memory available by specifying `NODE_OPTIONS="--max-old-space-size=VALUE-IN-MEGABYTES"`. +Building OpenSearch Dashboards and its distributables can take a lot of memory to finish successfully. Builds do make use of child processes, which means you can increase the amount of memory available by specifying `NODE_OPTIONS="--max-old-space-size=VALUE-IN-MEGABYTES"`. ```sh diff --git a/src/dev/build/build_distributables.ts b/src/dev/build/build_distributables.ts index 0f194713e850..f40dae032285 100644 --- a/src/dev/build/build_distributables.ts +++ b/src/dev/build/build_distributables.ts @@ -66,7 +66,7 @@ export async function buildDistributables(log: ToolingLog, options: BuildOptions await run(Tasks.BuildPackages); await run(Tasks.CreatePackageJson); await run(Tasks.InstallDependencies); - await run(Tasks.BuildKibanaPlatformPlugins); + await run(Tasks.BuildOpenSearchDashboardsPlatformPlugins); await run(Tasks.TranspileBabel); await run(Tasks.RemoveWorkspaces); await run(Tasks.CleanPackages); diff --git a/src/dev/build/cli.ts b/src/dev/build/cli.ts index 5811fc42d200..4d1cef18e1d9 100644 --- a/src/dev/build/cli.ts +++ b/src/dev/build/cli.ts @@ -41,11 +41,11 @@ if (showHelp) { dedent(chalk` {dim usage:} node scripts/build - build the Kibana distributable + build the OpenSearch Dashboards distributable options: - --oss {dim Only produce the OSS distributable of Kibana} - --no-oss {dim Only produce the default distributable of Kibana} + --oss {dim Only produce the OSS distributable of OpenSearch Dashboards} + --no-oss {dim Only produce the default distributable of OpenSearch Dashboards} --skip-archives {dim Don't produce tar/zip archives} --skip-os-packages {dim Don't produce rpm/deb/docker packages} --all-platforms {dim Produce archives for all platforms, not just this one} diff --git a/src/dev/build/lib/config.test.ts b/src/dev/build/lib/config.test.ts index 6a15671b8004..eeba4583e04b 100644 --- a/src/dev/build/lib/config.test.ts +++ b/src/dev/build/lib/config.test.ts @@ -45,14 +45,14 @@ const setup = async ({ targetAllPlatforms = true }: { targetAllPlatforms?: boole }; describe('#getOpenSearchDashboardsPkg()', () => { - it('returns the parsed package.json from the Kibana repo', async () => { + it('returns the parsed package.json from the OpenSearch Dashboards repo', async () => { const config = await setup(); expect(config.getOpenSearchDashboardsPkg()).toEqual(pkg); }); }); describe('#getNodeVersion()', () => { - it('returns the node version from the kibana package.json', async () => { + it('returns the node version from the OpenSearch Dashboards package.json', async () => { const config = await setup(); expect(config.getNodeVersion()).toEqual(pkg.engines.node); }); diff --git a/src/dev/build/lib/config.ts b/src/dev/build/lib/config.ts index 74fd9c17d668..728d887e8f64 100644 --- a/src/dev/build/lib/config.ts +++ b/src/dev/build/lib/config.ts @@ -68,14 +68,14 @@ export class Config { ) {} /** - * Get Kibana's parsed package.json file + * Get OpenSearch Dashboards's parsed package.json file */ getOpenSearchDashboardsPkg() { return this.pkg; } /** - * Get the node version required by Kibana + * Get the node version required by OpenSearch Dashboards */ getNodeVersion() { return this.nodeVersion; @@ -89,7 +89,7 @@ export class Config { } /** - * Resolve a set of relative paths based from the directory of the Kibana repo + * Resolve a set of relative paths based from the directory of the OpenSearch Dashboards repo */ resolveFromRepo(...subPaths: string[]) { return resolve(this.repoRoot, ...subPaths); diff --git a/src/dev/build/lib/runner.test.ts b/src/dev/build/lib/runner.test.ts index 9929541c734a..ac824514a260 100644 --- a/src/dev/build/lib/runner.test.ts +++ b/src/dev/build/lib/runner.test.ts @@ -213,7 +213,7 @@ describe('task rejection', () => { await expect(promise).rejects.toThrowErrorMatchingInlineSnapshot(`"FOO"`); expect(testWriter.messages).toMatchInlineSnapshot(` Array [ - " info [ kibana ] foo", + " info [ opensearchDashboards ] foo", " │ERROR failure 0 sec", " │ERROR Error: FOO", " │ ", @@ -240,7 +240,7 @@ describe('task rejection', () => { await expect(promise).rejects.toThrowErrorMatchingInlineSnapshot(`"FOO"`); expect(testWriter.messages).toMatchInlineSnapshot(` Array [ - " info [ kibana ] foo", + " info [ opensearchDashboards ] foo", "", ] `); diff --git a/src/dev/build/tasks/bin/scripts/kibana-keystore.bat b/src/dev/build/tasks/bin/scripts/kibana-keystore.bat index 590ae4b247c9..365379a8b9bc 100755 --- a/src/dev/build/tasks/bin/scripts/kibana-keystore.bat +++ b/src/dev/build/tasks/bin/scripts/kibana-keystore.bat @@ -27,7 +27,7 @@ IF EXIST "%CONFIG_DIR%\node.options" ( ) ) -TITLE Kibana Keystore +TITLE OpenSearch Dashboards Keystore "%NODE%" "%DIR%\src\cli_keystore\dist" %* :finally diff --git a/src/dev/build/tasks/bin/scripts/kibana-plugin.bat b/src/dev/build/tasks/bin/scripts/kibana-plugin.bat index 91cfaa0358d5..b9bbea2ec0ed 100755 --- a/src/dev/build/tasks/bin/scripts/kibana-plugin.bat +++ b/src/dev/build/tasks/bin/scripts/kibana-plugin.bat @@ -31,7 +31,7 @@ IF EXIST "%CONFIG_DIR%\node.options" ( :: Include pre-defined node option set "NODE_OPTIONS=--no-warnings %NODE_OPTIONS%" -TITLE Kibana Server +TITLE OpenSearch Dashboards Server "%NODE%" "%DIR%\src\cli_plugin\dist" %* :finally diff --git a/src/dev/build/tasks/build_opensearch_dashboards_platform_plugins.ts b/src/dev/build/tasks/build_opensearch_dashboards_platform_plugins.ts index 1b63c669fa75..b934a79aa5df 100644 --- a/src/dev/build/tasks/build_opensearch_dashboards_platform_plugins.ts +++ b/src/dev/build/tasks/build_opensearch_dashboards_platform_plugins.ts @@ -28,8 +28,8 @@ import { import { Task } from '../lib'; -export const BuildKibanaPlatformPlugins: Task = { - description: 'Building distributable versions of Kibana platform plugins', +export const BuildOpenSearchDashboardsPlatformPlugins: Task = { + description: 'Building distributable versions of OpenSearch Dashboards platform plugins', async run(_, log, build) { const config = OptimizerConfig.create({ repoRoot: REPO_ROOT, diff --git a/src/dev/build/tasks/build_packages_task.ts b/src/dev/build/tasks/build_packages_task.ts index 055fb13650b6..a25f52e8448e 100644 --- a/src/dev/build/tasks/build_packages_task.ts +++ b/src/dev/build/tasks/build_packages_task.ts @@ -24,11 +24,11 @@ import { mkdirp, Task } from '../lib'; /** * High-level overview of how we enable shared packages in production: * - * tl;dr We copy the packages directly into Kibana's `node_modules` folder, + * tl;dr We copy the packages directly into OpenSearch Dashboards's `node_modules` folder, * which means they will be available when `require(...)`d. * * During development we rely on `@osd/pm` to find all the packages - * in the Kibana repo and run Yarn in all the right places to create symlinks + * in the OpenSearch Dashboards repo and run Yarn in all the right places to create symlinks * between these packages. This development setup is described in-depth in the * readme in `@osd/pm`. * @@ -38,33 +38,33 @@ import { mkdirp, Task } from '../lib'; * we can't run `@osd/pm` in the same way we do for development and * just package the result. That means we have two options: either we prepare * everything in the built package or we perform the necessary actions when - * Kibana is starting up in production. We decided on the former: all the Kibana + * OpenSearch Dashboards is starting up in production. We decided on the former: all the OpenSearch Dashboards * packages are prepared as part of the build process. * - * (All of this is a bit different for Kibana plugins as they _do_ have an - * install step — the plugin CLI tool. However, Kibana plugins are not allowed + * (All of this is a bit different for OpenSearch Dashboards plugins as they _do_ have an + * install step — the plugin CLI tool. However, OpenSearch Dashboards plugins are not allowed * to have separate packages yet.) * - * How Kibana packages are prepared: + * How OpenSearch Dashboards packages are prepared: * * 1. Run the build for each package - * 2. Copy all the packages into the `build/kibana` folder - * 3. Replace `link:` dependencies with `file:` dependencies in both Kibana's + * 2. Copy all the packages into the `build/OpenSearch Dashboards` folder + * 3. Replace `link:` dependencies with `file:` dependencies in both OpenSearch Dashboards's * `package.json` and in all the dependencies. Yarn will then copy the * sources of these dependencies into `node_modules` instead of setting up * symlinks. * - * In the end after the `install dependencies` build step all Kibana packages + * In the end after the `install dependencies` build step all OpenSearch Dashboards packages * will be located within the top-level `node_modules` folder, which means * normal module resolution will apply and you can `require(...)` any of these - * packages when running Kibana in production. + * packages when running OpenSearch Dashboards in production. * * ## Known limitations * - * - This process _only_ include packages that used by Kibana or any of its + * - This process _only_ include packages that used by OpenSearch Dashboards or any of its * transitive packages, as it depends on only running `yarn` at the top level. - * That means a Kibana plugin can only depend on Kibana packages that are used - * in some way by Kibana itself in production, as it won't otherwise be + * That means a OpenSearch Dashboards plugin can only depend on OpenSearch Dashboards packages that are used + * in some way by OpenSearch Dashboards itself in production, as it won't otherwise be * included in the production build. */ export const BuildPackages: Task = { @@ -72,7 +72,7 @@ export const BuildPackages: Task = { async run(config, log, build) { await mkdirp(config.resolveFromRepo('target')); await buildProductionProjects({ - kibanaRoot: config.resolveFromRepo(), + opensearchDashboardsRoot: config.resolveFromRepo(), buildRoot: build.resolvePath(), onlyOSS: build.isOss(), }); diff --git a/src/dev/build/tasks/copy_source_task.ts b/src/dev/build/tasks/copy_source_task.ts index da282f194066..25db9cb020b8 100644 --- a/src/dev/build/tasks/copy_source_task.ts +++ b/src/dev/build/tasks/copy_source_task.ts @@ -42,11 +42,11 @@ export const CopySource: Task = { '!src/setup_node_env/babel_register/register.js', '!**/public/**/*.{js,ts,tsx,json}', 'typings/**', - 'config/kibana.yml', + 'config/opensearch_dashboards.yml', 'config/node.options', 'tsconfig*.json', '.i18nrc.json', - 'kibana.d.ts', + 'opensearch_dashboards.d.ts', ], }); }, diff --git a/src/dev/build/tasks/index.ts b/src/dev/build/tasks/index.ts index d451e3bce395..5210ec6ce0b8 100644 --- a/src/dev/build/tasks/index.ts +++ b/src/dev/build/tasks/index.ts @@ -39,5 +39,5 @@ export * from './uuid_verification_task'; export * from './verify_env_task'; export * from './write_sha_sums_task'; -// @ts-expect-error this module can't be TS because it ends up pulling x-pack into Kibana +// @ts-expect-error this module can't be TS because it ends up pulling x-pack into OpenSearch Dashboards export { InstallChromium } from './install_chromium'; diff --git a/src/dev/build/tasks/notice_file_task.ts b/src/dev/build/tasks/notice_file_task.ts index 6edb76d506bc..45e646e4a350 100644 --- a/src/dev/build/tasks/notice_file_task.ts +++ b/src/dev/build/tasks/notice_file_task.ts @@ -31,7 +31,7 @@ export const CreateNoticeFile: Task = { log.info('Generating notice from source'); log.indent(4); const noticeFromSource = await generateNoticeFromSource({ - productName: build.isOss() ? 'Kibana' : 'Kibana with X-Pack', + productName: build.isOss() ? 'OpenSearch Dashboards' : 'OpenSearch Dashboards', directory: build.resolvePath(), log, }); diff --git a/src/dev/build/tasks/os_packages/docker_generator/bundle_dockerfiles.ts b/src/dev/build/tasks/os_packages/docker_generator/bundle_dockerfiles.ts index 2d5a4ea1eef7..11dcd04994d2 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/bundle_dockerfiles.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/bundle_dockerfiles.ts @@ -27,10 +27,10 @@ import { TemplateContext } from './template_context'; export async function bundleDockerFiles(config: Config, log: ToolingLog, scope: TemplateContext) { log.info( - `Generating kibana${scope.imageFlavor}${scope.ubiImageFlavor} docker build context bundle` + `Generating OpenSearch Dashboards${scope.imageFlavor}${scope.ubiImageFlavor} docker build context bundle` ); - const dockerFilesDirName = `kibana${scope.imageFlavor}${scope.ubiImageFlavor}-${scope.version}-docker-build-context`; + const dockerFilesDirName = `OpenSearch Dashboards${scope.imageFlavor}${scope.ubiImageFlavor}-${scope.version}-docker-build-context`; const dockerFilesBuildDir = resolve(scope.dockerBuildDir, dockerFilesDirName); const dockerFilesOutputDir = config.resolveFromTarget(`${dockerFilesDirName}.tar.gz`); diff --git a/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker b/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker index 4b9d6db65091..cc87f7e0b195 100755 --- a/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker +++ b/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker @@ -3,18 +3,18 @@ # ** THIS IS AN AUTO-GENERATED FILE ** # -# Run Kibana, using environment variables to set longopts defining Kibana's +# Run OpenSearch Dashboards, using environment variables to set longopts defining OpenSearch Dashboards's # configuration. # # eg. Setting the environment variable: # # ELASTICSEARCH_LOGQUERIES=true # -# will cause Kibana to be invoked with: +# will cause OpenSearch Dashboards to be invoked with: # # --elasticsearch.logQueries=true -kibana_vars=( +opensearch_dashboards_vars=( console.enabled console.proxyConfig console.proxyFilter @@ -49,10 +49,10 @@ kibana_vars=( elasticsearch.username i18n.locale interpreter.enableInVisualize - kibana.autocompleteTerminateAfter - kibana.autocompleteTimeout - kibana.defaultAppId - kibana.index + opensearchDashboards.autocompleteTerminateAfter + opensearchDashboards.autocompleteTimeout + opensearchDashboards.defaultAppId + opensearchDashboards.index logging.dest logging.json logging.quiet @@ -74,8 +74,8 @@ kibana_vars=( map.tilemap.url monitoring.cluster_alerts.email_notifications.email_address monitoring.enabled - monitoring.kibana.collection.enabled - monitoring.kibana.collection.interval + monitoring.opensearchDashboards.collection.enabled + monitoring.opensearchDashboards.collection.interval monitoring.ui.container.elasticsearch.enabled monitoring.ui.container.logstash.enabled monitoring.ui.elasticsearch.password @@ -163,7 +163,7 @@ kibana_vars=( xpack.encryptedSavedObjects.encryptionKey xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys xpack.fleet.agents.elasticsearch.host - xpack.fleet.agents.kibana.host + xpack.fleet.agents.opensearchDashboards.host xpack.fleet.agents.tlsCheckDisabled xpack.graph.enabled xpack.graph.canEditDrillDownUrls @@ -215,10 +215,10 @@ kibana_vars=( xpack.reporting.enabled xpack.reporting.encryptionKey xpack.reporting.index - xpack.reporting.kibanaApp - xpack.reporting.kibanaServer.hostname - xpack.reporting.kibanaServer.port - xpack.reporting.kibanaServer.protocol + xpack.reporting.opensearchDashboardsApp + xpack.reporting.opensearchDashboardsServer.hostname + xpack.reporting.opensearchDashboardsServer.port + xpack.reporting.opensearchDashboardsServer.protocol xpack.reporting.poll.jobCompletionNotifier.interval xpack.reporting.poll.jobCompletionNotifier.intervalErrorMultiplier xpack.reporting.poll.jobsRefresh.interval @@ -263,15 +263,15 @@ kibana_vars=( ) longopts='' -for kibana_var in ${kibana_vars[*]}; do +for opensearch_dashboards_var in ${opensearch_dashboards_vars[*]}; do # 'elasticsearch.hosts' -> 'ELASTICSEARCH_HOSTS' - env_var=$(echo ${kibana_var^^} | tr . _) + env_var=$(echo ${opensearch_dashboards_var^^} | tr . _) # Indirectly lookup env var values via the name of the var. # REF: http://tldp.org/LDP/abs/html/bashver2.html#EX78 value=${!env_var} if [[ -n $value ]]; then - longopt="--${kibana_var}=${value}" + longopt="--${opensearch_dashboards_var}=${value}" longopts+=" ${longopt}" fi done @@ -285,11 +285,11 @@ umask 0002 # introspect the statistics for the cgroup for the given # hierarchy. Alas, Docker breaks this by mounting the container # statistics at the root while leaving the cgroup paths as the actual -# paths. Therefore, Kibana provides a mechanism to override +# paths. Therefore, OpenSearch Dashboards provides a mechanism to override # reading the cgroup path from /proc/self/cgroup and instead uses the # cgroup path defined the configuration properties # cpu.cgroup.path.override and cpuacct.cgroup.path.override. # Therefore, we set this value here so that cgroup statistics are # available for the container this process will run in. -exec /usr/share/kibana/bin/kibana --ops.cGroupOverrides.cpuPath=/ --ops.cGroupOverrides.cpuAcctPath=/ ${longopts} "$@" +exec /usr/share/opensearch-dashboards/bin/opensearch-dashboards --ops.cGroupOverrides.cpuPath=/ --ops.cGroupOverrides.cpuAcctPath=/ ${longopts} "$@" diff --git a/src/dev/build/tasks/os_packages/docker_generator/run.ts b/src/dev/build/tasks/os_packages/docker_generator/run.ts index 203903d1f64e..dfb8a8a76fbb 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/run.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/run.ts @@ -47,19 +47,19 @@ export async function runDockerGenerator( // General docker var config const license = build.isOss() ? 'ASL 2.0' : 'Elastic License'; const imageFlavor = build.isOss() ? '-oss' : ''; - const imageTag = 'docker.opensearch.co/kibana/kibana'; + const imageTag = 'docker.opensearch.co/opensearch-dashboards/opensearch-dashboards'; const version = config.getBuildVersion(); - const artifactTarball = `kibana${imageFlavor}-${version}-linux-x86_64.tar.gz`; + const artifactTarball = `opensearch-dashboards${imageFlavor}-${version}-linux-x86_64.tar.gz`; const artifactsDir = config.resolveFromTarget('.'); const dockerBuildDate = new Date().toISOString(); // That would produce oss, default and default-ubi7 const dockerBuildDir = config.resolveFromRepo( 'build', - 'kibana-docker', + 'opensearch-dashboards-docker', build.isOss() ? `oss` : `default${ubiImageFlavor}` ); const dockerTargetFilename = config.resolveFromTarget( - `kibana${imageFlavor}${ubiImageFlavor}-${version}-docker-image.tar.gz` + `opensearch-dashboards${imageFlavor}${ubiImageFlavor}-${version}-docker-image.tar.gz` ); const scope: TemplateContext = { artifactTarball, @@ -77,11 +77,11 @@ export async function runDockerGenerator( revision: config.getBuildSha(), }; - // Verify if we have the needed kibana target in order - // to build the kibana docker image. + // Verify if we have the needed OpenSearch Dashboards target in order + // to build the OpenSearch Dashboards docker image. // Also create the docker build target folder // and delete the current linked target into the - // kibana docker build folder if we have one. + // OpenSearch Dashboards docker build folder if we have one. try { await accessAsync(resolve(artifactsDir, artifactTarball)); await mkdirp(dockerBuildDir); @@ -89,22 +89,22 @@ export async function runDockerGenerator( } catch (e) { if (e && e.code === 'ENOENT' && e.syscall === 'access') { throw new Error( - `Kibana linux target (${artifactTarball}) is needed in order to build ${''}the docker image. None was found at ${artifactsDir}` + `OpenSearch Dashboards linux target (${artifactTarball}) is needed in order to build ${''}the docker image. None was found at ${artifactsDir}` ); } } - // Create the kibana linux target inside the - // Kibana docker build + // Create the OpenSearch Dashboards linux target inside the + // OpenSearch Dashboards docker build await linkAsync(resolve(artifactsDir, artifactTarball), resolve(dockerBuildDir, artifactTarball)); // Write all the needed docker config files - // into kibana-docker folder + // into opensearch-dashboards-docker folder for (const [, dockerTemplate] of Object.entries(dockerTemplates)) { await write(resolve(dockerBuildDir, dockerTemplate.name), dockerTemplate.generator(scope)); } - // Copy all the needed resources into kibana-docker folder + // Copy all the needed resources into opensearch-dashboards-docker folder // in order to build the docker image accordingly the dockerfile defined // under templates/opensearch_dashboards_yml.template/js await copyAll( diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts index d6a4224d9fab..f74e6041709f 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts @@ -64,7 +64,7 @@ function generator({ retry_docker_pull ${baseOSImage} - echo "Building: kibana${imageFlavor}${ubiImageFlavor}-docker"; \\ + echo "Building: opensearch-dashboards${imageFlavor}${ubiImageFlavor}-docker"; \\ docker build -t ${imageTag}${imageFlavor}${ubiImageFlavor}:${version} -f Dockerfile . || exit 1; docker save ${imageTag}${imageFlavor}${ubiImageFlavor}:${version} | gzip -c > ${dockerTargetFilename} diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/opensearch_dashboards_yml.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/opensearch_dashboards_yml.template.ts index 240ec6f4e932..61437d2c907a 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/opensearch_dashboards_yml.template.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/opensearch_dashboards_yml.template.ts @@ -27,15 +27,15 @@ function generator({ imageFlavor }: TemplateContext) { # ** THIS IS AN AUTO-GENERATED FILE ** # - # Default Kibana configuration for docker target - server.name: kibana + # Default OpenSearch Dashboards configuration for docker target + server.name: opensearch-dashboards server.host: "0" - elasticsearch.hosts: [ "http://elasticsearch:9200" ] - ${!imageFlavor ? 'monitoring.ui.container.elasticsearch.enabled: true' : ''} + opensearch.hosts: [ "http://opensearch:9200" ] + ${!imageFlavor ? 'monitoring.ui.container.opensearch.enabled: true' : ''} `); } -export const kibanaYMLTemplate = { - name: 'config/kibana.yml', +export const opensearchDashboardsYMLTemplate = { + name: 'config/opensearch_dashboards.yml', generator, }; diff --git a/src/dev/build/tasks/os_packages/package_scripts/post_install.sh b/src/dev/build/tasks/os_packages/package_scripts/post_install.sh index 1202efcfd307..fa551dc2c8cd 100644 --- a/src/dev/build/tasks/os_packages/package_scripts/post_install.sh +++ b/src/dev/build/tasks/os_packages/package_scripts/post_install.sh @@ -4,7 +4,7 @@ set -e export OSD_PATH_CONF=${OSD_PATH_CONF:-<%= configDir %>} set_chmod() { - chmod -f 660 ${OSD_PATH_CONF}/kibana.yml || true + chmod -f 660 ${OSD_PATH_CONF}/opensearch_dashboards.yml || true chmod -f 2750 <%= dataDir %> || true chmod -f 2750 ${OSD_PATH_CONF} || true } @@ -48,7 +48,7 @@ case $1 in if ! getent passwd "<%= user %>" >/dev/null; then useradd -r -g "<%= group %>" -M -s /sbin/nologin \ - -c "kibana service user" "<%= user %>" + -c "opensearch_dashboards.service user" "<%= user %>" fi if [ "$1" = "2" ]; then diff --git a/src/dev/build/tasks/os_packages/package_scripts/pre_install.sh b/src/dev/build/tasks/os_packages/package_scripts/pre_install.sh index 4f3b6590a3a3..2b43962c7c8a 100644 --- a/src/dev/build/tasks/os_packages/package_scripts/pre_install.sh +++ b/src/dev/build/tasks/os_packages/package_scripts/pre_install.sh @@ -1,14 +1,14 @@ #!/bin/sh set -e -if command -v systemctl >/dev/null && systemctl is-active kibana.service >/dev/null; then - systemctl --no-reload stop kibana.service -elif [ -x /etc/init.d/kibana ]; then +if command -v systemctl >/dev/null && systemctl is-active opensearch_dashboards.service >/dev/null; then + systemctl --no-reload stop opensearch_dashboards.service +elif [ -x /etc/init.d/opensearch-dashboards ]; then if command -v invoke-rc.d >/dev/null; then - invoke-rc.d kibana stop + invoke-rc.d opensearch-dashboards stop elif command -v service >/dev/null; then - service kibana stop + service opensearch-dashboards stop else - /etc/init.d/kibana stop + /etc/init.d/opensearch-dashboards stop fi fi diff --git a/src/dev/build/tasks/os_packages/package_scripts/pre_remove.sh b/src/dev/build/tasks/os_packages/package_scripts/pre_remove.sh index 07d0f341ccef..081c0f258c3c 100644 --- a/src/dev/build/tasks/os_packages/package_scripts/pre_remove.sh +++ b/src/dev/build/tasks/os_packages/package_scripts/pre_remove.sh @@ -1,16 +1,16 @@ #!/bin/sh set -e -echo -n "Stopping kibana service..." -if command -v systemctl >/dev/null && systemctl is-active kibana.service >/dev/null; then - systemctl --no-reload stop kibana.service -elif [ -x /etc/init.d/kibana ]; then +echo -n "Stopping OpenSearch Dashboards service..." +if command -v systemctl >/dev/null && systemctl is-active opensearch_dashboards.service >/dev/null; then + systemctl --no-reload stop opensearch_dashboards.service +elif [ -x /etc/init.d/opensearch-dashboards ]; then if command -v invoke-rc.d >/dev/null; then - invoke-rc.d kibana stop + invoke-rc.d opensearch-dashboards stop elif command -v service >/dev/null; then - service kibana stop + service opensearch-dashboards stop else - /etc/init.d/kibana stop + /etc/init.d/opensearch-dashboards stop fi fi echo " OK" diff --git a/src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/kibana.service b/src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/opensearch_dashboards.service similarity index 56% rename from src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/kibana.service rename to src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/opensearch_dashboards.service index e66e0e7c8dfb..99dfd0f2e3f2 100644 --- a/src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/kibana.service +++ b/src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/opensearch_dashboards.service @@ -1,16 +1,16 @@ [Unit] -Description=Kibana +Description=OpenSearch Dashboards [Service] Type=simple -User=kibana -Group=kibana +User=opensearchDashboards +Group=opensearchDashboards # Load env vars from /etc/default/ and /etc/sysconfig/ if they exist. # Prefixing the path with '-' makes it try to load, but if the file doesn't # exist, it continues onward. -EnvironmentFile=-/etc/default/kibana -EnvironmentFile=-/etc/sysconfig/kibana -ExecStart=/usr/share/kibana/bin/kibana +EnvironmentFile=-/etc/default/opensearch-dashboards +EnvironmentFile=-/etc/sysconfig/opensearch-dashboards +ExecStart=/usr/share/opensearch-dashboards/bin/opensearch-dashboards Restart=on-failure RestartSec=3 StartLimitBurst=3 diff --git a/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/kibana.conf b/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/kibana.conf deleted file mode 100644 index b5422df52fe1..000000000000 --- a/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/kibana.conf +++ /dev/null @@ -1 +0,0 @@ -d /var/run/kibana 0755 kibana kibana - - \ No newline at end of file diff --git a/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/opensearch_dashboards.conf b/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/opensearch_dashboards.conf new file mode 100644 index 000000000000..3a494613e22e --- /dev/null +++ b/src/dev/build/tasks/os_packages/service_templates/systemd/usr/lib/tmpfiles.d/opensearch_dashboards.conf @@ -0,0 +1 @@ +d /var/run/opensearch-dashboards 0755 opensearch-dashboards opensearch-dashboards - - \ No newline at end of file diff --git a/src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/kibana b/src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/opensearch_dashboards similarity index 73% rename from src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/kibana rename to src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/opensearch_dashboards index ade3bcf63885..55ae00120a41 100644 --- a/src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/kibana +++ b/src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/opensearch_dashboards @@ -1,5 +1,5 @@ -user="kibana" -group="kibana" +user="opensearchDashboards" +group="opensearchDashboards" chroot="/" chdir="/" nice="" @@ -10,4 +10,4 @@ nice="" # The default behavior is to simply log a message "program stop failed; still running" KILL_ON_STOP_TIMEOUT=0 -OSD_PATH_CONF="/etc/kibana" +OSD_PATH_CONF="/etc/opensearch_dashboards" diff --git a/src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/kibana b/src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/opensearch_dashboards similarity index 78% rename from src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/kibana rename to src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/opensearch_dashboards index 52d995a2b58f..cf2f4ac693d3 100755 --- a/src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/kibana +++ b/src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/opensearch_dashboards @@ -1,18 +1,18 @@ #!/bin/sh -# Init script for kibana +# Init script for OpenSearch Dashboards # Maintained by # Generated by pleaserun. # Implemented based on LSB Core 3.1: # * Sections: 20.2, 20.3 # ### BEGIN INIT INFO -# Provides: kibana +# Provides: OpenSearch Dashboards # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: -# Description: Kibana +# Description: OpenSearch Dashboards ### END INIT INFO # @@ -33,9 +33,9 @@ elif [ -f /etc/rc.status ]; then rc_reset fi -name=kibana -program=/usr/share/kibana/bin/kibana -pidfile="/var/run/kibana/$name.pid" +name=opensearch-dashboards +program=/usr/share/opensearch-dashboards/bin/opensearch-dashboards +pidfile="/var/run/opensearch-dashboards/$name.pid" [ -r /etc/default/$name ] && . /etc/default/$name [ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name @@ -46,7 +46,7 @@ export NODE_OPTIONS [ -z "$nice" ] && nice=0 trace() { - logger -t "/etc/init.d/kibana" "$@" + logger -t "/etc/init.d/opensearch-dashboards" "$@" } emit() { @@ -55,19 +55,19 @@ emit() { } start() { - [ ! -d "/var/log/kibana/" ] && mkdir "/var/log/kibana/" - chown "$user":"$group" "/var/log/kibana/" - chmod 2750 "/var/log/kibana/" + [ ! -d "/var/log/opensearch-dashboards/" ] && mkdir "/var/log/opensearch-dashboards/" + chown "$user":"$group" "/var/log/opensearch-dashboards/" + chmod 2750 "/var/log/opensearch-dashboards/" - [ ! -d "/var/run/kibana/" ] && mkdir "/var/run/kibana/" - chown "$user":"$group" "/var/run/kibana/" - chmod 755 "/var/run/kibana/" + [ ! -d "/var/run/opensearch-dashboards/" ] && mkdir "/var/run/opensearch-dashboards/" + chown "$user":"$group" "/var/run/opensearch-dashboards/" + chmod 755 "/var/run/opensearch-dashboards/" chroot --userspec "$user":"$group" "$chroot" sh -c " cd \"$chdir\" exec \"$program\" - " >> /var/log/kibana/kibana.stdout 2>> /var/log/kibana/kibana.stderr & + " >> /var/log/opensearch-dashboards/opensearch-dashboards.stdout 2>> /var/log/opensearch-dashboards/opensearch-dashboards.stderr & # Generate the pidfile from here. If we instead made the forked process # generate it there will be a race condition between the pidfile writing @@ -132,7 +132,7 @@ force_stop() { case "$1" in force-start|start|stop|force-stop|restart) - trace "Attempting '$1' on kibana" + trace "Attempting '$1' on opensearch-dashboards" ;; esac diff --git a/src/dev/build/tasks/path_length_task.ts b/src/dev/build/tasks/path_length_task.ts index d639217adc53..f5d68ea9fd4d 100644 --- a/src/dev/build/tasks/path_length_task.ts +++ b/src/dev/build/tasks/path_length_task.ts @@ -39,7 +39,7 @@ export const PathLength: Task = { } throw new Error( - 'Windows has a path limit of 260 characters so we limit the length of paths in Kibana to 200 characters ' + + 'Windows has a path limit of 260 characters so we limit the length of paths in OpenSearch Dashboards to 200 characters ' + ' and the following files exceed this limit:' + '\n - ' + tooLongPaths.join('\n - ') diff --git a/src/dev/ci_setup/setup.sh b/src/dev/ci_setup/setup.sh index d7c54aa055d1..3c05902e2728 100755 --- a/src/dev/ci_setup/setup.sh +++ b/src/dev/ci_setup/setup.sh @@ -4,10 +4,10 @@ set -e source src/dev/ci_setup/setup_env.sh true -echo " -- KIBANA_DIR='$KIBANA_DIR'" +echo " -- OPENSEARCH_DASHBOARDS_DIR='$OPENSEARCH_DASHBOARDS_DIR'" echo " -- XPACK_DIR='$XPACK_DIR'" echo " -- PARENT_DIR='$PARENT_DIR'" -echo " -- KIBANA_PKG_BRANCH='$KIBANA_PKG_BRANCH'" +echo " -- OPENSEARCH_DASHBOARDS_PKG_BRANCH='$OPENSEARCH_DASHBOARDS_PKG_BRANCH'" echo " -- TEST_OPENSEARCH_SNAPSHOT_VERSION='$TEST_OPENSEARCH_SNAPSHOT_VERSION'" ### diff --git a/src/dev/ci_setup/setup_env.sh b/src/dev/ci_setup/setup_env.sh index 7dc308f0b898..90c94dbfdb74 100644 --- a/src/dev/ci_setup/setup_env.sh +++ b/src/dev/ci_setup/setup_env.sh @@ -133,8 +133,8 @@ else echo "Chrome not detected, installing default chromedriver binary for the package version" fi -### only run on pr jobs for elastic/kibana, checks-reporter doesn't work for other repos -if [[ "$ghprbPullId" && "$ghprbGhRepository" == 'elastic/kibana' ]] ; then +### only run on pr jobs for opensearch-project/OpenSearch-Dashboards, checks-reporter doesn't work for other repos +if [[ "$ghprbPullId" && "$ghprbGhRepository" == 'opensearch-project/OpenSearch-Dashboards' ]] ; then export CHECKS_REPORTER_ACTIVE=true fi diff --git a/src/dev/prs/run_update_prs_cli.ts b/src/dev/prs/run_update_prs_cli.ts index 569f365163b1..dc6292518952 100644 --- a/src/dev/prs/run_update_prs_cli.ts +++ b/src/dev/prs/run_update_prs_cli.ts @@ -30,7 +30,7 @@ import { getLine$ } from './helpers'; import { Pr } from './pr'; import { GithubApi } from './github_api'; -const UPSTREAM_URL = 'git@github.com:elastic/kibana.git'; +const UPSTREAM_URL = 'git@github.com:opensearch-project/OpenSearch-Dashboards.git'; run( async ({ flags, log }) => { diff --git a/src/docs/docs_repo.js b/src/docs/docs_repo.js index 63fcd2a6de5e..32ac9e41a872 100644 --- a/src/docs/docs_repo.js +++ b/src/docs/docs_repo.js @@ -19,14 +19,14 @@ import { resolve } from 'path'; -const kibanaDir = resolve(__dirname, '..', '..'); +const opensearchDashboardsDir = resolve(__dirname, '..', '..'); export function buildDocsScript(cmd) { return resolve(process.cwd(), cmd.docrepo, 'build_docs'); } export function buildDocsArgs(cmd) { - const docsIndexFile = resolve(kibanaDir, 'docs', 'index.asciidoc'); + const docsIndexFile = resolve(opensearchDashboardsDir, 'docs', 'index.asciidoc'); let args = ['--doc', docsIndexFile, '--chunk=1']; if (cmd.open) { args = [...args, '--open']; @@ -35,5 +35,5 @@ export function buildDocsArgs(cmd) { } export function defaultDocsRepoPath() { - return resolve(kibanaDir, '..', 'docs'); + return resolve(opensearchDashboardsDir, '..', 'docs'); } diff --git a/src/plugins/data/server/dql_telemetry/usage_collector/fetch.ts b/src/plugins/data/server/dql_telemetry/usage_collector/fetch.ts index 0da51a097875..24503ede6f85 100644 --- a/src/plugins/data/server/dql_telemetry/usage_collector/fetch.ts +++ b/src/plugins/data/server/dql_telemetry/usage_collector/fetch.ts @@ -49,14 +49,14 @@ export function fetchProvider(index: string) { `hits.hits[0]._source.config.${UI_SETTINGS.SEARCH_QUERY_LANGUAGE}` ); - // search:queryLanguage can potentially be in four states in the .kibana index: + // search:queryLanguage can potentially be in four states in the .opensearch_dashboards index: // 1. undefined: this means the user has never touched this setting // 2. null: this means the user has touched the setting, but the current value matches the default // 3. 'kuery' or 'lucene': this means the user has explicitly selected the given non-default language // // It's nice to know if the user has never touched the setting or if they tried kuery then // went back to the default, so I preserve this info by prefixing the language name with - // 'default-' when the value in .kibana is undefined (case #1). + // 'default-' when the value in .opensearch_dashboards is undefined (case #1). let defaultLanguage; if (queryLanguageConfigValue === undefined) { defaultLanguage = `default-${defaultSearchQueryLanguageSetting}`; diff --git a/src/plugins/discover/public/application/components/help_menu/help_menu_util.js b/src/plugins/discover/public/application/components/help_menu/help_menu_util.js index 104ce8ea2c86..5e21b294742a 100644 --- a/src/plugins/discover/public/application/components/help_menu/help_menu_util.js +++ b/src/plugins/discover/public/application/components/help_menu/help_menu_util.js @@ -29,7 +29,7 @@ export function addHelpMenuToAppChrome(chrome) { links: [ { linkType: 'documentation', - href: `${docLinks.ELASTIC_WEBSITE_URL}guide/en/kibana/${docLinks.DOC_LINK_VERSION}/discover.html`, + href: `${docLinks.OPENSEARCH_WEBSITE_URL}guide/en/kibana/${docLinks.DOC_LINK_VERSION}/discover.html`, }, ], }); diff --git a/src/plugins/timeline/server/plugin.ts b/src/plugins/timeline/server/plugin.ts index 883732d01f64..704a76fd4079 100644 --- a/src/plugins/timeline/server/plugin.ts +++ b/src/plugins/timeline/server/plugin.ts @@ -27,7 +27,7 @@ import { timelineSheetSavedObjectType } from './saved_objects'; * Deprecated since 7.0, the Timeline app will be removed in 8.0. * To continue using your Timeline worksheets, migrate them to a dashboard. * - * @link https://www.elastic.co/guide/en/kibana/master/timeline.html#timeline-deprecation + * @link https://www.opensearch.co/guide/en/kibana/master/timeline.html#timeline-deprecation **/ const showWarningMessageIfTimelineSheetWasFound = (core: CoreStart, logger: Logger) => { const { savedObjects } = core; @@ -42,7 +42,7 @@ const showWarningMessageIfTimelineSheetWasFound = (core: CoreStart, logger: Logg ({ total }) => total && logger.warn( - 'Deprecated since 7.0, the Timeline app will be removed in 8.0. To continue using your Timeline worksheets, migrate them to a dashboard. See https://www.elastic.co/guide/en/kibana/master/dashboard.html#timeline-deprecation.' + 'Deprecated since 7.0, the Timeline app will be removed in 8.0. To continue using your Timeline worksheets, migrate them to a dashboard. See https://www.opensearch.co/guide/en/kibana/master/dashboard.html#timeline-deprecation.' ) ); }; diff --git a/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_fill_data_array.js b/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_fill_data_array.js index 90c8f6ca052f..5a7873c587af 100644 --- a/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_fill_data_array.js +++ b/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_fill_data_array.js @@ -21,7 +21,7 @@ import _ from 'lodash'; /* * Accepts an array of zero-filled y value objects (arr1) - * and a kibana data.series[i].values array of objects (arr2). + * and a OpenSearch Dashboards data.series[i].values array of objects (arr2). * Return a zero-filled array of objects (arr1). */ diff --git a/utilities/templates/visual_regression_gallery.handlebars b/utilities/templates/visual_regression_gallery.handlebars index 60817dec5fcf..fe5bc1bfecd6 100644 --- a/utilities/templates/visual_regression_gallery.handlebars +++ b/utilities/templates/visual_regression_gallery.handlebars @@ -1,33 +1,33 @@ + - Kibana Visual Regression Gallery + OpenSearch Dashboards Visual Regression Gallery @@ -122,7 +119,7 @@
- Kibana Visual Regression Gallery + OpenSearch Dashboards Visual Regression Gallery
@@ -130,7 +127,8 @@
{{#each comparisons as |comparison|}} -
+
({{comparison.percentage}}%) {{comparison.name}} @@ -138,15 +136,10 @@
Diff
-