Backstage.io: Part 1

Published: Jun 7, 2023 by Isaac Johnson

I saw Backstage.io demo’ed at OSN 2023 this year during the Medtronic presentation by Brad Schlict and Derek Winters. I thought it was pretty slick and would solve a lot of issues I have, and, perhaps, make for a great blog post. I mean, it’s a really straightforward NodeJS app.. I know NodeJS. this should be easy, right?

Well, I got something running in a few ways. Clearly, this wasn’t the win for which I hoped. That said, there are times we suck it up and post what we did and can all gather around and chuckle at the n00b. I invite your attention and perhaps jeering as I try and get this (insert indecipherable old man muttering) product up and running….

Helm install

Let’s first add the Helm repos

builder@DESKTOP-72D2D9T:~/Workspaces/jekyll-blog$ helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" already exists with the same configuration, skipping
builder@DESKTOP-72D2D9T:~/Workspaces/jekyll-blog$ helm repo add backstage https://backstage.github.io/charts
"backstage" has been added to your repositories

I’ll set my context (something I’m now regularily doing) then install the chart

$ kubectl config set-context --current --namespace=default
$ helm upgrade -i backstage backstage/backstage
Release "backstage" does not exist. Installing it now.
NAME: backstage
LAST DEPLOYED: Sat Jun  3 10:00:25 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

I can now see it running

$ kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
backstage-c564d4656-sldpz   1/1     Running   0          93s

I also see a service was created for it

$ kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP    2d15h
backstage    ClusterIP   10.43.180.223   <none>        7007/TCP   118s

Let’s port-forward to see the Backstage portal

$ kubectl port-forward svc/backstage 7007:7007
Forwarding from 127.0.0.1:7007 -> 7007
Forwarding from [::1]:7007 -> 7007

We can now see the OOTB Backstage site

/content/images/2023/06/backstage-01.png

