Repository info for OSCI contributors

This topic is a place for OpenSearch repository maintainers to pitch potential contributors on their repository. In a reply, please use the template provided and replace all [bracketed] sections.

Template:

* Repo link: [GitHub link]
* Repo description: [What capabilities does it give users? How does it work with or depend on other OpenSearch repos?]
* Demo or documentation links: [Playground links, user guides, or videos]
* Programming languages and technologies: [List relevant tech]
* Development requirements: [OS or system limitations]

## Why contribute

[What's fun, challenging, or exciting about this particular repo and the issues and features required]?

## OSCI info

* Repo mentors: [List GitHub profile links]
* Office hour times: [Use the "Insert date / time" button or edit this string and keep brackets - it will ensure easy timezone conversion: [date-range from=2023-09-20 to=2023-11-29T10:00:00 timezone="America/Los_Angeles"]]

## Resources

* [List important documentation, guides, or videos]
1 Like

Repo: GitHub - opensearch-project/helm-charts: ☸ A community repository for Helm Charts of OpenSearch Project.
Repo description: helm-charts for OpenSearch and OpenSearch Dashboards

Technical requirements:

  • Programing language: Go templating language
  • Services: docker, kubernetes, helm

Why to contribute: Spinning up a production grade OpenSearch and OpenSearch Dashboards is possible with just one helm install command, its pretty powerful and easy for a user to manage and run the OpenSearch and connect Dashboards with just one click. Contribution to helm-charts repo will not only give a solid foundation and understanding of OpenSearch and OpenSearch Dashboards but also exposure to cutting edge technologies like docker, Kubernetes and its networking. Having contributing to this repo will improve the skill to create/enhance helm-charts of any applications and deploy it in k8s clusters.

OSCI info

Support and resources:

1 Like

Repo: GitHub - opensearch-project/ansible-playbook: 🤖 A community repository for Ansible Playbook of OpenSearch Project.
Repo description: ansible-playbook for OpenSearch and OpenSearch Dashboards

Technical requirements:

  • Programing language: YAML Markup, Shell, etc.
  • Services: ansible

Why to contribute: Spinning up a production grade OpenSearch and OpenSearch Dashboards is possible with just one ansible playbook command, its pretty powerful and easy for a user to manage and run the OpenSearch and connect Dashboards with just one click. Contribution to ansible-playbook repo will not only give a solid foundation and understanding of OpenSearch and OpenSearch Dashboards but also exposure to automation and configuration management. Having contributing to this repo will improve the skill to create/enhance ansible-playbook of any applications and deploy it on multiple servers in one take.

OSCI info

Support and resources:

Why contribute

This project presents an exceptional opportunity to actively engage in a product’s end to end lifecycle that starts from building to releasing a product to the community. It also provides an opportunity to understand the existing process and contributing on top of it or suggesting improvements to make the life of a developer easier while making meaningful contributions to the open-source community. Also, you’ll be working/improving we release OpenSearch and its products to the community.

OSCI info

Resources

1 Like

Why contribute

Diving into OpenSearch Dashboards offers a unique blend of challenges and rewards. As a substantial Node.js application built atop React, contributors can explore both server-side and client-side complexities. This repository stands at the confluence of multiple cutting-edge web application technologies, making it a rewarding experience for contributors. Whether you’re refining the backend or polishing the frontend, each contribution helps in making data more accessible and actionable for users worldwide.

OSCI info

Resources

2 Likes
  • Repo link: GitHub - opensearch-project/oui: OpenSearch UI Framework
  • Repo description: The OpenSearch UI framework (OUI) is the design library we use at the OpenSearch Project to build projects that share our aesthetics. It distributes UI React components and static assets for use in building web layouts.
  • Demo or documentation links: https://oui.opensearch.org/
  • Programming languages and technologies: TypeScript, React, JavaScript, SCSS
  • Development requirements: Linux or MacOS (Windows is currently untested)

Why contribute

OUI is the design library used across OpenSearch Dashboards and OpenSearch Dashboards plugins. It is the library that keeps Dashboards common and consistent across the entire experience. Working on OUI, you’ll get a taste of what it is like to develop the user experience of a large scale application, as well as develop a library and public API. We are currently putting a lot of work into bringing this project into modern times, with large-scale refactors and upgrades, but we’re also working on fine-tuning look-and-feel elements of our shiny new theme, as well as general maintenance of the existing components.

OSCI info

Resources

1 Like

Repository: GitHub - opensearch-project/opensearch-benchmark: OpenSearch Benchmark - a community driven, open source project to run performance tests for OpenSearch (and the associated workloads repository)

Description: The OpenSearch Benchmark performance measurement framework and associated workloads

Documentation: OpenSearch Benchmark - OpenSearch documentation

Programming languages and technologies: Python 3

Development requirements: See the documentation link above

Why contribute

OpenSearch Benchmark is the primary performance benchmarking tool for OpenSearch, widely used by engineers, developers and customers. Working on this codebase is a great opportunity to develop experience with a substantial application that is not too large or complex to grasp in a short period of time. Furthermore, being written in Python, it is easily accessible to most software developers.

There are a number of enhancements, improvements and fixes that can be tackled in this project, ranging from trivial one to complex and wide-ranging modifications. It is also an excellent entry point to understanding OpenSearch performance and getting clear insights into performance measurement techniques.

OSCI info

Repo mentors: GitHub handles: rishabh6788, IanHoang, gkamat
Office hour times: Every Thursday from 1:30 pm to 2 pm (PST/PDT), starting on September 20th, 2023, and ending on November 29th, 2023 [under discussion]

Resources

  • Documentation
  • Developer guide in the repository above
  • Workloads repository
  • Slack channel #performance in the OpenSearch project
1 Like

Repo link: GitHub - opensearch-project/opensearch-py-ml

Repo Description: Client plugin for data exploration and machine learning in Opensearch.

Demo or Documentation links

  1. Opensearch-py-ml - OpenSearch documentation
  2. GitHub - opensearch-project/opensearch-py-ml
  3. https://github.com/opensearch-project/opensearch-py-ml/blob/main/DEVELOPER_GUIDE.md
  4. Opensearch-py-ml: DataFrames and Machine Learning backed by Opensearch — Opensearch-py-ml 1.1.0 documentation
  5. Examples — Opensearch-py-ml 1.1.0 documentation
  6. About ML Commons - OpenSearch documentation

Programming languages and technologies: Python
Development requirements: Compatible with OS systems including Windows, Linux, and MacOS.

Why contribute

ML-Commons is the entry point of machine learning and natural language processing in opensearch. And opensearch-py-ml is the client plugin of ML-Commons and other supporting tasks which needs to be developed in Python.

OSCI Info

  • Repo mentors:

  • Dhrubo Saha dhrubo (Dhrubo Saha) · GitHub

  • Office hour times: Every Thursday from 9am to 10am (PST/PDT), starting on September 20th, 2023, and ending on November 29th, 2023. [under discussion]

1 Like
  • Repo link: Security
  • Repo description: The security repository is a plugin for OpenSearch that provides security features for OpenSearch. Features of the security plugin include authentication, access control, encryption and audit logging
  • Demo or documentation links: About Security in OpenSearch
  • Programming languages and technologies: Java. The security repo will expose you to many different security concepts like SSL/TLS, JWTs, SAML, OpenID Connect, LDAP and
  • Development requirements: Windows, Linux, or macOS

Why contribute

Security is a great repo to make contributions to if you are interested in cybersecurity and want to better understand how security works in a distributed system like OpenSearch. Cluster administrators use security to setup the security posture of their cluster and create policies to protect the data within the OpenSearch cluster.

OSCI info

  • Repo mentors:
  1. Craig Perkins - cwperks
  2. Stephen Crawford - scrawfor99
  • Office hour times: 2023-09-20T04:00:00Z2023-11-29T15:00:00Z

Resources


  • Repo link: Security Dashboards Plugin
  • Repo description: The security-dashboards-plugin repository is a plugin for OpenSearch Dashboards that provides a user interface configuring the security posture of a cluster
  • Demo or documentation links: Developer Guide
  • Programming languages and technologies: JavaScript, TypeScript, React
  • Development requirements: Windows, Linux, or macOS

Why contribute

security-dashboards-plugin is the security plugin’s companion OpenSearch Dashboards plugin to interact with security dynamically through pages in OpenSearch Dashboards. This is a great repo to make contributions to if you are interested in frontend technologies like React and want a smaller codebase to work with. I would encourage contributors interested in a full-stack experience to contribute to both security and the security-dashboards-plugin

OSCI info

  • Repo mentors:
  1. Craig Perkins - cwperks
  2. Stephen Crawford - scrawfor99
  • Office hour times: 2023-09-20T04:00:00Z2023-11-29T15:00:00Z

Resources

1 Like
  • Repo link: dashboards-search-relevance
  • Repo description: The plugin currently contains the Search Comparison Tool, which allows users to enter a plain text search query, substitute that query into two different QueryDSLs and compare the results side by side.
  • Demo or documentation links:
  • Programming languages and technologies:
    • Languages: TypeScript
    • Frameworks: React
  • Development requirements: Compatible with Windows, Linux, and MacOS

Why contribute

The Search Relevance Dashboards plugin is one of the most useful tools to learn OpenSearch as a beginner, both in use and in development. Currently, our plugin contains the Search Comparison Tool, a simple but powerful tool that allows users to compare and tune search queries and configurations to achieve optimal results. While smaller than most other dashboard plugins and in an earlier stage, its simplicity offers the unique opportunity for a developer to quickly understand how front-end plugins in OpenSearch Dashboards work. Speaking from my own experience, working on the Search Relevance plugin will not only improve your front-end development, but also will also broaden your understanding of search with OpenSearch itself. New ideas to improve the plugin are always welcome as well.

OSCI info

  • Repo mentors: sejli (Sean Li) · GitHub
  • Office hour times: Every Tuesday from 4 PM (PST/PDT) starting on September 20th, 2023, and ending on November 29th, 2023.

Resources

1 Like

Why contribute

Index management is one of the most adopted OpenSearch plugins which consists of 4 features — Index State Management, Rollup, Transform and Snapshot Management. Each feature exposes CRUD REST APIs and UI to the users. Internally, this plugin utilizes job scheduling system and builds state machine to run actions in each job. Working on this repo is a good opportunity to develop experience on a decent size project in the open source world. With mentor’s help, you will be able to grasp real world programming knowledge in a short period of time and work on series of issues that would make impact to others. Please go ahead check the good first issue in the repo if you are interested.

OSCI info

Resources

1 Like
  • Repo link: Demos

  • Repo description: The demos repo is a new one in the OpenSearch space. People working on demos will get to experience first hand what people are doing with OpenSearch. These demos can come in all shapes and sizes from semantic search to network observability. Demo’s generally are built with some combination of scripts and infrastructure components like docker compose.

  • Demo or documentation links: N/A

  • Programming languages and technologies: Python, Docker, ML, Search, Observabiltity

  • Development requirements: Generally people need laptops with higher memory (RAM) and quick CPU’s as some of these demos can be very resource intensive.

Why contribute

Through the creation of these demos, you will be able to help others with similar use cases and in many ways effect the whole OpenSearch project. An example of this is with the Machine Learning demo I am currently working on. By going through our documentation to set up the Neural Search plugin I was able to identify several ares of the project that needed improvement shown below:

OSCI info

Resources

  • Help us make these resources please
1 Like

Repos:
Alerting plugin (backend)
Alerting Dashboards plugin (frontend)

Repo description: The OpenSearch Alerting plugin enables users to configure monitors that regularly execute search queries and cluster status API calls to their clusters, and generate alerts based on user-defined trigger conditions.

Technical requirements:

  • Backend:
    • Programming languages: Kotlin (primary), and java languages (JDK 11+).
  • Frontend:
    • Programming languages: Javascript (primary), and typescript languages.
    • Services: node (v16), yarn, and cypress.

Why to contribute:
In addition to the powerful backend API that allow users to easily automate monitoring their clusters, the Alerting plugin features an intuitive OpenSearch Dashboards interface. This makes it easy to set up, manage, and monitor your alerts. Craft highly specific trigger conditions using OpenSearch’s full query language and scripting capabilities. The Alerting plugin also integrates with the Notifications plugin to allow users to configure their monitors to send alert notifications automatically to stakeholders.

OSCI info:

Support and resources:

1 Like

OpenSearch Language Clients

OpenSearch language clients empower developers to interact seamlessly with OpenSearch, offering compatibility with other OpenSearch components and streamlining integration with their preferred programming languages.

Why contribute

Embark on an exhilarating journey into the heart of OpenSearch by contributing to language-specific clients such as Python, Java, JavaScript, Ruby, PHP, Rust, .NET, and Go, which serve as essential tools for interacting with OpenSearch clusters. Your mission is to elevate these clients’ capabilities, fortify their resilience, and streamline development workflows. By doing so, you’ll not only enhance your coding skills but also gain practical experience while collaborating with a thriving open-source community. Your contributions will have a global impact, making OpenSearch more accessible and beneficial to users around the world.

OSCI info

Resources

  • Repo link:
    Github - Performance Analyzer
    GitHub - Performance Analyzer RCA
  • Repo description:
    The Performance Analyzer plugin helps you get detailed performance metrics from your cluster independently of the Java Virtual Machine (JVM).
    The Performance Analyzer RCA is a framework that builds on the Performance Analyzer engine to support root cause analysis (RCA) of performance and reliability problems for OpenSearch instances.
  • Documentation links: Performance Analyzer
  • Programming languages and technologies: Java

Why contribute

As an OpenSearch plugin, the open-source Performance Analyzer ¶ is one of the key components that collects fine-grained system and service level metrics (see exhaustive metrics list here) from the OpenSearch cluster. Running as a side-car process on OpenSearch Cluster nodes, the open-sourced Root Cause Analyzer reads and analyze the metrics collected by PA at a node level and runs them through a data flow graph that computes root causes. It then produces a “root-cause analysis”, that effectively pinpoints resources within the cluster that are experiencing contention.

By working on those projects you can make direct impact on user experience as they use the performance analyzer plugin. It is a great way to understand the performance analyzer and Root cause analysis workflow and how it’s being used by consumers. Additionally, it is a wonderful learning opportunity to work with other software engineers while also contributing to an open sourced community.

OSCI info

  • Repo mentors:
    Chenyang Ji: Github

  • Office hour times: Every Thursday, from 1:30pm to 2:00pm

Resources

Why contribute

This project is a fantastic opportunity to gain hands-on experience not only on OpenSearch and OpenSearch Dashboard, but also one will understand the working of the terraform, terraform provider and Golang. Terraform is widely used for infrastructure provisioning and management, so getting hands on with terraform will help one setup/mange infrastructure for multiple software applications. Understanding/Learning Golang is very important for modern development as Golang is not used for automations but also to develop software applications.

OSCI info

Resources

@dhrubo, can you please fix office hour times? You mentioned 9AM to 10PM…

Fixed, thanks @rawwar for pointing this out.

1 Like
  • Repo link: opensearch-project/documentation-website
  • Repo description: The documentation for OpenSearch, OpenSearch Dashboards, and their associated plugins.
  • Programming languages and technologies: Markdown, Ruby, Jekyll
  • Development requirements: Requires an IDE with Ruby to build the site locally with Jekyll.

Why contribute

Contributing to the documentation-website provides participants an opportunity to expand OpenSearch’s growing documentation content library. Contributors will help their fellow OpenSearch developers and end users understand and successfully use the deep, robust tools that OpenSearch has to offer. There is ample opportunity and high demand for comprehensive code samples and use cases that provide in-depth knowledge assets for successful setup and consumption of the platform.

Documentation-website mentors can work alongside you to ensure that best practices for writing content are followed. We can also provide you with fundamentals of technical writing, if interested. The documentation team has defined and mastered a simplified process for creating content that ensures that bar-raising content is accurate and delivered quickly. We encourage you to work with us, and welcome and appreciate any contributions you can make!

OSCI info

  • Repo mentors: [Naarcha-AWS]
  • Office hour times: 2023-10-03T22:30:00Z2023-10-03T23:15:00Z

Resources

OSCI info

  • Repo mentors: sejli (Sean Li) · GitHub
  • Office hour times: Tentatively: ~Every Tuesday from 4 PM (PST/PDT) starting on September 20th, 2023, and ending on November 29th, 2023.~