-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
214 changed files
with
11,593 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
name: Bug report | ||
about: Create a bug report to help fix a problem with the INFINI Gateway | ||
|
||
--- | ||
|
||
### Description | ||
|
||
A description of what the bug is. | ||
|
||
### Steps to reproduce | ||
|
||
1. Start INFINI Gateway | ||
2. Second step | ||
3. Third step | ||
|
||
### Expected behavior | ||
|
||
A description of what you expected to happen. | ||
|
||
### Actual behavior | ||
|
||
A description of what happens instead. | ||
|
||
### Environment | ||
|
||
* Build: [e.g. gateway 1.0.0_SNAPSHOT 2021-09-05 15:41:02 1a8f196 - type "-v" in the Command Palette] | ||
* Operating system and version: [e.g. macOS 10.14, Windows 10, Ubuntu 18.04] | ||
* [Linux] Desktop Environment and/or Window Manager: [e.g. Gnome, LXDE, i3] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
blank_issues_enabled: false | ||
contact_links: | ||
- name: Looking for help or discussion | ||
url: https://discord.gg/4tKTMkkvVX | ||
about: Please use Discord as the place to connect with other members of our community, for help and sharing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
name: Enhancement or feature request | ||
about: Suggest an enhancement or feature for INFINI Gateway | ||
|
||
--- | ||
|
||
### Problem description | ||
|
||
A description of a problem, workflow or integration that your suggestion would solve. | ||
If the problem is OS-specific, include that information here. | ||
|
||
### Preferred solution | ||
|
||
A description of what changes should be made to INFINI Gateway to solve the problem. | ||
|
||
### Alternatives | ||
|
||
A description of any alternative solutions or enhancements considered. | ||
|
||
### Additional Information (optional) | ||
|
||
If applicable, add screenshots to help demonstrate the problem or proposed solution. | ||
Code examples or related links are useful, too. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
name: Build and Deploy Docs | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- 'v*' | ||
tags: | ||
- 'v*' | ||
|
||
jobs: | ||
build-deploy-docs: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout Product Repo | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set Variables Based on Ref | ||
id: vars | ||
run: | | ||
CURRENT_REF=${GITHUB_REF##*/} | ||
if [[ "${GITHUB_REF_TYPE}" == "branch" ]]; then | ||
if [[ "$CURRENT_REF" == "main" ]]; then | ||
echo "VERSION=main" >> $GITHUB_ENV | ||
echo "BRANCH=main" >> $GITHUB_ENV | ||
else | ||
echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV | ||
echo "BRANCH=$CURRENT_REF" >> $GITHUB_ENV | ||
fi | ||
elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then | ||
echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV | ||
echo "BRANCH=main" >> $GITHUB_ENV # Set BRANCH to 'main' for tags | ||
fi | ||
# Gather branches and tags, sort, remove duplicates | ||
VERSIONS=$(git for-each-ref refs/remotes/origin refs/tags --format="%(refname:short)" | \ | ||
grep -E "^v[0-9.]+$" | sort -Vr | uniq | tr '\n' ',' | sed 's/,$//') | ||
echo "VERSIONS=main,$VERSIONS" >> $GITHUB_ENV | ||
- name: Install Hugo | ||
run: | | ||
wget https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_Linux-64bit.tar.gz | ||
tar -xzvf hugo_extended_0.79.1_Linux-64bit.tar.gz | ||
sudo mv hugo /usr/local/bin/ | ||
- name: Checkout Docs Repo | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: infinilabs/docs | ||
path: docs-output | ||
token: ${{ secrets.DOCS_DEPLOYMENT_TOKEN }} | ||
|
||
- name: Build Documentation | ||
run: | | ||
(cd docs && OUTPUT=$(pwd)/../docs-output make docs-build docs-place-redirect) | ||
- name: Commit and Push Changes to Docs Repo | ||
working-directory: docs-output | ||
run: | | ||
git config user.name "GitHub Actions" | ||
git config user.email "[email protected]" | ||
if [[ -n $(git status --porcelain) ]]; then | ||
git add . | ||
git commit -m "Rebuild docs for version $VERSION" | ||
git push origin main | ||
else | ||
echo "No changes to commit." | ||
fi | ||
- name: Rebuild Docs for Latest Version (main), if not already on main | ||
run: | | ||
# Only rebuild the main branch docs if the current ref is not "main" | ||
if [[ "$CURRENT_REF" != "main" ]]; then | ||
echo "Switching to main branch and rebuilding docs for 'latest'" | ||
# Checkout the main branch of the product repo to rebuild docs for "latest" | ||
git checkout main | ||
# Ensure the latest changes are pulled | ||
git pull origin main | ||
# Build Docs for Main Branch (latest) | ||
(cd docs && OUTPUT=$(pwd)/../docs-output VERSION="main" BRANCH="main" make docs-build docs-place-redirect) | ||
# Commit and Push Latest Docs to Main | ||
cd docs-output | ||
git config user.name "GitHub Actions" | ||
git config user.email "[email protected]" | ||
if [[ -n $(git status --porcelain) ]]; then | ||
git add . | ||
git commit -m "Rebuild docs for main branch with latest version" | ||
git push origin main | ||
else | ||
echo "No changes to commit for main." | ||
fi | ||
else | ||
echo "Current ref is 'main', skipping rebuild for 'latest'." | ||
fi | ||
working-directory: ./ # Working in the product repo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# INFINI Gateway | ||
|
||
## Introduction | ||
|
||
![](./docs/static/img/banner.jpg) | ||
|
||
**INFINI Gateway** is a high performance gateway for Elasticsearch/OpenSearch/Easysearch. It offers a broad range of features and is easy to use. INFINI Gateway works in the same way as a common reverse proxy. | ||
It is usually deployed in front of Elasticsearch/OpenSearch/Easysearch clusters. All requests are sent to the gateway instead of Elasticsearch/OpenSearch/Easysearch, and then the gateway forwards the requests to the back-end Elasticsearch/OpenSearch/Easysearch clusters. | ||
The gateway is deployed between the client and Elasticsearch/OpenSearch/Easysearch. Therefore, the gateway can be configured to perform index-level traffic control and throttling, cache acceleration for common queries, query request audit, and dynamic modification of query results. | ||
|
||
## Features | ||
|
||
> The application-layer INFINI Gateway is especially designed for Elasticsearch/OpenSearch/Easysearch and offers powerful features. | ||
- High availability: The gateway supports non-stop indexing and is capable of automatically processing faults occurring on Elasticsearch/OpenSearch/Easysearch, without affecting normal data ingestion. | ||
- Write acceleration: The gateway can automatically merge independent index requests into a bulk request, thereby reducing back-end pressure and improving indexing efficiency. | ||
- Query acceleration: Query cache can be configured on INFINI Gateway and Kibana dashboards can accelerate the query seamlessly and intelligently to fully enhance search experience. | ||
- Seamless retry: The gateway automatically processes faults occurring on Elasticsearch/OpenSearch/Easysearch, and migrates and retries query requests. | ||
- Traffic cloning: The gateway can replicate traffic to multiple different Elasticsearch/OpenSearch/Easysearch clusters and supports traffic migration through canary deployment. | ||
- One-click rebuilding: The optimized high-speed index rebuilding and automatic processing of incremental data enable the gateway to seamlessly switch between old and new indexes. | ||
- Secure transmission: The gateway supports the Transport Layer Security (TLS) and Hypertext Transfer Protocol Secure (HTTPS) protocols. It can automatically generate certification files and supports specified trust certification files. | ||
- Precision routing: The gateway supports the load balancing mode using multiple algorithms, in which load routing strategies can be separately configured for indexing and query, providing great flexibility. | ||
- Traffic control and throttling: Multiple traffic control and throttling rules can be configured to implement index-level traffic control and ensure the stability of back-end clusters. | ||
- Concurrency control: The gateway can control cluster- and node-level concurrent TCP connections to ensure the stability of back-end clusters and nodes. | ||
- No single point of failure (SPOF): The built-in virtual IP-based high availability solution supports dual-node hot standby and automatic failover to prevent SPOFs. | ||
- Request observability: The gateway is equipped with the logging and indicator monitoring features to fully analyze Elasticsearch/OpenSearch/Easysearch requests. | ||
|
||
|
||
To learn more about Gateway, please visit: https://docs.infinilabs.com/gateway/ | ||
|
||
## Community | ||
|
||
Fell free to join the Discord server to discuss anything around this project: | ||
|
||
[https://discord.gg/4tKTMkkvVX](https://discord.gg/4tKTMkkvVX) | ||
|
||
## License | ||
|
||
INFINI Gateway is a truly open-source project, licensed under the [GNU Affero General Public License v3.0](https://opensource.org/licenses/AGPL-3.0). | ||
We also offer a commercially supported, enterprise-ready version of the software. | ||
For more details, please refer to our [license information](./LICENSE). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/public/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
SHELL=/bin/bash | ||
|
||
# Basic info | ||
PRODUCT?= $(shell basename "$(shell cd .. && pwd)") | ||
BRANCH?= main | ||
VERSION?= $(shell [[ "$(BRANCH)" == "main" ]] && echo "main" || echo "$(BRANCH)") | ||
CURRENT_VERSION?= $(VERSION) | ||
VERSIONS?= "main" | ||
OUTPUT?= "/tmp/docs" | ||
THEME_FOLDER?= "themes/book" | ||
THEME_REPO?= "https://github.com/infinilabs/docs-theme.git" | ||
THEME_BRANCH?= "main" | ||
|
||
.PHONY: docs-build | ||
|
||
default: docs-build | ||
|
||
docs-init: | ||
@if [ ! -d $(THEME_FOLDER) ]; then echo "theme does not exist";(git clone -b $(THEME_BRANCH) $(THEME_REPO) $(THEME_FOLDER) ) fi | ||
|
||
docs-env: | ||
@echo "Debugging Variables:" | ||
@echo "PRODUCT: $(PRODUCT)" | ||
@echo "BRANCH: $(BRANCH)" | ||
@echo "VERSION: $(VERSION)" | ||
@echo "CURRENT_VERSION: $(CURRENT_VERSION)" | ||
@echo "VERSIONS: $(VERSIONS)" | ||
@echo "OUTPUT: $(OUTPUT)" | ||
|
||
docs-config: docs-init | ||
cp config.yaml config.bak | ||
# Detect OS and apply the appropriate sed command | ||
@if [ "$$(uname)" = "Darwin" ]; then \ | ||
echo "Running on macOS"; \ | ||
sed -i '' "s/BRANCH/$(VERSION)/g" config.yaml; \ | ||
else \ | ||
echo "Running on Linux"; \ | ||
sed -i 's/BRANCH/$(VERSION)/g' config.yaml; \ | ||
fi | ||
|
||
docs-build: docs-config | ||
hugo --minify --theme book --destination="$(OUTPUT)/$(PRODUCT)/$(VERSION)" \ | ||
--baseURL="/$(PRODUCT)/$(VERSION)" | ||
@$(MAKE) docs-restore-generated-file | ||
|
||
docs-place-redirect: | ||
echo "<!DOCTYPE html> <html> <head> <meta http-equiv=refresh content=0;url=main /> </head> <body> <p><a href=main />REDIRECT TO THE LATEST_VERSION</a>.</p> </body> </html>" > $(OUTPUT)/$(PRODUCT)/index.html | ||
|
||
docs-restore-generated-file: | ||
mv config.bak config.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# INFINI Gateway Documentation | ||
|
||
## Hugo v0.79.x extended version | ||
- https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_Linux-64bit.tar.gz | ||
- https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_Windows-64bit.zip | ||
- https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_macOS-64bit.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# VERSIONS=latest,v1.0 hugo --minify --baseURL="/product/v1.0/" -d public/product/v1.0 | ||
|
||
title: INFINI Gateway | ||
theme: book | ||
|
||
# Book configuration | ||
disablePathToLower: true | ||
enableGitInfo: false | ||
|
||
# Needed for mermaid/katex shortcodes | ||
markup: | ||
goldmark: | ||
renderer: | ||
unsafe: true | ||
tableOfContents: | ||
startLevel: 1 | ||
|
||
# Multi-lingual mode config | ||
# There are different options to translate files | ||
# See https://gohugo.io/content-management/multilingual/#translation-by-filename | ||
# And https://gohugo.io/content-management/multilingual/#translation-by-content-directory | ||
defaultContentLanguage: en | ||
languages: | ||
en: | ||
languageName: English | ||
contentDir: content.en | ||
weight: 3 | ||
|
||
|
||
menu: | ||
before: [] | ||
after: | ||
- name: "Github" | ||
url: "https://github.com/infinilabs/gateway" | ||
weight: 10 | ||
|
||
params: | ||
# (Optional, default light) Sets color theme: light, dark or auto. | ||
# Theme 'auto' switches between dark and light modes based on browser/os preferences | ||
BookTheme: "auto" | ||
|
||
# (Optional, default true) Controls table of contents visibility on right side of pages. | ||
# Start and end levels can be controlled with markup.tableOfContents setting. | ||
# You can also specify this parameter per page in front matter. | ||
BookToC: true | ||
|
||
# (Optional, default none) Set the path to a logo for the book. If the logo is | ||
# /static/logo.png then the path would be logo.png | ||
BookLogo: img/logo | ||
|
||
# (Optional, default none) Set leaf bundle to render as side menu | ||
# When not specified file structure and weights will be used | ||
# BookMenuBundle: /menu | ||
|
||
# (Optional, default docs) Specify root page to render child pages as menu. | ||
# Page is resoled by .GetPage function: https://gohugo.io/functions/getpage/ | ||
# For backward compatibility you can set '*' to render all sections to menu. Acts same as '/' | ||
BookSection: docs | ||
|
||
# Set source repository location. | ||
# Used for 'Last Modified' and 'Edit this page' links. | ||
BookRepo: https://github.com/infinilabs/gateway | ||
|
||
# Enable "Edit this page" links for 'doc' page type. | ||
# Disabled by default. Uncomment to enable. Requires 'BookRepo' param. | ||
# Edit path must point to root directory of repo. | ||
BookEditPath: edit/BRANCH/docs | ||
|
||
# Configure the date format used on the pages | ||
# - In git information | ||
# - In blog posts | ||
BookDateFormat: "January 2, 2006" | ||
|
||
# (Optional, default true) Enables search function with flexsearch, | ||
# Index is built on fly, therefore it might slowdown your website. | ||
# Configuration for indexing can be adjusted in i18n folder per language. | ||
BookSearch: false | ||
|
||
# (Optional, default true) Enables comments template on pages | ||
# By default partals/docs/comments.html includes Disqus template | ||
# See https://gohugo.io/content-management/comments/#configure-disqus | ||
# Can be overwritten by same param in page frontmatter | ||
BookComments: false | ||
|
||
# /!\ This is an experimental feature, might be removed or changed at any time | ||
# (Optional, experimental, default false) Enables portable links and link checks in markdown pages. | ||
# Portable links meant to work with text editors and let you write markdown without {{< relref >}} shortcode | ||
# Theme will print warning if page referenced in markdown does not exists. | ||
BookPortableLinks: true | ||
|
||
# /!\ This is an experimental feature, might be removed or changed at any time | ||
# (Optional, experimental, default false) Enables service worker that caches visited pages and resources for offline use. | ||
BookServiceWorker: false |
Oops, something went wrong.