Package detail

@backstage/plugin-search-common

backstage511.4kApache-2.01.2.18

Common functionalities for Search, to be shared between various search-enabled plugins

backstage, search

readme

headline

Backstage

English | 한국어 | 中文版 | Français

License CNCF Status Discord Code style Codecov OpenSSF Best Practices OpenSSF Scorecard

What is Backstage?

Backstage is an open source framework for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly without compromising autonomy.

Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.

software-catalog

Out of the box, Backstage includes:

  • Backstage Software Catalog for managing all your software such as microservices, libraries, data pipelines, websites, and ML models
  • Backstage Software Templates for quickly spinning up new projects and standardizing your tooling with your organization’s best practices
  • Backstage TechDocs for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach
  • Plus, a growing ecosystem of open source plugins that further expand Backstage’s customizability and functionality

Backstage was created by Spotify but is now hosted by the Cloud Native Computing Foundation (CNCF) as an Incubation level project. For more information, see the announcement.

Project roadmap

For information about the detailed project roadmap including delivered milestones, see the Roadmap.

Getting Started

To start using Backstage, see the Getting Started documentation.

Documentation

The documentation of Backstage includes:

Community

To engage with our community, you can use the following resources:

Governance

See the GOVERNANCE.md document in the backstage/community repository.

License

Copyright 2020-2025 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Security

Please report sensitive security issues using Spotify's bug-bounty program rather than GitHub.

For further details, see our complete security release process.

changelog

@backstage/plugin-search-common

1.2.18

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.9.0
    • @backstage/types@1.2.1

1.2.18-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.9.0-next.0
    • @backstage/types@1.2.1

1.2.17

Patch Changes

  • Updated dependencies
    • @backstage/types@1.2.1
    • @backstage/plugin-permission-common@0.8.4

1.2.17-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.2.1-next.0
    • @backstage/plugin-permission-common@0.8.4-next.0

1.2.16

Patch Changes

  • Updated dependencies
    • @backstage/types@1.2.0
    • @backstage/plugin-permission-common@0.8.3

1.2.16-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.2.0
    • @backstage/plugin-permission-common@0.8.3-next.0

1.2.15

Patch Changes

  • Updated dependencies
    • @backstage/types@1.2.0
    • @backstage/plugin-permission-common@0.8.2

1.2.14

Patch Changes

  • 3123c16: Fix package metadata
  • Updated dependencies
    • @backstage/plugin-permission-common@0.8.1
    • @backstage/types@1.1.1

1.2.14-next.1

Patch Changes

  • 3123c16: Fix package metadata
  • Updated dependencies
    • @backstage/plugin-permission-common@0.8.1-next.1
    • @backstage/types@1.1.1

1.2.14-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.8.1-next.0
    • @backstage/types@1.1.1

1.2.13

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.8.0
    • @backstage/types@1.1.1

1.2.12

Patch Changes

  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.14
    • @backstage/types@1.1.1

1.2.12-next.0

Patch Changes

  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.14-next.0
    • @backstage/types@1.1.1

1.2.11

Patch Changes

  • 744c0cb: Deprecate QueryTranslator, QueryRequestOptions and SearchEngine in favor of the types exported from @backstage/plugin-search-backend-node.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.13
    • @backstage/types@1.1.1

1.2.11-next.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.13-next.1
    • @backstage/types@1.1.1

1.2.11-next.0

Patch Changes

  • 744c0cb: Deprecate QueryTranslator, QueryRequestOptions and SearchEngine in favor of the types exported from @backstage/plugin-search-backend-node.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.13-next.0
    • @backstage/types@1.1.1

1.2.10

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.12
    • @backstage/types@1.1.1

1.2.9

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.11
    • @backstage/types@1.1.1

1.2.8

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.10
    • @backstage/types@1.1.1

1.2.7

Patch Changes

  • Updated dependencies
    • @backstage/types@1.1.1
    • @backstage/plugin-permission-common@0.7.9

1.2.7-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.1.1
    • @backstage/plugin-permission-common@0.7.9-next.0

1.2.6

Patch Changes

  • 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.8
    • @backstage/types@1.1.1

1.2.6-next.2

Patch Changes

  • 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.8-next.2
    • @backstage/types@1.1.1-next.0

1.2.6-next.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.8-next.1
    • @backstage/types@1.1.0

1.2.6-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.8-next.0
    • @backstage/types@1.1.0

