Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
A lightweight, customizable omnibox. Useful for searching text, images, videos, audios or all other kinds data with a Jina backend.
jinabox.js
is a lightweight, customizable set of components for querying and displaying results from Jina flows. You can use it for searching text, images, videos, audio or any kind of data with a Jina backend.
<jina-searchbar></jina-searchbar>
<jina-results></jina-results>
<jina-floater></jina-floater>
<jina-floater-chat></jina-floater-chat>
jinabox.js
is a frontend for querying Jina flows. You will need to spin up a Jina backend to get search results. Based on what you want to search, run one of our example Jina backends:
docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.bitsearch-pokedex search
docker run -p 45678:45678 jinaai/hub.app.distilbert-southpark
docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.iomock.mp4 search
docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.iomock.sound search
Just go to https://jina.ai/jinabox.js/ in your browser to open up the search interface.
Based on the Docker port you are exposing (i.e. 65481
or 45678
in above Docker images), set jinabox's server endpoint to:
http://localhost:<port_number>/api/search
Important: If you are using a remote endpoint (non-localhost), make sure it is using HTTPS, not HTTP. Otherwise, JinaBox will not be able to make requests to your flow.
Drag and drop images, video, or audio, or type in text to search.
In your HTML source, include the minified script and initialize it with your endpoint:
<script src="https://unpkg.com/jinabox"></script>
<script>
jb = window.JinaBox
jb.init('http://localhost:65481/api/search'); // http://localhost:65481/api/search is the endpoint of the REST gateway of a Jina flow with REST enabled.
</script>
Then add the jinabox web components into your application:
<jina-searchbar></jina-searchbar>
<!--or-->
<jina-floater></jina-floater>
Now you can drag anything from anywhere (local/browser/webpage) to it and conduct the search.
Ready to learn Jina? Read our 101 tutorials.
npm install jinabox
or
yarn add jinabox
MIME type | Input (Query) | Output (Result) | Description |
---|---|---|---|
text | Typing | List only | Text-only data including any human-readable content, source code, or textual data such as comma-separated value (CSV) formatted data. Examples include text/plain , text/csv , and text/html . |
image | Drag-and-drop | <img> Containers in list/grid view | Image or graphical data including both bitmap and vector still images as well as animated versions of still image formats like animated GIF or APNG. Common examples are image/jpeg , image/png , and image/svg+xml . |
video | Drag-and-drop, webcam | <video> containers in list/grid view | Video data or files, such as MP4 movies (video/mp4 ). |
audio | Drag-and-drop, webcam, mic | <audio> containers in list view | Audio or music data. Examples include audio/mpeg , audio/vorbis . |
Play with and preview jinabox configurations here: https://jina.ai/jinabox.js/
Setting | Default | Type | Description |
---|---|---|---|
theme | default | string | Color theme: default , persian , pompelmo , honeybee |
searchIcon | color | string | Searchbar icon: color , mono , inverse , or a URL |
showDropzone | true | boolean | Show expanding drop zone when dragging files |
resultsLocation | dropdown | string | Where to display results: dropdown or external . When selecting external, results will be rendered in the element corresponding to the results-area-id |
resultsAreaId | jina-results-area | string | ID of where results will be rendered if resultsLocation is set to external |
typewriterEffect | false | boolean | Enable typewriter effect on the placeholder |
typewriterDelayItem | 1000 | number | Time (ms) delay between every placeholder switch when typewriterEffect is enabled |
typewriterDelayCharacter | 50 | number | Time (ms) delay between each character when typwriterEffect is enabled |
userMediaHeight | 500 | number | Webcam feed and capture height |
userMediaWidth | 300 | number | Webcam feed and capture width |
acceptAudio | true | boolean | Allow search with audio queries |
acceptVideo | true | boolean | Allow search with video queries |
acceptText | true | boolean | Allow search with text queries |
acceptImage | true | boolean | Allow search with image queries |
jinabox.js
expects query responses to contain either of the following structures
{
"search": {
"docs": [
{
"topkResults": [
{
"matchDoc": {
"docId": 14704,
"weight": 1,
"uri": "data:image/png;charset=utf,...",
"mimeType":"image/png"
}
}
],
"uri":"data:image/jpeg;...",
"mimeType":"image/jpeg"
}
]
}
}
or
{
"search": {
"docs": [
{
"matches": [
{
"docId": 14704,
"weight": 1,
"uri": "data:image/png;charset=utf,...",
"mimeType":"image/png"
}
],
"uri":"data:image/jpeg;...",
"mimeType":"image/jpeg"
}
]
}
}
jinabox.js
runs on modern browsers including Chrome, Firefox, Safari (desktop and mobile) and Opera. Certain features (like recording audio/video) are not available on all browsers and jinabox will make these features available accordingly.
Try http://localhost:65481/api/search
, make sure to use http
and localhost
, instead of 0.0.0.0
.
Query your api with curl
to ensure it is properly receiving, processing, and responding to requests. Ensure responses meet jinabox
expected response structure.
We welcome all kinds of contributions from the open-source community, individuals and partners. We owe our success to your active involvement.
#JinaSearch
As part of our open governance model, we host Jina's Engineering All Hands in public. This Zoom meeting recurs monthly on the second Tuesday of each month, at 14:00-15:30 (CET). Everyone can join in via the following calendar invite.
The meeting will also be live-streamed and later published to our YouTube channel.
Jina is an open-source project. We are hiring full-stack developers, evangelists, and PMs to build the next neural search ecosystem in open source.
Copyright (c) 2020 Jina AI Limited. All rights reserved.
Jina is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
FAQs
A lightweight, customizable omnibox. Useful for searching text, images, videos, audios or all other kinds data with a Jina backend.
The npm package jinabox receives a total of 47 weekly downloads. As such, jinabox popularity was classified as not popular.
We found that jinabox demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.