Skip to content

v0.53.2

Choose a tag to compare

@backstage-service backstage-service released this 29 Oct 15:20
· 57791 commits to master since this release
f9ef0ea

Hey, I just made a Pull Request!

Implement Tech Insights backend functionality

This PR enables integrators to start developing fact retrievers and running checks against stored facts. It also exposes 5 API endpoints enabling the development of frontend modules consuming individual facts, facts between timestamps, checks/scorecard data.

This PR is mergeable as is and will introduce tech insights to the codebase but does not contain any needed supporting constructs that makes the tech insights backend usable. These constructs (fact retrievers, checks) are needed to seed the database with correct data so users are able to run checks/retrieve facts. They will likely be very proprietary for a lot of users as well.
Example implementation that can be used with hardcoded values attached at the bottom of this PR.

Contributions in this PR:

  • Add common types and interfaces for Tech Insights. Exposing components needed to use and modify tech-insights-backend module and to implement individual Fact Retrievers, Fact Checkers and their persistence options.
  • Implement a framework to run fact retrievers and store fact data into the database. Add migration scripts to create a new database for tech_insights.
  • Create a default implementation of a FactChecker enabling users to construct checks and run them and generate scorecards based on checks.
  • To be able to use tech insights in your application you need to implement FactRetrievers to retrieve and return data for facts and register them to the tech-insights-backend. If you want to use fact checking functionality, you need to create checks and register them to an implementation of a FactChecker.

For more information see documentation on the README.md files of the respective packages.

Refs to other items:
Original PRFC: #7193
Enables next steps to be done for at least these issues (FE implementations):

✔️ Checklist

  • A changeset describing the change and affected packages. (more info)
  • Added or updated documentation
  • Tests for new functionality and regression tests for bug fixes
  • [N/A] Screenshots attached (for UI changes)
  • All your commits have a Signed-off-by line in the message. (more info)

Example modification instantiation of techInsights.ts with a fake fact retriever and a dummy check is included in the PR. To play around with the exposed API, you can use this Insomnia collection:
https://gist.github.com/Xantier/30d4a8fbef4af4b441f7666ce1088ccd