1.2.5

Patch Changes

  • Updated dependencies
    • @backstage/types@1.1.0
    • @backstage/plugin-permission-common@0.7.7

1.2.5-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.1.0
    • @backstage/plugin-permission-common@0.7.7-next.0

1.2.4

Patch Changes

  • Updated dependencies
    • @backstage/types@1.1.0
    • @backstage/plugin-permission-common@0.7.6

1.2.4-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.6-next.0
    • @backstage/types@1.0.2

1.2.3

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.5
    • @backstage/types@1.0.2

1.2.3-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.5-next.0
    • @backstage/types@1.0.2

1.2.2

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.4
    • @backstage/types@1.0.2

1.2.2-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.4-next.0
    • @backstage/types@1.0.2

1.2.1

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.2
    • @backstage/plugin-permission-common@0.7.3

1.2.1-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.2
    • @backstage/plugin-permission-common@0.7.3-next.0

1.2.0

Minor Changes

  • 29ebc43a0b: numberOfResults (total number of results for a given query) can now be provided by each search engine and consumed as part of the search results response

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.2
    • @backstage/types@1.0.2

1.2.0-next.3

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.2-next.2
    • @backstage/types@1.0.2-next.1

1.2.0-next.2

Minor Changes

  • 29ebc43a0b: numberOfResults (total number of results for a given query) can now be provided by each search engine and consumed as part of the search results response

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.2-next.1
    • @backstage/plugin-permission-common@0.7.2-next.1

1.1.2-next.1

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.2-next.1
    • @backstage/plugin-permission-common@0.7.2-next.1

1.1.2-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.2-next.0
    • @backstage/types@1.0.2-next.0

1.1.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.1
    • @backstage/types@1.0.1

1.1.1-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.1-next.0
    • @backstage/types@1.0.1-next.0

1.1.0

Minor Changes

  • a799972bb1: There is a new property called pageLimit on the SearchQuery interface that specifies how many results should be returned per page.

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.0
    • @backstage/types@1.0.0

1.1.0-next.2

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.7.0-next.2
    • @backstage/types@1.0.0

1.1.0-next.1

Minor Changes

  • a799972bb1: There is a new property called pageLimit on the SearchQuery interface that specifies how many results should be returned per page.

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.0
    • @backstage/plugin-permission-common@0.6.5-next.1

1.0.2-next.0

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.0
    • @backstage/plugin-permission-common@0.6.5-next.0

1.0.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.4

1.0.1-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.4-next.0

1.0.0

Major Changes

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.3

0.3.6-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.3-next.0

0.3.5

Patch Changes

  • 7d8acfc32e: @beta exports now replaced with @public exports
  • 484afdf1dc: Added an optional rank attribute to the Result type. This represents the result rank (starting at 1) for a given result in a result set for a given search.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.2

0.3.5-next.1

Patch Changes

  • 7d8acfc32e: @beta exports now replaced with @public exports

0.3.5-next.0

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.2-next.0

0.3.4

Patch Changes

  • 3a74e203a8: Support generating highlighted matched terms in search result data
  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.1

0.3.4-next.0

Patch Changes

  • 3a74e203a8: Support generating highlighted matched terms in search result data
  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.1-next.0

0.3.3

Patch Changes

  • c8b295f2fb: - Introduce SearchDocument type. This type contains the subset of IndexableDocument properties relevant to the frontend, and is intended to be used for documents returned to the frontend from the search API.
    • SearchResultSet is now a wrapper for documents of type SearchDocument, and is intended to be used in the frontend. This isn't a breaking change, since IndexableDocuments are valid SearchDocuments, so the old and new types are compatible.
    • Introduce IndexableResultSet type, which wraps IndexableDocument instances in the same way as SearchResultSet.
  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.0

0.3.3-next.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.6.0-next.0

0.3.3-next.0

Patch Changes

  • c8b295f2fb: - Introduce SearchDocument type. This type contains the subset of IndexableDocument properties relevant to the frontend, and is intended to be used for documents returned to the frontend from the search API.
    • SearchResultSet is now a wrapper for documents of type SearchDocument, and is intended to be used in the frontend. This isn't a breaking change, since IndexableDocuments are valid SearchDocuments, so the old and new types are compatible.
    • Introduce IndexableResultSet type, which wraps IndexableDocument instances in the same way as SearchResultSet.

0.3.2

