Merge remote-tracking branch 'origin/master' into shutdown-tasks-on-restart

This commit is contained in:
Bogdan Nechyporenko
2023-11-02 13:41:34 +01:00
625 changed files with 8380 additions and 1486 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-api-docs': minor
---
Replace GraphiQL playground with DocExplorer
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-gcp': patch
---
Allow integration with kubernetes dashboard
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-kubernetes-common': patch
---
Allow storing dashboard parameters for kubernetes in catalog
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
'@backstage/integration': patch
'@backstage/plugin-auth-backend': patch
---
JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Internal refactor to avoid a null pointer problem
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs-backend': patch
---
Fix potential memory leak by not creating a build log transport if not given via `RouterOptions`.
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Make sure types exported by other `kubernetes` plugins in the past are exported again after the creation
of the react package.
Some types have been moved to this new package but the export was missing, so they were not available anymore for developers.
+26
View File
@@ -257,10 +257,14 @@
"@backstage/plugin-vault-node": "0.0.0"
},
"changesets": [
"blue-bags-warn",
"chatty-cobras-cheer",
"chilled-knives-rule",
"chilly-books-sneeze",
"chilly-terms-behave",
"clever-houses-scream",
"create-app-1698763033",
"curvy-carrots-thank",
"dirty-ducks-behave",
"dry-days-invite",
"eighty-chairs-camp",
@@ -271,19 +275,24 @@
"fluffy-years-shake",
"four-files-behave",
"four-pears-swim",
"fresh-camels-give",
"fresh-crews-promise",
"fresh-schools-thank",
"gentle-pears-camp",
"gentle-pumpkins-carry",
"giant-cars-walk",
"giant-cycles-end",
"good-plums-confess",
"great-baboons-allow",
"healthy-shirts-fold",
"heavy-experts-accept",
"heavy-rings-play",
"hip-moose-boil",
"hip-mugs-camp",
"hungry-paws-dress",
"hungry-radios-play",
"large-forks-arrive",
"late-forks-fetch",
"lazy-hotels-wait",
"long-turkeys-argue",
"loud-ghosts-deny",
@@ -297,43 +306,60 @@
"ninety-numbers-study",
"old-apricots-taste",
"old-chairs-switch",
"old-coats-doubt",
"olive-paws-divide",
"orange-planes-crash",
"plenty-buckets-float",
"plenty-tigers-argue",
"poor-seahorses-rush",
"popular-bikes-do",
"pretty-swans-worry",
"quick-pumpkins-shave",
"quick-roses-move",
"real-apes-build",
"real-carrots-brake",
"real-jars-yawn",
"red-beers-roll",
"red-yaks-press",
"renovate-dacadfa",
"rich-pugs-chew",
"rude-penguins-press",
"rude-tomatoes-itch",
"shaggy-beers-collect",
"shaggy-buses-beg",
"sharp-chefs-attend",
"sharp-falcons-clean",
"shiny-geese-watch",
"silent-chairs-smoke",
"silver-kiwis-float",
"six-books-arrive",
"sixty-tips-argue",
"small-buckets-roll",
"smart-dancers-watch",
"sour-toes-joke",
"stale-rice-count",
"strange-gifts-try",
"strange-queens-deliver",
"strong-taxis-wait",
"sweet-buckets-fry",
"sweet-countries-share",
"swift-badgers-hide",
"swift-mice-care",
"tall-colts-roll",
"tame-spies-hunt",
"tender-lies-wonder",
"tender-maps-type",
"thick-dolphins-boil",
"thirty-stingrays-grin",
"three-moles-mix",
"tidy-camels-boil",
"tidy-planets-trade",
"tricky-cups-hammer",
"tricky-vans-behave",
"two-jars-melt",
"unlucky-houses-end",
"violet-lamps-appear",
"weak-zebras-cover",
"wet-cows-brake",
"wicked-ties-knock",
"wild-cows-watch",
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Reverting the `MissingAnnotationEmptyState` component due to cyclical dependency. This component is now deprecated, please use the import from `@backstage/plugin-catalog-react` instead to use the new functionality
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
Updated dependency `@types/pluralize` to `^0.0.32`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Title and description in RepoUrlPicker are now correctly displayed.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Fix for app node output IDs not being serialized correctly.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': minor
---
Extensions now return their output from the factory function rather than calling `bind(...)`.
+23
View File
@@ -0,0 +1,23 @@
---
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-microsoft-calendar': patch
'@backstage/plugin-scaffolder-react': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-gcalendar': patch
'@backstage/plugin-org-react': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-xcmetrics': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-playlist': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-bazaar': patch
'@backstage/plugin-search': patch
'@backstage/plugin-org': patch
---
Internal theme type updates
+32
View File
@@ -0,0 +1,32 @@
---
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-kubernetes-cluster': patch
'@backstage/plugin-newrelic-dashboard': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-code-coverage': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-azure-sites': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-puppetdb': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-kafka': patch
'@backstage/plugin-nomad': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-gocd': patch
'@backstage/plugin-adr': patch
---
Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/frontend-app-api': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-search-react': patch
---
Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Internal refactor to rename the app graph to app tree
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add examples for `github:deployKey:create` scaffolder action & improve related tests
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-scaffolder-backend': patch
'@backstage/plugin-scaffolder-common': patch
'@backstage/plugin-scaffolder-react': patch
---
Make it possible to define control buttons text (Back, Create, Review) per template
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Export `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react`
@@ -1,35 +0,0 @@
version: '3'
x-uffizzi:
ingress:
service: backstage
port: 7007
services:
backstage:
image: '${BACKSTAGE_IMAGE}'
environment:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: postgres
POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv
REF_NAME: ${GITHUB_SHA}
NODE_ENV: production
deploy:
resources:
limits:
memory: 500M
entrypoint: '/bin/sh'
command:
- '-c'
- "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"
db:
image: postgres
environment:
POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv
deploy:
resources:
limits:
memory: 250M
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backstage-cluster-ro
subjects:
- namespace: backstage
kind: ServiceAccount
name: backstage-service-account
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:aggregate-to-view
@@ -0,0 +1,37 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backstage
spec:
replicas: 1
selector:
matchLabels:
app: backstage
template:
metadata:
labels:
app: backstage
spec:
serviceAccountName: backstage-service-account
containers:
- name: backstage
image: backstage
command:
- /bin/sh
args:
- '-c'
- "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 7007
envFrom:
- secretRef:
name: postgres-secrets
env:
- name: POSTGRES_PORT
value: '5432'
- name: POSTGRES_HOST
value: 'postgres.default.svc.cluster.local'
- name: NODE_ENV
value: production
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: backstage
spec:
ingressClassName: uffizzi
rules:
- host: backstage.example.com
http:
paths:
- backend:
service:
name: backstage
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- backstage.example.com
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: backstage-service-account
namespace: default
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: backstage
spec:
selector:
app: backstage
ports:
- name: http
port: 80
targetPort: http
@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- backstage-deploy.yaml
- backstage-crb.yaml
- backstage-ingress.yaml
- backstage-sa.yaml
- backstage-svc.yaml
- pg-svc.yaml
- pg-deploy.yaml
- pg-secret.yaml
- pg-volume.yaml
@@ -0,0 +1,31 @@
# kubernetes/postgres.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:13.2-alpine
imagePullPolicy: 'IfNotPresent'
ports:
- containerPort: 5432
envFrom:
- secretRef:
name: postgres-secrets
volumeMounts:
- mountPath: /var/lib/postgresql
name: postgresdb
volumes:
- name: postgresdb
persistentVolumeClaim:
claimName: postgres-storage-claim
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: postgres-secrets
type: Opaque
data:
POSTGRES_USER: YmFja3N0YWdl
POSTGRES_PASSWORD: aHVudGVyMg==
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
selector:
app: postgres
ports:
- port: 5432
@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-storage-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2G
@@ -160,7 +160,10 @@ kubernetes:
type: 'multiTenant'
clusterLocatorMethods:
- type: 'config'
clusters: []
clusters:
- url: ${UFFIZZI_CLUSTER_APISERVER}
name: uffizzi
authProvider: 'serviceAccount'
kafka:
clientId: backstage
+2
View File
@@ -207,6 +207,7 @@ mailto
maintainer's
maintainership
makefile
Matomo
md
memcache
memoize
@@ -459,3 +460,4 @@ Lightsail
PR
rebasing
lookbehind
Entra
+13 -13
View File
@@ -12,7 +12,7 @@ jobs:
build-backstage:
env:
NODE_OPTIONS: --max-old-space-size=4096
UFFIZZI_URL: https://uffizzi.com
UFFIZZI_URL: https://app.uffizzi.com
name: Build PR image
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
@@ -72,14 +72,14 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
render-compose-file:
name: Render Docker Compose File
render-kustomize:
name: Render Kustomize Manifests
runs-on: ubuntu-latest
needs:
- build-backstage
outputs:
compose-file-cache-key: ${{ steps.hash.outputs.hash }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1
@@ -90,16 +90,16 @@ jobs:
uses: actions/checkout@v4.1.1
- name: Render Compose File
run: |
BACKSTAGE_IMAGE=$(echo ${{ needs.build-backstage.outputs.tags }})
export BACKSTAGE_IMAGE
# Render simple template from environment variables.
envsubst '$BACKSTAGE_IMAGE $GITHUB_SHA' < .github/uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml
cat docker-compose.rendered.yml
- name: Upload Rendered Compose File as Artifact
uses: actions/upload-artifact@v3.1.3
# update image after the build above
cd ./.github/uffizzi/k8s/manifests
kustomize edit set image backstage=${{ needs.build-backstage.outputs.tags }}
kustomize build . > manifests.rendered.yml
cat manifests.rendered.yml
- name: Upload Rendered Manifests File as Artifact
uses: actions/upload-artifact@v3
with:
name: preview-spec
path: docker-compose.rendered.yml
path: ./.github/uffizzi/k8s/manifests/manifests.rendered.yml
retention-days: 2
- name: Upload PR Event as Artifact
uses: actions/upload-artifact@v3.1.3
+159 -23
View File
@@ -8,14 +8,15 @@ on:
- completed
jobs:
cache-compose-file:
name: Cache Compose File
cache-manifests-file:
name: Cache Manifests File
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
outputs:
compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }}
manifests-cache-key: ${{ env.MANIFESTS_FILE_HASH }}
git-ref: ${{ env.GIT_REF }}
pr-number: ${{ env.PR_NUMBER }}
action: ${{ env.ACTION }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1
@@ -56,23 +57,29 @@ jobs:
cat event.json >> $GITHUB_ENV
echo -e '\nEOF' >> $GITHUB_ENV
- name: Hash Rendered Compose File
- name: Hash Rendered Manifests File
id: hash
# If the previous workflow was triggered by a PR close event, we will not have a compose file artifact.
# If the previous workflow was triggered by a PR close event, we will not have a manifests file artifact.
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
run: echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV
run: |
ls
echo "MANIFESTS_FILE_HASH=$(md5sum manifests.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV
- name: Cache Rendered Compose File
- name: Cache Manifests File
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
uses: actions/cache@v3.3.2
with:
path: docker-compose.rendered.yml
key: ${{ env.COMPOSE_FILE_HASH }}
path: manifests.rendered.yml
key: ${{ env.MANIFESTS_FILE_HASH }}
- name: Read PR Number From Event Object
id: pr
run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV
- name: Read Event Type from Event Object
id: action
run: echo "ACTION=${{ fromJSON(env.EVENT_JSON).action }}" >> $GITHUB_ENV
- name: Read Git Ref From Event Object
id: ref
run: echo "GIT_REF=${{ fromJSON(env.EVENT_JSON).pull_request.head.sha }}" >> $GITHUB_ENV
@@ -82,24 +89,153 @@ jobs:
run: |
echo "PR number: ${{ env.PR_NUMBER }}"
echo "Git Ref: ${{ env.GIT_REF }}"
echo "Compose file hash: ${{ env.COMPOSE_FILE_HASH }}"
echo "Manifests file hash: ${{ env.MANIFESTS_FILE_HASH }}"
cat event.json
deploy-uffizzi-preview:
name: Use Remote Workflow to Preview on Uffizzi
needs:
- cache-compose-file
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2
with:
# If this workflow was triggered by a PR close event, cache-key will be an empty string
# and this reusable workflow will delete the preview deployment.
compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }}
compose-file-cache-path: docker-compose.rendered.yml
git-ref: ${{ needs.cache-compose-file.outputs.git-ref }}
pr-number: ${{ needs.cache-compose-file.outputs.pr-number }}
server: https://app.uffizzi.com
permissions:
contents: read
pull-requests: write
id-token: write
name: Deploy to Uffizzi Virtual Cluster
needs:
- cache-manifests-file
if: ${{ github.event.workflow_run.conclusion == 'success' && needs.cache-manifests-file.outputs.action != 'closed' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
# Identify comment to be updated
- name: Find comment for Ephemeral Environment
uses: peter-evans/find-comment@v2
id: find-comment
with:
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
comment-author: 'github-actions[bot]'
body-includes: pr-${{ needs.cache-manifests-file.outputs.pr-number }}
direction: last
# Create/Update comment with action deployment status
- name: Create or Update Comment with Deployment Notification
id: notification
uses: peter-evans/create-or-update-comment@v2
with:
comment-id: ${{ steps.find-comment.outputs.comment-id }}
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
body: |
## Uffizzi Ephemeral Environment - Virtual Cluster
:cloud: deploying ...
:gear: Updating now by workflow run [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}).
Download the Uffizzi CLI to interact with the upcoming virtual cluster
https://docs.uffizzi.com/install
edit-mode: replace
- name: Connect to Virtual Cluster
uses: UffizziCloud/cluster-action@main
with:
cluster-name: pr-${{ needs.cache-manifests-file.outputs.pr-number }}
server: https://app.uffizzi.com
- name: Fetch cached Manifests File
id: cache
# if: ${{ contains(fromJSON('["create", "update"]'), env.UFFIZZI_ACTION) }}
uses: actions/cache@v3
with:
path: manifests.rendered.yml
key: ${{ needs.cache-manifests-file.outputs.manifests-cache-key }}
- name: Kustomize and Apply Manifests
id: prev
run: |
# Apply kustomized manifests to virtual cluster.
export KUBECONFIG=`pwd`/kubeconfig
kubectl apply -f manifests.rendered.yml --kubeconfig ./kubeconfig
# Allow uffizzi to sync the resources
sleep 10
# Get the hostnames assigned by uffizzi
export BACKSTAGE_HOST=$(kubectl get ingress backstage --kubeconfig kubeconfig -o json | jq '.spec.rules[0].host' | tr -d '"')
export UFFIZZI_CLUSTER_APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ")
# Patch backstage deployment to use UFFIZZI_URL
kubectl patch deployment backstage --kubeconfig kubeconfig -p '{"spec": {"template": {"spec": {"containers": [{"name": "backstage", "args":["-c", "APP_CONFIG_app_baseUrl='https://${BACKSTAGE_HOST}' APP_CONFIG_backend_baseUrl='https://${BACKSTAGE_HOST}' APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"], "env": [{"name": "UFFIZZI_URL", "value": "'https://${BACKSTAGE_HOST}'"}, {"name": "UFFIZZI_CLUSTER_APISERVER", "value": "'${UFFIZZI_CLUSTER_APISERVER}'"}, {"name": "GITHUB_SHA", "value": "'${GITHUB_SHA}'"}, {"name": "REF_NAME", "value": "'${{ needs.cache-manifests-file.outputs.git-ref }}'"}]}]}}}}'
if [[ ${RUNNER_DEBUG} == 1 ]]; then
kubectl get all --kubeconfig ./kubeconfig
fi
echo "backstage_url=${BACKSTAGE_HOST}" >> $GITHUB_OUTPUT
echo "Access the \`backstage\` endpoint at [\`${BACKSTAGE_HOST}\`](http://${BACKSTAGE_HOST})" >> $GITHUB_STEP_SUMMARY
- name: Create or Update Comment with Deployment URL
uses: peter-evans/create-or-update-comment@v2
with:
comment-id: ${{ steps.notification.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
## Uffizzi Ephemeral Environment - Virtual Cluster
Your cluster `pr-${{ needs.cache-manifests-file.outputs.pr-number }}` was successfully created. Learn more about [Uffizzi virtual clusters](https://docs.uffizzi.com/topics/virtual-clusters)
To connect to this cluster, follow these steps:
1. Download and install the Uffizzi CLI from https://docs.uffizzi.com/install
2. Login to Uffizzi, then select the `backstage` account and project:
```
uffizzi login
```
```
Select an account:
‣ ${{ github.event.repository.name }}
jdoe
Select a project or create a new project:
‣ ${{ github.event.repository.name }}-6783521
```
3. Update your kubeconfig: `uffizzi cluster update-kubeconfig pr-${{ needs.cache-manifests-file.outputs.pr-number }} --kubeconfig=[PATH_TO_KUBECONFIG]`
After updating your kubeconfig, you can manage your cluster with `kubectl`, `kustomize`, `helm`, and other tools that use kubeconfig files: `kubectl get namespace --kubeconfig [PATH_TO_KUBECONFIG]`
Access the `backstage` endpoint at [`https://${{ steps.prev.outputs.backstage_url }}`](https://${{ steps.prev.outputs.backstage_url }})
edit-mode: replace
delete-uffizzi-preview:
permissions:
contents: read
pull-requests: write
id-token: write
name: Delete the Uffizzi Virtual Cluster
needs:
- cache-manifests-file
if: ${{ needs.cache-manifests-file.outputs.action == 'closed' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Delete Virtual Cluster
uses: UffizziCloud/cluster-action@main
with:
cluster-name: pr-${{ needs.cache-manifests-file.outputs.pr-number }}
server: https://app.uffizzi.com
action: delete
# Identify comment to be updated
- name: Find comment for Ephemeral Environment
uses: peter-evans/find-comment@v2
id: find-comment
with:
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
comment-author: 'github-actions[bot]'
body-includes: pr-${{ needs.cache-manifests-file.outputs.pr-number }}
direction: last
- name: Update Comment with Deletion
uses: peter-evans/create-or-update-comment@v2
with:
comment-id: ${{ steps.find-comment.outputs.comment-id }}
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
body: |
Uffizzi Cluster `pr-${{ needs.cache-manifests-file.outputs.pr-number }}` was deleted.
edit-mode: replace
+1 -1
View File
@@ -51,7 +51,7 @@ jobs:
- run: yarn build-storybook
- uses: chromaui/action@723135c179d14b28039985d79da5c3d6ee1ac32e # v1
- uses: chromaui/action@c7e9d129ad2b8e728e10522270e14596473a7958 # v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
@@ -1,5 +1,5 @@
diff --git a/build/watchers/FSEventsWatcher.js b/build/watchers/FSEventsWatcher.js
index 2273a6cbd2110ddbbd1525820289c3d93ab46cac..d637a644239ae4a7db407ce779f43b4dec9a44ed 100644
index a8b59d7f382b290ed9e09593c439c17137d8fb3e..07549f187257fd568add4fcff3a6d7646c2915c1 100644
--- a/build/watchers/FSEventsWatcher.js
+++ b/build/watchers/FSEventsWatcher.js
@@ -103,7 +103,7 @@ function _interopRequireWildcard(obj, nodeInterop) {
+1 -2
View File
@@ -117,8 +117,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/
| [Pachama](https://pachama.com/) | [Aron Gates](https://github.com/agates4) | Internal Developer Portal, a catalog of all microservices, architecture documentation, and templates to generate developer resources. |
| [SEEK](https://www.seek.com.au) | [Jahred Hope](https://github.com/jahredhope) | Developer portal for developer tooling and technical documentation. |
| [Marks & Spencer](https://www.marksandspencer.com/) | [Kamal Cheriyath](https://github.com/kcheriyath) | Centralised discovery, adoption and devops automation hub for Engineering & Architecture. |
| [McKesson](https://www.mckesson.com/) | [Agnel Antony](https://github.com/aantony2) | Internal Developer Platform for developer gated CI/CD templates, technical documentation, cloud automation service catalog, etc. |
| [World Fuel Services](https://www.wfscorp.com/) | [Anirudh Kurapathi](https://github.com/anirudhkurapati), [Alex Kwon](https://github.com/alexkwon), [Lester Hernandez](https://github.com/lhernandez-wfscorp), [Avi Boru](https://github.com/aviboru), [Vardhan Annapureddy](https://github.com/harshaaws) | Internal Developer Portal, service catalog product, API's, Software Templates, tech docs and more. |
| [McKesson](https://www.mckesson.com/) | [Agnel Antony](https://github.com/aantony2) | Internal Developer Platform for developer gated CI/CD templates, technical documentation, cloud automation service catalog, etc. |
| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. |
| [Contentful](https://www.contentful.com) | [James Bourne](https://github.com/jamesmbourne) | Centralized documentation of service ownership, APIs, and documentation, and new service creation with a custom scaffolder - [full case study with Roadie](https://roadie.io/case-studies/maintaining-velocity-through-hypergrowth-contentful/). |
| [Back Market](https://www.backmarket.com) | [Sami Farhat](https://github.com/skfarhat) | Internal Developer Portal featuring catalog, tech-radar, ownership management, component creation (scaffolder) and centralized infrastructure management -- probably more to come. |
+2
View File
@@ -2,6 +2,8 @@
# [Backstage](https://backstage.io)
> 🏖️ From October 30th - November 5th, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Expect slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![CNCF Status](https://img.shields.io/badge/cncf%20status-incubation-blue.svg)](https://www.cncf.io/projects)
[![Discord](https://img.shields.io/discord/687207715902193673)](https://discord.gg/backstage-687207715902193673)
+13 -13
View File
@@ -1,18 +1,18 @@
# Using AWS Application Load Balancer with Azure Active Directory to authenticate requests
# Using AWS Application Load Balancer with Entra ID to authenticate requests
Backstage allows offloading the responsibility of authenticating users to an AWS Application Load Balancer (**ALB**), leveraging the authentication support on ALB.
This tutorial shows how to use authentication on an ALB sitting in front of Backstage.
Azure Active Directory (**AAD**) is used as identity provider but any identity provider supporting OpenID Connect (OIDC) can be used.
Entra Id (formerly Azure Active Directory) is used as identity provider but any identity provider supporting OpenID Connect (OIDC) can be used.
It is assumed an ALB is already serving traffic in front of a Backstage instance configured to serve the frontend app from the backend.
## Infrastructure setup
### AAD App
### Entra App Registration
The AAD App is used to execute the authentication flow, serve and refresh the identity token.
The App Registration is used to execute the authentication flow, serve and refresh the identity token.
Create the AAD App following the steps outlined in `Create a Microsoft App Registration in Microsoft Portal` section from the tutorial [Monorepo App Setup With Authentication][monorepo-app-setup-with-auth].
Create the App following the steps outlined in `Create a Microsoft App Registration in Microsoft Portal` section from the tutorial [Monorepo App Setup With Authentication][monorepo-app-setup-with-auth].
Instead of `localhost` addresses, use the following values.
@@ -27,12 +27,12 @@ In the AWS console, configure ALB Authentication:
- Edit the ALB rule used to forward the traffic to Backstage and add a new `Authenticate` action. The action will have higher priority compared to the existing `Forward to`.
- Select `OIDC` under `Authenticate`
- Set `Issuer` to `https://login.microsoftonline.com/{TENANT_ID}/v2.0`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Authorization endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Issuer` to `https://login.microsoftonline.com/{TENANT_ID}/v2.0`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration.
- Set `Authorization endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration.
- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration.
- Set `User info endpoint` to `https://graph.microsoft.com/oidc/userinfo`
- Set `Client ID` to the AAD App `Application (client) Id`
- Set `Client secret` to the AAD APP `client secret`
- Set `Client ID` to the App Registration `Application (client) Id`
- Set `Client secret` to the App Registration `client secret`
Use the following advanced settings:
@@ -41,7 +41,7 @@ Use the following advanced settings:
- `Scope` = `openid profile offline_access`
- `Action on unauthenticated request` = `Autenticate (client reattempt)`
Once you've saved the action, you should see an authentication flow be triggered against AAD when visiting Backstage address at `https://backstage.yourdomain.com`. The flow will not complete successfully as the Backstage app isn't yet configured properly.
Once you've saved the action, you should see an authentication flow be triggered against Entra ID when visiting Backstage address at `https://backstage.yourdomain.com`. The flow will not complete successfully as the Backstage app isn't yet configured properly.
## Backstage changes
@@ -215,11 +215,11 @@ auth:
region: <AWS_REGION>
```
Replace `<TENANT_ID>` with the value of `Directory (tenant) ID` of the AAD App and `<AWS_REGION>` with the AWS region identifier where the ALB is deployed (for example: `eu-central-1`).
Replace `<TENANT_ID>` with the value of `Directory (tenant) ID` of the App Registration and `<AWS_REGION>` with the AWS region identifier where the ALB is deployed (for example: `eu-central-1`).
## Conclusion
Once it's deployed, after going through the AAD authentication flow, Backstage should display the AAD user details.
Once it's deployed, after going through the Entra ID authentication flow, Backstage should display the Entra user details.
<!-- links -->
+3 -3
View File
@@ -5,7 +5,7 @@ sidebar_label: Azure Easy Auth
description: Adding Azure's EasyAuth Proxy as an authentication provider in Backstage
---
The Backstage `core-plugin-api` package comes with a Microsoft authentication provider that can authenticate users using Azure Active Directory for PaaS service hosted in Azure that support Easy Auth, such as Azure App Services.
The Backstage `core-plugin-api` package comes with a Microsoft authentication provider that can authenticate users using Microsoft Entra ID (formerly Azure Active Directory) for PaaS service hosted in Azure that support Easy Auth, such as Azure App Services.
## Backstage Changes
@@ -101,11 +101,11 @@ const app = createApp({
## Azure Configuration
How to configure azure depends on the service you're enable AAD auth on the app service.
How to configure azure depends on the Azure service you're using to host Backstage.
### Azure App Services
To use EasyAuth with App Services, turn on Active Directory authentication
To use EasyAuth with App Services, turn on Entra ID (formerly Azure Active Directory) authentication
You must also enable the token store.
The following example shows how to do this via a bicep template:
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

+37 -22
View File
@@ -8,21 +8,36 @@ description: Adding Microsoft Azure as an authentication provider in Backstage
The Backstage `core-plugin-api` package comes with a Microsoft authentication
provider that can authenticate users using Azure OAuth.
## Create an App Registration on Azure
## Configure App Registration on Azure
To support Azure authentication, you must create an App Registration:
Depending on how locked down your company is, you may need a directory administrator to do some or all of these instructions.
1. Log in to the [Azure Portal](https://portal.azure.com/)
2. Create an
[Active Directory Tenant](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview),
if one does not yet exist
3. Navigate to
[Azure Active Directory > App Registrations](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps)
4. Register an application
- Name: Backstage (or your custom app name)
- Redirect URI: Web >
`http://localhost:7007/api/auth/microsoft/handler/frame`
5. Navigate to **Certificates & secrets > New client secret** to create a secret
Go to [Azure Portal > App registrations](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) and find your existing app registration, or create a new one.
If you have an existing App Registration for Backstage, use that rather than create a new one.
On your app registration's overview page, add a new `Web` platform configuration, with the configuration:
- **Redirect URI**: `https://your-backstage.com/api/auth/microsoft/handler/frame` (for local dev, typically `http://localhost:7007/api/auth/microsoft/handler/frame`)
- **Front-channel logout Url**: blank
- **Implicit grant and hybrid flows**: All unchecked
On the **API permissions** tab, click on `Add Permission`, then add the following `Delegated` permission for the `Microsoft Graph` API.
- `email`
- `offline_access`
- `openid`
- `profile`
- `User.Read`
Your company may require you to grant [admin consent](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview) for these permissions.
Even if your company doesn't require admin consent, you may wish to do so as it means users don't need to individually consent the first time they access backstage.
To grant admin consent, a directory admin will need to come to this page and click on the **Grant admin consent for COMPANY NAME** button.
![App Registration Permissions](permissions.png)
If you're using an existing app registration, and backstage already has a client secret, you can re-use that.
If not, go to the **Certificates & Secrets** page, then the **Client secrets** tab and create a new client secret.
Make a note of this value as you'll need it in the next section.
## Configuration
@@ -35,9 +50,9 @@ auth:
providers:
microsoft:
development:
clientId: ${AUTH_MICROSOFT_CLIENT_ID}
clientSecret: ${AUTH_MICROSOFT_CLIENT_SECRET}
tenantId: ${AUTH_MICROSOFT_TENANT_ID}
clientId: ${AZURE_CLIENT_ID}
clientSecret: ${AZURE_CLIENT_SECRET}
tenantId: ${AZURE_TENANT_ID}
domainHint: ${AZURE_TENANT_ID}
```
@@ -51,6 +66,12 @@ The Microsoft provider is a structure with three mandatory configuration keys:
When specified, this reduces login friction for users with accounts in multiple tenants by automatically filtering away accounts from other tenants.
For more details, see [Home Realm Discovery](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/home-realm-discovery-policy)
## Adding the provider to the Backstage frontend
To add the provider to the frontend, add the `microsoftAuthApiRef` reference and
`SignInPage` component as shown in
[Adding the provider to the sign-in page](../index.md#adding-the-provider-to-the-sign-in-page).
## Outbound Network Access
If your environment has restrictions on outgoing access (e.g. through
@@ -63,9 +84,3 @@ hosts:
in [this source
code](https://github.com/seanfisher/passport-microsoft/blob/0456aa9bce05579c18e77f51330176eb26373658/lib/strategy.js#L93-L95)).
If this host is unreachable, users may see an `Authentication failed, failed to fetch user profile` error when they attempt to log in.
## Adding the provider to the Backstage frontend
To add the provider to the frontend, add the `microsoftAuthApiRef` reference and
`SignInPage` component as shown in
[Adding the provider to the sign-in page](../index.md#adding-the-provider-to-the-sign-in-page).
+2 -2
View File
@@ -11,7 +11,7 @@ add custom providers there if needed.
These providers are configured so your Kubernetes plugin can locate and access the
clusters you have access to, some of them have special requirements in the third party in
question, like Azure's Managed AAD subscription or Azure RBAC support active on the cluster.
question, like Microsoft Entra ID (formerly Azure Active Directory) subscription or Azure RBAC support active on the cluster.
The providers currently available are divided into server side and client side.
@@ -78,7 +78,7 @@ You get both, the cluster `url` and `caData` directly from the AWS console by go
### Azure
The Azure server side authentication provider works by authenticating on the server with
the Azure CLI, please note that [Azure AD Authentication][1] is a requirement and has to
the Azure CLI, please note that [Microsoft Entra authentication][1] is a requirement and has to
be enabled in your AKS cluster, then follow these steps:
- [Install the Azure CLI][2] in the environment where the backstage application will run.
+1 -1
View File
@@ -89,6 +89,6 @@ The `credentials` element is a structure with these elements:
> Note:
>
> - You cannot use a service principal or managed identity for Azure DevOps Server (on-premises) organizations
> - You can only use a service principal or managed identity for Azure AD backed Azure DevOps organizations
> - You can only use a service principal or managed identity for Microsoft Entra ID (formerly Azure Active Directory) backed Azure DevOps organizations
> - You can only specify one credential per host without any organizations specified
> - The personal access token should just be provided as the raw token generated by Azure DevOps using the format `raw_token` with no base64 encoding. Formatting and base64'ing is handled by dependent libraries handling the Azure DevOps API
+5 -5
View File
@@ -1,13 +1,13 @@
---
id: org
title: Microsoft Azure Active Directory Organizational Data
title: Microsoft Entra tenantal Data
sidebar_label: Org Data
# prettier-ignore
description: Importing users and groups from Microsoft Azure Active Directory into Backstage
description: Importing users and groups from Microsoft Entra ID into Backstage
---
The Backstage catalog can be set up to ingest organizational data - users and
teams - directly from a tenant in Microsoft Azure Active Directory via the
teams - directly from a tenant in Microsoft Entra ID via the
Microsoft Graph API.
## Installation
@@ -205,7 +205,7 @@ export async function myGroupTransformer(
annotations: {},
},
spec: {
type: 'aad',
type: 'Microsoft Entra ID',
children: [],
},
};
@@ -219,7 +219,7 @@ export async function myUserTransformer(
const backstageUser = await defaultUserTransformer(graphUser, userPhoto);
if (backstageUser) {
backstageUser.metadata.description = 'Loaded from Azure Active Directory';
backstageUser.metadata.description = 'Loaded from Microsoft Entra ID';
}
return backstageUser;
@@ -25,6 +25,8 @@ integrations:
> Note: A public Bitbucket Cloud provider is added automatically at startup for
> convenience, so you only need to list it if you want to supply credentials.
> Note: The credential used for this is type [App Password](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/). An Atlassian Account API key will not work
Directly under the `bitbucketCloud` key is a list of provider configurations, where
you can list the Bitbucket Cloud providers you want to fetch data from.
In the case of Bitbucket Cloud, you will have up to one entry.
+2
View File
@@ -39,6 +39,7 @@ choice below.
| [Google Analytics][ga] | Yes ✅ |
| [Google Analytics 4][ga4] | Yes ✅ |
| [New Relic Browser][newrelic-browser] | Community ✅ |
| [Matomo][matomo] | Community ✅ |
To suggest an integration, please [open an issue][add-tool] for the analytics
tool your organization uses. Or jump to [Writing Integrations][int-howto] to
@@ -47,6 +48,7 @@ learn how to contribute the integration yourself!
[ga]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md
[ga4]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga4/README.md
[newrelic-browser]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-newrelic-browser/README.md
[matomo]: https://github.com/janus-idp/backstage-plugins/blob/main/plugins/analytics-module-matomo/README.md
[add-tool]: https://github.com/backstage/backstage/issues/new?assignees=&labels=plugin&template=plugin_template.md&title=%5BAnalytics+Module%5D+THE+ANALYTICS+TOOL+TO+INTEGRATE
[int-howto]: #writing-integrations
[analytics-api-type]: https://backstage.io/docs/reference/core-plugin-api.analyticsapi
File diff suppressed because it is too large Load Diff
@@ -5,6 +5,6 @@ authorUrl: https://redhat.com
category: Monitoring
description: Track usage of your Backstage instance using Matomo Analytics.
documentation: https://github.com/janus-idp/backstage-plugins/blob/main/plugins/analytics-module-matomo/README.md
iconUrl: img/matomo.png
iconUrl: /img/matomo.png
npmPackageName: '@janus-idp/backstage-plugin-analytics-module-matomo'
addedDate: '2023-10-17'
+43 -43
View File
@@ -2701,90 +2701,90 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-darwin-arm64@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-darwin-arm64@npm:1.3.92"
"@swc/core-darwin-arm64@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-darwin-arm64@npm:1.3.95"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@swc/core-darwin-x64@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-darwin-x64@npm:1.3.92"
"@swc/core-darwin-x64@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-darwin-x64@npm:1.3.95"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@swc/core-linux-arm-gnueabihf@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.92"
"@swc/core-linux-arm-gnueabihf@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.95"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@swc/core-linux-arm64-gnu@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.92"
"@swc/core-linux-arm64-gnu@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.95"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-arm64-musl@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-linux-arm64-musl@npm:1.3.92"
"@swc/core-linux-arm64-musl@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-linux-arm64-musl@npm:1.3.95"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@swc/core-linux-x64-gnu@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-linux-x64-gnu@npm:1.3.92"
"@swc/core-linux-x64-gnu@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-linux-x64-gnu@npm:1.3.95"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-x64-musl@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-linux-x64-musl@npm:1.3.92"
"@swc/core-linux-x64-musl@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-linux-x64-musl@npm:1.3.95"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@swc/core-win32-arm64-msvc@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.92"
"@swc/core-win32-arm64-msvc@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.95"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@swc/core-win32-ia32-msvc@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.92"
"@swc/core-win32-ia32-msvc@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.95"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@swc/core-win32-x64-msvc@npm:1.3.92":
version: 1.3.92
resolution: "@swc/core-win32-x64-msvc@npm:1.3.92"
"@swc/core-win32-x64-msvc@npm:1.3.95":
version: 1.3.95
resolution: "@swc/core-win32-x64-msvc@npm:1.3.95"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.46":
version: 1.3.92
resolution: "@swc/core@npm:1.3.92"
version: 1.3.95
resolution: "@swc/core@npm:1.3.95"
dependencies:
"@swc/core-darwin-arm64": 1.3.92
"@swc/core-darwin-x64": 1.3.92
"@swc/core-linux-arm-gnueabihf": 1.3.92
"@swc/core-linux-arm64-gnu": 1.3.92
"@swc/core-linux-arm64-musl": 1.3.92
"@swc/core-linux-x64-gnu": 1.3.92
"@swc/core-linux-x64-musl": 1.3.92
"@swc/core-win32-arm64-msvc": 1.3.92
"@swc/core-win32-ia32-msvc": 1.3.92
"@swc/core-win32-x64-msvc": 1.3.92
"@swc/core-darwin-arm64": 1.3.95
"@swc/core-darwin-x64": 1.3.95
"@swc/core-linux-arm-gnueabihf": 1.3.95
"@swc/core-linux-arm64-gnu": 1.3.95
"@swc/core-linux-arm64-musl": 1.3.95
"@swc/core-linux-x64-gnu": 1.3.95
"@swc/core-linux-x64-musl": 1.3.95
"@swc/core-win32-arm64-msvc": 1.3.95
"@swc/core-win32-ia32-msvc": 1.3.95
"@swc/core-win32-x64-msvc": 1.3.95
"@swc/counter": ^0.1.1
"@swc/types": ^0.1.5
peerDependencies:
@@ -2813,7 +2813,7 @@ __metadata:
peerDependenciesMeta:
"@swc/helpers":
optional: true
checksum: 88c0c62ff790e896180862c341be8bae98baf0a5c5e87f2f04f49e14b8c4fba460d6b352618b4dda066c8ae6bf152cd843eab25837f38128175208b8c0635721
checksum: 49856ad64fa16151f7f784956c8134060c5ed612c9b3fcb79e33676c77219f61fa3bb6b9e0dd15d78c7bff92cacc0c944d2b4e60849eb93caca917a8544b1c2c
languageName: node
linkType: hard
+2 -2
View File
@@ -49,12 +49,12 @@
"resolutions": {
"@types/react": "^18",
"@types/react-dom": "^18",
"jest-haste-map@^29.4.3": "patch:jest-haste-map@npm%3A29.4.3#./.yarn/patches/jest-haste-map-npm-29.4.3-19b03fcef3.patch",
"jest-haste-map@^29.7.0": "patch:jest-haste-map@npm%3A29.7.0#./.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch",
"mock-fs@^5.2.0": "patch:mock-fs@npm%3A5.2.0#./.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch",
"@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch",
"@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch"
},
"version": "1.20.0-next.0",
"version": "1.20.0-next.1",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/app-defaults
## 1.4.5-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.13.8-next.1
- @backstage/core-app-api@1.11.1-next.0
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/theme@0.4.4-next.0
- @backstage/plugin-permission-react@0.4.17-next.0
## 1.4.5-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
"version": "1.4.5-next.0",
"version": "1.4.5-next.1",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
@@ -1,5 +1,13 @@
# app-next-example-plugin
## 0.0.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/frontend-plugin-api@0.3.0-next.1
- @backstage/core-components@0.13.8-next.1
## 0.0.3-next.0
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "app-next-example-plugin",
"description": "Backstage internal example plugin",
"version": "0.0.3-next.0",
"version": "0.0.3-next.1",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
+77
View File
@@ -1,5 +1,82 @@
# example-app-next
## 0.0.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-home@0.5.10-next.1
- @backstage/plugin-cost-insights@0.12.15-next.1
- @backstage/plugin-scaffolder@1.16.0-next.1
- @backstage/frontend-app-api@0.3.0-next.1
- @backstage/frontend-plugin-api@0.3.0-next.1
- @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1
- @backstage/plugin-microsoft-calendar@0.1.9-next.1
- @backstage/plugin-scaffolder-react@1.6.0-next.1
- @backstage/plugin-catalog-graph@0.2.38-next.1
- @backstage/plugin-tech-insights@0.3.18-next.1
- @backstage/plugin-gcalendar@0.3.20-next.1
- @backstage/plugin-api-docs@0.9.13-next.1
- @backstage/plugin-playlist@0.1.18-next.1
- @backstage/plugin-catalog@1.15.0-next.1
- @backstage/plugin-explore@0.4.12-next.1
- @backstage/plugin-search@1.4.2-next.1
- @backstage/plugin-org@0.6.16-next.1
- @backstage/plugin-catalog-react@1.9.0-next.1
- @backstage/plugin-graphiql@0.3.0-next.1
- @backstage/plugin-search-react@1.7.2-next.1
- @backstage/cli@0.24.0-next.1
- @backstage/integration-react@1.1.21-next.1
- @backstage/plugin-catalog-import@0.10.2-next.1
- @backstage/plugin-github-actions@0.6.7-next.1
- @backstage/plugin-techdocs@1.8.1-next.1
- @backstage/plugin-kubernetes@0.11.1-next.1
- @backstage/plugin-newrelic@0.3.42-next.1
- app-next-example-plugin@0.0.3-next.1
- @backstage/core-compat-api@0.0.1-next.1
- @backstage/plugin-adr@0.6.9-next.1
- @backstage/plugin-tech-radar@0.6.10-next.1
- @backstage/plugin-user-settings@0.7.12-next.1
- @backstage/core-components@0.13.8-next.1
- @backstage/plugin-airbrake@0.3.26-next.1
- @backstage/plugin-azure-devops@0.3.8-next.1
- @backstage/plugin-azure-sites@0.1.15-next.1
- @backstage/plugin-badges@0.2.50-next.1
- @backstage/plugin-circleci@0.3.26-next.1
- @backstage/plugin-cloudbuild@0.3.26-next.1
- @backstage/plugin-code-coverage@0.2.19-next.1
- @backstage/plugin-dynatrace@8.0.0-next.1
- @backstage/plugin-entity-feedback@0.2.9-next.1
- @backstage/plugin-gocd@0.1.32-next.1
- @backstage/plugin-jenkins@0.9.1-next.1
- @backstage/plugin-kafka@0.3.26-next.1
- @backstage/plugin-lighthouse@0.4.11-next.1
- @backstage/plugin-linguist@0.1.11-next.1
- @backstage/plugin-newrelic-dashboard@0.3.1-next.1
- @backstage/plugin-octopus-deploy@0.2.8-next.1
- @backstage/plugin-pagerduty@0.6.7-next.1
- @backstage/plugin-puppetdb@0.1.9-next.1
- @backstage/plugin-rollbar@0.4.26-next.1
- @backstage/plugin-sentry@0.5.11-next.1
- @backstage/plugin-todo@0.2.30-next.1
- @backstage/app-defaults@1.4.5-next.1
- @backstage/catalog-model@1.4.3
- @backstage/config@1.1.1
- @backstage/core-app-api@1.11.1-next.0
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/theme@0.4.4-next.0
- @backstage/plugin-apache-airflow@0.2.17-next.1
- @backstage/plugin-catalog-common@1.0.17
- @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1
- @backstage/plugin-devtools@0.1.6-next.1
- @backstage/plugin-gcp-projects@0.3.43-next.1
- @backstage/plugin-linguist-common@0.1.2
- @backstage/plugin-permission-react@0.4.17-next.0
- @backstage/plugin-search-common@1.2.7
- @backstage/plugin-shortcuts@0.3.16-next.1
- @backstage/plugin-stackstorm@0.1.8-next.1
- @backstage/plugin-techdocs-react@1.1.13-next.1
## 0.0.3-next.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-app-next",
"version": "0.0.3-next.0",
"version": "0.0.3-next.1",
"private": true,
"backstage": {
"role": "frontend"
+2 -2
View File
@@ -79,8 +79,8 @@ const homePageExtension = createExtension({
children: coreExtensionData.reactElement,
title: titleExtensionDataRef,
},
factory({ bind }) {
bind({ children: homePage, title: 'just a title' });
factory() {
return { children: homePage, title: 'just a title' };
},
});
+77
View File
@@ -1,5 +1,82 @@
# example-app
## 0.2.89-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-home@0.5.10-next.1
- @backstage/plugin-cost-insights@0.12.15-next.1
- @backstage/plugin-scaffolder@1.16.0-next.1
- @backstage/frontend-app-api@0.3.0-next.1
- @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1
- @backstage/plugin-microsoft-calendar@0.1.9-next.1
- @backstage/plugin-scaffolder-react@1.6.0-next.1
- @backstage/plugin-catalog-graph@0.2.38-next.1
- @backstage/plugin-tech-insights@0.3.18-next.1
- @backstage/plugin-gcalendar@0.3.20-next.1
- @backstage/plugin-api-docs@0.9.13-next.1
- @backstage/plugin-playlist@0.1.18-next.1
- @backstage/plugin-catalog@1.15.0-next.1
- @backstage/plugin-explore@0.4.12-next.1
- @backstage/plugin-search@1.4.2-next.1
- @backstage/plugin-org@0.6.16-next.1
- @backstage/plugin-catalog-react@1.9.0-next.1
- @backstage/plugin-graphiql@0.3.0-next.1
- @backstage/plugin-search-react@1.7.2-next.1
- @backstage/cli@0.24.0-next.1
- @backstage/integration-react@1.1.21-next.1
- @backstage/plugin-catalog-import@0.10.2-next.1
- @backstage/plugin-github-actions@0.6.7-next.1
- @backstage/plugin-techdocs@1.8.1-next.1
- @backstage/plugin-kubernetes@0.11.1-next.1
- @backstage/plugin-kubernetes-cluster@0.0.2-next.1
- @backstage/plugin-newrelic@0.3.42-next.1
- @backstage/plugin-adr@0.6.9-next.1
- @backstage/plugin-stack-overflow@0.1.22-next.1
- @backstage/plugin-tech-radar@0.6.10-next.1
- @backstage/plugin-user-settings@0.7.12-next.1
- @backstage/core-components@0.13.8-next.1
- @backstage/plugin-airbrake@0.3.26-next.1
- @backstage/plugin-azure-devops@0.3.8-next.1
- @backstage/plugin-azure-sites@0.1.15-next.1
- @backstage/plugin-badges@0.2.50-next.1
- @backstage/plugin-circleci@0.3.26-next.1
- @backstage/plugin-cloudbuild@0.3.26-next.1
- @backstage/plugin-code-coverage@0.2.19-next.1
- @backstage/plugin-dynatrace@8.0.0-next.1
- @backstage/plugin-entity-feedback@0.2.9-next.1
- @backstage/plugin-gocd@0.1.32-next.1
- @backstage/plugin-jenkins@0.9.1-next.1
- @backstage/plugin-kafka@0.3.26-next.1
- @backstage/plugin-lighthouse@0.4.11-next.1
- @backstage/plugin-linguist@0.1.11-next.1
- @backstage/plugin-newrelic-dashboard@0.3.1-next.1
- @backstage/plugin-nomad@0.1.7-next.1
- @backstage/plugin-octopus-deploy@0.2.8-next.1
- @backstage/plugin-pagerduty@0.6.7-next.1
- @backstage/plugin-puppetdb@0.1.9-next.1
- @backstage/plugin-rollbar@0.4.26-next.1
- @backstage/plugin-sentry@0.5.11-next.1
- @backstage/plugin-todo@0.2.30-next.1
- @backstage/app-defaults@1.4.5-next.1
- @backstage/catalog-model@1.4.3
- @backstage/config@1.1.1
- @backstage/core-app-api@1.11.1-next.0
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/theme@0.4.4-next.0
- @backstage/plugin-apache-airflow@0.2.17-next.1
- @backstage/plugin-catalog-common@1.0.17
- @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1
- @backstage/plugin-devtools@0.1.6-next.1
- @backstage/plugin-gcp-projects@0.3.43-next.1
- @backstage/plugin-linguist-common@0.1.2
- @backstage/plugin-permission-react@0.4.17-next.0
- @backstage/plugin-search-common@1.2.7
- @backstage/plugin-shortcuts@0.3.16-next.1
- @backstage/plugin-stackstorm@0.1.8-next.1
- @backstage/plugin-techdocs-react@1.1.13-next.1
## 0.2.89-next.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-app",
"version": "0.2.89-next.0",
"version": "0.2.89-next.1",
"private": true,
"backstage": {
"role": "frontend"
+17
View File
@@ -1,5 +1,22 @@
# @backstage/backend-app-api
## 0.5.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.19.9-next.1
- @backstage/backend-tasks@0.5.12-next.1
- @backstage/config-loader@1.5.3-next.0
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/plugin-permission-node@0.7.18-next.1
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/cli-common@0.1.13
- @backstage/cli-node@0.2.0-next.0
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
## 0.5.8-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-app-api",
"description": "Core API used by Backstage backend apps",
"version": "0.5.8-next.0",
"version": "0.5.8-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+16
View File
@@ -1,5 +1,21 @@
# @backstage/backend-common
## 0.19.9-next.1
### Patch Changes
- Updated dependencies
- @backstage/integration@1.7.2-next.0
- @backstage/backend-app-api@0.5.8-next.1
- @backstage/config-loader@1.5.3-next.0
- @backstage/backend-dev-utils@0.1.2
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/cli-common@0.1.13
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/integration-aws-node@0.1.7
- @backstage/types@1.1.1
## 0.19.9-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
"version": "0.19.9-next.0",
"version": "0.19.9-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+9
View File
@@ -1,5 +1,14 @@
# @backstage/backend-defaults
## 0.2.7-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.19.9-next.1
- @backstage/backend-app-api@0.5.8-next.1
- @backstage/backend-plugin-api@0.6.7-next.1
## 0.2.7-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-defaults",
"description": "Backend defaults used by Backstage backend apps",
"version": "0.2.7-next.0",
"version": "0.2.7-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+41
View File
@@ -1,5 +1,46 @@
# example-backend-next
## 0.0.17-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@1.15.0-next.1
- @backstage/plugin-techdocs-backend@1.9.0-next.1
- @backstage/plugin-scaffolder-backend@1.19.0-next.1
- @backstage/plugin-catalog-backend-module-openapi@0.1.24-next.1
- @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.0-next.1
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1
- @backstage/plugin-jenkins-backend@0.3.1-next.1
- @backstage/plugin-kubernetes-backend@0.13.1-next.1
- @backstage/plugin-lighthouse-backend@0.3.4-next.1
- @backstage/plugin-linguist-backend@0.5.4-next.1
- @backstage/plugin-search-backend-module-catalog@0.1.11-next.1
- @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1
- @backstage/plugin-todo-backend@0.3.5-next.1
- @backstage/plugin-adr-backend@0.4.4-next.1
- @backstage/backend-defaults@0.2.7-next.1
- @backstage/backend-tasks@0.5.12-next.1
- @backstage/plugin-app-backend@0.3.55-next.1
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/plugin-badges-backend@0.3.4-next.1
- @backstage/plugin-entity-feedback-backend@0.2.4-next.1
- @backstage/plugin-permission-backend-module-allow-all-policy@0.1.4-next.1
- @backstage/plugin-permission-node@0.7.18-next.1
- @backstage/plugin-playlist-backend@0.3.11-next.1
- @backstage/plugin-proxy-backend@0.4.5-next.1
- @backstage/plugin-search-backend@1.4.7-next.1
- @backstage/plugin-search-backend-module-explore@0.1.11-next.1
- @backstage/plugin-sonarqube-backend@0.2.9-next.1
- @backstage/plugin-azure-devops-backend@0.4.4-next.1
- @backstage/plugin-devtools-backend@0.2.4-next.1
- @backstage/plugin-nomad-backend@0.1.9-next.1
- @backstage/plugin-permission-backend@0.5.30-next.1
- @backstage/plugin-search-backend-node@1.2.11-next.1
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1
- @backstage/plugin-permission-common@0.7.9
## 0.0.17-next.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-backend-next",
"version": "0.0.17-next.0",
"version": "0.0.17-next.1",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -1,5 +1,14 @@
# @backstage/backend-openapi-utils
## 0.1.0-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
## 0.1.0-next.0
### Minor Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-openapi-utils",
"description": "OpenAPI typescript support.",
"version": "0.1.0-next.0",
"version": "0.1.0-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/backend-plugin-api
## 0.6.7-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-tasks@0.5.12-next.1
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/config@1.1.1
- @backstage/types@1.1.1
- @backstage/plugin-permission-common@0.7.9
## 0.6.7-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-plugin-api",
"description": "Core API used by Backstage backend plugins",
"version": "0.6.7-next.0",
"version": "0.6.7-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
@@ -1,5 +1,28 @@
# @backstage/backend-plugin-manager
## 0.0.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@1.15.0-next.1
- @backstage/backend-common@0.19.9-next.1
- @backstage/plugin-scaffolder-node@0.2.8-next.1
- @backstage/backend-tasks@0.5.12-next.1
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/plugin-events-backend@0.2.16-next.1
- @backstage/plugin-permission-node@0.7.18-next.1
- @backstage/plugin-search-backend-node@1.2.11-next.1
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/cli-common@0.1.13
- @backstage/cli-node@0.2.0-next.0
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
- @backstage/plugin-events-node@0.2.16-next.1
- @backstage/plugin-permission-common@0.7.9
- @backstage/plugin-search-common@1.2.7
## 0.0.3-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-plugin-manager",
"description": "Backstage plugin management backend",
"version": "0.0.3-next.0",
"version": "0.0.3-next.1",
"private": true,
"main": "src/index.ts",
"types": "src/index.ts",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/backend-tasks
## 0.5.12-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.19.9-next.1
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
## 0.5.12-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-tasks",
"description": "Common distributed task management library for Backstage backends",
"version": "0.5.12-next.0",
"version": "0.5.12-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+14
View File
@@ -1,5 +1,19 @@
# @backstage/backend-test-utils
## 0.2.8-next.1
### Patch Changes
- bb688f7b3b: Ensure recursive deletion of temporary directories in tests
- Updated dependencies
- @backstage/backend-common@0.19.9-next.1
- @backstage/backend-app-api@0.5.8-next.1
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/backend-plugin-api@0.6.7-next.1
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
## 0.2.8-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-test-utils",
"description": "Test helpers library for Backstage backends",
"version": "0.2.8-next.0",
"version": "0.2.8-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+59
View File
@@ -1,5 +1,64 @@
# example-backend
## 0.2.89-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@1.15.0-next.1
- @backstage/plugin-catalog-node@1.5.0-next.1
- @backstage/integration@1.7.2-next.0
- @backstage/plugin-auth-backend@0.20.0-next.1
- @backstage/plugin-techdocs-backend@1.9.0-next.1
- @backstage/plugin-scaffolder-backend@1.19.0-next.1
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1
- @backstage/plugin-jenkins-backend@0.3.1-next.1
- @backstage/plugin-kubernetes-backend@0.13.1-next.1
- @backstage/plugin-lighthouse-backend@0.3.4-next.1
- @backstage/plugin-linguist-backend@0.5.4-next.1
- @backstage/plugin-search-backend-module-catalog@0.1.11-next.1
- @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1
- @backstage/plugin-todo-backend@0.3.5-next.1
- example-app@0.2.89-next.1
- @backstage/backend-common@0.19.9-next.1
- @backstage/plugin-adr-backend@0.4.4-next.1
- @backstage/plugin-code-coverage-backend@0.2.21-next.1
- @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.8-next.1
- @backstage/plugin-scaffolder-backend-module-rails@0.4.24-next.1
- @backstage/backend-tasks@0.5.12-next.1
- @backstage/plugin-app-backend@0.3.55-next.1
- @backstage/plugin-auth-node@0.4.1-next.1
- @backstage/plugin-badges-backend@0.3.4-next.1
- @backstage/plugin-entity-feedback-backend@0.2.4-next.1
- @backstage/plugin-events-backend@0.2.16-next.1
- @backstage/plugin-permission-node@0.7.18-next.1
- @backstage/plugin-playlist-backend@0.3.11-next.1
- @backstage/plugin-proxy-backend@0.4.5-next.1
- @backstage/plugin-rollbar-backend@0.1.52-next.1
- @backstage/plugin-search-backend@1.4.7-next.1
- @backstage/plugin-search-backend-module-explore@0.1.11-next.1
- @backstage/plugin-search-backend-module-pg@0.5.16-next.1
- @backstage/plugin-tech-insights-backend@0.5.21-next.1
- @backstage/plugin-azure-devops-backend@0.4.4-next.1
- @backstage/plugin-azure-sites-backend@0.1.17-next.1
- @backstage/plugin-devtools-backend@0.2.4-next.1
- @backstage/plugin-explore-backend@0.0.17-next.1
- @backstage/plugin-graphql-backend@0.2.1-next.1
- @backstage/plugin-kafka-backend@0.3.5-next.1
- @backstage/plugin-nomad-backend@0.1.9-next.1
- @backstage/plugin-permission-backend@0.5.30-next.1
- @backstage/plugin-search-backend-module-elasticsearch@1.3.10-next.1
- @backstage/plugin-search-backend-node@1.2.11-next.1
- @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.39-next.1
- @backstage/plugin-tech-insights-node@0.4.13-next.1
- @backstage/catalog-client@1.4.5
- @backstage/catalog-model@1.4.3
- @backstage/config@1.1.1
- @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1
- @backstage/plugin-events-node@0.2.16-next.1
- @backstage/plugin-permission-common@0.7.9
- @backstage/plugin-search-common@1.2.7
## 0.2.89-next.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-backend",
"version": "0.2.89-next.0",
"version": "0.2.89-next.1",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
+16
View File
@@ -1,5 +1,21 @@
# @backstage/cli
## 0.24.0-next.1
### Patch Changes
- Updated dependencies
- @backstage/integration@1.7.2-next.0
- @backstage/config-loader@1.5.3-next.0
- @backstage/catalog-model@1.4.3
- @backstage/cli-common@0.1.13
- @backstage/cli-node@0.2.0-next.0
- @backstage/config@1.1.1
- @backstage/errors@1.2.3
- @backstage/eslint-plugin@0.1.3
- @backstage/release-manifests@0.0.10
- @backstage/types@1.1.1
## 0.24.0-next.0
### Minor Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/cli",
"description": "CLI for developing Backstage plugins and apps",
"version": "0.24.0-next.0",
"version": "0.24.0-next.1",
"publishConfig": {
"access": "public"
},
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/config-loader",
"description": "Config loading functionality used by Backstage backend, and CLI",
"version": "1.5.2-next.0",
"version": "1.5.3-next.0",
"publishConfig": {
"access": "public",
"main": "dist/index.cjs.js",
+8
View File
@@ -1,5 +1,13 @@
# @backstage/core-compat-api
## 0.0.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/frontend-plugin-api@0.3.0-next.1
- @backstage/core-plugin-api@1.8.0-next.0
## 0.0.1-next.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/core-compat-api",
"version": "0.0.1-next.0",
"version": "0.0.1-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -113,18 +113,18 @@ export function convertLegacyApp(
output: {
element: coreExtensionData.reactElement,
},
factory({ bind, inputs }) {
factory({ inputs }) {
// Clone the root element, this replaces the FlatRoutes declared in the app with out content input
bind({
return {
element: React.cloneElement(rootEl, undefined, inputs.content.element),
});
};
},
});
const CoreNavOverride = createExtension({
id: 'core.nav',
attachTo: { id: 'core.layout', input: 'nav' },
output: {},
factory() {},
factory: () => ({}),
disabled: true,
});
+13
View File
@@ -1,5 +1,18 @@
# @backstage/core-components
## 0.13.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.9.0-next.1
- @backstage/catalog-model@1.4.3
- @backstage/config@1.1.1
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/errors@1.2.3
- @backstage/theme@0.4.4-next.0
- @backstage/version-bridge@1.0.7-next.0
## 0.13.7-next.0
### Patch Changes
+2 -5
View File
@@ -746,16 +746,13 @@ export type MetadataTableTitleCellClassKey = 'root';
export type MicDropClassKey = 'micDrop';
// Warning: (ae-forgotten-export) The symbol "Props_3" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "MissingAnnotationEmptyState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public @deprecated (undocumented)
export function MissingAnnotationEmptyState(
props: Props_3,
): React_2.JSX.Element;
// Warning: (ae-missing-release-tag) "MissingAnnotationEmptyStateClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public @deprecated (undocumented)
export type MissingAnnotationEmptyStateClassKey = 'code';
// @public
+1 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-components",
"description": "Core components used by Backstage plugins and apps",
"version": "0.13.7-next.0",
"version": "0.13.8-next.1",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
@@ -33,11 +33,9 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
"@backstage/theme": "workspace:^",
"@backstage/version-bridge": "workspace:^",
"@date-io/core": "^1.3.13",
@@ -25,14 +25,33 @@ import { CodeSnippet } from '../CodeSnippet';
import { Link } from '../Link';
import { EmptyState } from './EmptyState';
import { useEntity } from '@backstage/plugin-catalog-react';
import { Entity } from '@backstage/catalog-model';
const COMPONENT_YAML_TEMPLATE = `apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: example
description: example.com
annotations:
ANNOTATION: value
spec:
type: website
lifecycle: production
owner: user:guest`;
const ANNOTATION_REGEXP = /^.*ANNOTATION.*$/m;
const ANNOTATION_YAML = COMPONENT_YAML_TEMPLATE.match(ANNOTATION_REGEXP)![0];
const ANNOTATION_LINE = COMPONENT_YAML_TEMPLATE.split('\n').findIndex(line =>
ANNOTATION_REGEXP.test(line),
);
type Props = {
annotation: string | string[];
readMoreUrl?: string;
};
/**
* @public
* @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyStateClassKey} instead
*/
export type MissingAnnotationEmptyStateClassKey = 'code';
const useStyles = makeStyles<BackstageTheme>(
@@ -47,38 +66,18 @@ const useStyles = makeStyles<BackstageTheme>(
{ name: 'BackstageMissingAnnotationEmptyState' },
);
function generateYamlExample(
annotations: string[],
entity?: Entity,
): { yamlText: string; lineNumbers: number[] } {
const kind = entity?.kind || 'Component';
const name = entity?.metadata.name || 'example';
const type = entity?.spec?.type || 'website';
const owner = entity?.spec?.owner || 'user:default/guest';
const yamlText = `apiVersion: backstage.io/v1alpha1
kind: ${kind}
metadata:
name: ${name}
annotations:${annotations.map(ann => `\n ${ann}: value`).join('')}
spec:
type: ${type}
owner: ${owner}`;
let line = 6; // Line 6 is the line number that annotations are added to.
const lineNumbers: number[] = [];
annotations.forEach(() => {
lineNumbers.push(line);
line++;
});
return {
yamlText,
lineNumbers,
};
function generateLineNumbers(lineCount: number) {
return Array.from(Array(lineCount + 1).keys(), i => i + ANNOTATION_LINE);
}
function generateDescription(annotations: string[], entityKind = 'Component') {
function generateComponentYaml(annotations: string[]) {
const annotationYaml = annotations
.map(ann => ANNOTATION_YAML.replace('ANNOTATION', ann))
.join('\n');
return COMPONENT_YAML_TEMPLATE.replace(ANNOTATION_YAML, annotationYaml);
}
function generateDescription(annotations: string[]) {
const isSingular = annotations.length <= 1;
return (
<>
@@ -91,21 +90,17 @@ function generateDescription(annotations: string[], entityKind = 'Component') {
</>
))}{' '}
{isSingular ? 'is' : 'are'} missing. You need to add the{' '}
{isSingular ? 'annotation' : 'annotations'} to your {entityKind} if you
want to enable this tool.
{isSingular ? 'annotation' : 'annotations'} to your component if you want
to enable this tool.
</>
);
}
/**
* @public
* @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyState} instead
*/
export function MissingAnnotationEmptyState(props: Props) {
let entity: Entity | undefined;
try {
const entityContext = useEntity();
entity = entityContext.entity;
} catch (err) {
// ignore when entity context doesnt exist
}
const { annotation, readMoreUrl } = props;
const annotations = Array.isArray(annotation) ? annotation : [annotation];
const url =
@@ -113,25 +108,23 @@ export function MissingAnnotationEmptyState(props: Props) {
'https://backstage.io/docs/features/software-catalog/well-known-annotations';
const classes = useStyles();
const entityKind = entity?.kind || 'Component';
const { yamlText, lineNumbers } = generateYamlExample(annotations, entity);
return (
<EmptyState
missing="field"
title="Missing Annotation"
description={generateDescription(annotations, entityKind)}
description={generateDescription(annotations)}
action={
<>
<Typography variant="body1">
Add the annotation to your {entityKind} YAML as shown in the
Add the annotation to your component YAML as shown in the
highlighted example below:
</Typography>
<Box className={classes.code}>
<CodeSnippet
text={yamlText}
text={generateComponentYaml(annotations)}
language="yaml"
showLineNumbers
highlightedNumbers={lineNumbers}
highlightedNumbers={generateLineNumbers(annotations.length)}
customStyle={{ background: 'inherit', fontSize: '115%' }}
/>
</Box>
+8
View File
@@ -1,5 +1,13 @@
# @backstage/create-app
## 0.5.7-next.1
### Patch Changes
- Bumped create-app version.
- Updated dependencies
- @backstage/cli-common@0.1.13
## 0.5.7-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "A CLI that helps you create your own Backstage app",
"version": "0.5.7-next.0",
"version": "0.5.7-next.1",
"publishConfig": {
"access": "public"
},
+14
View File
@@ -1,5 +1,19 @@
# @backstage/dev-utils
## 1.0.23-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.9.0-next.1
- @backstage/integration-react@1.1.21-next.1
- @backstage/core-components@0.13.8-next.1
- @backstage/app-defaults@1.4.5-next.1
- @backstage/catalog-model@1.4.3
- @backstage/core-app-api@1.11.1-next.0
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/theme@0.4.4-next.0
## 1.0.23-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/dev-utils",
"description": "Utilities for developing Backstage plugins.",
"version": "1.0.23-next.0",
"version": "1.0.23-next.1",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
+9
View File
@@ -1,5 +1,14 @@
# e2e-test
## 0.2.9-next.1
### Patch Changes
- Updated dependencies
- @backstage/create-app@0.5.7-next.1
- @backstage/cli-common@0.1.13
- @backstage/errors@1.2.3
## 0.2.9-next.0
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "e2e-test",
"description": "E2E test for verifying Backstage packages",
"version": "0.2.9-next.0",
"version": "0.2.9-next.1",
"private": true,
"backstage": {
"role": "cli"
+18
View File
@@ -1,5 +1,23 @@
# @backstage/frontend-app-api
## 0.3.0-next.1
### Patch Changes
- fe6d09953d: Fix for app node output IDs not being serialized correctly.
- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`.
- 4d6fa921db: Internal refactor to rename the app graph to app tree
- Updated dependencies
- @backstage/frontend-plugin-api@0.3.0-next.1
- @backstage/plugin-graphiql@0.3.0-next.1
- @backstage/core-components@0.13.8-next.1
- @backstage/config@1.1.1
- @backstage/core-app-api@1.11.1-next.0
- @backstage/core-plugin-api@1.8.0-next.0
- @backstage/theme@0.4.4-next.0
- @backstage/types@1.1.1
- @backstage/version-bridge@1.0.7-next.0
## 0.3.0-next.0
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/frontend-app-api",
"version": "0.3.0-next.0",
"version": "0.3.0-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",

Some files were not shown because too many files have changed in this diff Show More