To test it out, I’ll register an existing component (https://github.com/backstage/backstage/blob/master/catalog-info.yaml) and see how it looks

/content/images/2023/06/backstage-02.png

We can now browse the components

/content/images/2023/06/backstage-03.png

I was curious how the deployment was configured

$ kubectl get deployment backstage -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    meta.helm.sh/release-name: backstage
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2023-06-03T15:13:31Z"
  generation: 1
  labels:
    app.kubernetes.io/component: backstage
    app.kubernetes.io/instance: backstage
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: backstage
    helm.sh/chart: backstage-1.1.0
  name: backstage
  namespace: default
  resourceVersion: "114767"
  uid: e547797a-84ef-4216-9f5d-53b2d7d7fc5a
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/component: backstage
      app.kubernetes.io/instance: backstage
      app.kubernetes.io/name: backstage
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        checksum/app-config: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
      creationTimestamp: null
      labels:
        app.kubernetes.io/component: backstage
        app.kubernetes.io/instance: backstage
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/name: backstage
        helm.sh/chart: backstage-1.1.0
    spec:
      containers:
      - command:
        - node
        - packages/backend
        env:
        - name: APP_CONFIG_backend_listen_port
          value: "7007"
        image: ghcr.io/backstage/backstage:latest
        imagePullPolicy: Always
        name: backstage-backend
        ports:
        - containerPort: 7007
          name: backend
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: default
      serviceAccountName: default
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2023-06-03T15:14:17Z"
    lastUpdateTime: "2023-06-03T15:14:17Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2023-06-03T15:13:31Z"
    lastUpdateTime: "2023-06-03T15:14:17Z"
    message: ReplicaSet "backstage-c564d4656" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

Seeing no Volumes nor Database connections, I decided to bounce the pod and see if all the changes would be lost

builder@DESKTOP-72D2D9T:~/Workspaces/jekyll-blog$ kubectl delete pod -l app.kubernetes.io/instance=backstage
pod "backstage-c564d4656-sldpz" deleted
builder@DESKTOP-72D2D9T:~/Workspaces/jekyll-blog$ kubectl port-forward svc/backstage 7007:7007
Forwarding from 127.0.0.1:7007 -> 7007
Forwarding from [::1]:7007 -> 7007

and, indeed, it was emptied

/content/images/2023/06/backstage-04.png

To enable data persistence, we can use PostgreSQL

I’ll create a new user

postgres@isaac-MacBookAir:~$ createuser --pwprompt backstage
Enter password for new role:
Enter it again:

Then I’ll give it elevated permissions so it can presumably create a database on the cluster for its work

postgres@isaac-MacBookAir:~$ psql
psql (12.15 (Ubuntu 12.15-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO backstage;
ALTER DEFAULT PRIVILEGES
postgres=# ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO backstage;
ALTER DEFAULT PRIVILEGES
postgres=# CREATE USER backstage WITH SUPERUSER;
ERROR:  role "backstage" already exists
postgres=# ALTER USER backstage WITH SUPERUSER;
ALTER ROLE
postgres=# \q

I’ll want to use IPv4 since this host is in a different cluster (192.168.1.78).

Let’s try first using the built in PostgreSQL container

$ cat backstage-values.yaml
postgresql:
  enabled: true
$ helm install backstage -f backstage-values.yaml backstage/backstage
NAME: backstage
LAST DEPLOYED: Sat Jun  3 10:46:26 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

I can now see it running with its own PostgreSQL container

$ kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
backstage-d55bbf7df-76pqz   1/1     Running   0          52s
backstage-postgresql-0      1/1     Running   0          52s

Interestingly enough, I tried to add a component, restart the pod and come back only to find it was wiped out.

These leads me to believe the component information is not stored in the PostgresSQL DB.

Though, viewing the logs I found some indication it was looking for absent local files

{"level":"info","message":"Listening on :7007","service":"backstage"}
{"entity":"location:default/generated-eeed3503740b7c4b80f2aad3e417fafee7a3803d","level":"warn","location":"file:/examples/entities.yaml","message":"file /examples/entities.yaml does not exist","plugin":"catalog","service":"backstage","type":"plugin"}
{"entity":"location:default/generated-c4d4a3f82d0b7ecef1bd7d6a1991be94fded46aa","level":"warn","location":"file:/examples/template/template.yaml","message":"file /examples/template/template.yaml does not exist","plugin":"catalog","service":"backstage","type":"plugin"}
{"entity":"location:default/generated-0ca6551527608b8e42ccccd463f27d4113d35ff1","level":"warn","location":"file:/examples/org.yaml","message":"file /examples/org.yaml does not exist","plugin":"catalog","service":"backstage","type":"plugin"}
{"documentType":"software-catalog","level":"info","message":"Collating documents for software-catalog via DefaultCatalogCollatorFactory","plugin":"search","service":"backstage","type":"plugin"}

Local Install

First, we need nvm if missing

builder@builder-T100:~$ which nvm
builder@builder-T100:~$ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  81204      0 --:--:-- --:--:-- --:--:-- 81204
=> Downloading nvm from git to '/home/builder/.nvm'
=> Cloning into '/home/builder/.nvm'...
remote: Enumerating objects: 360, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 360 (delta 40), reused 170 (delta 28), pack-reused 0
Receiving objects: 100% (360/360), 219.95 KiB | 4.23 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/builder/.bashrc
=> Appending bash_completion source string to /home/builder/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

I can now install the LTS version of Node

builder@builder-T100:~$ nvm list
            N/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
builder@builder-T100:~$ nvm install 18.16.0
Downloading and installing node v18.16.0...
Downloading https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz...
#################################################################################################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v18.16.0 (npm v9.5.1)
Creating default alias: default -> 18.16.0 (-> v18.16.0)
builder@builder-T100:~$ nvm install --lts
Installing latest LTS version.
v18.16.0 is already installed.
Now using node v18.16.0 (npm v9.5.1)

Next we need yarn installed

builder@builder-T100:~/backstage$ npm install --global yarn

added 1 package in 827ms

We’ll now use npx to create the Node package

builder@builder-T100:~/backstage$ npx @backstage/create-app@latest
? Enter a name for the app [required] backstage

Creating the app...

 Checking if the directory is available:
  checking      backstage ✔

 Creating a temporary app directory:
  creating      temporary directory ✔

 Preparing files:
  copying       .dockerignore ✔
  templating    .eslintrc.js.hbs ✔
  templating    .gitignore.hbs ✔
  copying       .prettierignore ✔
  copying       README.md ✔
  copying       app-config.local.yaml ✔
  copying       app-config.production.yaml ✔
  templating    app-config.yaml.hbs ✔
  templating    backstage.json.hbs ✔
  templating    catalog-info.yaml.hbs ✔
  copying       lerna.json ✔
  templating    package.json.hbs ✔
  copying       tsconfig.json ✔
  copying       yarn.lock ✔
  copying       README.md ✔
  copying       entities.yaml ✔
  copying       org.yaml ✔
  copying       template.yaml ✔
  copying       catalog-info.yaml ✔
  copying       index.js ✔
  copying       package.json ✔
  copying       README.md ✔
  templating    .eslintrc.js.hbs ✔
  copying       Dockerfile ✔
  copying       README.md ✔
  templating    package.json.hbs ✔
  copying       index.test.ts ✔
  copying       index.ts ✔
  copying       types.ts ✔
  copying       app.ts ✔
  copying       auth.ts ✔
  copying       catalog.ts ✔
  copying       proxy.ts ✔
  copying       scaffolder.ts ✔
  templating    search.ts.hbs ✔
  copying       techdocs.ts ✔
  copying       .eslintignore ✔
  templating    .eslintrc.js.hbs ✔
  copying       cypress.json ✔
  templating    package.json.hbs ✔
  copying       android-chrome-192x192.png ✔
  copying       apple-touch-icon.png ✔
  copying       favicon-16x16.png ✔
  copying       favicon-32x32.png ✔
  copying       favicon.ico ✔
  copying       index.html ✔
  copying       manifest.json ✔
  copying       robots.txt ✔
  copying       safari-pinned-tab.svg ✔
  copying       .eslintrc.json ✔
  copying       app.js ✔
  copying       App.test.tsx ✔
  copying       App.tsx ✔
  copying       apis.ts ✔
  copying       index.tsx ✔
  copying       setupTests.ts ✔
  copying       LogoFull.tsx ✔
  copying       LogoIcon.tsx ✔
  copying       Root.tsx ✔
  copying       index.ts ✔
  copying       EntityPage.tsx ✔
  copying       SearchPage.tsx ✔

 Moving to final location:
  moving        backstage ✔

 Installing dependencies:
  determining   yarn version ✔
  executing     yarn install ✔
  executing     yarn tsc ✔

🥇  Successfully created backstage


 All set! Now you might want to:
  Run the app: cd backstage && yarn dev
  Set up the software catalog: https://backstage.io/docs/features/software-catalog/configuration
  Add authentication: https://backstage.io/docs/auth/

We can now use yarn dev to build and run both the front-end and back-end processes.

builder@builder-T100:~/backstage/backstage$ yarn dev
yarn run v1.22.19
$ concurrently "yarn start" "yarn start-backend"
$ yarn workspace backend start
$ yarn workspace app start
$ backstage-cli package start
$ backstage-cli package start
[1] Build succeeded
[0] Loaded config from app-config.yaml
[0] fatal: not a git repository (or any of the parent directories): .git
[0] WARNING: Failed to read git commit, ExitCodeError: Command 'git rev-parse HEAD' exited with code 128
[0] fatal: not a git repository (or any of the parent directories): .git
[0] WARNING: Failed to describe git version, ExitCodeError: Command 'git describe --always' exited with code 128
[0] <i> [webpack-dev-server] Project is running at:
[0] <i> [webpack-dev-server] Loopback: http://localhost:3000/, http://127.0.0.1:3000/
[0] <i> [webpack-dev-server] Content not from webpack is served from '/home/builder/backstage/backstage/packages/app/public' directory
[0] <i> [webpack-dev-server] 404s will fallback to '/index.html'
[1] Loaded config from app-config.yaml
[1] 2023-06-07T11:21:51.860Z backstage info Found 2 new secrets in config that will be redacted
[1] 2023-06-07T11:21:51.868Z backstage info Created UrlReader predicateMux{readers=azure{host=dev.azure.com,authed=false},bitbucketCloud{host=bitbucket.org,authed=false},github{host=github.com,authed=false},gitlab{host=gitlab.com,authed=false},awsS3{host=amazonaws.com,authed=false},fetch{}
[1] 2023-06-07T11:21:51.891Z catalog info Performing database migration type=plugin
[1] 2023-06-07T11:21:52.040Z auth info Configuring "database" as KeyStore provider type=plugin
[1] 2023-06-07T11:21:52.055Z techdocs info Creating Local publisher for TechDocs type=plugin
[1] 2023-06-07T11:21:52.059Z search info Added DefaultCatalogCollatorFactory collator factory for type software-catalog type=plugin
[1] 2023-06-07T11:21:52.059Z search info Added DefaultTechDocsCollatorFactory collator factory for type techdocs type=plugin
[1] 2023-06-07T11:21:52.060Z search info Starting all scheduled search tasks. type=plugin
[1] 2023-06-07T11:21:52.073Z backstage info Listening on :7007
[1] 2023-06-07T11:21:52.083Z backstage info Task worker starting: search_index_software_catalog, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_software_catalog
[1] 2023-06-07T11:21:52.083Z backstage info Task worker starting: search_index_techdocs, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_techdocs
[1] 2023-06-07T11:21:55.086Z search info Collating documents for software-catalog via DefaultCatalogCollatorFactory type=plugin documentType=software-catalog
[1] 2023-06-07T11:21:55.097Z search info Collating documents for techdocs via DefaultTechDocsCollatorFactory type=plugin documentType=techdocs
[1] 2023-06-07T11:21:55.119Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:21:55 +0000] "GET /api/catalog/entities?filter=metadata.annotations.backstage.io%2Ftechdocs-ref&fields=kind,namespace,metadata.annotations,metadata.name,metadata.title,metadata.namespace,spec.type,spec.lifecycle,relations&offset=0&limit=500 HTTP/1.1" 200 2 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:21:55.124Z search warn Index for techdocs was not created: indexer received 0 documents type=plugin documentType=techdocs
[1] 2023-06-07T11:21:55.125Z search info Collating documents for techdocs succeeded type=plugin documentType=techdocs
[1] 2023-06-07T11:21:55.128Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:21:55 +0000] "GET /api/catalog/entities?offset=0&limit=500 HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:21:55.139Z search info Collating documents for software-catalog succeeded type=plugin documentType=software-catalog
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 269:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 303:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 331:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router/dist/index.js 836:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router/dist/index.js 916:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] webpack compiled with 5 warnings

However, by default, it will only serve up to localhost/127.0.0.1.

So we cannot reach it externally

/content/images/2023/06/backstage-05.png

We can see those settins in app-config

builder@builder-T100:~/backstage/backstage$ cat app-config.yaml | head -n10
app:
  title: Scaffolded Backstage App
  baseUrl: http://localhost:3000

organization:
  name: My Company

backend:
  # Used for enabling authentication, secret is shared by all backend plugins
  # See https://backstage.io/docs/auth/service-to-service-auth for

Let’s change that and try again

builder@builder-T100:~/backstage/backstage$ cat app-config.yaml | head -n10
app:
  title: Scaffolded Backstage App
  baseUrl: http://192.168.1.99:3000

organization:
  name: Freshbrewed

backend:
  # Used for enabling authentication, secret is shared by all backend plugins
  # See https://backstage.io/docs/auth/service-to-service-auth for

Fire up yarn

builder@builder-T100:~/backstage/backstage$ yarn dev
yarn run v1.22.19
$ concurrently "yarn start" "yarn start-backend"
$ yarn workspace app start
$ yarn workspace backend start
$ backstage-cli package start
$ backstage-cli package start
[1] Build succeeded
[0] Loaded config from app-config.yaml
[0] fatal: not a git repository (or any of the parent directories): .git
[0] WARNING: Failed to read git commit, ExitCodeError: Command 'git rev-parse HEAD' exited with code 128
[0] fatal: not a git repository (or any of the parent directories): .git
[0] WARNING: Failed to describe git version, ExitCodeError: Command 'git describe --always' exited with code 128
[0] <i> [webpack-dev-server] Project is running at:
[0] <i> [webpack-dev-server] On Your Network (IPv4): http://192.168.1.99:3000/
[0] <i> [webpack-dev-server] Content not from webpack is served from '/home/builder/backstage/backstage/packages/app/public' directory
[0] <i> [webpack-dev-server] 404s will fallback to '/index.html'
[1] Loaded config from app-config.yaml
[1] 2023-06-07T11:28:27.297Z backstage info Found 2 new secrets in config that will be redacted
[1] 2023-06-07T11:28:27.305Z backstage info Created UrlReader predicateMux{readers=azure{host=dev.azure.com,authed=false},bitbucketCloud{host=bitbucket.org,authed=false},github{host=github.com,authed=false},gitlab{host=gitlab.com,authed=false},awsS3{host=amazonaws.com,authed=false},fetch{}
[1] 2023-06-07T11:28:27.329Z catalog info Performing database migration type=plugin
[1] 2023-06-07T11:28:27.476Z auth info Configuring "database" as KeyStore provider type=plugin
[1] 2023-06-07T11:28:27.489Z techdocs info Creating Local publisher for TechDocs type=plugin
[1] 2023-06-07T11:28:27.493Z search info Added DefaultCatalogCollatorFactory collator factory for type software-catalog type=plugin
[1] 2023-06-07T11:28:27.493Z search info Added DefaultTechDocsCollatorFactory collator factory for type techdocs type=plugin
[1] 2023-06-07T11:28:27.494Z search info Starting all scheduled search tasks. type=plugin
[1] 2023-06-07T11:28:27.506Z backstage info Listening on :7007
[1] 2023-06-07T11:28:27.513Z backstage info Task worker starting: search_index_software_catalog, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_software_catalog
[1] 2023-06-07T11:28:27.514Z backstage info Task worker starting: search_index_techdocs, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_techdocs
[1] 2023-06-07T11:28:30.516Z search info Collating documents for software-catalog via DefaultCatalogCollatorFactory type=plugin documentType=software-catalog
[1] 2023-06-07T11:28:30.530Z search info Collating documents for techdocs via DefaultTechDocsCollatorFactory type=plugin documentType=techdocs
[1] 2023-06-07T11:28:30.551Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:28:30 +0000] "GET /api/catalog/entities?filter=metadata.annotations.backstage.io%2Ftechdocs-ref&fields=kind,namespace,metadata.annotations,metadata.name,metadata.title,metadata.namespace,spec.type,spec.lifecycle,relations&offset=0&limit=500 HTTP/1.1" 200 2 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:28:30.556Z search warn Index for techdocs was not created: indexer received 0 documents type=plugin documentType=techdocs
[1] 2023-06-07T11:28:30.557Z search info Collating documents for techdocs succeeded type=plugin documentType=techdocs
[1] 2023-06-07T11:28:30.559Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:28:30 +0000] "GET /api/catalog/entities?offset=0&limit=500 HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:28:30.572Z search info Collating documents for software-catalog succeeded type=plugin documentType=software-catalog
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 269:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 303:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router-dom/dist/index.js 331:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router/dist/index.js 836:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] WARNING in ../../node_modules/react-router/dist/index.js 916:33-54
[0] export 'startTransition' (imported as 'React') was not found in 'react' (possible exports: Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version)
[0]
[0] webpack compiled with 5 warnings

