Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@backstage-community/plugin-tech-insights-backend

backstage29.8kApache-2.02.4.0TypeScript support: included

null

backstage, tech-insights, reporting

readme

Backstage Community Plugins

License CNCF Status Discord

What is the community-plugins repository?

The community-plugins repository is a place where members of the community can collaborate to develop, maintain, and share plugins. This initiative was originally driven by the need to separate plugin maintenance from the backstage/backstage core repository.

This repository is designed to provide plugin maintainers with tools and workflows to efficiently manage and publish Backstage plugins.

Contributing a plugin

Plugins created by the wider Backstage community are welcome to be published in the community-plugins repository. When you contribute a plugin to this repository, you agree to follow specific guidelines, including a standardized release process. This allows plugin owners to leverage established processes and the collective knowledge of the Backstage community-plugins community.

For those seeking full autonomy over their plugin's development and release lifecycle, self-hosting remains a supported and valid option. The decision to either contribute to the community repository or self-host will depend on whether you prefer to manage the development of the plugin independently or develop the plugin as part of a community-driven process. Both approaches are valued within the Backstage ecosystem and contribute to its growth.

Plugins that are key to the functionality and operation of Backstage will continue to reside in the backstage/backstage repository - ensuring the central components that underpin the platform are centrally managed and maintained.

To get started with creating a new plugin, follow the guidance in CONTRIBUTING.md.

Community Plugins Workflow

The community-plugins repository is formed by a set of workspaces. A workspace holds a plugin or a set of plugins based on a specific topic. For example, catalog, kubernetes, and TechDocs can be referred to as workspaces.

Each plugin belongs to a workspace and workspaces are portable enough to be moved to its own repository if desired. Each plugin workspace has its own changesets and isolated releases.

Plugins depend on other plugins via regular npm dependencies, regardless of whether the other plugins are core plugins, other plugins within the repository, or external plugins.

Although the community repository isn't technically a yarn workspace", it functions as a repository with multiple yarn workspaces, with each workspace possessing its unique .changesets directory.

Whenever a new changeset is introduced, a fresh "Version packages ($workspace_name)" PR is produced. Merging a Version packages PR will trigger the release of all the plugins in the workspaces (provided changesets have been added), and also update the CHANGELOG files.

Plugins migrated from backstage/backstage

A number of plugins that originally resided in backstage/backstage monorepo have moved to this backstage/community-plugins repository.

<summary>List of migrated plugins</summary>
  • adr
  • airbreak
  • allure
  • analytics
  • apache-airflow
  • apollo-explorer
  • azure-devops
  • azure-sites
  • badges
  • bazaar
  • bitrise
  • cicd-statistics
  • cloudbuild
  • code-climate
  • code-coverage
  • codescene
  • cost-insights
  • dynatrace
  • entity-feedback
  • entity-validation
  • example-todo-list
  • explore
  • firehydrant
  • fossa
  • gcalendar
  • gcp-projects
  • git-release-manager
  • github-actions
  • github-deployments
  • github-issues
  • github-pull-requests-board
  • gitops-profiles
  • gocd
  • graphiql
  • graphql-voyager
  • ilert
  • jenkins
  • kafka
  • lighthouse
  • microsoft-calendar
  • newrelic
  • newrelic-dashboard
  • octopus-deploy
  • opencost
  • periskop
  • playlist
  • puppetdb
  • rollbar
  • sentry
  • shortcuts
  • sonarqube
  • splunk
  • stack-overflow
  • stackstorm
  • tech-insights
  • tech-radar
  • todo
  • vault
  • xcmetrics

changelog

@backstage-community/plugin-tech-insights-backend

2.4.0

Minor Changes

  • a01ae4e: Backstage version bump to v1.39.0

Patch Changes

2.3.0

Minor Changes

  • ac739ca: This version adds techInsightsCheckReadPermission, techInsightsCheckUpdatePermission, and techInsightsFactRetrieverReadPermission, which can be used to permission Tech Insights functionalities.

Patch Changes

2.2.1

Patch Changes

  • 208e250: Updated dependency @types/uuid to ^10.0.0.

2.2.0

Minor Changes

  • e919e53: Backstage version bump to v1.35.1

