Merge branch 'backstage:master' into fix-17201
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search-react': patch
|
||||
---
|
||||
|
||||
Fix accessibility issue in `SearchCheckbox` component, making it possible to use the field via keyboard.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-import': patch
|
||||
---
|
||||
|
||||
Swap `ImportStepper` and `InfoCard` order to fix tab order in `catalog-import`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': minor
|
||||
---
|
||||
|
||||
Add `TargetBranchName` variable and output for the `publish:gitlab:merge-request` and `publish:github:pull-request` s'cascaffolder actions.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
K8s proxy HEADER_KUBERNETES_CLUSTER is now optional in single-cluster setups.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Enhance the sidebar item accessibility by using appropriate header semantics.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/theme': patch
|
||||
---
|
||||
|
||||
Tweaked `UnifiedThemeProvider` to avoid overlapping JSS class names in production.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/plugin-events-backend-module-aws-sqs': patch
|
||||
'@backstage/plugin-catalog-backend-module-aws': patch
|
||||
'@backstage/integration-aws-node': patch
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Fix SNYK-JS-FASTXMLPARSER-5668858 (`fast-xml-parser`) by upgrading aws-sdk to at least the current latest version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
Set the expiration time of oidc `idToken` to be less than backstage session expiration time.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Added `exact` prop to `SidebarSubmenuItem` which causes it to only highlight if the current location is an exact match.
|
||||
@@ -240,6 +240,7 @@
|
||||
"clean-months-bake",
|
||||
"clean-years-whisper",
|
||||
"create-app-1684855417",
|
||||
"create-app-1686056275",
|
||||
"curvy-years-smoke",
|
||||
"dull-bottles-teach",
|
||||
"famous-days-kneel",
|
||||
@@ -248,11 +249,16 @@
|
||||
"few-games-swim",
|
||||
"few-oranges-complain",
|
||||
"few-pugs-jam",
|
||||
"five-turtles-play",
|
||||
"gentle-turtles-applaud",
|
||||
"giant-maps-compete",
|
||||
"good-rabbits-exist",
|
||||
"gorgeous-timers-act",
|
||||
"grumpy-carrots-sin",
|
||||
"heavy-ravens-fold",
|
||||
"hot-apples-cross",
|
||||
"hot-badgers-double",
|
||||
"hungry-lies-drop",
|
||||
"itchy-mirrors-greet",
|
||||
"khaki-radios-teach",
|
||||
"lazy-dancers-begin",
|
||||
@@ -261,16 +267,23 @@
|
||||
"long-lobsters-brake",
|
||||
"lovely-impalas-sell",
|
||||
"lucky-keys-behave",
|
||||
"mean-insects-hope",
|
||||
"modern-dancers-sit",
|
||||
"nice-peaches-reflect",
|
||||
"nice-readers-heal",
|
||||
"nine-bags-dream",
|
||||
"ninety-jeans-scream",
|
||||
"ninety-turkeys-knock",
|
||||
"olive-carpets-explode",
|
||||
"orange-taxis-exercise",
|
||||
"perfect-donkeys-cry",
|
||||
"perfect-readers-attack",
|
||||
"pink-goats-talk",
|
||||
"plenty-roses-raise",
|
||||
"poor-months-switch",
|
||||
"rare-bugs-chew",
|
||||
"real-donuts-brush",
|
||||
"renovate-de04315",
|
||||
"selfish-carrots-sneeze",
|
||||
"selfish-mugs-study",
|
||||
"selfish-olives-end",
|
||||
@@ -279,22 +292,28 @@
|
||||
"shaggy-terms-travel",
|
||||
"short-seahorses-kiss",
|
||||
"shy-numbers-try",
|
||||
"silent-garlics-drum",
|
||||
"silent-kangaroos-pay",
|
||||
"silver-cars-type",
|
||||
"silver-ducks-drum",
|
||||
"smart-berries-wash",
|
||||
"sour-papayas-wink",
|
||||
"strange-geese-argue",
|
||||
"tame-buttons-smell",
|
||||
"tasty-oranges-sleep",
|
||||
"three-guests-beam",
|
||||
"tiny-hounds-cross",
|
||||
"twenty-suns-breathe",
|
||||
"two-mayflies-tell",
|
||||
"violet-pots-push",
|
||||
"warm-hornets-fetch",
|
||||
"weak-rats-serve",
|
||||
"weak-snails-spar",
|
||||
"weak-snails-spark",
|
||||
"weak-snails-sparkl",
|
||||
"weak-snails-sparkle",
|
||||
"wet-vans-drive",
|
||||
"wise-bats-repair",
|
||||
"yellow-crews-float"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': minor
|
||||
---
|
||||
|
||||
Add a scaffolder action that pull-requests for bitbucket server
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Make the documentation pages printable (also handy for exporting to PDF)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': minor
|
||||
---
|
||||
|
||||
Added `github:deployKey:create` and `github:environment:create` scaffolder actions. You will need to add `read/write` permissions to your GITHUB_TOKEN and/or Github Backstage App for Repository `Administration` (for deploy key functionality) and `Environments` (for Environment functionality)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Adding in type and kind entity details to catalog table title for user clarity
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-explore': patch
|
||||
---
|
||||
|
||||
Enhance the tools card accessibility by using appropriate header semantics.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Keyboard navigation to open EntityContextMenu now focus visible the first element.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
---
|
||||
|
||||
Add proposed fix dialog for pod errors
|
||||
@@ -434,3 +434,5 @@ zod
|
||||
Zolotusky
|
||||
zoomable
|
||||
zsh
|
||||
Pulumi
|
||||
Lightsail
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
ref: 'refs/pull/${{ github.event.pull_request.number }}/merge'
|
||||
- name: fetch base
|
||||
run: git fetch --depth 1 origin ${{ github.base_ref }}
|
||||
- uses: backstage/actions/changeset-feedback@v0.6.3
|
||||
- uses: backstage/actions/changeset-feedback@v0.6.4
|
||||
name: Generate feedback
|
||||
with:
|
||||
diff-ref: 'origin/master'
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
@@ -188,7 +188,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
cron:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: backstage/actions/cron@v0.6.3
|
||||
- uses: backstage/actions/cron@v0.6.4
|
||||
with:
|
||||
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
|
||||
private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }}
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
node-version: 18.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v18.x
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -10,4 +10,4 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Issue sync
|
||||
uses: backstage/actions/issue-sync@v0.6.3
|
||||
uses: backstage/actions/issue-sync@v0.6.4
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
const prNumber = artifact.name.slice('pr_number-'.length)
|
||||
core.setOutput('pr-number', prNumber);
|
||||
|
||||
- uses: backstage/actions/re-review@v0.6.3
|
||||
- uses: backstage/actions/re-review@v0.6.4
|
||||
with:
|
||||
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
|
||||
private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }}
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage' && ( github.event.pull_request || github.event.issue.pull_request )
|
||||
steps:
|
||||
- name: PR sync
|
||||
uses: backstage/actions/pr-sync@v0.6.3
|
||||
uses: backstage/actions/pr-sync@v0.6.4
|
||||
with:
|
||||
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
node-version: 18.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v18.x
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: linux-v16
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
with:
|
||||
node-version: 16.x
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v16.x
|
||||
- name: run Lighthouse CI
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: yarn install
|
||||
uses: backstage/actions/yarn-install@v0.6.3
|
||||
uses: backstage/actions/yarn-install@v0.6.4
|
||||
with:
|
||||
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
|
||||
- name: storybook yarn install
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
---
|
||||
id: aws-lightsail
|
||||
title: Deploying Backstage on AWS Lightsail
|
||||
sidebar_label: AWS Lightsail
|
||||
description: How to deploy Backstage on AWS Lightsail
|
||||
---
|
||||
|
||||
> **DISCLAIMER: The `deploy` command is in alpha and still experimental. Do not use the `deploy` command for production deployments.**
|
||||
|
||||
Getting started with Backstage often involves setting up an instance on a cloud provider and sharing it with your team so they can experiment. To make this cloud deployment easier, we've built a `deploy` command to stand up a proof-of-concept instance on AWS (using Lightsail).
|
||||
|
||||
## What is AWS Lightsail
|
||||
|
||||
:::tip
|
||||
|
||||
AWS offers a free tier for up to three months on $10 USD/month Container service (Micro -1 node). By default we use the `nano` node, so if you are a new user this approach shouldn't cost you anything. For more information, refer to the [pricing](https://aws.amazon.com/lightsail/pricing/) documentation.
|
||||
|
||||
:::
|
||||
|
||||
AWS Lightsail offers a simple way to run containers in the cloud. To learn more about AWS Lightsail, please refer to the [official documentation](https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-services-deployments).
|
||||
|
||||
## Creating user in AWS
|
||||
|
||||
- Open the AWS console and navigate to the IAM section
|
||||
- In the left side menu click on `Users` and then click on `Add users`
|
||||
- Specify a username and then click on `Next`
|
||||
- Afterwards you can assign permissions, select `Attach policies directly` and then click on `Create policy`.
|
||||
This should take you to a new window in which you can create a new policy based on `JSON`.
|
||||
Copy over the following:
|
||||
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Sid": "VisualEditor0",
|
||||
"Effect": "Allow",
|
||||
"Action": [
|
||||
"ecr:DescribeImageReplicationStatus",
|
||||
"ecr:ListTagsForResource",
|
||||
"ecr:UploadLayerPart",
|
||||
"ecr:BatchGetRepositoryScanningConfiguration",
|
||||
"ecr:DeleteRepository",
|
||||
"ecr:GetRegistryScanningConfiguration",
|
||||
"ecr:CompleteLayerUpload",
|
||||
"ecr:TagResource",
|
||||
"ecr:DescribeRepositories",
|
||||
"ecr:DeleteRepositoryPolicy",
|
||||
"ecr:BatchCheckLayerAvailability",
|
||||
"ecr:GetLifecyclePolicy",
|
||||
"ecr:GetRegistryPolicy",
|
||||
"ecr:PutLifecyclePolicy",
|
||||
"ecr:DescribeImageScanFindings",
|
||||
"ecr:GetLifecyclePolicyPreview",
|
||||
"ecr:CreateRepository",
|
||||
"ecr:DescribeRegistry",
|
||||
"ecr:GetDownloadUrlForLayer",
|
||||
"ecr:GetAuthorizationToken",
|
||||
"ecr:DeleteLifecyclePolicy",
|
||||
"ecr:PutImage",
|
||||
"ecr:UntagResource",
|
||||
"ecr:SetRepositoryPolicy",
|
||||
"ecr:BatchGetImage",
|
||||
"ecr:InitiateLayerUpload",
|
||||
"ecr:GetRepositoryPolicy",
|
||||
"lightsail:CreateContainerService",
|
||||
"lightsail:GetKeyPair",
|
||||
"lightsail:GetContainerServiceDeployments",
|
||||
"lightsail:CreateContainerServiceRegistryLogin",
|
||||
"lightsail:GetContainerImages",
|
||||
"lightsail:UntagResource",
|
||||
"lightsail:RegisterContainerImage",
|
||||
"lightsail:GetContainerServices",
|
||||
"lightsail:GetContainerServicePowers",
|
||||
"lightsail:GetKeyPairs",
|
||||
"lightsail:CreateContainerServiceDeployment",
|
||||
"lightsail:GetContainerServiceMetricData",
|
||||
"lightsail:GetContainerAPIMetadata",
|
||||
"lightsail:DeleteContainerService",
|
||||
"lightsail:GetContainerLog",
|
||||
"lightsail:TagResource"
|
||||
],
|
||||
"Resource": "*"
|
||||
},
|
||||
{
|
||||
"Sid": "Statement1",
|
||||
"Effect": "Allow",
|
||||
"Action": [],
|
||||
"Resource": []
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Then click on `Next` and give the policy a name and a description of your liking. Afterwards, click on `Create policy`.
|
||||
|
||||
- Navigate back to the user creation window and press on the refresh button and search for the policy you just created. Now, create the user.
|
||||
- Now you will be redirected to all users, click on the user you just created and click on `Security credentials`
|
||||
- Scroll below and click on `Create access key`
|
||||
- Choose `Command Line Interface (CLI)`
|
||||
- Now export the following values
|
||||
|
||||
```bash
|
||||
$ export AWS_ACCESS_KEY_ID=... (first value)
|
||||
$ export AWS_SECRET_ACCESS_KEY=.... (second secret value)
|
||||
```
|
||||
|
||||
## Configuring the Pulumi CLI
|
||||
|
||||
Second, install the [Pulumi CLI](https://www.pulumi.com/docs/get-started/install/).
|
||||
|
||||
Then we need to execute the following commands, to set Pulumi up:
|
||||
|
||||
:::tip
|
||||
|
||||
Make sure to store your passphrase somewhere safe as it is used to encrypt/decrypt your Pulumi config.
|
||||
|
||||
:::
|
||||
|
||||
```bash
|
||||
$ pulumi login --local
|
||||
$ export PULUMI_CONFIG_PASSPHRASE="<your-secret>"
|
||||
```
|
||||
|
||||
By using `pulumi login --local` we are making sure that Pulumi stores our state on the local file disk. The environment variable `PULUMI_CONFIG_PASSPHRASE` is used by Pulumi to generate a unique key for your stack
|
||||
|
||||
## Deploying your instance on Lightsail
|
||||
|
||||
:::warning
|
||||
|
||||
Make sure that [Docker](https://docs.docker.com/) is running before you start this section.
|
||||
|
||||
:::
|
||||
|
||||
After you have made your changes to your local instance, it's time to deploy it on Lightsail.
|
||||
|
||||
First, we need to configure a new `app-config` file and update the `baseUrl`.
|
||||
|
||||
```bash
|
||||
$ touch app-config.deployment.yaml
|
||||
```
|
||||
|
||||
And then update the file with the following yaml:
|
||||
|
||||
```yaml
|
||||
app:
|
||||
baseUrl: ${BACKSTAGE_HOST}
|
||||
|
||||
backend:
|
||||
baseUrl: ${BACKSTAGE_HOST}
|
||||
```
|
||||
|
||||
The environment variable `BACKSTAGE_HOST` will be set to the endpoint that AWS Lightsail creates.
|
||||
|
||||
Now we can deploy our instance!
|
||||
|
||||
```bash
|
||||
$ npx backstage-deploy aws --stack backstage-poc --create-dockerfile
|
||||
```
|
||||
|
||||
In the first part of the command, we are specifying that we want to deploy our instance on AWS. With the [`--stack`](https://www.pulumi.com/docs/reference/cli/pulumi_stack/) option, we are providing Pulumi a reference to our container deployment. Furthermore, with the `--create-dockerfile` option, there will be a `Dockerfile` and `.dockerignore` created in the root of the project.
|
||||
|
||||
After running the command, Pulumi will start creating the following resources for you in AWS:
|
||||
|
||||
- ECR Repository
|
||||
- Lightsail Container Service
|
||||
- Lightsail Container Service Deployment
|
||||
- Policy that allows Lightsail to pull from ECR
|
||||
|
||||
If it's the first time building the Docker image, it might take a while for everything to be fully provisioned. After the command is finished running, your Backstage instance should be up and running on AWS Lightsail! 🎉
|
||||
|
||||
### Cleaning up resources
|
||||
|
||||
Cleaning up the resources is also done with the deploy command.
|
||||
|
||||
```bash
|
||||
$ npx backstage-deploy aws --stack backstage-poc --destroy
|
||||
```
|
||||
|
||||
This will delete everything that was originally created by the `deploy` command.
|
||||
@@ -94,7 +94,7 @@ export default async function createPlugin(
|
||||
scheduler: env.scheduler,
|
||||
});
|
||||
env.eventBroker.subscribe(githubProvider);
|
||||
builder.addEntityProvider(demoProvider);
|
||||
builder.addEntityProvider(githubProvider);
|
||||
/* highlight-add-end */
|
||||
const { processingEngine, router } = await builder.build();
|
||||
await processingEngine.start();
|
||||
|
||||
@@ -138,3 +138,4 @@ integration:
|
||||
- `Commit statuses`: `Read-only`
|
||||
- `Variables`: `Read & write` (if templates include GitHub Action Repository Variables)
|
||||
- `Secrets`: `Read & write` (if templates include GitHub Action Repository Secrets)
|
||||
- `Environments`: `Read & write` (if templates include GitHub Environments)
|
||||
|
||||
@@ -10,55 +10,64 @@ and where to use them.
|
||||
## help
|
||||
|
||||
This command displays a help summary or detailed help screens for each command.
|
||||
Below is a cleaned up output of `yarn backstage-cli --help`
|
||||
Below is a cleaned up output of `yarn backstage-cli --help`:
|
||||
|
||||
```text
|
||||
repo [command] Command that run across an entire Backstage project
|
||||
package [command] Lifecycle scripts for individual packages
|
||||
migrate [command] Migration utilities
|
||||
|
||||
create Open up an interactive guide to creating new things in your app
|
||||
|
||||
config:docs Browse the configuration reference documentation
|
||||
config:print Print the app configuration for the current package
|
||||
config:check Validate that the given configuration loads and matches schema
|
||||
config:schema Dump the app configuration schema
|
||||
|
||||
versions:bump Bump Backstage packages to the latest versions
|
||||
versions:check Check Backstage package versioning
|
||||
|
||||
build-workspace Builds a temporary dist workspace from the provided packages
|
||||
create-github-app Create new GitHub App in your organization (experimental)
|
||||
|
||||
info Show helpful information for debugging and reporting bugs
|
||||
help [command] display help for command
|
||||
new [options] Open up an interactive guide to creating new things in
|
||||
your app
|
||||
test Run tests, forwarding args to Jest, defaulting to watch
|
||||
mode [DEPRECATED]
|
||||
config:docs [options] Browse the configuration reference documentation
|
||||
config:print [options] Print the app configuration for the current package
|
||||
config:check [options] Validate that the given configuration loads and matches
|
||||
schema
|
||||
config:schema [options] Print configuration schema
|
||||
repo [command] Command that run across an entire Backstage project
|
||||
package [command] Lifecycle scripts for individual packages
|
||||
migrate [command] Migration utilities
|
||||
versions:bump [options] Bump Backstage packages to the latest versions
|
||||
versions:check [options] Check Backstage package versioning
|
||||
clean Delete cache directories [DEPRECATED]
|
||||
build-workspace <workspace-dir> [packages...] Builds a temporary dist workspace from the provided
|
||||
packages
|
||||
create-github-app <github-org> Create new GitHub App in your organization.
|
||||
info Show helpful information for debugging and reporting bugs
|
||||
help [command] display help for command
|
||||
```
|
||||
|
||||
The `package` command category, `yarn backstage-cli package --help`
|
||||
The `package` command category, `yarn backstage-cli package --help`:
|
||||
|
||||
```text
|
||||
start [options] Start a package for local development
|
||||
build [options] Build a package for production deployment or publishing
|
||||
lint [options] Lint a package
|
||||
test Run tests, forwarding args to Jest, defaulting to watch mode
|
||||
clean Delete cache directories
|
||||
prepack Prepares a package for packaging before publishing
|
||||
postpack Restores the changes made by the prepack command
|
||||
start [options] Start a package for local development
|
||||
build [options] Build a package for production deployment or publishing
|
||||
lint [options] [directories...] Lint a package
|
||||
test Run tests, forwarding args to Jest, defaulting to watch mode
|
||||
clean Delete cache directories
|
||||
prepack Prepares a package for packaging before publishing
|
||||
postpack Restores the changes made by the prepack command
|
||||
help [command] display help for command
|
||||
```
|
||||
|
||||
The `repo` command category, `yarn backstage-cli repo --help`
|
||||
The `repo` command category, `yarn backstage-cli repo --help`:
|
||||
|
||||
```text
|
||||
build [options] Build packages in the project, excluding bundled app and backend packages.
|
||||
lint [options] Lint all packages in the project
|
||||
build [options] Build packages in the project, excluding bundled app and backend packages.
|
||||
lint [options] Lint all packages in the project
|
||||
clean Delete cache and output directories
|
||||
list-deprecations [options] List deprecations
|
||||
test [options] Run tests, forwarding args to Jest, defaulting to watch mode
|
||||
help [command] display help for command
|
||||
```
|
||||
|
||||
The `migrate` command category, `yarn backstage-cli migrate --help`
|
||||
The `migrate` command category, `yarn backstage-cli migrate --help`:
|
||||
|
||||
```text
|
||||
package-roles Add package role field to packages that don't have it
|
||||
package-scripts Set package scripts according to each package role
|
||||
package-exports Synchronize package subpath export definitions
|
||||
package-lint-configs Migrates all packages to use @backstage/cli/config/eslint-factory
|
||||
react-router-deps Migrates the react-router dependencies for all packages to be peer dependencies
|
||||
help [command] display help for command
|
||||
```
|
||||
|
||||
## repo build
|
||||
@@ -235,7 +244,7 @@ Options:
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
## config:docs
|
||||
## config\:docs
|
||||
|
||||
This commands opens up the reference documentation of your apps local
|
||||
configuration schema in the browser. This is useful to get an overview of what
|
||||
@@ -252,7 +261,7 @@ Options:
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
## config:print
|
||||
## config\:print
|
||||
|
||||
Print the static configuration, defaulting to reading `app-config.yaml` in the
|
||||
repo root, using schema collected from all local packages in the repo.
|
||||
@@ -277,7 +286,7 @@ Options:
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
## config:check
|
||||
## config\:check
|
||||
|
||||
Validate that static configuration loads and matches schema, defaulting to
|
||||
reading `app-config.yaml` in the repo root and using schema collected from all
|
||||
@@ -296,7 +305,7 @@ Options:
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
## config:schema
|
||||
## config\:schema
|
||||
|
||||
Dump the configuration schema that was collected from all local packages in the
|
||||
repo.
|
||||
@@ -315,7 +324,7 @@ Options:
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
## versions:bump
|
||||
## versions\:bump
|
||||
|
||||
Bump all `@backstage` packages to the latest versions. This checks for updates
|
||||
in the package registry, and will update entries both in `yarn.lock` and
|
||||
@@ -330,7 +339,7 @@ Options:
|
||||
--release <version|next|main> Bump to a specific Backstage release line or version (default: "main")
|
||||
```
|
||||
|
||||
## versions:check
|
||||
## versions\:check
|
||||
|
||||
Validate `@backstage` dependencies within the repo, making sure that there are
|
||||
no duplicates of packages that might lead to breakages.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,79 @@
|
||||
---
|
||||
title: 'Welcome: Backstage Deploy CLI (Alpha)'
|
||||
author: Djamaile Rahamat, Spotify
|
||||
authorURL: https://github.com/djamaile
|
||||
authorImageURL: https://avatars.githubusercontent.com/u/15789670?v=4
|
||||
---
|
||||
|
||||
_This blog post is co-authored by Emma White ([@ewhite1997](https://github.com/ewhite1997)), Spotify._
|
||||
|
||||

|
||||
|
||||
TL;DR: Backstage released a new CLI earlier this year as part of a [new Backstage project](https://github.com/backstage/backstage-deploy). This new capability allows early adopters to deploy their Backstage proof of concept faster than before. In this blog, you’ll learn a little bit more about the Deploy CLI and how you can get started with it.
|
||||
|
||||
{/* truncate */}
|
||||
|
||||
## Why Backstage Deploy
|
||||
|
||||
We’ve heard from Backstage adopters that before reaching widespread adoption at their organizations, teams test out a Backstage proof of concept (POC). To create the POC, teams scaffold an instance, set up the catalog, and change the UI to suit their company’s branding. Once these milestones are completed, there's just one last step before showing off the awesomeness of a Backstage POC internally... deploying the Backstage POC from a local machine to the cloud. This final step often introduces a lot of questions that attempt to determine the easiest and fastest way to do that.
|
||||
|
||||
Let’s say you’re at this last step: your POC is ready for deployment, but you have some lingering questions.
|
||||
|
||||
For example:
|
||||
|
||||
- What Dockerfile should you use?
|
||||
- Should the POC be deployed on Kubernetes?
|
||||
- How do you deploy the POC on my cloud provider?
|
||||
|
||||
To address these questions and reduce friction from deploying a POC, we built a [new CLI](https://github.com/backstage/backstage-deploy). The CLI is simply called `deploy` and is invokable with `npx`. With this new CLI, you can generate a Dockerfile and deploy a Backstage instance onto a preferred cloud provider. While the package’s infrastructure is built to support all cloud providers, currently the CLI only offers an AWS implementation. In the future, we plan to add additional cloud providers to the package and [welcome any contributions](https://github.com/backstage/backstage/blob/6996b3338d678efc03307112524060e9dc2ad769/CONTRIBUTING.md) extending the suite of cloud provider implementations!
|
||||
|
||||
**So, what about Kubernetes?** Since the CLI is designed specifically for the POC phase, we believe that Kubernetes isn’t the right fit – as Kubernetes is better suited for production workloads. So, we explored lightweight, container-based solutions, and landed on [Amazon Lightsail](https://docs.aws.amazon.com/lightsail/index.html) as a hosting service for the POC.
|
||||
Amazon Lightsail supports [lightweight container](https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-services) deployments [at a low cost](https://aws.amazon.com/lightsail/pricing/), and has a [free trial for new users](https://aws.amazon.com/lightsail/pricing/?loc=ft#AWS_Free_Tier)! Given Lightsail’s ease of use and affordability, we recommend using Lightsail over Kubernetes to test out your Backstage POC.
|
||||
|
||||
With the Dockerfile and Kubernetes questions answered, we just have to address how to actually deploy the POC. And that is where the new CLI comes in.
|
||||
|
||||
## Get started with Deploy CLI
|
||||
|
||||
It's now time to put the Deploy CLI into action and deploy a Backstage POC. The following steps guide you through the deployment process.
|
||||
|
||||
Deploy CLI makes use of [Pulumi](https://www.pulumi.com/docs/) which is an infrastructure-as-code tool that helps provision resources in the cloud. Before you get started, ensure you have the [Pulumi CLI](https://www.pulumi.com/docs/cli/) and [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) installed on your local machine.
|
||||
|
||||
You can find the step-by-step installation documentation for Pulumi under the [Deployment section](https://backstage.io/docs/deployment/backstage-deploy/aws-lightsail).
|
||||
|
||||
But we summarize the steps to deploy your POC here. You can invoke the the CLI you can use the following command:
|
||||
|
||||
```bash
|
||||
$ npx backstage-deploy aws --create-dockerfile
|
||||
Starting Pulumi
|
||||
successfully initialized stack
|
||||
installing aws plugin...
|
||||
plugins installed
|
||||
setting up config
|
||||
refreshing stack...
|
||||
Refreshing (backstage):
|
||||
|
||||
Instance will live at:
|
||||
https://backstage-container-service.xxx.us-east-1.cs.amazonlightsail.com/
|
||||
```
|
||||
|
||||
Once you kick off the command it will create a Dockerfile for you in the root and Pulumi will start provisioning resources in AWS.
|
||||
Pulumi will then create a container based deployment in Amazon Lightsail.
|
||||
|
||||
After you’re done with the POC, it’s easy to delete the AWS resources you provisioned and save you costs within AWS. You can do so with the following command:
|
||||
|
||||
```bash
|
||||
$ npx backstage-deploy aws --destroy
|
||||
```
|
||||
|
||||
## Looking ahead
|
||||
|
||||
As mentioned earlier in this blog, we released the Backstage Deploy CLI with an AWS implementation only. In the next few months, we are excited to collect feedback from our end users to understand how the AWS implementation works. With those learnings, we plan to iterate on the Deploy CLI and build out implementations for other cloud providers. Of course, contributions are always welcome!
|
||||
|
||||
So, please try this new CLI out and let us know what you think on [Discord](https://discord.com/channels/687207715902193673/995973463208644678)!
|
||||
|
||||
Useful links:
|
||||
|
||||
- [Backstage Deploy](https://github.com/backstage/backstage-deploy)
|
||||
- [Documentation](https://backstage.io/docs/deployment/backstage-deploy/aws-lightsail)
|
||||
- [Pulumi docs](https://www.pulumi.com/docs/)
|
||||
- [#deployment](https://discord.com/channels/687207715902193673/995973463208644678) channel in Discord
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
@@ -325,7 +325,12 @@
|
||||
"deployment/scaling",
|
||||
"deployment/docker",
|
||||
"deployment/k8s",
|
||||
"deployment/heroku"
|
||||
"deployment/heroku",
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Using Backstage Deploy (alpha)",
|
||||
"items": ["deployment/backstage-deploy/aws-lightsail"]
|
||||
}
|
||||
],
|
||||
"Designing for Backstage": [
|
||||
"dls/design",
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
"@types/react": "^17",
|
||||
"@types/react-dom": "^17"
|
||||
},
|
||||
"version": "1.15.0-next.1",
|
||||
"version": "1.15.0-next.2",
|
||||
"dependencies": {
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@manypkg/get-packages": "^1.1.3"
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.4.0-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/core-app-api@1.8.1-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.13-next.0
|
||||
|
||||
## 1.4.0-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.4.0-next.1",
|
||||
"version": "1.4.0-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,75 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.84-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/plugin-tech-insights@0.3.11-next.2
|
||||
- @backstage/plugin-scaffolder-react@1.5.0-next.2
|
||||
- @backstage/plugin-scaffolder@1.13.2-next.2
|
||||
- @backstage/plugin-home@0.5.3-next.2
|
||||
- @backstage/plugin-kubernetes@0.9.2-next.2
|
||||
- @backstage/app-defaults@1.4.0-next.2
|
||||
- @backstage/cli@0.22.8-next.1
|
||||
- @backstage/integration-react@1.1.14-next.2
|
||||
- @backstage/plugin-adr@0.6.1-next.2
|
||||
- @backstage/plugin-airbrake@0.3.19-next.2
|
||||
- @backstage/plugin-api-docs@0.9.4-next.2
|
||||
- @backstage/plugin-azure-devops@0.3.1-next.2
|
||||
- @backstage/plugin-azure-sites@0.1.8-next.2
|
||||
- @backstage/plugin-badges@0.2.43-next.2
|
||||
- @backstage/plugin-catalog-graph@0.2.31-next.2
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.0-next.1
|
||||
- @backstage/plugin-circleci@0.3.19-next.2
|
||||
- @backstage/plugin-cloudbuild@0.3.19-next.2
|
||||
- @backstage/plugin-code-coverage@0.2.12-next.2
|
||||
- @backstage/plugin-cost-insights@0.12.8-next.2
|
||||
- @backstage/plugin-devtools@0.1.1-next.2
|
||||
- @backstage/plugin-dynatrace@6.0.0-next.2
|
||||
- @backstage/plugin-entity-feedback@0.2.2-next.2
|
||||
- @backstage/plugin-explore@0.4.4-next.2
|
||||
- @backstage/plugin-gcalendar@0.3.15-next.2
|
||||
- @backstage/plugin-gcp-projects@0.3.38-next.2
|
||||
- @backstage/plugin-github-actions@0.6.0-next.2
|
||||
- @backstage/plugin-gocd@0.1.25-next.2
|
||||
- @backstage/plugin-graphiql@0.2.51-next.2
|
||||
- @backstage/plugin-jenkins@0.8.1-next.2
|
||||
- @backstage/plugin-kafka@0.3.19-next.2
|
||||
- @backstage/plugin-lighthouse@0.4.4-next.2
|
||||
- @backstage/plugin-linguist@0.1.4-next.2
|
||||
- @backstage/plugin-microsoft-calendar@0.1.4-next.2
|
||||
- @backstage/plugin-newrelic@0.3.37-next.2
|
||||
- @backstage/plugin-octopus-deploy@0.2.1-next.2
|
||||
- @backstage/plugin-org@0.6.9-next.2
|
||||
- @backstage/plugin-pagerduty@0.5.12-next.2
|
||||
- @backstage/plugin-playlist@0.1.10-next.2
|
||||
- @backstage/plugin-puppetdb@0.1.2-next.2
|
||||
- @backstage/plugin-rollbar@0.4.19-next.2
|
||||
- @backstage/plugin-search@1.3.1-next.2
|
||||
- @backstage/plugin-search-react@1.6.1-next.2
|
||||
- @backstage/plugin-sentry@0.5.4-next.2
|
||||
- @backstage/plugin-shortcuts@0.3.11-next.2
|
||||
- @backstage/plugin-stack-overflow@0.1.16-next.2
|
||||
- @backstage/plugin-stackstorm@0.1.3-next.2
|
||||
- @backstage/plugin-tech-radar@0.6.5-next.2
|
||||
- @backstage/plugin-techdocs@1.6.3-next.2
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.14-next.2
|
||||
- @backstage/plugin-techdocs-react@1.1.7-next.2
|
||||
- @backstage/plugin-todo@0.2.21-next.2
|
||||
- @backstage/plugin-user-settings@0.7.4-next.2
|
||||
- @internal/plugin-catalog-customized@0.0.11-next.2
|
||||
- @backstage/plugin-catalog-import@0.9.9-next.2
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.12-next.2
|
||||
- @backstage/plugin-apache-airflow@0.2.12-next.2
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-app-api@1.8.1-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.13-next.0
|
||||
|
||||
## 0.2.84-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.84-next.1",
|
||||
"version": "0.2.84-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -46,10 +46,10 @@
|
||||
"test:kubernetes": "backstage-cli package test -t KubernetesContainerRunner --no-watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/abort-controller": "^3.310.0",
|
||||
"@aws-sdk/client-s3": "^3.310.0",
|
||||
"@aws-sdk/credential-providers": "^3.310.0",
|
||||
"@aws-sdk/types": "^3.310.0",
|
||||
"@aws-sdk/abort-controller": "^3.347.0",
|
||||
"@aws-sdk/client-s3": "^3.350.0",
|
||||
"@aws-sdk/credential-providers": "^3.350.0",
|
||||
"@aws-sdk/types": "^3.347.0",
|
||||
"@backstage/backend-app-api": "workspace:^",
|
||||
"@backstage/backend-dev-utils": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
@@ -114,7 +114,7 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@aws-sdk/util-stream-node": "^3.310.0",
|
||||
"@aws-sdk/util-stream-node": "^3.350.0",
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^",
|
||||
"@types/archiver": "^5.1.0",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# example-backend-next
|
||||
|
||||
## 0.0.12-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.11.1-next.2
|
||||
- @backstage/plugin-scaffolder-backend@1.15.0-next.2
|
||||
|
||||
## 0.0.12-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend-next",
|
||||
"version": "0.0.12-next.1",
|
||||
"version": "0.0.12-next.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# example-backend
|
||||
|
||||
## 0.2.84-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.11.1-next.2
|
||||
- @backstage/plugin-badges-backend@0.2.1-next.2
|
||||
- @backstage/plugin-scaffolder-backend@1.15.0-next.2
|
||||
- @backstage/plugin-auth-backend@0.18.4-next.2
|
||||
- @backstage/plugin-code-coverage-backend@0.2.12-next.2
|
||||
- example-app@0.2.84-next.2
|
||||
- @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.1.3-next.2
|
||||
- @backstage/plugin-scaffolder-backend-module-rails@0.4.15-next.2
|
||||
- @backstage/config@1.0.7
|
||||
|
||||
## 0.2.84-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.2.84-next.1",
|
||||
"version": "0.2.84-next.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/core-components
|
||||
|
||||
## 0.13.2-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 66ae4d8ca380: Added `exact` prop to `SidebarSubmenuItem` which causes it to only highlight if the current location is an exact match.
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.13.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1087,6 +1087,7 @@ export type SidebarSubmenuItemProps = {
|
||||
to?: string;
|
||||
icon?: IconComponent;
|
||||
dropdownItems?: SidebarSubmenuItemDropdownItem[];
|
||||
exact?: boolean;
|
||||
};
|
||||
|
||||
// @public
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core-components",
|
||||
"description": "Core components used by Backstage plugins and apps",
|
||||
"version": "0.13.2-next.1",
|
||||
"version": "0.13.2-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -92,6 +92,10 @@ const VARIANT_STYLES = {
|
||||
flexDirection: 'column',
|
||||
height: 'calc(100% - 10px)', // for pages without content header
|
||||
marginBottom: '10px',
|
||||
breakInside: 'avoid-page',
|
||||
'@media print': {
|
||||
height: 'auto',
|
||||
},
|
||||
},
|
||||
},
|
||||
cardContent: {
|
||||
|
||||
@@ -33,6 +33,11 @@ const useStyles = makeStyles<BackstageTheme>(
|
||||
[theme.breakpoints.down('xs')]: {
|
||||
height: '100%',
|
||||
},
|
||||
'@media print': {
|
||||
display: 'block',
|
||||
height: 'auto',
|
||||
overflowY: 'inherit',
|
||||
},
|
||||
},
|
||||
}),
|
||||
{ name: 'BackstagePage' },
|
||||
|
||||
@@ -63,6 +63,9 @@ const useStyles = makeStyles<BackstageTheme, { sidebarConfig: SidebarConfig }>(
|
||||
'&::-webkit-scrollbar': {
|
||||
display: 'none',
|
||||
},
|
||||
'@media print': {
|
||||
display: 'none',
|
||||
},
|
||||
},
|
||||
drawerWidth: props => ({
|
||||
width: props.sidebarConfig.drawerWidthClosed,
|
||||
|
||||
@@ -411,7 +411,11 @@ const SidebarItemBase = forwardRef<any, SidebarItemProps>((props, ref) => {
|
||||
{itemIcon}
|
||||
</Box>
|
||||
{text && (
|
||||
<Typography variant="subtitle2" className={classes.label}>
|
||||
<Typography
|
||||
variant="subtitle2"
|
||||
component="span"
|
||||
className={classes.label}
|
||||
>
|
||||
{text}
|
||||
</Typography>
|
||||
)}
|
||||
|
||||
@@ -72,6 +72,9 @@ const useStyles = makeStyles<BackstageTheme, { sidebarConfig: SidebarConfig }>(
|
||||
zIndex: theme.zIndex.snackbar,
|
||||
// SidebarDivider color
|
||||
borderTop: '1px solid #383838',
|
||||
'@media print': {
|
||||
display: 'none',
|
||||
},
|
||||
},
|
||||
|
||||
overlay: props => ({
|
||||
|
||||
@@ -51,6 +51,9 @@ const useStyles = makeStyles<
|
||||
[theme.breakpoints.down('xs')]: {
|
||||
paddingBottom: props => props.sidebarConfig.mobileSidebarHeight,
|
||||
},
|
||||
'@media print': {
|
||||
padding: '0px !important',
|
||||
},
|
||||
},
|
||||
content: {
|
||||
zIndex: 0,
|
||||
|
||||
@@ -127,7 +127,7 @@ export const SidebarSubmenu = (props: SidebarSubmenuProps) => {
|
||||
[classes.drawerOpen]: isSubmenuOpen,
|
||||
})}
|
||||
>
|
||||
<Typography variant="h5" className={classes.title}>
|
||||
<Typography variant="h5" component="span" className={classes.title}>
|
||||
{props.title}
|
||||
</Typography>
|
||||
{props.children}
|
||||
|
||||
@@ -130,6 +130,7 @@ export type SidebarSubmenuItemProps = {
|
||||
to?: string;
|
||||
icon?: IconComponent;
|
||||
dropdownItems?: SidebarSubmenuItemDropdownItem[];
|
||||
exact?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -138,7 +139,7 @@ export type SidebarSubmenuItemProps = {
|
||||
* @public
|
||||
*/
|
||||
export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
const { title, subtitle, to, icon: Icon, dropdownItems } = props;
|
||||
const { title, subtitle, to, icon: Icon, dropdownItems, exact } = props;
|
||||
const classes = useStyles();
|
||||
const { setIsHoveredOn } = useContext(SidebarItemWithSubmenuContext);
|
||||
const closeSubmenu = () => {
|
||||
@@ -146,7 +147,7 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
};
|
||||
const toLocation = useResolvedPath(to ?? '');
|
||||
const currentLocation = useLocation();
|
||||
let isActive = isLocationMatch(currentLocation, toLocation);
|
||||
let isActive = isLocationMatch(currentLocation, toLocation, exact);
|
||||
|
||||
const [showDropDown, setShowDropDown] = useState(false);
|
||||
const handleClickDropdown = () => {
|
||||
@@ -155,7 +156,7 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
if (dropdownItems !== undefined) {
|
||||
dropdownItems.some(item => {
|
||||
const resolvedPath = resolvePath(item.to);
|
||||
isActive = isLocationMatch(currentLocation, resolvedPath);
|
||||
isActive = isLocationMatch(currentLocation, resolvedPath, exact);
|
||||
return isActive;
|
||||
});
|
||||
return (
|
||||
@@ -171,11 +172,19 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
)}
|
||||
>
|
||||
{Icon && <Icon fontSize="small" />}
|
||||
<Typography variant="subtitle1" className={classes.label}>
|
||||
<Typography
|
||||
variant="subtitle1"
|
||||
component="span"
|
||||
className={classes.label}
|
||||
>
|
||||
{title}
|
||||
<br />
|
||||
{subtitle && (
|
||||
<Typography variant="caption" className={classes.subtitle}>
|
||||
<Typography
|
||||
variant="caption"
|
||||
component="span"
|
||||
className={classes.subtitle}
|
||||
>
|
||||
{subtitle}
|
||||
</Typography>
|
||||
)}
|
||||
@@ -203,7 +212,7 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
onClick={closeSubmenu}
|
||||
onTouchStart={e => e.stopPropagation()}
|
||||
>
|
||||
<Typography className={classes.textContent}>
|
||||
<Typography component="span" className={classes.textContent}>
|
||||
{object.title}
|
||||
</Typography>
|
||||
</Link>
|
||||
@@ -229,11 +238,19 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => {
|
||||
onTouchStart={e => e.stopPropagation()}
|
||||
>
|
||||
{Icon && <Icon fontSize="small" />}
|
||||
<Typography variant="subtitle1" className={classes.label}>
|
||||
<Typography
|
||||
variant="subtitle1"
|
||||
component="span"
|
||||
className={classes.label}
|
||||
>
|
||||
{title}
|
||||
<br />
|
||||
{subtitle && (
|
||||
<Typography variant="caption" className={classes.subtitle}>
|
||||
<Typography
|
||||
variant="caption"
|
||||
component="span"
|
||||
className={classes.subtitle}
|
||||
>
|
||||
{subtitle}
|
||||
</Typography>
|
||||
)}
|
||||
|
||||
@@ -95,4 +95,30 @@ describe('isLocationMatching', () => {
|
||||
toLocation = { pathname: '/catalog', search: '', hash: '' };
|
||||
expect(isLocationMatch(currentLocation, toLocation)).toBe(true);
|
||||
});
|
||||
|
||||
describe('exact matching', () => {
|
||||
it('return false when target query parameters are subset of current location query parameters', async () => {
|
||||
currentLocation = {
|
||||
pathname: '/catalog',
|
||||
search: '?x=foo&y=bar',
|
||||
state: null,
|
||||
hash: '',
|
||||
key: '',
|
||||
};
|
||||
toLocation = { pathname: '/catalog', search: '?x=foo', hash: '' };
|
||||
expect(isLocationMatch(currentLocation, toLocation, true)).toBe(false);
|
||||
});
|
||||
|
||||
it('return true when target query parameters are exact match with current location query parameters', async () => {
|
||||
currentLocation = {
|
||||
pathname: '/catalog',
|
||||
search: '?x=foo&y=bar',
|
||||
state: null,
|
||||
hash: '',
|
||||
key: '',
|
||||
};
|
||||
toLocation = { pathname: '/catalog', search: '?y=bar&x=foo', hash: '' };
|
||||
expect(isLocationMatch(currentLocation, toLocation, true)).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -18,7 +18,11 @@ import { Location, Path } from 'history';
|
||||
import { isEqual, isMatch } from 'lodash';
|
||||
import qs from 'qs';
|
||||
|
||||
export function isLocationMatch(currentLocation: Location, toLocation: Path) {
|
||||
export function isLocationMatch(
|
||||
currentLocation: Location,
|
||||
toLocation: Path,
|
||||
exact: boolean = false,
|
||||
) {
|
||||
const toDecodedSearch = new URLSearchParams(toLocation.search).toString();
|
||||
const toQueryParameters = qs.parse(toDecodedSearch);
|
||||
|
||||
@@ -27,9 +31,11 @@ export function isLocationMatch(currentLocation: Location, toLocation: Path) {
|
||||
).toString();
|
||||
const currentQueryParameters = qs.parse(currentDecodedSearch);
|
||||
|
||||
const queryStringMatcher = exact ? isEqual : isMatch;
|
||||
|
||||
const matching =
|
||||
isEqual(toLocation.pathname, currentLocation.pathname) &&
|
||||
isMatch(currentQueryParameters, toQueryParameters);
|
||||
queryStringMatcher(currentQueryParameters, toQueryParameters);
|
||||
|
||||
return matching;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/create-app
|
||||
|
||||
## 0.5.2-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## 0.5.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/create-app",
|
||||
"description": "A CLI that helps you create your own Backstage app",
|
||||
"version": "0.5.2-next.1",
|
||||
"version": "0.5.2-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @backstage/dev-utils
|
||||
|
||||
## 1.0.16-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/app-defaults@1.4.0-next.2
|
||||
- @backstage/integration-react@1.1.14-next.2
|
||||
- @backstage/test-utils@1.4.0-next.2
|
||||
- @backstage/core-app-api@1.8.1-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 1.0.16-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/dev-utils",
|
||||
"description": "Utilities for developing Backstage plugins.",
|
||||
"version": "1.0.16-next.1",
|
||||
"version": "1.0.16-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# e2e-test
|
||||
|
||||
## 0.2.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/create-app@0.5.2-next.2
|
||||
|
||||
## 0.2.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "e2e-test",
|
||||
"description": "E2E test for verifying Backstage packages",
|
||||
"version": "0.2.4-next.1",
|
||||
"version": "0.2.4-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "cli"
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
"clean": "backstage-cli package clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sts": "^3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.310.0",
|
||||
"@aws-sdk/credential-providers": "^3.310.0",
|
||||
"@aws-sdk/types": "^3.310.0",
|
||||
"@aws-sdk/client-sts": "^3.350.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.350.0",
|
||||
"@aws-sdk/credential-providers": "^3.350.0",
|
||||
"@aws-sdk/types": "^3.347.0",
|
||||
"@aws-sdk/util-arn-parser": "^3.310.0",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^"
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/integration-react
|
||||
|
||||
## 1.1.14-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 1.1.14-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/integration-react",
|
||||
"description": "Frontend package for managing integrations towards external systems",
|
||||
"version": "1.1.14-next.1",
|
||||
"version": "1.1.14-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# techdocs-cli-embedded-app
|
||||
|
||||
## 0.2.83-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/plugin-catalog@1.11.1-next.2
|
||||
- @backstage/app-defaults@1.4.0-next.2
|
||||
- @backstage/cli@0.22.8-next.1
|
||||
- @backstage/integration-react@1.1.14-next.2
|
||||
- @backstage/test-utils@1.4.0-next.2
|
||||
- @backstage/plugin-techdocs@1.6.3-next.2
|
||||
- @backstage/plugin-techdocs-react@1.1.7-next.2
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-app-api@1.8.1-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.2.83-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "techdocs-cli-embedded-app",
|
||||
"version": "0.2.83-next.1",
|
||||
"version": "0.2.83-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/test-utils
|
||||
|
||||
## 1.4.0-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-app-api@1.8.1-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.13-next.0
|
||||
|
||||
## 1.4.0-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/test-utils",
|
||||
"description": "Utilities to test Backstage plugins and apps.",
|
||||
"version": "1.4.0-next.1",
|
||||
"version": "1.4.0-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/theme
|
||||
|
||||
## 0.4.0-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 5065a5e8ebd6: Tweaked `UnifiedThemeProvider` to avoid overlapping JSS class names in production.
|
||||
|
||||
## 0.4.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/theme",
|
||||
"description": "material-ui theme for use with Backstage.",
|
||||
"version": "0.4.0-next.0",
|
||||
"version": "0.4.0-next.1",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -16,7 +16,11 @@
|
||||
|
||||
import React, { ReactNode } from 'react';
|
||||
import './MuiClassNameSetup';
|
||||
import { ThemeProvider } from '@material-ui/core/styles';
|
||||
import {
|
||||
ThemeProvider,
|
||||
StylesProvider,
|
||||
createGenerateClassName,
|
||||
} from '@material-ui/core/styles';
|
||||
import {
|
||||
StyledEngineProvider,
|
||||
ThemeProvider as Mui5Provider,
|
||||
@@ -35,6 +39,14 @@ export interface UnifiedThemeProviderProps {
|
||||
noCssBaseline?: boolean;
|
||||
}
|
||||
|
||||
// Background at https://mui.com/x/migration/migration-data-grid-v4/#using-mui-core-v4-with-v5
|
||||
// Rather than disabling globals and custom seed, we instead only set a production prefix that
|
||||
// won't collide with MUI 5 styles. We've already got a separate class name generator for v5 set
|
||||
// up in MuiClassNameSetup.ts, so only the production JSS needs deduplication.
|
||||
const generateV4ClassName = createGenerateClassName({
|
||||
productionPrefix: 'jss4-',
|
||||
});
|
||||
|
||||
/**
|
||||
* Provides themes for all MUI versions supported by the provided unified theme.
|
||||
*
|
||||
@@ -61,7 +73,11 @@ export function UnifiedThemeProvider(
|
||||
);
|
||||
|
||||
if (v4Theme) {
|
||||
result = <ThemeProvider theme={v4Theme}>{result}</ThemeProvider>;
|
||||
result = (
|
||||
<StylesProvider generateClassName={generateV4ClassName}>
|
||||
<ThemeProvider theme={v4Theme}>{result}</ThemeProvider>
|
||||
</StylesProvider>
|
||||
);
|
||||
}
|
||||
|
||||
if (v5Theme) {
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/plugin-adr
|
||||
|
||||
## 0.6.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/integration-react@1.1.14-next.2
|
||||
- @backstage/plugin-search-react@1.6.1-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.6.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-adr",
|
||||
"version": "0.6.1-next.1",
|
||||
"version": "0.6.1-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/plugin-airbrake
|
||||
|
||||
## 0.3.19-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/dev-utils@1.0.16-next.2
|
||||
- @backstage/test-utils@1.4.0-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.3.19-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-airbrake",
|
||||
"version": "0.3.19-next.1",
|
||||
"version": "0.3.19-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-allure
|
||||
|
||||
## 0.1.35-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.1.35-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/plugin-allure",
|
||||
"description": "A Backstage plugin that integrates with Allure",
|
||||
"version": "0.1.35-next.1",
|
||||
"version": "0.1.35-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-analytics-module-ga
|
||||
|
||||
## 0.1.30-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.1.30-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-analytics-module-ga",
|
||||
"version": "0.1.30-next.1",
|
||||
"version": "0.1.30-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-analytics-module-ga4
|
||||
|
||||
## 0.1.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/config@1.0.7
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.1.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-analytics-module-ga4",
|
||||
"version": "0.1.1-next.1",
|
||||
"version": "0.1.1-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/plugin-apache-airflow
|
||||
|
||||
## 0.2.12-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.2.12-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-apache-airflow",
|
||||
"version": "0.2.12-next.1",
|
||||
"version": "0.2.12-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/plugin-api-docs
|
||||
|
||||
## 0.9.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.0-next.2
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/plugin-catalog@1.11.1-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.9.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/plugin-api-docs",
|
||||
"description": "A Backstage plugin that helps represent API entities in the frontend",
|
||||
"version": "0.9.4-next.1",
|
||||
"version": "0.9.4-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -168,7 +168,7 @@ describe('DefaultApiExplorerPage', () => {
|
||||
const { findByTitle, findByText } = await renderWrapped(
|
||||
<DefaultApiExplorerPage />,
|
||||
);
|
||||
expect(await findByText(/All \(1\)/)).toBeInTheDocument();
|
||||
expect(await findByText(/All apis \(1\)/)).toBeInTheDocument();
|
||||
expect(await findByTitle(/View/)).toBeInTheDocument();
|
||||
expect(await findByTitle(/View/)).toBeInTheDocument();
|
||||
expect(await findByTitle(/Edit/)).toBeInTheDocument();
|
||||
@@ -198,7 +198,7 @@ describe('DefaultApiExplorerPage', () => {
|
||||
const { findByTitle, findByText } = await renderWrapped(
|
||||
<DefaultApiExplorerPage actions={actions} />,
|
||||
);
|
||||
expect(await findByText(/All \(1\)/)).toBeInTheDocument();
|
||||
expect(await findByText(/All apis \(1\)/)).toBeInTheDocument();
|
||||
expect(await findByTitle(/Foo Action/)).toBeInTheDocument();
|
||||
expect(await findByTitle(/Bar Action/)).toBeInTheDocument();
|
||||
expect((await findByTitle(/Bar Action/)).firstChild).toBeDisabled();
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/plugin-apollo-explorer
|
||||
|
||||
## 0.1.12-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.0-next.1
|
||||
- @backstage/core-components@0.13.2-next.2
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
|
||||
## 0.1.12-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-apollo-explorer",
|
||||
"version": "0.1.12-next.1",
|
||||
"version": "0.1.12-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/plugin-auth-backend
|
||||
|
||||
## 0.18.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d0f5b0c886c2: Set the expiration time of oidc `idToken` to be less than backstage session expiration time.
|
||||
- Updated dependencies
|
||||
- @backstage/config@1.0.7
|
||||
|
||||
## 0.18.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user