## Simple Schema for Open Search The purpose of this Plugin is to enhance open-search engine with user-domain schema by using GraphQL. These capabilities include: - **Schema creation** - **Code Generation** - **Query support** - **Endpoint Generation** ## How does it work? With Open-Search as the search engine database, the simple-search plugin employs GraphQL Library to allow applications to have their data treated natively from the front-end all the way to storage, avoiding duplicate schema work and ensuring flawless integration between front-end and backend developers. The simple-schema opensearch plugin-Library allows describing the schema of your data, it can generate an entire executable schema with all the additional types needed to execute queries and mutations to interact with your database. ## Features The simple-schema plugin-Library presents a large feature set for interacting with opensearch database using GraphQL: - Automatic generation of Queries and Mutations for CRUD interactions - Various Types, including temporal and spatial types - Support for both entity and relationship properties - Extensibility through the @custom directive and/or Custom Resolvers - Extensive Filtering and Sorting options - Options for index Autogeneration and Default Values - Multiple Pagination options ### Project Maturity: The project is currently under 'Alpha' stage. ``` Alpha - The code is released with instructions to build. Built distributions of the software may not be available. Some features many not be complete. Additional testing and developement work is planned. ``` ### Documentation Read the [documentation](https://github.com/opensearch-project/simple-schema/blob/main/docs) ## Quick start Once you have installed opensearch, you can install simple-schema from a remote URL or a local file. 1. Browse the [releases](https://github.com/opensearch-project/simple-schema/releases). 2. Find a release that matches your version of opensearch. Copy the name of the .zip file. 3. Install the plugin using the `opensearch-plugin` script that comes with opensearch. **Example**: `opensearch-plugin install https://github.com/opensearch-project/simple-schema/releases-2.4.zip` Read the [installation](https://github.com/opensearch-project/simple-schema/blob/main/docs/installation.md) docs for more details. ------------- ## Next steps Read the [documentation](https://github.com/opensearch-project/simple-schema/blob/main/docs/basic-usage.md) to learn about - [entity models](https://github.com/opensearch-project/simple-schema/blob/main/docs/entity-model.md) - [index auto generation](https://github.com/opensearch-project/simple-schema/blob/main/docs/index-provider.md) - [query syntax](https://github.com/opensearch-project/simple-schema/blob/main/docs/query-sytax.md) - [endpoint](https://github.com/opensearch-project/simple-schema/blob/main/docs/endpoint.md) ## Code Summary ### OpenSearch-SimpleSchema | | | | ---------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------| | Test and build | [![Simple-Schema OpenSearch Build CI][opensearch-build-badge]][opensearch-build-link] | | Code coverage | [![codecov][opensearch-codecov-badge]][codecov-link] | | Distribution build tests | [![OpenSearch IT tests][opensearch-it-badge]][opensearch-it-link] [![OpenSearch IT code][opensearch-it-code-badge]][opensearch-it-code-link] | | Backward compatibility tests | [![BWC tests][bwc-tests-badge]][bwc-tests-link] | ### Issues | | | -------------------------------------------------------------- | | [![good first issues open][good-first-badge]][good-first-link] | | [![features open][feature-badge]][feature-link] | | [![enhancements open][enhancement-badge]][enhancement-link] | | [![bugs open][bug-badge]][bug-link] | | [![untriaged open][untriaged-badge]][untriaged-link] | | [![nolabel open][nolabel-badge]][nolabel-link] | [opensearch-build-badge]: https://github.com/opensearch-project/simple-schema/actions/workflows/opensearch-simpleschema-test-and-build-workflow.yml/badge.svg [opensearch-build-link]: https://github.com/opensearch-project/simple-schema/actions/workflows/opensearch-simpleschema-test-and-build-workflow.yml [opensearch-codecov-badge]: https://codecov.io/gh/opensearch-project/simple-schema/branch/main/graphs/badge.svg?flag=opensearch-simple-schema [codecov-link]: https://codecov.io/gh/opensearch-project/simple-schema [opensearch-it-badge]: https://img.shields.io/badge/OpenSearch%20Plugin%20IT%20tests-in%20progress-yellow [opensearch-it-link]: https://github.com/opensearch-project/opensearch-build/issues/1124 [opensearch-it-code-badge]: https://img.shields.io/badge/OpenSearch%20IT%20code-blue [opensearch-it-code-link]: https://github.com/opensearch-project/simple-schema/blob/main/opensearch-simple-schema/src/test/org/opensearch/simple-schema/SimpleSearchPluginIT.java [bwc-tests-badge]: https://img.shields.io/badge/BWC%20tests-in%20progress-yellow [bwc-tests-link]: https://github.com/opensearch-project/simple-schema/issues/276 [good-first-badge]: https://img.shields.io/github/issues/opensearch-project/simple-schema/good%20first%20issue.svg [good-first-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+ [feature-badge]: https://img.shields.io/github/issues/opensearch-project/simple-schema/feature.svg [feature-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+label%3Afeature [bug-badge]: https://img.shields.io/github/issues/opensearch-project/simple-schema/bug.svg [bug-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+label%3Abug+ [enhancement-badge]: https://img.shields.io/github/issues/opensearch-project/simple-schema/enhancement.svg [enhancement-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement+ [untriaged-badge]: https://img.shields.io/github/issues/opensearch-project/simple-schema/untriaged.svg [untriaged-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+label%3Auntriaged+ [nolabel-badge]: https://img.shields.io/github/issues-search/opensearch-project/simple-schema?color=yellow&label=no%20label%20issues&query=is%3Aopen%20is%3Aissue%20no%3Alabel [nolabel-link]: https://github.com/opensearch-project/simple-schema/issues?q=is%3Aopen+is%3Aissue+no%3Alabel+ ## Contributing See [developer guide](DEVELOPER_GUIDE.md) and [how to contribute to this project](CONTRIBUTING.md). ## Getting Help If you find a bug, or have a feature request, please don't hesitate to open an issue in this repository. For more information, see [project website](https://opensearch.org/) and [documentation](https://opensearch.org/docs). If you need help and are unsure where to open an issue, try [forums](https://discuss.opendistrocommunity.dev/). ## Code of Conduct This project has adopted the [Amazon Open Source Code of Conduct](CODE_OF_CONDUCT.md). For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq), or contact [opensource-codeofconduct@amazon.com](mailto:opensource-codeofconduct@amazon.com) with any additional questions or comments. ## Security If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue. ## License This project is licensed under the [Apache v2.0 License](LICENSE). ## Copyright Copyright OpenSearch Contributors. See [NOTICE](NOTICE) for details.