Patch Changes

  • f015469: Introducing a new tech insights react plugin for reusuable frontend utilities. All migrated components and APIs have been marked as deprecated. Please update your imports to come from @backstage-community/plugin-tech-insights-react

    Package json files for each plugin have been updated to reflect the new plugin in the Backstage pluginPackages metadata.

  • c107e0f: Deprecates TechInsightCheck from the tech-insights-node library in favor of Check coming from the tech-insights-common library.

    With this change comes a refactor of Check from a type to an interface.

    The TechInsightCheck interface will be removed from the tech-insights-node plugin in it's next major release.

    Importing Check from @backstage-community/plugin-tech-insights-common/client has been deprecated in favor of importing directly from @backstage-community/plugin-tech-insights-common.

  • Updated dependencies [f015469]

  • Updated dependencies [e919e53]
  • Updated dependencies [c107e0f]

2.1.1

Patch Changes

  • 47284ff: Removed usages of @backstage/backend-tasks

2.1.0

Minor Changes

  • 5abfb11: Backstage version bump to v1.34.2

Patch Changes

2.0.2

Patch Changes

2.0.1

Patch Changes

2.0.0

Major Changes

  • c3bbe0f: In order to use UrlReaderService in fact retrievers, UrlReaderService has been added to FactRetrieverContext.

Minor Changes

  • 306121a: Allow tech insights backend to schedule a single job.

Patch Changes

1.2.3

Patch Changes

1.2.2

Patch Changes

1.2.1

Patch Changes

  • 6a4787a: Add auth token logic to the fact retriever example in the README. This makes it possible to copy it directly as a baseline for new fact retrievers.

1.2.0

Minor Changes

  • 0f5c58a: Increment the schema version of the techdocsFactRetriever.

Patch Changes

1.1.0

Minor Changes

  • fad299b: Adds fact to represent presence of the backstage.io/techdocs-entity annotation.

1.0.0

Major Changes

  • 9871d0b: BREAKING: The service no longer accepts the deprecated TokenManager instance, but instead the AuthService is now required where it used to be optional. If you are using the new backend system module, this does not affect you.

Patch Changes

0.6.3

Patch Changes

0.6.2

Patch Changes

0.6.1

Patch Changes

0.6.0

Minor Changes

  • e49b4eb: Remove dependency to backend-test-utils in none test code.

    BREAKING: From now on the logger must be provided, when using initializePersistenceContext.

0.5.35

Patch Changes

0.5.34

Patch Changes

0.5.33

Patch Changes

0.5.32

Patch Changes

0.5.31

Patch Changes

0.5.31-next.1

Patch Changes

0.5.31-next.0

Patch Changes

0.5.30

Patch Changes

0.5.29

Patch Changes

0.5.28

Patch Changes

0.5.28-next.2

Patch Changes

0.5.28-next.1

Patch Changes

0.5.27-next.0

Patch Changes

0.5.24

Patch Changes

0.5.24-next.3

Patch Changes

0.5.24-next.2

Patch Changes

0.5.24-next.1

Patch Changes

0.5.24-next.0

Patch Changes

0.5.23

Patch Changes

0.5.23-next.2

Patch Changes

0.5.23-next.1

Patch Changes

0.5.23-next.0

Patch Changes

0.5.22

Patch Changes

0.5.22-next.3

Patch Changes

0.5.22-next.2

Patch Changes

0.5.22-next.1

Patch Changes

0.5.22-next.0

Patch Changes

0.5.21

Patch Changes

0.5.21-next.2

Patch Changes

0.5.21-next.1

Patch Changes

0.5.21-next.0

Patch Changes

0.5.20

Patch Changes

0.5.20-next.2

Patch Changes

0.5.19-next.1

Patch Changes

0.5.19-next.0

Patch Changes

0.5.17

Patch Changes

0.5.17-next.3

Patch Changes

0.5.17-next.2

Patch Changes

0.5.17-next.1

Patch Changes

0.5.16-next.0

Patch Changes

0.5.14

Patch Changes

0.5.14-next.2

Patch Changes

0.5.14-next.1

Patch Changes

0.5.14-next.0

Patch Changes

0.5.13

Patch Changes

0.5.13-next.1

Patch Changes

0.5.13-next.0

Patch Changes

0.5.12

Patch Changes

0.5.12-next.2

Patch Changes

0.5.12-next.1

Patch Changes

0.5.12-next.0

Patch Changes

0.5.11

