Files
backstage/plugins/techdocs-backend
Emma Indal 497675538c TechDocs: browse metadata (#2682)
* feat(techdocs): TechDocsPageWrapper to take in labels prop and use TechDocsHeader component

* feat(techdocs): new TechDocsHeader component as wrapper around Header from core

* feat(techdocs): TechDocsPage metadata

* feat(techdocs): TechDocsMetadata class responsible for reading metadata from generated techdocs metadata json file

* fix(techdocs): delete TechDocsPageWrapper component

* fix(app-config): delete /docs from request url

* feat(techdocs): TechDocsHeader with labels to browse metadata

* fix(techdocs): move metadata to backend plugin

* feat(techdocs-backend): introduce two new metadata routes

* feat(techdocs): new techdocs api to be responsible to request metadata from backend

* feat(techdocs): register new api for plugin

* fix(techdocs): reader to take in onReady prop

* fix(techdocs): TechDocsHome component to use its own header

* fix(techdocs): TechDocsPage responsible to get metadata and pass it down to the TechDocsHeader

* fix(techdocs): component tests for both TechDocsHeader and TechDocsPage

* fix(techdocs): adjust api to use /docs in url since it was taken away in requestURL

* fix(tests): move assertion into act

* fix(techdocs): rename TechDocsHeader to TechDocsPageHeader

* fix(techdocs): rename TechDocsHeader to TechDocsPageHeader

* fix(techdocs-backend): add some logs

* Update plugins/techdocs/src/reader/components/TechDocsPage.test.tsx

* delete unused import
2020-10-01 10:12:24 +02:00
..
2020-10-01 10:12:24 +02:00
2020-08-07 18:51:08 +02:00
2020-09-23 16:40:49 +02:00

techdocs-backend

This is the backend part of the techdocs plugin.

Getting Started

This backend plugin can be started in a standalone mode from directly in this package with yarn start. However, it will have limited functionality and that process is most convenient when developing the techdocs backend plugin itself.

To evaluate TechDocs and have a greater amount of functionality available, instead do

# in one terminal window, run this from from the very root of the Backstage project
cd packages/backend
yarn start

What techdocs-backend does

This plugin is the backend part of the techdocs plugin. It provides building and serving of your docs without having to use another service and hosting provider. To use it set your techdocs storageUrl in your app-config.yml to http://localhost:7000/api/techdocs/static/docs.

techdocs:
  storageUrl: http://localhost:7000/api/techdocs/static/docs

Extending techdocs-backend

Currently the build process of techdocs-backend is split up in these three stages.

  • Preparers
  • Generators
  • Publishers

Preparers read your entity data and creates a working directory with your documentation source code. For example if you have set your backstage.io/techdocs-ref to github:https://github.com/spotify/backstage.git it will clone that repository to a temp folder and pass that on to the generator.

Generators takes the prepared source and runs the techdocs-container on it. It then passes on the output folder of that build to the publisher.

Publishers gets a folder path from the generator and publish it to your storage solution. Currently the only built in storage solution is a folder called static/docs inside the techdocs-backend plugin.

Any of these can be extended. If we want to publish to a external static file server using rsync for example that can be done by creating a rsync publisher. (Keep in mind that if you want techdocs-backend to initiate a build this would also require techdocs-backend to act as a proxy, which is not yet implemented.)