I get a little farther

/content/images/2023/06/backstage-06.png

Killing yarn left me with a broken page

/content/images/2023/06/backstage-07.png

This seems to be a bug introduced in the last day.

Note: if you do yarn install && yarn dev then the package.json fix takes effect

/content/images/2023/06/backstage-11.png

From source

I pulled down the source from Github and set the package.json to do a work-around the current bug in package.json

  "resolutions": {
    "@types/react": "^17",
    "@types/react-dom": "^17",
    "react-router": "6.11.2",
    "react-router-dom": "6.11.2"
  },

I did an install and launch

builder@builder-T100:~/backstage-source$ yarn install
➤ YN0000: ┌ Resolution step
➤ YN0002: │ @apollo/explorer@npm:2.0.2 [50250] doesn't provide graphql (p506f7), requested by graphql-ws
➤ YN0002: │ @apollo/explorer@npm:2.0.2 [50250] doesn't provide graphql (p91e73), requested by subscriptions-transport-ws
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide @material-ui/core (p80ba2), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (pa4f5f), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (p6674a), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (pd565f), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (p7c746), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (pd62e5), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react (p74657), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (pfec59), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (p88e1f), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (pe4fff), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (pd783e), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (pb6fb7), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-dom (p958e8), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-router-dom (p9a431), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-router-dom (p4376a), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-router-dom (pf2a6d), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-router-dom (pd9315), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide react-router-dom (p57ba4), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide typescript (p27099), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide typescript (pde6e7), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide typescript (p15e3a), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli doesn't provide typescript (p023ef), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide @material-ui/core (pc85ca), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react (pf3b8a), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react (p1da7b), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react (p83929), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react (p68578), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react (pb82bc), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-dom (p9fc4c), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-dom (p142c0), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-dom (pad141), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-dom (pb690c), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-dom (p55a11), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-router-dom (p729d0), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-router-dom (p96e8f), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-router-dom (pb2ca8), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide react-router-dom (p3fc28), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide typescript (pbb1c7), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide typescript (p60911), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide typescript (p7e86d), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [07278] doesn't provide typescript (p4c081), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide @material-ui/core (p0bce4), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react (p7924c), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react (p93315), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react (p5e4b1), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react (pba854), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-dom (p9b2e0), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-dom (p91bc3), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-dom (paad57), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-dom (pa860c), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-router-dom (pff84d), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-router-dom (p6bf1e), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide react-router-dom (pddfb3), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide typescript (pb1d6a), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide typescript (p29b8e), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide typescript (p599b4), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [11fe3] doesn't provide typescript (p29bf1), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide @material-ui/core (p828b2), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react (p42e22), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react (p36a6f), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react (p45274), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react (p24909), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-dom (p39439), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-dom (p0a3fb), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-dom (pdf5ce), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-dom (p13979), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-router-dom (p7c0ec), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-router-dom (p7364d), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide react-router-dom (p17621), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide typescript (p7ca09), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide typescript (pe8130), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide typescript (p18d9f), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [31634] doesn't provide typescript (p9fad5), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide @material-ui/core (p0d1c7), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react (pdd8af), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react (p32b13), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react (pd0b1d), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react (p8d412), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react (p8f188), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-dom (pf1526), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-dom (pf9823), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-dom (pc0131), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-dom (pce5ee), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-dom (p98914), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-router-dom (pc91f2), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-router-dom (p16434), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-router-dom (p08523), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide react-router-dom (p90d63), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide typescript (p1a335), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide typescript (peab6b), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide typescript (p00a9a), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [39bca] doesn't provide typescript (pfa13c), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide @material-ui/core (p52369), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react (p5d35c), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react (pb97d0), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react (pe54a9), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react (p4a8ff), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-dom (pdff3a), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-dom (p9d7c4), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-dom (p36d19), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-dom (pb5d7b), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-router-dom (p790c9), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-router-dom (pba3ba), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide react-router-dom (p545e4), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide typescript (p3b15e), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide typescript (pf1a34), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide typescript (p273c5), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [4b958] doesn't provide typescript (pb0a01), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide @material-ui/core (p254c2), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react (p1d406), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react (p53084), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react (pd9ed6), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react (pa32f7), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-dom (p85a5d), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-dom (p421ee), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-dom (pd2d9a), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-dom (p8e0fa), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-router-dom (p26439), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-router-dom (pd3afe), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide react-router-dom (p79f2d), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide typescript (pf921d), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide typescript (pf0609), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide typescript (p86bb0), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [70735] doesn't provide typescript (pe5d81), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide @material-ui/core (pb3590), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react (p696da), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react (p166c3), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react (pd2a4b), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react (peb7dd), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-dom (pea224), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-dom (pa24bc), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-dom (p6bb98), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-dom (pf7271), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-router-dom (p1bcde), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-router-dom (pa69b6), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide react-router-dom (pf4bf3), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide typescript (p5ec52), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide typescript (pa2ffb), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide typescript (ped3dc), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [aad9f] doesn't provide typescript (pc2e01), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide @material-ui/core (peaced), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (pc8f1d), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (pde5f1), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (p53497), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (pf8dac), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (p9a954), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react (pe73b7), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (p73c4c), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (p7b78a), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (p26b3a), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (p3d2c0), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (p3aecc), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-dom (pbe625), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-router-dom (p17736), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-router-dom (p8db20), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-router-dom (pe5e12), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-router-dom (p132e8), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide react-router-dom (pcb649), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide typescript (pb739e), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide typescript (pf10ca), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide typescript (p0f506), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [b9c15] doesn't provide typescript (p1b2eb), requested by ts-node
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide @material-ui/core (p7ae90), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react (pc5fe3), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react (p1b33e), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react (p4e60a), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react (pe7331), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-dom (pc0ff4), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-dom (pf07ee), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-dom (pb21b0), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-dom (pb0543), requested by @backstage/theme
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-router-dom (p0b227), requested by @backstage/test-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-router-dom (p1c4c6), requested by @backstage/core-components
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide react-router-dom (p77285), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide typescript (p60676), requested by eslint-plugin-deprecation
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide typescript (pd2f01), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide typescript (p884fd), requested by rollup-plugin-dts
➤ YN0002: │ @backstage/cli@workspace:packages/cli [c856b] doesn't provide typescript (p9a6f5), requested by ts-node
➤ YN0002: │ @backstage/codemods@workspace:packages/codemods doesn't provide @babel/preset-env (p3ff5a), requested by jscodeshift
➤ YN0060: │ @backstage/codemods@workspace:packages/codemods provides jscodeshift (p6b040) with version 0.14.0, which doesn't satisfy what jscodeshift-add-imports and some of its descendants request
➤ YN0002: │ @backstage/codemods@workspace:packages/codemods doesn't provide typescript (p702a6), requested by ts-node
➤ YN0002: │ @backstage/config@workspace:packages/config doesn't provide react (paa05e), requested by @backstage/test-utils
➤ YN0002: │ @backstage/config@workspace:packages/config doesn't provide react-dom (pd0037), requested by @backstage/test-utils
➤ YN0002: │ @backstage/config@workspace:packages/config doesn't provide react-router-dom (p23282), requested by @backstage/test-utils
➤ YN0002: │ @backstage/core-components@npm:0.12.5 [b0aa7] doesn't provide @date-io/core (pe9176), requested by @material-table/core
➤ YN0002: │ @backstage/create-app@workspace:packages/create-app doesn't provide typescript (p159b4), requested by ts-node
➤ YN0002: │ @backstage/integration-aws-node@workspace:packages/integration-aws-node doesn't provide react (p930b9), requested by @backstage/test-utils
➤ YN0002: │ @backstage/integration-aws-node@workspace:packages/integration-aws-node doesn't provide react-dom (p1af83), requested by @backstage/test-utils
➤ YN0002: │ @backstage/integration-aws-node@workspace:packages/integration-aws-node doesn't provide react-router-dom (p6830b), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-analytics-module-ga4@workspace:plugins/analytics-module-ga4 doesn't provide @material-ui/core (pbf6ae), requested by @backstage/theme
➤ YN0060: │ @backstage/plugin-bazaar@workspace:plugins/bazaar provides luxon (p4c0a7) with version 3.3.0, which doesn't satisfy what @date-io/luxon requests
➤ YN0002: │ @backstage/plugin-bazaar@workspace:plugins/bazaar doesn't provide prop-types (p94096), requested by @material-ui/pickers
➤ YN0002: │ @backstage/plugin-bitrise@workspace:plugins/bitrise doesn't provide prop-types (p8b933), requested by recharts
➤ YN0002: │ @backstage/plugin-catalog-backend-module-unprocessed@workspace:plugins/catalog-backend-module-unprocessed doesn't provide express (p61736), requested by express-promise-router
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide @testing-library/dom (pacca7), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p3746a), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p464df), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p9e697), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p43d7a), requested by @backstage/theme
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p659ac), requested by @material-ui/core
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p278be), requested by @material-ui/icons
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p745d6), requested by @material-ui/lab
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p532c2), requested by react-use
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-dom (p96b05), requested by @testing-library/react
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-router-dom (pfdd66), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-router-dom (p8112e), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities doesn't provide react-router-dom (p6e8eb), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide @testing-library/dom (pcda51), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (pc1849), requested by @testing-library/react
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p47230), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p044c6), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p6260b), requested by react-use
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (pb570b), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p26987), requested by @backstage/theme
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (pbed39), requested by @material-ui/core
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (pb2f66), requested by @material-ui/icons
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p0b576), requested by @material-ui/lab
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (p70f6a), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-dom (pc8c1f), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-router-dom (p2a479), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-router-dom (pa454b), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-router-dom (p39397), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-router-dom (p09b22), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-catalog-unprocessed-entities@workspace:plugins/catalog-unprocessed-entities [d47fc] doesn't provide react-router-dom (p09095), requested by @backstage/dev-utils
➤ YN0060: │ @backstage/plugin-cicd-statistics@workspace:plugins/cicd-statistics provides luxon (p86a00) with version 3.3.0, which doesn't satisfy what @date-io/luxon requests
➤ YN0060: │ @backstage/plugin-cicd-statistics@workspace:plugins/cicd-statistics [d38e0] provides luxon (p30055) with version 3.3.0, which doesn't satisfy what @date-io/luxon requests
➤ YN0002: │ @backstage/plugin-code-coverage@workspace:plugins/code-coverage doesn't provide prop-types (pdd8b4), requested by recharts
➤ YN0002: │ @backstage/plugin-code-coverage@workspace:plugins/code-coverage [d47fc] doesn't provide prop-types (pa6b7d), requested by recharts
➤ YN0002: │ @backstage/plugin-cost-insights@workspace:plugins/cost-insights doesn't provide prop-types (pc3c27), requested by recharts
➤ YN0002: │ @backstage/plugin-cost-insights@workspace:plugins/cost-insights [d47fc] doesn't provide prop-types (pe320d), requested by recharts
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide @testing-library/dom (p670e2), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p4f715), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p865b9), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p1fc87), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p71bb7), requested by @backstage/theme
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p4f795), requested by @material-ui/core
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p1d3e1), requested by @material-ui/icons
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p81641), requested by @material-ui/lab
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (pe6694), requested by react-use
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (p6fa6a), requested by @testing-library/react
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools doesn't provide react-dom (pfe59a), requested by react-json-view
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide @testing-library/dom (p60743), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (paa18b), requested by @testing-library/react
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p0aaf4), requested by react-use
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pcd908), requested by @backstage/theme
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pf92c9), requested by @material-ui/core
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p9c779), requested by @material-ui/icons
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p877b6), requested by @material-ui/lab
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pc5780), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p113b7), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p4888e), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (p6e146), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pa9c98), requested by @backstage/plugin-permission-react
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pad9cd), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-devtools@workspace:plugins/devtools [d47fc] doesn't provide react-dom (pe1920), requested by react-json-view
➤ YN0002: │ @backstage/plugin-git-release-manager@workspace:plugins/git-release-manager doesn't provide prop-types (pa45ea), requested by recharts
➤ YN0002: │ @backstage/plugin-graphql-backend@workspace:plugins/graphql-backend doesn't provide react (p81d13), requested by @backstage/plugin-catalog-graphql
➤ YN0002: │ @backstage/plugin-graphql-backend@workspace:plugins/graphql-backend doesn't provide react-dom (pba46f), requested by @backstage/plugin-catalog-graphql
➤ YN0002: │ @backstage/plugin-graphql-backend@workspace:plugins/graphql-backend doesn't provide react-router-dom (p79731), requested by @backstage/plugin-catalog-graphql
➤ YN0002: │ @backstage/plugin-graphql-voyager@workspace:plugins/graphql-voyager doesn't provide graphql (pd0213), requested by graphql-voyager
➤ YN0002: │ @backstage/plugin-home@npm:0.5.2 [498ff] doesn't provide @rjsf/core (p7c37e), requested by @rjsf/material-ui
➤ YN0002: │ @backstage/plugin-home@workspace:plugins/home doesn't provide @rjsf/core (pfbaf4), requested by @rjsf/material-ui
➤ YN0002: │ @backstage/plugin-home@workspace:plugins/home [d47fc] doesn't provide @rjsf/core (pd9b59), requested by @rjsf/material-ui
➤ YN0060: │ @backstage/plugin-ilert@workspace:plugins/ilert provides luxon (pd6bdb) with version 3.3.0, which doesn't satisfy what @date-io/luxon requests
➤ YN0002: │ @backstage/plugin-kafka-backend@workspace:plugins/kafka-backend doesn't provide jest (p91a08), requested by jest-when
➤ YN0002: │ @backstage/plugin-kafka@workspace:plugins/kafka doesn't provide jest (pe7281), requested by jest-when
➤ YN0002: │ @backstage/plugin-kafka@workspace:plugins/kafka [d47fc] doesn't provide jest (pcac40), requested by jest-when
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb doesn't provide @testing-library/dom (p88fae), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb doesn't provide react-dom (p94782), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb doesn't provide react-dom (p9fa3a), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb doesn't provide react-dom (ped50b), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide @testing-library/dom (p5160e), requested by @testing-library/user-event
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p2c39c), requested by @testing-library/react
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (pf17ac), requested by react-use
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (pb8a1d), requested by @backstage/theme
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p21587), requested by @material-ui/core
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p9db41), requested by @material-ui/icons
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p8d34c), requested by @material-ui/lab
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (pf29c0), requested by @backstage/core-plugin-api
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p73761), requested by @backstage/test-utils
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p5e420), requested by @backstage/core-app-api
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p0497f), requested by @backstage/core-components
➤ YN0002: │ @backstage/plugin-puppetdb@workspace:plugins/puppetdb [d47fc] doesn't provide react-dom (p0eecb), requested by @backstage/dev-utils
➤ YN0002: │ @backstage/plugin-scaffolder-backend-module-rails@workspace:plugins/scaffolder-backend-module-rails doesn't provide jest (p15e8b), requested by jest-when
➤ YN0002: │ @backstage/plugin-scaffolder-backend@workspace:plugins/scaffolder-backend doesn't provide jest (peb325), requested by jest-when
➤ YN0060: │ @backstage/plugin-scaffolder-react@workspace:plugins/scaffolder-react provides @rjsf/core (pfcf32) with version 3.2.1, which doesn't satisfy what @rjsf/material-ui requests
➤ YN0060: │ @backstage/plugin-scaffolder-react@workspace:plugins/scaffolder-react [d47fc] provides @rjsf/core (p660c9) with version 3.2.1, which doesn't satisfy what @rjsf/material-ui requests
➤ YN0060: │ @backstage/plugin-scaffolder-react@workspace:plugins/scaffolder-react [e1917] provides @rjsf/core (pb5f0e) with version 3.2.1, which doesn't satisfy what @rjsf/material-ui requests
➤ YN0002: │ @backstage/plugin-techdocs-node@workspace:plugins/techdocs-node doesn't provide @aws-sdk/abort-controller (p02bea), requested by @aws-sdk/lib-storage
➤ YN0002: │ @backstage/plugin-xcmetrics@workspace:plugins/xcmetrics doesn't provide prop-types (p4b0d2), requested by recharts
➤ YN0002: │ @backstage/release-manifests@workspace:packages/release-manifests doesn't provide react (p0c4d7), requested by @backstage/test-utils
➤ YN0002: │ @backstage/release-manifests@workspace:packages/release-manifests doesn't provide react-dom (p2bef1), requested by @backstage/test-utils
➤ YN0002: │ @backstage/release-manifests@workspace:packages/release-manifests doesn't provide react-router-dom (pac0a9), requested by @backstage/test-utils
➤ YN0002: │ @backstage/repo-tools@workspace:packages/repo-tools doesn't provide openapi-types (p4fca6), requested by @apidevtools/swagger-parser
➤ YN0002: │ @backstage/repo-tools@workspace:packages/repo-tools [36a01] doesn't provide openapi-types (p86ab5), requested by @apidevtools/swagger-parser
➤ YN0002: │ @graphiql/react@npm:0.10.0 [5d586] doesn't provide @codemirror/language (pe2a85), requested by codemirror-graphql
➤ YN0002: │ @graphiql/react@npm:0.10.0 [5d586] doesn't provide graphql-ws (p38d2c), requested by @graphiql/toolkit
➤ YN0002: │ @graphiql/react@npm:0.10.0 [deeb5] doesn't provide @codemirror/language (pf4a0a), requested by codemirror-graphql
➤ YN0002: │ @graphiql/react@npm:0.10.0 [deeb5] doesn't provide graphql-ws (p7118b), requested by @graphiql/toolkit
➤ YN0002: │ @graphql-tools/graphql-tag-pluck@npm:7.4.0 [a7df1] doesn't provide @babel/core (p604a6), requested by @babel/plugin-syntax-import-assertions
➤ YN0002: │ @graphql-tools/graphql-tag-pluck@npm:7.5.0 [def44] doesn't provide @babel/core (p0cd60), requested by @babel/plugin-syntax-import-assertions
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react (p9ec8e), requested by @backstage/test-utils
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react (pb8d2c), requested by @backstage/dev-utils
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react-dom (p86b13), requested by @backstage/test-utils
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react-dom (p4b4b4), requested by @backstage/dev-utils
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react-router-dom (pf3f42), requested by @backstage/test-utils
➤ YN0002: │ @internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common doesn't provide react-router-dom (p7a82c), requested by @backstage/dev-utils
➤ YN0060: │ @openapitools/openapi-generator-cli@npm:2.6.0 provides @nestjs/common (p3f9a0) with version 9.3.11, which doesn't satisfy what @nestjs/axios requests
➤ YN0002: │ @oriflame/backstage-plugin-score-card@npm:0.7.0 [d47fc] doesn't provide react-router-dom (p8e0aa), requested by @backstage/core-plugin-api
➤ YN0002: │ @oriflame/backstage-plugin-score-card@npm:0.7.0 [d47fc] doesn't provide react-router-dom (pf2156), requested by @backstage/version-bridge
➤ YN0002: │ @oriflame/backstage-plugin-score-card@npm:0.7.0 [d47fc] doesn't provide react-router-dom (p1b2ba), requested by @backstage/core-components
➤ YN0002: │ @oriflame/backstage-plugin-score-card@npm:0.7.0 [d47fc] doesn't provide react-router-dom (p986fc), requested by @backstage/plugin-catalog-react
➤ YN0002: │ @roadiehq/backstage-plugin-github-insights@npm:2.3.12 [d47fc] doesn't provide react-router-dom (p7a5af), requested by @backstage/core-plugin-api
➤ YN0002: │ @roadiehq/backstage-plugin-github-insights@npm:2.3.12 [d47fc] doesn't provide react-router-dom (pad661), requested by @backstage/plugin-catalog-react
➤ YN0002: │ @roadiehq/backstage-plugin-github-insights@npm:2.3.12 [d47fc] doesn't provide react-router-dom (p4ae95), requested by @backstage/integration-react
➤ YN0002: │ @roadiehq/backstage-plugin-github-pull-requests@npm:2.5.10 [d47fc] doesn't provide react-router-dom (pdfb21), requested by @backstage/core-plugin-api
➤ YN0002: │ @roadiehq/backstage-plugin-github-pull-requests@npm:2.5.10 [d47fc] doesn't provide react-router-dom (pa25cf), requested by @backstage/plugin-catalog-react
➤ YN0002: │ @roadiehq/backstage-plugin-github-pull-requests@npm:2.5.10 [d47fc] doesn't provide react-router-dom (p01bd7), requested by @backstage/plugin-home
➤ YN0002: │ @techdocs/cli@workspace:packages/techdocs-cli doesn't provide typescript (p6324f), requested by ts-node
➤ YN0002: │ @techdocs/cli@workspace:packages/techdocs-cli doesn't provide webpack (p54d19), requested by react-dev-utils
➤ YN0002: │ @types/rollup-plugin-postcss@npm:3.1.4 doesn't provide postcss (p881c4), requested by rollup-plugin-postcss
➤ YN0002: │ @types/terser-webpack-plugin@npm:5.2.0 doesn't provide webpack (p33c86), requested by terser-webpack-plugin
➤ YN0002: │ @whatwg-node/fetch@npm:0.8.1 doesn't provide @types/node (p07ead), requested by @whatwg-node/node-fetch
➤ YN0002: │ e2e-test@workspace:packages/e2e-test doesn't provide typescript (p6df66), requested by ts-node
➤ YN0060: │ example-app@workspace:packages/app provides @types/react (p3dc38) with version 17.0.52, which doesn't satisfy what @roadiehq/backstage-plugin-github-insights and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides cypress (pe6fa5) with version 10.11.0, which doesn't satisfy what @testing-library/cypress requests
➤ YN0002: │ example-app@workspace:packages/app doesn't provide eslint (p7ddec), requested by eslint-plugin-cypress
➤ YN0060: │ example-app@workspace:packages/app provides react (p97a62) with version 17.0.2, which doesn't satisfy what @backstage/core-components and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides react (p79e40) with version 17.0.2, which doesn't satisfy what @backstage/plugin-catalog-react and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides react (p512eb) with version 17.0.2, which doesn't satisfy what @backstage/plugin-catalog-unprocessed-entities and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides react (p4f185) with version 17.0.2, which doesn't satisfy what @roadiehq/backstage-plugin-github-insights and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides react-dom (p1595d) with version 17.0.2, which doesn't satisfy what @backstage/core-components and some of its descendants request
➤ YN0060: │ example-app@workspace:packages/app provides react-dom (p55841) with version 17.0.2, which doesn't satisfy what @roadiehq/backstage-plugin-github-insights and some of its descendants request
➤ YN0002: │ graphiql@npm:1.11.5 [b1c8a] doesn't provide graphql-ws (p75ec6), requested by @graphiql/toolkit
➤ YN0002: │ graphiql@npm:1.11.5 [cee85] doesn't provide graphql-ws (p1f91c), requested by @graphiql/toolkit
➤ YN0060: │ grpc-docs@npm:1.1.3 [f09cb] provides rollup (p50e3b) with version 0.60.7, which doesn't satisfy what rollup-plugin-smart-asset requests
➤ YN0002: │ react-resizable@npm:3.0.5 [b75c5] doesn't provide react-dom (pa18e1), requested by react-draggable
➤ YN0002: │ root@workspace:. doesn't provide @microsoft/api-extractor-model (p679bb), requested by @backstage/repo-tools
➤ YN0002: │ root@workspace:. doesn't provide @microsoft/tsdoc (p7bab6), requested by @backstage/repo-tools
➤ YN0002: │ root@workspace:. doesn't provide @microsoft/tsdoc-config (pd98aa), requested by @backstage/repo-tools
➤ YN0002: │ root@workspace:. doesn't provide @typescript-eslint/parser (p96d0e), requested by @spotify/eslint-plugin
➤ YN0002: │ techdocs-cli-embedded-app@workspace:packages/techdocs-cli-embedded-app doesn't provide eslint (p5c6a2), requested by eslint-plugin-cypress
➤ YN0060: │ techdocs-cli-embedded-app@workspace:packages/techdocs-cli-embedded-app provides react (p2bdd1) with version 17.0.2, which doesn't satisfy what @backstage/core-components and some of its descendants request
➤ YN0060: │ techdocs-cli-embedded-app@workspace:packages/techdocs-cli-embedded-app provides react-dom (p6e6c8) with version 17.0.2, which doesn't satisfy what @backstage/core-components and some of its descendants request
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed in 1s 647ms
➤ YN0000: ┌ Fetch step
➤ YN0013: │ zod-to-json-schema@npm:3.20.4 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ zod@npm:3.18.0 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ zod@npm:3.21.4 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ zustand@npm:3.6.9 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ zwitch@npm:2.0.2 can't be found in the cache and will be fetched from the remote registry
➤ YN0066: │ typescript@patch:typescript@npm%3A5.0.4#~builtin<compat/typescript>::version=5.0.4&hash=a1c5e5: Cannot apply hunk #1
➤ YN0066: │ typescript@patch:typescript@npm%3A4.8.4#~builtin<compat/typescript>::version=4.8.4&hash=a1c5e5: Cannot apply hunk #7
➤ YN0000: └ Completed in 1m 12s
➤ YN0000: ┌ Link step
➤ YN0007: │ root@workspace:. must be built because it never has been before or the last one failed
➤ YN0007: │ esbuild@npm:0.17.19 must be built because it never has been before or the last one failed
➤ YN0007: │ @swc/core@npm:1.3.62 [23bd4] must be built because it never has been before or the last one failed
➤ YN0007: │ esbuild@npm:0.16.17 must be built because it never has been before or the last one failed
➤ YN0007: │ msw@npm:1.2.1 [ef6b4] must be built because it never has been before or the last one failed
➤ YN0007: │ better-sqlite3@npm:8.4.0 must be built because it never has been before or the last one failed
➤ YN0007: │ cypress@npm:10.11.0 must be built because it never has been before or the last one failed
➤ YN0007: │ puppeteer@npm:17.1.3 must be built because it never has been before or the last one failed
➤ YN0007: │ canvas@npm:2.11.2 must be built because it never has been before or the last one failed
➤ YN0007: │ core-js@npm:3.30.2 must be built because it never has been before or the last one failed
➤ YN0007: │ styled-components@npm:5.3.5 [36072] must be built because it never has been before or the last one failed
➤ YN0007: │ jss@npm:9.8.7 must be built because it never has been before or the last one failed
➤ YN0007: │ esbuild@npm:0.15.18 must be built because it never has been before or the last one failed
➤ YN0007: │ core-js-pure@npm:3.29.1 must be built because it never has been before or the last one failed
➤ YN0007: │ sharp@npm:0.31.2 must be built because it never has been before or the last one failed
➤ YN0007: │ protobufjs@npm:7.2.3 must be built because it never has been before or the last one failed
➤ YN0007: │ @parcel/watcher@npm:2.1.0 must be built because it never has been before or the last one failed
➤ YN0007: │ @nestjs/core@npm:9.3.11 [2470b] must be built because it never has been before or the last one failed
➤ YN0007: │ core-js@npm:2.6.12 must be built because it never has been before or the last one failed
➤ YN0007: │ protobufjs@npm:6.11.3 must be built because it never has been before or the last one failed
➤ YN0007: │ @apollo/protobufjs@npm:1.2.7 must be built because it never has been before or the last one failed
➤ YN0007: │ cpu-features@npm:0.0.2 must be built because it never has been before or the last one failed
➤ YN0007: │ tree-sitter-json@npm:0.20.0 must be built because it never has been before or the last one failed
➤ YN0007: │ tree-sitter@npm:0.20.1 must be built because it never has been before or the last one failed
➤ YN0007: │ tree-sitter-yaml@npm:0.5.0 must be built because it never has been before or the last one failed
➤ YN0009: │ cpu-features@npm:0.0.2 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-680ebcd8/build.log)
➤ YN0009: │ tree-sitter-json@npm:0.20.0 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-b30f22ea/build.log)
➤ YN0009: │ tree-sitter-yaml@npm:0.5.0 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-c5a6c930/build.log)
➤ YN0009: │ tree-sitter@npm:0.20.1 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-e174ee75/build.log)
➤ YN0007: │ @openapitools/openapi-generator-cli@npm:2.6.0 must be built because it never has been before or the last one failed
➤ YN0007: │ ssh2@npm:1.5.0 must be built because it never has been before or the last one failed
➤ YN0000: └ Completed in 52s 948ms
➤ YN0000: Done with warnings in 2m 7s
builder@builder-T100:~/backstage-source$ yarn dev
[0] Loaded config from app-config.yaml
[0] Browserslist: caniuse-lite is outdated. Please run:
[0]   npx update-browserslist-db@latest
[0]   Why you should do it regularly: https://github.com/browserslist/update-db#readme
[0] <i> [webpack-dev-server] Project is running at:
[0] <i> [webpack-dev-server] On Your Network (IPv4): http://192.168.1.99:3000/
[0] <i> [webpack-dev-server] Content not from webpack is served from '/home/builder/backstage-source/packages/app/public' directory
[0] <i> [webpack-dev-server] 404s will fallback to '/index.html'
[1] Build succeeded
[1] 2023-06-07T11:53:33.654Z backstage info You are running an example backend, which is supposed to be mainly used for contributing back to Backstage. Do NOT deploy this to production. Read more here https://backstage.io/docs/getting-started/
[1] Loaded config from app-config.yaml
[1] 2023-06-07T11:53:37.231Z backstage info Found 5 new secrets in config that will be redacted
[1] 2023-06-07T11:53:37.250Z backstage warn Generated a secret for service-to-service authentication: DEVELOPMENT USE ONLY.
[1] 2023-06-07T11:53:37.252Z backstage info Created UrlReader predicateMux{readers=azure{host=dev.azure.com,authed=false},bitbucketCloud{host=bitbucket.org,authed=false},github{host=github.com,authed=false},gitlab{host=gitlab.com,authed=false},awsS3{host=amazonaws.com,authed=false},fetch{}
[1] 2023-06-07T11:53:37.292Z catalog info Performing database migration type=plugin
[1] 2023-06-07T11:53:37.433Z code-coverage info Initializing Code Coverage backend type=plugin
[1] 2023-06-07T11:53:37.486Z backstage info Task worker starting: close_stale_tasks, {"version":2,"cadence":"*/5 * * * *","timeoutAfterDuration":"PT15M"} type=taskManager task=close_stale_tasks
[1] 2023-06-07T11:53:37.515Z backstage info Task worker starting: entityOwnershipFactRetriever, {"version":2,"cadence":"1 1 1 * *","initialDelayDuration":"PT5S","timeoutAfterDuration":"PT5M"} type=taskManager task=entityOwnershipFactRetriever
[1] 2023-06-07T11:53:37.516Z backstage info Task worker starting: entityMetadataFactRetriever, {"version":2,"cadence":"1 1 1 * *","initialDelayDuration":"PT5S","timeoutAfterDuration":"PT5M"} type=taskManager task=entityMetadataFactRetriever
[1] 2023-06-07T11:53:37.516Z backstage info Task worker starting: techdocsFactRetriever, {"version":2,"cadence":"1 1 1 * *","initialDelayDuration":"PT5S","timeoutAfterDuration":"PT5M"} type=taskManager task=techdocsFactRetriever
[1] 2023-06-07T11:53:37.516Z tech-insights info Scheduled 3/3 fact retrievers into the tech-insights engine type=plugin
[1] 2023-06-07T11:53:37.583Z tech-insights info Fact checker configured. Enabling fact checking endpoints. type=plugin
[1] 2023-06-07T11:53:37.585Z auth info Configuring "database" as KeyStore provider type=plugin
[1] 2023-06-07T11:53:37.598Z auth info Configuring auth provider: google type=plugin
[1] 2023-06-07T11:53:37.599Z auth warn Skipping google auth provider, Missing required config value at 'auth.providers.google.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.599Z auth info Configuring auth provider: github type=plugin
[1] 2023-06-07T11:53:37.600Z auth warn Skipping github auth provider, Missing required config value at 'auth.providers.github.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.600Z auth info Configuring auth provider: gitlab type=plugin
[1] 2023-06-07T11:53:37.601Z auth warn Skipping gitlab auth provider, Missing required config value at 'auth.providers.gitlab.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.601Z auth info Configuring auth provider: saml type=plugin
[1] 2023-06-07T11:53:37.602Z auth info Configuring auth provider: okta type=plugin
[1] 2023-06-07T11:53:37.603Z auth warn Skipping okta auth provider, Missing required config value at 'auth.providers.okta.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.603Z auth info Configuring auth provider: auth0 type=plugin
[1] 2023-06-07T11:53:37.604Z auth warn Skipping auth0 auth provider, Missing required config value at 'auth.providers.auth0.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.604Z auth info Configuring auth provider: microsoft type=plugin
[1] 2023-06-07T11:53:37.604Z auth warn Skipping microsoft auth provider, Missing required config value at 'auth.providers.microsoft.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.604Z auth info Configuring auth provider: oauth2 type=plugin
[1] 2023-06-07T11:53:37.604Z auth warn Skipping oauth2 auth provider, Missing required config value at 'auth.providers.oauth2.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.605Z auth info Configuring auth provider: oidc type=plugin
[1] 2023-06-07T11:53:37.605Z auth warn Skipping oidc auth provider, Missing required config value at 'auth.providers.oidc.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.605Z auth info Configuring auth provider: onelogin type=plugin
[1] 2023-06-07T11:53:37.605Z auth warn Skipping onelogin auth provider, Missing required config value at 'auth.providers.onelogin.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.605Z auth info Configuring auth provider: bitbucket type=plugin
[1] 2023-06-07T11:53:37.606Z auth warn Skipping bitbucket auth provider, Missing required config value at 'auth.providers.bitbucket.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.606Z auth info Configuring auth provider: atlassian type=plugin
[1] 2023-06-07T11:53:37.606Z auth warn Skipping atlassian auth provider, Missing required config value at 'auth.providers.atlassian.development.clientId' type=plugin
[1] 2023-06-07T11:53:37.606Z auth info Configuring auth provider: myproxy type=plugin
[1] 2023-06-07T11:53:37.613Z search info Added DefaultAdrCollatorFactory collator factory for type adr type=plugin
[1] 2023-06-07T11:53:37.614Z search info Added DefaultCatalogCollatorFactory collator factory for type software-catalog type=plugin
[1] 2023-06-07T11:53:37.614Z search info Added DefaultTechDocsCollatorFactory collator factory for type techdocs type=plugin
[1] 2023-06-07T11:53:37.614Z search info Added ToolDocumentCollatorFactory collator factory for type tools type=plugin
[1] 2023-06-07T11:53:37.615Z search info Starting all scheduled search tasks. type=plugin
[1] 2023-06-07T11:53:37.619Z techdocs info Creating Local publisher for TechDocs type=plugin
[1] 2023-06-07T11:53:37.625Z kubernetes info Initializing Kubernetes backend type=plugin
[1] 2023-06-07T11:53:37.625Z kubernetes info action=LoadingCustomResources numOfCustomResources=0 type=plugin
[1] 2023-06-07T11:53:37.631Z kafka info Initializing Kafka backend type=plugin
[1] 2023-06-07T11:53:37.634Z proxy info [HPM] Proxy created: /circleci/api  -> https://circleci.com/api/v1.1 type=plugin
[1] 2023-06-07T11:53:37.634Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/circleci/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.636Z proxy info [HPM] Proxy created: /jenkins/api  -> http://localhost:8080 type=plugin
[1] 2023-06-07T11:53:37.636Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/jenkins/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.637Z proxy info [HPM] Proxy created: /travisci/api  -> https://api.travis-ci.com type=plugin
[1] 2023-06-07T11:53:37.637Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/travisci/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.638Z proxy info [HPM] Proxy created: /newrelic/apm/api  -> https://api.newrelic.com/v2 type=plugin
[1] 2023-06-07T11:53:37.638Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/newrelic/apm/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.638Z proxy info [HPM] Proxy created: /newrelic/api  -> https://api.newrelic.com type=plugin
[1] 2023-06-07T11:53:37.638Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/newrelic/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.639Z proxy info [HPM] Proxy created: /pagerduty  -> https://api.pagerduty.com type=plugin
[1] 2023-06-07T11:53:37.639Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/pagerduty/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.639Z proxy info [HPM] Proxy created: /buildkite/api  -> https://api.buildkite.com/v2/ type=plugin
[1] 2023-06-07T11:53:37.639Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/buildkite/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.640Z proxy info [HPM] Proxy created: /sentry/api  -> https://sentry.io/api/ type=plugin
[1] 2023-06-07T11:53:37.640Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/sentry/api/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.640Z proxy info [HPM] Proxy created: /ilert  -> https://api.ilert.com type=plugin
[1] 2023-06-07T11:53:37.640Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/ilert/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.640Z proxy info [HPM] Proxy created: /airflow  -> https://your.airflow.instance.com/api/v1 type=plugin
[1] 2023-06-07T11:53:37.641Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/airflow/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.641Z proxy info [HPM] Proxy created: /gocd  -> https://your.gocd.instance.com/go/api type=plugin
[1] 2023-06-07T11:53:37.641Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/gocd/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.641Z proxy info [HPM] Proxy created: /dynatrace  -> https://your.dynatrace.instance.com/api/v2 type=plugin
[1] 2023-06-07T11:53:37.641Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/dynatrace/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.642Z proxy info [HPM] Proxy created: /stackstorm  -> https://your.stackstorm.instance.com/api type=plugin
[1] 2023-06-07T11:53:37.642Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/stackstorm/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.642Z proxy info [HPM] Proxy created: /puppetdb  -> https://your.puppetdb.instance.com type=plugin
[1] 2023-06-07T11:53:37.642Z proxy info [HPM] Proxy rewrite rule created: "^/api/proxy/puppetdb/?" ~> "/" type=plugin
[1] 2023-06-07T11:53:37.701Z jenkins warn PermissionAuthorizer is deprecated. Please use an instance of PermissionEvaluator instead of PermissionAuthorizer in PluginEnvironment#permissions type=plugin
[1] 2023-06-07T11:53:37.703Z playlist info Initializing Playlist backend type=plugin
[1] 2023-06-07T11:53:37.721Z backstage info Task worker starting: search_index_adr, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_adr
[1] 2023-06-07T11:53:37.721Z backstage info Task worker starting: search_index_software_catalog, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_software_catalog
[1] 2023-06-07T11:53:37.722Z backstage info Task worker starting: search_index_techdocs, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_techdocs
[1] 2023-06-07T11:53:37.722Z backstage info Task worker starting: search_index_tools, {"version":2,"cadence":"PT10M","initialDelayDuration":"PT3S","timeoutAfterDuration":"PT15M"} type=taskManager task=search_index_tools
[1] 2023-06-07T11:53:37.729Z entityFeedback info Initializing Entity Feedback backend type=plugin
[1] 2023-06-07T11:53:37.744Z linguist info Scheduling processing of entities with: {"frequency":{"minutes":2},"timeout":{"minutes":15},"initialDelay":{"seconds":15}} type=plugin
[1] 2023-06-07T11:53:37.750Z backstage info Task worker starting: linguist_process_entities, {"version":2,"cadence":"PT2M","initialDelayDuration":"PT15S","timeoutAfterDuration":"PT15M"} type=taskManager task=linguist_process_entities
[1] 2023-06-07T11:53:37.753Z lighthouse info Running with Scheduler Config {"days":1} and timeout {} type=plugin
[1] 2023-06-07T11:53:37.760Z backstage info Task worker starting: lighthouse_audit, {"version":2,"cadence":"P1D","initialDelayDuration":"PT15M","timeoutAfterDuration":"PT0S"} type=taskManager task=lighthouse_audit
[1] 2023-06-07T11:53:37.768Z backstage info Listening on :7007
[1] 2023-06-07T11:53:40.723Z search info Collating documents for adr via DefaultAdrCollatorFactory type=plugin documentType=adr
[1] 2023-06-07T11:53:40.731Z search info Collating documents for software-catalog via DefaultCatalogCollatorFactory type=plugin documentType=software-catalog
[1] 2023-06-07T11:53:40.733Z search info Collating documents for techdocs via DefaultTechDocsCollatorFactory type=plugin documentType=techdocs
[1] 2023-06-07T11:53:40.736Z search info Collating documents for tools via ToolDocumentCollatorFactory type=plugin documentType=tools
[1] 2023-06-07T11:53:40.737Z search info Starting collation of explore tools type=plugin
[1] 2023-06-07T11:53:40.755Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities?filter=metadata.annotations.backstage.io%2Fadr-location&fields=kind,metadata.annotations,metadata.name,metadata.namespace,metadata.title HTTP/1.1" 200 469 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.772Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/explore/tools HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.773Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities?filter=metadata.annotations.backstage.io%2Ftechdocs-ref&fields=kind,namespace,metadata.annotations,metadata.name,metadata.title,metadata.namespace,spec.type,spec.lifecycle,relations&offset=0&limit=500 HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.777Z search info Finished collation of explore tools type=plugin
[1] 2023-06-07T11:53:40.790Z search info Collating documents for tools succeeded type=plugin documentType=tools
[1] 2023-06-07T11:53:40.801Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities?offset=0&limit=500 HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.808Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities/by-name/component/default/backstage HTTP/1.1" 200 813 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.810Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities/by-name/component/default/documented-component HTTP/1.1" 200 855 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.812Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/catalog/entities/by-name/component/default/techdocs-e2e-fixture HTTP/1.1" 200 777 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.819Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/techdocs/static/docs/default/component/backstage/search/search_index.json HTTP/1.1" 404 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.820Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/techdocs/static/docs/default/component/documented-component/search/search_index.json HTTP/1.1" 404 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.821Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:40 +0000] "GET /api/techdocs/static/docs/default/component/techdocs-e2e-fixture/search/search_index.json HTTP/1.1" 404 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:40.824Z search warn Index for techdocs was not created: indexer received 0 documents type=plugin documentType=techdocs
[1] 2023-06-07T11:53:40.824Z search info Collating documents for techdocs succeeded type=plugin documentType=techdocs
[1] 2023-06-07T11:53:40.869Z search info Collating documents for software-catalog succeeded type=plugin documentType=software-catalog
[1] 2023-06-07T11:53:41.625Z search info Indexed 18 ADRs from https://github.com/adr/madr/tree/develop/docs/decisions type=plugin documentType=adr
[1] 2023-06-07T11:53:41.668Z search info Collating documents for adr succeeded type=plugin documentType=adr
[1] 2023-06-07T11:53:42.517Z tech-insights info Retrieving facts for fact retriever entityOwnershipFactRetriever type=plugin
[1] 2023-06-07T11:53:42.520Z tech-insights info Retrieving facts for fact retriever entityMetadataFactRetriever type=plugin
[1] 2023-06-07T11:53:42.521Z tech-insights info Retrieving facts for fact retriever techdocsFactRetriever type=plugin
[1] 2023-06-07T11:53:42.563Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:42 +0000] "GET /api/catalog/entities?filter=kind=component,kind=domain,kind=system,kind=api,kind=resource,kind=template HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:42.565Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:42 +0000] "GET /api/catalog/entities HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:42.566Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:42 +0000] "GET /api/catalog/entities HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:42.583Z tech-insights info Stored 36 facts for fact retriever entityOwnershipFactRetriever in 0.1s type=plugin
[1] 2023-06-07T11:53:42.614Z tech-insights info Stored 77 facts for fact retriever techdocsFactRetriever in 0.1s type=plugin
[1] 2023-06-07T11:53:42.624Z tech-insights info Stored 77 facts for fact retriever entityMetadataFactRetriever in 0.1s type=plugin
[1] 2023-06-07T11:53:52.752Z linguist info Updating list of entities type=plugin
[1] 2023-06-07T11:53:52.757Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:52 +0000] "GET /api/catalog/entities?filter=kind=API,kind=Component,kind=Template,metadata.annotations.backstage.io%2Flinguist&fields=kind,metadata HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:52.758Z linguist info Cleaning list of entities type=plugin
[1] 2023-06-07T11:53:52.759Z linguist info Cleaning entities in Linguist queue type=plugin
[1] 2023-06-07T11:53:52.774Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:52 +0000] "POST /api/permission/authorize HTTP/1.1" 200 74 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:52.779Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:52 +0000] "GET /api/catalog/entities/by-name/component/default/artist-lookup HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:52.780Z linguist info Processing applicable entities through Linguist type=plugin
[1] 2023-06-07T11:53:52.781Z linguist info Entities overview: Entity: 1, Processed: 0, Pending: 1, Stale 0 type=plugin
[1] 2023-06-07T11:53:52.785Z backstage info ::ffff:127.0.0.1 - - [07/Jun/2023:11:53:52 +0000] "GET /api/catalog/entities/by-name/component/default/artist-lookup HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" type=incomingRequest
[1] 2023-06-07T11:53:52.787Z linguist info Processing languages for entity component:default/artist-lookup from https://github.com/backstage/backstage/tree/master/plugins/playlist type=plugin
[1] 2023-06-07T11:53:59.903Z linguist info Cleaning up files from /tmp/backstage-AhLUzQ type=plugin
[0] webpack compiled successfully