Patch Changes

0.5.11-next.1

Patch Changes

0.5.11-next.0

Patch Changes

0.5.10

Patch Changes

0.5.10-next.3

Patch Changes

0.5.10-next.2

Patch Changes

0.5.10-next.1

Patch Changes

0.5.10-next.0

Patch Changes

0.5.9

Patch Changes

0.5.9-next.2

Patch Changes

0.5.9-next.1

Patch Changes

0.5.9-next.0

Patch Changes

0.5.8

Patch Changes

0.5.8-next.2

Patch Changes

0.5.8-next.1

Patch Changes

0.5.8-next.0

Patch Changes

0.5.6

Patch Changes

0.5.6-next.2

Patch Changes

0.5.6-next.1

Patch Changes

0.5.6-next.0

Patch Changes

0.5.5

Patch Changes

0.5.5-next.3

Patch Changes

0.5.5-next.2

Patch Changes

0.5.5-next.1

Patch Changes

0.5.5-next.0

Patch Changes

0.5.4

Patch Changes

0.5.4-next.1

Patch Changes

0.5.4-next.0

Patch Changes

0.5.3

Patch Changes

0.5.3-next.2

Patch Changes

0.5.3-next.1

Patch Changes

0.5.3-next.0

Patch Changes

0.5.2

Patch Changes

0.5.2-next.2

Patch Changes

0.5.2-next.1

Patch Changes

0.5.2-next.0

Patch Changes

0.5.1

Patch Changes

0.5.1-next.0

Patch Changes

0.5.0

Minor Changes

  • 818fa28d71: Allow FactRetrieverRegistry to be injected into buildTechInsightsContext so that we can override default registry implementation.
  • 46cfda58aa: BREAKING: Update FactRetrieverRegistry interface to be async so that db backed implementations can be passed through to the FactRetrieverEngine.

    If you have existing custom FactRetrieverRegistry implementations, you'll need to remove the retrievers member and make all the methods async.

Patch Changes

0.5.0-next.3

Minor Changes

  • 46cfda58aa: BREAKING: Update FactRetrieverRegistry interface to be async so that db backed implementations can be passed through to the FactRetrieverEngine.

    If you have existing custom FactRetrieverRegistry implementations, you'll need to remove the retrievers member and make all the methods async.

Patch Changes

0.5.0-next.2

Minor Changes

  • 818fa28d71: Allow FactRetrieverRegistry to be injected into buildTechInsightsContext so that we can override default registry implementation.

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.1-next.2

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 3333e20b27: BREAKING: The buildTechInsightsContext function now takes an additional field in its options argument: tokenManager. This is an instance of TokenManager, which can be found in your backend initialization code's env.

     const builder = buildTechInsightsContext({
       logger: env.logger,
       config: env.config,
       database: env.database,
       discovery: env.discovery,
       scheduler: env.scheduler,
    +  tokenManager: env.tokenManager,
       factRetrievers: [ /* ... */ ],
     });

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 3333e20b27: BREAKING: The buildTechInsightsContext function now takes an additional field in its options argument: tokenManager. This is an instance of TokenManager, which can be found in your backend initialization code's env.

     const builder = buildTechInsightsContext({
       logger: env.logger,
       config: env.config,
       database: env.database,
       discovery: env.discovery,
       scheduler: env.scheduler,
    +  tokenManager: env.tokenManager,
       factRetrievers: [ /* ... */ ],
     });

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • 231fee736b: This backend now uses the @backstage/backend-tasks package facilities for scheduling fact retrievers.

    BREAKING: The buildTechInsightsContext function now takes an additional field in its options argument: scheduler. This is an instance of PluginTaskScheduler, which can be found in your backend initialization code's env.

     const builder = buildTechInsightsContext({
       logger: env.logger,
       config: env.config,
       database: env.database,
       discovery: env.discovery,
    +  scheduler: env.scheduler,
       factRetrievers: [ /* ... */ ],
     });

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Minor Changes

  • 231fee736b: This backend now uses the @backstage/backend-tasks package facilities for scheduling fact retrievers.

    BREAKING: The buildTechInsightsContext function now takes an additional field in its options argument: scheduler. This is an instance of PluginTaskScheduler, which can be found in your backend initialization code's env.

     const builder = buildTechInsightsContext({
       logger: env.logger,
       config: env.config,
       database: env.database,
       discovery: env.discovery,
    +  scheduler: env.scheduler,
       factRetrievers: [ /* ... */ ],
     });

