Skip to content

[Repository Request] opensearch-flux #500

@Maosaic

Description

@Maosaic

Are you requesting a new GitHub Repository within opensearch-project GitHub Organization?

Yes

GitHub Repository Proposal

GitHub Repository Additional Information

1. What is the new GitHub repository name?

opensearch-flux

2. Project description and community value?

OpenSearch Flux is a CLI tool and MCP server for migrating OpenSearch Dashboards saved objects (dashboards, visualizations, index patterns, saved searches) between OpenSearch instances. It automates the full export → inspect → repair → import pipeline, handling cross-platform differences between AOS domains, AOSS serverless collections, OpenSearch Dashboards Applications, and self-managed OpenSearch clusters.

Community value: eliminates hours of manual NDJSON editing for dashboard migrations, handles edge cases that are nearly impossible to get right manually (nested JSON data source remapping, TSVB/Vega spec injection, compound ID stripping, field compatibility checks), and enables bulk migration of entire dashboard portfolios.

3. What user problem are you trying to solve with this new repository?

There is no built-in tool to migrate Dashboards saved objects between OpenSearch instances when the source and target use different data source configurations, index naming schemes, or platform types. Users currently resort to manual NDJSON editing, which is error-prone and time-consuming. This tool automates the entire process with validation and auto-repair.

4. Why do we create a new repo at this time?

The tool is production-ready after 6 rounds of end-to-end testing across real AWS endpoints. All 6 migration scenarios (UI→UI, AOS→UI, AOSS→UI, index remap, missing fields, bulk 43 dashboards) pass at 100% success rate with 0 critical failures. The codebase is stable and well-documented.

5. Is there any existing projects that is similar to your proposal?

opensearch-migrations handles data and cluster migrations (index data, cluster upgrades). OpenSearch Flux is complementary — it focuses specifically on Dashboards saved object migration (metadata, not data). The two tools address different layers of the migration problem.

6. Should this project be in OpenSearch Core/OpenSearch Dashboards Core? If no, why not?

No. This is a standalone CLI tool and MCP server, not a plugin or core feature. It operates externally against the existing Dashboards saved objects API and does not require changes to OpenSearch or OpenSearch Dashboards. Keeping it as a separate repository allows independent versioning and release cycles, and makes it usable with any OpenSearch version that supports the saved objects API.

7. Is this project an OpenSearch/OpenSearch Dashboards plugin to be included as part of the OpenSearch release?

Not at this time. OpenSearch Flux is currently a standalone Node.js CLI tool and MCP server that operates externally against the Dashboards saved objects API. However, we are considering building an OpenSearch Dashboards plugin in the future to enable an in-app migration experience. If that happens, we would evaluate inclusion in the OpenSearch Dashboards release at that point.

GitHub Repository Owners

1. Who will be supporting this repo going forward?

OpenSearch Dashboard maintainers will maintain the repository.

2. What is your plan (including staffing) to be responsive to the community?

  • Triage and respond to new issues within 2 weeks
  • Review PRs within 1 weeks
  • Monitor OpenSearch forum threads related to dashboard migration on a monthly basis
  • Maintain CI/CD pipeline and publish releases as needed

3. Initial Maintainers List (max 3 users, provide GitHub aliases):

  1. @Maosaic
  2. @xinruiba
  3. @seraphjiang

GitHub Repository Source Code / License / Libraries

1. Please provide the URL to the source code.

https://github.com/Maosaic/opensearch-flux

2. What is the license for the source code?

Apache License 2.0

3. Does the source code include any third-party code that is not compliant with the Apache License 2.0?

No. All dependencies are Apache 2.0 compatible:

  • @modelcontextprotocol/sdk (MIT)
  • commander (MIT)
  • zod (MIT)
  • form-data (MIT)
  • typescript (Apache 2.0)
  • AWS SDK v3 packages (Apache 2.0)

What is the publication target(s)?

You can choose multiple targets from the list.

NPM

Notes (DO NOT CHANGE)

Next Steps:

  • If this is about creating a new GitHub Repository

    • Build Interest Group (BIG) and its members will review your proposal and provide feedback
      • Review of Proposal, asking questions, adding comments
      • If there is any concern regarding the naming / IP, additional IP review will be requested
      • Involve Subject Matter Experts from other repositories on the proposed topics
      • Ensure new repositories align with the foundation’s charter
      • Review the provided source code if any
      • Send final feedback and recommendations to the Technical Steering Committee
    • Technical Steering Committee (TSC) will have a vote based on BIG feedback, and reply back the vote as a comment in this issue by a TSC member
    • At least three positive (+1) TSC members' votes are necessary, and no vetoes (-1) after a one week period, then Admin Team will open a repo creation ticket with Linux Foundation
    • Linux Foundation verify the votes and create repo
    • Admin Team setup automations on repo settings, secrets, scanning, add initial maintainers, and more
    • Repository delivered to the original requester
  • If you already have a GitHub repo and just want to add new publication target(s)

    • Admin Team will review your request and follow up

Track the progress of your request here: Engineering Effectiveness Board (view).
Member of @opensearch-project/admin will take a look at the request soon.
Thanks!

Metadata

Metadata

Type

No type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions