Assets Catalog

An asset / inventory plugin that stores physical items and their locations in the catalog – from personal belongings up to a data center.

PreviewPreview, contains just a catalog provider yet

Overview

An asset/inventory plugin that allows you to save physical items and their locations.

Status: 🧪 early stage


Current status

Currently it supports different items and locations (without any kind of validation yet!). There is no custom UI yet.

Personal belongings (example)

apiVersion: assets.backstage.io/v1alpha1
kind: Building
metadata:
name: home
---
apiVersion: assets.backstage.io/v1alpha1
kind: Room
metadata:
name: kitchen
spec:
parent: building:home
---
apiVersion: assets.backstage.io/v1alpha1
kind: Item
metadata:
name: coffee-machine
spec:
location: room:kitchen

Default catalog types and kinds:

  1. Item kinds: Item and Container
  2. Location kinds: Shelf, Room, Floor, Building, Campus

Data center (example)

apiVersion: assets.backstage.io/v1alpha1
kind: Building
metadata:
name: west-1
---
apiVersion: assets.backstage.io/v1alpha1
kind: Rack
metadata:
name: r-32-231
spec:
location: building:west-1
---
apiVersion: assets.backstage.io/v1alpha1
kind: Server
metadata:
name: svr-4711
spec:
location: rack:r-32-231
mac: x2:xx:xx:xx:xx:xx
---
apiVersion: assets.backstage.io/v1alpha1
kind: Harddrive
metadata:
name: hd-1234-0000
spec:
location: server:svr-4711
installed: '2024-10-10'
  1. Item kinds: Rack, Server, Harddrive
  2. Location kinds: Building

Expect additional, custom catalog plugins could show information based on these data.

Contributions

This plugin looks for any kind of feedback, input and contributions. Feel free to open an issue or pull request.

Roadmap

  • Catalog module to enable asset types.
  • Repository tooling (run tests, release plugins and modules)
  • Custom UI, backend and DB schema to create and edit items.
  • Support for pictures (save them in the local FS, DB, S3?)
  • Mark items as rented by an user
  • Permissions framework
  • Audit logs

Architecture goal

  1. Reuse the catalog

    This will allow users to start using the assets ‘the Backstage GitOps’ way.

    Similar to the catalog, and other catalog-driven plugins, users can import items and locations from YAML files (see current status below).

    Other plugins (incl. the own assets backend, see 3) have then the opportuniy to add, link or extend this items and locations.

  2. Frontend

    The catalog UI is a great start to use the assets.

    But this plugin will have a UI with a focus on seeing items together with pictures, creating and editing items and locations.

  3. Backend

    The catalog itself will not allow users to store data, upload pictures, add notes.

    For all this a custom backend will be required.

Documentation

Packages

@proberaum/backstage-plugin-assets

Frontend pluginnpm v0.7.0source

Installation

Terminal
# From your Backstage root directory
yarn --cwd packages/app add @proberaum/backstage-plugin-assets
README

Welcome to the assets plugin!

This plugin was created through the Backstage CLI

Getting started

Your plugin has been added to the example app in this repository, meaning you’ll be able to access it by running yarn start in the root directory, and then navigating to /assets.

You can also serve the plugin in isolation by running yarn start in the plugin directory. This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. It is only meant for local development, and the setup for it can be found inside the /dev directory.

@proberaum/backstage-plugin-assets-backend

Backend pluginnpm v0.7.0source

Installation

Terminal
# From your Backstage root directory
yarn --cwd packages/backend add @proberaum/backstage-plugin-assets-backend
packages/backend/src/index.ts
const backend = createBackend();
// ...
backend.add(import('@proberaum/backstage-plugin-assets-backend'));
README

This plugin backend was templated using the Backstage CLI. You should replace this text with a description of your plugin backend.

Installation

This plugin is installed via the @proberaum/backstage-plugin-assets-backend package. To install it to your backend package, run the following command:

Terminal window
# From your root directory
yarn --cwd packages/backend add @proberaum/backstage-plugin-assets-backend

Then add the plugin to your backend in packages/backend/src/index.ts:

const backend = createBackend();
// ...
backend.add(import('@proberaum/backstage-plugin-assets-backend'));

Development

This plugin backend can be started in a standalone mode from directly in this package with yarn start. It is a limited setup that is most convenient when developing the plugin backend itself.

If you want to run the entire project, including the frontend, run yarn start from the root directory.

@proberaum/backstage-plugin-assets-common

Common librarynpm v0.7.0source

Common functionalities for the assets plugin

Installation

Terminal
yarn add @proberaum/backstage-plugin-assets-common
README

Welcome to the common package for the assets plugin!

This plugin was created through the Backstage CLI

@proberaum/backstage-plugin-catalog-backend-module-assets

Backend modulenpm v0.7.0source

The assets backend module for the catalog plugin.

Installation

Terminal
# From your Backstage root directory
yarn --cwd packages/backend add @proberaum/backstage-plugin-catalog-backend-module-assets
packages/backend/src/index.ts
const backend = createBackend();
// ...
backend.add(import('@proberaum/backstage-plugin-catalog-backend-module-assets'));
README

The assets backend module for the catalog plugin.

This plugin was created through the Backstage CLI