This time it worked

/content/images/2023/06/backstage-08.png

I could browse the navigation but really could not create anything. Nothing would create without a ‘domain’ and no domains existed

/content/images/2023/06/backstage-09.png

Let’s try adding PSQL

I’ll KISS and use the local postgres DB and user as the tutorial suggests

backend:
  # Used for enabling authentication, secret is shared by all backend plugins
  # See https://backstage.io/docs/auth/service-to-service-auth for
  # information on the format
  # auth:
  #   keys:
  #     - secret: ${BACKEND_SECRET}
  baseUrl: http://localhost:7007
  listen:
    port: 7007
  database:
    client: pg
    connection:
      host: 127.0.0.1
      port: 5432
      user: postgres
      password: secret

still no luck

/content/images/2023/06/backstage-10.png

Hosted Options

Clearly I am not alone in finding this less than stellar for setup.

Why else would there be so many hosted options out there.

We have OpsLevel

/content/images/2023/06/backstage-12.png

which is a bit vague on pricing

/content/images/2023/06/backstage-13.png

Cortext Service Catalog is another

/content/images/2023/06/backstage-14.png

and Roadie

/content/images/2023/06/backstage-15.png

who at least was very transparent on pricing

/content/images/2023/06/backstage-16.png

There are non backstage.io based options out there as well:

