kibana/docs/developer/architecture/add-data-tutorials.asciidoc
Tyler Smalley fe908bae95
Updates Github link references from master to main (#116789) (#116792)
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
# Conflicts:
#	.github/ISSUE_TEMPLATE/v8_breaking_change.md
#	.github/PULL_REQUEST_TEMPLATE.md
#	dev_docs/contributing/best_practices.mdx
#	dev_docs/key_concepts/anatomy_of_a_plugin.mdx
#	docs/developer/contributing/interpreting-ci-failures.asciidoc
#	examples/routing_example/public/app.tsx
#	legacy_rfcs/text/0005_route_handler.md
#	legacy_rfcs/text/0006_management_section_service.md
#	legacy_rfcs/text/0015_bazel.md
#	packages/kbn-spec-to-console/README.md
#	src/dev/code_coverage/docs/team_assignment/README.md
#	src/plugins/embeddable/README.asciidoc
2021-10-29 10:08:30 -07:00

38 lines
2.3 KiB
Text

[[add-data-tutorials]]
== Add data tutorials
`Add Data` in the {kib} Home application contains tutorials for setting up data flows in the Elastic stack.
Each tutorial contains three sets of instructions:
* `On Premise.` Set up a data flow when both {kib} and {es} are running on premise.
* `On Premise Elastic Cloud.` Set up a data flow when {kib} is running on premise and {es} is running on Elastic Cloud.
* `Elastic Cloud.` Set up a data flow when both {kib} and {es} are running on Elastic Cloud.
[discrete]
=== Creating a new tutorial
1. Create a new directory in the link:https://github.com/elastic/kibana/tree/main/src/plugins/home/server/tutorials[tutorials directory].
2. In the new directory, create a file called `index.ts` that exports a function.
The function must return a function object that conforms to the `TutorialSchema` interface link:{kib-repo}tree/{branch}/src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts[tutorial schema].
3. Register the tutorial in link:{kib-repo}tree/{branch}/src/plugins/home/server/tutorials/register.ts[register.ts] by adding it to the `builtInTutorials`.
// TODO update path once assets are migrated
4. Add image assets to the link:{kib-repo}tree/{branch}/src/legacy/core_plugins/kibana/public/home/tutorial_resources[tutorial_resources directory].
5. Run {kib} locally to preview the tutorial.
6. Create a PR and go through the review process to get the changes approved.
If you are creating a new plugin and the tutorial is only related to that plugin, you can also place the `TutorialSchema` object into your plugin folder. Add `home` to the `requiredPlugins` list in your `kibana.json` file.
Then register the tutorial object by calling `home.tutorials.registerTutorial(tutorialObject)` in the `setup` lifecycle of your server plugin.
[discrete]
==== Variables
String values can contain variables that are substituted when rendered. Variables are specified by `{}`.
For example: `{config.docs.version}` is rendered as `6.2` when running the tutorial in {kib} 6.2.
link:{kib-repo}tree/{branch}/src/plugins/home/public/application/components/tutorial/replace_template_strings.js[Provided variables]
[discrete]
==== Markdown
String values can contain limited Markdown syntax.
link:{kib-repo}tree/{branch}/src/legacy/core_plugins/kibana/public/home/components/tutorial/content.js[Enabled Markdown grammars]