Add extensions documentation (#4202)

* Add extensions documentation

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

* Editing

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

* Update _developer-documentation/extensions.md

Co-authored-by: Chris Moore <107723039+cwillum@users.noreply.github.com>
Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com>

* Implemented doc review comments

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

* Add more links

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

* Update _developer-documentation/index.md

Co-authored-by: Melissa Vagi <vagimeli@amazon.com>
Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com>

* Remove javadoc until the release

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

* Change links to hosted site

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>

---------

Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>
Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com>
Co-authored-by: Chris Moore <107723039+cwillum@users.noreply.github.com>
Co-authored-by: Melissa Vagi <vagimeli@amazon.com>
This commit is contained in:
kolchfa-aws 2023-07-13 17:59:40 -04:00 committed by GitHub
parent f0b86602ed
commit fb84435f62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 76 additions and 0 deletions

View File

@ -91,6 +91,9 @@ collections:
external_links:
permalink: /:collection/:path/
output: true
developer-documentation:
permalink: /:collection/:path/
output: true
just_the_docs:
# Define the collections used in the theme
@ -154,6 +157,9 @@ just_the_docs:
troubleshoot:
name: Troubleshooting
nav_fold: true
developer-documentation:
name: Developer documentation
nav_fold: true
# Enable or disable the site search

View File

@ -0,0 +1,46 @@
---
layout: default
title: Extensions
nav_order: 10
---
# Extensions
Extensions is an experimental feature. Therefore, we do not recommend the use of extensions in a production environment. For updates on the progress of extensions, or if you want leave feedback that could help improve the feature, refer to the [issue on GitHub](https://github.com/opensearch-project/OpenSearch/issues/2447).
{: .warning}
Until extensions were introduced, plugins were the only way to extend OpenSearch functionality. However, plugins have significant shortcomings: they require frequent updates to stay up to date with OpenSearch core, they pose a security risk because they run in the same process as OpenSearch, and updating or installing them requires a full cluster restart. Moreover, plugins can fatally impact the cluster in the event of failure.
Extensions provide an easier, more secure way to customize OpenSearch. Extensions support all plugin functionality and let you build additional modular features for OpenSearch. The [OpenSearch SDK for Java](https://github.com/opensearch-project/opensearch-sdk-java/) provides the library of classes and interfaces that you can use to develop extensions. Extensions are decoupled from OpenSearch core and do not need frequent updates. Additionally, they can run in a separate process or on another node and can be installed while a cluster is running.
## Getting started
Use the following documentation to get started with extensions:
### Step 1: Learn the basics
Read the [design documentation](https://opensearch-project.github.io/opensearch-sdk-java/DESIGN.html) to learn about extension architecture and how extensions work.
### Step 2: Try it out
Try running the sample Hello World extension by following detailed steps in the [Getting started section of the Developer Guide](https://opensearch-project.github.io/opensearch-sdk-java/DEVELOPER_GUIDE.html#getting-started).
### Step 3: Create your own extension
Develop a custom create, read, update, delete (CRUD) extension by following the instructions in [this tutorial](https://opensearch-project.github.io/opensearch-sdk-java/CREATE_YOUR_FIRST_EXTENSION.html).
### Step 4: Learn how to deploy your extension
For instructions on building, testing, and running an extension, see the [Developing your own extension section of the Developer Guide](https://opensearch-project.github.io/opensearch-sdk-java/DEVELOPER_GUIDE.html#developing-your-own-extension).
<!-- TODO: add the link after the release
## Extensions Javadoc
For a complete extensions class hierarchy, see the [Javadoc](Link TBD).
-->
## Plugin migration
The [Anomaly Detection plugin](https://github.com/opensearch-project/anomaly-detection) is now [implemented as an extension](https://github.com/opensearch-project/anomaly-detection/tree/feature/extensions). For details, see [this GitHub issue](https://github.com/opensearch-project/OpenSearch/issues/3635).
For tips on migrating an existing plugin to an extension, see the [plugin migration documentation](https://opensearch-project.github.io/opensearch-sdk-java/PLUGIN_MIGRATION.html).

View File

@ -0,0 +1,24 @@
---
layout: default
title: Developer documentation
nav_order: 1
has_children: false
has_toc: false
nav_exclude: true
---
# Developer documentation
We welcome your contributions to the OpenSearch Project. Here are some helpful links to explore the OpenSearch repositories and learn how to contribute:
- [OpenSearch Project GitHub repo](https://github.com/opensearch-project/)
- [Javadoc documentation](https://opensearch.org/javadocs/)
- [Getting started as an OpenSearch contributor](https://github.com/opensearch-project/.github/blob/main/ONBOARDING.md)
- [OpenSearch Dashboards Developer Guide](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/DEVELOPER_GUIDE.md)
- [OpenSearch release schedule and maintenance policy](https://opensearch.org/releases.html)
- [OpenSearch Project roadmap](https://github.com/orgs/opensearch-project/projects/1)
- [OpenSearch Community Forum](https://forum.opensearch.org/)
## What's new
New in version 2.9, OpenSearch introduces _extensions_---an easier-to-develop and more secure alternative to plugins---to simplify creating custom functionality for OpenSearch. To learn more about building extensions using _OpenSearch SDK for Java_, see [Extensions]({{site.url}}{{site.baseurl}}/developer-documentation/extensions/).