Summary

/content/images/2023/06/isaacjohnson_round_logo_happy_marshmellow_on_fire_dumpster_in_b_56955c3b-448d-4e60-8a63-da254e07dc1b.png

At some point you call it and post the blog. That is today. I wanted to build out something full featured and clean but it just wasn’t happening. Failure is learning too. In that end, I’ll come back and try again. I’m determined to see if I cannot get some helm approach going as I hate managing things just in docker or using a bespoke Linux box.

At the end of the day, backstage is a open-source actively developed developer portal. It’s built on Node with React and leans towards using external OIDPs and PostgreSQL for data permanence. I see there are other guides to follow as well. I don’t see much value in me reformatting someone else’s blog.

However, if I can get this turd burger up and running and fault tolerant (i don’t load sites that have to be reloaded when they crash - homie don’t play that), then I’ll post a part two.

Otherwise, take it from Grouchy SRE today - backstage.io seems nice but perhaps it’s a bit too ‘alpha’ out of the box for my taste.

Backstage Developer Portal

Have something to add? Feedback? You can use the feedback form

Isaac Johnson

Isaac Johnson

Cloud Solutions Architect

Isaac is a CSA and DevOps engineer who focuses on cloud migrations and devops processes. He also is a dad to three wonderful daughters (hence the references to Princess King sprinkled throughout the blog).

Theme built by C.S. Rhymes