Patch Changes

  • Updated dependencies
    • @backstage/types@1.0.0
    • @backstage/plugin-permission-common@0.5.3

0.3.1

Patch Changes

  • d52155466a: Renamed @backstage/search-common to @backstage/plugin-search-common.

0.3.1-next.0

Patch Changes

  • d52155466a: Renamed @backstage/search-common to @backstage/plugin-search-common.

0.3.0

Minor Changes

  • 022507c860: BREAKING

    The Backstage Search Platform's indexing process has been rewritten as a stream pipeline in order to improve efficiency and performance on large document sets.

    The concepts of Collator and Decorator have been replaced with readable and transform object streams (respectively), as well as factory classes to instantiate them. Accordingly, the SearchEngine.index() method has also been replaced with a getIndexer() factory method that resolves to a writable object stream.

    Check this upgrade guide for further details.

Patch Changes

  • Updated dependencies
    • @backstage/plugin-permission-common@0.5.2

0.2.4

Patch Changes

  • Fix for the previous release with missing type declarations.
  • Updated dependencies
    • @backstage/types@0.1.3
    • @backstage/plugin-permission-common@0.5.1

0.2.3

Patch Changes

  • c77c5c7eb6: Added backstage.role to package.json
  • Updated dependencies
    • @backstage/plugin-permission-common@0.5.0
    • @backstage/types@0.1.2

0.2.2

Patch Changes

  • 9a511968b1: - Add optional visibilityPermission property to DocumentCollator type
    • Add new DocumentTypeInfo type for housing information about the document types stored in a search engine.
  • b2e918fa0b: Add optional resourceRef field to the IndexableDocument type for use when authorizing access to documents.
  • 96cbebc629: Add optional query request options containing authorization token to SearchEngine#query.

0.2.1

Patch Changes

  • 10615525f3: Switch to use the json and observable types from @backstage/types

0.2.0

Minor Changes

  • a13f21cdc: Implement optional pageCursor based paging in search.

    To use paging in your app, add a <SearchResultPager /> to your SearchPage.tsx.

0.1.3

Patch Changes

  • d9c13d535: Implements configuration and indexing functionality for ElasticSearch search engine. Adds indexing, searching and default translator for ElasticSearch and modifies default backend example-app to use ES if it is configured.

    Example configurations:

    AWS

    Using AWS hosted ElasticSearch the only configuration options needed is the URL to the ElasticSearch service. The implementation assumes that environment variables for AWS access key id and secret access key are defined in accordance to the default AWS credential chain..

    search:
      elasticsearch:
        provider: aws
        node: https://my-backstage-search-asdfqwerty.eu-west-1.es.amazonaws.com
    

    Elastic.co

    Elastic Cloud hosted ElasticSearch uses a Cloud ID to determine the instance of hosted ElasticSearch to connect to. Additionally, username and password needs to be provided either directly or using environment variables like defined in Backstage documentation.

    search:
      elasticsearch:
        provider: elastic
        cloudId: backstage-elastic:asdfqwertyasdfqwertyasdfqwertyasdfqwerty==
        auth:
          username: elastic
          password: changeme
    

    Others

    Other ElasticSearch instances can be connected to by using standard ElasticSearch authentication methods and exposed URL, provided that the cluster supports that. The configuration options needed are the URL to the node and authentication information. Authentication can be handled by either providing username/password or and API key or a bearer token. In case both username/password combination and one of the tokens are provided, token takes precedence. For more information how to create an API key, see Elastic documentation on API keys and how to create a bearer token, see Elastic documentation on tokens.

    Configuration examples

    With username and password
    search:
      elasticsearch:
        node: http://localhost:9200
        auth:
          username: elastic
          password: changeme
    
    With bearer token
    search:
      elasticsearch:
        node: http://localhost:9200
        auth:
          bearer: token
    
    With API key
    search:
      elasticsearch:
        node: http://localhost:9200
        auth:
          apiKey: base64EncodedKey
    
  • Updated dependencies

    • @backstage/config@0.1.6

0.1.2

Patch Changes

  • db1c8f93b: The `<Search...Next /> set of components exported by the Search Plugin are now updated to use the Search Backend API. These will be made available as the default non-"next" versions in a follow-up release.

    The interfaces for decorators and collators in the Search Backend have also seen minor, breaking revisions ahead of a general release. If you happen to be building on top of these interfaces, check and update your implementations accordingly. The APIs will be considered more stable in a follow-up release.