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]
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.
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.
Repo description: Both the above repositories play a vital role in building, testing and releasing OpenSearch and OpenSearch Dashboard distributions as well as releasing standalone components under OpenSearch Project such as clients, data-prepper, etc
Programming languages and technologies: [List relevant tech]
Development requirements: [OS or system limitations]
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.
Repo description: OpenSearch Dashboards is a visualization and analytics tool designed to work in tandem with OpenSearch. It enables users to dive deep into their data, visualize trends, patterns, and outliers, and make data-driven decisions effectively. OpenSearch Dashboards operates as the visual component of the OpenSearch ecosystem and seamlessly integrates with other OpenSearch repositories to provide a comprehensive search and analysis solution.
Programming languages and technologies: TypeScript, JavaScript, HTML, SASS, React
Development requirements: Compatible with OS systems including Windows, Linux, and MacOS.
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.
Office hour times: Every Wednesday or Friday from 10am to 12pm (PST/PDT), starting on September 20th, 2023, and ending on November 29th, 2023. [under discussion]
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.
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.
Office hour times: Every Wednesday or Friday from 10am to 12pm (PST/PDT), starting on September 20th, 2023, and ending on November 29th, 2023. [under discussion] (same as OpenSearch Dashboards)
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
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.
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
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.
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
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
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.
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.
Programming languages and technologies: Kotlin, Typescript, React
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.
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:
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.
OpenSearch language clients empower developers to interact seamlessly with OpenSearch, offering compatibility with other OpenSearch components and streamlining integration with their preferred programming languages.
Programming languages and technologies: Java, Go, Python, PHP, .NET/C#, Rust, Ruby, JavaScript (Node.js)
Development requirements: Compatible with Windows, Linux, MacOS
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.
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.
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.
Programming languages and technologies: Golang, Terraform(HCL)
Development requirements: [OS or system limitations]
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.
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!