Merge branch 'master' into fix/url_wrong
Signed-off-by: Johannes Kleinlercher <johannes.kleinlercher@suxess-it.com>
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search': patch
|
||||
---
|
||||
|
||||
Fixed bug in "View Full Results" link of Search Modal that did not navigate to the full results page.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Replace reference to deprecated import
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Post-create message - added instruction to run `yarn install` when app was created with `--skip-install`
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': minor
|
||||
---
|
||||
|
||||
**BREAKING**
|
||||
|
||||
This change updates the configuration of the confluence-to-markdown action so that it does not conflict with other confluence plguins. Currently many plugins make use of the `confluence.auth` configuration. However, only the confluence-to-markdown action uses the `confluence.auth` as a string. This change updates it so that `confluence.auth` is an object.
|
||||
|
||||
## Required Changes
|
||||
|
||||
Below are examples for updating `bearer`, `basic`, and `userpass` implementations.
|
||||
|
||||
For `bearer`:
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'bearer'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'bearer'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
```
|
||||
|
||||
For `basic`:
|
||||
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'basic'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
email: 'example@company.org'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'basic'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
email: 'example@company.org'
|
||||
```
|
||||
|
||||
For `userpass`
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'userpass'
|
||||
username: 'your-username'
|
||||
password: 'your-password'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'userpass'
|
||||
username: 'your-username'
|
||||
password: 'your-password'
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/theme': patch
|
||||
---
|
||||
|
||||
Overwrite `PaletteOptions` & `ThemeOptions` type to allow use of `createTheme` from `@backstage/theme` as well as `@material-ui/core/styles` with the same type. Also replaced the default `CSSBaseline` with v4 instead of v5 for better backwards compatibility for now.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
add cy.\*\*.should to cypress eslintrc
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-airbrake-backend': patch
|
||||
---
|
||||
|
||||
Added support for the [new backend system](https://backstage.io/docs/backend-system/)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-airbrake': patch
|
||||
---
|
||||
|
||||
Added documentation for the [new backend system](https://backstage.io/docs/backend-system/)
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
'@backstage/cli-node': patch
|
||||
'@backstage/plugin-devtools-backend': patch
|
||||
'@backstage/plugin-tech-insights-backend': patch
|
||||
---
|
||||
|
||||
semver upgrade to 7.5.3
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-lighthouse': patch
|
||||
---
|
||||
|
||||
Added more verbose components (used to render `null`) when no audits for a website corresponding to the provided url were found.
|
||||
Added `Create New Audit` button for the `AuditListForEntity` component used by `EntityLighthouseContent` and `EmbeddedRouter`.
|
||||
Removed error alert from `errorApi` if error was due to no audits being found for a website (empty database query result).
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-import': patch
|
||||
---
|
||||
|
||||
Add a "View Component" button as the primary CTA after registering a new component using a link to catalog-info.yaml
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Indicate the name of the option that is being deprecated in task deprecation warning.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Proxy endpoint supports cluster URLs with subpath
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': minor
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
Tables which use `EntityTableProps` now have an additional `tableOptions` prop which can be used to provide additional table options to these components.
|
||||
@@ -231,22 +231,66 @@
|
||||
"@backstage/plugin-xcmetrics": "0.2.39"
|
||||
},
|
||||
"changesets": [
|
||||
"afraid-windows-rule",
|
||||
"angry-phones-wash",
|
||||
"beige-actors-melt",
|
||||
"chatty-buttons-deny",
|
||||
"cli-always-yarn-pack-freal",
|
||||
"cold-hounds-cheat",
|
||||
"cool-beans-tap",
|
||||
"cool-starfishes-love",
|
||||
"create-app-1687867724",
|
||||
"cuddly-guests-hide",
|
||||
"cyan-shirts-deny",
|
||||
"dirty-wasps-draw",
|
||||
"dull-onions-remember",
|
||||
"fluffy-frogs-change",
|
||||
"fluffy-readers-own",
|
||||
"forty-kids-do",
|
||||
"fresh-bears-yawn",
|
||||
"green-otters-wait",
|
||||
"heavy-jeans-refuse",
|
||||
"khaki-rocks-do",
|
||||
"lazy-frogs-destroy",
|
||||
"lemon-cycles-enjoy",
|
||||
"many-ants-poke",
|
||||
"mean-bobcats-taste",
|
||||
"mighty-pandas-deny",
|
||||
"mighty-shoes-refuse",
|
||||
"neat-spiders-glow",
|
||||
"old-rules-give",
|
||||
"polite-shrimps-confess",
|
||||
"popular-crabs-deny",
|
||||
"popular-icons-doubt",
|
||||
"popular-kangaroos-accept",
|
||||
"pretty-apes-know",
|
||||
"pretty-falcons-drive",
|
||||
"purple-feet-approve",
|
||||
"purple-starfishes-design",
|
||||
"red-cherries-draw",
|
||||
"renovate-46eac46",
|
||||
"renovate-739552f",
|
||||
"renovate-f316d5e",
|
||||
"rotten-colts-decide",
|
||||
"seven-pillows-hear",
|
||||
"shiny-meals-chew",
|
||||
"short-rabbits-roll",
|
||||
"silent-oranges-explode",
|
||||
"silly-chairs-protect",
|
||||
"silver-balloons-sniff",
|
||||
"sixty-humans-rescue",
|
||||
"sour-humans-begin",
|
||||
"strange-baboons-look",
|
||||
"sweet-cameras-kick",
|
||||
"sweet-pots-rescue",
|
||||
"tame-carpets-smell",
|
||||
"tender-clouds-promise",
|
||||
"tender-oranges-change",
|
||||
"thin-countries-battle",
|
||||
"tough-flowers-suffer",
|
||||
"twenty-seas-float"
|
||||
"twenty-seas-float",
|
||||
"wicked-ears-scream",
|
||||
"yellow-schools-relax",
|
||||
"young-frogs-burn"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
---
|
||||
|
||||
Update readme and instructions
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-adr-backend': patch
|
||||
---
|
||||
|
||||
Added support for the [new backend system](https://backstage.io/docs/backend-system/)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
The `Skip to content` button on click focuses on the main article tag and skips the `h1` tag. Users are not able to identify which page they are on currently. Now it's changed the behaviour of the button and focuses on the `h1` tag on the page.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Parse unicode characters in name for avatar component
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
---
|
||||
|
||||
Make pod drawer headings consistent
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `esbuild` to `^0.18.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/codemods': patch
|
||||
---
|
||||
|
||||
Updated dependency `jscodeshift` to `^0.15.0`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-codescene': patch
|
||||
'@backstage/plugin-sonarqube': patch
|
||||
---
|
||||
|
||||
Updated dependency `rc-progress` to `3.4.2`.
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor
|
||||
---
|
||||
|
||||
**BREAKING** Allow incremental event handlers to be async; Force event handler
|
||||
to indicate if it made a change. Instead of returning `null` or `undefined` from an event
|
||||
handler to indicate no-oop, instead return the value { type: "ignored" }.
|
||||
|
||||
**before**
|
||||
|
||||
```javascript
|
||||
import { createDelta, shouldIgnore } from "./my-delta-creater";
|
||||
|
||||
eventHandler: {
|
||||
onEvent(params) {
|
||||
if (shouldIgnore(params)) {
|
||||
return;
|
||||
}
|
||||
return createDelta(params);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**after**
|
||||
|
||||
```javascript
|
||||
import { createDelta, shouldIgnore } from "./my-delta-creater";
|
||||
|
||||
eventHandler: {
|
||||
async onEvent(params) {
|
||||
if (shouldIgnore(params) {
|
||||
return { type: "ignored" };
|
||||
}
|
||||
// code to create delta can now be async if needed
|
||||
return await createDelta(params);
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Fixed a bug where the proxy endpoint would error when used in combination with
|
||||
a local kubectl proxy process and a token-based auth strategy on-cluster.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/plugin-home-react': patch
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
Add possibility to customize the settings widget for different
|
||||
properties by using the `uiSchema` provided by the json-schema.
|
||||
More information here: https://rjsf-team.github.io/react-jsonschema-form/docs/api-reference/uiSchema
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
'@backstage/plugin-cost-insights': patch
|
||||
'@backstage/plugin-user-settings': patch
|
||||
'@backstage/theme': patch
|
||||
'@backstage/test-utils': patch
|
||||
'@backstage/core-plugin-api': patch
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/core-app-api': patch
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Fixing MUI / Material UI references
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
Fixed spacing for success message
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Display a warning alert if relations are defined, which don't exist in the catalog.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Updated included Dockerfile to include `g++`. Also updated the comments to note that some of the dependencies are also needed by isolated-vm
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Remove zooming in restrictions in the catalog graph
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
---
|
||||
|
||||
Changed Google cloud auth scope to read-only.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
Support for Token Endpoint Auth Method for OIDC Provider
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-adr-common': patch
|
||||
'@backstage/plugin-adr': patch
|
||||
---
|
||||
|
||||
fixed error with date parsing.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-plugin-api': patch
|
||||
---
|
||||
|
||||
Change `IconComponent` type to be compatible with Material UI v5 icons.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
|
||||
---
|
||||
|
||||
Fixed a bug in `gitlab:group:ensureExists` where `repos` was always set as the root group.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/theme': patch
|
||||
---
|
||||
|
||||
Override the spacing to a v5 compliant method
|
||||
@@ -246,11 +246,14 @@ module.exports = {
|
||||
1,
|
||||
{
|
||||
forbid: [
|
||||
{ element: 'button', message: 'use MUI <Button> instead' },
|
||||
{ element: 'p', message: 'use MUI <Typography> instead' },
|
||||
{
|
||||
element: 'button',
|
||||
message: 'use Material UI <Button> instead',
|
||||
},
|
||||
{ element: 'p', message: 'use Material UI <Typography> instead' },
|
||||
{
|
||||
element: 'span',
|
||||
message: 'use a MUI <Typography> variant instead',
|
||||
message: 'use a Material UI <Typography> variant instead',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -402,6 +402,7 @@ Uffizzi
|
||||
ui
|
||||
unbreak
|
||||
Unconference
|
||||
unicode
|
||||
unmanaged
|
||||
unregister
|
||||
unregistering
|
||||
@@ -409,6 +410,7 @@ unregistration
|
||||
untracked
|
||||
upsert
|
||||
upvote
|
||||
url
|
||||
URIs
|
||||
URLs
|
||||
utils
|
||||
|
||||
@@ -354,6 +354,7 @@ auth:
|
||||
clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
|
||||
authorizationUrl: ${AUTH_OIDC_AUTH_URL}
|
||||
tokenUrl: ${AUTH_OIDC_TOKEN_URL}
|
||||
tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_AUTH_METHOD} # default='client_secret_basic'
|
||||
tokenSignedResponseAlg: ${AUTH_OIDC_TOKEN_SIGNED_RESPONSE_ALG} # default='RS256'
|
||||
scope: ${AUTH_OIDC_SCOPE} # default='openid profile email'
|
||||
prompt: ${AUTH_OIDC_PROMPT} # default=none (allowed values: auto, none, consent, login)
|
||||
|
||||
@@ -64,8 +64,8 @@ valuable as you grow.
|
||||
|
||||
### Our company has a strong design language system/brand that we want to incorporate. Does Backstage support this?
|
||||
|
||||
Yes! The Backstage UI is built using Material-UI. With the theming capabilities
|
||||
of Material-UI, you are able to adapt the interface to your brand guidelines.
|
||||
Yes! The Backstage UI is built using Material UI. With the theming capabilities
|
||||
of Material UI, you are able to adapt the interface to your brand guidelines.
|
||||
|
||||
## Technical FAQ
|
||||
|
||||
@@ -73,11 +73,11 @@ of Material-UI, you are able to adapt the interface to your brand guidelines.
|
||||
|
||||
Backstage is a large scale [TypeScript](https://www.typescriptlang.org/)
|
||||
application whose frontend parts use [React](https://react.dev/) and
|
||||
[Material-UI](https://mui.com/), while the backend parts use
|
||||
[Material UI](https://material-ui.com/), while the backend parts use
|
||||
[Node.js](https://nodejs.org/) and the [Express](https://expressjs.com/)
|
||||
framework.
|
||||
|
||||
### Why Material-UI?
|
||||
### Why Material UI?
|
||||
|
||||
The short answer is that's what we've been using in Backstage internally.
|
||||
|
||||
@@ -88,7 +88,7 @@ knew that we would like to use.
|
||||
|
||||
It strikes a good balance between power, customizability, and ease of use. A
|
||||
core focus of Backstage is to make plugin developers productive with as few
|
||||
hurdles as possible. Material-UI lets plugin makers get going easily with both
|
||||
hurdles as possible. Material UI lets plugin makers get going easily with both
|
||||
well-known tech and a large flora of components.
|
||||
|
||||
### What is the end-to-end user flow? The happy path story.
|
||||
|
||||
@@ -20,12 +20,12 @@ In order to provide more flexibility in what types of themes can be used and how
|
||||
they are applied, the `theme` property on the `AppTheme` type is being
|
||||
deprecated and replaced by a `Provider` property instead. The `Provider`
|
||||
property is a React component that will be mounted at the root of the app
|
||||
whenever that theme is active. This also removes the tight connection to MUI and
|
||||
whenever that theme is active. This also removes the tight connection to Material UI and
|
||||
opens up for other type of themes, and removes the hardcoded usage of
|
||||
`<CssBaseline>`.
|
||||
|
||||
To migrate an existing theme, remove the `theme` property and move it over to a
|
||||
new `Provider` component, using `ThemeProvider` from MUI to provide the new
|
||||
new `Provider` component, using `ThemeProvider` from Material UI to provide the new
|
||||
theme, along with `<CssBaseline>`. For example a theme that currently looks like
|
||||
this:
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ const app = createApp({
|
||||
components: {
|
||||
SignInPage: props => {
|
||||
const configApi = useApi(configApiRef);
|
||||
if (configApi.getString('auth.environment') !== 'development')
|
||||
if (configApi.getString('auth.environment') !== 'development') {
|
||||
return <ProxiedSignInPage {...props} provider="azure-easyauth" />;
|
||||
}
|
||||
return (
|
||||
|
||||
@@ -237,6 +237,7 @@ check the App Registration you created:
|
||||
- `metadataUrl`: In Overview > Endpoints tab, grab OpenID Connect metadata document URL.
|
||||
- `authorizationUrl` and `tokenUrl`: Open the `metadataUrl` in a browser, that json will
|
||||
hold these 2 urls somewhere in there.
|
||||
- `tokenEndpointAuthMethod`: Don't define it, use the default unless you know what it does.
|
||||
- `tokenSignedResponseAlg`: Don't define it, use the default unless you know what it does.
|
||||
- `scope`: Only used if we didn't specify `defaultScopes` in the provider's factory,
|
||||
basically the same thing.
|
||||
|
||||
@@ -37,7 +37,7 @@ The required steps in the host build are to install dependencies with
|
||||
`yarn install`, generate type definitions using `yarn tsc`, and build the backend
|
||||
package with `yarn build:backend`.
|
||||
|
||||
In a CI workflow it might look something like this:
|
||||
In a CI workflow it might look something like this, from the root:
|
||||
|
||||
```bash
|
||||
yarn install --frozen-lockfile
|
||||
@@ -47,7 +47,7 @@ yarn tsc
|
||||
|
||||
# Build the backend, which bundles it all up into the packages/backend/dist folder.
|
||||
# The configuration files here should match the one you use inside the Dockerfile below.
|
||||
yarn build:backend --config app-config.yaml
|
||||
yarn build:backend --config ../../app-config.yaml
|
||||
```
|
||||
|
||||
Once the host build is complete, we are ready to build our image. The following
|
||||
@@ -56,13 +56,18 @@ Once the host build is complete, we are ready to build our image. The following
|
||||
```Dockerfile
|
||||
FROM node:16-bullseye-slim
|
||||
|
||||
# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends python3 g++ build-essential && \
|
||||
yarn config set python /usr/bin/python3
|
||||
|
||||
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
|
||||
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
|
||||
yarn config set python /usr/bin/python3
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev
|
||||
|
||||
# From here on we use the least-privileged `node` user to run the backend.
|
||||
USER node
|
||||
@@ -169,13 +174,19 @@ RUN find packages \! -name "package.json" -mindepth 2 -maxdepth 2 -exec rm -rf {
|
||||
# Stage 2 - Install dependencies and build packages
|
||||
FROM node:16-bullseye-slim AS build
|
||||
|
||||
# install sqlite3 dependencies
|
||||
# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
|
||||
apt-get install -y --no-install-recommends python3 g++ build-essential && \
|
||||
yarn config set python /usr/bin/python3
|
||||
|
||||
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
|
||||
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev
|
||||
|
||||
USER node
|
||||
WORKDIR /app
|
||||
|
||||
@@ -200,13 +211,18 @@ RUN mkdir packages/backend/dist/skeleton packages/backend/dist/bundle \
|
||||
# Stage 3 - Build the actual backend image and install production dependencies
|
||||
FROM node:16-bullseye-slim
|
||||
|
||||
# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends python3 g++ build-essential && \
|
||||
yarn config set python /usr/bin/python3
|
||||
|
||||
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
|
||||
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
|
||||
yarn config set python /usr/bin/python3
|
||||
apt-get install -y --no-install-recommends libsqlite3-dev
|
||||
|
||||
# From here on we use the least-privileged `node` user to run the backend.
|
||||
USER node
|
||||
|
||||
@@ -7,7 +7,7 @@ description: Documentation on Design
|
||||
Be it a new component contribution, or plugin specific components, you'll want
|
||||
to follow these guidelines. We'll cover the three main subjects that define the
|
||||
general look and feel of your components, all of which build on top of the
|
||||
Material-UI theme features:
|
||||
Material UI theme features:
|
||||
|
||||
- Layout
|
||||
- Color palette
|
||||
@@ -17,10 +17,10 @@ Material-UI theme features:
|
||||
|
||||
Layout refers to how you organize or stack content. Whenever possible, we want
|
||||
to use Backstage's components (check the [Storybook][1] for a list and demo)
|
||||
first, and otherwise fall back to Material-UI components (check the [MUI docs][2]).
|
||||
first, and otherwise fall back to Material UI components (check the [Material UI docs][2]).
|
||||
|
||||
If none of these fit your layout needs, then you can build your own components.
|
||||
However, using HTML+CSS directly is not recommended; it's better to use MUI
|
||||
However, using HTML+CSS directly is not recommended; it's better to use Material UI
|
||||
layout components to make your layout theme aware, meaning if someone changes
|
||||
the theme, your layout would react to those changes without requiring updates
|
||||
to your code.
|
||||
@@ -43,13 +43,13 @@ specific styles for that component, that includes paddings, margins and colors.
|
||||
|
||||
However when making a component from scratch you'll need to reference the theme
|
||||
as much as possible, make sure to use the theme's color palette. Most Backstage
|
||||
components and all MUI components should use the theme's color palette by default,
|
||||
components and all Material UI components should use the theme's color palette by default,
|
||||
so unless you need explicit control on the color of a component (say when the
|
||||
component was designed to use the primary color but you want to use the
|
||||
secondary color instead), then the easiest way to access the color palette is
|
||||
to [Override the Component Styles][11] as suggested by Backstage.
|
||||
|
||||
It's not a very common use case to override a theme color in a MUI component
|
||||
It's not a very common use case to override a theme color in a Material UI component
|
||||
but let's say you have a custom Sidebar component with a Paper component that
|
||||
highlights its content with a different color for a side menu or something
|
||||
(usually you use the elevation, but maybe the designer wanted a colorful app).
|
||||
@@ -78,7 +78,7 @@ which tokens you can use as reference from the compiled theme.
|
||||
|
||||
## Typography
|
||||
|
||||
Most of the time the components from MUI will use the `<Typography />` component
|
||||
Most of the time the components from Material UI will use the `<Typography />` component
|
||||
which will use the theme's typography properties like font family, size, weight
|
||||
and appropriate color from the palette for the context of that component. This applies for example to
|
||||
buttons that use white font color for contained buttons, or the respective color
|
||||
|
||||
@@ -14,8 +14,8 @@ You'll find our storybook at
|
||||
[http://backstage.io/storybook](http://backstage.io/storybook).
|
||||
|
||||
As noted in the [design introduction](design.md), Backstage's design is based
|
||||
off of [Material-UI](https://material-ui.com/). Much of the UI elements use
|
||||
direct Material-UI, while we've also extended and written custom ones to provide
|
||||
off of [Material UI](https://material-ui.com/). Much of the UI elements use
|
||||
direct Material UI, while we've also extended and written custom ones to provide
|
||||
specific functionality.
|
||||
|
||||

|
||||
@@ -27,13 +27,13 @@ copied.
|
||||
When custom Backstage components are created, they are placed in the
|
||||
`@backstage/core-components` package and added to the Storybook.
|
||||
|
||||
There may be times where an existing Material-UI component (in
|
||||
There may be times where an existing Material UI component (in
|
||||
`@material-ui/core`) is sufficient and doesn't need to be wrapped or duplicated.
|
||||
However, we may want to identify an _opinionated_ way to use that component
|
||||
inside of Backstage. In these cases, stories showing how to use those existing
|
||||
components will also be put into our storybook.
|
||||
|
||||
When a story example using Material-UI becomes more complex, requiring a
|
||||
When a story example using Material UI becomes more complex, requiring a
|
||||
specific set of colors, variants, parameters, etc., it may become a candidate to
|
||||
be refactored to become a full Backstage core component.
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ infrastructure UIs (and incurring additional cognitive overhead each time they
|
||||
make a context switch), most of these tools can be organized around the entities
|
||||
in the catalog.
|
||||
|
||||

|
||||

|
||||
|
||||
The Backstage platform can be customized by incorporating
|
||||
[existing open source plugins](https://github.com/backstage/backstage/tree/master/plugins),
|
||||
|
||||
@@ -42,7 +42,7 @@ the "Overriding Backstage and Material UI css rules" section below.
|
||||
You can also create a theme from scratch that matches the `BackstageTheme` type
|
||||
exported by [`@backstage/theme`](https://www.npmjs.com/package/@backstage/theme).
|
||||
See the
|
||||
[Material-UI docs on theming](https://material-ui.com/customization/theming/)
|
||||
[Material UI docs on theming](https://material-ui.com/customization/theming/)
|
||||
for more information about how that can be done.
|
||||
|
||||
## Using your Custom Theme
|
||||
@@ -162,7 +162,7 @@ const myTheme = createTheme({
|
||||
```
|
||||
|
||||
For a more complete example of a custom theme including Backstage and
|
||||
Material-UI component overrides, see the [Aperture
|
||||
Material UI component overrides, see the [Aperture
|
||||
theme](https://github.com/backstage/demo/blob/master/packages/app/src/theme/aperture.ts)
|
||||
from the [Backstage demo site](https://demo.backstage.io).
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ yarn add --cwd packages/backend pg
|
||||
```
|
||||
|
||||
Use your favorite editor to open `app-config.yaml` and add your PostgreSQL
|
||||
configuration. in the root directory of your Backstage app using the credentials
|
||||
configuration in the root directory of your Backstage app using the credentials
|
||||
from the previous steps.
|
||||
|
||||
```yaml title="app-config.yaml"
|
||||
@@ -90,10 +90,17 @@ backend:
|
||||
user: ${POSTGRES_USER}
|
||||
password: ${POSTGRES_PASSWORD}
|
||||
# https://node-postgres.com/features/ssl
|
||||
# ssl: require # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require)
|
||||
#ca: # if you have a CA file and want to verify it you can uncomment this section
|
||||
#$file: <file-path>/ca/server.crt
|
||||
# highlight-add-end
|
||||
# ssl:
|
||||
# host is only needed if the connection name differs from the certificate name.
|
||||
# This is for example the case with CloudSQL.
|
||||
# host: servername in the certificate
|
||||
# ca:
|
||||
# $file: <file-path>/server.pem
|
||||
# key:
|
||||
# $file: <file-path>/client.key
|
||||
# cert:
|
||||
# $file: <file-path>/client-cert.pem
|
||||
# highlight-add-end
|
||||
```
|
||||
|
||||
You'll use the connection details from the previous step. You can either set the
|
||||
|
||||
@@ -84,7 +84,7 @@ For example, if you install the `api-docs` plugin, a matching `SidebarItem`
|
||||
could be something like this:
|
||||
|
||||
```tsx title="packages/app/src/components/Root/Root.tsx"
|
||||
// Import icon from MUI
|
||||
// Import icon from Material UI
|
||||
import ExtensionIcon from '@material-ui/icons/Extension';
|
||||
|
||||
// ... inside the AppSidebar component
|
||||
|
||||
@@ -484,30 +484,30 @@ of the build system, including the bundling, tests, builds, and type checking.
|
||||
Loaders are always selected based on the file extension. The following is a list
|
||||
of all supported file extensions:
|
||||
|
||||
| Extension | Exports | Purpose |
|
||||
| ----------- | --------------- | ----------------------------------------------------------------------------- |
|
||||
| `.ts` | Script Module | TypeScript |
|
||||
| `.tsx` | Script Module | TypeScript and XML |
|
||||
| `.js` | Script Module | JavaScript |
|
||||
| `.jsx` | Script Module | JavaScript and XML |
|
||||
| `.mjs` | Script Module | ECMAScript Module |
|
||||
| `.cjs` | Script Module | CommonJS Module |
|
||||
| `.json` | JSON Data | JSON Data |
|
||||
| `.yml` | JSON Data | YAML Data |
|
||||
| `.yaml` | JSON Data | YAML Data |
|
||||
| `.css` | classes | Style sheet |
|
||||
| `.eot` | URL Path | Font |
|
||||
| `.ttf` | URL Path | Font |
|
||||
| `.woff2` | URL Path | Font |
|
||||
| `.woff` | URL Path | Font |
|
||||
| `.bmp` | URL Path | Image |
|
||||
| `.gif` | URL Path | Image |
|
||||
| `.jpeg` | URL Path | Image |
|
||||
| `.jpg` | URL Path | Image |
|
||||
| `.png` | URL Path | Image |
|
||||
| `.svg` | URL Path | Image |
|
||||
| `.md` | URL Path | Markdown File |
|
||||
| `.icon.svg` | React Component | SVG converted into a [MUI SvgIcon](https://mui.com/components/icons/#svgicon) |
|
||||
| Extension | Exports | Purpose |
|
||||
| ----------- | --------------- | -------------------------------------------------------------------------------------- |
|
||||
| `.ts` | Script Module | TypeScript |
|
||||
| `.tsx` | Script Module | TypeScript and XML |
|
||||
| `.js` | Script Module | JavaScript |
|
||||
| `.jsx` | Script Module | JavaScript and XML |
|
||||
| `.mjs` | Script Module | ECMAScript Module |
|
||||
| `.cjs` | Script Module | CommonJS Module |
|
||||
| `.json` | JSON Data | JSON Data |
|
||||
| `.yml` | JSON Data | YAML Data |
|
||||
| `.yaml` | JSON Data | YAML Data |
|
||||
| `.css` | classes | Style sheet |
|
||||
| `.eot` | URL Path | Font |
|
||||
| `.ttf` | URL Path | Font |
|
||||
| `.woff2` | URL Path | Font |
|
||||
| `.woff` | URL Path | Font |
|
||||
| `.bmp` | URL Path | Image |
|
||||
| `.gif` | URL Path | Image |
|
||||
| `.jpeg` | URL Path | Image |
|
||||
| `.jpg` | URL Path | Image |
|
||||
| `.png` | URL Path | Image |
|
||||
| `.svg` | URL Path | Image |
|
||||
| `.md` | URL Path | Markdown File |
|
||||
| `.icon.svg` | React Component | SVG converted into a [Material UI SvgIcon](https://mui.com/material-ui/icons/#svgicon) |
|
||||
|
||||
## Jest Configuration
|
||||
|
||||
|
||||
@@ -34,15 +34,17 @@ is a concrete implementation of [AnalyticsApi][analytics-api-type], common
|
||||
integrations are packaged and provided as plugins. Find your analytics tool of
|
||||
choice below.
|
||||
|
||||
| Analytics Tool | Support Status |
|
||||
| ---------------------- | -------------- |
|
||||
| [Google Analytics][ga] | Yes ✅ |
|
||||
| Analytics Tool | Support Status |
|
||||
| ------------------------- | -------------- |
|
||||
| [Google Analytics][ga] | Yes ✅ |
|
||||
| [Google Analytics 4][ga4] | Yes ✅ |
|
||||
|
||||
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
|
||||
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
|
||||
[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
|
||||
|
||||
@@ -16,7 +16,7 @@ browser APIs or by depending on external modules to do the work.
|
||||
- Consider writing plugins in `TypeScript`.
|
||||
- Plan the directory structure of your plugin so that it becomes easy to manage.
|
||||
- Prefer using the [Backstage components](https://backstage.io/storybook),
|
||||
otherwise go with [Material-UI](https://material-ui.com/).
|
||||
otherwise go with [Material UI](https://material-ui.com/).
|
||||
- Check out the shared Backstage APIs before building a new one.
|
||||
|
||||
## Plugin concepts / API
|
||||
|
||||
@@ -93,7 +93,7 @@ next to them you can split up the UI in as many components as you feel like.
|
||||
|
||||
We have the `ExampleComponent` to show an example Backstage page component. The
|
||||
`ExampleFetchComponent` showcases the common task of making an async request to
|
||||
a public API and plot the response data in a table using Material-UI components.
|
||||
a public API and plot the response data in a table using Material UI components.
|
||||
|
||||
You may tweak these components, rename them and/or replace them completely.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ This release has an important security fix, along with a lot of squashed bugs an
|
||||
|
||||
### BREAKING: Removed the `Tabs` core component
|
||||
|
||||
The `Tabs` component was removed from `@backstage/core-components`. It was a thin shim that provided very little value and was considered confusing, when the [native Material-UI tabs](https://v4.mui.com/components/tabs/) were already fully usable out of the box. Check out the pull request below for more details.
|
||||
The `Tabs` component was removed from `@backstage/core-components`. It was a thin shim that provided very little value and was considered confusing, when the [native Material UI tabs](https://v4.mui.com/components/tabs/) were already fully usable out of the box. Check out the pull request below for more details.
|
||||
|
||||
Contributed by [@tudi2d](https://github.com/tudi2d) in [#16587](https://github.com/backstage/backstage/pull/16587)
|
||||
|
||||
|
||||
@@ -599,7 +599,7 @@
|
||||
|
||||
- 750e45539ad: Add close button & improve search input.
|
||||
|
||||
MUI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
Material UI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
|
||||
SearchBarBase's TextField's label support added & aria-label uses label string if present, tests relying on the default placeholder value should still work unless custom placeholder was given.
|
||||
|
||||
@@ -641,7 +641,7 @@
|
||||
|
||||
- 750e45539ad: Add close button & improve search input.
|
||||
|
||||
MUI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
Material UI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
|
||||
SearchBarBase's TextField's label support added & aria-label uses label string if present, tests relying on the default placeholder value should still work unless custom placeholder was given.
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
|
||||
- 750e45539ad: Add close button & improve search input.
|
||||
|
||||
MUI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
Material UI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
|
||||
SearchBarBase's TextField's label support added & aria-label uses label string if present, tests relying on the default placeholder value should still work unless custom placeholder was given.
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
|
||||
- 750e45539ad: Add close button & improve search input.
|
||||
|
||||
MUI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
Material UI's Paper wrapping the SearchBar in the SearchPage was removed, we recommend users update their apps accordingly.
|
||||
|
||||
SearchBarBase's TextField's label support added & aria-label uses label string if present, tests relying on the default placeholder value should still work unless custom placeholder was given.
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: Test App Wrapper is now using `UnifiedThemeProvider` for supporting MUI v5 next to MUI v4 in tests.
|
||||
- 1fd38bc4141a: Test App Wrapper is now using `UnifiedThemeProvider` for supporting Material UI v5 next to Material UI v4 in tests.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -137,9 +137,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
@@ -445,7 +445,7 @@
|
||||
- 6b571405f806: `scaffolder/next`: Provide some default template components to `rjsf` to allow for standardization and markdown descriptions
|
||||
- 4505dc3b4598: `scaffolder/next`: Don't render `TemplateGroups` when there's no results in with search query
|
||||
- a452bda74d7a: Fixed typescript casting bug for useTemplateParameterSchema hook
|
||||
- 6b571405f806: `scaffolder/next`: provide a `ScaffolderField` component which is meant to replace some of the `FormControl` components from MUI, making it easier to write `FieldExtensions`.
|
||||
- 6b571405f806: `scaffolder/next`: provide a `ScaffolderField` component which is meant to replace some of the `FormControl` components from Material UI, making it easier to write `FieldExtensions`.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -579,7 +579,7 @@
|
||||
- 75540599124a: Updated example component for a newly scaffolded app.
|
||||
- 5d692f72ebfb: Make sure to include a `fetch` environment for `jsdom` in `jest` tests
|
||||
- 6816352500a7: Add discovery feature to the onboard cli command.
|
||||
- 20b7da6f1311: Enforcing MUI v5 specific linting to minimize bundle size.
|
||||
- 20b7da6f1311: Enforcing Material UI v5 specific linting to minimize bundle size.
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.1.0
|
||||
- @backstage/config-loader@1.3.1
|
||||
@@ -640,7 +640,7 @@
|
||||
- 4e697e88f0e2: Add resource utilization to Pod Drawer
|
||||
- 78cbb8ef8aea: Enhance the sidebar item accessibility by using appropriate header semantics.
|
||||
- 66ae4d8ca380: Added `exact` prop to `SidebarSubmenuItem` which causes it to only highlight if the current location is an exact match.
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in MUI v5
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in Material UI v5
|
||||
- b4cc4b1415e9: SupportButton auto focus first item when opened.
|
||||
- e33beb1f2a8e: Make the documentation pages printable (also handy for exporting to PDF)
|
||||
- Updated dependencies
|
||||
@@ -854,7 +854,7 @@
|
||||
### Patch Changes
|
||||
|
||||
- 865267a6b934: Updated dependency `@asyncapi/react-component` to `1.0.0-next.48`.
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in MUI v5
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in Material UI v5
|
||||
- af748a148d52: Add support for OpenAPI Specification (OAS) v3.1.0 using swagger-ui v5.0.0.
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.5.2
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: Test App Wrapper is now using `UnifiedThemeProvider` for supporting MUI v5 next to MUI v4 in tests.
|
||||
- 1fd38bc4141a: Test App Wrapper is now using `UnifiedThemeProvider` for supporting Material UI v5 next to Material UI v4 in tests.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
@@ -234,7 +234,7 @@
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 20b7da6f1311: Enforcing MUI v5 specific linting to minimize bundle size.
|
||||
- 20b7da6f1311: Enforcing Material UI v5 specific linting to minimize bundle size.
|
||||
- Updated dependencies
|
||||
- @backstage/config-loader@1.3.1-next.0
|
||||
- @backstage/config@1.0.7
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
- 6b571405f806: `scaffolder/next`: Provide some default template components to `rjsf` to allow for standardization and markdown descriptions
|
||||
- 4505dc3b4598: `scaffolder/next`: Don't render `TemplateGroups` when there's no results in with search query
|
||||
- 6b571405f806: `scaffolder/next`: provide a `ScaffolderField` component which is meant to replace some of the `FormControl` components from MUI, making it easier to write `FieldExtensions`.
|
||||
- 6b571405f806: `scaffolder/next`: provide a `ScaffolderField` component which is meant to replace some of the `FormControl` components from Material UI, making it easier to write `FieldExtensions`.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in MUI v5
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in Material UI v5
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.2.0-next.0
|
||||
- @backstage/core-plugin-api@1.5.2-next.0
|
||||
@@ -479,7 +479,7 @@
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in MUI v5
|
||||
- 83bdc3a555c1: Replaced usages of `theme.palette.theme.hint` with `theme.palette.text.secondary` as it has been removed in Material UI v5
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.11.1-next.1
|
||||
- @backstage/core-components@0.13.2-next.1
|
||||
|
||||
@@ -72,10 +72,10 @@ for details and installation instructions.
|
||||
Contributed by [@alde](https://github.com/alde) in
|
||||
[#17828](https://github.com/backstage/backstage/pull/17828)
|
||||
|
||||
### More movement toward Material-UI v5 and React v18 compatibility
|
||||
### More movement toward Material UI v5 and React v18 compatibility
|
||||
|
||||
There have been some tweaks here or there to types and the theme system to
|
||||
ensure a smooth future migration toward Material-UI version 5. This should be
|
||||
ensure a smooth future migration toward Material UI version 5. This should be
|
||||
mostly transparent to adopters, but please let us know if you encounter any
|
||||
oddities around the theme system after upgrading to this release.
|
||||
|
||||
|
||||
@@ -995,7 +995,7 @@
|
||||
|
||||
- 64a579a998: Add items prop to SupportButton. This prop can be used to override the items that would otherwise be grabbed from the config.
|
||||
|
||||
- 5d3058355d: Add `react/forbid-elements` linter rule for button, suggest MUI `Button`
|
||||
- 5d3058355d: Add `react/forbid-elements` linter rule for button, suggest Material UI `Button`
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
|
||||
@@ -2804,7 +2804,7 @@
|
||||
- d3fea4ae0a: Internal fixes to avoid implicit usage of globals
|
||||
- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`.
|
||||
- a19cffbeed: Update search links to only have header as linkable text
|
||||
- 5d3058355d: Add `react/forbid-elements` linter rule for button, suggest MUI `Button`
|
||||
- 5d3058355d: Add `react/forbid-elements` linter rule for button, suggest Material UI `Button`
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 786f1b1419: Support older versions of react-router
|
||||
- Updated dependencies
|
||||
|
||||
@@ -128,11 +128,11 @@ old usages by the `string` type.
|
||||
|
||||
### Constrained `IconComponent` type
|
||||
|
||||
The `IconComponent` type used to allow all of the props from the MUI `SvgIcon`.
|
||||
The `IconComponent` type used to allow all of the props from the Material UI `SvgIcon`.
|
||||
This encouraged some bad patterns in open source plugins such as applying colors
|
||||
to the icons, which in turn hurt the ability to replace the icons with custom
|
||||
ones. The `IconComponent` type, which is now exported from
|
||||
`@backstage/core-plugin-api`, now only accepts a `fontSize` prop used to set the
|
||||
size of the icon. The type is compatible with the MUI `SvgIcon`, but there may
|
||||
size of the icon. The type is compatible with the Material UI `SvgIcon`, but there may
|
||||
be situations where an icon needs an explicit cast to `IconComponent` in order
|
||||
to narrow the type.
|
||||
|
||||
@@ -55,7 +55,7 @@ We will continue to post important product announcements, technical documentatio
|
||||
|
||||
[](https://github.com/backstage/community/#backstage-community)
|
||||
|
||||
Earlier this year, we began hosting [Backstage Community Sessions](https://github.com/backstage/community/#backstage-community) — official meetups for anyone who wanted to join them. Since [the very first one](https://youtu.be/4-VX9tDdJYY), the Backstage team has been inspired and humbled by the community’s participation in these sessions — from hearing the [Expedia Group team share their journey adopting Backstage](https://youtu.be/rRphwXeq33Q?t=1509) to discussions about TypeScript and Material-UI. It’s great collaborating through code — but it’s also a lot of fun when you can see each other’s faces and have a conversation.
|
||||
Earlier this year, we began hosting [Backstage Community Sessions](https://github.com/backstage/community/#backstage-community) — official meetups for anyone who wanted to join them. Since [the very first one](https://youtu.be/4-VX9tDdJYY), the Backstage team has been inspired and humbled by the community’s participation in these sessions — from hearing the [Expedia Group team share their journey adopting Backstage](https://youtu.be/rRphwXeq33Q?t=1509) to discussions about TypeScript and Material UI. It’s great collaborating through code — but it’s also a lot of fun when you can see each other’s faces and have a conversation.
|
||||
|
||||
And while these sessions have been a success, the feedback we’ve gotten from the community has been very clear: more frequent and more focused conversations. So, later this summer, we’ll be launching standalone Backstage Adopter Sessions and Backstage Contributor Sessions. We hope this will lead to more useful sessions for everyone — and, of course, you are welcome to attend either or both:
|
||||
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
---
|
||||
# prettier-ignore
|
||||
title: "Adopter Spotlight: How Stash simplified monitoring, ownership and true app health with microservices"
|
||||
author: Taylor Webber, Staff Engineer, Stash
|
||||
---
|
||||
|
||||

|
||||
|
||||
**TL;DR**: Monitoring the health of a software application goes beyond surfacing API errors and customer-facing issues. It requires a comprehensive understanding of every facet of a service, including process metrics like DORA, as well as clear ownership of services and processes. By implementing Elevate as an internal developer portal, development teams now have better visibility of ownership in the distributed systems they work in. They also have the benefit of consolidated application health data and other metrics gained from the SaaS products they utilize everyday. This approach ensures a “single pane of glass” for application ownership and health so our teams can focus on building products and features that help our customers invest for a prosperous future.
|
||||
|
||||
{/* truncate */}
|
||||
|
||||
At [Stash](stash.com), our mission is to give people the confidence to invest for a better life. Our app simplifies investing for the middle class who may be less experienced with traditional investing and retirement planning. Our customers trust us with their money, and with that, rely on us to provide a responsive and quality experience that works every time.
|
||||
|
||||
It isn't revolutionary to say that monitoring the health of a software application is critical for ensuring its reliability and performance in service of customers' needs. However, in a distributed architecture like microservices, tracking ownership and monitoring application health across the system quickly becomes complex. The difficulties are further compounded when leveraging multiple SaaS products, which is common in modern development but specifically so for fintechs like Stash that integrate best-of-breed software in novel ways, as we do across our platform.
|
||||
|
||||
What we found is that there are ways to make sense of these complex systems by tracking DevOps Research and Assessment (DORA) metrics for applications and leveraging SaaS products to create a central hub to understand the _true_ health of an application.
|
||||
|
||||
In this post, I'll walk you through Stash's journey to create Elevate, our Internal Developer Portal (IDP) based on the open source [Backstage](https://backstage.io/) framework. Our portal increased visibility of application health metrics, prioritized cloud cost insights, and reduced the context switching required for teams to understand service ownership and the components that make up the entirety of Stash's world-class application systems.
|
||||
|
||||
Elevate enables effective monitoring, streamlined incident response, improved overall application health, and most importantly, team health.
|
||||
|
||||
# Setting the monitoring/DORA scene
|
||||
|
||||
It seems counterintuitive, but trying to solve the problem of monitoring and tracking ownership with a traditional centralized approach and more SaaS monitoring tools will likely not solve the problem.
|
||||
|
||||
Traditional centralized monitoring approaches may not suffice in a distributed architecture due to services that may act as pass-throughs or services that call many other services to aggregate data or tasks. In traditional monitoring, you will only see the error rates and request logging for individual services. That will only ever show you part of the puzzle as you'll still be unable to trace a request from a frontend application, through your many service layers to your data stores and back out.
|
||||
|
||||
Utilizing multiple SaaS products for service monitoring and observability during development introduces additional complexity; each product may have its own dashboard and reporting tools. These implementation differences can make it difficult to consolidate and gain a holistic view of the application's health.
|
||||
|
||||
Picking the right tool for the job can make developing quality products at speed and scale easier, but what we've learned is that utilizing each tool's context for application health as a piece of the puzzle has exponentially impacted our team's effectiveness.
|
||||
|
||||
The team at Stash took an approach of enhanced monitoring which required introducing request tracing for services that a team owns (and the entire org) to get the full picture. We worked to distribute monitoring **_across_** services, capturing both customer-facing issues and internal process metrics that focus on service quality.
|
||||
|
||||
We also took a hard look at our health metrics. Some attributes of healthy applications are high availability, HTTP 500 errors are minimal, CPU and memory usage are sustainable, and the “/health” endpoint returns the health of the application. However, to gain insights into the true health of an application and the teams supporting it, tracking DORA metrics is essential.
|
||||
|
||||
We took four key DORA metrics — deployment frequency, lead time for changes, mean time to restore, and change failure rate — to process aspects of services and provide a comprehensive understanding of an application's overall health as well as the health of our team and organization.
|
||||
|
||||
# Understanding complex systems at Stash with Backstage
|
||||
|
||||
At Stash, we use a multitude of SaaS tools during the software development process, some of which provide varying degrees of built-in service catalogs. With many sources of truth and a lack of ability to combine data from multiple sources (eg. FireHydrant incident response with DataDog or DataDog Real User Monitoring data in PagerDuty, etc.) it was challenging to get a holistic view of the whole system..
|
||||
|
||||
Additionally, as we created more and more microservices, it became challenging to determine ownership for each service. Microservice owners were finding it increasingly difficult to keep track of their various consumers to assure that contracts were being maintained as new changes were introduced. Ownership clarity was **_crucial_** to our goals for effective monitoring, issue resolution, and maintaining accountability.
|
||||
|
||||
To consolidate application health data, simplify support and clarify ownership for those on development teams as well as for those in non-engineering roles, we implemented an instance of Backstage as an internal service catalog we call Elevate.
|
||||
|
||||
Utilizing Backstage as a framework, Elevate aims to improve quality and domain expertise for all things code and process at Stash. The key to accomplishing this goal is to leverage the processes and integrations we already use at Stash, but centralize and surface the data in a way that is digestible for engineers and non-engineers alike.
|
||||
|
||||
For the benefit of a self-managed internal service catalog to outweigh the change in processes and the cost of the catalog's infrastructure, it had to be easy to adopt and have an enlightening effect on teams.
|
||||
|
||||
## Ownership visibility
|
||||
|
||||
Elevate acts as a centralized hub for registering services, documenting ownership information, and establishing clear accountability. It provides a holistic view of distributed systems and the shared modules and libraries they use by making it easier to track ownership and ensure effective communication and collaboration.
|
||||
|
||||
The Backstage [Software Catalog](https://backstage.io/docs/features/software-catalog/) model allows service-level tracking, as well as dashboards for Groups (teams or squads), Systems (business units or focus areas), Domains (organization units) or even company wide.
|
||||
|
||||
### Easy adoption and catalog usage
|
||||
|
||||
The Backstage open source plugins provide the nuts and bolts for our internal service catalog functionality. Backstage's community plugins assist with the basics of catalog management. They also allow for dynamically changing the type content based on which entry is being viewed in the catalog (library, service, API, team, etc.). Each view can be custom-tailored with the information for that type of entry, which allows for shared libraries to have an overview page focused on getting engineers to documentation; while the overview page for a deployed service can focus on the current incident status and on-call information as the most important thing. The plugin for searching allows for easy discovery of items or documentation throughout the catalog.
|
||||
|
||||
###### Example catalog-info.yaml file to add service to Elevate
|
||||
|
||||
```yaml
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: your-service
|
||||
description: Awesome service for awesome things
|
||||
annotations:
|
||||
backstage.io/kubernetes-namespace: your-service
|
||||
datadoghq.com/site: datadoghq.com
|
||||
datadoghq.com/dashboard-url: https://p.datadoghq.com/some-dashbaord
|
||||
firehydrant.com/service-name: your-service
|
||||
jira/project-key: your-jira-project
|
||||
github.com/project-slug: 'your-org/your-service'
|
||||
pagerduty.com/service-id: your-pagerduty-service-id
|
||||
links:
|
||||
- title: Team Slack Channel
|
||||
url: https://your-company.slack.com/archives/your-slack-channel-id
|
||||
type: Slack
|
||||
icon: chat
|
||||
- title: Getting started
|
||||
url: https://github.com/your-org/your-service/blob/main/README.md
|
||||
type: Readme
|
||||
icon: github
|
||||
- title: Confluence
|
||||
url: https://your-company.atlassian.net/your-docs-page-url
|
||||
type: Confluence
|
||||
icon: docs
|
||||
spec:
|
||||
type: service
|
||||
lifecycle: production
|
||||
owner: your-team
|
||||
system: your-business-unit
|
||||
```
|
||||
|
||||
### Connecting to subject matter experts
|
||||
|
||||
Elevate leverages the CODEOWNERS integration to establish expertise of specific codebases within services and ensure accountability and clarity within the development teams. Codespace ownership is typically defined with required reviewers by code owners and admins that provide additional support, but the CODEOWNERS plugin allows for clarity into who the subject matter expert of the codebase is, not just the administrative owner. The plugin also displays recent changes that have been merged into the codebase, including the authors and approvers of the changes and other valuable metadata.
|
||||
|
||||
This improved clarity into contributors and recent contributions can prevent developers and managers from playing telephone when effective communication is crucial to fixing a bug or resolving an incident.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
_CODEOWNER cards for service ownership and recent changes that appear on a service's overview page._
|
||||
|
||||
## Integration with SaaS products
|
||||
|
||||
Backstage offers a catalog of integrations with many popular SaaS products. With Elevate, we've integrated plugins for monitoring infrastructure and user experience, visualizing process backlog and bottlenecks, as well as giving insights into data that teams have not yet been able to see for services they support. These integrations allow for seamless data collection and aggregation, transforming Elevate into the centralized hub for application and team health data.
|
||||
|
||||
The key to making your service catalog scalable is to ensure you aren't requiring the duplication of data away from its source; Elevate utilizes dashboards and charts to view the data stored in the remote sources. When aggregating DORA metrics we are able to leverage our SaaS tools API within Elevate's service layer to pull data and transform it for our custom dashboards.
|
||||
|
||||
### Visible cohesive monitoring
|
||||
|
||||
At Stash, we collect performance metrics, resource utilization, and proactive alerts with DataDog and Sentry; these tools can also monitor and track API errors and customer-facing issues that would normally go undetected. To deliver the best possible experience for Stash's customers, engineers need to be able to easily monitor errors on customer devices to solve issues before they are reported.
|
||||
|
||||
Sentry's plugin easily surfaces uncaught errors within services. DataDog's plugin allows for plug-and-play visualizations of charts or graphs to help support services, teams and beyond. Elevate integrates these insights to monitor the overall health of the application.
|
||||
|
||||
### Centralized incident management
|
||||
|
||||
PagerDuty has been Stash's standard for on-call activities and paging while FireHydrant has more recently been adopted as a part of a more comprehensive incident management process. Together, we use these incident management platforms to establish incident response workflows and communication channels dedicated to each service.
|
||||
|
||||
PagerDuty's plugin allows for quick reference to the individual who is actively on-call for a service while FireHydrant's plugin lets you track open incidents that may be impacting a service and even trigger new incidents directly from within the service overview page in Elevate. Integrating these plugins allows Elevate to serve as a centralized location for the incident management process, helping our engineers quickly gather the necessary context of an issue and drive faster resolution.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
_FireHydrant and PagerDuty cards that appear on a service's overview page._
|
||||
|
||||
## Infrastructure cost insights across all systems
|
||||
|
||||
It's difficult for teams to be more efficient with their infrastructure costs if they are unable to see the problem areas for the services they support, as well as references for effective resource management to model after. The AWS Cost Insights plugin allows Elevate to monitor cost-related metrics and ensure efficient resource allocation and budgeting.
|
||||
|
||||
Due to the dynamic nature of how different companies may want to aggregate their cost data, the plugin is mostly frontend visualizations for displaying costs over time with drop-downs for filtering and grouping. In Elevate, we created a custom backend plugin to pull our costs data from AWS and group it properly for presentation to the visualizations.
|
||||
|
||||
When we surface this data with the backend layer in Elevate, the frontend is able to surface our AWS cost data to people who previously didn't have access or who found it too difficult to use the more complex AWS Cost Explorer.
|
||||
|
||||
In addition to these people now having access to AWS cost data, those with access now get to visualize our spend by AWS product and Stash service. These visualizations are available when looking at a single service, a team or business unit, and organization-wide.
|
||||
|
||||

|
||||
|
||||
_Breakdown of costs per AWS product for a service._
|
||||
|
||||

|
||||
|
||||
_Breakdown of total costs per service owned by a Team or Business Unit._
|
||||
|
||||

|
||||
|
||||
_Breakdown of total costs per service across the organization._
|
||||
|
||||
For those that aren't regularly in AWS Cost Explorer, a benefit of implementing these visualizations is being able to easily see where we have some room for improvement when it comes to tagging our AWS resources. The company-wide breakdown shows all resources, whereas the sub-views rely on resource tagging for service name and team name, so discrepancies may arise which will help you close any gaps in tagging you may have. If resources are not properly tagged, reducing and managing your infrastructure costs will be more time consuming than necessary and much less effective.
|
||||
|
||||
## Service, team and organizational health
|
||||
|
||||
As mentioned above, gathering DORA metrics provides important insight into the health of applications and teams, but until we built Elevate, we didn't have a hub at Stash to aggregate and present that data in an easily digestible manner.
|
||||
|
||||
Elevate's initial DORA metrics implementation reaches out to the source(s) of truth for each metric and groups and surfaces that in a manner similar to the AWS Cost Insights implementation.
|
||||
|
||||
**Deployment Frequency** from DataDog “deployment” indicator for each service
|
||||
|
||||
**Lead Time for Changes** from GitHub for each repo using commit sha's and releases
|
||||
|
||||
**Mean Time to Restore** from FireHydrant using their MTTR API for each service
|
||||
|
||||
**Change Failure Rate** from DataDog and FireHydrant for each service
|
||||
|
||||
Elevate implemented the above data sources for our DORA metrics MVP as those have been determined as our best practices for where that information should be tracked, for now.
|
||||
|
||||

|
||||
|
||||
_DORA metrics that display on the overview page for each service._
|
||||
|
||||
Software development has an ever-changing SaaS landscape, so what serves as a best practice today, may not be in a week, a month or a year from now. The tools we use to facilitate a task or automate processes may change, but the metrics we want to track (DORA and others) are much more stable. Surfacing data in easily consumable views within Elevate has decoupled the tool we use to accomplish a task from where we monitor the health of our system and how that tool assists.
|
||||
|
||||

|
||||
|
||||
_An abstracted service layer that is agnostic of data source(s) allows for a stable integration for our frontend dashboards._
|
||||
|
||||

|
||||
|
||||
_Separate backend services by metric allow for easy updating for additional or new data sources in the future._
|
||||
|
||||
# tl;dr
|
||||
|
||||
Monitoring the health of a software application goes beyond surfacing API errors and customer-facing issues. It requires a comprehensive understanding of every facet of a service, including process metrics like DORA, as well as clear ownership of services and processes. By implementing Elevate as an internal developer portal, development teams now have better visibility of ownership in the distributed systems they work in. They also have the benefit of consolidated application health data and other metrics gained from the SaaS products they utilize everyday. This approach ensures a “single pane of glass” for application ownership and health so our teams can focus on building products and features that help our customers invest for a prosperous future.
|
||||
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 204 KiB |
@@ -2,7 +2,7 @@
|
||||
title: k8sgpt
|
||||
author: suxess-it
|
||||
authorUrl: https://github.com/suxess-it
|
||||
category: monitoring
|
||||
category: Monitoring
|
||||
description: show all k8sgpt results of the k8sgpt operator related to your entity
|
||||
documentation: https://github.com/suxess-it/backstage-plugin-k8sgpt/blob/main/README.md
|
||||
iconUrl: https://raw.githubusercontent.com/k8sgpt-ai/k8sgpt/1a81227d6148be59b7b9ae4e9ae5e2d9a5b7a9ae/images/banner-white.png
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Kubecost
|
||||
author: suxess-it
|
||||
authorUrl: https://github.com/suxess-it
|
||||
category: Discovery
|
||||
description: Get cost insights from Kubecost Installation for your k8s deployments
|
||||
documentation: https://github.com/suxess-it/backstage-plugin-kubecost/blob/main/README.md
|
||||
iconUrl: https://avatars.githubusercontent.com/u/45108136?s=200&v=4
|
||||
npmPackageName: '@suxess-it/backstage-plugin-kubecost'
|
||||
addedDate: '2023-06-29'
|
||||
@@ -2604,90 +2604,90 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-arm64@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.66"
|
||||
"@swc/core-darwin-arm64@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.68"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-x64@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.66"
|
||||
"@swc/core-darwin-x64@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.68"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm-gnueabihf@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.66"
|
||||
"@swc/core-linux-arm-gnueabihf@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.66"
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.66"
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.66"
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.68"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-musl@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.66"
|
||||
"@swc/core-linux-x64-musl@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.68"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.66"
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.66"
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.66":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.66"
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core@npm:^1.3.46":
|
||||
version: 1.3.66
|
||||
resolution: "@swc/core@npm:1.3.66"
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core@npm:1.3.68"
|
||||
dependencies:
|
||||
"@swc/core-darwin-arm64": 1.3.66
|
||||
"@swc/core-darwin-x64": 1.3.66
|
||||
"@swc/core-linux-arm-gnueabihf": 1.3.66
|
||||
"@swc/core-linux-arm64-gnu": 1.3.66
|
||||
"@swc/core-linux-arm64-musl": 1.3.66
|
||||
"@swc/core-linux-x64-gnu": 1.3.66
|
||||
"@swc/core-linux-x64-musl": 1.3.66
|
||||
"@swc/core-win32-arm64-msvc": 1.3.66
|
||||
"@swc/core-win32-ia32-msvc": 1.3.66
|
||||
"@swc/core-win32-x64-msvc": 1.3.66
|
||||
"@swc/core-darwin-arm64": 1.3.68
|
||||
"@swc/core-darwin-x64": 1.3.68
|
||||
"@swc/core-linux-arm-gnueabihf": 1.3.68
|
||||
"@swc/core-linux-arm64-gnu": 1.3.68
|
||||
"@swc/core-linux-arm64-musl": 1.3.68
|
||||
"@swc/core-linux-x64-gnu": 1.3.68
|
||||
"@swc/core-linux-x64-musl": 1.3.68
|
||||
"@swc/core-win32-arm64-msvc": 1.3.68
|
||||
"@swc/core-win32-ia32-msvc": 1.3.68
|
||||
"@swc/core-win32-x64-msvc": 1.3.68
|
||||
peerDependencies:
|
||||
"@swc/helpers": ^0.5.0
|
||||
dependenciesMeta:
|
||||
@@ -2714,7 +2714,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@swc/helpers":
|
||||
optional: true
|
||||
checksum: e6029c648ba47c522bed51a9f2fee606f82de1f9233e2e89197e43b0a4867054174ca05e825e688cdc4de332221c0da2e12ba7ba875549e8b5432aa70fe19263
|
||||
checksum: f56ad1d4cb91f7cc1cb5d4b9894bbb528da0b2eabc98984581f5b3f3187cf2c0d512003880f6ff7a3f6d215b7a3dcbf5a9c45e8a428ac2d711941027c0151d89
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5028,14 +5028,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"docusaurus-plugin-sass@npm:^0.2.3":
|
||||
version: 0.2.3
|
||||
resolution: "docusaurus-plugin-sass@npm:0.2.3"
|
||||
version: 0.2.4
|
||||
resolution: "docusaurus-plugin-sass@npm:0.2.4"
|
||||
dependencies:
|
||||
sass-loader: ^10.1.1
|
||||
peerDependencies:
|
||||
"@docusaurus/core": ^2.0.0-beta
|
||||
sass: ^1.30.0
|
||||
checksum: 928b02fd7c63835d54cdcce2eeda01cb6124707c6d43ef8e77db06474d3e3b4b7282cc0d88fed378cf1f3db2fc93ba8c11366965bb9b668eae19ca805e578acb
|
||||
checksum: 10e0c9f519dd7ef4666b1fb82d120738feab03ea451c18bab7f785627887f65b8cb72457065a9b2a2664af1490c20b38df9adf525c1b58ce3e324d2b50412734
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"@types/react": "^17",
|
||||
"@types/react-dom": "^17"
|
||||
},
|
||||
"version": "1.16.0-next.0",
|
||||
"version": "1.16.0-next.2",
|
||||
"dependencies": {
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@manypkg/get-packages": "^1.1.3"
|
||||
@@ -78,7 +78,7 @@
|
||||
"minimist": "^1.2.5",
|
||||
"node-gyp": "^9.4.0",
|
||||
"prettier": "^2.2.1",
|
||||
"semver": "^7.3.2",
|
||||
"semver": "^7.5.3",
|
||||
"shx": "^0.3.2",
|
||||
"ts-node": "^10.4.0",
|
||||
"typescript": "~5.0.0"
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.4.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.1-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.1
|
||||
- @backstage/core-components@0.13.3-next.2
|
||||
- @backstage/core-app-api@1.8.2-next.1
|
||||
- @backstage/plugin-permission-react@0.4.14-next.2
|
||||
|
||||
## 1.4.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.1-next.0
|
||||
- @backstage/core-components@0.13.3-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.0
|
||||
- @backstage/core-app-api@1.8.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.1
|
||||
|
||||
## 1.4.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
@@ -15,9 +37,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
@@ -74,9 +96,9 @@
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1fd38bc4141a: **MUI v5 Support:** Adding platform-wide support for MUI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
- 1fd38bc4141a: **Material UI v5 Support:** Adding platform-wide support for Material UI v5 allowing a transition phase for migrating central plugins & components over. We still support v4 instances & plugins by adding a
|
||||
|
||||
To allow the future support of plugins & components using MUI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
To allow the future support of plugins & components using Material UI v5 you want to upgrade your `AppTheme`'s to using the `UnifiedThemeProvider`
|
||||
|
||||
```diff
|
||||
Provider: ({ children }) => (
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.4.1-next.0",
|
||||
"version": "1.4.1-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,151 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.85-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-search@1.3.3-next.2
|
||||
- @backstage/plugin-airbrake@0.3.20-next.2
|
||||
- @backstage/cli@0.22.9-next.1
|
||||
- @backstage/plugin-catalog-react@1.8.0-next.2
|
||||
- @backstage/plugin-home@0.5.4-next.2
|
||||
- @backstage/plugin-cost-insights@0.12.9-next.2
|
||||
- @backstage/plugin-user-settings@0.7.5-next.2
|
||||
- @backstage/theme@0.4.1-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.1
|
||||
- @backstage/core-components@0.13.3-next.2
|
||||
- @backstage/core-app-api@1.8.2-next.1
|
||||
- @backstage/plugin-kubernetes@0.9.3-next.2
|
||||
- @backstage/plugin-adr@0.6.3-next.2
|
||||
- @backstage/app-defaults@1.4.1-next.2
|
||||
- @backstage/catalog-model@1.4.1-next.0
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/integration-react@1.1.15-next.2
|
||||
- @backstage/plugin-apache-airflow@0.2.13-next.2
|
||||
- @backstage/plugin-api-docs@0.9.6-next.2
|
||||
- @backstage/plugin-azure-devops@0.3.2-next.2
|
||||
- @backstage/plugin-azure-sites@0.1.9-next.2
|
||||
- @backstage/plugin-badges@0.2.44-next.2
|
||||
- @backstage/plugin-catalog-common@1.0.15-next.0
|
||||
- @backstage/plugin-catalog-graph@0.2.32-next.2
|
||||
- @backstage/plugin-catalog-import@0.9.10-next.2
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.2
|
||||
- @backstage/plugin-circleci@0.3.20-next.2
|
||||
- @backstage/plugin-cloudbuild@0.3.20-next.2
|
||||
- @backstage/plugin-code-coverage@0.2.13-next.2
|
||||
- @backstage/plugin-devtools@0.1.2-next.2
|
||||
- @backstage/plugin-dynatrace@7.0.0-next.2
|
||||
- @backstage/plugin-entity-feedback@0.2.3-next.2
|
||||
- @backstage/plugin-explore@0.4.6-next.2
|
||||
- @backstage/plugin-gcalendar@0.3.16-next.2
|
||||
- @backstage/plugin-gcp-projects@0.3.39-next.2
|
||||
- @backstage/plugin-github-actions@0.6.1-next.2
|
||||
- @backstage/plugin-gocd@0.1.26-next.2
|
||||
- @backstage/plugin-graphiql@0.2.52-next.2
|
||||
- @backstage/plugin-jenkins@0.8.2-next.2
|
||||
- @backstage/plugin-kafka@0.3.20-next.2
|
||||
- @backstage/plugin-lighthouse@0.4.5-next.2
|
||||
- @backstage/plugin-linguist@0.1.5-next.2
|
||||
- @backstage/plugin-linguist-common@0.1.0
|
||||
- @backstage/plugin-microsoft-calendar@0.1.5-next.2
|
||||
- @backstage/plugin-newrelic@0.3.38-next.2
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.13-next.2
|
||||
- @backstage/plugin-nomad@0.1.1-next.2
|
||||
- @backstage/plugin-octopus-deploy@0.2.2-next.2
|
||||
- @backstage/plugin-org@0.6.10-next.2
|
||||
- @backstage/plugin-pagerduty@0.6.1-next.2
|
||||
- @backstage/plugin-permission-react@0.4.14-next.2
|
||||
- @backstage/plugin-playlist@0.1.12-next.2
|
||||
- @backstage/plugin-puppetdb@0.1.3-next.2
|
||||
- @backstage/plugin-rollbar@0.4.20-next.2
|
||||
- @backstage/plugin-scaffolder@1.14.1-next.2
|
||||
- @backstage/plugin-scaffolder-react@1.5.1-next.2
|
||||
- @backstage/plugin-search-common@1.2.5-next.0
|
||||
- @backstage/plugin-search-react@1.6.3-next.2
|
||||
- @backstage/plugin-sentry@0.5.5-next.2
|
||||
- @backstage/plugin-shortcuts@0.3.12-next.2
|
||||
- @backstage/plugin-stack-overflow@0.1.18-next.2
|
||||
- @backstage/plugin-stackstorm@0.1.4-next.2
|
||||
- @backstage/plugin-tech-insights@0.3.12-next.2
|
||||
- @backstage/plugin-tech-radar@0.6.6-next.2
|
||||
- @backstage/plugin-techdocs@1.6.5-next.2
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.2
|
||||
- @backstage/plugin-techdocs-react@1.1.8-next.2
|
||||
- @backstage/plugin-todo@0.2.22-next.2
|
||||
- @internal/plugin-catalog-customized@0.0.12-next.2
|
||||
|
||||
## 0.2.85-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.1-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.5.1-next.1
|
||||
- @backstage/plugin-lighthouse@0.4.5-next.1
|
||||
- @backstage/plugin-catalog-import@0.9.10-next.1
|
||||
- @backstage/core-components@0.13.3-next.1
|
||||
- @backstage/plugin-kubernetes@0.9.3-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.1
|
||||
- @backstage/plugin-home@0.5.4-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.0
|
||||
- @backstage/app-defaults@1.4.1-next.1
|
||||
- @backstage/cli@0.22.9-next.0
|
||||
- @backstage/integration-react@1.1.15-next.1
|
||||
- @backstage/plugin-adr@0.6.3-next.1
|
||||
- @backstage/plugin-airbrake@0.3.20-next.1
|
||||
- @backstage/plugin-api-docs@0.9.6-next.1
|
||||
- @backstage/plugin-azure-devops@0.3.2-next.1
|
||||
- @backstage/plugin-azure-sites@0.1.9-next.1
|
||||
- @backstage/plugin-badges@0.2.44-next.1
|
||||
- @backstage/plugin-catalog-graph@0.2.32-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.1-next.1
|
||||
- @backstage/plugin-circleci@0.3.20-next.1
|
||||
- @backstage/plugin-cloudbuild@0.3.20-next.1
|
||||
- @backstage/plugin-code-coverage@0.2.13-next.1
|
||||
- @backstage/plugin-cost-insights@0.12.9-next.1
|
||||
- @backstage/plugin-devtools@0.1.2-next.1
|
||||
- @backstage/plugin-dynatrace@6.0.1-next.1
|
||||
- @backstage/plugin-entity-feedback@0.2.3-next.1
|
||||
- @backstage/plugin-explore@0.4.6-next.1
|
||||
- @backstage/plugin-gcalendar@0.3.16-next.1
|
||||
- @backstage/plugin-gcp-projects@0.3.39-next.1
|
||||
- @backstage/plugin-github-actions@0.6.1-next.1
|
||||
- @backstage/plugin-gocd@0.1.26-next.1
|
||||
- @backstage/plugin-graphiql@0.2.52-next.1
|
||||
- @backstage/plugin-jenkins@0.8.2-next.1
|
||||
- @backstage/plugin-kafka@0.3.20-next.1
|
||||
- @backstage/plugin-linguist@0.1.5-next.1
|
||||
- @backstage/plugin-microsoft-calendar@0.1.5-next.1
|
||||
- @backstage/plugin-newrelic@0.3.38-next.1
|
||||
- @backstage/plugin-nomad@0.1.1-next.1
|
||||
- @backstage/plugin-octopus-deploy@0.2.2-next.1
|
||||
- @backstage/plugin-org@0.6.10-next.1
|
||||
- @backstage/plugin-pagerduty@0.6.1-next.1
|
||||
- @backstage/plugin-playlist@0.1.12-next.1
|
||||
- @backstage/plugin-puppetdb@0.1.3-next.1
|
||||
- @backstage/plugin-rollbar@0.4.20-next.1
|
||||
- @backstage/plugin-scaffolder@1.14.1-next.1
|
||||
- @backstage/plugin-search@1.3.3-next.1
|
||||
- @backstage/plugin-search-react@1.6.3-next.1
|
||||
- @backstage/plugin-sentry@0.5.5-next.1
|
||||
- @backstage/plugin-shortcuts@0.3.12-next.1
|
||||
- @backstage/plugin-stack-overflow@0.1.18-next.1
|
||||
- @backstage/plugin-stackstorm@0.1.4-next.1
|
||||
- @backstage/plugin-tech-insights@0.3.12-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.6-next.1
|
||||
- @backstage/plugin-techdocs@1.6.5-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.1
|
||||
- @backstage/plugin-techdocs-react@1.1.8-next.1
|
||||
- @backstage/plugin-todo@0.2.22-next.1
|
||||
- @backstage/plugin-user-settings@0.7.5-next.1
|
||||
- @backstage/plugin-apache-airflow@0.2.13-next.1
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.13-next.1
|
||||
- @internal/plugin-catalog-customized@0.0.12-next.1
|
||||
- @backstage/core-app-api@1.8.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.1
|
||||
- @backstage/config@1.0.8
|
||||
|
||||
## 0.2.85-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"jest/expect-expect": [
|
||||
"error",
|
||||
{
|
||||
"assertFunctionNames": ["expect", "cy.contains"]
|
||||
"assertFunctionNames": ["expect", "cy.contains", "cy.**.should"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.85-next.0",
|
||||
"version": "0.2.85-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -66,6 +66,8 @@ import {
|
||||
isKind,
|
||||
isOrphan,
|
||||
hasLabels,
|
||||
hasRelationWarnings,
|
||||
EntityRelationWarning,
|
||||
} from '@internal/plugin-catalog-customized';
|
||||
import {
|
||||
Direction,
|
||||
@@ -328,6 +330,14 @@ const entityWarningContent = (
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasRelationWarnings}>
|
||||
<Grid item xs={12}>
|
||||
<EntityRelationWarning />
|
||||
</Grid>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasCatalogProcessingErrors}>
|
||||
<Grid item xs={12}>
|
||||
|
||||
@@ -1,5 +1,46 @@
|
||||
# example-backend-next
|
||||
|
||||
## 0.0.13-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-devtools-backend@0.1.2-next.2
|
||||
- @backstage/plugin-scaffolder-backend@1.15.1-next.1
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.2
|
||||
- @backstage/plugin-adr-backend@0.3.5-next.1
|
||||
- @backstage/backend-defaults@0.1.12-next.0
|
||||
- @backstage/backend-tasks@0.5.4-next.0
|
||||
- @backstage/plugin-app-backend@0.3.47-next.0
|
||||
- @backstage/plugin-auth-node@0.2.16-next.0
|
||||
- @backstage/plugin-azure-devops-backend@0.3.26-next.1
|
||||
- @backstage/plugin-badges-backend@0.2.2-next.1
|
||||
- @backstage/plugin-catalog-backend@1.11.0-next.0
|
||||
- @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0
|
||||
- @backstage/plugin-entity-feedback-backend@0.1.5-next.0
|
||||
- @backstage/plugin-linguist-backend@0.3.1-next.1
|
||||
- @backstage/plugin-permission-backend@0.5.22-next.0
|
||||
- @backstage/plugin-permission-common@0.7.7-next.0
|
||||
- @backstage/plugin-permission-node@0.7.10-next.0
|
||||
- @backstage/plugin-search-backend@1.3.3-next.0
|
||||
- @backstage/plugin-search-backend-module-catalog@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-module-explore@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-node@1.2.3-next.0
|
||||
- @backstage/plugin-techdocs-backend@1.6.4-next.0
|
||||
- @backstage/plugin-todo-backend@0.1.44-next.0
|
||||
|
||||
## 0.0.13-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.1
|
||||
- @backstage/plugin-badges-backend@0.2.2-next.1
|
||||
- @backstage/plugin-azure-devops-backend@0.3.26-next.1
|
||||
- @backstage/plugin-devtools-backend@0.1.2-next.1
|
||||
- @backstage/plugin-linguist-backend@0.3.1-next.1
|
||||
|
||||
## 0.0.13-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend-next",
|
||||
"version": "0.0.13-next.0",
|
||||
"version": "0.0.13-next.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -27,6 +27,7 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-defaults": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/plugin-adr-backend": "workspace:^",
|
||||
"@backstage/plugin-app-backend": "workspace:^",
|
||||
"@backstage/plugin-auth-node": "workspace:^",
|
||||
"@backstage/plugin-azure-devops-backend": "workspace:^",
|
||||
|
||||
@@ -37,6 +37,7 @@ import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend';
|
||||
import { linguistPlugin } from '@backstage/plugin-linguist-backend';
|
||||
import { devtoolsPlugin } from '@backstage/plugin-devtools-backend';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { adrPlugin } from '@backstage/plugin-adr-backend';
|
||||
|
||||
const backend = createBackend();
|
||||
|
||||
@@ -73,6 +74,8 @@ backend.add(
|
||||
// Todo
|
||||
backend.add(todoPlugin());
|
||||
|
||||
backend.add(adrPlugin());
|
||||
|
||||
// Techdocs
|
||||
backend.add(techdocsPlugin());
|
||||
|
||||
|
||||
@@ -1,5 +1,74 @@
|
||||
# example-backend
|
||||
|
||||
## 0.2.85-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.0-next.1
|
||||
- @backstage/plugin-devtools-backend@0.1.2-next.2
|
||||
- @backstage/plugin-tech-insights-backend@0.5.13-next.1
|
||||
- @backstage/plugin-scaffolder-backend@1.15.1-next.1
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.2
|
||||
- @backstage/plugin-adr-backend@0.3.5-next.1
|
||||
- example-app@0.2.85-next.2
|
||||
- @backstage/backend-common@0.19.1-next.0
|
||||
- @backstage/backend-tasks@0.5.4-next.0
|
||||
- @backstage/catalog-client@1.4.3-next.0
|
||||
- @backstage/catalog-model@1.4.1-next.0
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/integration@1.5.1-next.0
|
||||
- @backstage/plugin-app-backend@0.3.47-next.0
|
||||
- @backstage/plugin-auth-backend@0.18.5-next.1
|
||||
- @backstage/plugin-auth-node@0.2.16-next.0
|
||||
- @backstage/plugin-azure-devops-backend@0.3.26-next.1
|
||||
- @backstage/plugin-azure-sites-backend@0.1.9-next.0
|
||||
- @backstage/plugin-badges-backend@0.2.2-next.1
|
||||
- @backstage/plugin-catalog-backend@1.11.0-next.0
|
||||
- @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0
|
||||
- @backstage/plugin-catalog-node@1.4.0-next.0
|
||||
- @backstage/plugin-code-coverage-backend@0.2.13-next.0
|
||||
- @backstage/plugin-entity-feedback-backend@0.1.5-next.0
|
||||
- @backstage/plugin-events-backend@0.2.8-next.0
|
||||
- @backstage/plugin-events-node@0.2.8-next.0
|
||||
- @backstage/plugin-explore-backend@0.0.9-next.0
|
||||
- @backstage/plugin-graphql-backend@0.1.37-next.0
|
||||
- @backstage/plugin-jenkins-backend@0.2.2-next.0
|
||||
- @backstage/plugin-kafka-backend@0.2.40-next.0
|
||||
- @backstage/plugin-lighthouse-backend@0.2.3-next.0
|
||||
- @backstage/plugin-linguist-backend@0.3.1-next.1
|
||||
- @backstage/plugin-nomad-backend@0.1.1-next.0
|
||||
- @backstage/plugin-permission-backend@0.5.22-next.0
|
||||
- @backstage/plugin-permission-common@0.7.7-next.0
|
||||
- @backstage/plugin-permission-node@0.7.10-next.0
|
||||
- @backstage/plugin-playlist-backend@0.3.3-next.0
|
||||
- @backstage/plugin-proxy-backend@0.2.41-next.0
|
||||
- @backstage/plugin-rollbar-backend@0.1.44-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-rails@0.4.16-next.1
|
||||
- @backstage/plugin-search-backend@1.3.3-next.0
|
||||
- @backstage/plugin-search-backend-module-elasticsearch@1.3.2-next.0
|
||||
- @backstage/plugin-search-backend-module-pg@0.5.8-next.0
|
||||
- @backstage/plugin-search-backend-node@1.2.3-next.0
|
||||
- @backstage/plugin-search-common@1.2.5-next.0
|
||||
- @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.31-next.0
|
||||
- @backstage/plugin-tech-insights-node@0.4.5-next.0
|
||||
- @backstage/plugin-techdocs-backend@1.6.4-next.0
|
||||
- @backstage/plugin-todo-backend@0.1.44-next.0
|
||||
|
||||
## 0.2.85-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.1
|
||||
- @backstage/plugin-badges-backend@0.2.2-next.1
|
||||
- @backstage/plugin-azure-devops-backend@0.3.26-next.1
|
||||
- @backstage/plugin-devtools-backend@0.1.2-next.1
|
||||
- @backstage/plugin-linguist-backend@0.3.1-next.1
|
||||
- @backstage/plugin-auth-backend@0.18.5-next.1
|
||||
- example-app@0.2.85-next.1
|
||||
- @backstage/config@1.0.8
|
||||
|
||||
## 0.2.85-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.2.85-next.0",
|
||||
"version": "0.2.85-next.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/cli-node
|
||||
|
||||
## 0.1.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 4edd1ef71453: semver upgrade to 7.5.3
|
||||
- Updated dependencies
|
||||
- @backstage/cli-common@0.1.12
|
||||
- @backstage/errors@1.2.1-next.0
|
||||
- @backstage/types@1.1.0
|
||||
|
||||
## 0.1.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/cli-node",
|
||||
"description": "Node.js library for Backstage CLIs",
|
||||
"version": "0.1.2-next.0",
|
||||
"version": "0.1.2-next.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -28,7 +28,7 @@
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
"@yarnpkg/parsers": "^3.0.0-rc.4",
|
||||
"fs-extra": "10.1.0",
|
||||
"semver": "^7.3.2",
|
||||
"semver": "^7.5.3",
|
||||
"zod": "^3.21.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# @backstage/cli
|
||||
|
||||
## 0.22.9-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 4edd1ef71453: semver upgrade to 7.5.3
|
||||
- ff45cb559e49: Updated dependency `esbuild` to `^0.18.0`.
|
||||
- 8174cf4c0edf: Fixing MUI / Material UI references
|
||||
- Updated dependencies
|
||||
- @backstage/cli-node@0.1.2-next.1
|
||||
- @backstage/catalog-model@1.4.1-next.0
|
||||
- @backstage/cli-common@0.1.12
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/config-loader@1.3.2-next.0
|
||||
- @backstage/errors@1.2.1-next.0
|
||||
- @backstage/eslint-plugin@0.1.3
|
||||
- @backstage/integration@1.5.1-next.0
|
||||
- @backstage/release-manifests@0.0.9
|
||||
- @backstage/types@1.1.0
|
||||
|
||||
## 0.22.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
@@ -26,7 +45,7 @@
|
||||
- 75540599124a: Updated example component for a newly scaffolded app.
|
||||
- 5d692f72ebfb: Make sure to include a `fetch` environment for `jsdom` in `jest` tests
|
||||
- 6816352500a7: Add discovery feature to the onboard cli command.
|
||||
- 20b7da6f1311: Enforcing MUI v5 specific linting to minimize bundle size.
|
||||
- 20b7da6f1311: Enforcing Material UI v5 specific linting to minimize bundle size.
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.1.0
|
||||
- @backstage/config-loader@1.3.1
|
||||
@@ -77,7 +96,7 @@
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 20b7da6f1311: Enforcing MUI v5 specific linting to minimize bundle size.
|
||||
- 20b7da6f1311: Enforcing Material UI v5 specific linting to minimize bundle size.
|
||||
- Updated dependencies
|
||||
- @backstage/config-loader@1.3.1-next.0
|
||||
- @backstage/config@1.0.7
|
||||
|
||||
@@ -203,7 +203,7 @@ function createConfigForRole(dir, role, extraConfig = {}) {
|
||||
},
|
||||
restrictedImports: [
|
||||
{
|
||||
// Importing the entire MUI icons packages impedes build performance as the list of icons is huge.
|
||||
// Importing the entire Material UI icons packages impedes build performance as the list of icons is huge.
|
||||
name: '@material-ui/icons',
|
||||
message: "Please import '@material-ui/icons/<Icon>' instead.",
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/cli",
|
||||
"description": "CLI for developing Backstage plugins and apps",
|
||||
"version": "0.22.9-next.0",
|
||||
"version": "0.22.9-next.1",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
@@ -78,7 +78,7 @@
|
||||
"cross-spawn": "^7.0.3",
|
||||
"css-loader": "^6.5.1",
|
||||
"diff": "^5.0.0",
|
||||
"esbuild": "^0.17.0",
|
||||
"esbuild": "^0.18.0",
|
||||
"esbuild-loader": "^2.18.0",
|
||||
"eslint": "^8.6.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
@@ -123,7 +123,7 @@
|
||||
"rollup-plugin-postcss": "^4.0.0",
|
||||
"rollup-pluginutils": "^2.8.2",
|
||||
"run-script-webpack-plugin": "^0.1.0",
|
||||
"semver": "^7.3.2",
|
||||
"semver": "^7.5.3",
|
||||
"style-loader": "^3.3.1",
|
||||
"sucrase": "^3.20.2",
|
||||
"swc-loader": "^0.2.3",
|
||||
|
||||
@@ -40,7 +40,7 @@ export async function buildTypeDefinitionsWorker(
|
||||
const { Extractor, ExtractorConfig, CompilerState } = apiExtractor;
|
||||
|
||||
/**
|
||||
* All of this monkey patching below is because MUI has these bare package.json file as a method
|
||||
* All of this monkey patching below is because Material UI has these bare package.json file as a method
|
||||
* for making TypeScript accept imports like `@material-ui/core/Button`, and improve tree-shaking
|
||||
* by declaring them side effect free.
|
||||
*
|
||||
|
||||