Patch Changes

0.2.11-next.0

Patch Changes

0.2.10

Patch Changes

0.2.9

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.7

Patch Changes

0.2.6

Patch Changes

0.2.5

Patch Changes

0.2.4

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

  • ad0a7eb088: Fixed invalid access that caused an immediate crash with a TypeError when loading the package.

0.2.0

Minor Changes

  • dfd5e81721: BREAKING CHANGES:

    • The helper function to create a fact retriever registration is now expecting an object of configuration items instead of individual arguments. Modify your techInsights.ts plugin configuration in packages/backend/src/plugins/techInsights.ts (or equivalent) the following way:
    -createFactRetrieverRegistration(
    -  '1 1 1 * *', // Example cron, At 01:01 on day-of-month 1.
    -  entityOwnershipFactRetriever,
    -),
    +createFactRetrieverRegistration({
    +  cadence: '1 1 1 * *', // Example cron, At 01:01 on day-of-month 1.
    +  factRetriever: entityOwnershipFactRetriever,
    +}),
    
    • TechInsightsStore interface has changed its signature of insertFacts method. If you have created your own implementation of either TechInsightsDatabase or FactRetrieverEngine you need to modify the implementation/call to this method to accept/pass-in an object instead if individual arguments. The interface now accepts an additional lifecycle argument which is optional (defined below). An example modification to fact retriever engine:
    -await this.repository.insertFacts(factRetriever.id, facts);
    +await this.repository.insertFacts({
    + id: factRetriever.id,
    + facts,
    + lifecycle,
    +});

    Adds a configuration option to fact retrievers to define lifecycle for facts the retriever persists. Possible values are either 'max items' or 'time-to-live'. The former will keep only n number of items in the database for each fact per entity. The latter will remove all facts that are older than the TTL value.

    Possible values:

    • { maxItems: 5 } // Deletes all facts for the retriever/entity pair, apart from the last five
    • { ttl: 1209600000 } // (2 weeks) Deletes all facts older than 2 weeks for the retriever/entity pair
    • { ttl: { weeks: 2 } } // Deletes all facts older than 2 weeks for the retriever/entity pair

Patch Changes

0.2.0-next.0

Minor Changes

  • dfd5e81721: BREAKING CHANGES:

    • The helper function to create a fact retriever registration is now expecting an object of configuration items instead of individual arguments. Modify your techInsights.ts plugin configuration in packages/backend/src/plugins/techInsights.ts (or equivalent) the following way:
    -createFactRetrieverRegistration(
    -  '1 1 1 * *', // Example cron, At 01:01 on day-of-month 1.
    -  entityOwnershipFactRetriever,
    -),
    +createFactRetrieverRegistration({
    +  cadence: '1 1 1 * *', // Example cron, At 01:01 on day-of-month 1.
    +  factRetriever: entityOwnershipFactRetriever,
    +}),
    
    • TechInsightsStore interface has changed its signature of insertFacts method. If you have created your own implementation of either TechInsightsDatabase or FactRetrieverEngine you need to modify the implementation/call to this method to accept/pass-in an object instead if individual arguments. The interface now accepts an additional lifecycle argument which is optional (defined below). An example modification to fact retriever engine:
    -await this.repository.insertFacts(factRetriever.id, facts);
    +await this.repository.insertFacts({
    + id: factRetriever.id,
    + facts,
    + lifecycle,
    +});

    Adds a configuration option to fact retrievers to define lifecycle for facts the retriever persists. Possible values are either 'max items' or 'time-to-live'. The former will keep only n number of items in the database for each fact per entity. The latter will remove all facts that are older than the TTL value.

    Possible values:

    • { maxItems: 5 } // Deletes all facts for the retriever/entity pair, apart from the last five
    • { ttl: 1209600000 } // (2 weeks) Deletes all facts older than 2 weeks for the retriever/entity pair
    • { ttl: { weeks: 2 } } // Deletes all facts older than 2 weeks for the retriever/entity pair

Patch Changes

0.1.5

Patch Changes

0.1.4

Patch Changes

0.1.3

Patch Changes

0.1.2

Patch Changes

0.1.1

Patch Changes