Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Launch Dashboards Extensions SDK #26

Open
seanneumann opened this issue Jan 5, 2023 · 0 comments
Open

Launch Dashboards Extensions SDK #26

seanneumann opened this issue Jan 5, 2023 · 0 comments
Assignees

Comments

@seanneumann
Copy link

seanneumann commented Jan 5, 2023

Draft

Introduction

We plan to launch SDKs for OpenSearch and OpenSearch Dashboards, and support development of third-party extensions. Additionally, we will launch an MVP of the OpenSearch extensions Catalog in order to host extensions for users to easily find, install, and update community-developed extensions.

Building plugins is too difficult and expensive to maintain, given the key plugin challenges including version coupling, lack of out-of-box security, required restart to install, lack of dependency management and awareness, lack of inter-plugin communication, etc. Additionally, today's bundle release model creates a high barrier of entry for the community to include their plugin in the project.

Extensions solve these key disadvantages of plugins and allow us to open up and encourage feature development in the community.

Below are the major milestones leading up to launch. We will keep this issue updated with the overall progress (including dates TBD) and links to more information. Granular tracking is through the GitHub SDK Project.

Milestone 0: Extension Namespace

The purpose of this milestone is to namespace the extensions code to run separately from plugins. By the end of this milestone we can demo extensions running in the OpenSearch Dashboards UI. In the nav, we’ll see OpenSearch Extensions and a “Hello World”. When you click on Hello world it will show a page that calls an OpenSearch Dashboards API and renders text. This does not yet provide ability to call the APIs externally.

Milestone 1: Installation and Configuration

The purpose of this milestone is to demonstrate an extension being installed, configured, and running.

Milestone 2: Version Compatibility

The purpose of this milestone is to demonstrate each extension has its own version and a version compatibility matrix.

Milestone 3: Dependency Management

By the end of this milestone extensions will run without access to global_shared_deps and manages their own dependencies.

Milestone 4: Uninstalling and Dependencies (stabilization)

By the end of this milestone we can demo an extension being installed and showing no impact to stabilization of app (aka no white screen). If an extension has other extensions depending on it, we will disable the downstream extensions.

Milestone 5: OpenSearch Dashboards APIs and Lifecycle Hooks

By the end of this milestone we can demo an extension, like AD, leveraging the SDK.

Note: This requires a lot more research.

Milestone 6: Experimental Release / Build Release artifacts

By the end of this milestone we can demo the built artifacts (tarballs) (e.g. SDK, any extension, etc). This major milestone should position the SDK for an experimental release. Our goal is to hit this milestone in June.

Milestone X: Catalog MVP

This will consist of a basic listing of extensions and other artifacts on our website. Details of this effort are still being worked on.

Milestone X: OpenSearch Dashboards - Decoupling the rigid dependency

By the end of this milestone we can demo Dashboards running with versions of OpenSearch and Plugins that are not the same version. Please review the RFC for details. We will update our milestones above as we figure out where it will land in the milestone schedule.

@seanneumann seanneumann self-assigned this Jan 5, 2023
@seanneumann seanneumann changed the title [EPIC] Launch Dashboards Extensions SDK Launch Dashboards Extensions SDK Jan 5, 2023
@seanneumann seanneumann pinned this issue Jan 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant