🐇
翼 Tsubasa •

Tiny, and simple Elasticsearch microservice to abstract searching objects!
Why did you build this?
Tsubasa was built to be a simple abstraction to not use the official SDKs to search objects within an Elasticsearch index, so this is just a simple way to retrieve data from it.
Installation
⚠️ Tsubasa is alpha software, it is NOT production ready! Beware~ >!<
Sweet, you want to use Tsubasa for your own use cases! You can install the Tsubasa server:
- using the Noelware Helm Charts;
- using the official Tsubasa Docker Image;
- locally under the main repository you see
System Requirements
This is the minimum system requirements to bootstrap Tsubasa. You don't need to worry about this if you're running on the Helm Chart since that handles it for you.
- 2GB or higher of system RAM
- 2 CPU Cores or higher
- Go 1.17 or higher
- An instance of Elasticsearch running. This supports single-node and multi-node instances and multiple authentication methods.
Helm Chart
You can install Tsubasa on your Kubernetes cluster with a single command! You will need to index the Noelware Helm Charts under the "noel" user (which is me! :D)
⚠️ You are required to be using Kubernetes >=1.22 and Helm 3!
$ helm repo add noel https://charts.noelware.org/~/noel
You should be able to search the tsubasa repository when using the helm search command.
Now, you should be able to just run tsubasa on a single command:
$ helm install <my-release> noel/tsubasa
...and the server should be running now. The helm chart assumes you installed an Elasticsearch cluster installed.
Docker Image
You can use the official Docker images on ghcr.io or on Docker Hub!
~ ; ... coming soon >o< ... ; ~
Locally with Git
~ ; ... coming soon >o< ... ; ~
Configuraton
Tsubasa is configured using a TOML file which must be in the following locations:
/app/noel/tsubasa/config.toml
if using the Docker Image$ROOT/config.toml
if running locally or wanting to contribute to TsubasaTSUBASA_CONFIG_FILE
environment variable, which will override both clauses above.
You can find an example in the documentation!
Contributing
~ ; ... coming soon >o< ... ; ~
License
Tsubasa is released under the Apache 2.0 License by Noel!
同学,您这个项目引入了81个开源组件,存在2个漏洞,辛苦升级一下
检测到 auguwu/tsubasa 一共引入了81个开源组件,存在2个漏洞
另外还有2个漏洞,详细报告:https://mofeisec.com/jr?p=a966e0
fix(deps): update module github.com/elastic/go-elasticsearch/v8 to v8.3.0
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | github.com/elastic/go-elasticsearch/v8 | require | minor |
v8.2.0
->v8.3.0
|Release Notes
elastic/go-elasticsearch
v8.3.0
Compare Source
API
ML.InferTrainedModelDeployment
renamed toInferTrainedModel
ML.PreviewDatafeed
has two new parameters,start
andend
. DocumentationML.StartTrainedModelDeployment
has three new parameters,number_of_allocations
,threads_per_allocation
andqueue_capacity
. DocumentationCluster.DeleteVotingConfigExclusions
has a newmaster_timeout
parameter.Cluster.PostVotingConfigExclusions
has a newmaster_timeout
parameter.Snapshot.Get
has a newindex_names
parameters (boolean). Whether to include the name of each index in the snapshot. Defaults to true.New APIs
Security.HasPrivilegesUserProfile
(Experimental API) DocumentationConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.
fix(deps): update module github.com/spf13/cobra to v1.5.0
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | github.com/spf13/cobra | require | minor |
v1.4.0
->v1.5.0
|Release Notes
spf13/cobra
v1.5.0
Compare Source
Spring 2022 Release 🌥️
Hello everyone! Welcome to another release of cobra. Completions continue to get better and better. This release adds a few really cool new features. We also continue to patch versions of our dependencies as they become available via dependabot. Happy coding!
Active help 👐🏼
Shout out to @marckhouzam for a big value add: Active Help https://github.com/spf13/cobra/pull/1482. With active help, a program can provide some inline warnings or hints for users as they hit tab. Now, your CLIs can be even more intuitive to use!
Currently active help is only supported for bash V2 and zsh. Marc wrote a whole guide on how to do this, so make sure to give it a good read to learn how you can add this to your cobra code! https://github.com/spf13/cobra/blob/master/active_help.md
Group flags 🧑🏼🤝🧑🏼
Cobra now has the ability to mark flags as required or exclusive as a group. Shout out to our newest maintainer @johnSchnake for this! https://github.com/spf13/cobra/pull/1654 Let's say you have a
username
flag that MUST be partnered with apassword
flag. Well, now, you can enforce those as being required together:Flags may also be marked as "mutally exclusive" with the
MarkFlagsMutuallyExclusive(string, string ... )
command API. Refer to our user guide documentation for further info!Completions 👀
Documentation 📝
CHANGELOG.md
as it isn't updated - @johnSchnake https://github.com/spf13/cobra/pull/1634shell_completion.md
- @danieldn https://github.com/spf13/cobra/pull/1678Testing & CI ⚙️
RICHGO_FORCE_COLOR
- @umarcor https://github.com/spf13/cobra/pull/1647stale-bot
settings - @jpmcb https://github.com/spf13/cobra/pull/1609Beep boop, bot commits 🤖
Misc 💭
errors.Is()
to check for errors - @Luap99 https://github.com/spf13/cobra/pull/1730Shoutout to ALL our contributors (and all the new first time contributors!!) - great work everyone!! Cobra and it's huge impact wouldn't be possible without you 👏🏼 🚀 🐍
Full Changelog: https://github.com/spf13/cobra/compare/v1.4.0...v1.5.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.
fix(deps): update module github.com/pelletier/go-toml/v2 to v2.0.2
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | github.com/pelletier/go-toml/v2 | require | patch |
v2.0.1
->v2.0.2
|Release Notes
pelletier/go-toml
v2.0.2
Compare Source
What's Changed
Fixed bugs
Other changes
Full Changelog: https://github.com/pelletier/go-toml/compare/v2.0.1...v2.0.2
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.
chore(deps): update dependency alpine to v3.16
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | alpine | final | minor |
3.15
->3.16
|Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
chore(deps): update goreleaser/goreleaser-action action to v3
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | goreleaser/goreleaser-action | action | major |
v2
->v3
|Release Notes
goreleaser/goreleaser-action
v3
Compare Source
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
fix(deps): update module github.com/pelletier/go-toml/v2 to v2.0.1
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | github.com/pelletier/go-toml/v2 | require | patch |
v2.0.0
->v2.0.1
|Release Notes
pelletier/go-toml
v2.0.1
Compare Source
What's Changed
Fixed bugs
Documentation
New Contributors
Full Changelog: https://github.com/pelletier/go-toml/compare/v2.0.0...v2.0.1
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
chore(deps): update docker/setup-qemu-action action to v2
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | docker/setup-qemu-action | action | major |
v1
->v2
|Release Notes
docker/setup-qemu-action
v2
Compare Source
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
chore(deps): update docker/setup-buildx-action action to v2
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | docker/setup-buildx-action | action | major |
v1
->v2
|Release Notes
docker/setup-buildx-action
v2
Compare Source
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
chore(deps): update docker/login-action action to v2
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | docker/login-action | action | major |
v1
->v2
|Release Notes
docker/login-action
v2
Compare Source
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
fix(deps): update module github.com/elastic/go-elasticsearch/v8 to v8.2.0
This PR contains the following updates:
| Package | Type | Update | Change | |---|---|---|---| | github.com/elastic/go-elasticsearch/v8 | require | minor |
v8.1.0
->v8.2.0
|Release Notes
elastic/go-elasticsearch
v8.2.0
Compare Source
Client
retry_on_conflict
in the BulkIndexer. Thanks to @lpflpf for the help!API
New APIs
Cat.ComponentTemplates
ML.GetMemoryStats
documentationSecurity.activateUserProfile
(Experimental API) DocumentationSecurity.disableUserProfile
(Experimental API) DocumentationSecurity.enableUserProfile
(Experimental API) DocumentationSecurity.getUserProfile
(Experimental API) DocumentationSecurity.suggestUserProfiles
(Experimental API) DocumentationSecurity.updateUserProfileData
(Experimental API) DocumentationConfiguration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.
route: add GET/PUT /elastic/{index}/mappings
This is an abstraction to create, update, and retrieve index mappings on a specific index.
GET /elastic/{index}/mappings
200 OK
PUT /elastic/{index}/mappings
Create or updates the index mapping of the kind.
200 OK
feat: update/create index mappings on objects
This will be tagged as a 0.4 release but I wanted to do some sort of query DSL:
I proposed this idea internally (in my brain, I have no friends except my boyfriend 😢) that I wanted to create a query DSL to make searching objects more easily than what the current Elasticsearch query is.
It will be called the Tsubasa Query Language (short-hand: TQL) that is similarly to GraphQL but it's stored on the server of all the data types available (under the filesystem called
datatypes.tql
or in a key-store database (Redis, etcd)).To define a data type, you can do:
This will create a new entry in etcd, Redis, or in the filesystem as
datatypes.json
as so:Tsubasa will cache the
datatypes.json
object (or under Redis as the hash:tsubasa:datatypes
; etcd:tsubasa/datatypes
) in the container and now you can create a query:(this issue is unfinished)
Dependency Dashboard
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
This repository currently has no open or pending branches.
Detected dependencies
dockerfile
github-actions
gomod