@tduniec/backstage-plugin-time-saver
Version:
This plugin provides an implementation of charts and statistics related to your time savings that are coming from usage of your templates. Plugins is built from frontend and backend part. This part of plugin `frontend` is responsible of providing views wi
131 lines (96 loc) • 4.54 kB
Markdown
This plugin provides an implementation of charts and statistics related to your time savings that are coming from usage of your templates. Plugins is built from frontend and backend part. This part of plugin `frontend` is responsible of providing views with charts describing data collected from `backend` part of plugin.
- [time-saver-backend](https://github.com/tduniec/backstage-timesaver-plugin/tree/main/plugins/time-saver-backend)
- [time-saver-common](https://github.com/tduniec/backstage-timesaver-plugin/tree/main/plugins/time-saver-common)
https://github.com/tduniec/backstage-timesaver-plugin.git




1. Install the plugin package in your Backstage app:
```sh
yarn add --cwd packages/app @tduniec/backstage-plugin-time-saver
```
2. Now open the `packages/app/src/App.tsx` file
3. Then after all the import statements add the following line:
```tsx
import { TimeSaverPage } from '@tduniec/backstage-plugin-time-saver';
```
4. In this same file just before the closing `</ FlatRoutes>`, this will be near the bottom of the file, add this line:
```tsx
<Route path="/time-saver" element={<TimeSaverPage />} />
```
5. Next open the `packages/app/src/components/Root/Root.tsx` file
6. We want to add this icon import after all the existing import statements:
```tsx
import Timelapse from '@material-ui/icons/Timelapse';
```
7. Then add this line just after the `<SidebarSettings />` line:
```tsx
<SidebarItem icon={Timelapse} to="time-saver" text="timeSaver" />
```
8. Now run `yarn dev` from the root of your project and you should see the DevTools option show up just below Settings in your sidebar and clicking on it will get you to the [Info tab](
9. Install [time-saver-backend](../time-saver-backend/README.md) part if not installed already
Configure your template definition like described below:
Provide an object under `metadata`. Provide quantities of saved time by each group executing one template in **_hours_** preferably
```diff
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: example-template
title: create-github-project
description: Creates Github project
+ substitute:
+ engineering:
+ devops: 1
+ security: 4
+ development_team: 2
spec:
owner: group:default/backstage-admins
type: service
```
Scheduler is running with its default setup every **5 minutes** to generate data from executed templates with these information.
This plugins supports backward compatibility with migration. You can specify your Time Saver metadata for each template name. Then the migration will be performed once executing the API request to `/migrate` endpoint of the plugin.
Configure your backward time savings here:
Open the `app-config.yaml` file
```yaml
ts:
backward:
config: |
[
{
"entityRef": "template:default/create-github-project",
"engineering": {
"devops": 8,
"development_team": 8,
"security": 3
}
}
]
```
1. TimeSaverPage has now exported props that can help you customize your page headers. By default it is an empty header
```tsx
<TimeSaverPage
title="Backstage TS plugin!"
subtitle="Check saved time with TS plugin!"
headerLabel={{ Owner: 'Sample Company', Lifecycle: 'production' }}
/>
```
2. Stats table config:
By default Table stats Time Summaries are provided in hours, below you can find optional config that can change it to days.
```yaml
ts:
frontend:
table:
showInDays: true
hoursPerDay: 8
```