
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@devexcom/plugin-search-backend-module-opensearch
Advanced tools
OpenSearch backend module for Backstage search with enhanced performance and modern search features
A high-performance search backend for Backstage that replaces the default Lunr search engine with OpenSearch, delivering enterprise-grade search capabilities and dramatically improved performance.
🎨 Frontend Plugin: @devexcom/plugin-search-opensearch
The default Backstage search uses Lunr, which works fine for small catalogs but quickly becomes a bottleneck as your organization grows. OpenSearch transforms your search experience from basic text matching to intelligent, fast, and scalable search.
Before (Lunr):
After (OpenSearch):
Lunr gives you basic text matching:
Search: "user service"
Results: Any document containing "user" OR "service"
OpenSearch gives you intelligent search:
Search: "user service"
Results:
1. UserService component (exact match, highlighted)
2. User-related services (phrase proximity)
3. Components mentioning users and services
+ Smart highlighting of matching text
+ Grouped by entity type with icons
+ Relevance-based ranking
| Metric | Lunr | OpenSearch | Improvement |
|---|---|---|---|
| Query Time | 800ms | 180ms | 4.4x faster |
| Memory Usage | 500MB | 50MB | 10x less |
| Startup Time | 30s indexing | 2s | 15x faster |
| Search Quality | Basic | Advanced | Significantly better |
Better Pagination:
Better Indexing:
Better Error Handling:
Better Filtering:
yarn add @devexcom/plugin-search-backend-module-opensearch
Add to your app-config.yaml:
search:
opensearch:
endpoint: http://localhost:9200
auth:
type: none
indexPrefix: backstage
batchSize: 100
In your backend, replace the default search engine:
// Remove any existing search engine modules first
// backend.add(import('@backstage/plugin-search-backend-module-pg'));
// Add OpenSearch engine
backend.add(import('@devexcom/plugin-search-backend-module-opensearch'));
// Keep your search collators
backend.add(import('@backstage/plugin-search-backend-module-catalog'));
backend.add(import('@backstage/plugin-search-backend-module-techdocs'));
Development (No Auth):
docker run -d \
--name backstage-opensearch \
-p 9200:9200 -p 9600:9600 \
-e "discovery.type=single-node" \
-e "DISABLE_SECURITY_PLUGIN=true" \
opensearchproject/opensearch:2.11.0
Production (With Auth):
docker run -d \
--name backstage-opensearch \
-p 9200:9200 -p 9600:9600 \
-e "discovery.type=single-node" \
-e "plugins.security.ssl.http.enabled=false" \
opensearchproject/opensearch:2.11.0
Configuration:
search:
opensearch:
endpoint: http://localhost:9200
auth:
type: basic
username: admin
password: admin # Default credentials
indexPrefix: backstage
batchSize: 100
Test Connection:
# Without auth
curl http://localhost:9200
# With auth
curl -u admin:admin http://localhost:9200
The Backstage search modal window does not work with this OpenSearch plugin. This is a known limitation because the modal uses hardcoded search APIs that bypass custom search engines.
Workaround: Use the dedicated search page instead of the modal.
/search in your Backstage appThis plugin includes a fix for pagination issues where clicking next/previous pages would cause "Unknown key for a VALUE_NULL in [from]" errors. The fix properly handles base64 cursor decoding for page navigation.
By default, Location entities are excluded from search results to reduce noise. This can be modified in the translator if needed.
After starting Backstage with OpenSearch for the first time, indexing tasks run every 10 minutes. It may take a few minutes before search results appear. You can monitor indexing progress:
# Check if indices are created
curl -u admin:admin "http://localhost:9200/_cat/indices/backstage*"
# Check document count
curl -u admin:admin "http://localhost:9200/backstage-software-catalog/_count"
The first indexing cycle completes within 1-2 minutes after backend startup.
No search results after setup:
curl http://localhost:9200curl http://localhost:9200/_cat/indices/backstage*Connection refused errors:
DISABLE_SECURITY_PLUGIN=true for simple setupMapping parsing errors:
curl -X DELETE http://localhost:9200/backstage*Performance issues:
/search page, not search modalFAQs
OpenSearch backend module for Backstage search with enhanced performance and modern search features
The npm package @devexcom/plugin-search-backend-module-opensearch receives a total of 3 weekly downloads. As such, @devexcom/plugin-search-backend-module-opensearch popularity was classified as not popular.
We found that @devexcom/plugin-search-backend-module-opensearch demonstrated a healthy version release cadence and project activity because the last version was released less than 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.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.