diff --git a/diffs-yarn-plugin/1.31.1..1.32.4.diff b/diffs-yarn-plugin/1.31.1..1.32.4.diff
new file mode 100644
index 00000000..10387396
--- /dev/null
+++ b/diffs-yarn-plugin/1.31.1..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index b1ca6e42..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.31.1"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.31.2..1.32.4.diff b/diffs-yarn-plugin/1.31.2..1.32.4.diff
new file mode 100644
index 00000000..0d4b7f49
--- /dev/null
+++ b/diffs-yarn-plugin/1.31.2..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index 51e2c1de..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.31.2"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.31.3..1.32.4.diff b/diffs-yarn-plugin/1.31.3..1.32.4.diff
new file mode 100644
index 00000000..a6ddc05f
--- /dev/null
+++ b/diffs-yarn-plugin/1.31.3..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index 5f445e53..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.31.3"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.32.0-next.0..1.32.4.diff b/diffs-yarn-plugin/1.32.0-next.0..1.32.4.diff
new file mode 100644
index 00000000..c63390e3
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.0-next.0..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index 727c0eff..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.0-next.0"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.32.0-next.1..1.32.4.diff b/diffs-yarn-plugin/1.32.0-next.1..1.32.4.diff
new file mode 100644
index 00000000..3162c1d9
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.0-next.1..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index df3ec520..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.0-next.1"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.32.0-next.2..1.32.4.diff b/diffs-yarn-plugin/1.32.0-next.2..1.32.4.diff
new file mode 100644
index 00000000..b24d5f3b
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.0-next.2..1.32.4.diff
@@ -0,0 +1,49 @@
+diff --git a/backstage.json b/backstage.json
+index 20f48ac6..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.0-next.2"
++ "version": "1.32.4"
+ }
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 72c2e57c..d36e3be1 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -42,3 +42,2 @@
+ "@material-ui/icons": "^4.9.1",
+- "history": "^5.0.0",
+ "react": "^18.0.2",
+@@ -46,4 +45,3 @@
+ "react-router": "^6.3.0",
+- "react-router-dom": "^6.3.0",
+- "react-use": "^17.2.4"
++ "react-router-dom": "^6.3.0"
+ },
+diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
+index 09024eb4..6a4c257a 100644
+--- a/packages/backend/Dockerfile
++++ b/packages/backend/Dockerfile
+@@ -47,3 +47,3 @@ ENV NODE_ENV=production
+ # This disables node snapshot for Node 20 to work with the Scaffolder
+-ENV NODE_OPTIONS "--no-node-snapshot"
++ENV NODE_OPTIONS="--no-node-snapshot"
+
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index c124c22c..016daaef 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -44,10 +44,6 @@
+ "node-gyp": "^10.0.0",
+- "pg": "^8.11.3",
+- "winston": "^3.2.1"
++ "pg": "^8.11.3"
+ },
+ "devDependencies": {
+- "@backstage/cli": "backstage:^",
+- "@types/express": "^4.17.6",
+- "@types/express-serve-static-core": "^4.17.5",
+- "@types/luxon": "^2.0.4"
++ "@backstage/cli": "backstage:^"
+ },
diff --git a/diffs-yarn-plugin/1.32.0..1.32.4.diff b/diffs-yarn-plugin/1.32.0..1.32.4.diff
new file mode 100644
index 00000000..aa5f27cc
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.0..1.32.4.diff
@@ -0,0 +1,18 @@
+diff --git a/backstage.json b/backstage.json
+index 6dd6571b..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.0"
++ "version": "1.32.4"
+ }
+diff --git a/yarn.lock b/yarn.lock
+deleted file mode 100644
+index c37fc613..00000000
+--- a/yarn.lock
++++ /dev/null
+@@ -1,3 +0,0 @@
+-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+-# yarn lockfile v1
+-
diff --git a/diffs-yarn-plugin/1.32.1..1.32.4.diff b/diffs-yarn-plugin/1.32.1..1.32.4.diff
new file mode 100644
index 00000000..1968aa63
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.1..1.32.4.diff
@@ -0,0 +1,9 @@
+diff --git a/backstage.json b/backstage.json
+index 008122da..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.1"
++ "version": "1.32.4"
+ }
diff --git a/diffs-yarn-plugin/1.32.2..1.32.4.diff b/diffs-yarn-plugin/1.32.2..1.32.4.diff
new file mode 100644
index 00000000..c2dca3f0
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.2..1.32.4.diff
@@ -0,0 +1,9 @@
+diff --git a/backstage.json b/backstage.json
+index 02362d20..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.2"
++ "version": "1.32.4"
+ }
diff --git a/diffs-yarn-plugin/1.32.3..1.32.4.diff b/diffs-yarn-plugin/1.32.3..1.32.4.diff
new file mode 100644
index 00000000..e17bc45d
--- /dev/null
+++ b/diffs-yarn-plugin/1.32.3..1.32.4.diff
@@ -0,0 +1,9 @@
+diff --git a/backstage.json b/backstage.json
+index e313ab82..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.32.3"
++ "version": "1.32.4"
+ }
diff --git a/diffs-yarn-plugin/1.33.0-next.0..1.32.4.diff b/diffs-yarn-plugin/1.33.0-next.0..1.32.4.diff
new file mode 100644
index 00000000..54c82697
--- /dev/null
+++ b/diffs-yarn-plugin/1.33.0-next.0..1.32.4.diff
@@ -0,0 +1,18 @@
+diff --git a/backstage.json b/backstage.json
+index 14d36627..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.33.0-next.0"
++ "version": "1.32.4"
+ }
+diff --git a/yarn.lock b/yarn.lock
+deleted file mode 100644
+index c37fc613..00000000
+--- a/yarn.lock
++++ /dev/null
+@@ -1,3 +0,0 @@
+-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+-# yarn lockfile v1
+-
diff --git a/diffs-yarn-plugin/1.33.0-next.1..1.32.4.diff b/diffs-yarn-plugin/1.33.0-next.1..1.32.4.diff
new file mode 100644
index 00000000..7c3705dd
--- /dev/null
+++ b/diffs-yarn-plugin/1.33.0-next.1..1.32.4.diff
@@ -0,0 +1,27 @@
+diff --git a/backstage.json b/backstage.json
+index 65c00b35..32f15a62 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.33.0-next.1"
++ "version": "1.32.4"
+ }
+diff --git a/package.json b/package.json
+index 00d1ff57..2f01c7c5 100644
+--- a/package.json
++++ b/package.json
+@@ -5,3 +5,3 @@
+ "engines": {
+- "node": "20 || 22"
++ "node": "18 || 20"
+ },
+diff --git a/yarn.lock b/yarn.lock
+deleted file mode 100644
+index c37fc613..00000000
+--- a/yarn.lock
++++ /dev/null
+@@ -1,3 +0,0 @@
+-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+-# yarn lockfile v1
+-
diff --git a/diffs/0.3.44..0.5.21.diff b/diffs/0.3.44..0.5.21.diff
index 649c8ef9..901a6c1a 100644
--- a/diffs/0.3.44..0.5.21.diff
+++ b/diffs/0.3.44..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1188,7 +1188,7 @@ index 93b0c3f..ca52ec5 100644
+ enabled: true
diff --git a/backstage.json b/backstage.json
new file mode 100644
-index 0000000..6dd6571
+index 00000000..6dd6571b
--- /dev/null
+++ b/backstage.json
@@ -0,0 +1,3 @@
@@ -1197,7 +1197,7 @@ index 0000000..6dd6571
+}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index fca07bd..d5f824e 100644
+index fca07bd3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1466,7 +1466,7 @@ index fca07bd..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1481,13 +1481,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1497,7 +1497,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1508,7 +1508,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1535,7 +1535,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1547,7 +1547,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1579,7 +1579,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6d348b5..e9aef99 100644
+index 6d348b5f..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,53 +5,53 @@
@@ -1682,7 +1682,7 @@ index 6d348b5..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1729,7 +1729,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1756,7 +1756,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 4cd8368..e24c468 100644
+index 4cd83685..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1869,7 +1869,7 @@ index 4cd8368..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1891,7 +1891,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1913,7 +1913,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 198e7ec..853d175 100644
+index 198e7ec2..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2033,7 +2033,7 @@ index 198e7ec..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2055,7 +2055,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2245,7 +2245,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2372,7 +2372,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2384,7 +2384,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2393,7 +2393,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2467,7 +2467,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2503,7 +2503,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5b58619..7c1a20c 100644
+index 5b58619f..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2585,7 +2585,7 @@ index 5b58619..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2598,7 +2598,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2721,7 +2721,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2741,7 +2741,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2759,7 +2759,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index d1ded51..0000000
+index d1ded511..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2777,7 +2777,7 @@ index d1ded51..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2794,7 +2794,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2827,7 +2827,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2872,7 +2872,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2931,7 +2931,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2954,7 +2954,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3020,7 +3020,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3034,7 +3034,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3045,7 +3045,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.3.45..0.5.21.diff b/diffs/0.3.45..0.5.21.diff
index a4884a2f..eb46e765 100644
--- a/diffs/0.3.45..0.5.21.diff
+++ b/diffs/0.3.45..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1188,7 +1188,7 @@ index 93b0c3f..ca52ec5 100644
+ enabled: true
diff --git a/backstage.json b/backstage.json
new file mode 100644
-index 0000000..6dd6571
+index 00000000..6dd6571b
--- /dev/null
+++ b/backstage.json
@@ -0,0 +1,3 @@
@@ -1197,7 +1197,7 @@ index 0000000..6dd6571
+}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 9d9601f..d5f824e 100644
+index 9d9601ff..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1466,7 +1466,7 @@ index 9d9601f..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1481,13 +1481,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1497,7 +1497,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1508,7 +1508,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1535,7 +1535,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1547,7 +1547,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1579,7 +1579,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index a860127..e9aef99 100644
+index a8601270..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,53 +5,53 @@
@@ -1682,7 +1682,7 @@ index a860127..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1729,7 +1729,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1756,7 +1756,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 4cd8368..e24c468 100644
+index 4cd83685..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1869,7 +1869,7 @@ index 4cd8368..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1891,7 +1891,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1913,7 +1913,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 198e7ec..853d175 100644
+index 198e7ec2..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2033,7 +2033,7 @@ index 198e7ec..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2055,7 +2055,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2245,7 +2245,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2372,7 +2372,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2384,7 +2384,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2393,7 +2393,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2467,7 +2467,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2503,7 +2503,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a343d53..7c1a20c 100644
+index a343d531..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2585,7 +2585,7 @@ index a343d53..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2598,7 +2598,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2721,7 +2721,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2741,7 +2741,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2759,7 +2759,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2779,7 +2779,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2796,7 +2796,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2829,7 +2829,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2874,7 +2874,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2933,7 +2933,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2956,7 +2956,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3022,7 +3022,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3036,7 +3036,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3047,7 +3047,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.0..0.5.21.diff b/diffs/0.4.0..0.5.21.diff
index f0b4ab78..0e39f49f 100644
--- a/diffs/0.4.0..0.5.21.diff
+++ b/diffs/0.4.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1188,7 +1188,7 @@ index 93b0c3f..ca52ec5 100644
+ enabled: true
diff --git a/backstage.json b/backstage.json
new file mode 100644
-index 0000000..6dd6571
+index 00000000..6dd6571b
--- /dev/null
+++ b/backstage.json
@@ -0,0 +1,3 @@
@@ -1197,7 +1197,7 @@ index 0000000..6dd6571
+}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 02902cb..d5f824e 100644
+index 02902cb5..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1463,7 +1463,7 @@ index 02902cb..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1478,13 +1478,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1494,7 +1494,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1505,7 +1505,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1532,7 +1532,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1544,7 +1544,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1576,7 +1576,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8bdb8f7..e9aef99 100644
+index 8bdb8f7a..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,53 +5,53 @@
@@ -1679,7 +1679,7 @@ index 8bdb8f7..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1726,7 +1726,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1753,7 +1753,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 4cd8368..e24c468 100644
+index 4cd83685..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1866,7 +1866,7 @@ index 4cd8368..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1888,7 +1888,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1910,7 +1910,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 198e7ec..853d175 100644
+index 198e7ec2..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2030,7 +2030,7 @@ index 198e7ec..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2052,7 +2052,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2242,7 +2242,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2369,7 +2369,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2381,7 +2381,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2390,7 +2390,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2464,7 +2464,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2500,7 +2500,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index bdbb85f..7c1a20c 100644
+index bdbb85f5..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2582,7 +2582,7 @@ index bdbb85f..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2595,7 +2595,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2718,7 +2718,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2738,7 +2738,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2756,7 +2756,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2776,7 +2776,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2793,7 +2793,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2826,7 +2826,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2871,7 +2871,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2930,7 +2930,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2953,7 +2953,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3019,7 +3019,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3033,7 +3033,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3044,7 +3044,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.1..0.5.21.diff b/diffs/0.4.1..0.5.21.diff
index 22991560..189012d6 100644
--- a/diffs/0.4.1..0.5.21.diff
+++ b/diffs/0.4.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1188,7 +1188,7 @@ index 93b0c3f..ca52ec5 100644
+ enabled: true
diff --git a/backstage.json b/backstage.json
new file mode 100644
-index 0000000..6dd6571
+index 00000000..6dd6571b
--- /dev/null
+++ b/backstage.json
@@ -0,0 +1,3 @@
@@ -1197,7 +1197,7 @@ index 0000000..6dd6571
+}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 82cf726..d5f824e 100644
+index 82cf7269..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1463,7 +1463,7 @@ index 82cf726..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1478,13 +1478,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1494,7 +1494,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1505,7 +1505,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1532,7 +1532,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1544,7 +1544,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1576,7 +1576,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 0510279..e9aef99 100644
+index 05102798..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,53 +5,53 @@
@@ -1679,7 +1679,7 @@ index 0510279..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1726,7 +1726,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1753,7 +1753,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 4cd8368..e24c468 100644
+index 4cd83685..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1866,7 +1866,7 @@ index 4cd8368..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1888,7 +1888,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1910,7 +1910,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 198e7ec..853d175 100644
+index 198e7ec2..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2030,7 +2030,7 @@ index 198e7ec..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2052,7 +2052,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2242,7 +2242,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2369,7 +2369,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2381,7 +2381,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2390,7 +2390,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2464,7 +2464,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2500,7 +2500,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index bd338cc..7c1a20c 100644
+index bd338cc6..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2582,7 +2582,7 @@ index bd338cc..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2595,7 +2595,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2718,7 +2718,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2738,7 +2738,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2756,7 +2756,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2776,7 +2776,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2793,7 +2793,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2826,7 +2826,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2871,7 +2871,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2930,7 +2930,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2953,7 +2953,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3019,7 +3019,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3033,7 +3033,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3044,7 +3044,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.10..0.5.21.diff b/diffs/0.4.10..0.5.21.diff
index b468c86b..90aacee8 100644
--- a/diffs/0.4.10..0.5.21.diff
+++ b/diffs/0.4.10..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index da31324..6dd6571 100644
+index da31324f..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index da31324..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index f423117..d5f824e 100644
+index f4231179..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index f423117..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 9b9ea2f..e9aef99 100644
+index 9b9ea2fa..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index 9b9ea2f..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1699,7 +1699,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1718,7 +1718,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1831,7 +1831,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1853,7 +1853,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1875,7 +1875,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1998,7 +1998,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2020,7 +2020,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2210,7 +2210,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cf380b6..1788dde 100644
+index cf380b6f..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2315,7 +2315,7 @@ index cf380b6..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2327,7 +2327,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2336,7 +2336,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2410,7 +2410,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2443,7 +2443,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index afdde8d..7c1a20c 100644
+index afdde8db..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,40 +6,44 @@
@@ -2526,7 +2526,7 @@ index afdde8d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2539,7 +2539,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 08d21e6..f57d4c5 100644
+index 08d21e61..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,96 +8,47 @@
@@ -2677,7 +2677,7 @@ index 08d21e6..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2697,7 +2697,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2715,7 +2715,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2735,7 +2735,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2752,7 +2752,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2785,7 +2785,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2845,7 +2845,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2906,7 +2906,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index c3d0158..0000000
+index c3d0158d..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2933,7 +2933,7 @@ index c3d0158..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2999,7 +2999,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3013,7 +3013,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3024,7 +3024,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.11..0.5.21.diff b/diffs/0.4.11..0.5.21.diff
index 8c6a5089..04dead47 100644
--- a/diffs/0.4.11..0.5.21.diff
+++ b/diffs/0.4.11..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 35313e0..6dd6571 100644
+index 35313e03..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index 35313e0..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index eeca538..d5f824e 100644
+index eeca5385..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index eeca538..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index a077d5f..e9aef99 100644
+index a077d5fd..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index a077d5f..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1699,7 +1699,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1718,7 +1718,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1831,7 +1831,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1853,7 +1853,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1875,7 +1875,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1998,7 +1998,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2020,7 +2020,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2210,7 +2210,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cf380b6..1788dde 100644
+index cf380b6f..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2315,7 +2315,7 @@ index cf380b6..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2327,7 +2327,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2336,7 +2336,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2410,7 +2410,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2443,7 +2443,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 8146972..7c1a20c 100644
+index 8146972c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,40 +6,44 @@
@@ -2526,7 +2526,7 @@ index 8146972..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2539,7 +2539,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 08d21e6..f57d4c5 100644
+index 08d21e61..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,96 +8,47 @@
@@ -2677,7 +2677,7 @@ index 08d21e6..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2697,7 +2697,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2715,7 +2715,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2735,7 +2735,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2752,7 +2752,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2785,7 +2785,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2845,7 +2845,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2906,7 +2906,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index c3d0158..0000000
+index c3d0158d..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2933,7 +2933,7 @@ index c3d0158..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2999,7 +2999,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3013,7 +3013,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3024,7 +3024,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.12..0.5.21.diff b/diffs/0.4.12..0.5.21.diff
index 6f0586ba..38fd7671 100644
--- a/diffs/0.4.12..0.5.21.diff
+++ b/diffs/0.4.12..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index d3585dd..6dd6571 100644
+index d3585dd4..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index d3585dd..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index e594f58..d5f824e 100644
+index e594f58c..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index e594f58..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6fbdef4..e9aef99 100644
+index 6fbdef43..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index 6fbdef4..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1699,7 +1699,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1718,7 +1718,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1831,7 +1831,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1853,7 +1853,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1875,7 +1875,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1998,7 +1998,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2020,7 +2020,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2210,7 +2210,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cf380b6..1788dde 100644
+index cf380b6f..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2315,7 +2315,7 @@ index cf380b6..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2327,7 +2327,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2336,7 +2336,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2410,7 +2410,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2443,7 +2443,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index bf8390f..7c1a20c 100644
+index bf8390f7..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2528,7 +2528,7 @@ index bf8390f..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2541,7 +2541,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2685,7 +2685,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2705,7 +2705,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2723,7 +2723,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2743,7 +2743,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2760,7 +2760,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2793,7 +2793,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2853,7 +2853,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2914,7 +2914,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2943,7 +2943,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3009,7 +3009,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3023,7 +3023,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3034,7 +3034,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.13..0.5.21.diff b/diffs/0.4.13..0.5.21.diff
index a55e4060..56ffde36 100644
--- a/diffs/0.4.13..0.5.21.diff
+++ b/diffs/0.4.13..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 5a69ad5..6dd6571 100644
+index 5a69ad5d..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index 5a69ad5..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 19a4f52..d5f824e 100644
+index 19a4f52d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index 19a4f52..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 72c01d5..e9aef99 100644
+index 72c01d52..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index 72c01d5..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1699,7 +1699,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1718,7 +1718,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1831,7 +1831,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1853,7 +1853,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1875,7 +1875,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1965,7 +1965,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1987,7 +1987,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2177,7 +2177,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cf380b6..1788dde 100644
+index cf380b6f..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2282,7 +2282,7 @@ index cf380b6..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2294,7 +2294,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2303,7 +2303,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2377,7 +2377,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2410,7 +2410,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 63c5c0d..7c1a20c 100644
+index 63c5c0d3..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2495,7 +2495,7 @@ index 63c5c0d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2508,7 +2508,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2652,7 +2652,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2674,7 +2674,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2692,7 +2692,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2712,7 +2712,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2729,7 +2729,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2762,7 +2762,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2822,7 +2822,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2883,7 +2883,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2912,7 +2912,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2978,7 +2978,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2992,7 +2992,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3003,7 +3003,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.14..0.5.21.diff b/diffs/0.4.14..0.5.21.diff
index bc400e47..441f2e51 100644
--- a/diffs/0.4.14..0.5.21.diff
+++ b/diffs/0.4.14..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e91ab70..6dd6571 100644
+index e91ab705..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index e91ab70..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 2454755..d5f824e 100644
+index 24547556..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index 2454755..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8ce600d..e9aef99 100644
+index 8ce600d5..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index 8ce600d..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1699,7 +1699,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1718,7 +1718,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 78949b0..e24c468 100644
+index 78949b07..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1823,7 +1823,7 @@ index 78949b0..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1845,7 +1845,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1867,7 +1867,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1957,7 +1957,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1979,7 +1979,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2169,7 +2169,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cf380b6..1788dde 100644
+index cf380b6f..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2274,7 +2274,7 @@ index cf380b6..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2286,7 +2286,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2295,7 +2295,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2369,7 +2369,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2402,7 +2402,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5d64224..7c1a20c 100644
+index 5d642247..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2487,7 +2487,7 @@ index 5d64224..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2500,7 +2500,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2644,7 +2644,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2666,7 +2666,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2684,7 +2684,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2704,7 +2704,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2721,7 +2721,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2754,7 +2754,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2814,7 +2814,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2875,7 +2875,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2904,7 +2904,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2970,7 +2970,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2984,7 +2984,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2995,7 +2995,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.15..0.5.21.diff b/diffs/0.4.15..0.5.21.diff
index 0103ae7c..4cd93c7a 100644
--- a/diffs/0.4.15..0.5.21.diff
+++ b/diffs/0.4.15..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e27bbc7..6dd6571 100644
+index e27bbc7f..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index e27bbc7..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index d6ac827..d5f824e 100644
+index d6ac827d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index d6ac827..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 1681062..e9aef99 100644
+index 16810625..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,55 +5,53 @@
@@ -1659,7 +1659,7 @@ index 1681062..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1700,7 +1700,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1719,7 +1719,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 78949b0..e24c468 100644
+index 78949b07..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1824,7 +1824,7 @@ index 78949b0..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1846,7 +1846,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1868,7 +1868,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1958,7 +1958,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1980,7 +1980,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2109,7 +2109,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index a88e725..1788dde 100644
+index a88e7250..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,5 @@
@@ -2173,7 +2173,7 @@ index a88e725..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2185,7 +2185,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2194,7 +2194,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2268,7 +2268,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2301,7 +2301,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a5ff8d4..7c1a20c 100644
+index a5ff8d4a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2386,7 +2386,7 @@ index a5ff8d4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2399,7 +2399,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2543,7 +2543,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2565,7 +2565,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2583,7 +2583,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2603,7 +2603,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2620,7 +2620,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2653,7 +2653,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2717,7 +2717,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2778,7 +2778,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2807,7 +2807,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2873,7 +2873,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2887,7 +2887,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2898,7 +2898,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.16..0.5.21.diff b/diffs/0.4.16..0.5.21.diff
index 2ea7cd87..33c701e3 100644
--- a/diffs/0.4.16..0.5.21.diff
+++ b/diffs/0.4.16..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 5c3e9d4..6dd6571 100644
+index 5c3e9d4d..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index 5c3e9d4..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index d6ac827..d5f824e 100644
+index d6ac827d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index d6ac827..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 1681062..e9aef99 100644
+index 16810625..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,55 +5,53 @@
@@ -1659,7 +1659,7 @@ index 1681062..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1700,7 +1700,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1719,7 +1719,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 5a379b5..e24c468 100644
+index 5a379b5c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1820,7 +1820,7 @@ index 5a379b5..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1842,7 +1842,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1864,7 +1864,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1954,7 +1954,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1976,7 +1976,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2105,7 +2105,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index a88e725..1788dde 100644
+index a88e7250..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,5 @@
@@ -2169,7 +2169,7 @@ index a88e725..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2181,7 +2181,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2190,7 +2190,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2264,7 +2264,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2297,7 +2297,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a5ff8d4..7c1a20c 100644
+index a5ff8d4a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2382,7 +2382,7 @@ index a5ff8d4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2395,7 +2395,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2539,7 +2539,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2561,7 +2561,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2579,7 +2579,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2599,7 +2599,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2616,7 +2616,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2649,7 +2649,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2713,7 +2713,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2774,7 +2774,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2803,7 +2803,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2869,7 +2869,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2883,7 +2883,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2894,7 +2894,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.18..0.5.21.diff b/diffs/0.4.18..0.5.21.diff
index 1d82b164..21a3e1c4 100644
--- a/diffs/0.4.18..0.5.21.diff
+++ b/diffs/0.4.18..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index d45e354..ca52ec5 100644
+index d45e3545..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1170,7 +1170,7 @@ index d45e354..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 542bc3e..6dd6571 100644
+index 542bc3ec..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1180,7 +1180,7 @@ index 542bc3e..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1227,7 +1227,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1250,7 +1250,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1264,14 +1264,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1282,7 +1282,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1362,7 +1362,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1373,7 +1373,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 5dde784..d5f824e 100644
+index 5dde7845..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1436,7 +1436,7 @@ index 5dde784..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1451,13 +1451,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1467,7 +1467,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1478,7 +1478,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1505,7 +1505,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1517,7 +1517,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1549,7 +1549,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3ed23fe..e9aef99 100644
+index 3ed23fee..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,57 +5,53 @@
@@ -1656,7 +1656,7 @@ index 3ed23fe..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1697,7 +1697,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1716,7 +1716,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 9b65186..e24c468 100644
+index 9b651862..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1821,7 +1821,7 @@ index 9b65186..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1843,7 +1843,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1865,7 +1865,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1955,7 +1955,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1977,7 +1977,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2106,7 +2106,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index a88e725..1788dde 100644
+index a88e7250..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,5 @@
@@ -2170,7 +2170,7 @@ index a88e725..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2182,7 +2182,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2191,7 +2191,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2265,7 +2265,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2298,7 +2298,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 662347b..7c1a20c 100644
+index 662347bc..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2383,7 +2383,7 @@ index 662347b..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2396,7 +2396,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2540,7 +2540,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2562,7 +2562,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2587,7 +2587,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2607,7 +2607,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2624,7 +2624,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2657,7 +2657,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2721,7 +2721,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2782,7 +2782,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2811,7 +2811,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2877,7 +2877,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2891,7 +2891,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2902,7 +2902,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.19..0.5.21.diff b/diffs/0.4.19..0.5.21.diff
index 453f534d..b27cf47a 100644
--- a/diffs/0.4.19..0.5.21.diff
+++ b/diffs/0.4.19..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index d45e354..ca52ec5 100644
+index d45e3545..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1170,7 +1170,7 @@ index d45e354..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 5d45824..6dd6571 100644
+index 5d458242..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1180,7 +1180,7 @@ index 5d45824..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1227,7 +1227,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1250,7 +1250,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1264,14 +1264,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1282,7 +1282,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1362,7 +1362,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1373,7 +1373,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 6f04cc3..d5f824e 100644
+index 6f04cc30..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1436,7 +1436,7 @@ index 6f04cc3..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1451,13 +1451,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1467,7 +1467,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1478,7 +1478,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1505,7 +1505,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1517,7 +1517,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1549,7 +1549,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 447761d..e9aef99 100644
+index 447761d2..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,57 +5,53 @@
@@ -1656,7 +1656,7 @@ index 447761d..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1697,7 +1697,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1716,7 +1716,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 9b65186..e24c468 100644
+index 9b651862..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1821,7 +1821,7 @@ index 9b65186..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1843,7 +1843,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1865,7 +1865,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 7e98c7d..853d175 100644
+index 7e98c7d3..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1955,7 +1955,7 @@ index 7e98c7d..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1977,7 +1977,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2106,7 +2106,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index a88e725..1788dde 100644
+index a88e7250..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,5 @@
@@ -2170,7 +2170,7 @@ index a88e725..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2182,7 +2182,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2191,7 +2191,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2265,7 +2265,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2298,7 +2298,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 72f911d..7c1a20c 100644
+index 72f911de..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2382,7 +2382,7 @@ index 72f911d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2395,7 +2395,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2539,7 +2539,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2561,7 +2561,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2586,7 +2586,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2606,7 +2606,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2623,7 +2623,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2656,7 +2656,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2720,7 +2720,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2781,7 +2781,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2810,7 +2810,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2876,7 +2876,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2890,7 +2890,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2901,7 +2901,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.20..0.5.21.diff b/diffs/0.4.20..0.5.21.diff
index 32a16ed9..d622e11a 100644
--- a/diffs/0.4.20..0.5.21.diff
+++ b/diffs/0.4.20..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index d45e354..ca52ec5 100644
+index d45e3545..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1170,7 +1170,7 @@ index d45e354..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 06a76a3..6dd6571 100644
+index 06a76a37..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1180,7 +1180,7 @@ index 06a76a3..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1227,7 +1227,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1250,7 +1250,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1264,14 +1264,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1282,7 +1282,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1362,7 +1362,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1373,7 +1373,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 8005020..d5f824e 100644
+index 80050203..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1436,7 +1436,7 @@ index 8005020..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1451,13 +1451,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1467,7 +1467,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1478,7 +1478,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1505,7 +1505,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1517,7 +1517,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1549,7 +1549,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6022dc0..e9aef99 100644
+index 6022dc00..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,57 +5,53 @@
@@ -1656,7 +1656,7 @@ index 6022dc0..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1697,7 +1697,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1716,7 +1716,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 9b65186..e24c468 100644
+index 9b651862..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1821,7 +1821,7 @@ index 9b65186..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1843,7 +1843,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1865,7 +1865,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1940,7 +1940,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1962,7 +1962,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2091,7 +2091,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index a88e725..1788dde 100644
+index a88e7250..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,5 @@
@@ -2155,7 +2155,7 @@ index a88e725..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2167,7 +2167,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2176,7 +2176,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2250,7 +2250,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2283,7 +2283,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f018d52..7c1a20c 100644
+index f018d52d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2367,7 +2367,7 @@ index f018d52..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2380,7 +2380,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2524,7 +2524,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2546,7 +2546,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2571,7 +2571,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2591,7 +2591,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2608,7 +2608,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2641,7 +2641,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2705,7 +2705,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2766,7 +2766,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2795,7 +2795,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2861,7 +2861,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2875,7 +2875,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2886,7 +2886,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.21..0.5.21.diff b/diffs/0.4.21..0.5.21.diff
index 3583e53b..7e349bb0 100644
--- a/diffs/0.4.21..0.5.21.diff
+++ b/diffs/0.4.21..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index d45e354..ca52ec5 100644
+index d45e3545..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1170,7 +1170,7 @@ index d45e354..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index bc89f03..6dd6571 100644
+index bc89f03e..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1180,7 +1180,7 @@ index bc89f03..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1227,7 +1227,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1250,7 +1250,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1264,14 +1264,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1282,7 +1282,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1362,7 +1362,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1373,7 +1373,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7818580..d5f824e 100644
+index 78185800..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1436,7 +1436,7 @@ index 7818580..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1451,13 +1451,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1467,7 +1467,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1478,7 +1478,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1505,7 +1505,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1517,7 +1517,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1549,7 +1549,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index cfaf39c..e9aef99 100644
+index cfaf39c3..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,57 +5,53 @@
@@ -1656,7 +1656,7 @@ index cfaf39c..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1697,7 +1697,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1716,7 +1716,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 9b65186..e24c468 100644
+index 9b651862..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1821,7 +1821,7 @@ index 9b65186..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1843,7 +1843,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1865,7 +1865,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1940,7 +1940,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1962,7 +1962,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2091,7 +2091,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 469a230..1788dde 100644
+index 469a230e..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2152,7 +2152,7 @@ index 469a230..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2164,7 +2164,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2173,7 +2173,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2252,7 +2252,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2285,7 +2285,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e49967b..7c1a20c 100644
+index e49967b8..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2369,7 +2369,7 @@ index e49967b..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2382,7 +2382,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2526,7 +2526,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2548,7 +2548,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2573,7 +2573,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2593,7 +2593,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2610,7 +2610,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2643,7 +2643,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index a0a1cc3..0000000
+index a0a1cc37..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2707,7 +2707,7 @@ index a0a1cc3..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2768,7 +2768,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2797,7 +2797,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2863,7 +2863,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2877,7 +2877,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2888,7 +2888,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.22..0.5.21.diff b/diffs/0.4.22..0.5.21.diff
index ca3a91ca..7dbef588 100644
--- a/diffs/0.4.22..0.5.21.diff
+++ b/diffs/0.4.22..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index d45e354..ca52ec5 100644
+index d45e3545..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1170,7 +1170,7 @@ index d45e354..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 0656bae..6dd6571 100644
+index 0656baec..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1180,7 +1180,7 @@ index 0656bae..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1227,7 +1227,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1250,7 +1250,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1264,14 +1264,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1282,7 +1282,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1362,7 +1362,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1373,7 +1373,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 22856e3..d5f824e 100644
+index 22856e30..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1436,7 +1436,7 @@ index 22856e3..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1451,13 +1451,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1467,7 +1467,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1478,7 +1478,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1505,7 +1505,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1517,7 +1517,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1549,7 +1549,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 5070c85..e9aef99 100644
+index 5070c850..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,57 +5,53 @@
@@ -1656,7 +1656,7 @@ index 5070c85..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1697,7 +1697,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1716,7 +1716,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f4ff424..e24c468 100644
+index f4ff4249..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1810,7 +1810,7 @@ index f4ff424..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1832,7 +1832,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1854,7 +1854,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1929,7 +1929,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1951,7 +1951,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2080,7 +2080,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cd4603e..1788dde 100644
+index cd4603ec..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2138,7 +2138,7 @@ index cd4603e..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2150,7 +2150,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2159,7 +2159,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2238,7 +2238,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2271,7 +2271,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index eb3cecc..7c1a20c 100644
+index eb3cecc5..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,42 +6,44 @@
@@ -2355,7 +2355,7 @@ index eb3cecc..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2368,7 +2368,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2512,7 +2512,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2534,7 +2534,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2559,7 +2559,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2579,7 +2579,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2596,7 +2596,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2629,7 +2629,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index c359cb4..0000000
+index c359cb49..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2693,7 +2693,7 @@ index c359cb4..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2754,7 +2754,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2783,7 +2783,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2849,7 +2849,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2863,7 +2863,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2874,7 +2874,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.23..0.5.21.diff b/diffs/0.4.23..0.5.21.diff
index c10c7a2c..a768c92b 100644
--- a/diffs/0.4.23..0.5.21.diff
+++ b/diffs/0.4.23..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 64a661d..ca52ec5 100644
+index 64a661d3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1166,7 +1166,7 @@ index 64a661d..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 3666530..6dd6571 100644
+index 36665309..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1176,7 +1176,7 @@ index 3666530..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1223,7 +1223,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1246,7 +1246,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1260,14 +1260,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1278,7 +1278,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1358,7 +1358,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1369,7 +1369,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 625a333..d5f824e 100644
+index 625a3330..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1430,7 +1430,7 @@ index 625a333..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1445,14 +1445,14 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1463,7 +1463,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1490,7 +1490,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1502,7 +1502,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1534,7 +1534,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index bb1da11..e9aef99 100644
+index bb1da115..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,57 +8,50 @@
@@ -1638,7 +1638,7 @@ index bb1da11..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1679,7 +1679,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1698,7 +1698,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f4ff424..e24c468 100644
+index f4ff4249..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1792,7 +1792,7 @@ index f4ff424..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1814,7 +1814,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1836,7 +1836,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1911,7 +1911,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1933,7 +1933,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2062,7 +2062,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cd4603e..1788dde 100644
+index cd4603ec..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2120,7 +2120,7 @@ index cd4603e..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2132,7 +2132,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2211,7 +2211,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2244,7 +2244,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 10f5a4d..7c1a20c 100644
+index 10f5a4d5..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -15,36 +15,35 @@
@@ -2314,7 +2314,7 @@ index 10f5a4d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2327,7 +2327,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2471,7 +2471,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 14e19a1..0000000
+index 14e19a19..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,16 +0,0 @@
@@ -2493,7 +2493,7 @@ index 14e19a1..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 015c864..0000000
+index 015c8646..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2518,7 +2518,7 @@ index 015c864..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2538,7 +2538,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2555,7 +2555,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a460fd8..0000000
+index a460fd8a..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2582,7 +2582,7 @@ index a460fd8..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index c359cb4..0000000
+index c359cb49..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,58 +0,0 @@
@@ -2646,7 +2646,7 @@ index c359cb4..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2707,7 +2707,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2736,7 +2736,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2802,7 +2802,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2816,7 +2816,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2827,7 +2827,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.24..0.5.21.diff b/diffs/0.4.24..0.5.21.diff
index 580e471f..dd0966d7 100644
--- a/diffs/0.4.24..0.5.21.diff
+++ b/diffs/0.4.24..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index e7732cf..ca52ec5 100644
+index e7732cf4..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1165,7 +1165,7 @@ index e7732cf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1587a66..6dd6571 100644
+index 1587a669..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1175,7 +1175,7 @@ index 1587a66..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1222,7 +1222,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1245,7 +1245,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1259,14 +1259,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1277,7 +1277,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1357,7 +1357,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1368,7 +1368,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index b5fadf8..d5f824e 100644
+index b5fadf80..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1429,7 +1429,7 @@ index b5fadf8..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1444,14 +1444,14 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1462,7 +1462,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1489,7 +1489,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1501,7 +1501,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1533,7 +1533,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 0cfef69..e9aef99 100644
+index 0cfef69c..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,57 +8,50 @@
@@ -1637,7 +1637,7 @@ index 0cfef69..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1678,7 +1678,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1697,7 +1697,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f4ff424..e24c468 100644
+index f4ff4249..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1791,7 +1791,7 @@ index f4ff424..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1813,7 +1813,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1835,7 +1835,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1910,7 +1910,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1932,7 +1932,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2061,7 +2061,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cd4603e..1788dde 100644
+index cd4603ec..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2119,7 +2119,7 @@ index cd4603e..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2131,7 +2131,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2210,7 +2210,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2243,7 +2243,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f5d216b..7c1a20c 100644
+index f5d216be..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -15,36 +15,35 @@
@@ -2313,7 +2313,7 @@ index f5d216b..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2326,7 +2326,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2470,7 +2470,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2490,7 +2490,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 1476e66..0000000
+index 1476e661..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,15 +0,0 @@
@@ -2511,7 +2511,7 @@ index 1476e66..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2531,7 +2531,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2550,7 +2550,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2576,7 +2576,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 8df6b0a..0000000
+index 8df6b0aa..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,60 +0,0 @@
@@ -2642,7 +2642,7 @@ index 8df6b0a..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2699,7 +2699,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2728,7 +2728,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2794,7 +2794,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2808,7 +2808,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2819,7 +2819,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.25..0.5.21.diff b/diffs/0.4.25..0.5.21.diff
index e54553b7..1385a47e 100644
--- a/diffs/0.4.25..0.5.21.diff
+++ b/diffs/0.4.25..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index e7732cf..ca52ec5 100644
+index e7732cf4..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1165,7 +1165,7 @@ index e7732cf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index bbea0d7..6dd6571 100644
+index bbea0d79..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1175,7 +1175,7 @@ index bbea0d7..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1222,7 +1222,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1245,7 +1245,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1259,14 +1259,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1277,7 +1277,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1357,7 +1357,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1368,7 +1368,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 5b7bfbf..d5f824e 100644
+index 5b7bfbf4..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1431,7 +1431,7 @@ index 5b7bfbf..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1446,14 +1446,14 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1464,7 +1464,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1491,7 +1491,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1503,7 +1503,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1535,7 +1535,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index cfe2065..e9aef99 100644
+index cfe20652..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,57 +8,50 @@
@@ -1639,7 +1639,7 @@ index cfe2065..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1680,7 +1680,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1699,7 +1699,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f4ff424..e24c468 100644
+index f4ff4249..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1793,7 +1793,7 @@ index f4ff424..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1815,7 +1815,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1837,7 +1837,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1912,7 +1912,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1934,7 +1934,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2063,7 +2063,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index cd4603e..1788dde 100644
+index cd4603ec..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2121,7 +2121,7 @@ index cd4603e..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2133,7 +2133,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2212,7 +2212,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2245,7 +2245,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index acbfeda..7c1a20c 100644
+index acbfeda7..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -15,36 +15,35 @@
@@ -2315,7 +2315,7 @@ index acbfeda..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2328,7 +2328,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2472,7 +2472,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2492,7 +2492,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 1476e66..0000000
+index 1476e661..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,15 +0,0 @@
@@ -2513,7 +2513,7 @@ index 1476e66..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2533,7 +2533,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2552,7 +2552,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2578,7 +2578,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 8df6b0a..0000000
+index 8df6b0aa..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,60 +0,0 @@
@@ -2644,7 +2644,7 @@ index 8df6b0a..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2701,7 +2701,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 0862b0e..0000000
+index 0862b0e8..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2730,7 +2730,7 @@ index 0862b0e..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2796,7 +2796,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -2810,7 +2810,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2821,7 +2821,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.26..0.5.21.diff b/diffs/0.4.26..0.5.21.diff
index 74fa9ad0..7bc9b325 100644
--- a/diffs/0.4.26..0.5.21.diff
+++ b/diffs/0.4.26..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 2f2a14b..ca52ec5 100644
+index 2f2a14ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1162,7 +1162,7 @@ index 2f2a14b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index fabbd9a..6dd6571 100644
+index fabbd9ad..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1172,7 +1172,7 @@ index fabbd9a..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1219,7 +1219,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1242,7 +1242,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1256,14 +1256,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1274,7 +1274,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1354,7 +1354,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1365,7 +1365,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index f2955eb..d5f824e 100644
+index f2955ebb..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1428,14 +1428,14 @@ index f2955eb..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1446,7 +1446,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1473,7 +1473,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1485,7 +1485,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1517,7 +1517,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 5509d17..e9aef99 100644
+index 5509d179..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,58 +8,50 @@
@@ -1622,7 +1622,7 @@ index 5509d17..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1663,7 +1663,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1682,7 +1682,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f4ff424..e24c468 100644
+index f4ff4249..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1776,7 +1776,7 @@ index f4ff424..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1798,7 +1798,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1820,7 +1820,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1895,7 +1895,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1917,7 +1917,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2046,7 +2046,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 0595e4e..1788dde 100644
+index 0595e4ec..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -2105,7 +2105,7 @@ index 0595e4e..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2117,7 +2117,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index dd35d4d..6a4c257 100644
+index dd35d4dd..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2196,7 +2196,7 @@ index dd35d4d..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2229,7 +2229,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 8e7730c..7c1a20c 100644
+index 8e7730c8..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,31 +18,32 @@
@@ -2293,7 +2293,7 @@ index 8e7730c..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2306,7 +2306,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2450,7 +2450,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2470,7 +2470,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 1476e66..0000000
+index 1476e661..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,15 +0,0 @@
@@ -2491,7 +2491,7 @@ index 1476e66..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2511,7 +2511,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2530,7 +2530,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2556,7 +2556,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 27c42fc..0000000
+index 27c42fca..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,67 +0,0 @@
@@ -2629,7 +2629,7 @@ index 27c42fc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2686,7 +2686,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 8e0a864..0000000
+index 8e0a8640..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2715,7 +2715,7 @@ index 8e0a864..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2780,7 +2780,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2789,7 +2789,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2800,7 +2800,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.27..0.5.21.diff b/diffs/0.4.27..0.5.21.diff
index 19a8416b..1938849a 100644
--- a/diffs/0.4.27..0.5.21.diff
+++ b/diffs/0.4.27..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 505a7b5..05edb62 100644
+index 505a7b54..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,4 @@
@@ -9,13 +9,13 @@ index 505a7b5..05edb62 100644
node_modules
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -40,7 +40,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -971,7 +971,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -979,7 +979,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index b9dd00b..5d426f5 100644
+index b9dd00bb..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1028,7 +1028,7 @@ index b9dd00b..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index cd6998d..ca52ec5 100644
+index cd6998de..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1092,7 +1092,7 @@ index cd6998d..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index a15e91f..6dd6571 100644
+index a15e91ff..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1101,7 +1101,7 @@ index a15e91f..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1119,7 +1119,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 5a3196b..d5f824e 100644
+index 5a3196b8..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1193,14 +1193,14 @@ index 5a3196b..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1211,7 +1211,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1238,7 +1238,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1250,7 +1250,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1282,7 +1282,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 7f04bae..e9aef99 100644
+index 7f04bae6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,60 +8,50 @@
@@ -1389,7 +1389,7 @@ index 7f04bae..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1430,7 +1430,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1449,7 +1449,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index c487726..e24c468 100644
+index c4877263..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1529,7 +1529,7 @@ index c487726..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1551,7 +1551,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1573,7 +1573,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 90738c4..853d175 100644
+index 90738c44..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1648,7 +1648,7 @@ index 90738c4..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1670,7 +1670,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 84d0944..6164c76 100644
+index 84d09441..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -1799,7 +1799,7 @@ index 84d0944..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index d4c7c92..1788dde 100644
+index d4c7c923..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1861,7 +1861,7 @@ index d4c7c92..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1873,7 +1873,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a5773aa..6a4c257 100644
+index a5773aa0..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1948,7 +1948,7 @@ index a5773aa..6a4c257 100644
+COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1981,7 +1981,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 134ddf4..7c1a20c 100644
+index 134ddf4e..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,32 +18,32 @@
@@ -2046,7 +2046,7 @@ index 134ddf4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2059,7 +2059,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2203,7 +2203,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2223,7 +2223,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 13f18c5..0000000
+index 13f18c55..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,36 +0,0 @@
@@ -2265,7 +2265,7 @@ index 13f18c5..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2285,7 +2285,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2304,7 +2304,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2330,7 +2330,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2402,7 +2402,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2459,7 +2459,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 8e0a864..0000000
+index 8e0a8640..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2488,7 +2488,7 @@ index 8e0a864..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2553,7 +2553,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2562,7 +2562,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2573,7 +2573,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.28..0.5.21.diff b/diffs/0.4.28..0.5.21.diff
index 47fcd3c8..31d5f694 100644
--- a/diffs/0.4.28..0.5.21.diff
+++ b/diffs/0.4.28..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 505a7b5..05edb62 100644
+index 505a7b54..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,4 @@
@@ -9,13 +9,13 @@ index 505a7b5..05edb62 100644
node_modules
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -40,7 +40,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -971,7 +971,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -979,7 +979,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1029,7 +1029,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index cd6998d..ca52ec5 100644
+index cd6998de..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1093,7 +1093,7 @@ index cd6998d..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b23367d..6dd6571 100644
+index b23367d4..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1102,7 +1102,7 @@ index b23367d..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1120,7 +1120,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index bfc2fd7..d5f824e 100644
+index bfc2fd79..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1194,14 +1194,14 @@ index bfc2fd7..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1213,7 +1213,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1240,7 +1240,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1252,7 +1252,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1284,7 +1284,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index f4cbcda..e9aef99 100644
+index f4cbcda1..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,60 +8,50 @@
@@ -1391,7 +1391,7 @@ index f4cbcda..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1432,7 +1432,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1451,7 +1451,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index c487726..e24c468 100644
+index c4877263..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1531,7 +1531,7 @@ index c487726..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1553,7 +1553,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1575,7 +1575,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b1164a3..853d175 100644
+index b1164a32..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1640,7 +1640,7 @@ index b1164a3..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1662,7 +1662,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6ec4da0..6164c76 100644
+index 6ec4da05..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -1765,7 +1765,7 @@ index 6ec4da0..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 928b820..1788dde 100644
+index 928b8201..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1824,7 +1824,7 @@ index 928b820..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1836,7 +1836,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a5773aa..6a4c257 100644
+index a5773aa0..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1911,7 +1911,7 @@ index a5773aa..6a4c257 100644
+COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1944,7 +1944,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 2e377ca..7c1a20c 100644
+index 2e377ca3..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,32 +18,32 @@
@@ -2009,7 +2009,7 @@ index 2e377ca..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2022,7 +2022,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2166,7 +2166,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2186,7 +2186,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 159116d..0000000
+index 159116d7..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2246,7 +2246,7 @@ index 159116d..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2266,7 +2266,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2285,7 +2285,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2311,7 +2311,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2383,7 +2383,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2440,7 +2440,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 8e0a864..0000000
+index 8e0a8640..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2469,7 +2469,7 @@ index 8e0a864..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2534,7 +2534,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2543,7 +2543,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2554,7 +2554,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.29..0.5.21.diff b/diffs/0.4.29..0.5.21.diff
index 78231a38..df3d64a7 100644
--- a/diffs/0.4.29..0.5.21.diff
+++ b/diffs/0.4.29..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 505a7b5..05edb62 100644
+index 505a7b54..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,4 @@
@@ -9,13 +9,13 @@ index 505a7b5..05edb62 100644
node_modules
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -40,7 +40,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -971,7 +971,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -979,7 +979,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1029,7 +1029,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index cd6998d..ca52ec5 100644
+index cd6998de..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1093,7 +1093,7 @@ index cd6998d..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index d19a958..6dd6571 100644
+index d19a9583..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1102,7 +1102,7 @@ index d19a958..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1120,7 +1120,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 03b8e70..d5f824e 100644
+index 03b8e70d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1195,14 +1195,14 @@ index 03b8e70..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1214,7 +1214,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1241,7 +1241,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1253,7 +1253,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1285,7 +1285,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index d88156a..e9aef99 100644
+index d88156a8..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,60 +8,50 @@
@@ -1392,7 +1392,7 @@ index d88156a..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1433,7 +1433,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1452,7 +1452,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index c487726..e24c468 100644
+index c4877263..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1532,7 +1532,7 @@ index c487726..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1554,7 +1554,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1576,7 +1576,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b1164a3..853d175 100644
+index b1164a32..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1641,7 +1641,7 @@ index b1164a3..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1663,7 +1663,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6ec4da0..6164c76 100644
+index 6ec4da05..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -1766,7 +1766,7 @@ index 6ec4da0..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 928b820..1788dde 100644
+index 928b8201..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1825,7 +1825,7 @@ index 928b820..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1837,7 +1837,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a5773aa..6a4c257 100644
+index a5773aa0..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1912,7 +1912,7 @@ index a5773aa..6a4c257 100644
+COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1945,7 +1945,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index fa1c517..7c1a20c 100644
+index fa1c5174..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,32 +18,32 @@
@@ -2010,7 +2010,7 @@ index fa1c517..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2023,7 +2023,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 70bc66b..f57d4c5 100644
+index 70bc66bc..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2167,7 +2167,7 @@ index 70bc66b..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2187,7 +2187,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 159116d..0000000
+index 159116d7..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2247,7 +2247,7 @@ index 159116d..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2267,7 +2267,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2286,7 +2286,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2312,7 +2312,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2384,7 +2384,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2441,7 +2441,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 8e0a864..0000000
+index 8e0a8640..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2470,7 +2470,7 @@ index 8e0a864..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2535,7 +2535,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2544,7 +2544,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2555,7 +2555,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.3..0.5.21.diff b/diffs/0.4.3..0.5.21.diff
index 7010442d..e4dfa96d 100644
--- a/diffs/0.4.3..0.5.21.diff
+++ b/diffs/0.4.3..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1188,7 +1188,7 @@ index 93b0c3f..ca52ec5 100644
+ enabled: true
diff --git a/backstage.json b/backstage.json
new file mode 100644
-index 0000000..6dd6571
+index 00000000..6dd6571b
--- /dev/null
+++ b/backstage.json
@@ -0,0 +1,3 @@
@@ -1197,7 +1197,7 @@ index 0000000..6dd6571
+}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index c63b504..d5f824e 100644
+index c63b5046..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1459,7 +1459,7 @@ index c63b504..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1474,13 +1474,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1490,7 +1490,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1501,7 +1501,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1528,7 +1528,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1540,7 +1540,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1572,7 +1572,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index b585e49..e9aef99 100644
+index b585e493..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,53 +5,53 @@
@@ -1675,7 +1675,7 @@ index b585e49..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1722,7 +1722,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1749,7 +1749,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 4cd8368..e24c468 100644
+index 4cd83685..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1862,7 +1862,7 @@ index 4cd8368..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1884,7 +1884,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1906,7 +1906,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index ec59b0b..853d175 100644
+index ec59b0b1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2025,7 +2025,7 @@ index ec59b0b..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2047,7 +2047,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2237,7 +2237,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2364,7 +2364,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2376,7 +2376,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2385,7 +2385,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2459,7 +2459,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2495,7 +2495,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 0816912..7c1a20c 100644
+index 0816912d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2577,7 +2577,7 @@ index 0816912..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2590,7 +2590,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2713,7 +2713,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2733,7 +2733,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2751,7 +2751,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2771,7 +2771,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2788,7 +2788,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2821,7 +2821,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2866,7 +2866,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2925,7 +2925,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2948,7 +2948,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3014,7 +3014,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3028,7 +3028,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3039,7 +3039,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.30..0.5.21.diff b/diffs/0.4.30..0.5.21.diff
index ca285d29..f228f0c6 100644
--- a/diffs/0.4.30..0.5.21.diff
+++ b/diffs/0.4.30..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 505a7b5..05edb62 100644
+index 505a7b54..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,4 @@
@@ -9,13 +9,13 @@ index 505a7b5..05edb62 100644
node_modules
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -40,7 +40,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -971,7 +971,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -979,7 +979,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1029,7 +1029,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 4a058de..ca52ec5 100644
+index 4a058dee..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1085,7 +1085,7 @@ index 4a058de..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 08df5a2..6dd6571 100644
+index 08df5a2f..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1094,7 +1094,7 @@ index 08df5a2..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1112,7 +1112,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1123,7 +1123,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index d010cc8..d5f824e 100644
+index d010cc80..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1187,14 +1187,14 @@ index d010cc8..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1206,7 +1206,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1233,7 +1233,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1245,7 +1245,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1277,7 +1277,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 1d7aa24..e9aef99 100644
+index 1d7aa24d..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,60 +8,50 @@
@@ -1384,7 +1384,7 @@ index 1d7aa24..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1425,7 +1425,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1444,7 +1444,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index c487726..e24c468 100644
+index c4877263..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1524,7 +1524,7 @@ index c487726..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1546,7 +1546,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1568,7 +1568,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b1164a3..853d175 100644
+index b1164a32..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1633,7 +1633,7 @@ index b1164a3..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1655,7 +1655,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6ec4da0..6164c76 100644
+index 6ec4da05..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -1758,7 +1758,7 @@ index 6ec4da0..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 928b820..1788dde 100644
+index 928b8201..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1817,7 +1817,7 @@ index 928b820..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1829,7 +1829,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 8836ac7..6a4c257 100644
+index 8836ac78..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1904,7 +1904,7 @@ index 8836ac7..6a4c257 100644
+COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1937,7 +1937,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f005c39..7c1a20c 100644
+index f005c39b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,32 +18,32 @@
@@ -2002,7 +2002,7 @@ index f005c39..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2015,7 +2015,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index ef05fa5..f57d4c5 100644
+index ef05fa50..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,102 +8,47 @@
@@ -2159,7 +2159,7 @@ index ef05fa5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2179,7 +2179,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 159116d..0000000
+index 159116d7..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2239,7 +2239,7 @@ index 159116d..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2259,7 +2259,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2278,7 +2278,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 7ce5fcf..0000000
+index 7ce5fcf3..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,20 +0,0 @@
@@ -2304,7 +2304,7 @@ index 7ce5fcf..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2376,7 +2376,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2433,7 +2433,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 8e0a864..0000000
+index 8e0a8640..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -2462,7 +2462,7 @@ index 8e0a864..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2527,7 +2527,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2536,7 +2536,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2547,7 +2547,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.31..0.5.21.diff b/diffs/0.4.31..0.5.21.diff
index d98727c2..723be45f 100644
--- a/diffs/0.4.31..0.5.21.diff
+++ b/diffs/0.4.31..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index fdc2a5d..77ad56d 100644
+index fdc2a5df..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -24,7 +24,7 @@ index fdc2a5d..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -955,7 +955,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -963,7 +963,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1013,7 +1013,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 4a058de..ca52ec5 100644
+index 4a058dee..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1069,7 +1069,7 @@ index 4a058de..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index d5d8ca8..6dd6571 100644
+index d5d8ca84..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1078,7 +1078,7 @@ index d5d8ca8..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1096,7 +1096,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1107,7 +1107,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 05b423f..d5f824e 100644
+index 05b423f4..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1166,14 +1166,14 @@ index 05b423f..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1185,7 +1185,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1212,7 +1212,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1224,7 +1224,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1256,7 +1256,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 522fad8..e9aef99 100644
+index 522fad86..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -8,59 +8,50 @@
@@ -1362,7 +1362,7 @@ index 522fad8..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1403,7 +1403,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1422,7 +1422,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index c487726..e24c468 100644
+index c4877263..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1502,7 +1502,7 @@ index c487726..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1524,7 +1524,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1546,7 +1546,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b1164a3..853d175 100644
+index b1164a32..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -1611,7 +1611,7 @@ index b1164a3..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -1633,7 +1633,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d98153f..6164c76 100644
+index d98153f6..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -1728,7 +1728,7 @@ index d98153f..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 928b820..1788dde 100644
+index 928b8201..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1787,7 +1787,7 @@ index 928b820..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1799,7 +1799,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 682798b..6a4c257 100644
+index 682798b8..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1866,7 +1866,7 @@ index 682798b..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1899,7 +1899,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 515c7a7..7c1a20c 100644
+index 515c7a74..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1965,7 +1965,7 @@ index 515c7a7..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1978,7 +1978,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -2127,7 +2127,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2147,7 +2147,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2207,7 +2207,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2227,7 +2227,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2246,7 +2246,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2273,7 +2273,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2345,7 +2345,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2402,7 +2402,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2433,7 +2433,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2498,7 +2498,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2507,7 +2507,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2518,7 +2518,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.32..0.5.21.diff b/diffs/0.4.32..0.5.21.diff
index 189ee7de..e43429ab 100644
--- a/diffs/0.4.32..0.5.21.diff
+++ b/diffs/0.4.32..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1010,7 +1010,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 4a058de..ca52ec5 100644
+index 4a058dee..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1066,7 +1066,7 @@ index 4a058de..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6076f7d..6dd6571 100644
+index 6076f7d2..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1075,7 +1075,7 @@ index 6076f7d..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1093,7 +1093,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1104,7 +1104,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7a27e83..d5f824e 100644
+index 7a27e837..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1159,14 +1159,14 @@ index 7a27e83..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1178,7 +1178,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1205,7 +1205,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1217,7 +1217,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1249,7 +1249,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index dd1b831..e9aef99 100644
+index dd1b8310..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1342,7 +1342,7 @@ index dd1b831..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1383,7 +1383,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1402,7 +1402,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 46cb786..e24c468 100644
+index 46cb7863..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1467,7 +1467,7 @@ index 46cb786..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 5400421..853d175 100644
+index 5400421e..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,6 +1,5 @@
@@ -1516,7 +1516,7 @@ index 5400421..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1594,7 +1594,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1647,7 +1647,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1659,7 +1659,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index f0be3ac..6a4c257 100644
+index f0be3ac1..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1714,7 +1714,7 @@ index f0be3ac..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1747,7 +1747,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7154350..7c1a20c 100644
+index 7154350f..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1813,7 +1813,7 @@ index 7154350..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1826,7 +1826,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1975,7 +1975,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1995,7 +1995,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2055,7 +2055,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2075,7 +2075,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2094,7 +2094,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2121,7 +2121,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2193,7 +2193,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2250,7 +2250,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2281,7 +2281,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2346,7 +2346,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2355,7 +2355,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2365,7 +2365,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.33..0.5.21.diff b/diffs/0.4.33..0.5.21.diff
index c7337431..15544dfa 100644
--- a/diffs/0.4.33..0.5.21.diff
+++ b/diffs/0.4.33..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 6535d96..5d426f5 100644
+index 6535d967..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -11,12 +11,7 @@ backend:
@@ -1010,7 +1010,7 @@ index 6535d96..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 4a058de..ca52ec5 100644
+index 4a058dee..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1066,7 +1066,7 @@ index 4a058de..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 96bed22..6dd6571 100644
+index 96bed229..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1075,7 +1075,7 @@ index 96bed22..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1093,7 +1093,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1104,7 +1104,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7a27e83..d5f824e 100644
+index 7a27e837..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1159,14 +1159,14 @@ index 7a27e83..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1178,7 +1178,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1205,7 +1205,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1217,7 +1217,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1249,7 +1249,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index dd1b831..e9aef99 100644
+index dd1b8310..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1342,7 +1342,7 @@ index dd1b831..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index a936c73..18da7c4 100644
+index a936c736..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1383,7 +1383,7 @@ index a936c73..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1402,7 +1402,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 46cb786..e24c468 100644
+index 46cb7863..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1467,7 +1467,7 @@ index 46cb786..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 5400421..853d175 100644
+index 5400421e..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,6 +1,5 @@
@@ -1516,7 +1516,7 @@ index 5400421..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1594,7 +1594,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1647,7 +1647,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1659,7 +1659,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index f0be3ac..6a4c257 100644
+index f0be3ac1..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -1714,7 +1714,7 @@ index f0be3ac..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -1747,7 +1747,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7154350..7c1a20c 100644
+index 7154350f..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1813,7 +1813,7 @@ index 7154350..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1826,7 +1826,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1975,7 +1975,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1995,7 +1995,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2055,7 +2055,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2075,7 +2075,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -2094,7 +2094,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2121,7 +2121,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2193,7 +2193,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2250,7 +2250,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2281,7 +2281,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2346,7 +2346,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2355,7 +2355,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2365,7 +2365,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.34..0.5.21.diff b/diffs/0.4.34..0.5.21.diff
index fd9049fd..46212057 100644
--- a/diffs/0.4.34..0.5.21.diff
+++ b/diffs/0.4.34..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a45d40..ca52ec5 100644
+index 1a45d401..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1046,7 +1046,7 @@ index 1a45d40..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 78259a4..6dd6571 100644
+index 78259a43..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1055,7 +1055,7 @@ index 78259a4..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
-index 50052b7..33f262b 100644
+index 50052b7a..33f262b4 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -63,3 +63,3 @@ spec:
@@ -1073,7 +1073,7 @@ index 50052b7..33f262b 100644
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1084,7 +1084,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 4ff2d48..d5f824e 100644
+index 4ff2d48b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1134,14 +1134,14 @@ index 4ff2d48..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1153,7 +1153,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1180,7 +1180,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1192,7 +1192,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1224,7 +1224,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index a085f61..e9aef99 100644
+index a085f617..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1317,7 +1317,7 @@ index a085f61..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1333,7 +1333,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1352,7 +1352,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 46cb786..e24c468 100644
+index 46cb7863..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1417,7 +1417,7 @@ index 46cb786..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1443,7 +1443,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1521,7 +1521,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1574,7 +1574,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1586,7 +1586,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1638,7 +1638,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1651,7 +1651,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index eb0088d..7c1a20c 100644
+index eb0088d5..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1717,7 +1717,7 @@ index eb0088d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1730,7 +1730,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1879,7 +1879,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1899,7 +1899,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1959,7 +1959,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1979,7 +1979,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1998,7 +1998,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -2025,7 +2025,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2097,7 +2097,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2154,7 +2154,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2185,7 +2185,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2250,7 +2250,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2259,7 +2259,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2269,7 +2269,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.35..0.5.21.diff b/diffs/0.4.35..0.5.21.diff
index 9977df13..a431ca7e 100644
--- a/diffs/0.4.35..0.5.21.diff
+++ b/diffs/0.4.35..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 569e050..6dd6571 100644
+index 569e050d..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index 569e050..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 517be30..d5f824e 100644
+index 517be302..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1115,14 +1115,14 @@ index 517be30..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1134,7 +1134,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1161,7 +1161,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1173,7 +1173,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1205,7 +1205,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 60e20d1..e9aef99 100644
+index 60e20d1c..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1298,7 +1298,7 @@ index 60e20d1..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1314,7 +1314,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1333,7 +1333,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1371,7 +1371,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1475,7 +1475,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1528,7 +1528,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1540,7 +1540,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1592,7 +1592,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1605,7 +1605,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index c75fc7e..7c1a20c 100644
+index c75fc7e3..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1671,7 +1671,7 @@ index c75fc7e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1684,7 +1684,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1833,7 +1833,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1853,7 +1853,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1913,7 +1913,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1933,7 +1933,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1952,7 +1952,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1979,7 +1979,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2051,7 +2051,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2108,7 +2108,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2139,7 +2139,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2204,7 +2204,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2213,7 +2213,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2223,7 +2223,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.36..0.5.21.diff b/diffs/0.4.36..0.5.21.diff
index 013a77e5..15768bd1 100644
--- a/diffs/0.4.36..0.5.21.diff
+++ b/diffs/0.4.36..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6e5f5d9..6dd6571 100644
+index 6e5f5d90..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index 6e5f5d9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index fa75c3c..d5f824e 100644
+index fa75c3c3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index fa75c3c..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1157,7 +1157,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1169,7 +1169,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1201,7 +1201,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 2a4eeef..e9aef99 100644
+index 2a4eeefd..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1294,7 +1294,7 @@ index 2a4eeef..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1310,7 +1310,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1329,7 +1329,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1367,7 +1367,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1471,7 +1471,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1524,7 +1524,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1536,7 +1536,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1588,7 +1588,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1601,7 +1601,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 6689356..7c1a20c 100644
+index 66893567..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1667,7 +1667,7 @@ index 6689356..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1680,7 +1680,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1829,7 +1829,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1849,7 +1849,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1909,7 +1909,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1929,7 +1929,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1948,7 +1948,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1975,7 +1975,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2047,7 +2047,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2104,7 +2104,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2135,7 +2135,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2200,7 +2200,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2209,7 +2209,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2219,7 +2219,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.37-next.0..0.5.21.diff b/diffs/0.4.37-next.0..0.5.21.diff
index 69c34e19..e036a12a 100644
--- a/diffs/0.4.37-next.0..0.5.21.diff
+++ b/diffs/0.4.37-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 2161e7a..6dd6571 100644
+index 2161e7a7..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index 2161e7a..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index fa75c3c..d5f824e 100644
+index fa75c3c3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index fa75c3c..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1157,7 +1157,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1169,7 +1169,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1201,7 +1201,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index ca237dc..e9aef99 100644
+index ca237dc9..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1294,7 +1294,7 @@ index ca237dc..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1310,7 +1310,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1329,7 +1329,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1367,7 +1367,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1471,7 +1471,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 9f11d0c..1788dde 100644
+index 9f11d0c8..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,3 +1,3 @@
@@ -1524,7 +1524,7 @@ index 9f11d0c..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1536,7 +1536,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1588,7 +1588,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1601,7 +1601,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 4fb74ce..7c1a20c 100644
+index 4fb74ce4..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1667,7 +1667,7 @@ index 4fb74ce..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1680,7 +1680,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1829,7 +1829,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1849,7 +1849,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1909,7 +1909,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1929,7 +1929,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1948,7 +1948,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1975,7 +1975,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -2047,7 +2047,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2104,7 +2104,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2135,7 +2135,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2200,7 +2200,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2209,7 +2209,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2219,7 +2219,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.37-next.1..0.5.21.diff b/diffs/0.4.37-next.1..0.5.21.diff
index 55592882..01ff0c36 100644
--- a/diffs/0.4.37-next.1..0.5.21.diff
+++ b/diffs/0.4.37-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b4fc596..6dd6571 100644
+index b4fc596d..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index b4fc596..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index aaebccd..d5f824e 100644
+index aaebccdb..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index aaebccd..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1157,7 +1157,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1169,7 +1169,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1201,7 +1201,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 2e84d58..e9aef99 100644
+index 2e84d580..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1294,7 +1294,7 @@ index 2e84d58..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1310,7 +1310,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1329,7 +1329,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1367,7 +1367,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1471,7 +1471,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1483,7 +1483,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1535,7 +1535,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1548,7 +1548,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index fd57c6e..7c1a20c 100644
+index fd57c6e0..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1614,7 +1614,7 @@ index fd57c6e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1627,7 +1627,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1776,7 +1776,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1796,7 +1796,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1856,7 +1856,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1876,7 +1876,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1895,7 +1895,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1922,7 +1922,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1994,7 +1994,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2051,7 +2051,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2082,7 +2082,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2147,7 +2147,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2156,7 +2156,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2166,7 +2166,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.37-next.2..0.5.21.diff b/diffs/0.4.37-next.2..0.5.21.diff
index 72275a5f..99d09131 100644
--- a/diffs/0.4.37-next.2..0.5.21.diff
+++ b/diffs/0.4.37-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e3ecf09..6dd6571 100644
+index e3ecf095..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index e3ecf09..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index f88b6f2..d5f824e 100644
+index f88b6f24..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index f88b6f2..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1148,7 +1148,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1160,7 +1160,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1192,7 +1192,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 380ff9a..e9aef99 100644
+index 380ff9a0..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1285,7 +1285,7 @@ index 380ff9a..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1301,7 +1301,7 @@ index c6083b3..18da7c4 100644
+
<%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1320,7 +1320,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1358,7 +1358,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1462,7 +1462,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1474,7 +1474,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1526,7 +1526,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1539,7 +1539,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 6554d2e..7c1a20c 100644
+index 6554d2e2..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1605,7 +1605,7 @@ index 6554d2e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1618,7 +1618,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1767,7 +1767,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1787,7 +1787,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1847,7 +1847,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1867,7 +1867,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1886,7 +1886,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1913,7 +1913,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1985,7 +1985,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2042,7 +2042,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2073,7 +2073,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2138,7 +2138,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2147,7 +2147,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2157,7 +2157,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.37..0.5.21.diff b/diffs/0.4.37..0.5.21.diff
index 08cce5c4..eb858050 100644
--- a/diffs/0.4.37..0.5.21.diff
+++ b/diffs/0.4.37..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 5bf3c32..6dd6571 100644
+index 5bf3c325..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index 5bf3c32..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index a7bb7c1..d5f824e 100644
+index a7bb7c19..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index a7bb7c1..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1148,7 +1148,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1160,7 +1160,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1192,7 +1192,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index a810e10..e9aef99 100644
+index a810e102..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1285,7 +1285,7 @@ index a810e10..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1301,7 +1301,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1320,7 +1320,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1358,7 +1358,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1462,7 +1462,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1474,7 +1474,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1526,7 +1526,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1539,7 +1539,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index d3591f7..7c1a20c 100644
+index d3591f7b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1605,7 +1605,7 @@ index d3591f7..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1618,7 +1618,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1767,7 +1767,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1787,7 +1787,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1847,7 +1847,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1867,7 +1867,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1886,7 +1886,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1913,7 +1913,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1985,7 +1985,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2042,7 +2042,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2073,7 +2073,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2138,7 +2138,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2147,7 +2147,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2157,7 +2157,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.38-next.0..0.5.21.diff b/diffs/0.4.38-next.0..0.5.21.diff
index 80401e60..0fc7ed1c 100644
--- a/diffs/0.4.38-next.0..0.5.21.diff
+++ b/diffs/0.4.38-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3b5de8b..ca52ec5 100644
+index 3b5de8ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,3 @@ backend:
@@ -1044,7 +1044,7 @@ index 3b5de8b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index cfc36ee..6dd6571 100644
+index cfc36eea..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1054,7 +1054,7 @@ index cfc36ee..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1065,7 +1065,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 279435a..d5f824e 100644
+index 279435a3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1111,14 +1111,14 @@ index 279435a..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1148,7 +1148,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1160,7 +1160,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1192,7 +1192,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 861b1bc..e9aef99 100644
+index 861b1bcb..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1285,7 +1285,7 @@ index 861b1bc..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1301,7 +1301,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1320,7 +1320,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1358,7 +1358,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1462,7 +1462,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1474,7 +1474,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1526,7 +1526,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index aa042db..3607b0a 100644
+index aa042db0..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1539,7 +1539,7 @@ index aa042db..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 73516d9..7c1a20c 100644
+index 73516d90..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1605,7 +1605,7 @@ index 73516d9..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1618,7 +1618,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1767,7 +1767,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1787,7 +1787,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1847,7 +1847,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1867,7 +1867,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1886,7 +1886,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1913,7 +1913,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1985,7 +1985,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2042,7 +2042,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2073,7 +2073,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2138,7 +2138,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2147,7 +2147,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2157,7 +2157,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.38-next.1..0.5.21.diff b/diffs/0.4.38-next.1..0.5.21.diff
index 7b798b0d..e6f8f857 100644
--- a/diffs/0.4.38-next.1..0.5.21.diff
+++ b/diffs/0.4.38-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index df09dac..5d426f5 100644
+index df09dac5..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -998,7 +998,7 @@ index df09dac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1039,7 +1039,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1ae46e3..6dd6571 100644
+index 1ae46e33..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1049,7 +1049,7 @@ index 1ae46e3..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1060,7 +1060,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 366e158..d5f824e 100644
+index 366e158b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1106,14 +1106,14 @@ index 366e158..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1125,7 +1125,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1143,7 +1143,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1155,7 +1155,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1187,7 +1187,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 320496b..e9aef99 100644
+index 320496b2..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1280,7 +1280,7 @@ index 320496b..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1296,7 +1296,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1315,7 +1315,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1353,7 +1353,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1457,7 +1457,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1469,7 +1469,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1521,7 +1521,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 867487b..3607b0a 100644
+index 867487ba..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -38,3 +38,3 @@ locations to the backend. These are places where the backend can find some
@@ -1530,7 +1530,7 @@ index 867487b..3607b0a 100644
+[Software Catalog Overview - Adding Components to the Catalog](https://backstage.io/docs/features/software-catalog/#adding-components-to-the-catalog).
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index d2ceca4..7c1a20c 100644
+index d2ceca48..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1596,7 +1596,7 @@ index d2ceca4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1609,7 +1609,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1758,7 +1758,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1778,7 +1778,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1838,7 +1838,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1858,7 +1858,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1877,7 +1877,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1904,7 +1904,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1976,7 +1976,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2033,7 +2033,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2064,7 +2064,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2129,7 +2129,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2138,7 +2138,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2148,7 +2148,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.38-next.2..0.5.21.diff b/diffs/0.4.38-next.2..0.5.21.diff
index e6be6a64..0666aedd 100644
--- a/diffs/0.4.38-next.2..0.5.21.diff
+++ b/diffs/0.4.38-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 7b15629..6dd6571 100644
+index 7b15629b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 7b15629..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 366e158..d5f824e 100644
+index 366e158b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,14 +1104,14 @@ index 366e158..d5f824e 100644
}
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1123,7 +1123,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1141,7 +1141,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1153,7 +1153,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1185,7 +1185,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index b656d75..e9aef99 100644
+index b656d75b..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1278,7 +1278,7 @@ index b656d75..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1294,7 +1294,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1313,7 +1313,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1351,7 +1351,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1455,7 +1455,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1467,7 +1467,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1519,7 +1519,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 8df1ae8..7c1a20c 100644
+index 8df1ae82..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1585,7 +1585,7 @@ index 8df1ae8..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1598,7 +1598,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1747,7 +1747,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1767,7 +1767,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1827,7 +1827,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1847,7 +1847,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1866,7 +1866,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1893,7 +1893,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1965,7 +1965,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2022,7 +2022,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2053,7 +2053,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2118,7 +2118,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2127,7 +2127,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2137,7 +2137,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.38..0.5.21.diff b/diffs/0.4.38..0.5.21.diff
index f7a0c4a0..2240e4f6 100644
--- a/diffs/0.4.38..0.5.21.diff
+++ b/diffs/0.4.38..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c962616..6dd6571 100644
+index c9626165..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index c962616..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index c3f8b56..d5f824e 100644
+index c3f8b56d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index c3f8b56..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 11eff7b..e9aef99 100644
+index 11eff7bf..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1271,7 +1271,7 @@ index 11eff7b..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1287,7 +1287,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1306,7 +1306,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1344,7 +1344,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1448,7 +1448,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1460,7 +1460,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1512,7 +1512,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 177f652..7c1a20c 100644
+index 177f652a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1578,7 +1578,7 @@ index 177f652..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1591,7 +1591,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1740,7 +1740,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1760,7 +1760,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1820,7 +1820,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1840,7 +1840,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1859,7 +1859,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1886,7 +1886,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1958,7 +1958,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2015,7 +2015,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2046,7 +2046,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2111,7 +2111,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2120,7 +2120,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2130,7 +2130,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.39-next.0..0.5.21.diff b/diffs/0.4.39-next.0..0.5.21.diff
index dba1b62e..c1974e9a 100644
--- a/diffs/0.4.39-next.0..0.5.21.diff
+++ b/diffs/0.4.39-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 00546b9..6dd6571 100644
+index 00546b94..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 00546b9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 02b612e..d5f824e 100644
+index 02b612e3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 02b612e..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 0160a4f..e9aef99 100644
+index 0160a4fc..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,53 +13,45 @@
@@ -1271,7 +1271,7 @@ index 0160a4f..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1287,7 +1287,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1306,7 +1306,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1344,7 +1344,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1448,7 +1448,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1460,7 +1460,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1512,7 +1512,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 1b78b14..7c1a20c 100644
+index 1b78b142..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1578,7 +1578,7 @@ index 1b78b14..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1591,7 +1591,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1740,7 +1740,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1760,7 +1760,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1820,7 +1820,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1840,7 +1840,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1859,7 +1859,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index ef46f07..0000000
+index ef46f078..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1886,7 +1886,7 @@ index ef46f07..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1958,7 +1958,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2015,7 +2015,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2046,7 +2046,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2111,7 +2111,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2120,7 +2120,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2130,7 +2130,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.39-next.1..0.5.21.diff b/diffs/0.4.39-next.1..0.5.21.diff
index b7faab92..0ca8a8d9 100644
--- a/diffs/0.4.39-next.1..0.5.21.diff
+++ b/diffs/0.4.39-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 92f7a76..6dd6571 100644
+index 92f7a76c..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 92f7a76..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index a78807d..d5f824e 100644
+index a78807d7..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index a78807d..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8f8b428..e9aef99 100644
+index 8f8b4287..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 8f8b428..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 609437b..7c1a20c 100644
+index 609437b9..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index 609437b..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index fd424a3..0000000
+index fd424a32..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index fd424a3..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2122,7 +2122,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2132,7 +2132,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.39-next.2..0.5.21.diff b/diffs/0.4.39-next.2..0.5.21.diff
index 8e34d6ef..8e154ba3 100644
--- a/diffs/0.4.39-next.2..0.5.21.diff
+++ b/diffs/0.4.39-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 78d6dbd..6dd6571 100644
+index 78d6dbd3..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 78d6dbd..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 9ac9885..d5f824e 100644
+index 9ac98858..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 9ac9885..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8dad02f..e9aef99 100644
+index 8dad02f7..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 8dad02f..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index c5645c3..7c1a20c 100644
+index c5645c30..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index c5645c3..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index fd424a3..0000000
+index fd424a32..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index fd424a3..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2122,7 +2122,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2132,7 +2132,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.39-next.3..0.5.21.diff b/diffs/0.4.39-next.3..0.5.21.diff
index ee8f2e24..d2a45932 100644
--- a/diffs/0.4.39-next.3..0.5.21.diff
+++ b/diffs/0.4.39-next.3..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b935376..6dd6571 100644
+index b9353766..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index b935376..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 689fa4b..d5f824e 100644
+index 689fa4bd..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 689fa4b..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index df212d9..e9aef99 100644
+index df212d91..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index df212d9..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 56decc4..7c1a20c 100644
+index 56decc4e..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index 56decc4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index fd424a3..0000000
+index fd424a32..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index fd424a3..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2122,7 +2122,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2132,7 +2132,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.4.4..0.5.21.diff b/diffs/0.4.4..0.5.21.diff
index 12828fdc..4451540d 100644
--- a/diffs/0.4.4..0.5.21.diff
+++ b/diffs/0.4.4..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 92f4574..5d426f5 100644
+index 92f4574f..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,8 +1,55 @@
@@ -1050,7 +1050,7 @@ index 92f4574..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 93b0c3f..ca52ec5 100644
+index 93b0c3f3..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,5 +8,13 @@ organization:
@@ -1187,7 +1187,7 @@ index 93b0c3f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index fe2e6d5..6dd6571 100644
+index fe2e6d5f..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1197,7 +1197,7 @@ index fe2e6d5..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1244,7 +1244,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1267,7 +1267,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1281,14 +1281,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1299,7 +1299,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1379,7 +1379,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1390,7 +1390,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 655cd0b..d5f824e 100644
+index 655cd0b3..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1459,7 +1459,7 @@ index 655cd0b..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1474,13 +1474,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1490,7 +1490,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1501,7 +1501,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1528,7 +1528,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1540,7 +1540,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1572,7 +1572,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 9bd4136..e9aef99 100644
+index 9bd41368..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1676,7 +1676,7 @@ index 9bd4136..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1723,7 +1723,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index 82bc479..ec8ba1d 100644
+index 82bc4798..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1750,7 +1750,7 @@ index 82bc479..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1863,7 +1863,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1885,7 +1885,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1907,7 +1907,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index ec59b0b..853d175 100644
+index ec59b0b1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2026,7 +2026,7 @@ index ec59b0b..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2048,7 +2048,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2238,7 +2238,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 7b3c2b2..1788dde 100644
+index 7b3c2b29..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,5 +1,12 @@
@@ -2365,7 +2365,7 @@ index 7b3c2b2..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2377,7 +2377,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2386,7 +2386,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2460,7 +2460,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 81e0f80..3607b0a 100644
+index 81e0f805..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2496,7 +2496,7 @@ index 81e0f80..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index b73e678..7c1a20c 100644
+index b73e678b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2578,7 +2578,7 @@ index b73e678..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2591,7 +2591,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2714,7 +2714,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2734,7 +2734,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2752,7 +2752,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2772,7 +2772,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2789,7 +2789,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2822,7 +2822,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 7fc317d..0000000
+index 7fc317d2..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -2867,7 +2867,7 @@ index 7fc317d..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2926,7 +2926,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2949,7 +2949,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3015,7 +3015,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3029,7 +3029,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3040,7 +3040,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.5..0.5.21.diff b/diffs/0.4.5..0.5.21.diff
index 3168f110..4677b070 100644
--- a/diffs/0.4.5..0.5.21.diff
+++ b/diffs/0.4.5..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index aac1eb1..ca52ec5 100644
+index aac1eb1e..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -8,2 +8,8 @@ organization:
@@ -1183,7 +1183,7 @@ index aac1eb1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 77e9232..6dd6571 100644
+index 77e9232b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1193,7 +1193,7 @@ index 77e9232..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1240,7 +1240,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1263,7 +1263,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1277,14 +1277,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1295,7 +1295,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1375,7 +1375,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1386,7 +1386,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 869d117..d5f824e 100644
+index 869d1170..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1455,7 +1455,7 @@ index 869d117..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1470,13 +1470,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1486,7 +1486,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1497,7 +1497,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1524,7 +1524,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1536,7 +1536,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1568,7 +1568,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6d87eb0..e9aef99 100644
+index 6d87eb08..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1672,7 +1672,7 @@ index 6d87eb0..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1719,7 +1719,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1738,7 +1738,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1851,7 +1851,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1873,7 +1873,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1895,7 +1895,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index ec59b0b..853d175 100644
+index ec59b0b1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2014,7 +2014,7 @@ index ec59b0b..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2036,7 +2036,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2226,7 +2226,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 50ffbad..1788dde 100644
+index 50ffbadb..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2367,7 +2367,7 @@ index 50ffbad..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2379,7 +2379,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2388,7 +2388,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2462,7 +2462,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2495,7 +2495,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f5c3b2e..7c1a20c 100644
+index f5c3b2ed..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2577,7 +2577,7 @@ index f5c3b2e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2590,7 +2590,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index f2b14b2..f57d4c5 100644
+index f2b14b23..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,81 +8,47 @@
@@ -2713,7 +2713,7 @@ index f2b14b2..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2733,7 +2733,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2751,7 +2751,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2771,7 +2771,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2788,7 +2788,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2821,7 +2821,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 63e1962..0000000
+index 63e19623..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,46 +0,0 @@
@@ -2873,7 +2873,7 @@ index 63e1962..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2932,7 +2932,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 6c78a2a..0000000
+index 6c78a2a9..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -2955,7 +2955,7 @@ index 6c78a2a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3021,7 +3021,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3035,7 +3035,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3046,7 +3046,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.6..0.5.21.diff b/diffs/0.4.6..0.5.21.diff
index aafdff17..3e6951c4 100644
--- a/diffs/0.4.6..0.5.21.diff
+++ b/diffs/0.4.6..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 2999615..ca52ec5 100644
+index 29996154..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1180,7 +1180,7 @@ index 2999615..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1062ff8..6dd6571 100644
+index 1062ff89..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1190,7 +1190,7 @@ index 1062ff8..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1237,7 +1237,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1260,7 +1260,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1274,14 +1274,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1292,7 +1292,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1372,7 +1372,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1383,7 +1383,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 95de0a0..d5f824e 100644
+index 95de0a0e..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1452,7 +1452,7 @@ index 95de0a0..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1467,13 +1467,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1483,7 +1483,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1494,7 +1494,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1521,7 +1521,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1533,7 +1533,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1565,7 +1565,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 9f1021a..e9aef99 100644
+index 9f1021a1..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1669,7 +1669,7 @@ index 9f1021a..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1716,7 +1716,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1735,7 +1735,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1848,7 +1848,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1870,7 +1870,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1892,7 +1892,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2015,7 +2015,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2037,7 +2037,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2227,7 +2227,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 50ffbad..1788dde 100644
+index 50ffbadb..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2368,7 +2368,7 @@ index 50ffbad..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2380,7 +2380,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2389,7 +2389,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2463,7 +2463,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2496,7 +2496,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e908e1e..7c1a20c 100644
+index e908e1ec..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2578,7 +2578,7 @@ index e908e1e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2591,7 +2591,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 3f12122..f57d4c5 100644
+index 3f12122a..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,83 +8,47 @@
@@ -2716,7 +2716,7 @@ index 3f12122..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2736,7 +2736,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2754,7 +2754,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2774,7 +2774,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2791,7 +2791,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2824,7 +2824,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2884,7 +2884,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 906d86d..0000000
+index 906d86d4..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,53 +0,0 @@
@@ -2943,7 +2943,7 @@ index 906d86d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index b1e2e0a..0000000
+index b1e2e0a1..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2968,7 +2968,7 @@ index b1e2e0a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3034,7 +3034,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3048,7 +3048,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3059,7 +3059,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.7..0.5.21.diff b/diffs/0.4.7..0.5.21.diff
index 556fecd5..b54eb12b 100644
--- a/diffs/0.4.7..0.5.21.diff
+++ b/diffs/0.4.7..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 10f65a1..6dd6571 100644
+index 10f65a19..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index 10f65a1..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index cdf36ff..d5f824e 100644
+index cdf36ff6..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1446,7 +1446,7 @@ index cdf36ff..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1461,13 +1461,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1477,7 +1477,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1488,7 +1488,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1515,7 +1515,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1527,7 +1527,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1559,7 +1559,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3243e81..e9aef99 100644
+index 3243e81f..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1663,7 +1663,7 @@ index 3243e81..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1710,7 +1710,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1729,7 +1729,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1842,7 +1842,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1864,7 +1864,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1886,7 +1886,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2009,7 +2009,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2031,7 +2031,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2221,7 +2221,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 50ffbad..1788dde 100644
+index 50ffbadb..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2362,7 +2362,7 @@ index 50ffbad..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2374,7 +2374,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2383,7 +2383,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2457,7 +2457,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2490,7 +2490,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 709d421..7c1a20c 100644
+index 709d421c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2572,7 +2572,7 @@ index 709d421..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2585,7 +2585,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 3f12122..f57d4c5 100644
+index 3f12122a..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,83 +8,47 @@
@@ -2710,7 +2710,7 @@ index 3f12122..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2730,7 +2730,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2748,7 +2748,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2768,7 +2768,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2785,7 +2785,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2818,7 +2818,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2878,7 +2878,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2939,7 +2939,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index b1e2e0a..0000000
+index b1e2e0a1..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2964,7 +2964,7 @@ index b1e2e0a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3030,7 +3030,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3044,7 +3044,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3055,7 +3055,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.8..0.5.21.diff b/diffs/0.4.8..0.5.21.diff
index 13cb03b5..7df1f1f7 100644
--- a/diffs/0.4.8..0.5.21.diff
+++ b/diffs/0.4.8..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 87a2209..6dd6571 100644
+index 87a22097..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index 87a2209..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index fa4adea..d5f824e 100644
+index fa4adea4..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index fa4adea..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 948a4c5..e9aef99 100644
+index 948a4c57..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index 948a4c5..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index b93896c..18da7c4 100644
+index b93896c6..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1705,7 +1705,7 @@ index b93896c..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1724,7 +1724,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1837,7 +1837,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1859,7 +1859,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1881,7 +1881,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2004,7 +2004,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2026,7 +2026,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2216,7 +2216,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 50ffbad..1788dde 100644
+index 50ffbadb..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2357,7 +2357,7 @@ index 50ffbad..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2369,7 +2369,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2378,7 +2378,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2452,7 +2452,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2485,7 +2485,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 9129e5c..7c1a20c 100644
+index 9129e5cf..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2567,7 +2567,7 @@ index 9129e5c..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2580,7 +2580,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 3f12122..f57d4c5 100644
+index 3f12122a..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,83 +8,47 @@
@@ -2705,7 +2705,7 @@ index 3f12122..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2725,7 +2725,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2743,7 +2743,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2763,7 +2763,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2780,7 +2780,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2813,7 +2813,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2873,7 +2873,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2934,7 +2934,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index b1e2e0a..0000000
+index b1e2e0a1..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2959,7 +2959,7 @@ index b1e2e0a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3025,7 +3025,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3039,7 +3039,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3050,7 +3050,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.4.9..0.5.21.diff b/diffs/0.4.9..0.5.21.diff
index ec99cbd5..04efd612 100644
--- a/diffs/0.4.9..0.5.21.diff
+++ b/diffs/0.4.9..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.dockerignore b/.dockerignore
-index 63c9c34..05edb62 100644
+index 63c9c342..05edb626 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,8 @@
@@ -15,13 +15,13 @@ index 63c9c34..05edb62 100644
+*.local.yaml
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d16a8d3..77ad56d 100644
+index d16a8d3f..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,2 +17,11 @@ node_modules/
@@ -46,7 +46,7 @@ index d16a8d3..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -977,7 +977,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -985,7 +985,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5e36c23..5d426f5 100644
+index 5e36c231..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -1,3 +1,3 @@
@@ -1048,7 +1048,7 @@ index 5e36c23..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 1a622a2..ca52ec5 100644
+index 1a622a2a..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -9,3 +9,4 @@ backend:
@@ -1175,7 +1175,7 @@ index 1a622a2..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b565e30..6dd6571 100644
+index b565e303..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1185,7 +1185,7 @@ index b565e30..6dd6571 100644
}
diff --git a/examples/entities.yaml b/examples/entities.yaml
new file mode 100644
-index 0000000..447e8b1
+index 00000000..447e8b1f
--- /dev/null
+++ b/examples/entities.yaml
@@ -0,0 +1,41 @@
@@ -1232,7 +1232,7 @@ index 0000000..447e8b1
+ };
diff --git a/examples/org.yaml b/examples/org.yaml
new file mode 100644
-index 0000000..a10e81f
+index 00000000..a10e81fc
--- /dev/null
+++ b/examples/org.yaml
@@ -0,0 +1,17 @@
@@ -1255,7 +1255,7 @@ index 0000000..a10e81f
+ children: []
diff --git a/examples/template/content/catalog-info.yaml b/examples/template/content/catalog-info.yaml
new file mode 100644
-index 0000000..d4ccca4
+index 00000000..d4ccca42
--- /dev/null
+++ b/examples/template/content/catalog-info.yaml
@@ -0,0 +1,8 @@
@@ -1269,14 +1269,14 @@ index 0000000..d4ccca4
+ lifecycle: experimental
diff --git a/examples/template/content/index.js b/examples/template/content/index.js
new file mode 100644
-index 0000000..071ce5a
+index 00000000..071ce5aa
--- /dev/null
+++ b/examples/template/content/index.js
@@ -0,0 +1 @@
+console.log('Hello from ${{ values.name }}!');
diff --git a/examples/template/content/package.json b/examples/template/content/package.json
new file mode 100644
-index 0000000..86f968a
+index 00000000..86f968a7
--- /dev/null
+++ b/examples/template/content/package.json
@@ -0,0 +1,5 @@
@@ -1287,7 +1287,7 @@ index 0000000..86f968a
+}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
new file mode 100644
-index 0000000..33f262b
+index 00000000..33f262b4
--- /dev/null
+++ b/examples/template/template.yaml
@@ -0,0 +1,74 @@
@@ -1367,7 +1367,7 @@ index 0000000..33f262b
+ entityRef: ${{ steps['register'].output.entityRef }}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1378,7 +1378,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 564d0d1..d5f824e 100644
+index 564d0d19..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,10 @@
@@ -1441,7 +1441,7 @@ index 564d0d1..d5f824e 100644
}
diff --git a/packages/README.md b/packages/README.md
new file mode 100644
-index 0000000..6327fa0
+index 00000000..6327fa0a
--- /dev/null
+++ b/packages/README.md
@@ -0,0 +1,9 @@
@@ -1456,13 +1456,13 @@ index 0000000..6327fa0
+libraries, utilities, and similar.
diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore
new file mode 100644
-index 0000000..a48cf0d
+index 00000000..a48cf0de
--- /dev/null
+++ b/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
-index 13573ef..e2a53a6 100644
+index 13573efa..e2a53a6a 100644
--- a/packages/app/.eslintrc.js
+++ b/packages/app/.eslintrc.js
@@ -1,3 +1 @@
@@ -1472,7 +1472,7 @@ index 13573ef..e2a53a6 100644
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 5de7ebf..0000000
+index 5de7ebff..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
@@ -1483,7 +1483,7 @@ index 5de7ebf..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index 2b3a458..0000000
+index 2b3a458b..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,21 +0,0 @@
@@ -1510,7 +1510,7 @@ index 2b3a458..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1522,7 +1522,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1554,7 +1554,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index ba91715..e9aef99 100644
+index ba91715c..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -5,54 +5,53 @@
@@ -1658,7 +1658,7 @@ index ba91715..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index 1bd6001..18da7c4 100644
+index 1bd6001a..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1707,7 +1707,7 @@ index 1bd6001..18da7c4 100644
+ To create a production bundle, use `yarn build`.
-->
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1726,7 +1726,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8a53583..e24c468 100644
+index 8a535835..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -1,3 +1,3 @@
@@ -1839,7 +1839,7 @@ index 8a53583..e24c468 100644
-
-export default App;
diff --git a/packages/app/src/components/Root/LogoFull.tsx b/packages/app/src/components/Root/LogoFull.tsx
-index c7b1c84..47e3b73 100644
+index c7b1c846..47e3b731 100644
--- a/packages/app/src/components/Root/LogoFull.tsx
+++ b/packages/app/src/components/Root/LogoFull.tsx
@@ -1,17 +1 @@
@@ -1861,7 +1861,7 @@ index c7b1c84..47e3b73 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/LogoIcon.tsx b/packages/app/src/components/Root/LogoIcon.tsx
-index 073cf6e..7eae8c7 100644
+index 073cf6ed..7eae8c7a 100644
--- a/packages/app/src/components/Root/LogoIcon.tsx
+++ b/packages/app/src/components/Root/LogoIcon.tsx
@@ -1,17 +1 @@
@@ -1883,7 +1883,7 @@ index 073cf6e..7eae8c7 100644
-
import React from 'react';
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index b4fa04f..853d175 100644
+index b4fa04f1..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -1,22 +1,5 @@
@@ -2006,7 +2006,7 @@ index b4fa04f..853d175 100644
+
diff --git a/packages/app/src/components/Root/index.ts b/packages/app/src/components/Root/index.ts
-index dff706f..3528881 100644
+index dff706f0..35288815 100644
--- a/packages/app/src/components/Root/index.ts
+++ b/packages/app/src/components/Root/index.ts
@@ -1,17 +1 @@
@@ -2028,7 +2028,7 @@ index dff706f..3528881 100644
-
export { Root } from './Root';
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index d3b4b78..6164c76 100644
+index d3b4b786..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -1,16 +1 @@
@@ -2218,7 +2218,7 @@ index d3b4b78..6164c76 100644
+
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
-index 95c8c64..1788dde 100644
+index 95c8c64c..1788dde1 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -1,7 +1,12 @@
@@ -2354,7 +2354,7 @@ index 95c8c64..1788dde 100644
+ } />
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -2366,7 +2366,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/.eslintrc.js b/packages/backend/.eslintrc.js
-index 16a033d..e2a53a6 100644
+index 16a033db..e2a53a6a 100644
--- a/packages/backend/.eslintrc.js
+++ b/packages/backend/.eslintrc.js
@@ -1,3 +1 @@
@@ -2375,7 +2375,7 @@ index 16a033d..e2a53a6 100644
-};
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 31231a3..6a4c257 100644
+index 31231a3a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,5 +5,5 @@
@@ -2449,7 +2449,7 @@ index 31231a3..6a4c257 100644
-CMD ["node", "packages/backend", "--config", "app-config.yaml"]
+CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
diff --git a/packages/backend/README.md b/packages/backend/README.md
-index 02426ef..3607b0a 100644
+index 02426ef9..3607b0a0 100644
--- a/packages/backend/README.md
+++ b/packages/backend/README.md
@@ -18,4 +18,2 @@ To run the example backend, first go to the project root and run
@@ -2482,7 +2482,7 @@ index 02426ef..3607b0a 100644
-- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md)
+- [Backstage Documentation](https://backstage.io/docs)
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 330a913..7c1a20c 100644
+index 330a9136..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -6,39 +6,44 @@
@@ -2564,7 +2564,7 @@ index 330a913..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -2577,7 +2577,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 3f12122..f57d4c5 100644
+index 3f12122a..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,83 +8,47 @@
@@ -2702,7 +2702,7 @@ index 3f12122..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 07fb04f..0000000
+index 07fb04fc..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2722,7 +2722,7 @@ index 07fb04f..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 5216510..0000000
+index 52165104..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -2740,7 +2740,7 @@ index 5216510..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -2760,7 +2760,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 506f6d9..0000000
+index 506f6d98..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
@@ -2777,7 +2777,7 @@ index 506f6d9..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index 6be2e97..0000000
+index 6be2e971..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,27 +0,0 @@
@@ -2810,7 +2810,7 @@ index 6be2e97..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index f23b0c7..0000000
+index f23b0c7b..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -2870,7 +2870,7 @@ index f23b0c7..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index 054c64d..0000000
+index 054c64db..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,55 +0,0 @@
@@ -2931,7 +2931,7 @@ index 054c64d..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index b1e2e0a..0000000
+index b1e2e0a1..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,19 +0,0 @@
@@ -2956,7 +2956,7 @@ index b1e2e0a..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -3022,7 +3022,7 @@ index 0000000..733be13
+});
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
-index 0000000..d7865fd
+index 00000000..d7865fdb
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,9 @@
@@ -3036,7 +3036,7 @@ index 0000000..d7865fd
+
+You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -3047,7 +3047,7 @@ index ba3f901..2aa745d 100644
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
-index 0000000..c37fc61
+index 00000000..c37fc613
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3 @@
diff --git a/diffs/0.5.0..0.5.21.diff b/diffs/0.5.0..0.5.21.diff
index 52ce92b9..515717cb 100644
--- a/diffs/0.5.0..0.5.21.diff
+++ b/diffs/0.5.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index a21904c..6dd6571 100644
+index a21904c9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index a21904c..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 6a38c3c..d5f824e 100644
+index 6a38c3c8..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 6a38c3c..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 84eef05..e9aef99 100644
+index 84eef055..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 84eef05..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5ace826..7c1a20c 100644
+index 5ace8262..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index 5ace826..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2122,7 +2122,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2132,7 +2132,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.1-next.0..0.5.21.diff b/diffs/0.5.1-next.0..0.5.21.diff
index d2dca719..a415d1c9 100644
--- a/diffs/0.5.1-next.0..0.5.21.diff
+++ b/diffs/0.5.1-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index a5dcc71..6dd6571 100644
+index a5dcc71b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index a5dcc71..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 5d07d68..d5f824e 100644
+index 5d07d68f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 5d07d68..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 923c7b8..e9aef99 100644
+index 923c7b8d..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 923c7b8..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index aebc148..7c1a20c 100644
+index aebc1488..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index aebc148..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2122,7 +2122,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2132,7 +2132,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.1-next.1..0.5.21.diff b/diffs/0.5.1-next.1..0.5.21.diff
index 77f2e7a3..25e973b0 100644
--- a/diffs/0.5.1-next.1..0.5.21.diff
+++ b/diffs/0.5.1-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 900da56..6dd6571 100644
+index 900da562..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 900da56..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 10ad459..d5f824e 100644
+index 10ad4592..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1107,7 +1107,7 @@ index 10ad459..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1119,7 +1119,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1137,7 +1137,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1149,7 +1149,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1181,7 +1181,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3b37175..e9aef99 100644
+index 3b37175e..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1275,7 +1275,7 @@ index 3b37175..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1291,7 +1291,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1310,7 +1310,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1348,7 +1348,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1452,7 +1452,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1464,7 +1464,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1516,7 +1516,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 16f10d7..7c1a20c 100644
+index 16f10d76..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1582,7 +1582,7 @@ index 16f10d7..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1595,7 +1595,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1744,7 +1744,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1764,7 +1764,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1824,7 +1824,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1844,7 +1844,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1863,7 +1863,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1891,7 +1891,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1963,7 +1963,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2020,7 +2020,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2051,7 +2051,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2116,7 +2116,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/plugins/README.md b/plugins/README.md
-index 58dc32c..d7865fd 100644
+index 58dc32cb..d7865fdb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -6,3 +6,3 @@ separate folder of its own.
@@ -2125,7 +2125,7 @@ index 58dc32c..d7865fd 100644
+the command `yarn new`, and follow the on-screen instructions.
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2135,7 +2135,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.1-next.2..0.5.21.diff b/diffs/0.5.1-next.2..0.5.21.diff
index 514ab0e3..35c93dad 100644
--- a/diffs/0.5.1-next.2..0.5.21.diff
+++ b/diffs/0.5.1-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b1f67c9..6dd6571 100644
+index b1f67c91..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index b1f67c9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 10ad459..d5f824e 100644
+index 10ad4592..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1107,7 +1107,7 @@ index 10ad459..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1119,7 +1119,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1137,7 +1137,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1149,7 +1149,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1181,7 +1181,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 00b97b9..e9aef99 100644
+index 00b97b94..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1275,7 +1275,7 @@ index 00b97b9..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1291,7 +1291,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1310,7 +1310,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1348,7 +1348,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1452,7 +1452,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1464,7 +1464,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1516,7 +1516,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e1a51b4..7c1a20c 100644
+index e1a51b49..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1582,7 +1582,7 @@ index e1a51b4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1595,7 +1595,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1744,7 +1744,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1764,7 +1764,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1824,7 +1824,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1844,7 +1844,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1863,7 +1863,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1891,7 +1891,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1963,7 +1963,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2020,7 +2020,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2051,7 +2051,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2116,7 +2116,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2126,7 +2126,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.1..0.5.21.diff b/diffs/0.5.1..0.5.21.diff
index 37b9e4c8..03334886 100644
--- a/diffs/0.5.1..0.5.21.diff
+++ b/diffs/0.5.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 62dbf3d..6dd6571 100644
+index 62dbf3d9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 62dbf3d..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index aeeafa8..d5f824e 100644
+index aeeafa81..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index aeeafa8..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 341452e..e9aef99 100644
+index 341452e4..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 341452e..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index bc72ac7..7c1a20c 100644
+index bc72ac75..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index bc72ac7..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2123,7 +2123,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.10..0.5.21.diff b/diffs/0.5.10..0.5.21.diff
index d81af6a3..5fd5ed76 100644
--- a/diffs/0.5.10..0.5.21.diff
+++ b/diffs/0.5.10..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6590048..6dd6571 100644
+index 65900481..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 6590048..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 4467ffb..d5f824e 100644
+index 4467ffb7..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1062,7 +1062,7 @@ index 4467ffb..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1073,7 +1073,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3de62ca..e9aef99 100644
+index 3de62ca1..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1148,7 +1148,7 @@ index 3de62ca..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1162,7 +1162,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1192,7 +1192,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1272,7 +1272,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1321,7 +1321,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5492486..7c1a20c 100644
+index 5492486b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1390,7 +1390,7 @@ index 5492486..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1403,7 +1403,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1552,7 +1552,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1572,7 +1572,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1632,7 +1632,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1652,7 +1652,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1671,7 +1671,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1699,7 +1699,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1771,7 +1771,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1828,7 +1828,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1858,7 +1858,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1867,7 +1867,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1877,7 +1877,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.11-next.0..0.5.21.diff b/diffs/0.5.11-next.0..0.5.21.diff
index 3ef52cdc..0e54b8d4 100644
--- a/diffs/0.5.11-next.0..0.5.21.diff
+++ b/diffs/0.5.11-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index f596323..6dd6571 100644
+index f596323b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index f596323..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 3341794..d5f824e 100644
+index 33417941..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1062,7 +1062,7 @@ index 3341794..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1073,7 +1073,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index e46a7b5..e9aef99 100644
+index e46a7b54..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1148,7 +1148,7 @@ index e46a7b5..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1162,7 +1162,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1192,7 +1192,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1272,7 +1272,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1321,7 +1321,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 9ce930a..7c1a20c 100644
+index 9ce930a4..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1390,7 +1390,7 @@ index 9ce930a..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1403,7 +1403,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1552,7 +1552,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1572,7 +1572,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1632,7 +1632,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1652,7 +1652,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1671,7 +1671,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1699,7 +1699,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1771,7 +1771,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1828,7 +1828,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1858,7 +1858,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1867,7 +1867,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1877,7 +1877,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.11-next.1..0.5.21.diff b/diffs/0.5.11-next.1..0.5.21.diff
index 54d28062..866d2217 100644
--- a/diffs/0.5.11-next.1..0.5.21.diff
+++ b/diffs/0.5.11-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1a61c76..6dd6571 100644
+index 1a61c76a..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 1a61c76..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 18ad258..d5f824e 100644
+index 18ad2589..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1062,7 +1062,7 @@ index 18ad258..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1073,7 +1073,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6804c9f..e9aef99 100644
+index 6804c9f6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1148,7 +1148,7 @@ index 6804c9f..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1162,7 +1162,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1192,7 +1192,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1272,7 +1272,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1321,7 +1321,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 9669b20..7c1a20c 100644
+index 9669b20d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1390,7 +1390,7 @@ index 9669b20..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1403,7 +1403,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1552,7 +1552,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1572,7 +1572,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1632,7 +1632,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1652,7 +1652,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1671,7 +1671,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1699,7 +1699,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1771,7 +1771,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1828,7 +1828,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1858,7 +1858,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1867,7 +1867,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1877,7 +1877,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.11-next.2..0.5.21.diff b/diffs/0.5.11-next.2..0.5.21.diff
index d07d3299..bbd31e4f 100644
--- a/diffs/0.5.11-next.2..0.5.21.diff
+++ b/diffs/0.5.11-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index fc851ee..6dd6571 100644
+index fc851ee9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index fc851ee..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index b46ccc0..d5f824e 100644
+index b46ccc05..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1062,7 +1062,7 @@ index b46ccc0..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1073,7 +1073,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index ab58371..e9aef99 100644
+index ab583718..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1148,7 +1148,7 @@ index ab58371..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1162,7 +1162,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1192,7 +1192,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1272,7 +1272,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1321,7 +1321,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f250e5f..7c1a20c 100644
+index f250e5f8..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1390,7 +1390,7 @@ index f250e5f..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1403,7 +1403,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1552,7 +1552,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1572,7 +1572,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1632,7 +1632,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1652,7 +1652,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1671,7 +1671,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1699,7 +1699,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1771,7 +1771,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1828,7 +1828,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1858,7 +1858,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1867,7 +1867,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.11-next.3..0.5.21.diff b/diffs/0.5.11-next.3..0.5.21.diff
index ef1f7cd9..ebd54269 100644
--- a/diffs/0.5.11-next.3..0.5.21.diff
+++ b/diffs/0.5.11-next.3..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 5e47ce2..6dd6571 100644
+index 5e47ce29..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 5e47ce2..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 184f366..d5f824e 100644
+index 184f3667..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1062,7 +1062,7 @@ index 184f366..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1073,7 +1073,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3d52c5d..e9aef99 100644
+index 3d52c5dd..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1148,7 +1148,7 @@ index 3d52c5d..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index 3337729..18da7c4 100644
+index 3337729d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1157,7 +1157,7 @@ index 3337729..18da7c4 100644
+ content="Backstage is an open source framework for building developer portals"
/>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1187,7 +1187,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1267,7 +1267,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1316,7 +1316,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cdd08c9..7c1a20c 100644
+index cdd08c99..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1385,7 +1385,7 @@ index cdd08c9..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1398,7 +1398,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1547,7 +1547,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1567,7 +1567,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1627,7 +1627,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1647,7 +1647,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1666,7 +1666,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1694,7 +1694,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1766,7 +1766,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1823,7 +1823,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1853,7 +1853,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1862,7 +1862,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.11..0.5.21.diff b/diffs/0.5.11..0.5.21.diff
index b171c0dc..ffa6b9cf 100644
--- a/diffs/0.5.11..0.5.21.diff
+++ b/diffs/0.5.11..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 7a23fa9..6dd6571 100644
+index 7a23fa93..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 7a23fa9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index ac4c4b9..d5f824e 100644
+index ac4c4b9b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1061,7 +1061,7 @@ index ac4c4b9..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1072,7 +1072,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index c32d4bf..e9aef99 100644
+index c32d4bf0..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1147,7 +1147,7 @@ index c32d4bf..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index 3337729..18da7c4 100644
+index 3337729d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1156,7 +1156,7 @@ index 3337729..18da7c4 100644
+ content="Backstage is an open source framework for building developer portals"
/>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1186,7 +1186,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1266,7 +1266,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1315,7 +1315,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7a71f80..7c1a20c 100644
+index 7a71f808..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1384,7 +1384,7 @@ index 7a71f80..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1397,7 +1397,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1546,7 +1546,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1566,7 +1566,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1626,7 +1626,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1646,7 +1646,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1665,7 +1665,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1693,7 +1693,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1765,7 +1765,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1822,7 +1822,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1852,7 +1852,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1861,7 +1861,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.12-next.0..0.5.21.diff b/diffs/0.5.12-next.0..0.5.21.diff
index ec007d28..701f2b2e 100644
--- a/diffs/0.5.12-next.0..0.5.21.diff
+++ b/diffs/0.5.12-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 3806adf..6dd6571 100644
+index 3806adf9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 3806adf..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index e97b24d..d5f824e 100644
+index e97b24da..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1061,7 +1061,7 @@ index e97b24d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1072,7 +1072,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 12be02d..e9aef99 100644
+index 12be02d6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1147,7 +1147,7 @@ index 12be02d..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index 3337729..18da7c4 100644
+index 3337729d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1156,7 +1156,7 @@ index 3337729..18da7c4 100644
+ content="Backstage is an open source framework for building developer portals"
/>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1186,7 +1186,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1266,7 +1266,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1315,7 +1315,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 42a45fb..7c1a20c 100644
+index 42a45fb2..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1384,7 +1384,7 @@ index 42a45fb..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1397,7 +1397,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1546,7 +1546,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1566,7 +1566,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1626,7 +1626,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1646,7 +1646,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1665,7 +1665,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1693,7 +1693,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1765,7 +1765,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1822,7 +1822,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1852,7 +1852,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1861,7 +1861,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.12-next.1..0.5.21.diff b/diffs/0.5.12-next.1..0.5.21.diff
index 90c89016..4961eb30 100644
--- a/diffs/0.5.12-next.1..0.5.21.diff
+++ b/diffs/0.5.12-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c561c15..6dd6571 100644
+index c561c151..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index c561c15..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 5d18f37..d5f824e 100644
+index 5d18f370..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1061,7 +1061,7 @@ index 5d18f37..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1072,7 +1072,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 0e9d8ae..e9aef99 100644
+index 0e9d8aec..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1147,7 +1147,7 @@ index 0e9d8ae..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index 3337729..18da7c4 100644
+index 3337729d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1156,7 +1156,7 @@ index 3337729..18da7c4 100644
+ content="Backstage is an open source framework for building developer portals"
/>
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1186,7 +1186,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1266,7 +1266,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1315,7 +1315,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index ed7a69d..7c1a20c 100644
+index ed7a69d4..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1384,7 +1384,7 @@ index ed7a69d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1397,7 +1397,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1546,7 +1546,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1566,7 +1566,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1626,7 +1626,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1646,7 +1646,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1665,7 +1665,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1693,7 +1693,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1765,7 +1765,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1822,7 +1822,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1852,7 +1852,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1861,7 +1861,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.12-next.2..0.5.21.diff b/diffs/0.5.12-next.2..0.5.21.diff
index 39db9ccf..e43e7c35 100644
--- a/diffs/0.5.12-next.2..0.5.21.diff
+++ b/diffs/0.5.12-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e9bf0ea..6dd6571 100644
+index e9bf0eac..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index e9bf0ea..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index a891a6f..d5f824e 100644
+index a891a6fe..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1061,7 +1061,7 @@ index a891a6f..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1072,7 +1072,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 607cb86..e9aef99 100644
+index 607cb862..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1147,7 +1147,7 @@ index 607cb86..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1177,7 +1177,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1257,7 +1257,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1306,7 +1306,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cd7bc51..7c1a20c 100644
+index cd7bc51a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1375,7 +1375,7 @@ index cd7bc51..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1388,7 +1388,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1537,7 +1537,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1557,7 +1557,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1617,7 +1617,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1637,7 +1637,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1656,7 +1656,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1684,7 +1684,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1756,7 +1756,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1813,7 +1813,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1843,7 +1843,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1852,7 +1852,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.12..0.5.21.diff b/diffs/0.5.12..0.5.21.diff
index ce81373d..b5aabc86 100644
--- a/diffs/0.5.12..0.5.21.diff
+++ b/diffs/0.5.12..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 39708a0..6dd6571 100644
+index 39708a08..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 39708a0..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 5460719..d5f824e 100644
+index 54607193..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 5460719..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 400f6cc..e9aef99 100644
+index 400f6ccc..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1122,7 +1122,7 @@ index 400f6cc..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f751cf6..e24c468 100644
+index f751cf6d..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1137,7 +1137,7 @@ index f751cf6..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1217,7 +1217,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1266,7 +1266,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 454444e..7c1a20c 100644
+index 454444e5..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1334,7 +1334,7 @@ index 454444e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1347,7 +1347,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 44fde69..f57d4c5 100644
+index 44fde697..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -21,3 +21,3 @@ backend.add(import('@backstage/plugin-auth-backend'));
@@ -1381,7 +1381,7 @@ index 44fde69..f57d4c5 100644
backend.start();
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1411,7 +1411,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.13..0.5.21.diff b/diffs/0.5.13..0.5.21.diff
index 2e6527f0..b6a7282c 100644
--- a/diffs/0.5.13..0.5.21.diff
+++ b/diffs/0.5.13..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 61f204c..6dd6571 100644
+index 61f204c1..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 61f204c..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 68b107d..d5f824e 100644
+index 68b107d5..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 68b107d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index f831cd6..e9aef99 100644
+index f831cd69..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1122,7 +1122,7 @@ index f831cd6..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f751cf6..e24c468 100644
+index f751cf6d..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1137,7 +1137,7 @@ index f751cf6..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1217,7 +1217,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1266,7 +1266,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a983e79..7c1a20c 100644
+index a983e796..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1334,7 +1334,7 @@ index a983e79..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1347,7 +1347,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 44fde69..f57d4c5 100644
+index 44fde697..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -21,3 +21,3 @@ backend.add(import('@backstage/plugin-auth-backend'));
@@ -1381,7 +1381,7 @@ index 44fde69..f57d4c5 100644
backend.start();
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1411,7 +1411,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.14-next.0..0.5.21.diff b/diffs/0.5.14-next.0..0.5.21.diff
index cc57b65f..41fe2589 100644
--- a/diffs/0.5.14-next.0..0.5.21.diff
+++ b/diffs/0.5.14-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e591588..6dd6571 100644
+index e5915888..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index e591588..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 4b7308a..d5f824e 100644
+index 4b7308ae..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 4b7308a..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 554111d..e9aef99 100644
+index 554111d5..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1122,7 +1122,7 @@ index 554111d..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f751cf6..e24c468 100644
+index f751cf6d..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1137,7 +1137,7 @@ index f751cf6..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1217,7 +1217,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1266,7 +1266,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f3a9fcd..7c1a20c 100644
+index f3a9fcda..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1334,7 +1334,7 @@ index f3a9fcd..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1347,7 +1347,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 44fde69..f57d4c5 100644
+index 44fde697..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -21,3 +21,3 @@ backend.add(import('@backstage/plugin-auth-backend'));
@@ -1381,7 +1381,7 @@ index 44fde69..f57d4c5 100644
backend.start();
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1411,7 +1411,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.14-next.1..0.5.21.diff b/diffs/0.5.14-next.1..0.5.21.diff
index e96ece19..a32027df 100644
--- a/diffs/0.5.14-next.1..0.5.21.diff
+++ b/diffs/0.5.14-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 3e8e15a..6dd6571 100644
+index 3e8e15a5..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 3e8e15a..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index e85ed7a..d5f824e 100644
+index e85ed7a1..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index e85ed7a..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 6d700e2..e9aef99 100644
+index 6d700e24..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1122,7 +1122,7 @@ index 6d700e2..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f751cf6..e24c468 100644
+index f751cf6d..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1137,7 +1137,7 @@ index f751cf6..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1217,7 +1217,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1266,7 +1266,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cb5395a..7c1a20c 100644
+index cb5395aa..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1334,7 +1334,7 @@ index cb5395a..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1347,7 +1347,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 44fde69..f57d4c5 100644
+index 44fde697..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -21,3 +21,3 @@ backend.add(import('@backstage/plugin-auth-backend'));
@@ -1381,7 +1381,7 @@ index 44fde69..f57d4c5 100644
backend.start();
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1411,7 +1411,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.14..0.5.21.diff b/diffs/0.5.14..0.5.21.diff
index 4fadf951..fee092dd 100644
--- a/diffs/0.5.14..0.5.21.diff
+++ b/diffs/0.5.14..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 2bdd973..6dd6571 100644
+index 2bdd973b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 2bdd973..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index d8d5629..d5f824e 100644
+index d8d56292..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index d8d5629..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 7ca04af..e9aef99 100644
+index 7ca04af0..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,30 +16,28 @@
@@ -1122,7 +1122,7 @@ index 7ca04af..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index f751cf6..e24c468 100644
+index f751cf6d..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1137,7 +1137,7 @@ index f751cf6..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1217,7 +1217,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1266,7 +1266,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index b217bc0..7c1a20c 100644
+index b217bc09..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1334,7 +1334,7 @@ index b217bc0..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1347,7 +1347,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1376,7 +1376,7 @@ index 1c442a8..f57d4c5 100644
backend.start();
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1406,7 +1406,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.15-next.0..0.5.21.diff b/diffs/0.5.15-next.0..0.5.21.diff
index 00abd3c2..ecfdffc0 100644
--- a/diffs/0.5.15-next.0..0.5.21.diff
+++ b/diffs/0.5.15-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 230a8fa..6dd6571 100644
+index 230a8faa..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 230a8fa..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 83896ec..d5f824e 100644
+index 83896ec9..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 83896ec..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 04e2253..e9aef99 100644
+index 04e22533..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index 04e2253..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index d1bdb8c..7c1a20c 100644
+index d1bdb8cf..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index d1bdb8c..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.15-next.1..0.5.21.diff b/diffs/0.5.15-next.1..0.5.21.diff
index f566c99b..f0a295fd 100644
--- a/diffs/0.5.15-next.1..0.5.21.diff
+++ b/diffs/0.5.15-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 418d353..6dd6571 100644
+index 418d3530..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 418d353..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 83896ec..d5f824e 100644
+index 83896ec9..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 83896ec..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3350e7e..e9aef99 100644
+index 3350e7e4..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index 3350e7e..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 1fbbb24..7c1a20c 100644
+index 1fbbb242..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index 1fbbb24..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.15-next.2..0.5.21.diff b/diffs/0.5.15-next.2..0.5.21.diff
index d7ce34c9..9aef2f78 100644
--- a/diffs/0.5.15-next.2..0.5.21.diff
+++ b/diffs/0.5.15-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 7581254..6dd6571 100644
+index 75812547..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 7581254..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 10d7324..d5f824e 100644
+index 10d7324a..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 10d7324..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index f5bb0e9..e9aef99 100644
+index f5bb0e9d..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index f5bb0e9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index b8da882..7c1a20c 100644
+index b8da8828..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index b8da882..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.15..0.5.21.diff b/diffs/0.5.15..0.5.21.diff
index cee394c8..7f65edc2 100644
--- a/diffs/0.5.15..0.5.21.diff
+++ b/diffs/0.5.15..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c92c30a..6dd6571 100644
+index c92c30a3..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index c92c30a..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index e115e34..d5f824e 100644
+index e115e34d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index e115e34..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 59c73ab..e9aef99 100644
+index 59c73aba..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index 59c73ab..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 8e554f0..7c1a20c 100644
+index 8e554f0e..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index 8e554f0..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.16-next.0..0.5.21.diff b/diffs/0.5.16-next.0..0.5.21.diff
index c6cfe92f..87eea5ee 100644
--- a/diffs/0.5.16-next.0..0.5.21.diff
+++ b/diffs/0.5.16-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 67453d9..6dd6571 100644
+index 67453d9a..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 67453d9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 8b2611e..d5f824e 100644
+index 8b2611e1..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 8b2611e..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8c7c771..e9aef99 100644
+index 8c7c7714..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index 8c7c771..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 3206ded..7c1a20c 100644
+index 3206ded3..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index 3206ded..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.16-next.1..0.5.21.diff b/diffs/0.5.16-next.1..0.5.21.diff
index cee035ed..8c4c9faa 100644
--- a/diffs/0.5.16-next.1..0.5.21.diff
+++ b/diffs/0.5.16-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e916ed2..6dd6571 100644
+index e916ed23..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index e916ed2..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 70787bb..d5f824e 100644
+index 70787bbc..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1047,7 +1047,7 @@ index 70787bb..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 27311f9..e9aef99 100644
+index 27311f90..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1120,7 +1120,7 @@ index 27311f9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1146,7 +1146,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1180,7 +1180,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1229,7 +1229,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 656aac0..7c1a20c 100644
+index 656aac0b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1296,7 +1296,7 @@ index 656aac0..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1324,7 +1324,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.16-next.2..0.5.21.diff b/diffs/0.5.16-next.2..0.5.21.diff
index 94a57c5b..900f338a 100644
--- a/diffs/0.5.16-next.2..0.5.21.diff
+++ b/diffs/0.5.16-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 05b02ac..5d426f5 100644
+index 05b02acd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -982,7 +982,7 @@ index 05b02ac..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -996,7 +996,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6538ca5..6dd6571 100644
+index 6538ca57..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1006,7 +1006,7 @@ index 6538ca5..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1017,7 +1017,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 4f0a096..d5f824e 100644
+index 4f0a096b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1042,7 +1042,7 @@ index 4f0a096..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 2478bb3..e9aef99 100644
+index 2478bb34..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1115,7 +1115,7 @@ index 2478bb3..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 6768b48..853d175 100644
+index 6768b48d..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -4,3 +4,2 @@ import HomeIcon from '@material-ui/icons/Home';
@@ -1141,7 +1141,7 @@ index 6768b48..853d175 100644
+ {/* Items in this group will be scrollable if they run out of space */}
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1175,7 +1175,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1224,7 +1224,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 365a46d..7c1a20c 100644
+index 365a46d2..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1290,7 +1290,7 @@ index 365a46d..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1318,7 +1318,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1328,7 +1328,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.16-next.3..0.5.21.diff b/diffs/0.5.16-next.3..0.5.21.diff
index 83817792..00ba555d 100644
--- a/diffs/0.5.16-next.3..0.5.21.diff
+++ b/diffs/0.5.16-next.3..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 9b56d85..6dd6571 100644
+index 9b56d858..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index 9b56d85..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index d2a1f2d..d5f824e 100644
+index d2a1f2d5..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index d2a1f2d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 839775f..e9aef99 100644
+index 839775f6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index 839775f..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 71c0412..853d175 100644
+index 71c04122..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -27,2 +27,4 @@ import MenuIcon from '@material-ui/icons/Menu';
@@ -1127,7 +1127,7 @@ index 71c0412..853d175 100644
+ />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1161,7 +1161,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1210,7 +1210,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index fd235b4..7c1a20c 100644
+index fd235b49..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1276,7 +1276,7 @@ index fd235b4..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1304,7 +1304,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1314,7 +1314,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.16..0.5.21.diff b/diffs/0.5.16..0.5.21.diff
index ca02c386..70bed8e6 100644
--- a/diffs/0.5.16..0.5.21.diff
+++ b/diffs/0.5.16..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1517377..6dd6571 100644
+index 1517377a..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index 1517377..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index dd0b17b..d5f824e 100644
+index dd0b17b1..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index dd0b17b..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index a519089..e9aef99 100644
+index a5190896..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index a519089..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 71c0412..853d175 100644
+index 71c04122..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -27,2 +27,4 @@ import MenuIcon from '@material-ui/icons/Menu';
@@ -1127,7 +1127,7 @@ index 71c0412..853d175 100644
+ />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1161,7 +1161,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1210,7 +1210,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 8c3aa68..7c1a20c 100644
+index 8c3aa688..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,24 +18,25 @@
@@ -1274,7 +1274,7 @@ index 8c3aa68..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1302,7 +1302,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1312,7 +1312,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.17-next.0..0.5.21.diff b/diffs/0.5.17-next.0..0.5.21.diff
index 4120bbfe..4109de68 100644
--- a/diffs/0.5.17-next.0..0.5.21.diff
+++ b/diffs/0.5.17-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index fd01200..6dd6571 100644
+index fd012009..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index fd01200..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 3369b5f..d5f824e 100644
+index 3369b5f0..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index 3369b5f..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 9440fa9..e9aef99 100644
+index 9440fa99..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index 9440fa9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
-index 71c0412..853d175 100644
+index 71c04122..853d175b 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -27,2 +27,4 @@ import MenuIcon from '@material-ui/icons/Menu';
@@ -1127,7 +1127,7 @@ index 71c0412..853d175 100644
+ />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1161,7 +1161,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1210,7 +1210,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a15106e..7c1a20c 100644
+index a15106ee..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,24 +18,25 @@
@@ -1274,7 +1274,7 @@ index a15106e..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1302,7 +1302,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1312,7 +1312,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.17-next.1..0.5.21.diff b/diffs/0.5.17-next.1..0.5.21.diff
index 8f0eb638..0f20d975 100644
--- a/diffs/0.5.17-next.1..0.5.21.diff
+++ b/diffs/0.5.17-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 900c35c..6dd6571 100644
+index 900c35c8..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index 900c35c..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 27a5997..d5f824e 100644
+index 27a59973..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index 27a5997..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index bded775..e9aef99 100644
+index bded775f..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index bded775..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1144,7 +1144,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1193,7 +1193,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cb16f04..7c1a20c 100644
+index cb16f048..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,24 +18,25 @@
@@ -1257,7 +1257,7 @@ index cb16f04..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c442a8..f57d4c5 100644
+index 1c442a8d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -29,4 +29,8 @@ backend.add(
@@ -1285,7 +1285,7 @@ index 1c442a8..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1295,7 +1295,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.17-next.2..0.5.21.diff b/diffs/0.5.17-next.2..0.5.21.diff
index 7cd4dbd9..c2a82383 100644
--- a/diffs/0.5.17-next.2..0.5.21.diff
+++ b/diffs/0.5.17-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6783fc8..6dd6571 100644
+index 6783fc83..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index 6783fc8..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 27a5997..d5f824e 100644
+index 27a59973..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index 27a5997..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index e470958..e9aef99 100644
+index e4709586..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index e470958..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1144,7 +1144,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1193,7 +1193,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 9fbcff2..7c1a20c 100644
+index 9fbcff2e..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
@@ -1258,7 +1258,7 @@ index 9fbcff2..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 2392692..f57d4c5 100644
+index 23926928..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1281,7 +1281,7 @@ index 2392692..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1291,7 +1291,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index b9f8ad3..c37fc61 100644
+index b9f8ad36..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,6 +3 @@
diff --git a/diffs/0.5.17..0.5.21.diff b/diffs/0.5.17..0.5.21.diff
index a21cc176..05f44c54 100644
--- a/diffs/0.5.17..0.5.21.diff
+++ b/diffs/0.5.17..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 248cff1..ca52ec5 100644
+index 248cff13..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105 +105,9 @@ catalog:
@@ -991,7 +991,7 @@ index 248cff1..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b94e5d0..6dd6571 100644
+index b94e5d0e..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1001,7 +1001,7 @@ index b94e5d0..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1012,7 +1012,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index ee649c6..d5f824e 100644
+index ee649c68..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1037,7 +1037,7 @@ index ee649c6..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 9ac56f5..e9aef99 100644
+index 9ac56f56..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,28 +16,28 @@
@@ -1110,7 +1110,7 @@ index 9ac56f5..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 53b6685..6164c76 100644
+index 53b6685c..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -56,2 +56,7 @@ import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -1144,7 +1144,7 @@ index 53b6685..6164c76 100644
+
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1193,7 +1193,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f2016cc..7c1a20c 100644
+index f2016cc7..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,26 +18,25 @@
@@ -1259,7 +1259,7 @@ index f2016cc..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 6bb9b13..f57d4c5 100644
+index 6bb9b132..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1273,7 +1273,7 @@ index 6bb9b13..f57d4c5 100644
+
backend.start();
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1283,7 +1283,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index d83a08f..c37fc61 100644
+index d83a08f1..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,11 +3 @@
diff --git a/diffs/0.5.18-next.0..0.5.21.diff b/diffs/0.5.18-next.0..0.5.21.diff
index 0ba43530..aee3e3e0 100644
--- a/diffs/0.5.18-next.0..0.5.21.diff
+++ b/diffs/0.5.18-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 5532d90..5d426f5 100644
+index 5532d906..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -32,3 +32,3 @@ auth:
@@ -977,7 +977,7 @@ index 5532d90..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index f784d5b..ca52ec5 100644
+index f784d5ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -108 +108,6 @@ kubernetes:
@@ -988,7 +988,7 @@ index f784d5b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 1301ca3..6dd6571 100644
+index 1301ca30..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -998,7 +998,7 @@ index 1301ca3..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1009,7 +1009,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index e98eb98..d5f824e 100644
+index e98eb986..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1034,7 +1034,7 @@ index e98eb98..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 85f48a9..e9aef99 100644
+index 85f48a9a..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1108,7 +1108,7 @@ index 85f48a9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1157,7 +1157,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 72dea89..7c1a20c 100644
+index 72dea89d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1224,7 +1224,7 @@ index 72dea89..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index cf2caae..f57d4c5 100644
+index cf2caae7..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1232,7 +1232,7 @@ index cf2caae..f57d4c5 100644
+// See https://backstage.io/docs/permissions/getting-started for how to create your own permission policy
backend.add(
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.18-next.1..0.5.21.diff b/diffs/0.5.18-next.1..0.5.21.diff
index 87a5a087..69505e0e 100644
--- a/diffs/0.5.18-next.1..0.5.21.diff
+++ b/diffs/0.5.18-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.yaml b/app-config.yaml
-index f784d5b..ca52ec5 100644
+index f784d5ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -108 +108,6 @@ kubernetes:
@@ -959,7 +959,7 @@ index f784d5b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index da642d4..6dd6571 100644
+index da642d4c..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -969,7 +969,7 @@ index da642d4..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -980,7 +980,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 423e859..d5f824e 100644
+index 423e859b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1005,7 +1005,7 @@ index 423e859..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index cbf4ea3..e9aef99 100644
+index cbf4ea3e..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1079,7 +1079,7 @@ index cbf4ea3..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index bef67b5..6a4c257 100644
+index bef67b5c..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1125,7 +1125,7 @@ index bef67b5..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index c5c3b5b..7c1a20c 100644
+index c5c3b5b0..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1192,7 +1192,7 @@ index c5c3b5b..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index cf2caae..f57d4c5 100644
+index cf2caae7..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1200,7 +1200,7 @@ index cf2caae..f57d4c5 100644
+// See https://backstage.io/docs/permissions/getting-started for how to create your own permission policy
backend.add(
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.18-next.2..0.5.21.diff b/diffs/0.5.18-next.2..0.5.21.diff
index dba53094..d2c3903e 100644
--- a/diffs/0.5.18-next.2..0.5.21.diff
+++ b/diffs/0.5.18-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.yaml b/app-config.yaml
-index f784d5b..ca52ec5 100644
+index f784d5ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -108 +108,6 @@ kubernetes:
@@ -959,7 +959,7 @@ index f784d5b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index d289f50..6dd6571 100644
+index d289f50b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -969,7 +969,7 @@ index d289f50..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -980,7 +980,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 89fb962..d5f824e 100644
+index 89fb962c..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1005,7 +1005,7 @@ index 89fb962..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 82496b9..e9aef99 100644
+index 82496b95..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1079,7 +1079,7 @@ index 82496b9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index bef67b5..6a4c257 100644
+index bef67b5c..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1125,7 +1125,7 @@ index bef67b5..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 2c47cc7..7c1a20c 100644
+index 2c47cc7f..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1192,7 +1192,7 @@ index 2c47cc7..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index cf2caae..f57d4c5 100644
+index cf2caae7..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1200,7 +1200,7 @@ index cf2caae..f57d4c5 100644
+// See https://backstage.io/docs/permissions/getting-started for how to create your own permission policy
backend.add(
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.18-next.3..0.5.21.diff b/diffs/0.5.18-next.3..0.5.21.diff
index a4c72b43..4114d905 100644
--- a/diffs/0.5.18-next.3..0.5.21.diff
+++ b/diffs/0.5.18-next.3..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.yaml b/app-config.yaml
-index f784d5b..ca52ec5 100644
+index f784d5ba..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -108 +108,6 @@ kubernetes:
@@ -959,7 +959,7 @@ index f784d5b..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e085aab..6dd6571 100644
+index e085aabb..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -969,7 +969,7 @@ index e085aab..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -980,7 +980,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 080154d..d5f824e 100644
+index 080154d6..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1005,7 +1005,7 @@ index 080154d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index f2e06a9..e9aef99 100644
+index f2e06a9e..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1079,7 +1079,7 @@ index f2e06a9..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index bef67b5..6a4c257 100644
+index bef67b5c..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1125,7 +1125,7 @@ index bef67b5..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 3d3d8d5..7c1a20c 100644
+index 3d3d8d58..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1192,7 +1192,7 @@ index 3d3d8d5..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index cf2caae..f57d4c5 100644
+index cf2caae7..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -34,2 +34,3 @@ backend.add(import('@backstage/plugin-catalog-backend-module-logs'));
@@ -1200,7 +1200,7 @@ index cf2caae..f57d4c5 100644
+// See https://backstage.io/docs/permissions/getting-started for how to create your own permission policy
backend.add(
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.18-next.4..0.5.21.diff b/diffs/0.5.18-next.4..0.5.21.diff
index cc2be6fe..3ea7f36f 100644
--- a/diffs/0.5.18-next.4..0.5.21.diff
+++ b/diffs/0.5.18-next.4..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index 40fcf52..6dd6571 100644
+index 40fcf527..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -958,7 +958,7 @@ index 40fcf52..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -969,7 +969,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 996a3be..d5f824e 100644
+index 996a3be6..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -994,7 +994,7 @@ index 996a3be..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 01ab9b4..e9aef99 100644
+index 01ab9b40..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1068,7 +1068,7 @@ index 01ab9b4..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index bef67b5..6a4c257 100644
+index bef67b5c..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1114,7 +1114,7 @@ index bef67b5..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index bafcb82..7c1a20c 100644
+index bafcb82a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1181,7 +1181,7 @@ index bafcb82..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.18..0.5.21.diff b/diffs/0.5.18..0.5.21.diff
index a3ee34f5..0b4b68a9 100644
--- a/diffs/0.5.18..0.5.21.diff
+++ b/diffs/0.5.18..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index 230d39d..6dd6571 100644
+index 230d39d6..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -958,7 +958,7 @@ index 230d39d..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -969,7 +969,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 80a963e..d5f824e 100644
+index 80a963e8..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -994,7 +994,7 @@ index 80a963e..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 346ffc1..e9aef99 100644
+index 346ffc14..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1068,7 +1068,7 @@ index 346ffc1..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index bef67b5..6a4c257 100644
+index bef67b5c..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1114,7 +1114,7 @@ index bef67b5..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 6a14abc..7c1a20c 100644
+index 6a14abce..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1180,7 +1180,7 @@ index 6a14abc..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.19-next.0..0.5.21.diff b/diffs/0.5.19-next.0..0.5.21.diff
index 7e3af76e..ae8b1ad5 100644
--- a/diffs/0.5.19-next.0..0.5.21.diff
+++ b/diffs/0.5.19-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index e9c1218..6dd6571 100644
+index e9c1218a..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -958,7 +958,7 @@ index e9c1218..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -969,7 +969,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 4282eb1..d5f824e 100644
+index 4282eb16..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -994,7 +994,7 @@ index 4282eb1..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8fac067..e9aef99 100644
+index 8fac067d..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1068,7 +1068,7 @@ index 8fac067..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 22fe721..6a4c257 100644
+index 22fe7213..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1114,7 +1114,7 @@ index 22fe721..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 3e283c2..7c1a20c 100644
+index 3e283c2c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,27 +18,25 @@
@@ -1180,7 +1180,7 @@ index 3e283c2..7c1a20c 100644
+ "@backstage/cli": "^0.28.0"
},
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
diff --git a/diffs/0.5.19-next.1..0.5.21.diff b/diffs/0.5.19-next.1..0.5.21.diff
index 36da2839..8ac36648 100644
--- a/diffs/0.5.19-next.1..0.5.21.diff
+++ b/diffs/0.5.19-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index f36e675..6dd6571 100644
+index f36e675c..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -958,7 +958,7 @@ index f36e675..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -969,7 +969,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 5517e42..d5f824e 100644
+index 5517e427..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -994,7 +994,7 @@ index 5517e42..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 5c7a3ca..e9aef99 100644
+index 5c7a3caf..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1068,7 +1068,7 @@ index 5c7a3ca..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 22fe721..6a4c257 100644
+index 22fe7213..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1114,7 +1114,7 @@ index 22fe721..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 532946e..7c1a20c 100644
+index 532946eb..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.19-next.2..0.5.21.diff b/diffs/0.5.19-next.2..0.5.21.diff
index 33ead77d..c162b8c6 100644
--- a/diffs/0.5.19-next.2..0.5.21.diff
+++ b/diffs/0.5.19-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index 5ae4d48..6dd6571 100644
+index 5ae4d487..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -958,7 +958,7 @@ index 5ae4d48..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -969,7 +969,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 8f0c5ff..d5f824e 100644
+index 8f0c5ffa..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -994,7 +994,7 @@ index 8f0c5ff..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/package.json b/packages/app/package.json
-index 1e3540e..e9aef99 100644
+index 1e3540ef..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -1068,7 +1068,7 @@ index 1e3540e..e9aef99 100644
- "@testing-library/dom": "^9.0.0",
"@types/react-dom": "*",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 22fe721..6a4c257 100644
+index 22fe7213..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1114,7 +1114,7 @@ index 22fe721..6a4c257 100644
+ yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 44e2e11..7c1a20c 100644
+index 44e2e11c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.19..0.5.21.diff b/diffs/0.5.19..0.5.21.diff
index 6bc52cb7..82e956ec 100644
--- a/diffs/0.5.19..0.5.21.diff
+++ b/diffs/0.5.19..0.5.21.diff
@@ -1,6 +1,6 @@
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -8,7 +8,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/backstage.json b/backstage.json
-index 96f53df..6dd6571 100644
+index 96f53df0..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -17,7 +17,7 @@ index 96f53df..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index ba1dbc8..d5f824e 100644
+index ba1dbc82..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -26,7 +26,7 @@ index ba1dbc8..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index f446dae..e9aef99 100644
+index f446dae9..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -92,7 +92,7 @@ index f446dae..e9aef99 100644
+ "@backstage/test-utils": "^1.7.0",
"@playwright/test": "^1.32.3",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 09024eb..6a4c257 100644
+index 09024eb4..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -47,3 +47,3 @@ ENV NODE_ENV=production
@@ -101,7 +101,7 @@ index 09024eb..6a4c257 100644
+ENV NODE_OPTIONS="--no-node-snapshot"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7958e0b..7c1a20c 100644
+index 7958e0bd..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.2-next.0..0.5.21.diff b/diffs/0.5.2-next.0..0.5.21.diff
index 6307afdb..49907698 100644
--- a/diffs/0.5.2-next.0..0.5.21.diff
+++ b/diffs/0.5.2-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 731cf1c..6dd6571 100644
+index 731cf1c6..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 731cf1c..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7ea2719..d5f824e 100644
+index 7ea2719e..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 7ea2719..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 77a2351..e9aef99 100644
+index 77a2351b..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 77a2351..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 056402f..e24c468 100644
+index 056402f2..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1345,7 +1345,7 @@ index 056402f..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1449,7 +1449,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1461,7 +1461,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1513,7 +1513,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 2a5570a..7c1a20c 100644
+index 2a5570a6..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1579,7 +1579,7 @@ index 2a5570a..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1592,7 +1592,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1741,7 +1741,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1761,7 +1761,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1821,7 +1821,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1841,7 +1841,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1860,7 +1860,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1888,7 +1888,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1960,7 +1960,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2017,7 +2017,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2048,7 +2048,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2113,7 +2113,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2123,7 +2123,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.2-next.1..0.5.21.diff b/diffs/0.5.2-next.1..0.5.21.diff
index 3fea0433..c8a388ac 100644
--- a/diffs/0.5.2-next.1..0.5.21.diff
+++ b/diffs/0.5.2-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 7c584bc..6dd6571 100644
+index 7c584bc4..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 7c584bc..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7cca265..d5f824e 100644
+index 7cca2655..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 7cca265..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 73d0022..e9aef99 100644
+index 73d0022c..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 73d0022..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1337,7 +1337,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1441,7 +1441,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1453,7 +1453,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1505,7 +1505,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a5757d4..7c1a20c 100644
+index a5757d4b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1571,7 +1571,7 @@ index a5757d4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1584,7 +1584,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1733,7 +1733,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1753,7 +1753,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1813,7 +1813,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1833,7 +1833,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1852,7 +1852,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1880,7 +1880,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1952,7 +1952,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2009,7 +2009,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2040,7 +2040,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2105,7 +2105,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2115,7 +2115,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.2-next.2..0.5.21.diff b/diffs/0.5.2-next.2..0.5.21.diff
index 65767bab..01978893 100644
--- a/diffs/0.5.2-next.2..0.5.21.diff
+++ b/diffs/0.5.2-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 67f1863..6dd6571 100644
+index 67f18632..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index 67f1863..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 7cca265..d5f824e 100644
+index 7cca2655..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index 7cca265..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 1d4e6bd..e9aef99 100644
+index 1d4e6bd1..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index 1d4e6bd..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1337,7 +1337,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1441,7 +1441,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1453,7 +1453,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1505,7 +1505,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 0f06e76..7c1a20c 100644
+index 0f06e766..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1571,7 +1571,7 @@ index 0f06e76..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1584,7 +1584,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1733,7 +1733,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1753,7 +1753,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1813,7 +1813,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1833,7 +1833,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1852,7 +1852,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1880,7 +1880,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1952,7 +1952,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2009,7 +2009,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2040,7 +2040,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2105,7 +2105,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2115,7 +2115,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.2-next.3..0.5.21.diff b/diffs/0.5.2-next.3..0.5.21.diff
index 74687426..cd12f6d2 100644
--- a/diffs/0.5.2-next.3..0.5.21.diff
+++ b/diffs/0.5.2-next.3..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 3d216ec..ca52ec5 100644
+index 3d216ec8..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -32,4 +32,2 @@ backend:
@@ -1037,7 +1037,7 @@ index 3d216ec..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index bbbbcc1..6dd6571 100644
+index bbbbcc15..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1047,7 +1047,7 @@ index bbbbcc1..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1058,7 +1058,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index ceff693..d5f824e 100644
+index ceff693d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1104,7 +1104,7 @@ index ceff693..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1116,7 +1116,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1134,7 +1134,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1146,7 +1146,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1178,7 +1178,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index f045465..e9aef99 100644
+index f045465d..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1272,7 +1272,7 @@ index f045465..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1288,7 +1288,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1307,7 +1307,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1337,7 +1337,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1441,7 +1441,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1453,7 +1453,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1505,7 +1505,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 54afbf2..7c1a20c 100644
+index 54afbf2a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1571,7 +1571,7 @@ index 54afbf2..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1584,7 +1584,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index c4736a5..f57d4c5 100644
+index c4736a5d..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1733,7 +1733,7 @@ index c4736a5..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1753,7 +1753,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1813,7 +1813,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1833,7 +1833,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1852,7 +1852,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1880,7 +1880,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1952,7 +1952,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2009,7 +2009,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2040,7 +2040,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2105,7 +2105,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2115,7 +2115,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.2..0.5.21.diff b/diffs/0.5.2..0.5.21.diff
index de0b2008..8f6e633c 100644
--- a/diffs/0.5.2..0.5.21.diff
+++ b/diffs/0.5.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 88d2f1b..6dd6571 100644
+index 88d2f1b8..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 88d2f1b..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 54570e5..d5f824e 100644
+index 54570e56..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index 54570e5..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 3c1f704..e9aef99 100644
+index 3c1f7049..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index 3c1f704..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1436,7 +1436,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1448,7 +1448,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1500,7 +1500,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index b1036e8..7c1a20c 100644
+index b1036e8c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1566,7 +1566,7 @@ index b1036e8..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1579,7 +1579,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1728,7 +1728,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1748,7 +1748,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1808,7 +1808,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1828,7 +1828,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1847,7 +1847,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1875,7 +1875,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1947,7 +1947,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2004,7 +2004,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2035,7 +2035,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2100,7 +2100,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2110,7 +2110,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.20..0.5.21.diff b/diffs/0.5.20..0.5.21.diff
index c9757ffc..52ea331f 100644
--- a/diffs/0.5.20..0.5.21.diff
+++ b/diffs/0.5.20..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/backstage.json b/backstage.json
-index b1ca6e4..6dd6571 100644
+index b1ca6e42..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -8,7 +8,7 @@ index b1ca6e4..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index ba1dbc8..d5f824e 100644
+index ba1dbc82..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -17,7 +17,7 @@ index ba1dbc8..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index f446dae..e9aef99 100644
+index f446dae9..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -83,7 +83,7 @@ index f446dae..e9aef99 100644
+ "@backstage/test-utils": "^1.7.0",
"@playwright/test": "^1.32.3",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 09024eb..6a4c257 100644
+index 09024eb4..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -47,3 +47,3 @@ ENV NODE_ENV=production
@@ -92,7 +92,7 @@ index 09024eb..6a4c257 100644
+ENV NODE_OPTIONS="--no-node-snapshot"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7958e0b..7c1a20c 100644
+index 7958e0bd..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.21-next.0..0.5.21.diff b/diffs/0.5.21-next.0..0.5.21.diff
index 353783f8..74387013 100644
--- a/diffs/0.5.21-next.0..0.5.21.diff
+++ b/diffs/0.5.21-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/backstage.json b/backstage.json
-index 727c0ef..6dd6571 100644
+index 727c0eff..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -8,7 +8,7 @@ index 727c0ef..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index 0f8e33b..d5f824e 100644
+index 0f8e33b6..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -17,7 +17,7 @@ index 0f8e33b..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index ac910e6..e9aef99 100644
+index ac910e64..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -83,7 +83,7 @@ index ac910e6..e9aef99 100644
+ "@backstage/test-utils": "^1.7.0",
"@playwright/test": "^1.32.3",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 09024eb..6a4c257 100644
+index 09024eb4..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -47,3 +47,3 @@ ENV NODE_ENV=production
@@ -92,7 +92,7 @@ index 09024eb..6a4c257 100644
+ENV NODE_OPTIONS="--no-node-snapshot"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index ffb780c..7c1a20c 100644
+index ffb780c0..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.21-next.1..0.5.21.diff b/diffs/0.5.21-next.1..0.5.21.diff
index e017340e..6d7bcd6f 100644
--- a/diffs/0.5.21-next.1..0.5.21.diff
+++ b/diffs/0.5.21-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/backstage.json b/backstage.json
-index df3ec52..6dd6571 100644
+index df3ec520..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -8,7 +8,7 @@ index df3ec52..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index b5e416b..d5f824e 100644
+index b5e416bb..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -17,7 +17,7 @@ index b5e416b..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index 4b5851e..e9aef99 100644
+index 4b5851ec..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -83,7 +83,7 @@ index 4b5851e..e9aef99 100644
+ "@backstage/test-utils": "^1.7.0",
"@playwright/test": "^1.32.3",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 09024eb..6a4c257 100644
+index 09024eb4..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -47,3 +47,3 @@ ENV NODE_ENV=production
@@ -92,7 +92,7 @@ index 09024eb..6a4c257 100644
+ENV NODE_OPTIONS="--no-node-snapshot"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index d4b65d2..7c1a20c 100644
+index d4b65d21..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.21-next.2..0.5.21.diff b/diffs/0.5.21-next.2..0.5.21.diff
index 2c068b90..832635db 100644
--- a/diffs/0.5.21-next.2..0.5.21.diff
+++ b/diffs/0.5.21-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/backstage.json b/backstage.json
-index 20f48ac..6dd6571 100644
+index 20f48ac6..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -8,7 +8,7 @@ index 20f48ac..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index 79d16aa..d5f824e 100644
+index 79d16aaf..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -17,7 +17,7 @@ index 79d16aa..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index af8e4d8..e9aef99 100644
+index af8e4d88..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,29 +16,28 @@
@@ -83,7 +83,7 @@ index af8e4d8..e9aef99 100644
+ "@backstage/test-utils": "^1.7.0",
"@playwright/test": "^1.32.3",
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 09024eb..6a4c257 100644
+index 09024eb4..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -47,3 +47,3 @@ ENV NODE_ENV=production
@@ -92,7 +92,7 @@ index 09024eb..6a4c257 100644
+ENV NODE_OPTIONS="--no-node-snapshot"
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 0749b49..7c1a20c 100644
+index 0749b491..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.22-next.0..0.5.21.diff b/diffs/0.5.22-next.0..0.5.21.diff
index 6bacf1fb..7abb765c 100644
--- a/diffs/0.5.22-next.0..0.5.21.diff
+++ b/diffs/0.5.22-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/backstage.json b/backstage.json
-index 14d3662..6dd6571 100644
+index 14d36627..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -8,7 +8,7 @@ index 14d3662..6dd6571 100644
+ "version": "1.32.0"
}
diff --git a/package.json b/package.json
-index 38eef96..d5f824e 100644
+index 38eef969..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -33,3 +33,3 @@
@@ -17,7 +17,7 @@ index 38eef96..d5f824e 100644
+ "@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
diff --git a/packages/app/package.json b/packages/app/package.json
-index e3ab5c4..e9aef99 100644
+index e3ab5c42..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,25 +16,25 @@
@@ -64,7 +64,7 @@ index e3ab5c4..e9aef99 100644
+ "@backstage/plugin-user-settings": "^0.8.14",
"@backstage/theme": "^0.6.0",
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 6b25427..7c1a20c 100644
+index 6b25427d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,25 +18,25 @@
diff --git a/diffs/0.5.22-next.1..0.5.21.diff b/diffs/0.5.22-next.1..0.5.21.diff
new file mode 100644
index 00000000..b9be90c1
--- /dev/null
+++ b/diffs/0.5.22-next.1..0.5.21.diff
@@ -0,0 +1,133 @@
+diff --git a/backstage.json b/backstage.json
+index 65c00b35..6dd6571b 100644
+--- a/backstage.json
++++ b/backstage.json
+@@ -1,3 +1,3 @@
+ {
+- "version": "1.33.0-next.1"
++ "version": "1.32.0"
+ }
+diff --git a/package.json b/package.json
+index 39baefa6..d5f824ec 100644
+--- a/package.json
++++ b/package.json
+@@ -5,3 +5,3 @@
+ "engines": {
+- "node": "20 || 22"
++ "node": "18 || 20"
+ },
+@@ -33,3 +33,3 @@
+ "devDependencies": {
+- "@backstage/cli": "^0.29.0-next.1",
++ "@backstage/cli": "^0.28.0",
+ "@backstage/e2e-test-utils": "^0.1.1",
+diff --git a/packages/app/package.json b/packages/app/package.json
+index 021dbd41..e9aef998 100644
+--- a/packages/app/package.json
++++ b/packages/app/package.json
+@@ -16,26 +16,26 @@
+ "dependencies": {
+- "@backstage/app-defaults": "^1.5.13-next.1",
++ "@backstage/app-defaults": "^1.5.12",
+ "@backstage/catalog-model": "^1.7.0",
+- "@backstage/cli": "^0.29.0-next.1",
++ "@backstage/cli": "^0.28.0",
+ "@backstage/core-app-api": "^1.15.1",
+- "@backstage/core-components": "^0.16.0-next.1",
++ "@backstage/core-components": "^0.15.1",
+ "@backstage/core-plugin-api": "^1.10.0",
+ "@backstage/integration-react": "^1.2.0",
+- "@backstage/plugin-api-docs": "^0.11.12-next.1",
+- "@backstage/plugin-catalog": "^1.24.1-next.1",
++ "@backstage/plugin-api-docs": "^0.11.11",
++ "@backstage/plugin-catalog": "^1.24.0",
+ "@backstage/plugin-catalog-common": "^1.1.0",
+- "@backstage/plugin-catalog-graph": "^0.4.12-next.1",
+- "@backstage/plugin-catalog-import": "^0.12.6-next.1",
+- "@backstage/plugin-catalog-react": "^1.14.1-next.1",
+- "@backstage/plugin-kubernetes": "^0.12.0-next.1",
+- "@backstage/plugin-org": "^0.6.32-next.1",
++ "@backstage/plugin-catalog-graph": "^0.4.11",
++ "@backstage/plugin-catalog-import": "^0.12.5",
++ "@backstage/plugin-catalog-react": "^1.14.0",
++ "@backstage/plugin-kubernetes": "^0.11.16",
++ "@backstage/plugin-org": "^0.6.31",
+ "@backstage/plugin-permission-react": "^0.4.27",
+- "@backstage/plugin-scaffolder": "^1.26.3-next.1",
+- "@backstage/plugin-search": "^1.4.19-next.1",
+- "@backstage/plugin-search-react": "^1.8.2-next.1",
+- "@backstage/plugin-techdocs": "^1.11.1-next.1",
+- "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.17-next.1",
+- "@backstage/plugin-techdocs-react": "^1.2.10-next.1",
+- "@backstage/plugin-user-settings": "^0.8.15-next.1",
+- "@backstage/theme": "^0.6.1-next.0",
++ "@backstage/plugin-scaffolder": "^1.26.0",
++ "@backstage/plugin-search": "^1.4.18",
++ "@backstage/plugin-search-react": "^1.8.1",
++ "@backstage/plugin-techdocs": "^1.11.0",
++ "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.16",
++ "@backstage/plugin-techdocs-react": "^1.2.9",
++ "@backstage/plugin-user-settings": "^0.8.14",
++ "@backstage/theme": "^0.6.0",
+ "@material-ui/core": "^4.12.2",
+@@ -48,3 +48,3 @@
+ "devDependencies": {
+- "@backstage/test-utils": "^1.7.1-next.0",
++ "@backstage/test-utils": "^1.7.0",
+ "@playwright/test": "^1.32.3",
+diff --git a/packages/backend/package.json b/packages/backend/package.json
+index b0748e6d..7c1a20c8 100644
+--- a/packages/backend/package.json
++++ b/packages/backend/package.json
+@@ -18,25 +18,25 @@
+ "dependencies": {
+- "@backstage/backend-defaults": "^0.5.3-next.1",
++ "@backstage/backend-defaults": "^0.5.1",
+ "@backstage/config": "^1.2.0",
+- "@backstage/plugin-app-backend": "^0.3.77-next.1",
+- "@backstage/plugin-auth-backend": "^0.24.0-next.1",
+- "@backstage/plugin-auth-backend-module-github-provider": "^0.2.2-next.1",
+- "@backstage/plugin-auth-backend-module-guest-provider": "^0.2.2-next.1",
+- "@backstage/plugin-auth-node": "^0.5.4-next.1",
+- "@backstage/plugin-catalog-backend": "^1.27.2-next.1",
+- "@backstage/plugin-catalog-backend-module-logs": "^0.1.4-next.1",
+- "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.2-next.1",
+- "@backstage/plugin-kubernetes-backend": "^0.19.0-next.1",
+- "@backstage/plugin-permission-backend": "^0.5.51-next.1",
+- "@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.2-next.1",
++ "@backstage/plugin-app-backend": "^0.3.76",
++ "@backstage/plugin-auth-backend": "^0.23.1",
++ "@backstage/plugin-auth-backend-module-github-provider": "^0.2.1",
++ "@backstage/plugin-auth-backend-module-guest-provider": "^0.2.1",
++ "@backstage/plugin-auth-node": "^0.5.3",
++ "@backstage/plugin-catalog-backend": "^1.27.0",
++ "@backstage/plugin-catalog-backend-module-logs": "^0.1.2",
++ "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.1",
++ "@backstage/plugin-kubernetes-backend": "^0.18.7",
++ "@backstage/plugin-permission-backend": "^0.5.50",
++ "@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.1",
+ "@backstage/plugin-permission-common": "^0.8.1",
+- "@backstage/plugin-permission-node": "^0.8.5-next.1",
+- "@backstage/plugin-proxy-backend": "^0.5.8-next.1",
+- "@backstage/plugin-scaffolder-backend": "^1.27.0-next.1",
+- "@backstage/plugin-search-backend": "^1.6.2-next.1",
+- "@backstage/plugin-search-backend-module-catalog": "^0.2.5-next.1",
+- "@backstage/plugin-search-backend-module-pg": "^0.5.38-next.1",
+- "@backstage/plugin-search-backend-module-techdocs": "^0.3.2-next.1",
+- "@backstage/plugin-search-backend-node": "^1.3.5-next.1",
+- "@backstage/plugin-techdocs-backend": "^1.11.2-next.1",
++ "@backstage/plugin-permission-node": "^0.8.4",
++ "@backstage/plugin-proxy-backend": "^0.5.7",
++ "@backstage/plugin-scaffolder-backend": "^1.26.0",
++ "@backstage/plugin-search-backend": "^1.6.0",
++ "@backstage/plugin-search-backend-module-catalog": "^0.2.3",
++ "@backstage/plugin-search-backend-module-pg": "^0.5.36",
++ "@backstage/plugin-search-backend-module-techdocs": "^0.3.0",
++ "@backstage/plugin-search-backend-node": "^1.3.3",
++ "@backstage/plugin-techdocs-backend": "^1.11.0",
+ "app": "link:../app",
+@@ -47,3 +47,3 @@
+ "devDependencies": {
+- "@backstage/cli": "^0.29.0-next.1"
++ "@backstage/cli": "^0.28.0"
+ },
diff --git a/diffs/0.5.3-next.0..0.5.21.diff b/diffs/0.5.3-next.0..0.5.21.diff
index dcfe1d7c..8cf2c4dd 100644
--- a/diffs/0.5.3-next.0..0.5.21.diff
+++ b/diffs/0.5.3-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index f37c8cd..6dd6571 100644
+index f37c8cd8..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index f37c8cd..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 0c495ac..d5f824e 100644
+index 0c495ac2..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index 0c495ac..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index a467608..0000000
+index a4676089..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index a467608..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index bf42ded..e9aef99 100644
+index bf42ded9..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index bf42ded..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 54a05ee..6164c76 100644
+index 54a05eea..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,5 @@ import {
@@ -1436,7 +1436,7 @@ index 54a05ee..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1448,7 +1448,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1500,7 +1500,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e5eee68..7c1a20c 100644
+index e5eee68b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1566,7 +1566,7 @@ index e5eee68..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1579,7 +1579,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1728,7 +1728,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1748,7 +1748,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1808,7 +1808,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1828,7 +1828,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1847,7 +1847,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1875,7 +1875,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1947,7 +1947,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -2004,7 +2004,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2035,7 +2035,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2100,7 +2100,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2110,7 +2110,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.3-next.1..0.5.21.diff b/diffs/0.5.3-next.1..0.5.21.diff
index a0fe1914..c7ecd539 100644
--- a/diffs/0.5.3-next.1..0.5.21.diff
+++ b/diffs/0.5.3-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 2ec3b5f..6dd6571 100644
+index 2ec3b5fb..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 2ec3b5f..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 0c495ac..d5f824e 100644
+index 0c495ac2..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index 0c495ac..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index e63bebb..e9aef99 100644
+index e63bebb6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index e63bebb..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 51f7124..6a4c257 100644
+index 51f7124d..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1486,7 +1486,7 @@ index 51f7124..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 49474dd..7c1a20c 100644
+index 49474dda..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1552,7 +1552,7 @@ index 49474dd..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1565,7 +1565,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1714,7 +1714,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1734,7 +1734,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1794,7 +1794,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1814,7 +1814,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1833,7 +1833,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1861,7 +1861,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1933,7 +1933,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1990,7 +1990,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2021,7 +2021,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2086,7 +2086,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2096,7 +2096,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.3-next.2..0.5.21.diff b/diffs/0.5.3-next.2..0.5.21.diff
index 7a983a36..ff5584a5 100644
--- a/diffs/0.5.3-next.2..0.5.21.diff
+++ b/diffs/0.5.3-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6243701..6dd6571 100644
+index 62437019..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 6243701..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index e75e19f..d5f824e 100644
+index e75e19f5..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index e75e19f..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8c3ef45..e9aef99 100644
+index 8c3ef45b..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index 8c3ef45..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1484,7 +1484,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 668d7e3..7c1a20c 100644
+index 668d7e38..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1550,7 +1550,7 @@ index 668d7e3..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1563,7 +1563,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1712,7 +1712,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1732,7 +1732,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1792,7 +1792,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1812,7 +1812,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1831,7 +1831,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1859,7 +1859,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1931,7 +1931,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1988,7 +1988,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2019,7 +2019,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2084,7 +2084,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2094,7 +2094,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.3..0.5.21.diff b/diffs/0.5.3..0.5.21.diff
index fde6a97e..4c285b07 100644
--- a/diffs/0.5.3..0.5.21.diff
+++ b/diffs/0.5.3..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 6ba6f3d..6dd6571 100644
+index 6ba6f3d9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 6ba6f3d..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 4729f75..d5f824e 100644
+index 4729f753..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index 4729f75..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index d066c3a..e9aef99 100644
+index d066c3a6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index d066c3a..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1484,7 +1484,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 79d50e3..7c1a20c 100644
+index 79d50e38..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1550,7 +1550,7 @@ index 79d50e3..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1563,7 +1563,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1712,7 +1712,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1732,7 +1732,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1792,7 +1792,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1812,7 +1812,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1831,7 +1831,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1859,7 +1859,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1931,7 +1931,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1988,7 +1988,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2019,7 +2019,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2084,7 +2084,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2094,7 +2094,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.4-next.0..0.5.21.diff b/diffs/0.5.4-next.0..0.5.21.diff
index a12228a6..193dba66 100644
--- a/diffs/0.5.4-next.0..0.5.21.diff
+++ b/diffs/0.5.4-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c8ac2d3..6dd6571 100644
+index c8ac2d3b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index c8ac2d3..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 73a3596..d5f824e 100644
+index 73a35961..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index 73a3596..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 02eb1c7..e9aef99 100644
+index 02eb1c71..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index 02eb1c7..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1484,7 +1484,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index de8619f..7c1a20c 100644
+index de8619fb..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1550,7 +1550,7 @@ index de8619f..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1563,7 +1563,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1712,7 +1712,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1732,7 +1732,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1792,7 +1792,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1812,7 +1812,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1831,7 +1831,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1859,7 +1859,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1931,7 +1931,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1988,7 +1988,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2019,7 +2019,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2084,7 +2084,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2094,7 +2094,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.4-next.1..0.5.21.diff b/diffs/0.5.4-next.1..0.5.21.diff
index 4367b3ac..7cf33bca 100644
--- a/diffs/0.5.4-next.1..0.5.21.diff
+++ b/diffs/0.5.4-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 79e7f09..6dd6571 100644
+index 79e7f091..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 79e7f09..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index c7561da..d5f824e 100644
+index c7561daf..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index c7561da..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index d780d7b..e9aef99 100644
+index d780d7ba..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index d780d7b..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1484,7 +1484,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index c5f37e7..7c1a20c 100644
+index c5f37e7a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1550,7 +1550,7 @@ index c5f37e7..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1563,7 +1563,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1712,7 +1712,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1732,7 +1732,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1792,7 +1792,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1812,7 +1812,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1831,7 +1831,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1859,7 +1859,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1931,7 +1931,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1988,7 +1988,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2019,7 +2019,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2084,7 +2084,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2094,7 +2094,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.4-next.2..0.5.21.diff b/diffs/0.5.4-next.2..0.5.21.diff
index 1739123c..0b76b5c9 100644
--- a/diffs/0.5.4-next.2..0.5.21.diff
+++ b/diffs/0.5.4-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 194549f..ca52ec5 100644
+index 194549f0..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1032,7 +1032,7 @@ index 194549f..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 952ce6c..6dd6571 100644
+index 952ce6c9..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1042,7 +1042,7 @@ index 952ce6c..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1053,7 +1053,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index c7561da..d5f824e 100644
+index c7561daf..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1099,7 +1099,7 @@ index c7561da..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1111,7 +1111,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1129,7 +1129,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1141,7 +1141,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1173,7 +1173,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index e93b1bd..e9aef99 100644
+index e93b1bd9..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1267,7 +1267,7 @@ index e93b1bd..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1283,7 +1283,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1302,7 +1302,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1332,7 +1332,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1422,7 +1422,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1434,7 +1434,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1484,7 +1484,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cfa8a81..7c1a20c 100644
+index cfa8a81b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1550,7 +1550,7 @@ index cfa8a81..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1563,7 +1563,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1712,7 +1712,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1732,7 +1732,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1792,7 +1792,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1812,7 +1812,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1831,7 +1831,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1859,7 +1859,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1931,7 +1931,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1988,7 +1988,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2019,7 +2019,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2084,7 +2084,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2094,7 +2094,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.4..0.5.21.diff b/diffs/0.5.4..0.5.21.diff
index da59cf51..47c74e97 100644
--- a/diffs/0.5.4..0.5.21.diff
+++ b/diffs/0.5.4..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 29dd8c9..6dd6571 100644
+index 29dd8c9b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index 29dd8c9..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index b55ba06..d5f824e 100644
+index b55ba061..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1089,7 +1089,7 @@ index b55ba06..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1101,7 +1101,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1119,7 +1119,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1163,7 +1163,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index f9d0466..e9aef99 100644
+index f9d0466b..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1257,7 +1257,7 @@ index f9d0466..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1273,7 +1273,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1292,7 +1292,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1322,7 +1322,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1412,7 +1412,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1424,7 +1424,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1474,7 +1474,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 484ea55..7c1a20c 100644
+index 484ea55d..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1540,7 +1540,7 @@ index 484ea55..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1553,7 +1553,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1702,7 +1702,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1722,7 +1722,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1782,7 +1782,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1802,7 +1802,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1821,7 +1821,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1849,7 +1849,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1921,7 +1921,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1978,7 +1978,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2009,7 +2009,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2074,7 +2074,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2084,7 +2084,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.5-next.0..0.5.21.diff b/diffs/0.5.5-next.0..0.5.21.diff
index 0bb0b485..0dcd2cca 100644
--- a/diffs/0.5.5-next.0..0.5.21.diff
+++ b/diffs/0.5.5-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c126180..6dd6571 100644
+index c126180a..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index c126180..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 20f286b..d5f824e 100644
+index 20f286b5..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1089,7 +1089,7 @@ index 20f286b..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1101,7 +1101,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1119,7 +1119,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1163,7 +1163,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index d77207a..e9aef99 100644
+index d77207aa..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1257,7 +1257,7 @@ index d77207a..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1273,7 +1273,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1292,7 +1292,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1322,7 +1322,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1412,7 +1412,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1424,7 +1424,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1474,7 +1474,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a0bf47f..7c1a20c 100644
+index a0bf47f8..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1540,7 +1540,7 @@ index a0bf47f..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1553,7 +1553,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1702,7 +1702,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1722,7 +1722,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1782,7 +1782,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1802,7 +1802,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1821,7 +1821,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1849,7 +1849,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1921,7 +1921,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1978,7 +1978,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2009,7 +2009,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2074,7 +2074,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2084,7 +2084,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.5-next.1..0.5.21.diff b/diffs/0.5.5-next.1..0.5.21.diff
index 4546458b..71bb28f8 100644
--- a/diffs/0.5.5-next.1..0.5.21.diff
+++ b/diffs/0.5.5-next.1..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 4b066b4..6dd6571 100644
+index 4b066b4b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index 4b066b4..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index e0e2385..d5f824e 100644
+index e0e2385c..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1089,7 +1089,7 @@ index e0e2385..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1101,7 +1101,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1119,7 +1119,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1163,7 +1163,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 7746997..e9aef99 100644
+index 77469976..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,55 +13,45 @@
@@ -1257,7 +1257,7 @@ index 7746997..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1273,7 +1273,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1292,7 +1292,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1322,7 +1322,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1412,7 +1412,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1424,7 +1424,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index d065e4a..6a4c257 100644
+index d065e4a2..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1474,7 +1474,7 @@ index d065e4a..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 857c4e4..7c1a20c 100644
+index 857c4e4b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1540,7 +1540,7 @@ index 857c4e4..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1553,7 +1553,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1702,7 +1702,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1722,7 +1722,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1782,7 +1782,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1802,7 +1802,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1821,7 +1821,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1849,7 +1849,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1921,7 +1921,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1978,7 +1978,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2009,7 +2009,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2074,7 +2074,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2084,7 +2084,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.5-next.2..0.5.21.diff b/diffs/0.5.5-next.2..0.5.21.diff
index 6a826fec..6fc3e2a3 100644
--- a/diffs/0.5.5-next.2..0.5.21.diff
+++ b/diffs/0.5.5-next.2..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index ec3742e..6dd6571 100644
+index ec3742e0..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index ec3742e..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index d76cc93..d5f824e 100644
+index d76cc93b..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1089,7 +1089,7 @@ index d76cc93..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1101,7 +1101,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1119,7 +1119,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1131,7 +1131,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1163,7 +1163,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index a06e5c1..e9aef99 100644
+index a06e5c14..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1256,7 +1256,7 @@ index a06e5c1..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1272,7 +1272,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1291,7 +1291,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1321,7 +1321,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1411,7 +1411,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1423,7 +1423,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a60fee7..6a4c257 100644
+index a60fee7a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1472,7 +1472,7 @@ index a60fee7..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e200431..7c1a20c 100644
+index e2004312..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1538,7 +1538,7 @@ index e200431..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1551,7 +1551,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1700,7 +1700,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1720,7 +1720,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1780,7 +1780,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1800,7 +1800,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1819,7 +1819,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1847,7 +1847,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1919,7 +1919,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1976,7 +1976,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2007,7 +2007,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2072,7 +2072,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2082,7 +2082,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.5-next.3..0.5.21.diff b/diffs/0.5.5-next.3..0.5.21.diff
index 9c902459..9e0025e2 100644
--- a/diffs/0.5.5-next.3..0.5.21.diff
+++ b/diffs/0.5.5-next.3..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 43d757b..6dd6571 100644
+index 43d757b3..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index 43d757b..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index b4db57a..d5f824e 100644
+index b4db57a0..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1088,7 +1088,7 @@ index b4db57a..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1100,7 +1100,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1118,7 +1118,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1162,7 +1162,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index 818fa9b..e9aef99 100644
+index 818fa9b7..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1255,7 +1255,7 @@ index 818fa9b..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1271,7 +1271,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1290,7 +1290,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1320,7 +1320,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1410,7 +1410,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1422,7 +1422,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a60fee7..6a4c257 100644
+index a60fee7a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1471,7 +1471,7 @@ index a60fee7..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 2177327..7c1a20c 100644
+index 21773270..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1537,7 +1537,7 @@ index 2177327..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1550,7 +1550,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 1c08288..f57d4c5 100644
+index 1c082886..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1699,7 +1699,7 @@ index 1c08288..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1719,7 +1719,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1779,7 +1779,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1799,7 +1799,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1818,7 +1818,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1846,7 +1846,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1918,7 +1918,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1975,7 +1975,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2006,7 +2006,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2071,7 +2071,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2081,7 +2081,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.5..0.5.21.diff b/diffs/0.5.5..0.5.21.diff
index e37b951d..2c73187d 100644
--- a/diffs/0.5.5..0.5.21.diff
+++ b/diffs/0.5.5..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index d452ac2..77ad56d 100644
+index d452ac29..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -21,7 +21,7 @@ index d452ac2..77ad56d 100644
+e2e-test-report/
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -952,7 +952,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -960,7 +960,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -996,7 +996,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1022,7 +1022,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index bdfd297..6dd6571 100644
+index bdfd297d..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1032,7 +1032,7 @@ index bdfd297..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1043,7 +1043,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 99520c1..d5f824e 100644
+index 99520c11..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,6 @@
@@ -1088,7 +1088,7 @@ index 99520c1..d5f824e 100644
}
diff --git a/packages/app/cypress.json b/packages/app/cypress.json
deleted file mode 100644
-index 0cb845a..0000000
+index 0cb845a8..00000000
--- a/packages/app/cypress.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1100,7 +1100,7 @@ index 0cb845a..0000000
-}
diff --git a/packages/app/cypress/.eslintrc.json b/packages/app/cypress/.eslintrc.json
deleted file mode 100644
-index b903ff2..0000000
+index b903ff25..00000000
--- a/packages/app/cypress/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
@@ -1118,7 +1118,7 @@ index b903ff2..0000000
-}
diff --git a/packages/app/cypress/integration/app.js b/packages/app/cypress/integration/app.js
deleted file mode 100644
-index 43fb2e3..0000000
+index 43fb2e32..00000000
--- a/packages/app/cypress/integration/app.js
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1130,7 +1130,7 @@ index 43fb2e3..0000000
-});
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
new file mode 100644
-index 0000000..839ff88
+index 00000000..839ff883
--- /dev/null
+++ b/packages/app/e2e-tests/app.test.ts
@@ -0,0 +1,27 @@
@@ -1162,7 +1162,7 @@ index 0000000..839ff88
+ await expect(page.getByText('My Company Catalog')).toBeVisible();
+});
diff --git a/packages/app/package.json b/packages/app/package.json
-index f8ec459..e9aef99 100644
+index f8ec459f..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -13,54 +13,45 @@
@@ -1255,7 +1255,7 @@ index f8ec459..e9aef99 100644
+ "cross-env": "^7.0.0"
},
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index c6083b3..18da7c4 100644
+index c6083b3d..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,5 +8,4 @@
@@ -1271,7 +1271,7 @@ index c6083b3..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1290,7 +1290,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1320,7 +1320,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1410,7 +1410,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1422,7 +1422,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index a60fee7..6a4c257 100644
+index a60fee7a..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1471,7 +1471,7 @@ index a60fee7..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 6734182..7c1a20c 100644
+index 67341823..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1537,7 +1537,7 @@ index 6734182..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1550,7 +1550,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1699,7 +1699,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1719,7 +1719,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1779,7 +1779,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1799,7 +1799,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1818,7 +1818,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1846,7 +1846,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1918,7 +1918,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1975,7 +1975,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -2006,7 +2006,7 @@ index 9cd2c74..0000000
-};
diff --git a/playwright.config.ts b/playwright.config.ts
new file mode 100644
-index 0000000..733be13
+index 00000000..733be130
--- /dev/null
+++ b/playwright.config.ts
@@ -0,0 +1,60 @@
@@ -2071,7 +2071,7 @@ index 0000000..733be13
+ projects: generateProjects(), // Find all packages with e2e-test folders
+});
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -2081,7 +2081,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.6-next.0..0.5.21.diff b/diffs/0.5.6-next.0..0.5.21.diff
index 1698438b..101003bc 100644
--- a/diffs/0.5.6-next.0..0.5.21.diff
+++ b/diffs/0.5.6-next.0..0.5.21.diff
@@ -1,12 +1,12 @@
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
-index 0000000..e5b1994
+index 00000000..e5b19947
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+playwright.config.ts
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -16,7 +16,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -947,7 +947,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -955,7 +955,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -991,7 +991,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1017,7 +1017,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index eacd945..6dd6571 100644
+index eacd945b..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1027,7 +1027,7 @@ index eacd945..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1038,7 +1038,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 92648d7..d5f824e 100644
+index 92648d7f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1075,7 +1075,7 @@ index 92648d7..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1086,7 +1086,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index af70e49..e9aef99 100644
+index af70e499..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1165,7 +1165,7 @@ index af70e49..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1179,7 +1179,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1198,7 +1198,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1228,7 +1228,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1318,7 +1318,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1330,7 +1330,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1379,7 +1379,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index c3c1b52..7c1a20c 100644
+index c3c1b52e..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1445,7 +1445,7 @@ index c3c1b52..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1458,7 +1458,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1607,7 +1607,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1627,7 +1627,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1687,7 +1687,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1707,7 +1707,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1726,7 +1726,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1754,7 +1754,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1826,7 +1826,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1883,7 +1883,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1913,7 +1913,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1922,7 +1922,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1932,7 +1932,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.6-next.1..0.5.21.diff b/diffs/0.5.6-next.1..0.5.21.diff
index b3a2fcd5..346fb82b 100644
--- a/diffs/0.5.6-next.1..0.5.21.diff
+++ b/diffs/0.5.6-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 4cbcd71..6dd6571 100644
+index 4cbcd710..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 4cbcd71..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index 9ac7005..d5f824e 100644
+index 9ac70058..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 9ac7005..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8684508..e9aef99 100644
+index 86845086..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 8684508..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 52c9d20..7c1a20c 100644
+index 52c9d20a..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1438,7 +1438,7 @@ index 52c9d20..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1451,7 +1451,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1600,7 +1600,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1620,7 +1620,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1680,7 +1680,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1700,7 +1700,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1719,7 +1719,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1747,7 +1747,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1819,7 +1819,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1876,7 +1876,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1906,7 +1906,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1915,7 +1915,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1925,7 +1925,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.6-next.2..0.5.21.diff b/diffs/0.5.6-next.2..0.5.21.diff
index 1e63bdc2..ae3e55cd 100644
--- a/diffs/0.5.6-next.2..0.5.21.diff
+++ b/diffs/0.5.6-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 58a3a2b..6dd6571 100644
+index 58a3a2b2..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 58a3a2b..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 322929d..0000000
+index 322929db..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 322929d..0000000
- "version": "0.1.0"
-}
diff --git a/package.json b/package.json
-index c66be6b..d5f824e 100644
+index c66be6ba..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index c66be6b..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 8b3df52..e9aef99 100644
+index 8b3df526..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 8b3df52..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a3f1b3e..7c1a20c 100644
+index a3f1b3e0..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1438,7 +1438,7 @@ index a3f1b3e..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1451,7 +1451,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1600,7 +1600,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1620,7 +1620,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1680,7 +1680,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1700,7 +1700,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1719,7 +1719,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1747,7 +1747,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1819,7 +1819,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1876,7 +1876,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1906,7 +1906,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1915,7 +1915,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1925,7 +1925,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.6..0.5.21.diff b/diffs/0.5.6..0.5.21.diff
index 0690bccc..023ba063 100644
--- a/diffs/0.5.6..0.5.21.diff
+++ b/diffs/0.5.6..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 24df398..6dd6571 100644
+index 24df3989..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 24df398..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 5ee8997..d5f824e 100644
+index 5ee8997f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 5ee8997..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index ca6a62c..e9aef99 100644
+index ca6a62c6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index ca6a62c..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 7771513..7c1a20c 100644
+index 77715130..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1438,7 +1438,7 @@ index 7771513..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1451,7 +1451,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1600,7 +1600,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1620,7 +1620,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1680,7 +1680,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1700,7 +1700,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1719,7 +1719,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1747,7 +1747,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1819,7 +1819,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1876,7 +1876,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1906,7 +1906,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1915,7 +1915,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1925,7 +1925,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.7-next.0..0.5.21.diff b/diffs/0.5.7-next.0..0.5.21.diff
index b2b6ae28..5a4f5c6c 100644
--- a/diffs/0.5.7-next.0..0.5.21.diff
+++ b/diffs/0.5.7-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 7914b77..6dd6571 100644
+index 7914b770..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 7914b77..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 90f40d0..d5f824e 100644
+index 90f40d0a..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 90f40d0..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index e2080a9..e9aef99 100644
+index e2080a9b..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index e2080a9..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 481fee0..7c1a20c 100644
+index 481fee0c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1438,7 +1438,7 @@ index 481fee0..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1451,7 +1451,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1600,7 +1600,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1620,7 +1620,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1680,7 +1680,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1700,7 +1700,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1719,7 +1719,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1747,7 +1747,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1819,7 +1819,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1876,7 +1876,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1906,7 +1906,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1915,7 +1915,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1925,7 +1925,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.7-next.1..0.5.21.diff b/diffs/0.5.7-next.1..0.5.21.diff
index 202ae8f6..e16d19b0 100644
--- a/diffs/0.5.7-next.1..0.5.21.diff
+++ b/diffs/0.5.7-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 707af29..6dd6571 100644
+index 707af297..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 707af29..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 2364da8..d5f824e 100644
+index 2364da87..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 2364da8..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 2100405..e9aef99 100644
+index 21004058..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 2100405..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index f224eaf..7c1a20c 100644
+index f224eafc..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,33 +18,32 @@
@@ -1438,7 +1438,7 @@ index f224eaf..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1451,7 +1451,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1600,7 +1600,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1620,7 +1620,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1680,7 +1680,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 876cb6b..0000000
+index 876cb6bc..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1700,7 +1700,7 @@ index 876cb6b..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1719,7 +1719,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1747,7 +1747,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index e9469dc..0000000
+index e9469dcc..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1819,7 +1819,7 @@ index e9469dc..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1876,7 +1876,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1906,7 +1906,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1915,7 +1915,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1925,7 +1925,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.7-next.2..0.5.21.diff b/diffs/0.5.7-next.2..0.5.21.diff
index 718e3e5c..16bcbc5f 100644
--- a/diffs/0.5.7-next.2..0.5.21.diff
+++ b/diffs/0.5.7-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 93b9fa0..6dd6571 100644
+index 93b9fa02..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 93b9fa0..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 2364da8..d5f824e 100644
+index 2364da87..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 2364da8..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index aab8d53..e9aef99 100644
+index aab8d53c..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index aab8d53..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 2131355..7c1a20c 100644
+index 2131355b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1441,7 +1441,7 @@ index 2131355..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1454,7 +1454,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1603,7 +1603,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1623,7 +1623,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1683,7 +1683,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1703,7 +1703,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1722,7 +1722,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1750,7 +1750,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1822,7 +1822,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1879,7 +1879,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1909,7 +1909,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1918,7 +1918,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1928,7 +1928,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.7..0.5.21.diff b/diffs/0.5.7..0.5.21.diff
index 71b816be..775c2c3d 100644
--- a/diffs/0.5.7..0.5.21.diff
+++ b/diffs/0.5.7..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 498b8c1..6dd6571 100644
+index 498b8c10..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 498b8c1..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index f9cb075..d5f824e 100644
+index f9cb075f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index f9cb075..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 16cbc8a..e9aef99 100644
+index 16cbc8a5..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 16cbc8a..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index a88fced..7c1a20c 100644
+index a88fced1..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1441,7 +1441,7 @@ index a88fced..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1454,7 +1454,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1603,7 +1603,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1623,7 +1623,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1683,7 +1683,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1703,7 +1703,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1722,7 +1722,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1750,7 +1750,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1822,7 +1822,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1879,7 +1879,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1909,7 +1909,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1918,7 +1918,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1928,7 +1928,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8-next.0..0.5.21.diff b/diffs/0.5.8-next.0..0.5.21.diff
index 04d62c54..7eaa3cd0 100644
--- a/diffs/0.5.8-next.0..0.5.21.diff
+++ b/diffs/0.5.8-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index e65d105..6dd6571 100644
+index e65d1052..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index e65d105..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 8a0167d..d5f824e 100644
+index 8a0167dd..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 8a0167d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index cfb5b9f..e9aef99 100644
+index cfb5b9fd..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index cfb5b9f..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 420aae0..7c1a20c 100644
+index 420aae05..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1441,7 +1441,7 @@ index 420aae0..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1454,7 +1454,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1603,7 +1603,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1623,7 +1623,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1683,7 +1683,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1703,7 +1703,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1722,7 +1722,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1750,7 +1750,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1822,7 +1822,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1879,7 +1879,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1909,7 +1909,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1918,7 +1918,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1928,7 +1928,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8-next.1..0.5.21.diff b/diffs/0.5.8-next.1..0.5.21.diff
index b4b2896c..68bbe8eb 100644
--- a/diffs/0.5.8-next.1..0.5.21.diff
+++ b/diffs/0.5.8-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 304b7cc..6dd6571 100644
+index 304b7cca..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 304b7cc..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 8a0167d..d5f824e 100644
+index 8a0167dd..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 8a0167d..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 510f8f7..e9aef99 100644
+index 510f8f73..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 510f8f7..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 420aae0..7c1a20c 100644
+index 420aae05..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1441,7 +1441,7 @@ index 420aae0..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1454,7 +1454,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1603,7 +1603,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1623,7 +1623,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1683,7 +1683,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1703,7 +1703,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1722,7 +1722,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1750,7 +1750,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1822,7 +1822,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1879,7 +1879,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1909,7 +1909,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1918,7 +1918,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1928,7 +1928,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8-next.2..0.5.21.diff b/diffs/0.5.8-next.2..0.5.21.diff
index 1a5b73b6..807ad51e 100644
--- a/diffs/0.5.8-next.2..0.5.21.diff
+++ b/diffs/0.5.8-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b7f59bb..6dd6571 100644
+index b7f59bba..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index b7f59bb..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 552c365..d5f824e 100644
+index 552c365d..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 552c365..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index d1fcbd3..e9aef99 100644
+index d1fcbd3f..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index d1fcbd3..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 6722ea2..6164c76 100644
+index 6722ea2d..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1311,7 +1311,7 @@ index 6722ea2..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1323,7 +1323,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1372,7 +1372,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index aeb8267..7c1a20c 100644
+index aeb82676..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1441,7 +1441,7 @@ index aeb8267..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1454,7 +1454,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1603,7 +1603,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1623,7 +1623,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1683,7 +1683,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1703,7 +1703,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1722,7 +1722,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1750,7 +1750,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1822,7 +1822,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1879,7 +1879,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1909,7 +1909,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1918,7 +1918,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1928,7 +1928,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8-next.3..0.5.21.diff b/diffs/0.5.8-next.3..0.5.21.diff
index 7a430cdb..48a42051 100644
--- a/diffs/0.5.8-next.3..0.5.21.diff
+++ b/diffs/0.5.8-next.3..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 2755c00..6dd6571 100644
+index 2755c000..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 2755c00..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 31cbc6e..d5f824e 100644
+index 31cbc6e4..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 31cbc6e..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index a1bb41c..e9aef99 100644
+index a1bb41c6..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index a1bb41c..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 449a6f8..7c1a20c 100644
+index 449a6f82..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index 449a6f8..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8-next.4..0.5.21.diff b/diffs/0.5.8-next.4..0.5.21.diff
index b5ea076f..14249f6e 100644
--- a/diffs/0.5.8-next.4..0.5.21.diff
+++ b/diffs/0.5.8-next.4..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index a98ca50..6dd6571 100644
+index a98ca50f..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index a98ca50..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 6681344..d5f824e 100644
+index 6681344f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 6681344..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 751584d..e9aef99 100644
+index 751584d7..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 751584d..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5cfae5d..7c1a20c 100644
+index 5cfae5d0..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index 5cfae5d..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.8..0.5.21.diff b/diffs/0.5.8..0.5.21.diff
index f7f62ec9..18bc0812 100644
--- a/diffs/0.5.8..0.5.21.diff
+++ b/diffs/0.5.8..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 91037bd..6dd6571 100644
+index 91037bd1..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 91037bd..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 9300ca0..d5f824e 100644
+index 9300ca0f..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 9300ca0..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index fa53fd0..e9aef99 100644
+index fa53fd01..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index fa53fd0..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e2d21bf..7c1a20c 100644
+index e2d21bf4..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index e2d21bf..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.9-next.0..0.5.21.diff b/diffs/0.5.9-next.0..0.5.21.diff
index 0f464eba..fb9bc8d1 100644
--- a/diffs/0.5.9-next.0..0.5.21.diff
+++ b/diffs/0.5.9-next.0..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index 965aefc..6dd6571 100644
+index 965aefcf..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index 965aefc..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 934baec..d5f824e 100644
+index 934baec0..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 934baec..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 35ca070..e9aef99 100644
+index 35ca0709..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 35ca070..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index cedfbb6..7c1a20c 100644
+index cedfbb6c..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index cedfbb6..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.9-next.1..0.5.21.diff b/diffs/0.5.9-next.1..0.5.21.diff
index b6358f51..e41b7ac2 100644
--- a/diffs/0.5.9-next.1..0.5.21.diff
+++ b/diffs/0.5.9-next.1..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index b6cefbf..6dd6571 100644
+index b6cefbff..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index b6cefbf..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index b088dc3..d5f824e 100644
+index b088dc3c..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index b088dc3..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 67917ff..e9aef99 100644
+index 67917ffb..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 67917ff..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 502f4b2..7c1a20c 100644
+index 502f4b27..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index 502f4b2..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.9-next.2..0.5.21.diff b/diffs/0.5.9-next.2..0.5.21.diff
index 0d6f4f7e..d69ff8fc 100644
--- a/diffs/0.5.9-next.2..0.5.21.diff
+++ b/diffs/0.5.9-next.2..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index aabf673..6dd6571 100644
+index aabf6734..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index aabf673..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index b088dc3..d5f824e 100644
+index b088dc3c..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index b088dc3..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 99ee945..e9aef99 100644
+index 99ee9454..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 99ee945..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index e22801a..7c1a20c 100644
+index e22801ab..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index e22801a..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/diffs/0.5.9..0.5.21.diff b/diffs/0.5.9..0.5.21.diff
index f297c676..c8d345fd 100644
--- a/diffs/0.5.9..0.5.21.diff
+++ b/diffs/0.5.9..0.5.21.diff
@@ -1,5 +1,5 @@
diff --git a/.gitignore b/.gitignore
-index fbf8139..77ad56d 100644
+index fbf81390..77ad56d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,3 @@ node_modules/
@@ -9,7 +9,7 @@ index fbf8139..77ad56d 100644
.pnp.*
diff --git a/.yarn/releases/yarn-4.4.1.cjs b/.yarn/releases/yarn-4.4.1.cjs
new file mode 100644
-index 0000000..e94c2cb
+index 00000000..e94c2cba
--- /dev/null
+++ b/.yarn/releases/yarn-4.4.1.cjs
@@ -0,0 +1,925 @@
@@ -940,7 +940,7 @@ index 0000000..e94c2cb
+*/
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
-index 0000000..48f4a8f
+index 00000000..48f4a8f8
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1,3 @@
@@ -948,7 +948,7 @@ index 0000000..48f4a8f
+
+yarnPath: .yarn/releases/yarn-4.4.1.cjs
diff --git a/app-config.production.yaml b/app-config.production.yaml
-index 8f0751c..5d426f5 100644
+index 8f0751cd..5d426f53 100644
--- a/app-config.production.yaml
+++ b/app-config.production.yaml
@@ -15,3 +15,3 @@ backend:
@@ -984,7 +984,7 @@ index 8f0751c..5d426f5 100644
+ rules:
+ - allow: [User, Group]
diff --git a/app-config.yaml b/app-config.yaml
-index 08d2abf..ca52ec5 100644
+index 08d2abff..ca52ec53 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -38,3 +38,3 @@ integrations:
@@ -1010,7 +1010,7 @@ index 08d2abf..ca52ec5 100644
+ # setting this to `false` will disable permissions
+ enabled: true
diff --git a/backstage.json b/backstage.json
-index c1c3a17..6dd6571 100644
+index c1c3a170..6dd6571b 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
@@ -1020,7 +1020,7 @@ index c1c3a17..6dd6571 100644
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
-index 529a62f..0000000
+index 529a62fe..00000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
@@ -1031,7 +1031,7 @@ index 529a62f..0000000
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
-index 5888a62..d5f824e 100644
+index 5888a627..d5f824ec 100644
--- a/package.json
+++ b/package.json
@@ -8,3 +8,3 @@
@@ -1068,7 +1068,7 @@ index 5888a62..d5f824e 100644
+ "packageManager": "yarn@4.4.1"
}
diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts
-index d45bc0d..839ff88 100644
+index d45bc0db..839ff883 100644
--- a/packages/app/e2e-tests/app.test.ts
+++ b/packages/app/e2e-tests/app.test.ts
@@ -21,2 +21,6 @@ test('App should render the welcome page', async ({ page }) => {
@@ -1079,7 +1079,7 @@ index d45bc0d..839ff88 100644
+
await expect(page.getByText('My Company Catalog')).toBeVisible();
diff --git a/packages/app/package.json b/packages/app/package.json
-index 20f619f..e9aef99 100644
+index 20f619f5..e9aef998 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,43 +16,40 @@
@@ -1158,7 +1158,7 @@ index 20f619f..e9aef99 100644
- "@testing-library/dom": "^8.0.0",
"@types/react-dom": "*",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
-index fc758ee..18da7c4 100644
+index fc758eee..18da7c47 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -8,3 +8,3 @@
@@ -1172,7 +1172,7 @@ index fc758ee..18da7c4 100644
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx
-index b94cac7..ec8ba1d 100644
+index b94cac73..ec8ba1d7 100644
--- a/packages/app/src/App.test.tsx
+++ b/packages/app/src/App.test.tsx
@@ -1,3 +1,3 @@
@@ -1191,7 +1191,7 @@ index b94cac7..ec8ba1d 100644
+ });
});
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
-index 8d62f29..e24c468 100644
+index 8d62f29c..e24c4689 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -15,3 +15,2 @@ import { orgPlugin } from '@backstage/plugin-org';
@@ -1221,7 +1221,7 @@ index 8d62f29..e24c468 100644
- />
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
-index 7c6a71e..6164c76 100644
+index 7c6a71e0..6164c760 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -30,6 +30,2 @@ import {
@@ -1301,7 +1301,7 @@ index 7c6a71e..6164c76 100644
+
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
-index b16aaf7..d875c77 100644
+index b16aaf7c..d875c774 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -2,5 +2,5 @@ import '@backstage/cli/asset-types';
@@ -1313,7 +1313,7 @@ index b16aaf7..d875c77 100644
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.createRoot(document.getElementById('root')!).render();
diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile
-index 18548e9..6a4c257 100644
+index 18548e93..6a4c257a 100644
--- a/packages/backend/Dockerfile
+++ b/packages/backend/Dockerfile
@@ -5,3 +5,3 @@
@@ -1362,7 +1362,7 @@ index 18548e9..6a4c257 100644
+COPY --chown=node:node examples ./examples
diff --git a/packages/backend/package.json b/packages/backend/package.json
-index 5492486..7c1a20c 100644
+index 5492486b..7c1a20c8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,37 +18,32 @@
@@ -1431,7 +1431,7 @@ index 5492486..7c1a20c 100644
},
diff --git a/packages/backend/src/index.test.ts b/packages/backend/src/index.test.ts
deleted file mode 100644
-index 7814b8c..0000000
+index 7814b8ca..00000000
--- a/packages/backend/src/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
@@ -1444,7 +1444,7 @@ index 7814b8c..0000000
- });
-});
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
-index 04c4ff9..f57d4c5 100644
+index 04c4ff93..f57d4c5f 100644
--- a/packages/backend/src/index.ts
+++ b/packages/backend/src/index.ts
@@ -8,108 +8,47 @@
@@ -1593,7 +1593,7 @@ index 04c4ff9..f57d4c5 100644
+backend.start();
diff --git a/packages/backend/src/plugins/app.ts b/packages/backend/src/plugins/app.ts
deleted file mode 100644
-index 7c37f68..0000000
+index 7c37f684..00000000
--- a/packages/backend/src/plugins/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1613,7 +1613,7 @@ index 7c37f68..0000000
-}
diff --git a/packages/backend/src/plugins/auth.ts b/packages/backend/src/plugins/auth.ts
deleted file mode 100644
-index 77eb6aa..0000000
+index 77eb6aae..00000000
--- a/packages/backend/src/plugins/auth.ts
+++ /dev/null
@@ -1,54 +0,0 @@
@@ -1673,7 +1673,7 @@ index 77eb6aa..0000000
-}
diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts
deleted file mode 100644
-index 4decdca..0000000
+index 4decdca1..00000000
--- a/packages/backend/src/plugins/catalog.ts
+++ /dev/null
@@ -1,14 +0,0 @@
@@ -1693,7 +1693,7 @@ index 4decdca..0000000
-}
diff --git a/packages/backend/src/plugins/proxy.ts b/packages/backend/src/plugins/proxy.ts
deleted file mode 100644
-index 54ec393..0000000
+index 54ec3937..00000000
--- a/packages/backend/src/plugins/proxy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
@@ -1712,7 +1712,7 @@ index 54ec393..0000000
-}
diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts
deleted file mode 100644
-index a12fee2..0000000
+index a12fee22..00000000
--- a/packages/backend/src/plugins/scaffolder.ts
+++ /dev/null
@@ -1,22 +0,0 @@
@@ -1740,7 +1740,7 @@ index a12fee2..0000000
-}
diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts
deleted file mode 100644
-index 467ac60..0000000
+index 467ac60a..00000000
--- a/packages/backend/src/plugins/search.ts
+++ /dev/null
@@ -1,66 +0,0 @@
@@ -1812,7 +1812,7 @@ index 467ac60..0000000
-}
diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts
deleted file mode 100644
-index be8bb0c..0000000
+index be8bb0c0..00000000
--- a/packages/backend/src/plugins/techdocs.ts
+++ /dev/null
@@ -1,51 +0,0 @@
@@ -1869,7 +1869,7 @@ index be8bb0c..0000000
-}
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
deleted file mode 100644
-index 9cd2c74..0000000
+index 9cd2c74b..00000000
--- a/packages/backend/src/types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
@@ -1899,7 +1899,7 @@ index 9cd2c74..0000000
- identity: IdentityApi;
-};
diff --git a/playwright.config.ts b/playwright.config.ts
-index 37c7fb1..733be13 100644
+index 37c7fb14..733be130 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -34,3 +34,3 @@ export default defineConfig({
@@ -1908,7 +1908,7 @@ index 37c7fb1..733be13 100644
+ command: 'yarn dev',
port: 3000,
diff --git a/tsconfig.json b/tsconfig.json
-index ba3f901..2aa745d 100644
+index ba3f9017..2aa745d3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,3 +4,5 @@
@@ -1918,7 +1918,7 @@ index ba3f901..2aa745d 100644
+ "plugins/*/config.d.ts",
"plugins/*/dev",
diff --git a/yarn.lock b/yarn.lock
-index 5ad7fe2..c37fc61 100644
+index 5ad7fe23..c37fc613 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1 +1,3 @@
diff --git a/releases-yarn-plugin.json b/releases-yarn-plugin.json
index 6259cdb8..b7f092fa 100644
--- a/releases-yarn-plugin.json
+++ b/releases-yarn-plugin.json
@@ -34,5 +34,8 @@
},
"1.33.0-next.1": {
"createApp": "0.5.22-next.1"
+ },
+ "1.32.4": {
+ "createApp": "0.5.21"
}
}
diff --git a/releases.json b/releases.json
index dae6007e..3789ad96 100644
--- a/releases.json
+++ b/releases.json
@@ -700,5 +700,8 @@
},
"1.33.0-next.1": {
"createApp": "0.5.22-next.1"
+ },
+ "1.32.4": {
+ "createApp": "0.5.21"
}
}