backstage/packages/backend
Kasper Juul Hermansen 8ba5672a4b
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
chore(deps): update all dependencies
2024-10-31 05:03:39 +00:00
..
src add base setup as well as catalog for gitea 2022-12-22 17:00:50 +01:00
.eslintrc.js base 2022-12-22 15:01:37 +01:00
Dockerfile chore(deps): update node.js to v22 2024-04-28 12:36:18 +00:00
package.json chore(deps): update all dependencies 2024-10-31 05:03:39 +00:00
README.md base 2022-12-22 15:01:37 +01:00

example-backend

This package is an EXAMPLE of a Backstage backend.

The main purpose of this package is to provide a test bed for Backstage plugins that have a backend part. Feel free to experiment locally or within your fork by adding dependencies and routes to this backend, to try things out.

Our goal is to eventually amend the create-app flow of the CLI, such that a production ready version of a backend skeleton is made alongside the frontend app. Until then, feel free to experiment here!

Development

To run the example backend, first go to the project root and run

yarn install
yarn tsc
yarn build

You should only need to do this once.

After that, go to the packages/backend directory and run

AUTH_GOOGLE_CLIENT_ID=x AUTH_GOOGLE_CLIENT_SECRET=x \
AUTH_GITHUB_CLIENT_ID=x AUTH_GITHUB_CLIENT_SECRET=x \
AUTH_OAUTH2_CLIENT_ID=x AUTH_OAUTH2_CLIENT_SECRET=x \
AUTH_OAUTH2_AUTH_URL=x AUTH_OAUTH2_TOKEN_URL=x \
LOG_LEVEL=debug \
yarn start

Substitute x for actual values, or leave them as dummy values just to try out the backend without using the auth or sentry features.

The backend starts up on port 7007 per default.

Populating The Catalog

If you want to use the catalog functionality, you need to add so called locations to the backend. These are places where the backend can find some entity descriptor data to consume and serve. For more information, see Software Catalog Overview - Adding Components to the Catalog.

To get started quickly, this template already includes some statically configured example locations in app-config.yaml under catalog.locations. You can remove and replace these locations as you like, and also override them for local development in app-config.local.yaml.

Authentication

We chose Passport as authentication platform due to its comprehensive set of supported authentication strategies.

Read more about the auth-backend and how to add a new provider

Documentation